patches/gcc/4.2.4/250-softfloat-fix.patch
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
yann@687
     1
This patch (C) 2007 Yann E. MORIN
yann@687
     2
Licensed under GPL v2.
yann@687
     3
yann@687
     4
First hunk of this patch solves compiling uClibc:
yann@687
     5
yann@687
     6
make[1]: Entering directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
yann@687
     7
  LD libuClibc-0.9.29.so
yann@687
     8
libc/libc_so.a(difftime.os): In function `difftime':
yann@687
     9
difftime.c:(.text+0x8): undefined reference to `__floatsidf'
yann@687
    10
difftime.c:(.text+0x2c): undefined reference to `__subdf3'
yann@687
    11
libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
yann@687
    12
_fpmaxtostr.c:(.text+0xd4): undefined reference to `__nedf2'
yann@687
    13
_fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
yann@687
    14
_fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
yann@687
    15
_fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
yann@687
    16
_fpmaxtostr.c:(.text+0x1c4): undefined reference to `__muldf3'
yann@687
    17
_fpmaxtostr.c:(.text+0x388): undefined reference to `__gedf2'
yann@687
    18
_fpmaxtostr.c:(.text+0x430): undefined reference to `__adddf3'
yann@687
    19
libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
yann@687
    20
__psfs_do_numeric.c:(.text+0x520): undefined reference to `__truncdfsf2'
yann@687
    21
libc/libc_so.a(strtof.os): In function `strtof':
yann@687
    22
strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
yann@687
    23
/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/cc_core_prefix/lib/gcc/arm-linux-uclibc/4.1.1/libgcc.a(_fixunsdfsi.o):
yann@687
    24
In function `__fixunsdfsi':
yann@687
    25
libgcc2.c:(.text+0x34): undefined reference to `__fixdfsi'
yann@687
    26
make[2]: *** [lib/libc.so] Error 1
yann@687
    27
make[1]: *** [lib/libc.so.0] Error 2
yann@687
    28
make[1]: Leaving directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
yann@687
    29
make: *** [/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc/lib/libc.a]
yann@687
    30
Error 2
yann@687
    31
yann@687
    32
The second hunk fixes building final gcc because soft-float implies using -lfloat (which we don't have).
yann@687
    33
yann@687
    34
yann@687
    35
diff -dur gcc-4.2.0.orig/gcc/config.gcc gcc-4.2.0/gcc/config.gcc
yann@687
    36
--- gcc-4.2.0.orig/gcc/config.gcc	2007-07-15 11:24:18.000000000 +0200
yann@687
    37
+++ gcc-4.2.0/gcc/config.gcc	2007-07-15 11:26:02.000000000 +0200
yann@687
    38
@@ -721,7 +721,7 @@
yann@687
    39
 	    default_use_cxa_atexit=yes
yann@687
    40
 	    ;;
yann@687
    41
 	*)
yann@687
    42
-	    tmake_file="$tmake_file arm/t-linux"
yann@687
    43
+	    tmake_file="$tmake_file arm/t-linux arm/t-arm-elf"
yann@687
    44
 	    ;;
yann@687
    45
 	esac
yann@687
    46
 	tm_file="$tm_file arm/aout.h arm/arm.h"
yann@687
    47
diff -dur gcc-4.2.0.orig/gcc/config/arm/linux-elf.h gcc-4.2.0/gcc/config/arm/linux-elf.h
yann@687
    48
--- gcc-4.2.0.orig/gcc/config/arm/linux-elf.h	2007-07-15 11:24:18.000000000 +0200
yann@687
    49
+++ gcc-4.2.0/gcc/config/arm/linux-elf.h	2007-07-15 11:26:02.000000000 +0200
yann@687
    50
@@ -63,7 +63,7 @@
yann@687
    51
    %{shared:-lc} \
yann@687
    52
    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
yann@687
    53
 
yann@687
    54
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
yann@687
    55
+#define LIBGCC_SPEC "-lgcc"
yann@687
    56
 
yann@687
    57
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
yann@687
    58