Introduce target-specific LDFLAGS, the same way we have CFLAGS for the target.
It seems to be helping gcc somewhat into telling the correct endianness to ld that sticks with little endian even when the target is big (eg armeb-unknown-linux-uclibcgnueabi).
There's still work to do, especially finish the gcc part that is not in this commit.
/trunk/scripts/functions | 9 7 2 0 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
1 # Compute ARM-specific values
4 # The architecture part of the tuple:
5 CT_TARGET_ARCH="${CT_ARCH}${target_endian_eb}"
7 # The system part of the tuple:
8 case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in
9 glibc,) CT_TARGET_SYS=gnu;;
10 glibc,y) CT_TARGET_SYS=gnueabi;;
11 uClibc,) CT_TARGET_SYS=uclibc;;
12 uClibc,y) CT_TARGET_SYS=uclibcgnueabi;;
15 case "${CT_ARCH_ABI},${CT_ARCH_ARM_EABI}" in
18 CT_DoLog DEBUG "'--with-abi=aapcs' is in fact '-mabi=aapcs-linux' when used in CFLAGS."
19 CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux"
22 CT_DoLog WARN "Forcing ABI to 'aapcs-linux' for use with EABI."
23 CT_ARCH_WITH_ABI="--with-abi=aapcs"
24 CT_ARCH_ABI_CFLAGS="-mabi=aapcs-linux"
27 CT_DoLog ERROR "ABI='${CT_ARCH_ABI}' not supported for EABI."
28 CT_Abort "If you know you are right, please edit 'arch/arm/functions' in crosstool-NG sources."