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 Backport of linux-2.6.8-arm-nonofpu.patch.
2 Fixes error when building linux-2.4.26 kernel with gcc-3.4 on arm.
4 /opt/crosstool/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/bin/arm-unknown-linux-gnu-gcc -D__KERNEL__ -I/home/dank/wk/crosstool-0.28-rc37/build/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/linux-2.4.26/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=strongarm110 -mshort-load-bytes -msoft-float -Uarm -S -o constants.h.tmp.1 getconstants.c
5 cc1: error: invalid option `short-load-bytes'
6 make[2]: *** [constants.h] Error 1
7 make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/linux-2.4.26/arch/arm/tools'
8 make[1]: *** [dep] Error 2
9 make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/linux-2.4.26/arch/arm/tools'
10 make: *** [archdep] Error 2
13 --- linux-2.4.26/Makefile.old Thu Sep 30 23:21:14 2004
14 +++ linux-2.4.26/Makefile Thu Sep 30 23:24:12 2004
20 +check_gcc = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
24 # Include the make variables (CC, etc...)
26 --- linux-2.4.26/arch/arm/Makefile.old Thu Sep 30 23:16:49 2004
27 +++ linux-2.4.26/arch/arm/Makefile Thu Sep 30 23:25:27 2004
29 tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
30 tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
32 -CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Uarm
33 -CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Uarm
34 -AFLAGS +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float
35 +CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) $(call check_gcc,-malignment-traps,-mshort-load-bytes) -msoft-float -Uarm
36 +CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) $(call check_gcc,-malignment-traps,-mshort-load-bytes) -msoft-float -Uarm
37 +AFLAGS +=$(apcs-y) $(arch-y) -msoft-float
39 ifeq ($(CONFIG_CPU_26),y)