summaryrefslogtreecommitdiff
path: root/patches
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-05-27 20:22:06 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-05-27 20:22:06 (GMT)
commitde5df0533c0bde20f08d788543feac6915a2a5f7 (patch)
tree93bb27024a37f3953b8ae0ecc2af9dc06e0def8c /patches
parent266e38cc13fe4f1388dfc792349a9dc333b87de6 (diff)
Merge the NPTL stuff.
That still leaves the linuxthreads stuff broken, but it was just before. I don't care anyway. Time to fix that later...
Diffstat (limited to 'patches')
-rw-r--r--patches/gcc/4.1.2/801-softfloat-fix.patch58
-rw-r--r--patches/glibc/2.5/glibc-2.4-i686-assembler.patch38
-rw-r--r--patches/glibc/2.5/glibc-i386-preferred-stack-boundary.patch18
-rw-r--r--patches/glibc/2.5/make-install-lib-all.patch.dont_apply (renamed from patches/glibc/2.5/make-install-lib-all.patch)0
4 files changed, 114 insertions, 0 deletions
diff --git a/patches/gcc/4.1.2/801-softfloat-fix.patch b/patches/gcc/4.1.2/801-softfloat-fix.patch
new file mode 100644
index 0000000..844c9a0
--- /dev/null
+++ b/patches/gcc/4.1.2/801-softfloat-fix.patch
@@ -0,0 +1,58 @@
+This patch (C) 2007 Yann E. MORIN
+Licensed under GPL v2.
+
+First hunk of this patch solves compiling uClibc-0.9.28{,.1} :
+
+make[1]: Entering directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
+ LD libuClibc-0.9.29.so
+libc/libc_so.a(difftime.os): In function `difftime':
+difftime.c:(.text+0x8): undefined reference to `__floatsidf'
+difftime.c:(.text+0x2c): undefined reference to `__subdf3'
+libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
+_fpmaxtostr.c:(.text+0xd4): undefined reference to `__nedf2'
+_fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
+_fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
+_fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
+_fpmaxtostr.c:(.text+0x1c4): undefined reference to `__muldf3'
+_fpmaxtostr.c:(.text+0x388): undefined reference to `__gedf2'
+_fpmaxtostr.c:(.text+0x430): undefined reference to `__adddf3'
+libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
+__psfs_do_numeric.c:(.text+0x520): undefined reference to `__truncdfsf2'
+libc/libc_so.a(strtof.os): In function `strtof':
+strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
+/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):
+In function `__fixunsdfsi':
+libgcc2.c:(.text+0x34): undefined reference to `__fixdfsi'
+make[2]: *** [lib/libc.so] Error 1
+make[1]: *** [lib/libc.so.0] Error 2
+make[1]: Leaving directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
+make: *** [/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc/lib/libc.a]
+Error 2
+
+The second hunk fixes building final gcc because soft-float implies using -lfloat (which we don't have).
+
+
+diff -dur gcc-4.1.1.no-softfloat-fix/gcc/config.gcc gcc-4.1.1/gcc/config.gcc
+--- gcc-4.1.1.no-softfloat-fix/gcc/config.gcc 2007-02-01 21:57:17.000000000 +0100
++++ gcc-4.1.1/gcc/config.gcc 2007-02-01 22:11:06.000000000 +0100
+@@ -690,7 +690,7 @@
+ default_use_cxa_atexit=yes
+ ;;
+ *)
+- tmake_file="$tmake_file arm/t-linux"
++ tmake_file="$tmake_file arm/t-linux arm/t-arm-elf"
+ ;;
+ esac
+ tm_file="$tm_file arm/aout.h arm/arm.h"
+diff -dur gcc-4.1.1.-lfloat/gcc/config/arm/linux-elf.h gcc-4.1.1/gcc/config/arm/linux-elf.h
+--- gcc-4.1.1.-lfloat/gcc/config/arm/linux-elf.h 2007-02-01 21:57:17.000000000 +0100
++++ gcc-4.1.1/gcc/config/arm/linux-elf.h 2007-02-01 23:00:42.000000000 +0100
+@@ -63,7 +63,7 @@
+ %{shared:-lc} \
+ %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+
+ #ifdef USE_UCLIBC
+ #define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
diff --git a/patches/glibc/2.5/glibc-2.4-i686-assembler.patch b/patches/glibc/2.5/glibc-2.4-i686-assembler.patch
new file mode 100644
index 0000000..9904efb
--- /dev/null
+++ b/patches/glibc/2.5/glibc-2.4-i686-assembler.patch
@@ -0,0 +1,38 @@
+2007-02-15 Khem Raj <kraj@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686.
+ * nptl/sysdeps/pthread/pt-initfini.c: Ditto.
+
+
+
+Index: glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h
+===================================================================
+--- glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469)
++++ glibc-2.4/sysdeps/unix/sysv/linux/i386/sysdep.h (working copy)
+@@ -29,6 +29,10 @@
+ #include <dl-sysdep.h>
+ #include <tls.h>
+
++#if defined __i686 && defined __ASSEMBLER__
++#undef __i686
++#define __i686 __i686
++#endif
+
+ /* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+Index: glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c
+===================================================================
+--- glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c (revision 1469)
++++ glibc-2.4/nptl/sysdeps/pthread/pt-initfini.c (working copy)
+@@ -45,6 +45,11 @@
+ /* Embed an #include to pull in the alignment and .end directives. */
+ asm ("\n#include \"defs.h\"");
+
++asm ("\n#if defined __i686 && defined __ASSEMBLER__");
++asm ("\n#undef __i686");
++asm ("\n#define __i686 __i686");
++asm ("\n#endif");
++
+ /* The initial common code ends here. */
+ asm ("\n/*@HEADER_ENDS*/");
+
diff --git a/patches/glibc/2.5/glibc-i386-preferred-stack-boundary.patch b/patches/glibc/2.5/glibc-i386-preferred-stack-boundary.patch
new file mode 100644
index 0000000..449821d
--- /dev/null
+++ b/patches/glibc/2.5/glibc-i386-preferred-stack-boundary.patch
@@ -0,0 +1,18 @@
+(C) 2007 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
+License: LGPL v2.1
+
+Shut off a stupid warning: preffered-stack-boundary must be between 4 ad 12,
+and 2 is not.
+
+diff -dur glibc-2.5.orig/sysdeps/i386/Makefile glibc-2.5/sysdeps/i386/Makefile
+--- glibc-2.5.orig/sysdeps/i386/Makefile 2005-03-06 01:18:16.000000000 +0100
++++ glibc-2.5/sysdeps/i386/Makefile 2007-05-27 17:49:37.000000000 +0200
+@@ -36,7 +36,7 @@
+ ifeq ($(subdir),csu)
+ sysdep-CFLAGS += -mpreferred-stack-boundary=4
+ else
+-sysdep-CFLAGS += -mpreferred-stack-boundary=2
++sysdep-CFLAGS += -mpreferred-stack-boundary=4
+ # Likewise, any function which calls user callbacks
+ uses-callbacks += -mpreferred-stack-boundary=4
+ # Likewise, any stack alignment tests
diff --git a/patches/glibc/2.5/make-install-lib-all.patch b/patches/glibc/2.5/make-install-lib-all.patch.dont_apply
index 5384da8..5384da8 100644
--- a/patches/glibc/2.5/make-install-lib-all.patch
+++ b/patches/glibc/2.5/make-install-lib-all.patch.dont_apply