gcc: add support for the PowerPC EABI

Signed-off-by: Mircea Gherzan <mgherzan@gmail.com>
[yann.morin.1998@anciens.enib.fr: rm trailing space]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
Yann E. MORIN" 2011-09-17 14:30:52 +02:00 committed by Mircea Gherzan
parent 4785e58e42
commit 6fea2cfd09
2 changed files with 39 additions and 7 deletions

View File

@ -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 "Enable SPE support"
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 "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

View File

@ -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"