diff options
Diffstat (limited to 'patches/glibc/2.2.3')
-rw-r--r-- | patches/glibc/2.2.3/errlist-1.9.patch | 30 | ||||
-rw-r--r-- | patches/glibc/2.2.3/errlist-arm.patch | 48 | ||||
-rw-r--r-- | patches/glibc/2.2.3/glibc-2.2.3-mips-base-addr-got.patch | 276 | ||||
-rw-r--r-- | patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch | 47 | ||||
-rw-r--r-- | patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch | 25 |
5 files changed, 426 insertions, 0 deletions
diff --git a/patches/glibc/2.2.3/errlist-1.9.patch b/patches/glibc/2.2.3/errlist-1.9.patch new file mode 100644 index 0000000..594569b --- /dev/null +++ b/patches/glibc/2.2.3/errlist-1.9.patch @@ -0,0 +1,30 @@ +Fixes: + +../sysdeps/unix/sysv/linux/errlist.c:41: weak declaration of `_old_sys_nerr' must precede definition +make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/stdio-common/errlist.os] Error 1 + +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/Attic/errlist.c,v +retrieving revision 1.8 +retrieving revision 1.9 +diff -u -r1.8 -r1.9 +--- libc/sysdeps/unix/sysv/linux/errlist.c 2001/07/06 04:56:12 1.8 ++++ libc/sysdeps/unix/sysv/linux/errlist.c 2002/05/20 06:56:53 1.9 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. ++/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -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.3/errlist-arm.patch b/patches/glibc/2.2.3/errlist-arm.patch new file mode 100644 index 0000000..ac4eb5b --- /dev/null +++ b/patches/glibc/2.2.3/errlist-arm.patch @@ -0,0 +1,48 @@ +Subject: patch for arm +From: Philip Blundell <Philip dot Blundell at pobox dot com> +To: libc-hacker at sources dot redhat dot com +Content-Type: text/plain +Content-Transfer-Encoding: 7bit +Date: 22 Jul 2002 20:12:06 +0100 +Message-Id: <1027365126.725.10.camel@kc> +Mime-Version: 1.0 + +The mainline seems to need this patch in order to compile. + +p. + +2002-07-22 Philip Blundell <philb@gnu.org> + + * sysdeps/unix/sysv/linux/arm/errlist.c: Remove extra weak alias + definiton of _old_sys_nerr. Define _old_sys_errlist as strong + alias. + +Index: sysdeps/unix/sysv/linux/arm/errlist.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/errlist.c,v +retrieving revision 1.4 +diff -u -p -r1.4 errlist.c +--- glibc/sysdeps/unix/sysv/linux/arm/errlist.c 6 Jul 2001 04:56:13 -0000 1.4 ++++ glibc/sysdeps/unix/sysv/linux/arm/errlist.c 22 Jul 2002 19:10:57 -0000 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. ++/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -38,10 +38,9 @@ extern const char *const *__old_sys_errl + 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.3/glibc-2.2.3-mips-base-addr-got.patch b/patches/glibc/2.2.3/glibc-2.2.3-mips-base-addr-got.patch new file mode 100644 index 0000000..1773002 --- /dev/null +++ b/patches/glibc/2.2.3/glibc-2.2.3-mips-base-addr-got.patch @@ -0,0 +1,276 @@ +From http://www.ltc.com/~brad/mips/glibc-2.2.3-mips-base-addr-got.diff + +Hopefully fixes the error: + +/opt/crosstool/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/../../../../mipsel-unknown-linux-gnu/bin/ld: target elf32-littlemips not found +collect2: ld returned 1 exit status +make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/elf/ld.so] Error 1 + + +diff -urNbB glibc-2.2.3/sysdeps/mips/dl-machine.h glibc-2.2.3-mips/sysdeps/mips/dl-machine.h +--- glibc-2.2.3/sysdeps/mips/dl-machine.h Mon Mar 26 23:53:28 2001 ++++ glibc-2.2.3-mips/sysdeps/mips/dl-machine.h Sun Aug 12 11:08:17 2001 +@@ -61,23 +61,6 @@ + in l_info array. */ + #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM) + +-/* +- * MIPS libraries are usually linked to a non-zero base address. We +- * subtract the base address from the address where we map the object +- * to. This results in more efficient address space usage. +- * +- * FIXME: By the time when MAP_BASE_ADDR is called we don't have the +- * DYNAMIC section read. Until this is fixed make the assumption that +- * libraries have their base address at 0x5ffe0000. This needs to be +- * fixed before we can safely get rid of this MIPSism. +- */ +-#if 0 +-#define MAP_BASE_ADDR(l) ((l)->l_info[DT_MIPS(BASE_ADDRESS)] ? \ +- (l)->l_info[DT_MIPS(BASE_ADDRESS)]->d_un.d_ptr : 0) +-#else +-#define MAP_BASE_ADDR(l) 0x5ffe0000 +-#endif +- + /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in + with the run-time address of the r_debug structure */ + #define ELF_MACHINE_DEBUG_SETUP(l,r) \ +@@ -557,51 +540,30 @@ + /* Do nothing. */ + } + ++#ifndef RTLD_BOOTSTRAP + /* Relocate GOT. */ + static inline void + elf_machine_got_rel (struct link_map *map, int lazy) + { + ElfW(Addr) *got; + ElfW(Sym) *sym; ++ const ElfW(Half) *vernum; + int i, n, symidx; +- /* This function is loaded in dl-reloc as a nested function and can +- therefore access the variables scope and strtab from +- _dl_relocate_object. */ +-#ifdef RTLD_BOOTSTRAP +-# define RESOLVE_GOTSYM(sym,sym_index) 0 +-#else +-# define RESOLVE_GOTSYM(sym,sym_index) \ ++ ++#define RESOLVE_GOTSYM(sym,vernum,sym_index) \ + ({ \ + const ElfW(Sym) *ref = sym; \ ++ const struct r_found_version *version \ ++ = vernum ? &map->l_versions [vernum [sym_index]] : NULL; \ + ElfW(Addr) value; \ +- \ +- switch (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL) \ +- { \ +- default: \ +- { \ +- const ElfW(Half) *vernum = \ +- (const void *) D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]); \ +- ElfW(Half) ndx = vernum[sym_index]; \ +- const struct r_found_version *version = &l->l_versions[ndx]; \ +- \ +- if (version->hash != 0) \ +- { \ +- value = _dl_lookup_versioned_symbol(strtab + sym->st_name,\ +- map, \ +- &ref, scope, version, \ +- R_MIPS_REL32, 0); \ +- break; \ +- } \ +- /* Fall through. */ \ +- } \ +- case 0: \ +- value = _dl_lookup_symbol (strtab + sym->st_name, map, &ref, \ +- scope, R_MIPS_REL32, 0); \ +- } \ +- \ ++ value = RESOLVE (&ref, version, R_MIPS_REL32); \ + (ref)? value + ref->st_value: 0; \ + }) +-#endif /* RTLD_BOOTSTRAP */ ++ ++ if (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL) ++ vernum = (const void *) D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]); ++ else ++ vernum = NULL; + + got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]); + +@@ -639,10 +601,10 @@ + && sym->st_value && lazy) + *got = sym->st_value + map->l_addr; + else +- *got = RESOLVE_GOTSYM (sym, symidx); ++ *got = RESOLVE_GOTSYM (sym, vernum, symidx); + } + else if (sym->st_shndx == SHN_COMMON) +- *got = RESOLVE_GOTSYM (sym, symidx); ++ *got = RESOLVE_GOTSYM (sym, vernum, symidx); + else if (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC + && *got != sym->st_value + && lazy) +@@ -653,7 +615,7 @@ + *got += map->l_addr; + } + else +- *got = RESOLVE_GOTSYM (sym, symidx); ++ *got = RESOLVE_GOTSYM (sym, vernum, symidx); + + ++got; + ++sym; +@@ -661,9 +623,8 @@ + } + + #undef RESOLVE_GOTSYM +- +- return; + } ++#endif + + /* Set up the loaded object described by L so its stub function + will jump to the on-demand fixup code __dl_runtime_resolve. */ +diff -urNbB glibc-2.2.3/sysdeps/mips/mips64/rtld-parms glibc-2.2.3-mips/sysdeps/mips/mips64/rtld-parms +--- glibc-2.2.3/sysdeps/mips/mips64/rtld-parms Sat Jul 12 18:26:11 1997 ++++ glibc-2.2.3-mips/sysdeps/mips/mips64/rtld-parms Wed Dec 31 19:00:00 1969 +@@ -1,3 +0,0 @@ +-ifndef rtld-wordsize +-rtld-wordsize = 64 +-endif +diff -urNbB glibc-2.2.3/sysdeps/mips/mipsel/rtld-parms glibc-2.2.3-mips/sysdeps/mips/mipsel/rtld-parms +--- glibc-2.2.3/sysdeps/mips/mipsel/rtld-parms Sat Jul 12 18:26:15 1997 ++++ glibc-2.2.3-mips/sysdeps/mips/mipsel/rtld-parms Wed Dec 31 19:00:00 1969 +@@ -1,3 +0,0 @@ +-ifndef rtld-oformat +-rtld-oformat = elf32-littlemips +-endif +diff -urNbB glibc-2.2.3/sysdeps/mips/rtld-ldscript.in glibc-2.2.3-mips/sysdeps/mips/rtld-ldscript.in +--- glibc-2.2.3/sysdeps/mips/rtld-ldscript.in Sat Jul 12 18:23:14 1997 ++++ glibc-2.2.3-mips/sysdeps/mips/rtld-ldscript.in Wed Dec 31 19:00:00 1969 +@@ -1,106 +0,0 @@ +-OUTPUT_FORMAT("@@rtld-oformat@@") +-OUTPUT_ARCH(@@rtld-arch@@) +-ENTRY(@@rtld-entry@@) +-SECTIONS +-{ +- /* Read-only sections, merged into text segment: */ +- . = @@rtld-base@@; +- .reginfo : { *(.reginfo) } +- .dynamic : { *(.dynamic) } +- .dynstr : { *(.dynstr) } +- .dynsym : { *(.dynsym) } +- .hash : { *(.hash) } +- .rel.text : { *(.rel.text) } +- .rela.text : { *(.rela.text) } +- .rel.data : { *(.rel.data) } +- .rela.data : { *(.rela.data) } +- .rel.rodata : { *(.rel.rodata) } +- .rela.rodata : { *(.rela.rodata) } +- .rel.got : { *(.rel.got) } +- .rela.got : { *(.rela.got) } +- .rel.ctors : { *(.rel.ctors) } +- .rela.ctors : { *(.rela.ctors) } +- .rel.dtors : { *(.rel.dtors) } +- .rela.dtors : { *(.rela.dtors) } +- .rel.init : { *(.rel.init) } +- .rela.init : { *(.rela.init) } +- .rel.fini : { *(.rel.fini) } +- .rela.fini : { *(.rela.fini) } +- .rel.bss : { *(.rel.bss) } +- .rela.bss : { *(.rela.bss) } +- .rel.plt : { *(.rel.plt) } +- .rela.plt : { *(.rela.plt) } +- .rodata : { *(.rodata) } +- .rodata1 : { *(.rodata1) } +- .init : { *(.init) } =0 +- .text : +- { +- *(.text) +- *(.stub) +- /* .gnu.warning sections are handled specially by elf32.em. */ +- *(.gnu.warning) +- } =0 +- .fini : { *(.fini) } =0 +- /* Adjust the address for the data segment. We want to adjust up to +- the same address within the page on the next page up. It would +- be more correct to do this: +- . = 0x10000000; +- The current expression does not correctly handle the case of a +- text segment ending precisely at the end of a page; it causes the +- data segment to skip a page. The above expression does not have +- this problem, but it will currently (2/95) cause BFD to allocate +- a single segment, combining both text and data, for this case. +- This will prevent the text segment from being shared among +- multiple executions of the program; I think that is more +- important than losing a page of the virtual address space (note +- that no actual memory is lost; the page which is skipped can not +- be referenced). */ +- . += 0x10000; +- .data : +- { +- *(.data) +- CONSTRUCTORS +- } +- .data1 : { *(.data1) } +- .ctors : { *(.ctors) } +- .dtors : { *(.dtors) } +- _gp = ALIGN(16) + 0x7ff0; +- .got : +- { +- *(.got.plt) *(.got) +- } +- /* We want the small data sections together, so single-instruction offsets +- can access them all, and initialized data all before uninitialized, so +- we can shorten the on-disk segment size. */ +- .sdata : { *(.sdata) } +- .lit8 : { *(.lit8) } +- .lit4 : { *(.lit4) } +- .sbss : { *(.sbss) *(.scommon) } +- .bss : +- { +- *(.dynbss) +- *(.bss) +- *(COMMON) +- } +- /* The normal linker scripts created by the binutils doesn't have the +- symbols end and _end which breaks ld.so's dl-minimal.c. */ +- _end = . ; +- PROVIDE (end = .); +- /* These are needed for ELF backends which have not yet been +- converted to the new style linker. */ +- .stab 0 : { *(.stab) } +- .stabstr 0 : { *(.stabstr) } +- /* DWARF debug sections. +- Symbols in the .debug DWARF section are relative to the beginning of the +- section so we begin .debug at 0. It's not clear yet what needs to happen +- for the others. */ +- .debug 0 : { *(.debug) } +- .debug_srcinfo 0 : { *(.debug_srcinfo) } +- .debug_aranges 0 : { *(.debug_aranges) } +- .debug_pubnames 0 : { *(.debug_pubnames) } +- .debug_sfnames 0 : { *(.debug_sfnames) } +- .line 0 : { *(.line) } +- /* These must appear regardless of . */ +- .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } +- .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } +-} +diff -urNbB glibc-2.2.3/sysdeps/mips/rtld-parms glibc-2.2.3-mips/sysdeps/mips/rtld-parms +--- glibc-2.2.3/sysdeps/mips/rtld-parms Mon Jul 21 19:04:07 1997 ++++ glibc-2.2.3-mips/sysdeps/mips/rtld-parms Wed Dec 31 19:00:00 1969 +@@ -1,15 +0,0 @@ +-ifndef rtld-wordsize +-rtld-wordsize = 32 +-endif +-ifndef rtld-oformat +-rtld-oformat = elf$(rtld-wordsize)-bigmips +-endif +-ifndef rtld-arch +-rtld-arch = mips +-endif +-ifndef rtld-entry +-rtld-entry = __start +-endif +-ifndef rtld-base +-rtld-base = 0x0fb60000 + SIZEOF_HEADERS +-endif diff --git a/patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch b/patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch new file mode 100644 index 0000000..66fee29 --- /dev/null +++ b/patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch @@ -0,0 +1,47 @@ +This is a workaround for + +mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DASSEMBLER -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o +../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages: +../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1 + +which was using h.j.lu's binutils-2.13.90.0.18. + + +But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html +which says +"A newer version of binutils (CVS post 2003-03-12) fixes it without +the need of changing perfectly legal code." +So presumably this can be ditched sooner or later. + +From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff + +2003-03-13 Guido Guenther <agx@sigxcpu.org> + + * sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label + .Lthread_start since current binutils don't allow branches to globally + visible symbols. + +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v +retrieving revision 1.10 +diff -u -r1.10 clone.S +--- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 01:04:51 -0000 1.10 ++++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 12 Mar 2003 19:04:39 -0000 +@@ -63,7 +63,7 @@ + syscall + + bnez a3,error +- beqz v0,__thread_start ++ beqz v0,.Lthread_start + + /* Successful return from the parent */ + addiu sp,32 +@@ -85,6 +85,7 @@ + debug info. */ + + ENTRY(__thread_start) ++.Lthread_start: + /* cp is already loaded. */ + .cprestore 16 + /* The stackframe has been created on entry of clone(). */ diff --git a/patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch b/patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch new file mode 100644 index 0000000..c694525 --- /dev/null +++ b/patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch @@ -0,0 +1,25 @@ +Fixes error +./stdio.texi:3269: First argument to cross-reference may not be empty. +./stdio.texi:3270: First argument to cross-reference may not be empty. +makeinfo: Removing output file `/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/glibc-2.2.3/manual/libc.info' due to errors; use --force to preserve. +make[2]: *** [libc.info] Error 2 +make[2]: Leaving directory `/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/glibc-2.2.3/manual' + +=================================================================== +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 |