patches/linux/2.4.26/140-linux-2.4.26-arm-nonofpu.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 21 22:00:52 2008 +0000 (2008-05-21)
changeset 527 4ac12179ef23
permissions -rw-r--r--
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.
     3 
     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
    11 
    12 
    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
    15 @@ -21,6 +21,10 @@
    16  
    17  CROSS_COMPILE 	=
    18  
    19 +# From linux-2.6
    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 ;)
    21 +export check_gcc
    22 +
    23  #
    24  # Include the make variables (CC, etc...)
    25  #
    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
    28 @@ -50,9 +50,9 @@
    29  tune-$(CONFIG_CPU_SA110)	:=-mtune=strongarm110
    30  tune-$(CONFIG_CPU_SA1100)	:=-mtune=strongarm1100
    31  
    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
    38  
    39  ifeq ($(CONFIG_CPU_26),y)
    40  PROCESSOR	:= armo