From 6fea2cfd092e6825d0df397425d8236317e46475 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Sat, 17 Sep 2011 14:30:52 +0200 Subject: gcc: add support for the PowerPC EABI Signed-off-by: Mircea Gherzan [yann.morin.1998@anciens.enib.fr: rm trailing space] Signed-off-by: "Yann E. MORIN" diff --git a/config/arch/powerpc.in.2 b/config/arch/powerpc.in.2 index f54ec55..2cbc370 100644 --- a/config/arch/powerpc.in.2 +++ b/config/arch/powerpc.in.2 @@ -1,8 +1,32 @@ # powerpc specific configuration file -config ARCH_POWERPC_SPE +config ARCH_powerpc_ABI + string + default "" if ARCH_powerpc_ABI_DEFAULT + default "eabi" if ARCH_powerpc_ABI_EABI + default "spe" if ARCH_powerpc_ABI_SPE + +choice + bool + prompt "ABI" + default ARCH_powerpc_ABI_DEFAULT + +config ARCH_powerpc_ABI_DEFAULT + bool + prompt "default" + help + The default ABI (System V.4). + +config ARCH_powerpc_ABI_EABI bool - prompt "Enable SPE support" + prompt "EABI" + depends on BARE_METAL + help + The Embedded ABI (stack alignment of 8 bytes, etc). + +config ARCH_powerpc_ABI_SPE + bool + prompt "SPE" help Add support for the Signal Processing Engine. This will set up the toolchain so that it supports the SPE ABI extensions. This @@ -14,3 +38,5 @@ config ARCH_POWERPC_SPE will also automatically add "-mabi=spe -mspe" to your TARGET_CFLAGS, and "--enable-e500_double" to your CC_EXTRA_CONFIG_ARRAY, so you do not need to explicitly add them. + +endchoice diff --git a/scripts/build/arch/powerpc.sh b/scripts/build/arch/powerpc.sh index b55e2e0..51ea2a5 100644 --- a/scripts/build/arch/powerpc.sh +++ b/scripts/build/arch/powerpc.sh @@ -6,14 +6,20 @@ CT_DoArchTupleValues () { CT_TARGET_ARCH="powerpc64" fi - # Add spe in the tuple if needed - case "${CT_LIBC},${CT_ARCH_POWERPC_SPE}" in - glibc,|eglibc,) CT_TARGET_SYS=gnu;; - glibc,y|eglibc,y) CT_TARGET_SYS=gnuspe;; + CT_TARGET_SYS="gnu" + case "${CT_ARCH_powerpc_ABI}" in + "") ;; + eabi) CT_TARGET_SYS="eabi";; + spe) + case "${CT_LIBC}" in + glibc|eglibc) CT_TARGET_SYS="gnuspe";; + *) CT_TARGET_SYS="spe"; + esac + ;; esac # Add extra flags for SPE if needed - if [ "${CT_ARCH_POWERPC_SPE}" = "y" ]; then + if [ "${CT_ARCH_powerpc_ABI_SPE}" = "y" ]; then CT_ARCH_TARGET_CFLAGS="-mabi=spe -mspe" CT_ARCH_CC_CORE_EXTRA_CONFIG="--enable-e500_double" CT_ARCH_CC_EXTRA_CONFIG="--enable-e500_double" -- cgit v0.10.2-6-g49f6