arch/sparc: add absic support
authorSam Ravnborg <sam@ravnborg.org>
Sun Apr 03 18:22:00 2011 +0200 (2011-04-03)
changeset 2371c131e30363ee
parent 2370 e915ac8a4224
child 2372 148e80538623
arch/sparc: add absic support

Add support for building SPARC targeted toolchain.
With this patch I have built a working sparc V8 (32 toolchain).

Testing shows that not all gcc versions works well:
4.4.1 OK (kernel builds and the final kernel can boot)
4.4.2 Not tested
4.4.3 Not tested
4.4.4 BAD (Kernel can build but fails during boot)
4.4.5 BAD (Kernel can build but fails during boot)
4.5.1 BAD (Build fails with a spill related ICE - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35664)
4.5.2 OK (kernel builds and boots)

I have successfully been using the 4.5.2 version for a few months.

This patch does not add support for the LEON variant.
That may come later.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
[yann.morin.1998@anciens.enib.fr: for 32-bit, default CT_TARGET_ARCH is OK]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
config/arch/sparc.in
scripts/build/arch/sparc.sh
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/config/arch/sparc.in	Sun Apr 03 18:22:00 2011 +0200
     1.3 @@ -0,0 +1,13 @@
     1.4 +# SPARC specific config options
     1.5 +
     1.6 +config ARCH_sparc
     1.7 +    select ARCH_SUPPORTS_32
     1.8 +    select ARCH_SUPPORTS_64
     1.9 +    select ARCH_DEFAULT_32
    1.10 +    select ARCH_USE_MMU
    1.11 +    select ARCH_SUPPORT_CPU
    1.12 +    select ARCH_SUPPORT_TUNE
    1.13 +    help
    1.14 +      The SUN SPARC architecture, as defined by:
    1.15 +        32 bit: http://www.sparc.org/standards/V8.pdf
    1.16 +        64 bit: http://www.sparc.org/standards/SPARCV9.pdf
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/scripts/build/arch/sparc.sh	Sun Apr 03 18:22:00 2011 +0200
     2.3 @@ -0,0 +1,8 @@
     2.4 +# Compute sparc-specific values
     2.5 +CT_DoArchTupleValues() {
     2.6 +    # That's the only thing to override
     2.7 +    if [ "${CT_ARCH_64}" = "y" ]; then
     2.8 +        CT_TARGET_ARCH="${CT_ARCH}64"
     2.9 +    fi
    2.10 +
    2.11 +}