patches/gcc/4.2.4/250-softfloat-fix.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Jul 31 22:27:29 2012 +0200 (2012-07-31)
changeset 3018 7776e8369284
parent 687 b2b6b1d46aa1
permissions -rw-r--r--
complibs/cloog: create missing m4 dir

Because we now patch configure.in and configure, the Makefile quicks
in a re-build rule as the source files are now more recent than the
bundled generated files, and that fails because the m4 directory
is missing, although on some systems where aclocal is not installed,
the re-build rule does nothing (except a warning).

Always create tht directory.

Reported-by: Per Arnold Blaasmo <per-arnold.blaasmo@atmel.com>
[Also thanks to Thomas De Schampheleire <patrickdepinguin@gmail.com>
for some digging works on this issue]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.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