patches/gcc/4.2.4/250-softfloat-fix.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:26:53 2011 +0200 (2011-08-02)
changeset 2592 4908eb2b6f17
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
scripts/functions: cvs retrieval first tries the mirror for tarballs

The cvs download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via cvs.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard cvs retrieval will kick in.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
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