diff options
Diffstat (limited to 'patches/glibc/2.2.2')
18 files changed, 1612 insertions, 0 deletions
diff --git a/patches/glibc/2.2.2/arm-ctl_bus_isa.patch b/patches/glibc/2.2.2/arm-ctl_bus_isa.patch new file mode 100644 index 0000000..3422070 --- /dev/null +++ b/patches/glibc/2.2.2/arm-ctl_bus_isa.patch @@ -0,0 +1,51 @@ +Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004. +Needed to build glibc with linux kernels 2.4.23 or higher on ARM, +Fixes following error: + +../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys': +../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function) +../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once +../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.) +../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant +../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]') +../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant +../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]') +make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1 + +cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html + +--- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800 ++++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800 +@@ -47,6 +47,12 @@ + #include <asm/page.h> + #include <sys/sysctl.h> + ++/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */ ++#include <linux/version.h> ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)) ++#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */ ++#endif ++ + #define PATH_ARM_SYSTYPE "/etc/arm_systype" + #define PATH_CPUINFO "/proc/cpuinfo" + +@@ -80,7 +86,7 @@ + * Initialize I/O system. There are several ways to get the information + * we need. Each is tried in turn until one succeeds. + * +- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method ++ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method + * but not all kernels support it. + * + * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE. +@@ -100,8 +106,8 @@ + { + char systype[256]; + int i, n; +- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; +- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; ++ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; ++ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; + size_t len = sizeof(io.base); + + if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) diff --git a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc-3.4-grp.patch b/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc-3.4-grp.patch new file mode 100644 index 0000000..db70efb --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc-3.4-grp.patch @@ -0,0 +1,56 @@ +Fixes +initgroups.c: In function `internal_getgrouplist': +initgroups.c:179: error: parse error before "__FUNCTION__" + +CVSROOT: /cvs/glibc +Module name: libc +Changes by: roland@sources.redhat.com 2001-12-16 21:52:12 + +Modified files: + nss : nsswitch.c + grp : initgroups.c + +Log message: + 2001-12-16 Roland McGrath <roland@frob.com> + + * nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal. + * grp/initgroups.c (internal_getgrouplist): Likewise. + +http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc +http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc + +Removed 2nd hunk for glibc-2.1.3 (it was just whitespace) + +=================================================================== +RCS file: /cvs/glibc/libc/grp/initgroups.c,v +retrieving revision 1.26 +retrieving revision 1.27 +diff -u -r1.26 -r1.27 +--- libc/grp/initgroups.c 2001/07/06 04:54:46 1.26 ++++ libc/grp/initgroups.c 2001/12/17 05:52:11 1.27 +@@ -176,7 +176,7 @@ + + /* This is really only for debugging. */ + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) +- __libc_fatal ("illegal status in " __FUNCTION__); ++ __libc_fatal ("illegal status in internal_getgrouplist"); + + if (status != NSS_STATUS_SUCCESS + && nss_next_action (nip, status) == NSS_ACTION_RETURN) + +=================================================================== +RCS file: /cvs/glibc/libc/nss/nsswitch.c,v +retrieving revision 1.52 +retrieving revision 1.53 +diff -u -r1.52 -r1.53 +--- libc/nss/nsswitch.c 2001/07/17 08:21:36 1.52 ++++ libc/nss/nsswitch.c 2001/12/17 05:52:11 1.53 +@@ -178,7 +178,7 @@ + { + /* This is really only for debugging. */ + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) +- __libc_fatal ("illegal status in " __FUNCTION__); ++ __libc_fatal ("illegal status in __nss_next"); + + if (nss_next_action (*ni, status) == NSS_ACTION_RETURN) + return 1; diff --git a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-sscanf.patch b/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-sscanf.patch new file mode 100644 index 0000000..b1269e0 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-sscanf.patch @@ -0,0 +1,73 @@ +http://sources.redhat.com/ml/bug-glibc/2003-08/msg00087.html + +From: Gernot Hillier <gernot dot hillier at siemens dot com> +Organization: Siemens AG +To: Jeffrey Bedard <jefbed at e-list dot net>, bug-glibc at gnu dot org +Date: Mon, 18 Aug 2003 08:50:03 +0200 +References: <3F3D0899.6020004@e-list.net> +Message-Id: <200308180850.03431.gernot.hillier@siemens.com> +Subject: Re: Build Fails with gcc 3.3.1 +X-BeenThere: bug-glibc@gnu.org + +Hi! + +Am Freitag, 15. August 2003 18:21 schrieb Jeffrey Bedard: +> gcc sscanf.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes +[...] +> sscanf.c:31: warning: conflicting types for built-in function `sscanf' +> sscanf.c: In function `sscanf': +> sscanf.c:37: error: `va_start' used in function with fixed args +> .../stdio-common/_itoa.h: At top level: +> .../stdio-common/_itoa.h:40: warning: inlining failed in call to +> `_itoa_word' .../stdio-common/_itoa.h:76: warning: called from here +> make[2]: *** +> [/home/jefbed/src/packages/glibc-build/stdio-common/sscanf.o] Error 1 + +You can find the fitting patch in the glibc CVS. You have to replace some +function headers. + +I created a patch for glibc-2.2.5 for the same reason. I don't know if it +applies cleanly, but if not it should at least show you what to do... + +-- +Bye, + +Gernot Hillier +Siemens AG + + + + +Content-Disposition: attachment; filename="glibc-2.2.5-gcc-3.3.diff" + +diff -ur glibc-2.2.5.orig/stdio-common/sprintf.c glibc-2.2.5/stdio-common/sprintf.c +--- glibc-2.2.5.orig/stdio-common/sprintf.c 2001-07-06 06:55:41.000000000 +0200 ++++ glibc-2.2.5/stdio-common/sprintf.c 2003-08-11 13:25:48.000000000 +0200 +@@ -27,9 +27,7 @@ + /* Write formatted output into S, according to the format string FORMAT. */ + /* VARARGS2 */ + int +-sprintf (s, format) +- char *s; +- const char *format; ++sprintf (char *s, const char *format,...) + { + va_list arg; + int done; +Only in glibc-2.2.5/stdio-common: sprintf.c.orig +Only in glibc-2.2.5/stdio-common: sprintf.c.rej +diff -ur glibc-2.2.5.orig/stdio-common/sscanf.c glibc-2.2.5/stdio-common/sscanf.c +--- glibc-2.2.5.orig/stdio-common/sscanf.c 2001-07-06 06:55:41.000000000 +0200 ++++ glibc-2.2.5/stdio-common/sscanf.c 2003-08-11 13:27:58.000000000 +0200 +@@ -27,9 +27,7 @@ + /* Read formatted input from S, according to the format string FORMAT. */ + /* VARARGS2 */ + int +-sscanf (s, format) +- const char *s; +- const char *format; ++sscanf (const char *s, const char *format,...) + { + va_list arg; + int done; + diff --git a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-versioninfo.patch b/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-versioninfo.patch new file mode 100644 index 0000000..ce88879 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-versioninfo.patch @@ -0,0 +1,17 @@ +# gcc-3.x doesn't like run-on strings +# See also http://sources.redhat.com/ml/libc-alpha/2004-01/msg00032.html + +--- glibc-2.1.3/csu/Makefile.old 2004-03-04 12:18:52.000000000 -0800 ++++ glibc-2.1.3/csu/Makefile 2004-03-04 12:19:35.000000000 -0800 +@@ -188,8 +188,8 @@ + esac; \ + files="$(all-Banner-files)"; \ + if test -n "$$files"; then \ +- echo "\"Available extensions:"; \ +- sed -e '/^#/d' -e 's/^[[:space:]]*/ /' $$files; \ +- echo "\""; \ ++ echo -e "\"Available extensions:\\\\n\""; \ ++ sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \ ++ -e 's/^\(.*\)$$/\"\1\\n\"/' $$files; \ + fi) > $@T + mv -f $@T $@ diff --git a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc-3-configure.patch b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc-3-configure.patch new file mode 100644 index 0000000..efd6b2a --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc-3-configure.patch @@ -0,0 +1,21 @@ +Works around version check: + +checking for i686-unknown-linux-gnu-gcc... gcc +checking version of gcc... 3.4.2, bad +... +configure: error: +*** Some critical program is missing or too old. +*** Check the INSTALL file for required versions. + + +--- glibc-2.2.2/configure.old 2005-04-10 16:57:42.692071968 -0700 ++++ glibc-2.2.2/configure 2005-04-10 16:58:52.993384544 -0700 +@@ -1437,7 +1437,7 @@ + ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; +- *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*) ++ *gcc-2.9[5-9].*|*3.[234].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + diff --git a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-dl-machine-i386.patch b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-dl-machine-i386.patch new file mode 100644 index 0000000..b946165 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-dl-machine-i386.patch @@ -0,0 +1,232 @@ +Fixes errors: +In file included from dynamic-link.h:21, + from dl-load.c:32: +../sysdeps/i386/dl-machine.h:121: error: parse error before '.' token +../sysdeps/i386/dl-machine.h:122: error: stray '@' in program +../sysdeps/i386/dl-machine.h:125: error: syntax error at '#' token +../sysdeps/i386/dl-machine.h:128: error: syntax error at '#' token +../sysdeps/i386/dl-machine.h:129: error: syntax error at '#' token +../sysdeps/i386/dl-machine.h:129: error: stray '`' in program +../sysdeps/i386/dl-machine.h:129: error: missing terminating ' character +... +../sysdeps/i386/dl-machine.h:227:22: warning: character constant too long for its type +../sysdeps/i386/dl-machine.h:209: error: stray '\' in program +../sysdeps/i386/dl-machine.h:209: error: stray '\' in program +../sysdeps/i386/dl-machine.h:209: error: stray '\' in program +../sysdeps/i386/dl-machine.h:209: error: missing terminating " character +../sysdeps/i386/dl-machine.h: In function `dl_platform_init': +../sysdeps/i386/dl-machine.h:273: error: `_dl_platform' undeclared (first use in this function) +../sysdeps/i386/dl-machine.h:273: error: (Each undeclared identifier is reported only once +../sysdeps/i386/dl-machine.h:273: error: for each function it appears in.) +dl-load.c: In function `_dl_map_object_from_fd': +dl-load.c:1043: warning: use of cast expressions as lvalues is deprecated +dl-load.c:1043: warning: use of cast expressions as lvalues is deprecated +dl-load.c:1058: warning: use of cast expressions as lvalues is deprecated +dl-load.c:1058: warning: use of cast expressions as lvalues is deprecated + +dl-runtime.c:53: error: conflicting types for 'fixup' +../sysdeps/i386/dl-machine.h:67: error: previous declaration of 'fixup' was here +dl-runtime.c:53: error: conflicting types for 'fixup' +../sysdeps/i386/dl-machine.h:67: error: previous declaration of 'fixup' was here +dl-runtime.c:135: error: conflicting types for 'profile_fixup' +../sysdeps/i386/dl-machine.h:70: error: previous declaration of 'profile_fixup' was here +dl-runtime.c:135: error: conflicting types for 'profile_fixup' +../sysdeps/i386/dl-machine.h:70: error: previous declaration of 'profile_fixup' was here +../sysdeps/i386/dl-machine.h:67: warning: 'fixup' declared `static' but never defined +../sysdeps/i386/dl-machine.h:70: warning: 'profile_fixup' declared `static' but never defined + +Updated to repair breakage caused by unconditionally requiring ARCH_FIXUP_ATTRIBUTE +to be defined. (No wonder glibc-2.2.2 didn't build for anything but x86...) + +=================================================================== +--- glibc-2.2.2/sysdeps/i386/dl-machine.h.old 2005-04-11 17:45:13.000000000 -0700 ++++ glibc-2.2.2/sysdeps/i386/dl-machine.h 2005-04-12 10:01:47.000000000 -0700 +@@ -63,11 +63,14 @@ + destroys the passed register information. */ + /* GKM FIXME: Fix trampoline to pass bounds so we can do + without the `__unbounded' qualifier. */ ++ ++#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused)) ++ + static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset) +- __attribute__ ((regparm (2), unused)); ++ ARCH_FIXUP_ATTRIBUTE; + static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset, + ElfW(Addr) retaddr) +- __attribute__ ((regparm (3), unused)); ++ ARCH_FIXUP_ATTRIBUTE; + #endif + + /* Set up the loaded object described by L so its unrelocated PLT +@@ -117,68 +120,68 @@ + and then redirect to the address it returns. */ + #if !defined PROF && !__BOUNDED_POINTERS__ + # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ +- .text +- .globl _dl_runtime_resolve +- .type _dl_runtime_resolve, @function +- .align 16 +-_dl_runtime_resolve: +- pushl %eax # Preserve registers otherwise clobbered. +- pushl %ecx +- pushl %edx +- movl 16(%esp), %edx # Copy args pushed by PLT in register. Note +- movl 12(%esp), %eax # that `fixup' takes its parameters in regs. +- call fixup # Call resolver. +- popl %edx # Get register content back. +- popl %ecx +- xchgl %eax, (%esp) # Get %eax contents end store function address. +- ret $8 # Jump to function address. +- .size _dl_runtime_resolve, .-_dl_runtime_resolve +- +- .globl _dl_runtime_profile +- .type _dl_runtime_profile, @function +- .align 16 +-_dl_runtime_profile: +- pushl %eax # Preserve registers otherwise clobbered. +- pushl %ecx +- pushl %edx +- movl 20(%esp), %ecx # Load return address +- movl 16(%esp), %edx # Copy args pushed by PLT in register. Note +- movl 12(%esp), %eax # that `fixup' takes its parameters in regs. +- call profile_fixup # Call resolver. +- popl %edx # Get register content back. +- popl %ecx +- xchgl %eax, (%esp) # Get %eax contents end store function address. +- ret $8 # Jump to function address. +- .size _dl_runtime_profile, .-_dl_runtime_profile +- .previous ++ .text\n\ ++ .globl _dl_runtime_resolve\n\ ++ .type _dl_runtime_resolve, @function\n\ ++ .align 16\n\ ++_dl_runtime_resolve:\n\ ++ pushl %eax # Preserve registers otherwise clobbered.\n\ ++ pushl %ecx\n\ ++ pushl %edx\n\ ++ movl 16(%esp), %edx # Copy args pushed by PLT in register. Note\n\ ++ movl 12(%esp), %eax # that `fixup' takes its parameters in regs.\n\ ++ call fixup # Call resolver.\n\ ++ popl %edx # Get register content back.\n\ ++ popl %ecx\n\ ++ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\ ++ ret $8 # Jump to function address.\n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\ ++\n\ ++ .globl _dl_runtime_profile\n\ ++ .type _dl_runtime_profile, @function\n\ ++ .align 16\n\ ++_dl_runtime_profile:\n\ ++ pushl %eax # Preserve registers otherwise clobbered.\n\ ++ pushl %ecx\n\ ++ pushl %edx\n\ ++ movl 20(%esp), %ecx # Load return address\n\ ++ movl 16(%esp), %edx # Copy args pushed by PLT in register. Note\n\ ++ movl 12(%esp), %eax # that `fixup' takes its parameters in regs.\n\ ++ call profile_fixup # Call resolver.\n\ ++ popl %edx # Get register content back.\n\ ++ popl %ecx\n\ ++ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\ ++ ret $8 # Jump to function address.\n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile\n\ ++ .previous\n\ + "); + #else +-# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ +- .text +- .globl _dl_runtime_resolve +- .globl _dl_runtime_profile +- .type _dl_runtime_resolve, @function +- .type _dl_runtime_profile, @function +- .align 16 +-_dl_runtime_resolve: +-_dl_runtime_profile: +- pushl %eax # Preserve registers otherwise clobbered. +- pushl %ecx +- pushl %edx +- movl 16(%esp), %edx # Push the arguments for `fixup' +- movl 12(%esp), %eax +- pushl %edx +- pushl %eax +- call fixup # Call resolver. +- popl %edx # Pop the parameters +- popl %ecx +- popl %edx # Get register content back. +- popl %ecx +- xchgl %eax, (%esp) # Get %eax contents end store function address. +- ret $8 # Jump to function address. +- .size _dl_runtime_resolve, .-_dl_runtime_resolve +- .size _dl_runtime_profile, .-_dl_runtime_profile +- .previous ++# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\ ++ .text\n\ ++ .globl _dl_runtime_resolve\n\ ++ .globl _dl_runtime_profile\n\ ++ .type _dl_runtime_resolve, @function\n\ ++ .type _dl_runtime_profile, @function\n\ ++ .align 16\n\ ++_dl_runtime_resolve:\n\ ++_dl_runtime_profile:\n\ ++ pushl %eax # Preserve registers otherwise clobbered.\n\ ++ pushl %ecx\n\ ++ pushl %edx\n\ ++ movl 16(%esp), %edx # Push the arguments for `fixup'\n\ ++ movl 12(%esp), %eax\n\ ++ pushl %edx\n\ ++ pushl %eax\n\ ++ call fixup # Call resolver.\n\ ++ popl %edx # Pop the parameters\n\ ++ popl %ecx\n\ ++ popl %edx # Get register content back.\n\ ++ popl %ecx\n\ ++ xchgl %eax, (%esp) # Get %eax contents end store function address.\n\ ++ ret $8 # Jump to function address.\n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile\n\ ++ .previous\n\ + "); + #endif + +@@ -205,7 +208,7 @@ + _dl_start_user:\n\ + # Save the user entry point address in %edi.\n\ + movl %eax, %edi\n\ +- # Point %ebx at the GOT. ++ # Point %ebx at the GOT.\n\ + call 0b\n\ + addl $_GLOBAL_OFFSET_TABLE_, %ebx\n\ + # Store the highest stack address\n\ + +=================================================================== +--- glibc-2.2.2/elf/dl-runtime.c.old 2005-07-07 15:40:26.000000000 -0700 ++++ glibc-2.2.2/elf/dl-runtime.c 2005-07-07 15:41:57.000000000 -0700 +@@ -33,6 +33,11 @@ + # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym)) + #endif + ++/* The fixup functions might have need special attributes. If none ++ are provided define the macro as empty. */ ++#ifndef ARCH_FIXUP_ATTRIBUTE ++# define ARCH_FIXUP_ATTRIBUTE ++#endif + + /* This function is called through a special trampoline from the PLT the + first time each PLT entry is called. We must perform the relocation +@@ -42,7 +47,7 @@ + function. */ + + #ifndef ELF_MACHINE_NO_PLT +-static ElfW(Addr) __attribute__ ((unused)) ++static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE + fixup ( + # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, +@@ -126,7 +131,7 @@ + + #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__ + +-static ElfW(Addr) __attribute__ ((unused)) ++static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE + profile_fixup ( + #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, diff --git a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-errlist.patch b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-errlist.patch new file mode 100644 index 0000000..1a9d407 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-errlist.patch @@ -0,0 +1,18 @@ +Fixes error +../sysdeps/unix/sysv/linux/errlist.c:41: error: weak declaration of '_old_sys_nerr' must precede definition + +=================================================================== +--- glibc-2.2.2/sysdeps/unix/sysv/linux/errlist.c.old 2005-04-11 16:58:21.000000000 -0700 ++++ glibc-2.2.2/sysdeps/unix/sysv/linux/errlist.c 2005-04-11 16:58:10.000000000 -0700 +@@ -38,10 +38,9 @@ + const int __old_sys_nerr = OLD_ERRLIST_SIZE; + + strong_alias (__old_sys_nerr, _old_sys_nerr); +-weak_alias (__old_sys_nerr, _old_sys_nerr) + compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0); + compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0); +-weak_alias (__old_sys_errlist, _old_sys_errlist); ++strong_alias (__old_sys_errlist, _old_sys_errlist); + compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0); + compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0); + #endif diff --git a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-longlong.patch b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-longlong.patch new file mode 100644 index 0000000..b119b92 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-longlong.patch @@ -0,0 +1,811 @@ +Fixes error +./longlong.h:423: error: parse error before '%' token +./longlong.h:423: error: missing terminating " character +./longlong.h:432: error: missing terminating " character +See also patches/glibc-2.1.3/glibc-2.1.3-allow-gcc3-longlong.patch + +=================================================================== +--- glibc-2.2.2/stdlib/longlong.h.old 2000-02-11 15:48:58.000000000 -0800 ++++ glibc-2.2.2/stdlib/longlong.h 2005-04-11 15:36:10.000000000 -0700 +@@ -108,8 +108,8 @@ + + #if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("add %1,%4,%5 +- addc %0,%2,%3" \ ++ __asm__ ("add %1,%4,%5\n" \ ++ "addc %0,%2,%3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%r" ((USItype) (ah)), \ +@@ -117,8 +117,8 @@ + "%r" ((USItype) (al)), \ + "rI" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("sub %1,%4,%5 +- subc %0,%2,%3" \ ++ __asm__ ("sub %1,%4,%5\n" \ ++ "subc %0,%2,%3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "r" ((USItype) (ah)), \ +@@ -175,8 +175,8 @@ + + #if defined (__arc__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("add.f %1, %4, %5 +- adc %0, %2, %3" \ ++ __asm__ ("add.f %1, %4, %5\n" \ ++ "adc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%r" ((USItype) (ah)), \ +@@ -184,8 +184,8 @@ + "%r" ((USItype) (al)), \ + "rIJ" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("sub.f %1, %4, %5 +- sbc %0, %2, %3" \ ++ __asm__ ("sub.f %1, %4, %5\n" \ ++ "sbc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "r" ((USItype) (ah)), \ +@@ -206,8 +206,8 @@ + + #if defined (__arm__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("adds %1, %4, %5 +- adc %0, %2, %3" \ ++ __asm__ ("adds %1, %4, %5\n" \ ++ "adc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%r" ((USItype) (ah)), \ +@@ -215,8 +215,8 @@ + "%r" ((USItype) (al)), \ + "rI" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subs %1, %4, %5 +- sbc %0, %2, %3" \ ++ __asm__ ("subs %1, %4, %5\n" \ ++ "sbc %0, %2, %3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "r" ((USItype) (ah)), \ +@@ -225,19 +225,19 @@ + "rI" ((USItype) (bl))) + #define umul_ppmm(xh, xl, a, b) \ + {register USItype __t0, __t1, __t2; \ +- __asm__ ("%@ Inlined umul_ppmm +- mov %2, %5, lsr #16 +- mov %0, %6, lsr #16 +- bic %3, %5, %2, lsl #16 +- bic %4, %6, %0, lsl #16 +- mul %1, %3, %4 +- mul %4, %2, %4 +- mul %3, %0, %3 +- mul %0, %2, %0 +- adds %3, %4, %3 +- addcs %0, %0, #65536 +- adds %1, %1, %3, lsl #16 +- adc %0, %0, %3, lsr #16" \ ++ __asm__ ("%@ Inlined umul_ppmm\n" \ ++ "mov %2, %5, lsr #16\n" \ ++ "mov %0, %6, lsr #16\n" \ ++ "bic %3, %5, %2, lsl #16\n" \ ++ "bic %4, %6, %0, lsl #16\n" \ ++ "mul %1, %3, %4\n" \ ++ "mul %4, %2, %4\n" \ ++ "mul %3, %0, %3\n" \ ++ "mul %0, %2, %0\n" \ ++ "adds %3, %4, %3\n" \ ++ "addcs %0, %0, #65536\n" \ ++ "adds %1, %1, %3, lsl #16\n" \ ++ "adc %0, %0, %3, lsr #16" \ + : "=&r" ((USItype) (xh)), \ + "=r" ((USItype) (xl)), \ + "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \ +@@ -277,8 +277,8 @@ + + #if defined (__gmicro__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("add.w %5,%1 +- addx %3,%0" \ ++ __asm__ ("add.w %5,%1\n" \ ++ "addx %3,%0" \ + : "=g" ((USItype) (sh)), \ + "=&g" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -286,8 +286,8 @@ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("sub.w %5,%1 +- subx %3,%0" \ ++ __asm__ ("sub.w %5,%1\n" \ ++ "subx %3,%0" \ + : "=g" ((USItype) (sh)), \ + "=&g" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ +@@ -316,8 +316,8 @@ + + #if defined (__hppa) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("add %4,%5,%1 +- addc %2,%3,%0" \ ++ __asm__ ("add %4,%5,%1\n" \ ++ "addc %2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%rM" ((USItype) (ah)), \ +@@ -325,8 +325,8 @@ + "%rM" ((USItype) (al)), \ + "rM" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("sub %4,%5,%1 +- subb %2,%3,%0" \ ++ __asm__ ("sub %4,%5,%1\n" \ ++ "subb %2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "rM" ((USItype) (ah)), \ +@@ -357,22 +357,22 @@ + do { \ + USItype __tmp; \ + __asm__ ( \ +- "ldi 1,%0 +- extru,= %1,15,16,%%r0 ; Bits 31..16 zero? +- extru,tr %1,15,16,%1 ; No. Shift down, skip add. +- ldo 16(%0),%0 ; Yes. Perform add. +- extru,= %1,23,8,%%r0 ; Bits 15..8 zero? +- extru,tr %1,23,8,%1 ; No. Shift down, skip add. +- ldo 8(%0),%0 ; Yes. Perform add. +- extru,= %1,27,4,%%r0 ; Bits 7..4 zero? +- extru,tr %1,27,4,%1 ; No. Shift down, skip add. +- ldo 4(%0),%0 ; Yes. Perform add. +- extru,= %1,29,2,%%r0 ; Bits 3..2 zero? +- extru,tr %1,29,2,%1 ; No. Shift down, skip add. +- ldo 2(%0),%0 ; Yes. Perform add. +- extru %1,30,1,%1 ; Extract bit 1. +- sub %0,%1,%0 ; Subtract it. +- " : "=r" (count), "=r" (__tmp) : "1" (x)); \ ++ "ldi 1,%0\n" \ ++ "extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \ ++ "extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n" \ ++ "ldo 16(%0),%0 ; Yes. Perform add.\n" \ ++ "extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \ ++ "extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n" \ ++ "ldo 8(%0),%0 ; Yes. Perform add.\n" \ ++ "extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \ ++ "extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n" \ ++ "ldo 4(%0),%0 ; Yes. Perform add.\n" \ ++ "extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \ ++ "extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n" \ ++ "ldo 2(%0),%0 ; Yes. Perform add.\n" \ ++ "extru %1,30,1,%1 ; Extract bit 1.\n" \ ++ "sub %0,%1,%0 ; Subtract it.\n" \ ++ : "=r" (count), "=r" (__tmp) : "1" (x)); \ + } while (0) + #endif + +@@ -419,8 +419,8 @@ + + #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("addl %5,%1 +- adcl %3,%0" \ ++ __asm__ ("addl %5,%1\n" \ ++ "adcl %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -428,8 +428,8 @@ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subl %5,%1 +- sbbl %3,%0" \ ++ __asm__ ("subl %5,%1\n" \ ++ "sbbl %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ +@@ -525,9 +525,9 @@ + #if defined (__M32R__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + /* The cmp clears the condition bit. */ \ +- __asm__ ("cmp %0,%0 +- addx %%5,%1 +- addx %%3,%0" \ ++ __asm__ ("cmp %0,%0\n" \ ++ "addx %%5,%1\n" \ ++ "addx %%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -537,9 +537,9 @@ + : "cbit") + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + /* The cmp clears the condition bit. */ \ +- __asm__ ("cmp %0,%0 +- subx %5,%1 +- subx %3,%0" \ ++ __asm__ ("cmp %0,%0\n" \ ++ "subx %5,%1\n" \ ++ "subx %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ +@@ -551,8 +551,8 @@ + + #if defined (__mc68000__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("add%.l %5,%1 +- addx%.l %3,%0" \ ++ __asm__ ("add%.l %5,%1\n" \ ++ "addx%.l %3,%0" \ + : "=d" ((USItype) (sh)), \ + "=&d" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -560,8 +560,8 @@ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("sub%.l %5,%1 +- subx%.l %3,%0" \ ++ __asm__ ("sub%.l %5,%1\n" \ ++ "subx%.l %3,%0" \ + : "=d" ((USItype) (sh)), \ + "=&d" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ +@@ -602,32 +602,32 @@ + #if !defined(__mcf5200__) + /* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX. */ + #define umul_ppmm(xh, xl, a, b) \ +- __asm__ ("| Inlined umul_ppmm +- move%.l %2,%/d0 +- move%.l %3,%/d1 +- move%.l %/d0,%/d2 +- swap %/d0 +- move%.l %/d1,%/d3 +- swap %/d1 +- move%.w %/d2,%/d4 +- mulu %/d3,%/d4 +- mulu %/d1,%/d2 +- mulu %/d0,%/d3 +- mulu %/d0,%/d1 +- move%.l %/d4,%/d0 +- eor%.w %/d0,%/d0 +- swap %/d0 +- add%.l %/d0,%/d2 +- add%.l %/d3,%/d2 +- jcc 1f +- add%.l %#65536,%/d1 +-1: swap %/d2 +- moveq %#0,%/d0 +- move%.w %/d2,%/d0 +- move%.w %/d4,%/d2 +- move%.l %/d2,%1 +- add%.l %/d1,%/d0 +- move%.l %/d0,%0" \ ++ __asm__ ("| Inlined umul_ppmm\n" \ ++ "move%.l %2,%/d0\n" \ ++ "move%.l %3,%/d1\n" \ ++ "move%.l %/d0,%/d2\n" \ ++ "swap %/d0\n" \ ++ "move%.l %/d1,%/d3\n" \ ++ "swap %/d1\n" \ ++ "move%.w %/d2,%/d4\n" \ ++ "mulu %/d3,%/d4\n" \ ++ "mulu %/d1,%/d2\n" \ ++ "mulu %/d0,%/d3\n" \ ++ "mulu %/d0,%/d1\n" \ ++ "move%.l %/d4,%/d0\n" \ ++ "eor%.w %/d0,%/d0\n" \ ++ "swap %/d0\n" \ ++ "add%.l %/d0,%/d2\n" \ ++ "add%.l %/d3,%/d2\n" \ ++ "jcc 1f\n" \ ++ "add%.l %#65536,%/d1\n" \ ++"1: swap %/d2\n" \ ++ "moveq %#0,%/d0\n" \ ++ "move%.w %/d2,%/d0\n" \ ++ "move%.w %/d4,%/d2\n" \ ++ "move%.l %/d2,%1\n" \ ++ "add%.l %/d1,%/d0\n" \ ++ "move%.l %/d0,%0" \ + : "=g" ((USItype) (xh)), \ + "=g" ((USItype) (xl)) \ + : "g" ((USItype) (a)), \ +@@ -653,8 +653,8 @@ + + #if defined (__m88000__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("addu.co %1,%r4,%r5 +- addu.ci %0,%r2,%r3" \ ++ __asm__ ("addu.co %1,%r4,%r5\n" \ ++ "addu.ci %0,%r2,%r3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%rJ" ((USItype) (ah)), \ +@@ -662,8 +662,8 @@ + "%rJ" ((USItype) (al)), \ + "rJ" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subu.co %1,%r4,%r5 +- subu.ci %0,%r2,%r3" \ ++ __asm__ ("subu.co %1,%r4,%r5\n" \ ++ "subu.ci %0,%r2,%r3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "rJ" ((USItype) (ah)), \ +@@ -880,8 +880,8 @@ + + #if defined (__pyr__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("addw %5,%1 +- addwc %3,%0" \ ++ __asm__ ("addw %5,%1\n" \ ++ "addwc %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -889,8 +889,8 @@ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subw %5,%1 +- subwb %3,%0" \ ++ __asm__ ("subw %5,%1\n" \ ++ "subwb %3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ +@@ -902,8 +902,8 @@ + ({union {UDItype __ll; \ + struct {USItype __h, __l;} __i; \ + } __xx; \ +- __asm__ ("movw %1,%R0 +- uemul %2,%0" \ ++ __asm__ ("movw %1,%R0\n" \ ++ "uemul %2,%0" \ + : "=&r" (__xx.__ll) \ + : "g" ((USItype) (u)), \ + "g" ((USItype) (v))); \ +@@ -912,8 +912,8 @@ + + #if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("a %1,%5 +- ae %0,%3" \ ++ __asm__ ("a %1,%5\n" \ ++ "ae %0,%3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -921,8 +921,8 @@ + "%1" ((USItype) (al)), \ + "r" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("s %1,%5 +- se %0,%3" \ ++ __asm__ ("s %1,%5\n" \ ++ "se %0,%3" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ +@@ -933,26 +933,26 @@ + do { \ + USItype __m0 = (m0), __m1 = (m1); \ + __asm__ ( \ +- "s r2,r2 +- mts r10,%2 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- m r2,%3 +- cas %0,r2,r0 +- mfs r10,%1" \ ++ "s r2,r2\n" ++ "mts r10,%2\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "m r2,%3\n" \ ++ "cas %0,r2,r0\n" \ ++ "mfs r10,%1" \ + : "=r" ((USItype) (ph)), \ + "=r" ((USItype) (pl)) \ + : "%r" (__m0), \ +@@ -982,9 +982,9 @@ + #if defined (__sh2__) && W_TYPE_SIZE == 32 + #define umul_ppmm(w1, w0, u, v) \ + __asm__ ( \ +- "dmulu.l %2,%3 +- sts macl,%1 +- sts mach,%0" \ ++ "dmulu.l %2,%3\n" \ ++ "sts macl,%1\n" \ ++ "sts mach,%0" \ + : "=r" ((USItype)(w1)), \ + "=r" ((USItype)(w0)) \ + : "r" ((USItype)(u)), \ +@@ -996,8 +996,8 @@ + #if defined (__sparc__) && !defined(__arch64__) \ + && !defined(__sparcv9) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("addcc %r4,%5,%1 +- addx %r2,%3,%0" \ ++ __asm__ ("addcc %r4,%5,%1\n" \ ++ "addx %r2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "%rJ" ((USItype) (ah)), \ +@@ -1006,8 +1006,8 @@ + "rI" ((USItype) (bl)) \ + __CLOBBER_CC) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subcc %r4,%5,%1 +- subx %r2,%3,%0" \ ++ __asm__ ("subcc %r4,%5,%1\n" \ ++ "subx %r2,%3,%0" \ + : "=r" ((USItype) (sh)), \ + "=&r" ((USItype) (sl)) \ + : "rJ" ((USItype) (ah)), \ +@@ -1040,45 +1040,45 @@ + : "r" ((USItype) (u)), \ + "r" ((USItype) (v))) + #define udiv_qrnnd(q, r, n1, n0, d) \ +- __asm__ ("! Inlined udiv_qrnnd +- wr %%g0,%2,%%y ! Not a delayed write for sparclite +- tst %%g0 +- divscc %3,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%%g1 +- divscc %%g1,%4,%0 +- rd %%y,%1 +- bl,a 1f +- add %1,%4,%1 +-1: ! End of inline udiv_qrnnd" \ ++ __asm__ ("! Inlined udiv_qrnnd\n" \ ++ "wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \ ++ "tst %%g0\n" \ ++ "divscc %3,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%%g1\n" \ ++ "divscc %%g1,%4,%0\n" \ ++ "rd %%y,%1\n" \ ++ "bl,a 1f\n" \ ++ "add %1,%4,%1\n" \ ++"1: ! End of inline udiv_qrnnd" \ + : "=r" ((USItype) (q)), \ + "=r" ((USItype) (r)) \ + : "r" ((USItype) (n1)), \ +@@ -1099,46 +1099,46 @@ + /* SPARC without integer multiplication and divide instructions. + (i.e. at least Sun4/20,40,60,65,75,110,260,280,330,360,380,470,490) */ + #define umul_ppmm(w1, w0, u, v) \ +- __asm__ ("! Inlined umul_ppmm +- wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr +- sra %3,31,%%o5 ! Don't move this insn +- and %2,%%o5,%%o5 ! Don't move this insn +- andcc %%g0,0,%%g1 ! Don't move this insn +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,%3,%%g1 +- mulscc %%g1,0,%%g1 +- add %%g1,%%o5,%0 +- rd %%y,%1" \ ++ __asm__ ("! Inlined umul_ppmm\n" \ ++ "wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n" \ ++ "sra %3,31,%%o5 ! Don't move this insn\n" \ ++ "and %2,%%o5,%%o5 ! Don't move this insn\n" \ ++ "andcc %%g0,0,%%g1 ! Don't move this insn\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,%3,%%g1\n" \ ++ "mulscc %%g1,0,%%g1\n" \ ++ "add %%g1,%%o5,%0\n" \ ++ "rd %%y,%1" \ + : "=r" ((USItype) (w1)), \ + "=r" ((USItype) (w0)) \ + : "%rI" ((USItype) (u)), \ +@@ -1148,30 +1148,30 @@ + /* It's quite necessary to add this much assembler for the sparc. + The default udiv_qrnnd (in C) is more than 10 times slower! */ + #define udiv_qrnnd(q, r, n1, n0, d) \ +- __asm__ ("! Inlined udiv_qrnnd +- mov 32,%%g1 +- subcc %1,%2,%%g0 +-1: bcs 5f +- addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb +- sub %1,%2,%1 ! this kills msb of n +- addx %1,%1,%1 ! so this can't give carry +- subcc %%g1,1,%%g1 +-2: bne 1b +- subcc %1,%2,%%g0 +- bcs 3f +- addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb +- b 3f +- sub %1,%2,%1 ! this kills msb of n +-4: sub %1,%2,%1 +-5: addxcc %1,%1,%1 +- bcc 2b +- subcc %%g1,1,%%g1 +-! Got carry from n. Subtract next step to cancel this carry. +- bne 4b +- addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb +- sub %1,%2,%1 +-3: xnor %0,0,%0 +- ! End of inline udiv_qrnnd" \ ++ __asm__ ("! Inlined udiv_qrnnd\n" \ ++ "mov 32,%%g1\n" \ ++ "subcc %1,%2,%%g0\n" \ ++"1: bcs 5f\n" \ ++ "addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \ ++ "sub %1,%2,%1 ! this kills msb of n\n" \ ++ "addx %1,%1,%1 ! so this can't give carry\n" \ ++ "subcc %%g1,1,%%g1\n" \ ++"2: bne 1b\n" \ ++ "subcc %1,%2,%%g0\n" \ ++ "bcs 3f\n" \ ++ "addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \ ++ "b 3f\n" \ ++ "sub %1,%2,%1 ! this kills msb of n\n" \ ++"4: sub %1,%2,%1\n" \ ++"5: addxcc %1,%1,%1\n" \ ++ "bcc 2b\n" \ ++ "subcc %%g1,1,%%g1\n" \ ++"! Got carry from n. Subtract next step to cancel this carry.\n" \ ++ "bne 4b\n" \ ++ "addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb\n" \ ++ "sub %1,%2,%1\n" \ ++"3: xnor %0,0,%0\n" \ ++ "! End of inline udiv_qrnnd" \ + : "=&r" ((USItype) (q)), \ + "=&r" ((USItype) (r)) \ + : "r" ((USItype) (d)), \ +@@ -1185,11 +1185,11 @@ + #if ((defined (__sparc__) && defined (__arch64__)) \ + || defined (__sparcv9)) && W_TYPE_SIZE == 64 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("addcc %r4,%5,%1 +- add %r2,%3,%0 +- bcs,a,pn %%xcc, 1f +- add %0, 1, %0 +- 1:" \ ++ __asm__ ("addcc %r4,%5,%1\n" \ ++ "add %r2,%3,%0\n" \ ++ "bcs,a,pn %%xcc, 1f\n" \ ++ "add %0, 1, %0\n" \ ++ "1:" \ + : "=r" ((UDItype)(sh)), \ + "=&r" ((UDItype)(sl)) \ + : "%rJ" ((UDItype)(ah)), \ +@@ -1199,11 +1199,11 @@ + __CLOBBER_CC) + + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subcc %r4,%5,%1 +- sub %r2,%3,%0 +- bcs,a,pn %%xcc, 1f +- sub %0, 1, %0 +- 1:" \ ++ __asm__ ("subcc %r4,%5,%1\n" \ ++ "sub %r2,%3,%0\n" \ ++ "bcs,a,pn %%xcc, 1f\n" \ ++ "sub %0, 1, %0\n" \ ++ "1:" \ + : "=r" ((UDItype)(sh)), \ + "=&r" ((UDItype)(sl)) \ + : "rJ" ((UDItype)(ah)), \ +@@ -1216,27 +1216,27 @@ + do { \ + UDItype tmp1, tmp2, tmp3, tmp4; \ + __asm__ __volatile__ ( \ +- "srl %7,0,%3 +- mulx %3,%6,%1 +- srlx %6,32,%2 +- mulx %2,%3,%4 +- sllx %4,32,%5 +- srl %6,0,%3 +- sub %1,%5,%5 +- srlx %5,32,%5 +- addcc %4,%5,%4 +- srlx %7,32,%5 +- mulx %3,%5,%3 +- mulx %2,%5,%5 +- sethi %%hi(0x80000000),%2 +- addcc %4,%3,%4 +- srlx %4,32,%4 +- add %2,%2,%2 +- movcc %%xcc,%%g0,%2 +- addcc %5,%4,%5 +- sllx %3,32,%3 +- add %1,%3,%1 +- add %5,%2,%0" \ ++ "srl %7,0,%3\n" \ ++ "mulx %3,%6,%1\n" \ ++ "srlx %6,32,%2\n" \ ++ "mulx %2,%3,%4\n" \ ++ "sllx %4,32,%5\n" \ ++ "srl %6,0,%3\n" \ ++ "sub %1,%5,%5\n" \ ++ "srlx %5,32,%5\n" \ ++ "addcc %4,%5,%4\n" \ ++ "srlx %7,32,%5\n" \ ++ "mulx %3,%5,%3\n" \ ++ "mulx %2,%5,%5\n" \ ++ "sethi %%hi(0x80000000),%2\n" \ ++ "addcc %4,%3,%4\n" \ ++ "srlx %4,32,%4\n" \ ++ "add %2,%2,%2\n" \ ++ "movcc %%xcc,%%g0,%2\n" \ ++ "addcc %5,%4,%5\n" \ ++ "sllx %3,32,%3\n" \ ++ "add %1,%3,%1\n" \ ++ "add %5,%2,%0" \ + : "=r" ((UDItype)(wh)), \ + "=&r" ((UDItype)(wl)), \ + "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4) \ +@@ -1250,8 +1250,8 @@ + + #if defined (__vax__) && W_TYPE_SIZE == 32 + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ +- __asm__ ("addl2 %5,%1 +- adwc %3,%0" \ ++ __asm__ ("addl2 %5,%1\n" \ ++ "adwc %3,%0" \ + : "=g" ((USItype) (sh)), \ + "=&g" ((USItype) (sl)) \ + : "%0" ((USItype) (ah)), \ +@@ -1259,8 +1259,8 @@ + "%1" ((USItype) (al)), \ + "g" ((USItype) (bl))) + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ +- __asm__ ("subl2 %5,%1 +- sbwc %3,%0" \ ++ __asm__ ("subl2 %5,%1\n" \ ++ "sbwc %3,%0" \ + : "=g" ((USItype) (sh)), \ + "=&g" ((USItype) (sl)) \ + : "0" ((USItype) (ah)), \ diff --git a/patches/glibc/2.2.2/glibc-2.2.2-export_fp_hw.patch b/patches/glibc/2.2.2/glibc-2.2.2-export_fp_hw.patch new file mode 100644 index 0000000..a14e1d4 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-export_fp_hw.patch @@ -0,0 +1,30 @@ +Fixes undefined symbol _fp_hw required by the ABI: +readelf -s /opt/crosstool/i686-pc-linux-gnu/i686-unknown-linux-gnu/gcc-3.4.3-glibc-2.2.2/i686-unknown-linux-gnu/lib/crt1.o | grep fp_hw + 29: 00000000 4 NOTYPE GLOBAL DEFAULT UND _fp_hw +Rumored to fix problems with icc, which gets upset at any symbol +which is undefined, even if nobody cares about it. + +Revision 1.16, Thu Feb 22 19:57:34 2001 UTC (4 years, 2 months ago) by drepper +Branch: MAIN +CVS Tags: glibc-2_2_3 +Changes since 1.15: +1 -1 lines +Diff to previous 1.15 (colored) + +(_fp_hw): Actually define label. + +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/i386/elf/start.S,v +retrieving revision 1.15 +retrieving revision 1.16 +diff -u -r1.15 -r1.16 +--- libc/sysdeps/i386/elf/start.S 2001/02/03 21:34:54 1.15 ++++ libc/sysdeps/i386/elf/start.S 2001/02/22 19:57:34 1.16 +@@ -85,7 +85,7 @@ + meaningless since we don't support machines < 80386. */ + .section .rodata + .globl _fp_hw +- .long 3 ++_fp_hw: .long 3 + .size _fp_hw, 4 + + /* Define a symbol for the first piece of initialized data. */ diff --git a/patches/glibc/2.2.2/glibc-2.2.2-printf-not-macro.patch b/patches/glibc/2.2.2/glibc-2.2.2-printf-not-macro.patch new file mode 100644 index 0000000..eae6fec --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-printf-not-macro.patch @@ -0,0 +1,36 @@ +I'm testing toolchains with glibc-2.2.2 now. It looks ok except +that glibc-2.2.2 headers contain the gosh-awful line + # define printf(fmt, args...) fprintf (stdout, fmt, ##args) +which causes builds of programs with methods named 'printf' to fail with + error: `stdout' is not a type +Feh. + +Revision 1.8, Thu Aug 2 16:09:51 2001 UTC (3 years, 9 months ago) by aj +Branch: MAIN +CVS Tags: glibc-2_3_2, glibc-2_2_4, glibc-2-3-1, glibc-2-3, glibc-2-2-branch, glibc-2-2-5 + +(printf): Remove printf optimization since GCC 3.0 can optimize printf. + +http://sourceware.org/cgi-bin/cvsweb.cgi/libc/libio/bits/stdio.h.diff?r1=1.7&r2=1.8&cvsroot=glibc + +=================================================================== +RCS file: /cvs/glibc/libc/libio/bits/stdio.h,v +retrieving revision 1.7 +retrieving revision 1.8 +diff -u -r1.7 -r1.8 +--- libc/libio/bits/stdio.h 2001/07/06 04:55:32 1.7 ++++ libc/libio/bits/stdio.h 2001/08/02 16:09:51 1.8 +@@ -29,13 +29,6 @@ + + + #ifdef __USE_EXTERN_INLINES +-/* Since version 2.97 GCC knows about `fprintf' and can optimize certain +- cases. Help gcc to optimize more code by mapping `printf' to the known +- `fprintf' function. Unfortunately we have to use a macro. */ +-# if __GNUC_PREREQ (2,97) +-# define printf(fmt, args...) fprintf (stdout, fmt, ##args) +-# endif +- + /* Write formatted output to stdout from argument list ARG. */ + __STDIO_INLINE int + vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW diff --git a/patches/glibc/2.2.2/glibc-2.2.2-syslog-bugfix.patch b/patches/glibc/2.2.2/glibc-2.2.2-syslog-bugfix.patch new file mode 100644 index 0000000..1a48c00 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.2-syslog-bugfix.patch @@ -0,0 +1,60 @@ +Backport a bugfix from glibc-2.2.5 to glibc-2.2.2 for the following problem: + When syslog-ng is restarted (or HUPed), vixie-cron (and probably other + programs) stop logging to syslog. + + +2001-08-27 Ulrich Drepper <Drepper@redhat.com> * misc/syslog.c (vsyslog): + Try a bit harder to use syslogd. If the connection went down after we + first used it try to connect again and resend the message before printing + to the console. + +http://sourceware.org/cgi-bin/cvsweb.cgi/libc/misc/Attic/syslog.c.diff?r1=1.32&r2=1.30&cvsroot=glibc +[ paths adjusted ] + +=================================================================== +RCS file: /cvs/glibc/libc/misc/Attic/syslog.c,v +retrieving revision 1.30 +retrieving revision 1.32 +diff -u -r1.30 -r1.32 +--- glibc-2.2.2/misc/syslog.c 2001/08/24 03:21:14 1.30 ++++ glibc-2.2.5/misc/syslog.c 2001/08/30 23:13:49 1.32 +@@ -239,17 +239,29 @@ + + if (!connected || __send(LogFile, buf, bufsize, 0) < 0) + { +- closelog_internal (); /* attempt re-open next time */ +- /* +- * Output the message to the console; don't worry about blocking, +- * if console blocks everything will. Make sure the error reported +- * is the one from the syslogd failure. +- */ +- if (LogStat & LOG_CONS && +- (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0) ++ if (connected) + { +- dprintf (fd, "%s\r\n", buf + msgoff); +- (void)__close(fd); ++ /* Try to reopen the syslog connection. Maybe it went ++ down. */ ++ closelog_internal (); ++ openlog_internal(LogTag, LogStat | LOG_NDELAY, 0); ++ } ++ ++ if (!connected || __send(LogFile, buf, bufsize, 0) < 0) ++ { ++ closelog_internal (); /* attempt re-open next time */ ++ /* ++ * Output the message to the console; don't worry ++ * about blocking, if console blocks everything will. ++ * Make sure the error reported is the one from the ++ * syslogd failure. ++ */ ++ if (LogStat & LOG_CONS && ++ (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0) ++ { ++ dprintf (fd, "%s\r\n", buf + msgoff); ++ (void)__close(fd); ++ } + } + } + diff --git a/patches/glibc/2.2.2/glibc-2.2.5-alpha-pwrite64.patch b/patches/glibc/2.2.2/glibc-2.2.5-alpha-pwrite64.patch new file mode 100644 index 0000000..89cc9ea --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.5-alpha-pwrite64.patch @@ -0,0 +1,58 @@ +Fix for this error: + +../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread': +../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function) +../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once +../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.) +make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1 +make[2]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix' +make[1]: *** [posix/subdir_lib] Error 2 +make[1]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5' +make: *** [all] Error 2 + +[ Same as glibc-2.3.2-alpha-pwrite.patch except for copyright date ] + +extracted from GLIBC CVS by Dan Kegel +wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc' +(to match context of...) +wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc' +and rediffed. + +cf. +http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html + +Originally thought we needed this hunk, too: +http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html +but it seems the sysdep.h change is sufficient, and works better +when compiling against linux-2.4. + +=================================================================== +--- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old 2004-05-24 22:21:44.000000000 -0700 ++++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h 2004-05-24 22:22:48.000000000 -0700 +@@ -1,3 +1,3 @@ +-/* Copyright (C) 1992, 1993, 1995, 1996, 1997 Free Software Foundation, Inc. ++/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995. +@@ -60,6 +60,21 @@ + #define __NR_osf_getsysinfo 256 + #define __NR_osf_setsysinfo 257 + ++/* Help old kernel headers where particular syscalls are not available. */ ++#ifndef __NR_semtimedop ++# define __NR_semtimedop 423 ++#endif ++ ++/* This is a kludge to make syscalls.list find these under the names ++ pread and pwrite, since some kernel headers define those names ++ and some define the *64 names for the same system calls. */ ++#if !defined __NR_pread && defined __NR_pread64 ++# define __NR_pread __NR_pread64 ++#endif ++#if !defined __NR_pwrite && defined __NR_pwrite64 ++# define __NR_pwrite __NR_pwrite64 ++#endif ++ + /* + * In order to get the hidden arguments for rt_sigaction set up + * properly, we need to call the assembly version. Detect this in the diff --git a/patches/glibc/2.2.2/glibc-2.2.5-arm-pwrite64.patch b/patches/glibc/2.2.2/glibc-2.2.5-arm-pwrite64.patch new file mode 100644 index 0000000..c4bd19c --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.5-arm-pwrite64.patch @@ -0,0 +1,30 @@ +Should fix + +../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread': +../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function) +../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once +../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.) +make[2]: *** [/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1 +make[2]: Leaving directory `/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix' +make[1]: *** [posix/subdir_lib] Error 2 + +Copied from similar patch for alpha. + +--- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/arm/sysdep.h 2001-07-05 21:56:13.000000000 -0700 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-08-07 10:45:26.000000000 -0700 +@@ -32,6 +32,15 @@ + #define SWI_BASE (0x900000) + #define SYS_ify(syscall_name) (__NR_##syscall_name) + ++/* This is a kludge to make syscalls.list find these under the names ++ pread and pwrite, since some kernel headers define those names ++ and some define the *64 names for the same system calls. */ ++#if !defined __NR_pread && defined __NR_pread64 ++# define __NR_pread __NR_pread64 ++#endif ++#if !defined __NR_pwrite && defined __NR_pwrite64 ++# define __NR_pwrite __NR_pwrite64 ++#endif + + #ifdef __ASSEMBLER__ + diff --git a/patches/glibc/2.2.2/glibc-2.2.5-i386-pwrite64.patch b/patches/glibc/2.2.2/glibc-2.2.5-i386-pwrite64.patch new file mode 100644 index 0000000..761771f --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.5-i386-pwrite64.patch @@ -0,0 +1,20 @@ +diff -urN glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h +--- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h 2001-07-06 06:56:16.000000000 +0200 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h 2004-09-03 12:35:44.000000000 +0200 +@@ -36,6 +36,16 @@ + #undef L + #define L(name) .L##name + ++/* This is a kludge to make syscalls.list find these under the names ++ * pread and pwrite, since some kernel headers define those names ++ * and some define the *64 names for the same system calls. */ ++#if !defined __NR_pread && defined __NR_pread64 ++# define __NR_pread __NR_pread64 ++#endif ++#if !defined __NR_pwrite && defined __NR_pwrite64 ++# define __NR_pwrite __NR_pwrite64 ++#endif ++ + #ifdef __ASSEMBLER__ + + /* Linux uses a negative return value to indicate syscall errors, diff --git a/patches/glibc/2.2.2/glibc-2.2.5-m68k-pwrite.patch b/patches/glibc/2.2.2/glibc-2.2.5-m68k-pwrite.patch new file mode 100644 index 0000000..eefc6fa --- /dev/null +++ b/patches/glibc/2.2.2/glibc-2.2.5-m68k-pwrite.patch @@ -0,0 +1,32 @@ +Copied from similar patch for other architectures. + +Should fix this error: +../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread': +../sysdeps/unix/sysv/linux/pread.c:53: `__NR_pread' undeclared (first use in this function) +../sysdeps/unix/sysv/linux/pread.c:53: (Each undeclared identifier is reported only once +../sysdeps/unix/sysv/linux/pread.c:53: for each function it appears in.) +make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/build-glibc/posix/pread.o] Error 1 +make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5/posix' +make[1]: *** [posix/subdir_lib] Error 2 +make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5' +make: *** [all] Error 2 + +--- glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h.old 2004-10-05 08:37:37.000000000 -0700 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h 2004-10-05 08:38:22.000000000 -0700 +@@ -32,6 +32,16 @@ + # define SYS_ify(syscall_name) __NR_/**/syscall_name + #endif + ++/* This is a kludge to make syscalls.list find these under the names ++ pread and pwrite, since some kernel headers define those names ++ and some define the *64 names for the same system calls. */ ++#if !defined __NR_pread && defined __NR_pread64 ++# define __NR_pread __NR_pread64 ++#endif ++#if !defined __NR_pwrite && defined __NR_pwrite64 ++# define __NR_pwrite __NR_pwrite64 ++#endif ++ + #ifdef __ASSEMBLER__ + + /* Linux uses a negative return value to indicate syscall errors, unlike diff --git a/patches/glibc/2.2.2/glibc-manual-stdin.texi-1.127.patch b/patches/glibc/2.2.2/glibc-manual-stdin.texi-1.127.patch new file mode 100644 index 0000000..70245a6 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-manual-stdin.texi-1.127.patch @@ -0,0 +1,18 @@ +=================================================================== +RCS file: /cvs/glibc/libc/manual/stdio.texi,v +retrieving revision 1.126 +retrieving revision 1.127 +diff -u -r1.126 -r1.127 +--- libc/manual/stdio.texi 2001/06/06 07:11:31 1.126 ++++ libc/manual/stdio.texi 2001/07/31 18:57:16 1.127 +@@ -3265,8 +3265,8 @@ + If you are trying to read input that doesn't match a single, fixed + pattern, you may be better off using a tool such as Flex to generate a + lexical scanner, or Bison to generate a parser, rather than using +-@code{scanf}. For more information about these tools, see @ref{, , , +-flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , , ++@code{scanf}. For more information about these tools, see @ref{Top, , , ++flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , , + bison.info, The Bison Reference Manual}. + + @node Input Conversion Syntax diff --git a/patches/glibc/2.2.2/glibc-nss-noopt.patch b/patches/glibc/2.2.2/glibc-nss-noopt.patch new file mode 100644 index 0000000..28aa2e1 --- /dev/null +++ b/patches/glibc/2.2.2/glibc-nss-noopt.patch @@ -0,0 +1,26 @@ +--- glibc-2.2.2/nss/Makefile.orig Tue May 20 16:02:47 2003 ++++ glibc-2.2.2/nss/Makefile Tue May 20 16:03:52 2003 +@@ -41,6 +41,10 @@ + + tests = test-netdb + ++# Disable optimization when building nss to avoid crash described in ++# http://gcc.gnu.org/ml/gcc-bugs/1998-06/msg00168.html ++default_cflags := -g -O0 ++ + include ../Makeconfig + + ifeq (yes,$(build-static-nss)) +--- glibc-2.2.2/locale/Makefile.orig Tue May 20 17:29:11 2003 ++++ glibc-2.2.2/locale/Makefile Tue May 20 17:29:39 2003 +@@ -66,6 +66,10 @@ + GPERF = gperf + GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C + ++# Disable optimization when building locale or nss to avoid crash described in ++# http://gcc.gnu.org/ml/gcc-bugs/1998-06/msg00168.html ++default_cflags := -g -O0 ++ + include ../Rules + + programs/%-kw.h: programs/%-kw.gperf diff --git a/patches/glibc/2.2.2/tst-pathopt-cross.patch b/patches/glibc/2.2.2/tst-pathopt-cross.patch new file mode 100644 index 0000000..f64d673 --- /dev/null +++ b/patches/glibc/2.2.2/tst-pathopt-cross.patch @@ -0,0 +1,23 @@ +Fixes error +tst-pathopt.sh: /crosstool-0.20/build/powerpc-750-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-glibc/elf/ld.so: cannot execute binary file +make[2]: *** [/crosstool-0.20/build/powerpc-750-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-glibc/elf/tst-pathopt.out] Error 126 +See also http://sources.redhat.com/ml/libc-alpha/2001-03/msg00113.html + +=================================================================== +RCS file: /cvs/glibc/libc/elf/Makefile,v +retrieving revision 1.196 +retrieving revision 1.197 +diff -u -r1.196 -r1.197 +--- libc/elf/Makefile 2001/03/16 07:29:45 1.196 ++++ libc/elf/Makefile 2001/03/25 04:57:51 1.197 +@@ -246,8 +246,10 @@ + generated += $(addsuffix .so,$(strip $(modules-names))) + + ifeq (yes,$(build-shared)) ++ifeq ($(cross-compiling),no) + tests: $(objpfx)tst-pathopt.out + endif ++endif + + $(objpfx)testobj1.so: $(libdl) + $(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl) |