aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/glibc
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/glibc
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
openembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.bz2
openembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.zip
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/glibc')
-rw-r--r--recipes/glibc/files/5090_all_stubs-rule-fix.patch39
-rw-r--r--recipes/glibc/files/armv4t-interworking.patch47
-rw-r--r--recipes/glibc/files/fhs-linux-paths.patch11
-rw-r--r--recipes/glibc/files/generate-supported.mk11
-rw-r--r--recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm-2.patch11
-rw-r--r--recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm.patch15
-rw-r--r--recipes/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch41
-rw-r--r--recipes/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch205
-rw-r--r--recipes/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch20
-rw-r--r--recipes/glibc/files/glibc-2.6.1-powerpc-nofpu.patch11
-rw-r--r--recipes/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch30
-rw-r--r--recipes/glibc/files/glibc-includes-fixed-isystem.patch32
-rw-r--r--recipes/glibc/files/march-i686.patch38
-rw-r--r--recipes/glibc/files/ppc-ld-nofpu-20070104.patch190
-rw-r--r--recipes/glibc/files/ppc-ports-ld-nofpu-20070114.patch38
-rw-r--r--recipes/glibc/files/ppc-sfp-machine.patch297
-rw-r--r--recipes/glibc/files/ppc-soft-fp-20070115.patch182
-rw-r--r--recipes/glibc/glibc-2.2.5/alpha-build-failure.patch30
-rw-r--r--recipes/glibc/glibc-2.2.5/arm-asm-clobber.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch40
-rw-r--r--recipes/glibc/glibc-2.2.5/arm-longlong.patch59
-rw-r--r--recipes/glibc/glibc-2.2.5/arm-machine-gmon.patch11
-rw-r--r--recipes/glibc/glibc-2.2.5/arm-memcpy.patch761
-rw-r--r--recipes/glibc/glibc-2.2.5/arm-no-hwcap.patch11
-rw-r--r--recipes/glibc/glibc-2.2.5/cris-libc-symbols.patch43
-rw-r--r--recipes/glibc/glibc-2.2.5/cris-stack-direction.patch36
-rw-r--r--recipes/glibc/glibc-2.2.5/dl-machine-alpha.patch420
-rw-r--r--recipes/glibc/glibc-2.2.5/dl-machine-arm.patch383
-rw-r--r--recipes/glibc/glibc-2.2.5/dl-machine-m68k.patch171
-rw-r--r--recipes/glibc/glibc-2.2.5/dl-machine-mips.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/dl-machine-sh.patch30
-rw-r--r--recipes/glibc/glibc-2.2.5/dl-machine-sparc.patch235
-rw-r--r--recipes/glibc/glibc-2.2.5/errlist-1.9.patch25
-rw-r--r--recipes/glibc/glibc-2.2.5/errlist-arm.patch25
-rw-r--r--recipes/glibc/glibc-2.2.5/etc/ld.so.conf2
-rw-r--r--recipes/glibc/glibc-2.2.5/fhs-linux-paths.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch55
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch36
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch881
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-4.x-configure.patch21
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch35
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch25
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch23
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch28
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch79
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch1108
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch88
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch24
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch65
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.3.2-allow-solaris.patch41
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch12
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-drow-sh.patch30
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch12
-rw-r--r--recipes/glibc/glibc-2.2.5/glibc-test-lowram.patch19
-rw-r--r--recipes/glibc/glibc-2.2.5/initfini-alpha.patch128
-rw-r--r--recipes/glibc/glibc-2.2.5/initfini-flags.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/initfini-sh.patch248
-rw-r--r--recipes/glibc/glibc-2.2.5/ldd.patch38
-rw-r--r--recipes/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch34
-rw-r--r--recipes/glibc/glibc-2.2.5/longjmp-sparc.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/pt-initfini-alpha.patch119
-rw-r--r--recipes/glibc/glibc-2.2.5/pt-initfini-flags.patch16
-rw-r--r--recipes/glibc/glibc-2.2.5/pt-initfini-sh.patch267
-rw-r--r--recipes/glibc/glibc-2.2.5/sh-setjmp-fix.patch17
-rw-r--r--recipes/glibc/glibc-2.2.5/sprintf-prototype.patch18
-rw-r--r--recipes/glibc/glibc-2.2.5/sscanf.patch64
-rw-r--r--recipes/glibc/glibc-2.2.5/threadparam.patch69
-rw-r--r--recipes/glibc/glibc-2.2.5/unwind-arm.patch18
-rw-r--r--recipes/glibc/glibc-2.3.2/10_cvs.patch177118
-rw-r--r--recipes/glibc/glibc-2.3.2/11_shlib-lds.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/30_glibc232-base.patch55
-rw-r--r--recipes/glibc/glibc-2.3.2/50_glibc23-hppa-entry.patch13
-rw-r--r--recipes/glibc/glibc-2.3.2/50_glibc232-arm-dwarf2-buildfix.patch5
-rw-r--r--recipes/glibc/glibc-2.3.2/50_glibc232-hppa-full-nptl-2003-10-22.patch2665
-rw-r--r--recipes/glibc/glibc-2.3.2/50_glibc232-m68k-dwarf2-buildfix.patch5
-rw-r--r--recipes/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch48
-rw-r--r--recipes/glibc/glibc-2.3.2/80_glibc232-futimes-buildfix.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/80_glibc232-iconvdata-fix.patch76
-rw-r--r--recipes/glibc/glibc-2.3.2/80_glibc232-locales-header.patch43
-rw-r--r--recipes/glibc/glibc-2.3.2/80_glibc232-locales-nb_NO-fix.patch112
-rw-r--r--recipes/glibc/glibc-2.3.2/80_glibc232-wcsmbs-fix.patch86
-rw-r--r--recipes/glibc/glibc-2.3.2/81_glibc232-utimes-fix.patch39
-rw-r--r--recipes/glibc/glibc-2.3.2/90_glibc232-statvfs.patch32
-rw-r--r--recipes/glibc/glibc-2.3.2/90_glibc232-timezones.patch1078
-rw-r--r--recipes/glibc/glibc-2.3.2/alpha-crti.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/alpha-pic.patch17
-rw-r--r--recipes/glibc/glibc-2.3.2/alpha-pwrite.patch13
-rw-r--r--recipes/glibc/glibc-2.3.2/arm-ioperm.patch13
-rw-r--r--recipes/glibc/glibc-2.3.2/arm-longlong.patch59
-rw-r--r--recipes/glibc/glibc-2.3.2/arm-machine-gmon.patch11
-rw-r--r--recipes/glibc/glibc-2.3.2/arm-memcpy.patch756
-rw-r--r--recipes/glibc/glibc-2.3.2/arm-no-hwcap.patch11
-rw-r--r--recipes/glibc/glibc-2.3.2/arm-output-format.patch11
-rw-r--r--recipes/glibc/glibc-2.3.2/asm-arm-unistd.h494
-rw-r--r--recipes/glibc/glibc-2.3.2/autoconf.h1054
-rw-r--r--recipes/glibc/glibc-2.3.2/dyn-ldconfig.diff62
-rw-r--r--recipes/glibc/glibc-2.3.2/etc/ld.so.conf2
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc-2.3.2-200304020432.patch136135
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc-2.3.2-ldconfig-tls.patch19
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc-i686-timing.patch125
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc-make-check-perms.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc22-eo_EO.patch219
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc22-locales.patch99
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc22-m68k-compat.patch20
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc22-m68k-fpic.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc22-nss-upgrade.patch26
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc22-ttyname-devfs.patch225
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-01-hppa-dl-machine.patch305
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-07-hppa-atomicity.patch58
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-asserth-decls.patch19
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-cmov.patch36
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-ctype-compat.patch86
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-errno-hack.patch58
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-errno.patch36
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-function-compat.patch32
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-hppa-Rminkernel.patch22
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-hppa-compat.patch80
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-hppa-malloc8.patch13
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-libio-compat.patch144
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-mips-msq.patch39
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-powerpc-sigcontext.patch326
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-sparc-pread64.patch19
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-sse-oldkernel.patch109
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc23-version-sanity.patch11
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch53
-rw-r--r--recipes/glibc/glibc-2.3.2/glibc232-gcc34-no-unit-at-a-time.patch112
-rw-r--r--recipes/glibc/glibc-2.3.2/glibcbug.patch22
-rw-r--r--recipes/glibc/glibc-2.3.2/hppa-syscall.patch31
-rw-r--r--recipes/glibc/glibc-2.3.2/hurd-enable-ldconfig.patch61
-rw-r--r--recipes/glibc/glibc-2.3.2/ldconfig.patch37
-rw-r--r--recipes/glibc/glibc-2.3.2/ldd.patch38
-rw-r--r--recipes/glibc/glibc-2.3.2/ldso-disable-hwcap.patch62
-rw-r--r--recipes/glibc/glibc-2.3.2/libgcc-compat-all.patch435
-rw-r--r--recipes/glibc/glibc-2.3.2/libgcc-compat-other.patch883
-rw-r--r--recipes/glibc/glibc-2.3.2/librt-mips.patch12
-rw-r--r--recipes/glibc/glibc-2.3.2/lo_LA.UTF-8_not_supported.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/locale-es_AR.patch13
-rw-r--r--recipes/glibc/glibc-2.3.2/locales-stuff.patch44
-rw-r--r--recipes/glibc/glibc-2.3.2/locales-supported.patch159
-rw-r--r--recipes/glibc/glibc-2.3.2/makeconfig.patch15
-rw-r--r--recipes/glibc/glibc-2.3.2/noinfo.patch52
-rw-r--r--recipes/glibc/glibc-2.3.2/nptl-pthread-once.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/nss_compat-shadow.patch128
-rw-r--r--recipes/glibc/glibc-2.3.2/powerpc-sysconf.patch39
-rw-r--r--recipes/glibc/glibc-2.3.2/pthread-cleanup.patch62
-rw-r--r--recipes/glibc/glibc-2.3.2/revert-old-libio.patch78
-rw-r--r--recipes/glibc/glibc-2.3.2/s390-tls.patch11
-rw-r--r--recipes/glibc/glibc-2.3.2/sedscript.patch10
-rw-r--r--recipes/glibc/glibc-2.3.2/sparc64-fixups.patch29
-rw-r--r--recipes/glibc/glibc-2.3.2/sparcv8-target.patch28
-rw-r--r--recipes/glibc/glibc-2.3.2/syslog-backrev.patch212
-rw-r--r--recipes/glibc/glibc-2.3.2/version.h4
-rw-r--r--recipes/glibc/glibc-2.3.6/etc/ld.so.conf2
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch28
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-2.3.6-bind-already-defined-on-powerpc.patch65
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch28
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch37
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch45
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch79
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-memusage.patch44
-rw-r--r--recipes/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch25
-rw-r--r--recipes/glibc/glibc-2.3.6/late-install-loop-break.patch29
-rw-r--r--recipes/glibc/glibc-2.4/arm-longlong.patch58
-rw-r--r--recipes/glibc/glibc-2.4/arm-memcpy.patch758
-rw-r--r--recipes/glibc/glibc-2.4/arm_eabi_ipc_fix.patch94
-rw-r--r--recipes/glibc/glibc-2.4/dl-cache-libcmp.patch10
-rw-r--r--recipes/glibc/glibc-2.4/dyn-ldconfig-20041128.patch22
-rw-r--r--recipes/glibc/glibc-2.4/dyn-ldconfig.patch62
-rw-r--r--recipes/glibc/glibc-2.4/etc/ld.so.conf2
-rw-r--r--recipes/glibc/glibc-2.4/fixup-aeabi-syscalls.patch329
-rw-r--r--recipes/glibc/glibc-2.4/generic-bits_select.h35
-rw-r--r--recipes/glibc/glibc-2.4/generic-bits_time.h75
-rw-r--r--recipes/glibc/glibc-2.4/generic-bits_types.h200
-rw-r--r--recipes/glibc/glibc-2.4/generic-bits_typesizes.h66
-rw-r--r--recipes/glibc/glibc-2.4/glibc-2.4-compile.patch29
-rw-r--r--recipes/glibc/glibc-2.4/glibc-2.4-openat-3.patch133
-rw-r--r--recipes/glibc/glibc-2.4/glibc-arm-IO-acquire-lock-fix.diff13
-rw-r--r--recipes/glibc/glibc-2.4/glibc-arm-no-asm-page.patch15
-rw-r--r--recipes/glibc/glibc-2.4/glibc-check_pf.patch343
-rw-r--r--recipes/glibc/glibc-2.4/glibc-use-isystem-include-fixed.patch46
-rw-r--r--recipes/glibc/glibc-2.4/ldd-unbash.patch11
-rw-r--r--recipes/glibc/glibc-2.4/ldsocache-varrun.patch18
-rw-r--r--recipes/glibc/glibc-2.4/no-z-defs.patch9
-rw-r--r--recipes/glibc/glibc-2.4/nptl-crosscompile.patch26
-rw-r--r--recipes/glibc/glibc-2.4/powerpc-sqrt-hack.diff25
-rw-r--r--recipes/glibc/glibc-2.4/zecke-sane-readelf.patch243
-rw-r--r--recipes/glibc/glibc-2.5/glibc-check_pf.patch343
-rw-r--r--recipes/glibc/glibc-2.7/all_glibc-i586-chk.patch33
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/arm-audit.patch58
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/arm-audit2.patch18
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/arm-longlong.patch59
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/arm-memcpy.patch758
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/arm-no-hwcap.patch11
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/dl-cache-libcmp.patch10
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/dyn-ldconfig-20041128.patch22
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/ldsocache-varrun.patch18
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/no-z-defs.patch9
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/raise.patch37
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/superh-fcntl.patch40
-rw-r--r--recipes/glibc/glibc-cvs-2.3.5/zecke-sane-readelf.patch154
-rw-r--r--recipes/glibc/glibc-cvs/arm-ioperm.patch13
-rw-r--r--recipes/glibc/glibc-cvs/arm-longlong.patch59
-rw-r--r--recipes/glibc/glibc-cvs/arm-machine-gmon.patch11
-rw-r--r--recipes/glibc/glibc-cvs/arm-memcpy.patch758
-rw-r--r--recipes/glibc/glibc-cvs/arm-no-hwcap.patch11
-rw-r--r--recipes/glibc/glibc-cvs/dl-cache-libcmp.patch10
-rw-r--r--recipes/glibc/glibc-cvs/dyn-ldconfig-20041128.patch22
-rw-r--r--recipes/glibc/glibc-cvs/dyn-ldconfig.patch62
-rw-r--r--recipes/glibc/glibc-cvs/eabi-patch-188
-rw-r--r--recipes/glibc/glibc-cvs/eabi-patch-22446
-rw-r--r--recipes/glibc/glibc-cvs/eabi-patch-3430
-rw-r--r--recipes/glibc/glibc-cvs/eabi-patch-464
-rw-r--r--recipes/glibc/glibc-cvs/etc/ld.so.conf2
-rw-r--r--recipes/glibc/glibc-cvs/glibc-fp-byteorder.patch203
-rw-r--r--recipes/glibc/glibc-cvs/ldconfig.patch37
-rw-r--r--recipes/glibc/glibc-cvs/ldd.patch38
-rw-r--r--recipes/glibc/glibc-cvs/ldsocache-varrun.patch18
-rw-r--r--recipes/glibc/glibc-cvs/makeconfig.patch15
-rw-r--r--recipes/glibc/glibc-cvs/mips-no-throw.patch22
-rw-r--r--recipes/glibc/glibc-cvs/noinfo.patch52
-rw-r--r--recipes/glibc/glibc-cvs/trampoline.patch560
-rw-r--r--recipes/glibc/glibc-initial.inc57
-rw-r--r--recipes/glibc/glibc-initial_2.2.5.bb7
-rw-r--r--recipes/glibc/glibc-initial_2.3.2+cvs20040726.bb5
-rw-r--r--recipes/glibc/glibc-initial_2.3.2.bb5
-rw-r--r--recipes/glibc/glibc-initial_2.3.6.bb4
-rw-r--r--recipes/glibc/glibc-initial_2.4.bb2
-rw-r--r--recipes/glibc/glibc-initial_2.5.bb22
-rw-r--r--recipes/glibc/glibc-initial_2.6.1.bb6
-rw-r--r--recipes/glibc/glibc-initial_2.7.bb6
-rw-r--r--recipes/glibc/glibc-initial_cvs.bb4
-rw-r--r--recipes/glibc/glibc-package.bbclass335
-rw-r--r--recipes/glibc/glibc-stage.inc18
-rw-r--r--recipes/glibc/glibc.inc22
-rw-r--r--recipes/glibc/glibc_2.2.5.bb215
-rw-r--r--recipes/glibc/glibc_2.3.2+cvs20040726.bb75
-rw-r--r--recipes/glibc/glibc_2.3.2.bb161
-rw-r--r--recipes/glibc/glibc_2.3.3+cvs20041128.bb97
-rw-r--r--recipes/glibc/glibc_2.3.3+cvs20050221.bb80
-rw-r--r--recipes/glibc/glibc_2.3.3+cvs20050420.bb81
-rw-r--r--recipes/glibc/glibc_2.3.3.bb106
-rw-r--r--recipes/glibc/glibc_2.3.5+cvs20050627.bb134
-rw-r--r--recipes/glibc/glibc_2.3.6.bb94
-rw-r--r--recipes/glibc/glibc_2.4.bb148
-rw-r--r--recipes/glibc/glibc_2.5.bb154
-rw-r--r--recipes/glibc/glibc_2.6.1.bb156
-rw-r--r--recipes/glibc/glibc_2.7.bb161
-rw-r--r--recipes/glibc/glibc_cvs.bb104
249 files changed, 343807 insertions, 0 deletions
diff --git a/recipes/glibc/files/5090_all_stubs-rule-fix.patch b/recipes/glibc/files/5090_all_stubs-rule-fix.patch
new file mode 100644
index 0000000000..c445a5296e
--- /dev/null
+++ b/recipes/glibc/files/5090_all_stubs-rule-fix.patch
@@ -0,0 +1,39 @@
+Index: Makerules
+===================================================================
+RCS file: /cvs/glibc/libc/Makerules,v
+retrieving revision 1.430
+diff -u -r1.430 Makerules
+--- libc/Makerules 5 Mar 2005 19:24:32 -0000 1.430
++++ libc/Makerules 22 Apr 2005 18:31:27 -0000
+@@ -1390,15 +1390,26 @@
+ $(addprefix $(objpfx),$(extra-objs))
+ $(objpfx)stubs: $(objs-for-stubs)
+ ifneq (,$(strip $(objs-for-stubs)))
+- $(OBJDUMP) -h $^ | \
+- $(AWK) '/\.gnu\.glibc-stub\./ { \
+- sub(/\.gnu\.glibc-stub\./, "", $$2); \
+- stubs[$$2] = 1; } \
+- END { for (s in stubs) print "#define __stub_" s }' > $@T
++ $(stub-obj-list)
++ cat $@L | xargs \
++ $(OBJDUMP) -h | \
++ $(AWK) '/\.gnu\.glibc-stub\./ { \
++ sub(/\.gnu\.glibc-stub\./, "", $$2); \
++ stubs[$$2] = 1; } \
++ END { for (s in stubs) print "#define __stub_" s }' \
++ > $@T
++ -rm -f $@L
+ mv -f $@T $@
+ else
+ > $@
+ endif
++
++define stub-obj-list
++-@rm -f $@L
++-@echo "Generating stub obj list..."
++$(foreach file,$^,
++@echo >> $@L '$(file)')
++endef
+
+ # This information is not used for making distributions any more.
+ # But it's used by MakeTAGS for making TAGS files and the .pot files.
diff --git a/recipes/glibc/files/armv4t-interworking.patch b/recipes/glibc/files/armv4t-interworking.patch
new file mode 100644
index 0000000000..ce91ad6530
--- /dev/null
+++ b/recipes/glibc/files/armv4t-interworking.patch
@@ -0,0 +1,47 @@
+--- libc/ports/sysdeps/arm/memcpy.S~ 2006-10-31 17:07:54.000000000 +0000
++++ libc/ports/sysdeps/arm/memcpy.S 2008-10-24 11:09:34.000000000 +0100
+@@ -130,7 +130,12 @@
+ strcsb r4, [r0], #1
+ strcsb ip, [r0]
+
++#if defined (__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
++ ldmfd sp!, {r0, r4, lr}
++ bx lr
++#else
+ ldmfd sp!, {r0, r4, pc}
++#endif
+
+ 9: rsb ip, ip, #4
+ cmp ip, #2
+--- libc/ports/sysdeps/arm/memmove.S~ 2006-10-31 17:07:54.000000000 +0000
++++ libc/ports/sysdeps/arm/memmove.S 2008-10-24 11:09:44.000000000 +0100
+@@ -140,7 +140,12 @@
+ strneb r3, [r0, #-1]!
+ strcsb r4, [r0, #-1]!
+ strcsb ip, [r0, #-1]
++#if defined (__ARM_ARCH_4T__) && defined (__THUMB_INTERWORK__)
++ ldmfd sp!, {r0, r4, lr}
++ bx lr
++#else
+ ldmfd sp!, {r0, r4, pc}
++#endif
+
+ 9: cmp ip, #2
+ ldrgtb r3, [r1, #-1]!
+--- libc/ports/sysdeps/unix/sysv/linux/arm/clone.S~ 2005-11-16 19:03:42.000000000 +0000
++++ libc/ports/sysdeps/unix/sysv/linux/arm/clone.S 2008-10-24 11:11:05.000000000 +0100
+@@ -96,8 +96,14 @@
+ #endif
+ @ pick the function arg and call address off the stack and execute
+ ldr r0, [sp, #4]
++#if defined(__ARM_ARCH_V4T__) && defined(__THUMB_INTERWORK__)
++ ldr ip, [sp], #8
++ mov lr, pc
++ bx ip
++#else
+ mov lr, pc
+ ldr pc, [sp], #8
++#endif
+
+ @ and we are done, passing the return value through r0
+ b PLTJMP(_exit)
diff --git a/recipes/glibc/files/fhs-linux-paths.patch b/recipes/glibc/files/fhs-linux-paths.patch
new file mode 100644
index 0000000000..1f32f6d7f2
--- /dev/null
+++ b/recipes/glibc/files/fhs-linux-paths.patch
@@ -0,0 +1,11 @@
+--- glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h~ Thu May 27 13:16:33 1999
++++ glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h Thu May 27 13:17:55 1999
+@@ -71,7 +71,7 @@
+ /* Provide trailing slash, since mostly used for building pathnames. */
+ #define _PATH_DEV "/dev/"
+ #define _PATH_TMP "/tmp/"
+-#define _PATH_VARDB "/var/db/"
++#define _PATH_VARDB "/var/lib/misc/"
+ #define _PATH_VARRUN "/var/run/"
+ #define _PATH_VARTMP "/var/tmp/"
+
diff --git a/recipes/glibc/files/generate-supported.mk b/recipes/glibc/files/generate-supported.mk
new file mode 100644
index 0000000000..d2a28c2dc6
--- /dev/null
+++ b/recipes/glibc/files/generate-supported.mk
@@ -0,0 +1,11 @@
+#!/usr/bin/make
+
+include $(IN)
+
+all:
+ rm -f $(OUT)
+ touch $(OUT)
+ for locale in $(SUPPORTED-LOCALES); do \
+ [ $$locale = true ] && continue; \
+ echo $$locale | sed 's,/, ,' >> $(OUT); \
+ done
diff --git a/recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm-2.patch b/recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm-2.patch
new file mode 100644
index 0000000000..bf2f31e479
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm-2.patch
@@ -0,0 +1,11 @@
+--- glibc-2.3.3/ports/sysdeps/unix/sysv/linux/arm/socket.S.orig 2006-07-12 14:38:22.208228359 -0700
++++ glibc-2.3.3/ports/sysdeps/unix/sysv/linux/arm/socket.S 2006-07-12 14:39:56.911675066 -0700
+@@ -123,5 +123,7 @@
+ #endif
+
+ PSEUDO_END (__socket)
+-
++
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
diff --git a/recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm.patch b/recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm.patch
new file mode 100644
index 0000000000..0097ff94d3
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.3.5-fix-weak-alias-arm.patch
@@ -0,0 +1,15 @@
+--- glibc-2.3.3/ports/sysdeps/unix/sysv/linux/arm/socket.S.orig 2006-07-12 13:57:05.990485563 -0700
++++ glibc-2.3.3/ports/sysdeps/unix/sysv/linux/arm/socket.S 2006-07-12 13:58:41.197865230 -0700
+@@ -32,7 +32,11 @@
+ The .S files for the other calls just #define socket and #include this. */
+
+ #ifndef __socket
+-#define __socket P(__,socket)
++# ifndef NO_WEAK_ALIAS
++# define __socket P(__,socket)
++# else
++# define __socket socket
++# endif
+ #endif
+
+ #define PUSHARGS_1 str a1, [sp, $-4]!
diff --git a/recipes/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch b/recipes/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch
new file mode 100644
index 0000000000..e137287dd1
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.5-local-dynamic-resolvconf.patch
@@ -0,0 +1,41 @@
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: allow dynamic long-running processes to
+# DP: re-read a dynamically updated resolv.conf on the fly
+# DP: Dpatch author: Adam Conrad <adconrad@ubuntu.com>
+# DP: Patch author: Thorsten Kukuk <kukuk@suse.de>
+# DP: Upstream status: Ubuntu-Specific
+# DP: Date: 2006-01-13 08:14:21 UTC
+
+Index: resolv/res_libc.c
+===================================================================
+--- resolv/res_libc.c.orig
++++ resolv/res_libc.c
+@@ -22,7 +22,7 @@
+ #include <arpa/nameser.h>
+ #include <resolv.h>
+ #include <bits/libc-lock.h>
+-
++#include <sys/stat.h>
+
+ /* The following bit is copied from res_data.c (where it is #ifdef'ed
+ out) since res_init() should go into libc.so but the rest of that
+@@ -94,8 +94,17 @@
+ int
+ __res_maybe_init (res_state resp, int preinit)
+ {
+- if (resp->options & RES_INIT) {
+- if (__res_initstamp != resp->_u._ext.initstamp) {
++ static time_t last_mtime;
++ struct stat statbuf;
++ int ret;
++
++
++ if (resp->options & RES_INIT) {
++ ret = stat (_PATH_RESCONF, &statbuf);
++ if (__res_initstamp != resp->_u._ext.initstamp
++ || (ret == 0) && (last_mtime != statbuf.st_mtime))
++ {
++ last_mtime = statbuf.st_mtime;
+ if (resp->nscount > 0) {
+ __res_iclose (resp, true);
+ return __res_vinit (resp, 1);
diff --git a/recipes/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch b/recipes/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch
new file mode 100644
index 0000000000..e41c1b7d96
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.5-soft-fp-separate-strong-alias.patch
@@ -0,0 +1,205 @@
+Index: glibc-2.5-tls-ppc-04/soft-fp/eqdf2.c
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/eqdf2.c
++++ glibc-2.5-tls-ppc-04/soft-fp/eqdf2.c
+@@ -48,4 +48,3 @@ int __eqdf2(DFtype a, DFtype b)
+ return r;
+ }
+
+-strong_alias(__eqdf2, __nedf2);
+Index: glibc-2.5-tls-ppc-04/soft-fp/gedf2.c
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/gedf2.c
++++ glibc-2.5-tls-ppc-04/soft-fp/gedf2.c
+@@ -47,5 +47,3 @@ int __gedf2(DFtype a, DFtype b)
+
+ return r;
+ }
+-
+-strong_alias(__gedf2, __gtdf2);
+Index: glibc-2.5-tls-ppc-04/soft-fp/gtdf2.c
+===================================================================
+--- /dev/null
++++ glibc-2.5-tls-ppc-04/soft-fp/gtdf2.c
+@@ -0,0 +1,49 @@
++/* Software floating-point emulation.
++ Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
++ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Richard Henderson (rth@cygnus.com) and
++ Jakub Jelinek (jj@ultra.linux.cz).
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ In addition to the permissions in the GNU Lesser General Public
++ License, the Free Software Foundation gives you unlimited
++ permission to link the compiled version of this file into
++ combinations with other programs, and to distribute those
++ combinations without any restriction coming from the use of this
++ file. (The Lesser General Public License restrictions do apply in
++ other respects; for example, they cover modification of the file,
++ and distribution when not linked into a combine executable.)
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
++ MA 02110-1301, USA. */
++
++#include "soft-fp.h"
++#include "double.h"
++
++int __gtdf2(DFtype a, DFtype b)
++{
++ FP_DECL_EX;
++ FP_DECL_D(A); FP_DECL_D(B);
++ int r;
++
++ FP_UNPACK_RAW_D(A, a);
++ FP_UNPACK_RAW_D(B, b);
++ FP_CMP_D(r, A, B, -2);
++ if (r == -2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
++ FP_SET_EXCEPTION(FP_EX_INVALID);
++ FP_HANDLE_EXCEPTIONS;
++
++ return r;
++}
+Index: glibc-2.5-tls-ppc-04/soft-fp/ledf2.c
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/ledf2.c
++++ glibc-2.5-tls-ppc-04/soft-fp/ledf2.c
+@@ -48,4 +48,3 @@ int __ledf2(DFtype a, DFtype b)
+ return r;
+ }
+
+-strong_alias(__ledf2, __ltdf2);
+Index: glibc-2.5-tls-ppc-04/soft-fp/ltdf2.c
+===================================================================
+--- /dev/null
++++ glibc-2.5-tls-ppc-04/soft-fp/ltdf2.c
+@@ -0,0 +1,49 @@
++/* Software floating-point emulation.
++ Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
++ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Richard Henderson (rth@cygnus.com) and
++ Jakub Jelinek (jj@ultra.linux.cz).
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ In addition to the permissions in the GNU Lesser General Public
++ License, the Free Software Foundation gives you unlimited
++ permission to link the compiled version of this file into
++ combinations with other programs, and to distribute those
++ combinations without any restriction coming from the use of this
++ file. (The Lesser General Public License restrictions do apply in
++ other respects; for example, they cover modification of the file,
++ and distribution when not linked into a combine executable.)
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
++ MA 02110-1301, USA. */
++
++#include "soft-fp.h"
++#include "double.h"
++
++int __ltdf2(DFtype a, DFtype b)
++{
++ FP_DECL_EX;
++ FP_DECL_D(A); FP_DECL_D(B);
++ int r;
++
++ FP_UNPACK_RAW_D(A, a);
++ FP_UNPACK_RAW_D(B, b);
++ FP_CMP_D(r, A, B, 2);
++ if (r == 2 && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
++ FP_SET_EXCEPTION(FP_EX_INVALID);
++ FP_HANDLE_EXCEPTIONS;
++
++ return r;
++}
+Index: glibc-2.5-tls-ppc-04/soft-fp/nedf2.c
+===================================================================
+--- /dev/null
++++ glibc-2.5-tls-ppc-04/soft-fp/nedf2.c
+@@ -0,0 +1,49 @@
++/* Software floating-point emulation.
++ Return 0 iff a == b, 1 otherwise
++ Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ Contributed by Richard Henderson (rth@cygnus.com) and
++ Jakub Jelinek (jj@ultra.linux.cz).
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ In addition to the permissions in the GNU Lesser General Public
++ License, the Free Software Foundation gives you unlimited
++ permission to link the compiled version of this file into
++ combinations with other programs, and to distribute those
++ combinations without any restriction coming from the use of this
++ file. (The Lesser General Public License restrictions do apply in
++ other respects; for example, they cover modification of the file,
++ and distribution when not linked into a combine executable.)
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
++ MA 02110-1301, USA. */
++
++#include "soft-fp.h"
++#include "double.h"
++
++int __nedf2(DFtype a, DFtype b)
++{
++ FP_DECL_EX;
++ FP_DECL_D(A); FP_DECL_D(B);
++ int r;
++
++ FP_UNPACK_RAW_D(A, a);
++ FP_UNPACK_RAW_D(B, b);
++ FP_CMP_EQ_D(r, A, B);
++ if (r && (FP_ISSIGNAN_D(A) || FP_ISSIGNAN_D(B)))
++ FP_SET_EXCEPTION(FP_EX_INVALID);
++ FP_HANDLE_EXCEPTIONS;
++
++ return r;
++}
+Index: glibc-2.5-tls-ppc-04/soft-fp/Makefile
+===================================================================
+--- glibc-2.5-tls-ppc-04.orig/soft-fp/Makefile
++++ glibc-2.5-tls-ppc-04/soft-fp/Makefile
+@@ -27,8 +27,8 @@ gcc-single-routines := negsf2 addsf3 sub
+ fixunssfdi floatdisf sqrtsf2 floatunsisf floatundisf \
+ fmasf4
+
+-gcc-double-routines := negdf2 adddf3 subdf3 muldf3 divdf3 eqdf2 \
+- ledf2 gedf2 unorddf2 fixdfsi fixunsdfsi floatsidf fixdfdi \
++gcc-double-routines := negdf2 adddf3 subdf3 muldf3 divdf3 eqdf2 nedf2 \
++ ledf2 ltdf2 gedf2 gtdf2 unorddf2 fixdfsi fixunsdfsi floatsidf fixdfdi \
+ fixunsdfdi floatdidf extendsfdf2 truncdfsf2 sqrtdf2 floatunsidf \
+ floatundidf fmadf4
+
diff --git a/recipes/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch b/recipes/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch
new file mode 100644
index 0000000000..33d5282b90
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch
@@ -0,0 +1,20 @@
+Submitted By: Joe Ciccone <jciccone@linuxfromscratch.org>
+Date: 07-02-2007
+Initial Package Version: 2.6
+Origin: http://sourceware.org/ml/libc-ports/2007-05/msg00051.html
+Upstream Status: Unknown
+Description: Defines RTLD_SINGLE_THREAD_P for arm.
+
+diff -Naur glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+--- glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:22.000000000 -0400
++++ glibc-2.6/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-07-02 17:39:36.000000000 -0400
+@@ -126,3 +126,9 @@
+ # define NO_CANCELLATION 1
+
+ #endif
++
++#ifndef __ASSEMBLER__
++# define RTLD_SINGLE_THREAD_P \
++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
++ header.multiple_threads) == 0, 1)
++#endif
diff --git a/recipes/glibc/files/glibc-2.6.1-powerpc-nofpu.patch b/recipes/glibc/files/glibc-2.6.1-powerpc-nofpu.patch
new file mode 100644
index 0000000000..893c754628
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.6.1-powerpc-nofpu.patch
@@ -0,0 +1,11 @@
+--- dummy-libc/ports/sysdeps/powerpc/nofpu/Makefile 2006-11-22 09:13:11.000000000 -0600
++++ libc25/ports/sysdeps/powerpc/nofpu/Makefile 2007-06-07 09:53:05.708240976 -0500
+@@ -6,7 +6,7 @@
+ endif
+
+ ifeq ($(subdir),math)
+-libm-support += fenv_const fe_nomask
++libm-support += fenv_const
+ CPPFLAGS += -I../soft-fp/
+ # The follow CFLAGS are a work around for GCC Bugzilla Bug 29253
+ # "expand_abs wrong default code for floating point"
diff --git a/recipes/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch b/recipes/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
new file mode 100644
index 0000000000..6979229279
--- /dev/null
+++ b/recipes/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
@@ -0,0 +1,30 @@
+Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
+
+I am checking this x86 assembler patch:
+
+http://sourceware.org/ml/binutils/2008-01/msg00148.html
+
+to check operand size. fnstsw stores 16bit into %ax. The upper
+16bit of %eax is unchanged. The new assembler will disallow
+"fnstsw %eax". Here is a patch for glibc.
+
+
+H.J.
+
+---
+ sysdeps/i386/fpu/ftestexcept.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
+===================================================================
+--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:00:45.000000000 -0700
++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:01:25.000000000 -0700
+@@ -26,7 +26,7 @@
+ int
+ fetestexcept (int excepts)
+ {
+- int temp;
++ short temp;
+ int xtemp = 0;
+
+ /* Get current exceptions. */
diff --git a/recipes/glibc/files/glibc-includes-fixed-isystem.patch b/recipes/glibc/files/glibc-includes-fixed-isystem.patch
new file mode 100644
index 0000000000..06668f41ed
--- /dev/null
+++ b/recipes/glibc/files/glibc-includes-fixed-isystem.patch
@@ -0,0 +1,32 @@
+http://sourceware.org/ml/libc-alpha/2007-03/msg00017.html:
+
+GCC trunk now has multiple internal headers directories, one
+containing the self-contained GCC-provided headers and one containing
+the <limits.h> (not self-contained but including libc's <limits.h> or
+a fixed version thereof) and the fixed headers; more such directories
+may be added in future.
+
+When glibc uses -nostdinc, it needs to use -isystem options for all
+these internal directories. This patch teaches it about the
+include-fixed directory (and is harmless with old GCC versions without
+that directory).
+
+2007-03-18 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.in: Also pass -isystem option for GCC's include-fixed
+ directory.
+ * configure: Regenerate.
+
+Index: configure.in
+===================================================================
+--- /tmp/configure.in 2008-04-05 19:20:52.176759390 +0200
++++ glibc-2.6.1/configure.in 2008-04-05 19:21:26.663424600 +0200
+@@ -912,7 +912,7 @@
+ # thing on a system that doesn't need fixincludes. (Not presently a problem.)
+ if test -n "$sysheaders"; then
+ ccheaders=`$CC -print-file-name=include`
+- SYSINCLUDES="-nostdinc -isystem $ccheaders \
++ SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $ccheaders-fixed \
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+ if test -n "$CXX"; then
+ cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
diff --git a/recipes/glibc/files/march-i686.patch b/recipes/glibc/files/march-i686.patch
new file mode 100644
index 0000000000..04616032ad
--- /dev/null
+++ b/recipes/glibc/files/march-i686.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: sysdeps/unix/sysv/linux/i386/sysdep.h
+===================================================================
+--- sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469)
++++ 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: nptl/sysdeps/pthread/pt-initfini.c
+===================================================================
+--- nptl/sysdeps/pthread/pt-initfini.c (revision 1469)
++++ 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/recipes/glibc/files/ppc-ld-nofpu-20070104.patch b/recipes/glibc/files/ppc-ld-nofpu-20070104.patch
new file mode 100644
index 0000000000..d5b1d31774
--- /dev/null
+++ b/recipes/glibc/files/ppc-ld-nofpu-20070104.patch
@@ -0,0 +1,190 @@
+2007-01-12 Steven Munroe <sjmunroe@us.ibm.com>
+ Joe Kerian <jkerian@us.us.ibm.com>
+
+ [BZ #2749]
+ * sysdeps/ieee754/ldbl-128ibm/s_copysignl.c:
+ Include <math_ldbl_opt.h>.
+ Remove weak_alias. Use long_double_symbol macro.
+ (__copysignl): Use signbit() for comparison.
+ * sysdeps/ieee754/ldbl-128ibm/s_fabsl.c: Correct parms for
+ SET_LDOUBLE_WORDS64.
+
+ [BZ #2423, #2749]
+ * sysdeps/ieee754/ldbl-128ibm/s_ceill.c: Don't include <fenv_libc.h>.
+ (__ceill): Remove calls to fegetround(), fesetround().
+ * sysdeps/ieee754/ldbl-128ibm/s_floorl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_roundl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Likewise.
+
+diff -urN libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_ceill.c libc24/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
+--- libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_ceill.c 2006-03-16 05:46:37.000000000 -0600
++++ libc24/sysdeps/ieee754/ldbl-128ibm/s_ceill.c 2007-01-11 10:30:12.856890432 -0600
+@@ -19,7 +19,6 @@
+ 02111-1307 USA. */
+
+ #include <math.h>
+-#include <fenv_libc.h>
+ #include <math_ldbl_opt.h>
+ #include <float.h>
+ #include <ieee754.h>
+@@ -44,11 +43,9 @@
+ __builtin_inf ()), 1))
+ {
+ double orig_xh;
+- int save_round = fegetround ();
+
+ /* Long double arithmetic, including the canonicalisation below,
+ only works in round-to-nearest mode. */
+- fesetround (FE_TONEAREST);
+
+ /* Convert the high double to integer. */
+ orig_xh = xh;
+@@ -81,8 +78,6 @@
+ /* Ensure we return -0 rather than +0 when appropriate. */
+ if (orig_xh < 0.0)
+ xh = -__builtin_fabs (xh);
+-
+- fesetround (save_round);
+ }
+
+ return ldbl_pack (xh, xl);
+diff -urN libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c libc24/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c
+--- libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c 2006-01-27 18:07:25.000000000 -0600
++++ libc24/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c 2007-01-11 10:30:12.857890280 -0600
+@@ -25,6 +25,7 @@
+
+ #include "math.h"
+ #include "math_private.h"
++#include <math_ldbl_opt.h>
+
+ #ifdef __STDC__
+ long double __copysignl(long double x, long double y)
+@@ -33,13 +34,13 @@
+ long double x,y;
+ #endif
+ {
+- if (y < 0.0)
+- {
+- if (x >= 0.0)
+- x = -x;
+- }
+- else if (x < 0.0)
++ if( signbit(x) != signbit(y) )
+ x = -x;
+ return x;
+ }
+-weak_alias (__copysignl, copysignl)
++
++#ifdef IS_IN_libm
++long_double_symbol (libm, __copysignl, copysignl);
++#else
++long_double_symbol (libc, __copysignl, copysignl);
++#endif
+diff -urN libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c libc24/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c
+--- libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c 2006-01-27 18:07:25.000000000 -0600
++++ libc24/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c 2007-01-11 10:30:12.857890280 -0600
+@@ -37,7 +37,7 @@
+ GET_LDOUBLE_WORDS64(hx,lx,x);
+ lx = lx ^ ( hx & 0x8000000000000000LL );
+ hx = hx & 0x7fffffffffffffffLL;
+- SET_LDOUBLE_WORDS64(hx,lx,x);
++ SET_LDOUBLE_WORDS64(x,hx,lx);
+ return x;
+ }
+ long_double_symbol (libm, __fabsl, fabsl);
+diff -urN libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_floorl.c libc24/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
+--- libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_floorl.c 2006-03-16 05:46:37.000000000 -0600
++++ libc24/sysdeps/ieee754/ldbl-128ibm/s_floorl.c 2007-01-11 10:30:12.858890128 -0600
+@@ -19,7 +19,6 @@
+ 02111-1307 USA. */
+
+ #include <math.h>
+-#include <fenv_libc.h>
+ #include <math_ldbl_opt.h>
+ #include <float.h>
+ #include <ieee754.h>
+@@ -43,11 +42,8 @@
+ && __builtin_isless (__builtin_fabs (xh),
+ __builtin_inf ()), 1))
+ {
+- int save_round = fegetround ();
+-
+ /* Long double arithmetic, including the canonicalisation below,
+ only works in round-to-nearest mode. */
+- fesetround (FE_TONEAREST);
+
+ /* Convert the high double to integer. */
+ hi = ldbl_nearbyint (xh);
+@@ -75,8 +71,6 @@
+ xh = hi;
+ xl = lo;
+ ldbl_canonicalize (&xh, &xl);
+-
+- fesetround (save_round);
+ }
+
+ return ldbl_pack (xh, xl);
+diff -urN libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_roundl.c libc24/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
+--- libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_roundl.c 2006-03-16 05:46:37.000000000 -0600
++++ libc24/sysdeps/ieee754/ldbl-128ibm/s_roundl.c 2007-01-11 10:30:12.859889976 -0600
+@@ -22,7 +22,6 @@
+ when it's coded in C. */
+
+ #include <math.h>
+-#include <fenv_libc.h>
+ #include <math_ldbl_opt.h>
+ #include <float.h>
+ #include <ieee754.h>
+@@ -47,11 +46,9 @@
+ __builtin_inf ()), 1))
+ {
+ double orig_xh;
+- int save_round = fegetround ();
+
+ /* Long double arithmetic, including the canonicalisation below,
+ only works in round-to-nearest mode. */
+- fesetround (FE_TONEAREST);
+
+ /* Convert the high double to integer. */
+ orig_xh = xh;
+@@ -88,8 +85,6 @@
+ xh = hi;
+ xl = lo;
+ ldbl_canonicalize (&xh, &xl);
+-
+- fesetround (save_round);
+ }
+
+ return ldbl_pack (xh, xl);
+diff -urN libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_truncl.c libc24/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
+--- libc25-cvstip-20070104/sysdeps/ieee754/ldbl-128ibm/s_truncl.c 2006-03-16 05:46:37.000000000 -0600
++++ libc24/sysdeps/ieee754/ldbl-128ibm/s_truncl.c 2007-01-11 10:30:12.860889824 -0600
+@@ -22,7 +22,6 @@
+ when it's coded in C. */
+
+ #include <math.h>
+-#include <fenv_libc.h>
+ #include <math_ldbl_opt.h>
+ #include <float.h>
+ #include <ieee754.h>
+@@ -47,11 +46,9 @@
+ __builtin_inf ()), 1))
+ {
+ double orig_xh;
+- int save_round = fegetround ();
+
+ /* Long double arithmetic, including the canonicalisation below,
+ only works in round-to-nearest mode. */
+- fesetround (FE_TONEAREST);
+
+ /* Convert the high double to integer. */
+ orig_xh = xh;
+@@ -92,8 +89,6 @@
+ /* Ensure we return -0 rather than +0 when appropriate. */
+ if (orig_xh < 0.0)
+ xh = -__builtin_fabs (xh);
+-
+- fesetround (save_round);
+ }
+
+ return ldbl_pack (xh, xl);
diff --git a/recipes/glibc/files/ppc-ports-ld-nofpu-20070114.patch b/recipes/glibc/files/ppc-ports-ld-nofpu-20070114.patch
new file mode 100644
index 0000000000..b4d99592f6
--- /dev/null
+++ b/recipes/glibc/files/ppc-ports-ld-nofpu-20070114.patch
@@ -0,0 +1,38 @@
+2007-01-14 Steven Munroe <sjmunroe@us.ibm.com>
+
+ [BZ #2749]
+ * sysdeps/powerpc/nofpu/fenv_libc.h: New file.
+
+diff -urN dummy-libc/ports-cvstip-20070104/sysdeps/powerpc/nofpu/fenv_libc.h libc25/ports/sysdeps/powerpc/nofpu/fenv_libc.h
+--- dummy-libc/ports-cvstip-20070104/sysdeps/powerpc/nofpu/fenv_libc.h Wed Dec 31 18:00:00 1969
++++ libc25/ports/sysdeps/powerpc/nofpu/fenv_libc.h Thu Jan 11 11:00:53 2007
+@@ -0,0 +1,29 @@
++/* Internal libc stuff for floating point environment routines.
++ Copyright (C) 2007 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#ifndef _FENV_LIBC_H
++#define _FENV_LIBC_H 1
++
++/* fenv_libc.h is used in libm implementations of ldbl-128ibm. So we
++ need this version in the soft-fp to at minimum include fenv.h to
++ get the fegetround definition. */
++
++#include <fenv.h>
++
++#endif /* fenv_libc.h */
diff --git a/recipes/glibc/files/ppc-sfp-machine.patch b/recipes/glibc/files/ppc-sfp-machine.patch
new file mode 100644
index 0000000000..6171a03411
--- /dev/null
+++ b/recipes/glibc/files/ppc-sfp-machine.patch
@@ -0,0 +1,297 @@
+This patch combined with the other patches from Bugzilla #2749 allows
+powerpc32 to build. The Subdirs pulls in the soft-fp directory from
+libc, The Implies pulls in the ports powerpc/soft-fp directory which
+includes sfp-machine.h
+
+The get/set/swapcontext changes overide the common implimentation in
+libc to avoid using hardware FP instructions.
+
+
+
+2006-06-01 Steven Munroe <sjmunroe@us.ibm.com>
+
+ [BZ #2749]
+ * sysdeps/powerpc/soft-fp/Subdirs: New file.
+ * sysdeps/powerpc/soft-fp/sfp-machine.h: New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies: New file.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S:
+ New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S:
+ New file.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S:
+ New file.
+
+diff -urN dummy-libc/ports-cvstip-20060512/sysdeps/powerpc/soft-fp/Subdirs
+libc24/ports/sysdeps/powerpc/soft-fp/Subdirs
+--- dummy-libc/ports-cvstip-20060512/sysdeps/powerpc/soft-fp/Subdirs Wed Dec 31 18:00:00 1969
++++ libc24/ports/sysdeps/powerpc/soft-fp/Subdirs Wed May 31 16:58:44 2006
+@@ -0,0 +1,1 @@
++soft-fp
+diff -urN dummy-libc/ports-cvstip-20060512/sysdeps/powerpc/soft-fp/sfp-machine.h
+libc24/ports/sysdeps/powerpc/soft-fp/sfp-machine.h
+--- dummy-libc/ports-cvstip-20060512/sysdeps/powerpc/soft-fp/sfp-machine.h Wed Dec 31 18:00:00 1969
++++ libc24/ports/sysdeps/powerpc/soft-fp/sfp-machine.h Wed May 31 13:57:07 2006
+@@ -0,0 +1,63 @@
++#define _FP_W_TYPE_SIZE 32
++#define _FP_W_TYPE unsigned long
++#define _FP_WS_TYPE signed long
++#define _FP_I_TYPE long
++
++#define _FP_MUL_MEAT_S(R,X,Y) \
++ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
++#define _FP_MUL_MEAT_D(R,X,Y) \
++ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
++#define _FP_MUL_MEAT_Q(R,X,Y) \
++ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
++
++#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
++#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
++#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
++
++#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
++#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
++#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
++#define _FP_NANSIGN_S 0
++#define _FP_NANSIGN_D 0
++#define _FP_NANSIGN_Q 0
++
++#define _FP_KEEPNANFRACP 1
++
++/* Someone please check this. */
++#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
++ do { \
++ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
++ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
++ { \
++ R##_s = Y##_s; \
++ _FP_FRAC_COPY_##wc(R,Y); \
++ } \
++ else \
++ { \
++ R##_s = X##_s; \
++ _FP_FRAC_COPY_##wc(R,X); \
++ } \
++ R##_c = FP_CLS_NAN; \
++ } while (0)
++
++/* Exception flags. We use the bit positions of the appropriate bits
++ in the FPSCR, which also correspond to the FE_* bits. This makes
++ everything easier ;-). */
++#define FP_EX_INVALID (1 << (31 - 2))
++#define FP_EX_OVERFLOW (1 << (31 - 3))
++#define FP_EX_UNDERFLOW (1 << (31 - 4))
++#define FP_EX_DENORM FP_EX_UNDERFLOW
++#define FP_EX_DIVZERO (1 << (31 - 5))
++#define FP_EX_INEXACT (1 << (31 - 6))
++
++#define FP_HANDLE_EXCEPTIONS __simulate_exceptions (_fex)
++#define FP_ROUNDMODE __sim_round_mode
++
++extern int __sim_exceptions;
++libc_hidden_proto (__sim_exceptions);
++extern int __sim_disabled_exceptions;
++libc_hidden_proto (__sim_disabled_exceptions);
++extern int __sim_round_mode;
++libc_hidden_proto (__sim_round_mode);
++
++extern void __simulate_exceptions (int x) attribute_hidden;
+diff -urN dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
+libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
+--- dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies Wed Dec 31 18:00:00 1969
++++ libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies Wed May 31 15:46:44 2006
+@@ -0,0 +1,1 @@
++powerpc/soft-fp
+diff -urN dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+--- dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S Wed Dec 31 18:00:00 1969
++++ libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S Thu Jun 01 15:31:03 2006
+@@ -0,0 +1,59 @@
++/* Save current context.
++ Copyright (C) 2002, 2004, 2005 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <sysdep.h>
++#include <rtld-global-offsets.h>
++#include <shlib-compat.h>
++
++#define __ASSEMBLY__
++#include <asm/ptrace.h>
++#include "ucontext_i.h"
++
++#define __CONTEXT_FUNC_NAME __getcontext
++#undef __CONTEXT_ENABLE_FPRS
++#undef __CONTEXT_ENABLE_VRS
++
++#include "getcontext-common.S"
++
++versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
++
++#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
++
++/* For the nofpu case the old/new versions are the same function. */
++strong_alias (__getcontext, __novec_getcontext)
++
++compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
++
++#endif
++
++#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
++
++#define _ERRNO_H 1
++#include <bits/errno.h>
++
++ compat_text_section
++ENTRY (__getcontext_stub)
++ li r3,ENOSYS
++ b __syscall_error@local
++END (__getcontext_stub)
++ .previous
++
++compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
++
++#endif
+diff -urN dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+--- dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S Wed Dec 31 18:00:00 1969
++++ libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S Thu Jun 01 15:31:03 2006
+@@ -0,0 +1,59 @@
++/* Jump to a new context.
++ Copyright (C) 2002, 2004, 2005 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <sysdep.h>
++#include <rtld-global-offsets.h>
++#include <shlib-compat.h>
++
++#define __ASSEMBLY__
++#include <asm/ptrace.h>
++#include "ucontext_i.h"
++
++#define __CONTEXT_FUNC_NAME __setcontext
++#undef __CONTEXT_ENABLE_FPRS
++#undef __CONTEXT_ENABLE_VRS
++
++#include "setcontext-common.S"
++
++versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
++
++#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
++
++/* For the nofpu case the old/new versions are the same function. */
++strong_alias (__setcontext, __novec_setcontext)
++
++compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
++
++#endif
++
++#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_3)
++
++#define _ERRNO_H 1
++#include <bits/errno.h>
++
++ compat_text_section
++ENTRY (__setcontext_stub)
++ li r3,ENOSYS
++ b __syscall_error@local
++END (__setcontext_stub)
++ .previous
++
++compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_0)
++
++#endif
+diff -urN dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+--- dummy-libc/ports-cvstip-20060512/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S Wed Dec 31 18:00:00 1969
++++ libc24/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S Thu Jun 01 15:31:03 2006
+@@ -0,0 +1,59 @@
++/* Save current context and jump to a new context.
++ Copyright (C) 2002, 2004, 2005 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <sysdep.h>
++#include <rtld-global-offsets.h>
++#include <shlib-compat.h>
++
++#define __ASSEMBLY__
++#include <asm/ptrace.h>
++#include "ucontext_i.h"
++
++#define __CONTEXT_FUNC_NAME __swapcontext
++#undef __CONTEXT_ENABLE_FPRS
++#undef __CONTEXT_ENABLE_VRS
++
++# include "swapcontext-common.S"
++
++versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
++
++#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
++
++/* For the nofpu case the old/new versions are the same function. */
++strong_alias (__swapcontext, __novec_swapcontext)
++
++compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
++
++#endif
++
++#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
++
++#define _ERRNO_H 1
++#include <bits/errno.h>
++
++ compat_text_section
++ENTRY (__swapcontext_stub)
++ li r3,ENOSYS
++ b __syscall_error@local
++END (__swapcontext_stub)
++ .previous
++
++compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
++
++#endif
+
diff --git a/recipes/glibc/files/ppc-soft-fp-20070115.patch b/recipes/glibc/files/ppc-soft-fp-20070115.patch
new file mode 100644
index 0000000000..a84bc2f7cb
--- /dev/null
+++ b/recipes/glibc/files/ppc-soft-fp-20070115.patch
@@ -0,0 +1,182 @@
+2007-01-14 Steven Munroe <sjmunroe@us.ibm.com>
+ Joe Kerian <jkerian@us.us.ibm.com>
+
+ [BZ #2749]
+ * soft-fp/op-4.h (__FP_FRAC_SUB_3, __FP_FRAC_SUB_4): Correct borrow
+ handling for high words.
+ * soft-fp/op-common.h (_FP_OVERFLOW_SEMIRAW): Always set inexact
+ and overflow for infinity.
+ (_FP_PACK_SEMIRAW): Update comment. Do not round if NaN or Inf.
+
+ * math/basic-test.c (truncdfsf_test): New function.
+ [!NO_LONG_DOUBLE] (trunctfsf_test): New function.
+ [!NO_LONG_DOUBLE] (trunctfdf_test): New function.
+ Change main() to do_test. Define TEST_FUNCTION. Include test-skeleton.c.
+ (do_test): Run new tests.
+
+2007-01-15 Jakub Jelinek <jakub@redhat.com>
+
+ * soft-fp/op-common.h (FP_TRUNC): When truncating a NaN, clear
+ workbits in semi-raw fraction.
+
+
+diff -urN libc25-cvstip-20070104/math/basic-test.c libc24/math/basic-test.c
+--- libc25-cvstip-20070104/math/basic-test.c 2001-07-05 23:55:35.000000000 -0500
++++ libc24/math/basic-test.c 2007-01-15 11:41:17.260963824 -0600
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1999 Free Software Foundation, Inc.
++/* Copyright (C) 1999, 2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 1999.
+
+@@ -107,17 +107,90 @@
+ TEST_FUNC (double_test, double, nan, DBL_EPSILON, HUGE_VAL)
+ #ifndef NO_LONG_DOUBLE
+ TEST_FUNC (ldouble_test, long double, nanl, LDBL_EPSILON, HUGE_VALL)
++
++void
++trunctfsf_test(void)
++{
++ volatile long double Inf_var, NaN_var, zero_var, one_var;
++ float x1, x2;
++
++ zero_var = 0.0;
++ one_var = 1.0;
++ NaN_var = zero_var/zero_var;
++ Inf_var = one_var / zero_var;
++
++ (void) &zero_var;
++ (void) &one_var;
++ (void) &NaN_var;
++ (void) &Inf_var;
++
++ x1 = (float)NaN_var;
++ check (" float x = (float)((long double)NaN))", isnan (x1) != 0);
++ x2 = (float)Inf_var;
++ check (" float x = (float)((long double)Inf))", isinf (x2) != 0);
++}
++
++void
++trunctfdf_test(void)
++{
++ volatile long double Inf_var, NaN_var, zero_var, one_var;
++ double x1, x2;
++
++ zero_var = 0.0;
++ one_var = 1.0;
++ NaN_var = zero_var/zero_var;
++ Inf_var = one_var / zero_var;
++
++ (void) &zero_var;
++ (void) &one_var;
++ (void) &NaN_var;
++ (void) &Inf_var;
++
++ x1 = (double)NaN_var;
++ check (" double x = (double)((long double)NaN))", isnan (x1) != 0);
++ x2 = (double)Inf_var;
++ check (" double x = (double)((long double)Inf))", isinf (x2) != 0);
++}
++
+ #endif
+
++void
++truncdfsf_test(void)
++{
++ volatile double Inf_var, NaN_var, zero_var, one_var;
++ float x1, x2;
++
++ zero_var = 0.0;
++ one_var = 1.0;
++ NaN_var = zero_var/zero_var;
++ Inf_var = one_var / zero_var;
++
++ (void) &zero_var;
++ (void) &one_var;
++ (void) &NaN_var;
++ (void) &Inf_var;
++
++ x1 = (float)NaN_var;
++ check (" float x = (float)((double)NaN))", isnan (x1) != 0);
++ x2 = (float)Inf_var;
++ check (" float x = (float)((double)Inf))", isinf (x2) != 0);
++}
++
+ int
+-main (void)
++do_test (void)
+ {
+ float_test ();
+ double_test ();
++ truncdfsf_test();
+
+ #ifndef NO_LONG_DOUBLE
+ ldouble_test ();
++ trunctfsf_test();
++ trunctfdf_test();
+ #endif
+
+ return errors != 0;
+ }
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff -urN libc25-cvstip-20070104/soft-fp/op-4.h libc24/soft-fp/op-4.h
+--- libc25-cvstip-20070104/soft-fp/op-4.h 2006-04-04 03:24:47.000000000 -0500
++++ libc24/soft-fp/op-4.h 2007-01-11 11:00:53.000000000 -0600
+@@ -564,7 +564,7 @@
+ r1 = x1 - y1; \
+ _c2 = r1 > x1; \
+ r1 -= _c1; \
+- _c2 |= r1 > _c1; \
++ _c2 |= _c1 && (y1 == x1); \
+ r2 = x2 - y2 - _c2; \
+ } while (0)
+ #endif
+@@ -578,11 +578,11 @@
+ r1 = x1 - y1; \
+ _c2 = r1 > x1; \
+ r1 -= _c1; \
+- _c2 |= r1 > _c1; \
++ _c2 |= _c1 && (y1 == x1); \
+ r2 = x2 - y2; \
+ _c3 = r2 > x2; \
+ r2 -= _c2; \
+- _c3 |= r2 > _c2; \
++ _c3 |= _c2 && (y2 == x2); \
+ r3 = x3 - y3 - _c3; \
+ } while (0)
+ #endif
+diff -urN libc25-cvstip-20070104/soft-fp/op-common.h libc24/soft-fp/op-common.h
+--- libc25-cvstip-20070104/soft-fp/op-common.h 2006-04-04 03:24:47.000000000 -0500
++++ libc24/soft-fp/op-common.h 2007-01-15 11:46:17.290882288 -0600
+@@ -1,5 +1,5 @@
+ /* Software floating-point emulation. Common operations.
+- Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
++ Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@cygnus.com),
+ Jakub Jelinek (jj@ultra.linux.cz),
+@@ -99,10 +99,10 @@
+ else \
+ { \
+ X##_e = _FP_EXPMAX_##fs - 1; \
+- FP_SET_EXCEPTION(FP_EX_OVERFLOW); \
+- FP_SET_EXCEPTION(FP_EX_INEXACT); \
+ _FP_FRAC_SET_##wc(X, _FP_MAXFRAC_##wc); \
+ } \
++ FP_SET_EXCEPTION(FP_EX_INEXACT); \
++ FP_SET_EXCEPTION(FP_EX_OVERFLOW); \
+ } while (0)
+
+ /* Check for a semi-raw value being a signaling NaN and raise the
+@@ -1252,6 +1252,9 @@
+ _FP_FRAC_SRL_##swc(S, (_FP_WFRACBITS_##sfs \
+ - _FP_WFRACBITS_##dfs)); \
+ _FP_FRAC_COPY_##dwc##_##swc(D, S); \
++ /* Semi-raw NaN must have all workbits cleared. */ \
++ _FP_FRAC_LOW_##dwc(D) \
++ &= ~(_FP_W_TYPE) ((1 << _FP_WORKBITS) - 1); \
+ _FP_FRAC_HIGH_##dfs(D) |= _FP_QNANBIT_SH_##dfs; \
+ } \
+ } \
diff --git a/recipes/glibc/glibc-2.2.5/alpha-build-failure.patch b/recipes/glibc/glibc-2.2.5/alpha-build-failure.patch
new file mode 100644
index 0000000000..280a0a556d
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/alpha-build-failure.patch
@@ -0,0 +1,30 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/alpha/divrem.h~alpha-build-failure.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/alpha/divrem.h 2004-09-03 19:00:37.000000000 -0500
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
++/* Copyright (C) 1996,97,2002 Free Software Foundation, Inc.
+ Contributed by David Mosberger (davidm@cs.arizona.edu).
+ This file is part of the GNU C Library.
+
+@@ -86,6 +86,7 @@
+
+ .align 3
+ UFUNC_NAME:
++$udiv_entry:
+ lda sp, -STACK(sp)
+ .frame sp, STACK, retaddr, 0
+ #ifdef PROF
+@@ -206,7 +207,7 @@
+ cmovge AT, AT, arg2
+
+ /* Do the unsigned division. */
+- bsr retaddr, UFUNC_NAME
++ bsr retaddr, $udiv_entry
+
+ /* Restore originals and adjust the sign of the result. */
+ ldq arg1, 0(sp)
diff --git a/recipes/glibc/glibc-2.2.5/arm-asm-clobber.patch b/recipes/glibc/glibc-2.2.5/arm-asm-clobber.patch
new file mode 100644
index 0000000000..eff21dc702
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/arm-asm-clobber.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h~arm-asm-clobber.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-09-03 19:01:07.000000000 -0500
+@@ -131,7 +131,7 @@
+ asm volatile ("swi %1 @ syscall " #name \
+ : "=r" (_a1) \
+ : "i" (SYS_ify(name)) ASM_ARGS_##nr \
+- : "a1", "memory"); \
++ : "memory"); \
+ _sys_result = _a1; \
+ } \
+ if (_sys_result >= (unsigned int) -4095) \
diff --git a/recipes/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch b/recipes/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch
new file mode 100644
index 0000000000..b487d69239
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/arm-ctl_bus_isa.patch
@@ -0,0 +1,40 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/ioperm.c~arm-ctl_bus_isa.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-09-03 19:00:37.000000000 -0500
+@@ -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/recipes/glibc/glibc-2.2.5/arm-longlong.patch b/recipes/glibc/glibc-2.2.5/arm-longlong.patch
new file mode 100644
index 0000000000..dfb9309b7b
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/arm-longlong.patch
@@ -0,0 +1,59 @@
+--- stdlib/longlong.h~ 2002-09-29 18:45:58.000000000 +0100
++++ stdlib/longlong.h 2004-03-20 19:16:44.000000000 +0000
+@@ -210,6 +210,14 @@
+ "rI" ((USItype) (bh)), \
+ "r" ((USItype) (al)), \
+ "rI" ((USItype) (bl)))
++/* v3m and all higher arches have long multiply support. */
++#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__)
++#define umul_ppmm(xh, xl, a, b) \
++ __asm__ ("umull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
++#define UMUL_TIME 5
++#define smul_ppmm(xh, xl, a, b) \
++ __asm__ ("smull %0,%1,%2,%3" : "=&r" (xl), "=&r" (xh) : "r" (a), "r" (b))
++#else
+ #define umul_ppmm(xh, xl, a, b) \
+ {register USItype __t0, __t1, __t2; \
+ __asm__ ("%@ Inlined umul_ppmm\n" \
+@@ -231,7 +239,14 @@
+ : "r" ((USItype) (a)), \
+ "r" ((USItype) (b)));}
+ #define UMUL_TIME 20
++#endif
+ #define UDIV_TIME 100
++
++#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
++#define count_leading_zeros(COUNT,X) ((COUNT) = __builtin_clz (X))
++#define COUNT_LEADING_ZEROS_0 32
++#endif
++
+ #endif /* __arm__ */
+
+ #if defined (__hppa) && W_TYPE_SIZE == 32
+--- /dev/null 2004-02-02 20:32:13.000000000 +0000
++++ sysdeps/arm/mp_clz_tab.c 2004-03-20 19:24:26.000000000 +0000
+@@ -0,0 +1,24 @@
++/* __clz_tab -- support for longlong.h
++ Copyright (C) 2004 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
++/* Nothing required. */
++#else
++#include <sysdeps/generic/mp_clz_tab.c>
++#endif
diff --git a/recipes/glibc/glibc-2.2.5/arm-machine-gmon.patch b/recipes/glibc/glibc-2.2.5/arm-machine-gmon.patch
new file mode 100644
index 0000000000..0fa789d86b
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/arm-machine-gmon.patch
@@ -0,0 +1,11 @@
+--- sysdeps/arm/machine-gmon.h~ 2001-07-06 00:55:48.000000000 -0400
++++ sysdeps/arm/machine-gmon.h 2004-04-25 03:56:20.000000000 -0400
+@@ -35,7 +35,7 @@
+ static void mcount_internal (u_long frompc, u_long selfpc);
+
+ #define _MCOUNT_DECL(frompc, selfpc) \
+-static void mcount_internal (u_long frompc, u_long selfpc)
++static __attribute__((used)) void mcount_internal (u_long frompc, u_long selfpc)
+
+ /* This macro/func MUST save r0, r1 because the compiler inserts
+ blind calls to _mount(), ignoring the fact that _mcount may
diff --git a/recipes/glibc/glibc-2.2.5/arm-memcpy.patch b/recipes/glibc/glibc-2.2.5/arm-memcpy.patch
new file mode 100644
index 0000000000..0f7009e549
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/arm-memcpy.patch
@@ -0,0 +1,761 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/arm/memcpy.S 2004-09-03 19:00:39.000000000 -0500
+@@ -0,0 +1,241 @@
++/*
++ * Optimized memcpy implementation for ARM processors
++ *
++ * Author: Nicolas Pitre
++ * Created: Dec 23, 2003
++ * Copyright: (C) MontaVista Software, Inc.
++ *
++ * This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull lsr
++#define push lsl
++#else
++#define pull lsl
++#define push lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++ defined(__ARM_ARCH_5T__) || \
++ defined(__ARM_ARCH_5TE__)
++#define PLD(code...) code
++#else
++#define PLD(code...)
++#endif
++
++
++/* char * memcpy (char *dst, const char *src) */
++
++ENTRY(memcpy)
++ subs r2, r2, #4
++ stmfd sp!, {r0, r4, lr}
++ blt 7f
++ ands ip, r0, #3
++ PLD( pld [r1, #0] )
++ bne 8f
++ ands ip, r1, #3
++ bne 9f
++
++1: subs r2, r2, #4
++ blt 6f
++ subs r2, r2, #8
++ blt 5f
++ subs r2, r2, #16
++ blt 4f
++
++ PLD( subs r2, r2, #65 )
++ stmfd sp!, {r5 - r8}
++ PLD( blt 3f )
++ PLD( pld [r1, #32] )
++
++ PLD( @ cache alignment )
++ PLD( ands ip, r1, #31 )
++ PLD( pld [r1, #64] )
++ PLD( beq 2f )
++ PLD( rsb ip, ip, #32 )
++ PLD( cmp r2, ip )
++ PLD( pld [r1, #96] )
++ PLD( blt 2f )
++ PLD( cmp ip, #16 )
++ PLD( sub r2, r2, ip )
++ PLD( ldmgeia r1!, {r3 - r6} )
++ PLD( stmgeia r0!, {r3 - r6} )
++ PLD( beq 2f )
++ PLD( and ip, ip, #15 )
++ PLD( cmp ip, #8 )
++ PLD( ldr r3, [r1], #4 )
++ PLD( ldrge r4, [r1], #4 )
++ PLD( ldrgt r5, [r1], #4 )
++ PLD( str r3, [r0], #4 )
++ PLD( strge r4, [r0], #4 )
++ PLD( strgt r5, [r0], #4 )
++
++2: PLD( pld [r1, #96] )
++3: ldmia r1!, {r3 - r8, ip, lr}
++ subs r2, r2, #32
++ stmia r0!, {r3 - r8, ip, lr}
++ bge 2b
++ PLD( cmn r2, #65 )
++ PLD( bge 3b )
++ PLD( add r2, r2, #65 )
++ tst r2, #31
++ ldmfd sp!, {r5 - r8}
++ ldmeqfd sp!, {r0, r4, pc}
++
++ tst r2, #16
++4: ldmneia r1!, {r3, r4, ip, lr}
++ stmneia r0!, {r3, r4, ip, lr}
++
++ tst r2, #8
++5: ldmneia r1!, {r3, r4}
++ stmneia r0!, {r3, r4}
++
++ tst r2, #4
++6: ldrne r3, [r1], #4
++ strne r3, [r0], #4
++
++7: ands r2, r2, #3
++ ldmeqfd sp!, {r0, r4, pc}
++
++ cmp r2, #2
++ ldrb r3, [r1], #1
++ ldrgeb r4, [r1], #1
++ ldrgtb ip, [r1]
++ strb r3, [r0], #1
++ strgeb r4, [r0], #1
++ strgtb ip, [r0]
++ ldmfd sp!, {r0, r4, pc}
++
++8: rsb ip, ip, #4
++ cmp ip, #2
++ ldrb r3, [r1], #1
++ ldrgeb r4, [r1], #1
++ ldrgtb lr, [r1], #1
++ strb r3, [r0], #1
++ strgeb r4, [r0], #1
++ strgtb lr, [r0], #1
++ subs r2, r2, ip
++ blt 7b
++ ands ip, r1, #3
++ beq 1b
++
++9: bic r1, r1, #3
++ cmp ip, #2
++ ldr lr, [r1], #4
++ beq 17f
++ bgt 18f
++
++
++ .macro forward_copy_shift pull push
++
++ cmp r2, #12
++ PLD( pld [r1, #0] )
++ blt 15f
++ subs r2, r2, #28
++ stmfd sp!, {r5 - r9}
++ blt 13f
++
++ PLD( subs r2, r2, #97 )
++ PLD( blt 12f )
++ PLD( pld [r1, #32] )
++
++ PLD( @ cache alignment )
++ PLD( rsb ip, r1, #36 )
++ PLD( pld [r1, #64] )
++ PLD( ands ip, ip, #31 )
++ PLD( pld [r1, #96] )
++ PLD( beq 11f )
++ PLD( cmp r2, ip )
++ PLD( pld [r1, #128] )
++ PLD( blt 11f )
++ PLD( sub r2, r2, ip )
++10: PLD( mov r3, lr, pull #\pull )
++ PLD( ldr lr, [r1], #4 )
++ PLD( subs ip, ip, #4 )
++ PLD( orr r3, r3, lr, push #\push )
++ PLD( str r3, [r0], #4 )
++ PLD( bgt 10b )
++
++11: PLD( pld [r1, #128] )
++12: mov r3, lr, pull #\pull
++ ldmia r1!, {r4 - r9, ip, lr}
++ subs r2, r2, #32
++ orr r3, r3, r4, push #\push
++ mov r4, r4, pull #\pull
++ orr r4, r4, r5, push #\push
++ mov r5, r5, pull #\pull
++ orr r5, r5, r6, push #\push
++ mov r6, r6, pull #\pull
++ orr r6, r6, r7, push #\push
++ mov r7, r7, pull #\pull
++ orr r7, r7, r8, push #\push
++ mov r8, r8, pull #\pull
++ orr r8, r8, r9, push #\push
++ mov r9, r9, pull #\pull
++ orr r9, r9, ip, push #\push
++ mov ip, ip, pull #\pull
++ orr ip, ip, lr, push #\push
++ stmia r0!, {r3 - r9, ip}
++ bge 11b
++ PLD( cmn r2, #97 )
++ PLD( bge 12b )
++ PLD( add r2, r2, #97 )
++ cmn r2, #16
++ blt 14f
++13: mov r3, lr, pull #\pull
++ ldmia r1!, {r4 - r6, lr}
++ sub r2, r2, #16
++ orr r3, r3, r4, push #\push
++ mov r4, r4, pull #\pull
++ orr r4, r4, r5, push #\push
++ mov r5, r5, pull #\pull
++ orr r5, r5, r6, push #\push
++ mov r6, r6, pull #\pull
++ orr r6, r6, lr, push #\push
++ stmia r0!, {r3 - r6}
++14: adds r2, r2, #28
++ ldmfd sp!, {r5 - r9}
++ blt 16f
++15: mov r3, lr, pull #\pull
++ ldr lr, [r1], #4
++ subs r2, r2, #4
++ orr r3, r3, lr, push #\push
++ str r3, [r0], #4
++ bge 15b
++16:
++ .endm
++
++
++ forward_copy_shift pull=8 push=24
++ sub r1, r1, #3
++ b 7b
++
++17: forward_copy_shift pull=16 push=16
++ sub r1, r1, #2
++ b 7b
++
++18: forward_copy_shift pull=24 push=8
++ sub r1, r1, #1
++ b 7b
++
++ .size memcpy, . - memcpy
++END(memcpy)
++libc_hidden_builtin_def (memcpy)
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/arm/memmove.S 2004-09-03 19:00:39.000000000 -0500
+@@ -0,0 +1,251 @@
++/*
++ * Optimized memmove implementation for ARM processors
++ *
++ * Author: Nicolas Pitre
++ * Created: Dec 23, 2003
++ * Copyright: (C) MontaVista Software, Inc.
++ *
++ * This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull lsr
++#define push lsl
++#else
++#define pull lsl
++#define push lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++ defined(__ARM_ARCH_5T__) || \
++ defined(__ARM_ARCH_5TE__)
++#define PLD(code...) code
++#else
++#define PLD(code...)
++#endif
++
++
++/* char * memmove (char *dst, const char *src) */
++ENTRY(memmove)
++ subs ip, r0, r1
++ cmphi r2, ip
++ bls memcpy(PLT)
++
++ stmfd sp!, {r0, r4, lr}
++ add r1, r1, r2
++ add r0, r0, r2
++ subs r2, r2, #4
++ blt 25f
++ ands ip, r0, #3
++ PLD( pld [r1, #-4] )
++ bne 26f
++ ands ip, r1, #3
++ bne 27f
++
++19: subs r2, r2, #4
++ blt 24f
++ subs r2, r2, #8
++ blt 23f
++ subs r2, r2, #16
++ blt 22f
++
++ PLD( pld [r1, #-32] )
++ PLD( subs r2, r2, #96 )
++ stmfd sp!, {r5 - r8}
++ PLD( blt 21f )
++
++ PLD( @ cache alignment )
++ PLD( ands ip, r1, #31 )
++ PLD( pld [r1, #-64] )
++ PLD( beq 20f )
++ PLD( cmp r2, ip )
++ PLD( pld [r1, #-96] )
++ PLD( blt 20f )
++ PLD( cmp ip, #16 )
++ PLD( sub r2, r2, ip )
++ PLD( ldmgedb r1!, {r3 - r6} )
++ PLD( stmgedb r0!, {r3 - r6} )
++ PLD( beq 20f )
++ PLD( and ip, ip, #15 )
++ PLD( cmp ip, #8 )
++ PLD( ldr r3, [r1, #-4]! )
++ PLD( ldrge r4, [r1, #-4]! )
++ PLD( ldrgt r5, [r1, #-4]! )
++ PLD( str r3, [r0, #-4]! )
++ PLD( strge r4, [r0, #-4]! )
++ PLD( strgt r5, [r0, #-4]! )
++
++20: PLD( pld [r1, #-96] )
++ PLD( pld [r1, #-128] )
++21: ldmdb r1!, {r3, r4, ip, lr}
++ subs r2, r2, #32
++ stmdb r0!, {r3, r4, ip, lr}
++ ldmdb r1!, {r3, r4, ip, lr}
++ stmgedb r0!, {r3, r4, ip, lr}
++ ldmgedb r1!, {r3, r4, ip, lr}
++ stmgedb r0!, {r3, r4, ip, lr}
++ ldmgedb r1!, {r3, r4, ip, lr}
++ subges r2, r2, #32
++ stmdb r0!, {r3, r4, ip, lr}
++ bge 20b
++ PLD( cmn r2, #96 )
++ PLD( bge 21b )
++ PLD( add r2, r2, #96 )
++ tst r2, #31
++ ldmfd sp!, {r5 - r8}
++ ldmeqfd sp!, {r0, r4, pc}
++
++ tst r2, #16
++22: ldmnedb r1!, {r3, r4, ip, lr}
++ stmnedb r0!, {r3, r4, ip, lr}
++
++ tst r2, #8
++23: ldmnedb r1!, {r3, r4}
++ stmnedb r0!, {r3, r4}
++
++ tst r2, #4
++24: ldrne r3, [r1, #-4]!
++ strne r3, [r0, #-4]!
++
++25: ands r2, r2, #3
++ ldmeqfd sp!, {r0, r4, pc}
++
++ cmp r2, #2
++ ldrb r3, [r1, #-1]
++ ldrgeb r4, [r1, #-2]
++ ldrgtb ip, [r1, #-3]
++ strb r3, [r0, #-1]
++ strgeb r4, [r0, #-2]
++ strgtb ip, [r0, #-3]
++ ldmfd sp!, {r0, r4, pc}
++
++26: cmp ip, #2
++ ldrb r3, [r1, #-1]!
++ ldrgeb r4, [r1, #-1]!
++ ldrgtb lr, [r1, #-1]!
++ strb r3, [r0, #-1]!
++ strgeb r4, [r0, #-1]!
++ strgtb lr, [r0, #-1]!
++ subs r2, r2, ip
++ blt 25b
++ ands ip, r1, #3
++ beq 19b
++
++27: bic r1, r1, #3
++ cmp ip, #2
++ ldr r3, [r1]
++ beq 35f
++ blt 36f
++
++
++ .macro backward_copy_shift push pull
++
++ cmp r2, #12
++ PLD( pld [r1, #-4] )
++ blt 33f
++ subs r2, r2, #28
++ stmfd sp!, {r5 - r9}
++ blt 31f
++
++ PLD( subs r2, r2, #96 )
++ PLD( pld [r1, #-32] )
++ PLD( blt 30f )
++ PLD( pld [r1, #-64] )
++
++ PLD( @ cache alignment )
++ PLD( ands ip, r1, #31 )
++ PLD( pld [r1, #-96] )
++ PLD( beq 29f )
++ PLD( cmp r2, ip )
++ PLD( pld [r1, #-128] )
++ PLD( blt 29f )
++ PLD( sub r2, r2, ip )
++28: PLD( mov r4, r3, push #\push )
++ PLD( ldr r3, [r1, #-4]! )
++ PLD( subs ip, ip, #4 )
++ PLD( orr r4, r4, r3, pull #\pull )
++ PLD( str r4, [r0, #-4]! )
++ PLD( bgt 28b )
++
++29: PLD( pld [r1, #-128] )
++30: mov lr, r3, push #\push
++ ldmdb r1!, {r3 - r9, ip}
++ subs r2, r2, #32
++ orr lr, lr, ip, pull #\pull
++ mov ip, ip, push #\push
++ orr ip, ip, r9, pull #\pull
++ mov r9, r9, push #\push
++ orr r9, r9, r8, pull #\pull
++ mov r8, r8, push #\push
++ orr r8, r8, r7, pull #\pull
++ mov r7, r7, push #\push
++ orr r7, r7, r6, pull #\pull
++ mov r6, r6, push #\push
++ orr r6, r6, r5, pull #\pull
++ mov r5, r5, push #\push
++ orr r5, r5, r4, pull #\pull
++ mov r4, r4, push #\push
++ orr r4, r4, r3, pull #\pull
++ stmdb r0!, {r4 - r9, ip, lr}
++ bge 29b
++ PLD( cmn r2, #96 )
++ PLD( bge 30b )
++ PLD( add r2, r2, #96 )
++ cmn r2, #16
++ blt 32f
++31: mov r7, r3, push #\push
++ ldmdb r1!, {r3 - r6}
++ sub r2, r2, #16
++ orr r7, r7, r6, pull #\pull
++ mov r6, r6, push #\push
++ orr r6, r6, r5, pull #\pull
++ mov r5, r5, push #\push
++ orr r5, r5, r4, pull #\pull
++ mov r4, r4, push #\push
++ orr r4, r4, r3, pull #\pull
++ stmdb r0!, {r4 - r7}
++32: adds r2, r2, #28
++ ldmfd sp!, {r5 - r9}
++ blt 34f
++33: mov r4, r3, push #\push
++ ldr r3, [r1, #-4]!
++ subs r2, r2, #4
++ orr r4, r4, r3, pull #\pull
++ str r4, [r0, #-4]!
++ bge 33b
++34:
++ .endm
++
++
++ backward_copy_shift push=8 pull=24
++ add r1, r1, #3
++ b 25b
++
++35: backward_copy_shift push=16 pull=16
++ add r1, r1, #2
++ b 25b
++
++36: backward_copy_shift push=24 pull=8
++ add r1, r1, #1
++ b 25b
++
++ .size memmove, . - memmove
++END(memmove)
++libc_hidden_builtin_def (memmove)
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/arm/bcopy.S 2004-09-03 19:00:39.000000000 -0500
+@@ -0,0 +1,255 @@
++/*
++ * Optimized memmove implementation for ARM processors
++ *
++ * Author: Nicolas Pitre
++ * Created: Dec 23, 2003
++ * Copyright: (C) MontaVista Software, Inc.
++ *
++ * This file is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This file is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ */
++
++#include <sysdep.h>
++
++
++/*
++ * Endian independent macros for shifting bytes within registers.
++ */
++#ifndef __ARMEB__
++#define pull lsr
++#define push lsl
++#else
++#define pull lsl
++#define push lsr
++#endif
++
++/*
++ * Enable data preload for architectures that support it (ARMv5 and above)
++ */
++#if defined(__ARM_ARCH_5__) || \
++ defined(__ARM_ARCH_5T__) || \
++ defined(__ARM_ARCH_5TE__)
++#define PLD(code...) code
++#else
++#define PLD(code...)
++#endif
++
++dst .req r1
++src .req r0
++
++/* void *bcopy (const char *src, char *dst, size_t size) */
++ENTRY(bcopy)
++ subs ip, dst, src
++ cmphi r2, ip
++ movls r3, r0
++ movls r0, r1
++ movls r1, r3
++ bls memcpy(PLT)
++
++ stmfd sp!, {r4, lr}
++ add src, src, r2
++ add dst, dst, r2
++ subs r2, r2, #4
++ blt 25f
++ ands ip, dst, #3
++ PLD( pld [src, #-4] )
++ bne 26f
++ ands ip, src, #3
++ bne 27f
++
++19: subs r2, r2, #4
++ blt 24f
++ subs r2, r2, #8
++ blt 23f
++ subs r2, r2, #16
++ blt 22f
++
++ PLD( pld [src, #-32] )
++ PLD( subs r2, r2, #96 )
++ stmfd sp!, {r5 - r8}
++ PLD( blt 21f )
++
++ PLD( @ cache alignment )
++ PLD( ands ip, src, #31 )
++ PLD( pld [src, #-64] )
++ PLD( beq 20f )
++ PLD( cmp r2, ip )
++ PLD( pld [src, #-96] )
++ PLD( blt 20f )
++ PLD( cmp ip, #16 )
++ PLD( sub r2, r2, ip )
++ PLD( ldmgedb src!, {r3 - r6} )
++ PLD( stmgedb dst!, {r3 - r6} )
++ PLD( beq 20f )
++ PLD( and ip, ip, #15 )
++ PLD( cmp ip, #8 )
++ PLD( ldr r3, [src, #-4]! )
++ PLD( ldrge r4, [src, #-4]! )
++ PLD( ldrgt r5, [src, #-4]! )
++ PLD( str r3, [dst, #-4]! )
++ PLD( strge r4, [dst, #-4]! )
++ PLD( strgt r5, [dst, #-4]! )
++
++20: PLD( pld [src, #-96] )
++ PLD( pld [src, #-128] )
++21: ldmdb src!, {r3, r4, ip, lr}
++ subs r2, r2, #32
++ stmdb dst!, {r3, r4, ip, lr}
++ ldmdb src!, {r3, r4, ip, lr}
++ stmgedb dst!, {r3, r4, ip, lr}
++ ldmgedb src!, {r3, r4, ip, lr}
++ stmgedb dst!, {r3, r4, ip, lr}
++ ldmgedb src!, {r3, r4, ip, lr}
++ subges r2, r2, #32
++ stmdb dst!, {r3, r4, ip, lr}
++ bge 20b
++ PLD( cmn r2, #96 )
++ PLD( bge 21b )
++ PLD( add r2, r2, #96 )
++ tst r2, #31
++ ldmfd sp!, {r5 - r8}
++ ldmeqfd sp!, {r4, pc}
++
++ tst r2, #16
++22: ldmnedb src!, {r3, r4, ip, lr}
++ stmnedb dst!, {r3, r4, ip, lr}
++
++ tst r2, #8
++23: ldmnedb src!, {r3, r4}
++ stmnedb dst!, {r3, r4}
++
++ tst r2, #4
++24: ldrne r3, [src, #-4]!
++ strne r3, [dst, #-4]!
++
++25: ands r2, r2, #3
++ ldmeqfd sp!, {dst, r4, pc}
++
++ cmp r2, #2
++ ldrb r3, [src, #-1]
++ ldrgeb r4, [src, #-2]
++ ldrgtb ip, [src, #-3]
++ strb r3, [dst, #-1]
++ strgeb r4, [dst, #-2]
++ strgtb ip, [dst, #-3]
++ ldmfd sp!, {dst, r4, pc}
++
++26: cmp ip, #2
++ ldrb r3, [src, #-1]!
++ ldrgeb r4, [src, #-1]!
++ ldrgtb lr, [src, #-1]!
++ strb r3, [dst, #-1]!
++ strgeb r4, [dst, #-1]!
++ strgtb lr, [dst, #-1]!
++ subs r2, r2, ip
++ blt 25b
++ ands ip, src, #3
++ beq 19b
++
++27: bic src, src, #3
++ cmp ip, #2
++ ldr r3, [src]
++ beq 35f
++ blt 36f
++
++
++ .macro backward_copy_shift push pull
++
++ cmp r2, #12
++ PLD( pld [src, #-4] )
++ blt 33f
++ subs r2, r2, #28
++ stmfd sp!, {r5 - r9}
++ blt 31f
++
++ PLD( subs r2, r2, #96 )
++ PLD( pld [src, #-32] )
++ PLD( blt 30f )
++ PLD( pld [src, #-64] )
++
++ PLD( @ cache alignment )
++ PLD( ands ip, src, #31 )
++ PLD( pld [src, #-96] )
++ PLD( beq 29f )
++ PLD( cmp r2, ip )
++ PLD( pld [src, #-128] )
++ PLD( blt 29f )
++ PLD( sub r2, r2, ip )
++28: PLD( mov r4, r3, push #\push )
++ PLD( ldr r3, [src, #-4]! )
++ PLD( subs ip, ip, #4 )
++ PLD( orr r4, r4, r3, pull #\pull )
++ PLD( str r4, [dst, #-4]! )
++ PLD( bgt 28b )
++
++29: PLD( pld [src, #-128] )
++30: mov lr, r3, push #\push
++ ldmdb src!, {r3 - r9, ip}
++ subs r2, r2, #32
++ orr lr, lr, ip, pull #\pull
++ mov ip, ip, push #\push
++ orr ip, ip, r9, pull #\pull
++ mov r9, r9, push #\push
++ orr r9, r9, r8, pull #\pull
++ mov r8, r8, push #\push
++ orr r8, r8, r7, pull #\pull
++ mov r7, r7, push #\push
++ orr r7, r7, r6, pull #\pull
++ mov r6, r6, push #\push
++ orr r6, r6, r5, pull #\pull
++ mov r5, r5, push #\push
++ orr r5, r5, r4, pull #\pull
++ mov r4, r4, push #\push
++ orr r4, r4, r3, pull #\pull
++ stmdb dst!, {r4 - r9, ip, lr}
++ bge 29b
++ PLD( cmn r2, #96 )
++ PLD( bge 30b )
++ PLD( add r2, r2, #96 )
++ cmn r2, #16
++ blt 32f
++31: mov r7, r3, push #\push
++ ldmdb src!, {r3 - r6}
++ sub r2, r2, #16
++ orr r7, r7, r6, pull #\pull
++ mov r6, r6, push #\push
++ orr r6, r6, r5, pull #\pull
++ mov r5, r5, push #\push
++ orr r5, r5, r4, pull #\pull
++ mov r4, r4, push #\push
++ orr r4, r4, r3, pull #\pull
++ stmdb dst!, {r4 - r7}
++32: adds r2, r2, #28
++ ldmfd sp!, {r5 - r9}
++ blt 34f
++33: mov r4, r3, push #\push
++ ldr r3, [src, #-4]!
++ subs r2, r2, #4
++ orr r4, r4, r3, pull #\pull
++ str r4, [dst, #-4]!
++ bge 33b
++34:
++ .endm
++
++
++ backward_copy_shift push=8 pull=24
++ add src, src, #3
++ b 25b
++
++35: backward_copy_shift push=16 pull=16
++ add src, src, #2
++ b 25b
++
++36: backward_copy_shift push=24 pull=8
++ add src, src, #1
++ b 25b
++
++ .size bcopy, . - bcopy
++END(bcopy)
diff --git a/recipes/glibc/glibc-2.2.5/arm-no-hwcap.patch b/recipes/glibc/glibc-2.2.5/arm-no-hwcap.patch
new file mode 100644
index 0000000000..17bfdcd125
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/arm-no-hwcap.patch
@@ -0,0 +1,11 @@
+--- sysdeps/unix/sysv/linux/arm/dl-procinfo.h Mon Jul 23 12:57:23 2001
++++ sysdeps/unix/sysv/linux/arm/dl-procinfo.h Sun Feb 10 06:37:00 2002
+@@ -67,7 +67,7 @@
+ HWCAP_ARM_VFP = 1 << 6,
+ HWCAP_ARM_EDSP = 1 << 7,
+
+- HWCAP_IMPORTANT = (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT)
++ HWCAP_IMPORTANT = HWCAP_ARM_FAST_MULT
+ };
+
+ static inline int
diff --git a/recipes/glibc/glibc-2.2.5/cris-libc-symbols.patch b/recipes/glibc/glibc-2.2.5/cris-libc-symbols.patch
new file mode 100644
index 0000000000..93fc2c141f
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/cris-libc-symbols.patch
@@ -0,0 +1,43 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/include/libc-symbols.h~cris-libc-symbols.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/include/libc-symbols.h 2004-09-03 19:00:37.000000000 -0500
+@@ -207,18 +207,29 @@
+ # define __make_section_unallocated(section_string)
+ # endif
+
+-/* Tacking on "\n\t#" to the section name makes gcc put it's bogus
+- section attributes on what looks like a comment to the assembler. */
++/* Tacking on "\n\t#" to the section name makes gcc put its bogus
++ section attributes on what looks like a comment to the assembler.
++ Furthermore, with gas, we need to add a "#APP" line so the comment
++ is recognized as such. */
++# ifdef HAVE_GNU_AS
++# define __as_app_line "#APP\n"
++# else
++# define __as_app_line ""
++# endif
+ # ifdef HAVE_SECTION_QUOTES
+ # define link_warning(symbol, msg) \
+ __make_section_unallocated (".gnu.warning." #symbol) \
+- static const char __evoke_link_warning_##symbol[] \
+- __attribute__ ((section (".gnu.warning." #symbol "\"\n\t#\""))) = msg;
++ static const char __evoke_link_warning_##symbol[] \
++ __attribute__ \
++ ((section (".gnu.warning." #symbol "\"\n" __as_app_line "\t#\""))) \
++ = msg;
+ # else
+ # define link_warning(symbol, msg) \
+ __make_section_unallocated (".gnu.warning." #symbol) \
+- static const char __evoke_link_warning_##symbol[] \
+- __attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg;
++ static const char __evoke_link_warning_##symbol[] \
++ __attribute__ \
++ ((section (".gnu.warning." #symbol "\n" __as_app_line "\t#"))) \
++ = msg;
+ # endif
+ # else /* Not ELF: a.out */
+ # ifdef HAVE_XCOFF
diff --git a/recipes/glibc/glibc-2.2.5/cris-stack-direction.patch b/recipes/glibc/glibc-2.2.5/cris-stack-direction.patch
new file mode 100644
index 0000000000..785d3a2427
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/cris-stack-direction.patch
@@ -0,0 +1,36 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/cris/stackinfo.h 2004-09-03 19:00:37.000000000 -0500
+@@ -0,0 +1,28 @@
++/* Copyright (C) 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++/* This file contains a bit of information about the stack allocation
++ of the processor. */
++
++#ifndef _STACKINFO_H
++#define _STACKINFO_H 1
++
++/* On cris the stack grows down. */
++#define _STACK_GROWS_DOWN 1
++
++#endif /* stackinfo.h */
diff --git a/recipes/glibc/glibc-2.2.5/dl-machine-alpha.patch b/recipes/glibc/glibc-2.2.5/dl-machine-alpha.patch
new file mode 100644
index 0000000000..1d34dba706
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/dl-machine-alpha.patch
@@ -0,0 +1,420 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/alpha/dl-machine.h~dl-machine-alpha.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/alpha/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -134,125 +134,126 @@
+ #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name, IMB) \
+ extern void tramp_name (void); \
+ asm ( "\
+- .globl " #tramp_name "
+- .ent " #tramp_name "
+-" #tramp_name ":
+- lda $sp, -44*8($sp)
+- .frame $sp, 44*8, $26
+- /* Preserve all integer registers that C normally doesn't. */
+- stq $26, 0*8($sp)
+- stq $0, 1*8($sp)
+- stq $1, 2*8($sp)
+- stq $2, 3*8($sp)
+- stq $3, 4*8($sp)
+- stq $4, 5*8($sp)
+- stq $5, 6*8($sp)
+- stq $6, 7*8($sp)
+- stq $7, 8*8($sp)
+- stq $8, 9*8($sp)
+- stq $16, 10*8($sp)
+- stq $17, 11*8($sp)
+- stq $18, 12*8($sp)
+- stq $19, 13*8($sp)
+- stq $20, 14*8($sp)
+- stq $21, 15*8($sp)
+- stq $22, 16*8($sp)
+- stq $23, 17*8($sp)
+- stq $24, 18*8($sp)
+- stq $25, 19*8($sp)
+- stq $29, 20*8($sp)
+- stt $f0, 21*8($sp)
+- stt $f1, 22*8($sp)
+- stt $f10, 23*8($sp)
+- stt $f11, 24*8($sp)
+- stt $f12, 25*8($sp)
+- stt $f13, 26*8($sp)
+- stt $f14, 27*8($sp)
+- stt $f15, 28*8($sp)
+- stt $f16, 29*8($sp)
+- stt $f17, 30*8($sp)
+- stt $f18, 31*8($sp)
+- stt $f19, 32*8($sp)
+- stt $f20, 33*8($sp)
+- stt $f21, 34*8($sp)
+- stt $f22, 35*8($sp)
+- stt $f23, 36*8($sp)
+- stt $f24, 37*8($sp)
+- stt $f25, 38*8($sp)
+- stt $f26, 39*8($sp)
+- stt $f27, 40*8($sp)
+- stt $f28, 41*8($sp)
+- stt $f29, 42*8($sp)
+- stt $f30, 43*8($sp)
+- .mask 0x27ff01ff, -44*8
+- .fmask 0xfffffc03, -(44-21)*8
+- /* Set up our $gp */
+- br $gp, .+4
+- ldgp $gp, 0($gp)
+- .prologue 0
+- /* Set up the arguments for fixup: */
+- /* $16 = link_map out of plt0 */
+- /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */
+- /* $18 = return address */
+- subq $28, $27, $17
+- ldq $16, 8($27)
+- subq $17, 20, $17
+- mov $26, $18
+- addq $17, $17, $17
+- /* Do the fixup */
+- bsr $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng
+- /* Move the destination address into position. */
+- mov $0, $27
+- /* Restore program registers. */
+- ldq $26, 0*8($sp)
+- ldq $0, 1*8($sp)
+- ldq $1, 2*8($sp)
+- ldq $2, 3*8($sp)
+- ldq $3, 4*8($sp)
+- ldq $4, 5*8($sp)
+- ldq $5, 6*8($sp)
+- ldq $6, 7*8($sp)
+- ldq $7, 8*8($sp)
+- ldq $8, 9*8($sp)
+- ldq $16, 10*8($sp)
+- ldq $17, 11*8($sp)
+- ldq $18, 12*8($sp)
+- ldq $19, 13*8($sp)
+- ldq $20, 14*8($sp)
+- ldq $21, 15*8($sp)
+- ldq $22, 16*8($sp)
+- ldq $23, 17*8($sp)
+- ldq $24, 18*8($sp)
+- ldq $25, 19*8($sp)
+- ldq $29, 20*8($sp)
+- ldt $f0, 21*8($sp)
+- ldt $f1, 22*8($sp)
+- ldt $f10, 23*8($sp)
+- ldt $f11, 24*8($sp)
+- ldt $f12, 25*8($sp)
+- ldt $f13, 26*8($sp)
+- ldt $f14, 27*8($sp)
+- ldt $f15, 28*8($sp)
+- ldt $f16, 29*8($sp)
+- ldt $f17, 30*8($sp)
+- ldt $f18, 31*8($sp)
+- ldt $f19, 32*8($sp)
+- ldt $f20, 33*8($sp)
+- ldt $f21, 34*8($sp)
+- ldt $f22, 35*8($sp)
+- ldt $f23, 36*8($sp)
+- ldt $f24, 37*8($sp)
+- ldt $f25, 38*8($sp)
+- ldt $f26, 39*8($sp)
+- ldt $f27, 40*8($sp)
+- ldt $f28, 41*8($sp)
+- ldt $f29, 42*8($sp)
+- ldt $f30, 43*8($sp)
+- /* Flush the Icache after having modified the .plt code. */
+- " #IMB "
+- /* Clean up and turn control to the destination */
+- lda $sp, 44*8($sp)
+- jmp $31, ($27)
++ .globl " #tramp_name " \n\
++ .ent " #tramp_name " \n\
++" #tramp_name ": \n\
++ lda $sp, -44*8($sp) \n\
++ .frame $sp, 44*8, $26 \n\
++ /* Preserve all integer registers that C normally \n\
++ doesn't. */ \n\
++ stq $26, 0*8($sp) \n\
++ stq $0, 1*8($sp) \n\
++ stq $1, 2*8($sp) \n\
++ stq $2, 3*8($sp) \n\
++ stq $3, 4*8($sp) \n\
++ stq $4, 5*8($sp) \n\
++ stq $5, 6*8($sp) \n\
++ stq $6, 7*8($sp) \n\
++ stq $7, 8*8($sp) \n\
++ stq $8, 9*8($sp) \n\
++ stq $16, 10*8($sp) \n\
++ stq $17, 11*8($sp) \n\
++ stq $18, 12*8($sp) \n\
++ stq $19, 13*8($sp) \n\
++ stq $20, 14*8($sp) \n\
++ stq $21, 15*8($sp) \n\
++ stq $22, 16*8($sp) \n\
++ stq $23, 17*8($sp) \n\
++ stq $24, 18*8($sp) \n\
++ stq $25, 19*8($sp) \n\
++ stq $29, 20*8($sp) \n\
++ stt $f0, 21*8($sp) \n\
++ stt $f1, 22*8($sp) \n\
++ stt $f10, 23*8($sp) \n\
++ stt $f11, 24*8($sp) \n\
++ stt $f12, 25*8($sp) \n\
++ stt $f13, 26*8($sp) \n\
++ stt $f14, 27*8($sp) \n\
++ stt $f15, 28*8($sp) \n\
++ stt $f16, 29*8($sp) \n\
++ stt $f17, 30*8($sp) \n\
++ stt $f18, 31*8($sp) \n\
++ stt $f19, 32*8($sp) \n\
++ stt $f20, 33*8($sp) \n\
++ stt $f21, 34*8($sp) \n\
++ stt $f22, 35*8($sp) \n\
++ stt $f23, 36*8($sp) \n\
++ stt $f24, 37*8($sp) \n\
++ stt $f25, 38*8($sp) \n\
++ stt $f26, 39*8($sp) \n\
++ stt $f27, 40*8($sp) \n\
++ stt $f28, 41*8($sp) \n\
++ stt $f29, 42*8($sp) \n\
++ stt $f30, 43*8($sp) \n\
++ .mask 0x27ff01ff, -44*8 \n\
++ .fmask 0xfffffc03, -(44-21)*8 \n\
++ /* Set up our $gp */ \n\
++ br $gp, .+4 \n\
++ ldgp $gp, 0($gp) \n\
++ .prologue 0 \n\
++ /* Set up the arguments for fixup: */ \n\
++ /* $16 = link_map out of plt0 */ \n\
++ /* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */\n\
++ /* $18 = return address */ \n\
++ subq $28, $27, $17 \n\
++ ldq $16, 8($27) \n\
++ subq $17, 20, $17 \n\
++ mov $26, $18 \n\
++ addq $17, $17, $17 \n\
++ /* Do the fixup */ \n\
++ bsr $26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng\n\
++ /* Move the destination address into position. */ \n\
++ mov $0, $27 \n\
++ /* Restore program registers. */ \n\
++ ldq $26, 0*8($sp) \n\
++ ldq $0, 1*8($sp) \n\
++ ldq $1, 2*8($sp) \n\
++ ldq $2, 3*8($sp) \n\
++ ldq $3, 4*8($sp) \n\
++ ldq $4, 5*8($sp) \n\
++ ldq $5, 6*8($sp) \n\
++ ldq $6, 7*8($sp) \n\
++ ldq $7, 8*8($sp) \n\
++ ldq $8, 9*8($sp) \n\
++ ldq $16, 10*8($sp) \n\
++ ldq $17, 11*8($sp) \n\
++ ldq $18, 12*8($sp) \n\
++ ldq $19, 13*8($sp) \n\
++ ldq $20, 14*8($sp) \n\
++ ldq $21, 15*8($sp) \n\
++ ldq $22, 16*8($sp) \n\
++ ldq $23, 17*8($sp) \n\
++ ldq $24, 18*8($sp) \n\
++ ldq $25, 19*8($sp) \n\
++ ldq $29, 20*8($sp) \n\
++ ldt $f0, 21*8($sp) \n\
++ ldt $f1, 22*8($sp) \n\
++ ldt $f10, 23*8($sp) \n\
++ ldt $f11, 24*8($sp) \n\
++ ldt $f12, 25*8($sp) \n\
++ ldt $f13, 26*8($sp) \n\
++ ldt $f14, 27*8($sp) \n\
++ ldt $f15, 28*8($sp) \n\
++ ldt $f16, 29*8($sp) \n\
++ ldt $f17, 30*8($sp) \n\
++ ldt $f18, 31*8($sp) \n\
++ ldt $f19, 32*8($sp) \n\
++ ldt $f20, 33*8($sp) \n\
++ ldt $f21, 34*8($sp) \n\
++ ldt $f22, 35*8($sp) \n\
++ ldt $f23, 36*8($sp) \n\
++ ldt $f24, 37*8($sp) \n\
++ ldt $f25, 38*8($sp) \n\
++ ldt $f26, 39*8($sp) \n\
++ ldt $f27, 40*8($sp) \n\
++ ldt $f28, 41*8($sp) \n\
++ ldt $f29, 42*8($sp) \n\
++ ldt $f30, 43*8($sp) \n\
++ /* Flush the Icache after having modified the .plt code. */\n\
++ " #IMB " \n\
++ /* Clean up and turn control to the destination */ \n\
++ lda $sp, 44*8($sp) \n\
++ jmp $31, ($27) \n\
+ .end " #tramp_name)
+
+ #ifndef PROF
+@@ -270,85 +271,87 @@
+ its return value is the user program's entry point. */
+
+ #define RTLD_START asm ("\
+-.text
+- .set at
+- .globl _start
+- .ent _start
+-_start:
+- br $gp, 0f
+-0: ldgp $gp, 0($gp)
+- .prologue 0
+- /* Pass pointer to argument block to _dl_start. */
+- mov $sp, $16
+- bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng
+- .end _start
+- /* FALLTHRU */
+- .globl _dl_start_user
+- .ent _dl_start_user
+-_dl_start_user:
+- .frame $30,0,$31,0
+- .prologue 0
+- /* Save the user entry point address in s0. */
+- mov $0, $9
+- /* Store the highest stack address. */
+- stq $30, __libc_stack_end
+- /* See if we were run as a command with the executable file
+- name as an extra leading argument. */
+- ldl $1, _dl_skip_args
+- bne $1, $fixup_stack
+-$fixup_stack_ret:
+- /* The special initializer gets called with the stack just
+- as the application's entry point will see it; it can
+- switch stacks if it moves these contents over. */
+-" RTLD_START_SPECIAL_INIT "
+- /* Call _dl_init(_dl_loaded, argc, argv, envp) to run initializers. */
+- ldq $16, _dl_loaded
+- ldq $17, 0($sp)
+- lda $18, 8($sp)
+- s8addq $17, 8, $19
+- addq $19, $18, $19
+- jsr $26, _dl_init
+- /* Pass our finalizer function to the user in $0. */
+- lda $0, _dl_fini
+- /* Jump to the user's entry point. */
+- mov $9, $27
+- jmp ($9)
+-$fixup_stack:
+- /* Adjust the stack pointer to skip _dl_skip_args words. This
+- involves copying everything down, since the stack pointer must
+- always be 16-byte aligned. */
+- ldq $2, 0($sp)
+- ldq $5, _dl_argv
+- subq $31, $1, $6
+- subq $2, $1, $2
+- s8addq $6, $5, $5
+- mov $sp, $4
+- s8addq $1, $sp, $3
+- stq $2, 0($sp)
+- stq $5, _dl_argv
+- /* Copy down argv. */
+-0: ldq $5, 8($3)
+- addq $4, 8, $4
+- addq $3, 8, $3
+- stq $5, 0($4)
+- bne $5, 0b
+- /* Copy down envp. */
+-1: ldq $5, 8($3)
+- addq $4, 8, $4
+- addq $3, 8, $3
+- stq $5, 0($4)
+- bne $5, 1b
+- /* Copy down auxiliary table. */
+-2: ldq $5, 8($3)
+- ldq $6, 16($3)
+- addq $4, 16, $4
+- addq $3, 16, $3
+- stq $5, -8($4)
+- stq $6, 0($4)
+- bne $5, 2b
+- br $fixup_stack_ret
+- .end _dl_start_user
+- .set noat
++.text \n\
++ .set at \n\
++ .globl _start \n\
++ .ent _start \n\
++_start: \n\
++ br $gp, 0f \n\
++0: ldgp $gp, 0($gp) \n\
++ .prologue 0 \n\
++ /* Pass pointer to argument block to _dl_start. */ \n\
++ mov $sp, $16 \n\
++ bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng \n\
++ .end _start \n\
++ /* FALLTHRU */ \n\
++ .globl _dl_start_user \n\
++ .ent _dl_start_user \n\
++_dl_start_user: \n\
++ .frame $30,0,$31,0 \n\
++ .prologue 0 \n\
++ /* Save the user entry point address in s0. */ \n\
++ mov $0, $9 \n\
++ /* Store the highest stack address. */ \n\
++ stq $30, __libc_stack_end \n\
++ /* See if we were run as a command with the executable \n\
++ file name as an extra leading argument. */ \n\
++ ldl $1, _dl_skip_args \n\
++ bne $1, $fixup_stack \n\
++$fixup_stack_ret: \n\
++ /* The special initializer gets called with the stack \n\
++ just as the application's entry point will see it; \n\
++ it can switch stacks if it moves these contents \n\
++ over. */ \n\
++" RTLD_START_SPECIAL_INIT " \n\
++ /* Call _dl_init(_dl_loaded, argc, argv, envp) to run \n\
++ initializers. */ \n\
++ ldq $16, _dl_loaded \n\
++ ldq $17, 0($sp) \n\
++ lda $18, 8($sp) \n\
++ s8addq $17, 8, $19 \n\
++ addq $19, $18, $19 \n\
++ jsr $26, _dl_init \n\
++ /* Pass our finalizer function to the user in $0. */ \n\
++ lda $0, _dl_fini \n\
++ /* Jump to the user's entry point. */ \n\
++ mov $9, $27 \n\
++ jmp ($9) \n\
++$fixup_stack: \n\
++ /* Adjust the stack pointer to skip _dl_skip_args words.\n\
++ This involves copying everything down, since the \n\
++ stack pointer must always be 16-byte aligned. */ \n\
++ ldq $2, 0($sp) \n\
++ ldq $5, _dl_argv \n\
++ subq $31, $1, $6 \n\
++ subq $2, $1, $2 \n\
++ s8addq $6, $5, $5 \n\
++ mov $sp, $4 \n\
++ s8addq $1, $sp, $3 \n\
++ stq $2, 0($sp) \n\
++ stq $5, _dl_argv \n\
++ /* Copy down argv. */ \n\
++0: ldq $5, 8($3) \n\
++ addq $4, 8, $4 \n\
++ addq $3, 8, $3 \n\
++ stq $5, 0($4) \n\
++ bne $5, 0b \n\
++ /* Copy down envp. */ \n\
++1: ldq $5, 8($3) \n\
++ addq $4, 8, $4 \n\
++ addq $3, 8, $3 \n\
++ stq $5, 0($4) \n\
++ bne $5, 1b \n\
++ /* Copy down auxiliary table. */ \n\
++2: ldq $5, 8($3) \n\
++ ldq $6, 16($3) \n\
++ addq $4, 16, $4 \n\
++ addq $3, 16, $3 \n\
++ stq $5, -8($4) \n\
++ stq $6, 0($4) \n\
++ bne $5, 2b \n\
++ br $fixup_stack_ret \n\
++ .end _dl_start_user \n\
++ .set noat \n\
+ .previous");
+
+ #ifndef RTLD_START_SPECIAL_INIT
diff --git a/recipes/glibc/glibc-2.2.5/dl-machine-arm.patch b/recipes/glibc/glibc-2.2.5/dl-machine-arm.patch
new file mode 100644
index 0000000000..7684b43b39
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/dl-machine-arm.patch
@@ -0,0 +1,383 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/arm/dl-machine.h~dl-machine-arm.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/arm/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -121,14 +121,15 @@
+ and then redirect to the address it returns. */
+ // macro for handling PIC situation....
+ #ifdef PIC
+-#define CALL_ROUTINE(x) " ldr sl,0f
+- add sl, pc, sl
+-1: ldr r2, 2f
+- mov lr, pc
+- add pc, sl, r2
+- b 3f
+-0: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4
+-2: .word " #x "(GOTOFF)
++#define CALL_ROUTINE(x) "\
++ ldr sl,0f\n\
++ add sl, pc, sl\n\
++1: ldr r2, 2f\n\
++ mov lr, pc\n\
++ add pc, sl, r2\n\
++ b 3f\n\
++0: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4\n\
++2: .word " #x "(GOTOFF)\n\
+ 3: "
+ #else
+ #define CALL_ROUTINE(x) " bl " #x
+@@ -136,114 +137,114 @@
+
+ #ifndef PROF
+ # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
+- .text
+- .globl _dl_runtime_resolve
+- .type _dl_runtime_resolve, #function
+- .align 2
+-_dl_runtime_resolve:
+- @ we get called with
+- @ stack[0] contains the return address from this call
+- @ ip contains &GOT[n+3] (pointer to function)
+- @ lr points to &GOT[2]
+-
+- @ save almost everything; lr is already on the stack
+- stmdb sp!,{r0-r3,sl,fp}
+-
+- @ prepare to call fixup()
+- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each
+- sub r1, ip, lr
+- sub r1, r1, #4
+- add r1, r1, r1
+-
+- @ get pointer to linker struct
+- ldr r0, [lr, #-4]
+-
+- @ call fixup routine
+- " CALL_ROUTINE(fixup) "
+-
+- @ save the return
+- mov ip, r0
+-
+- @ restore the stack
+- ldmia sp!,{r0-r3,sl,fp,lr}
+-
+- @ jump to the newly found address
+- mov pc, ip
+-
+- .size _dl_runtime_resolve, .-_dl_runtime_resolve
+-
+- .globl _dl_runtime_profile
+- .type _dl_runtime_profile, #function
+- .align 2
+-_dl_runtime_profile:
+- @ save almost everything; lr is already on the stack
+- stmdb sp!,{r0-r3,sl,fp}
+-
+- @ prepare to call fixup()
+- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each
+- sub r1, ip, lr
+- sub r1, r1, #4
+- add r1, r1, r1
+-
+- @ get pointer to linker struct
+- ldr r0, [lr, #-4]
+-
+- @ call profiling fixup routine
+- " CALL_ROUTINE(profile_fixup) "
+-
+- @ save the return
+- mov ip, r0
+-
+- @ restore the stack
+- ldmia sp!,{r0-r3,sl,fp,lr}
+-
+- @ jump to the newly found address
+- mov pc, ip
+-
+- .size _dl_runtime_resolve, .-_dl_runtime_resolve
+- .previous
++ .text\n\
++ .globl _dl_runtime_resolve\n\
++ .type _dl_runtime_resolve, #function\n\
++ .align 2\n\
++_dl_runtime_resolve:\n\
++ @ we get called with\n\
++ @ stack[0] contains the return address from this call\n\
++ @ ip contains &GOT[n+3] (pointer to function)\n\
++ @ lr points to &GOT[2]\n\
++\n\
++ @ save almost everything; lr is already on the stack\n\
++ stmdb sp!,{r0-r3,sl,fp}\n\
++\n\
++ @ prepare to call fixup()\n\
++ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\
++ sub r1, ip, lr\n\
++ sub r1, r1, #4\n\
++ add r1, r1, r1\n\
++\n\
++ @ get pointer to linker struct\n\
++ ldr r0, [lr, #-4]\n\
++\n\
++ @ call fixup routine\n\
++ " CALL_ROUTINE(fixup) "\n\
++\n\
++ @ save the return\n\
++ mov ip, r0\n\
++\n\
++ @ restore the stack\n\
++ ldmia sp!,{r0-r3,sl,fp,lr}\n\
++\n\
++ @ jump to the newly found address\n\
++ mov pc, ip\n\
++\n\
++ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
++\n\
++ .globl _dl_runtime_profile\n\
++ .type _dl_runtime_profile, #function\n\
++ .align 2\n\
++_dl_runtime_profile:\n\
++ @ save almost everything; lr is already on the stack\n\
++ stmdb sp!,{r0-r3,sl,fp}\n\
++\n\
++ @ prepare to call fixup()\n\
++ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\
++ sub r1, ip, lr\n\
++ sub r1, r1, #4\n\
++ add r1, r1, r1\n\
++\n\
++ @ get pointer to linker struct\n\
++ ldr r0, [lr, #-4]\n\
++\n\
++ @ call profiling fixup routine\n\
++ " CALL_ROUTINE(profile_fixup) "\n\
++\n\
++ @ save the return\n\
++ mov ip, r0\n\
++\n\
++ @ restore the stack\n\
++ ldmia sp!,{r0-r3,sl,fp,lr}\n\
++\n\
++ @ jump to the newly found address\n\
++ mov pc, ip\n\
++\n\
++ .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
++ .previous\n\
+ ");
+ #else // PROF
+ # 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 2
+-_dl_runtime_resolve:
+-_dl_runtime_profile:
+- @ we get called with
+- @ stack[0] contains the return address from this call
+- @ ip contains &GOT[n+3] (pointer to function)
+- @ lr points to &GOT[2]
+-
+- @ save almost everything; return add is already on the stack
+- stmdb sp!,{r0-r3,sl,fp}
+-
+- @ prepare to call fixup()
+- @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each
+- sub r1, ip, lr
+- sub r1, r1, #4
+- add r1, r1, r1
+-
+- @ get pointer to linker struct
+- ldr r0, [lr, #-4]
+-
+- @ call profiling fixup routine
+- " CALL_ROUTINE(fixup) "
+-
+- @ save the return
+- mov ip, r0
+-
+- @ restore the stack
+- ldmia sp!,{r0-r3,sl,fp,lr}
+-
+- @ jump to the newly found address
+- mov pc, ip
+-
+- .size _dl_runtime_profile, .-_dl_runtime_profile
+- .previous
++ .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 2\n\
++_dl_runtime_resolve:\n\
++_dl_runtime_profile:\n\
++ @ we get called with\n\
++ @ stack[0] contains the return address from this call\n\
++ @ ip contains &GOT[n+3] (pointer to function)\n\
++ @ lr points to &GOT[2]\n\
++\n\
++ @ save almost everything; return add is already on the stack\n\
++ stmdb sp!,{r0-r3,sl,fp}\n\
++\n\
++ @ prepare to call fixup()\n\
++ @ change &GOT[n+3] into 8*n NOTE: reloc are 8 bytes each\n\
++ sub r1, ip, lr\n\
++ sub r1, r1, #4\n\
++ add r1, r1, r1\n\
++\n\
++ @ get pointer to linker struct\n\
++ ldr r0, [lr, #-4]\n\
++\n\
++ @ call profiling fixup routine\n\
++ " CALL_ROUTINE(fixup) "\n\
++\n\
++ @ save the return\n\
++ mov ip, r0\n\
++\n\
++ @ restore the stack\n\
++ ldmia sp!,{r0-r3,sl,fp,lr}\n\
++\n\
++ @ jump to the newly found address\n\
++ mov pc, ip\n\
++\n\
++ .size _dl_runtime_profile, .-_dl_runtime_profile\n\
++ .previous\n\
+ ");
+ #endif //PROF
+
+@@ -256,70 +257,70 @@
+ its return value is the user program's entry point. */
+
+ #define RTLD_START asm ("\
+-.text
+-.globl _start
+-.globl _dl_start_user
+-_start:
+- @ at start time, all the args are on the stack
+- mov r0, sp
+- bl _dl_start
+- @ returns user entry point in r0
+-_dl_start_user:
+- mov r6, r0
+- @ we are PIC code, so get global offset table
+- ldr sl, .L_GET_GOT
+- add sl, pc, sl
+-.L_GOT_GOT:
+- @ Store the highest stack address
+- ldr r1, .L_STACK_END
+- ldr r1, [sl, r1]
+- str sp, [r1]
+- @ See if we were run as a command with the executable file
+- @ name as an extra leading argument.
+- ldr r4, .L_SKIP_ARGS
+- ldr r4, [sl, r4]
+- @ get the original arg count
+- ldr r1, [sp]
+- @ subtract _dl_skip_args from it
+- sub r1, r1, r4
+- @ adjust the stack pointer to skip them
+- add sp, sp, r4, lsl #2
+- @ get the argv address
+- add r2, sp, #4
+- @ store the new argc in the new stack location
+- str r1, [sp]
+- @ compute envp
+- add r3, r2, r1, lsl #2
+- add r3, r3, #4
+-
+- @ now we call _dl_init
+- ldr r0, .L_LOADED
+- ldr r0, [sl, r0]
+- ldr r0, [r0]
+- @ call _dl_init
+- bl _dl_init(PLT)
+- @ clear the startup flag
+- ldr r2, .L_STARTUP_FLAG
+- ldr r1, [sl, r2]
+- mov r0, #0
+- str r0, [r1]
+- @ load the finalizer function
+- ldr r0, .L_FINI_PROC
+- ldr r0, [sl, r0]
+- @ jump to the user_s entry point
+- mov pc, r6
+-.L_GET_GOT:
++.text\n\
++.globl _start\n\
++.globl _dl_start_user\n\
++_start:\n\
++ @ at start time, all the args are on the stack\n\
++ mov r0, sp\n\
++ bl _dl_start\n\
++ @ returns user entry point in r0\n\
++_dl_start_user:\n\
++ mov r6, r0\n\
++ @ we are PIC code, so get global offset table\n\
++ ldr sl, .L_GET_GOT\n\
++ add sl, pc, sl\n\
++.L_GOT_GOT:\n\
++ @ Store the highest stack address\n\
++ ldr r1, .L_STACK_END\n\
++ ldr r1, [sl, r1]\n\
++ str sp, [r1]\n\
++ @ See if we were run as a command with the executable file\n\
++ @ name as an extra leading argument.\n\
++ ldr r4, .L_SKIP_ARGS\n\
++ ldr r4, [sl, r4]\n\
++ @ get the original arg count\n\
++ ldr r1, [sp]\n\
++ @ subtract _dl_skip_args from it\n\
++ sub r1, r1, r4\n\
++ @ adjust the stack pointer to skip them\n\
++ add sp, sp, r4, lsl #2\n\
++ @ get the argv address\n\
++ add r2, sp, #4\n\
++ @ store the new argc in the new stack location\n\
++ str r1, [sp]\n\
++ @ compute envp\n\
++ add r3, r2, r1, lsl #2\n\
++ add r3, r3, #4\n\
++\n\
++ @ now we call _dl_init\n\
++ ldr r0, .L_LOADED\n\
++ ldr r0, [sl, r0]\n\
++ ldr r0, [r0]\n\
++ @ call _dl_init\n\
++ bl _dl_init(PLT)\n\
++ @ clear the startup flag\n\
++ ldr r2, .L_STARTUP_FLAG\n\
++ ldr r1, [sl, r2]\n\
++ mov r0, #0\n\
++ str r0, [r1]\n\
++ @ load the finalizer function\n\
++ ldr r0, .L_FINI_PROC\n\
++ ldr r0, [sl, r0]\n\
++ @ jump to the user_s entry point\n\
++ mov pc, r6\n\
++.L_GET_GOT:\n\
+ .word _GLOBAL_OFFSET_TABLE_ - .L_GOT_GOT - 4 \n\
+ .L_SKIP_ARGS: \n\
+ .word _dl_skip_args(GOTOFF) \n\
+-.L_STARTUP_FLAG:
+- .word _dl_starting_up(GOT)
+-.L_FINI_PROC:
+- .word _dl_fini(GOT)
+-.L_STACK_END:
+- .word __libc_stack_end(GOT)
+-.L_LOADED:
+- .word _dl_loaded(GOT)
++.L_STARTUP_FLAG:\n\
++ .word _dl_starting_up(GOT)\n\
++.L_FINI_PROC:\n\
++ .word _dl_fini(GOT)\n\
++.L_STACK_END:\n\
++ .word __libc_stack_end(GOT)\n\
++.L_LOADED:\n\
++ .word _dl_loaded(GOT)\n\
+ .previous\n\
+ ");
+
diff --git a/recipes/glibc/glibc-2.2.5/dl-machine-m68k.patch b/recipes/glibc/glibc-2.2.5/dl-machine-m68k.patch
new file mode 100644
index 0000000000..41a6f3a573
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/dl-machine-m68k.patch
@@ -0,0 +1,171 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/m68k/dl-machine.h~dl-machine-m68k.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/m68k/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -1,5 +1,5 @@
+ /* Machine-dependent ELF dynamic relocation inline functions. m68k version.
+- Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
++ Copyright (C) 1996-2001, 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
+@@ -85,11 +85,11 @@
+ {
+ got[2] = (Elf32_Addr) &_dl_runtime_profile;
+
+- if (_dl_name_match_p (_dl_profile, l))
++ if (_dl_name_match_p (GL(dl_profile), l))
+ {
+ /* This is the object we are looking for. Say that we really
+ want profiling and the timers are started. */
+- _dl_profile_map = l;
++ GL(dl_profile_map) = l;
+ }
+ }
+ else
+@@ -104,22 +104,22 @@
+ /* This code is used in dl-runtime.c to call the `fixup' function
+ and then redirect to the address it returns. */
+ #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
+-"| Trampoline for " #fixup_name "
+- .globl " #tramp_name "
+- .type " #tramp_name ", @function
+-" #tramp_name ":
+- | Save %a0 (struct return address) and %a1.
+- move.l %a0, -(%sp)
+- move.l %a1, -(%sp)
+- | Call the real address resolver.
+- jbsr " #fixup_name "
+- | Restore register %a0 and %a1.
+- move.l (%sp)+, %a1
+- move.l (%sp)+, %a0
+- | Pop parameters
+- addq.l #8, %sp
+- | Call real function.
+- jmp (%d0)
++"| Trampoline for " #fixup_name "\n\
++ .globl " #tramp_name "\n\
++ .type " #tramp_name ", @function\n\
++" #tramp_name ":\n\
++ | Save %a0 (struct return address) and %a1.\n\
++ move.l %a0, -(%sp)\n\
++ move.l %a1, -(%sp)\n\
++ | Call the real address resolver.\n\
++ jbsr " #fixup_name "\n\
++ | Restore register %a0 and %a1.\n\
++ move.l (%sp)+, %a1\n\
++ move.l (%sp)+, %a0\n\
++ | Pop parameters\n\
++ addq.l #8, %sp\n\
++ | Call real function.\n\
++ jmp (%d0)\n\
+ .size " #tramp_name ", . - " #tramp_name "\n"
+ #ifndef PROF
+ #define ELF_MACHINE_RUNTIME_TRAMPOLINE \
+@@ -143,50 +143,50 @@
+ its return value is the user program's entry point. */
+
+ #define RTLD_START asm ("\
+- .text
+- .globl _start
+- .type _start,@function
+-_start:
+- move.l %sp, -(%sp)
+- jbsr _dl_start
+- addq.l #4, %sp
+- /* FALLTHRU */
+-
+- .globl _dl_start_user
+- .type _dl_start_user,@function
+-_dl_start_user:
+- | Save the user entry point address in %a4.
+- move.l %d0, %a4
+- | Point %a5 at the GOT.
+- lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5
+- | Remember the highest stack address.
+- move.l %sp, ([__libc_stack_end@GOT.w, %a5])
+- | See if we were run as a command with the executable file
+- | name as an extra leading argument.
+- move.l ([_dl_skip_args@GOT.w, %a5]), %d0
+- | Pop the original argument count
+- move.l (%sp)+, %d1
+- | Subtract _dl_skip_args from it.
+- sub.l %d0, %d1
+- | Adjust the stack pointer to skip _dl_skip_args words.
+- lea (%sp, %d0*4), %sp
+- | Push back the modified argument count.
+- move.l %d1, -(%sp)
+- # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
+- pea 8(%sp, %d1*4)
+- pea 8(%sp)
+- move.l %d1, -(%sp)
+- move.l ([_dl_loaded@GOT.w, %a5]), -(%sp)
+- jbsr _dl_init@PLTPC
+- addq.l #8, %sp
+- addq.l #8, %sp
+- | Pass our finalizer function to the user in %a1.
+- move.l _dl_fini@GOT.w(%a5), %a1
+- | Initialize %fp with the stack pointer.
+- move.l %sp, %fp
+- | Jump to the user's entry point.
+- jmp (%a4)
+- .size _dl_start_user, . - _dl_start_user
++ .text\n\
++ .globl _start\n\
++ .type _start,@function\n\
++_start:\n\
++ move.l %sp, -(%sp)\n\
++ jbsr _dl_start\n\
++ addq.l #4, %sp\n\
++ /* FALLTHRU */\n\
++\n\
++ .globl _dl_start_user\n\
++ .type _dl_start_user,@function\n\
++_dl_start_user:\n\
++ | Save the user entry point address in %a4.\n\
++ move.l %d0, %a4\n\
++ | Point %a5 at the GOT.\n\
++ lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\
++ | Remember the highest stack address.\n\
++ move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\
++ | See if we were run as a command with the executable file\n\
++ | name as an extra leading argument.\n\
++ move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\
++ | Pop the original argument count\n\
++ move.l (%sp)+, %d1\n\
++ | Subtract _dl_skip_args from it.\n\
++ sub.l %d0, %d1\n\
++ | Adjust the stack pointer to skip _dl_skip_args words.\n\
++ lea (%sp, %d0*4), %sp\n\
++ | Push back the modified argument count.\n\
++ move.l %d1, -(%sp)\n\
++ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
++ pea 8(%sp, %d1*4)\n\
++ pea 8(%sp)\n\
++ move.l %d1, -(%sp)\n\
++ move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\
++ jbsr _dl_init@PLTPC\n\
++ addq.l #8, %sp\n\
++ addq.l #8, %sp\n\
++ | Pass our finalizer function to the user in %a1.\n\
++ move.l _dl_fini@GOT.w(%a5), %a1\n\
++ | Initialize %fp with the stack pointer.\n\
++ move.l %sp, %fp\n\
++ | Jump to the user's entry point.\n\
++ jmp (%a4)\n\
++ .size _dl_start_user, . - _dl_start_user\n\
+ .previous");
+
+ /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
+@@ -251,7 +251,7 @@
+ found. */
+ break;
+ if (sym->st_size > refsym->st_size
+- || (sym->st_size < refsym->st_size && _dl_verbose))
++ || (sym->st_size < refsym->st_size && GL(dl_verbose)))
+ {
+ extern char **_dl_argv;
+ const char *strtab;
diff --git a/recipes/glibc/glibc-2.2.5/dl-machine-mips.patch b/recipes/glibc/glibc-2.2.5/dl-machine-mips.patch
new file mode 100644
index 0000000000..b9c7ad8f1e
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/dl-machine-mips.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/mips/dl-machine.h~dl-machine-mips.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/mips/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -450,7 +450,7 @@
+ addu $7, $7, 4\n\
+ subu $29, 16\n\
+ # Call the function to run the initializers.\n\
+- jal _dl_init
++ jal _dl_init_internal\n\
+ addiu $29, 16\n\
+ # Pass our finalizer function to the user in $2 as per ELF ABI.\n\
+ la $2, _dl_fini\n\
diff --git a/recipes/glibc/glibc-2.2.5/dl-machine-sh.patch b/recipes/glibc/glibc-2.2.5/dl-machine-sh.patch
new file mode 100644
index 0000000000..c5f84b42a4
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/dl-machine-sh.patch
@@ -0,0 +1,30 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/sh/dl-machine.h~dl-machine-sh.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/sh/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -53,16 +53,16 @@
+ elf_machine_load_address (void)
+ {
+ Elf32_Addr addr;
+- asm ("mov.l .L1,r0\n\
+- mov.l .L3,r2\n\
++ asm ("mov.l 1f,r0\n\
++ mov.l 3f,r2\n\
+ add r12,r2\n\
+ mov.l @(r0,r12),r0\n\
+- bra .L2\n\
++ bra 2f\n\
+ sub r0,r2\n\
+ .align 2\n\
+- .L1: .long _dl_start@GOT\n\
+- .L3: .long _dl_start@GOTOFF\n\
+- .L2: mov r2,%0"
++ 1: .long _dl_start@GOT\n\
++ 3: .long _dl_start@GOTOFF\n\
++ 2: mov r2,%0"
+ : "=r" (addr) : : "r0", "r1", "r2");
+ return addr;
+ }
diff --git a/recipes/glibc/glibc-2.2.5/dl-machine-sparc.patch b/recipes/glibc/glibc-2.2.5/dl-machine-sparc.patch
new file mode 100644
index 0000000000..910e18035d
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/dl-machine-sparc.patch
@@ -0,0 +1,235 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h~dl-machine-sparc.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -148,23 +148,23 @@
+ and then redirect to the address it returns. */
+ #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
+ asm ( "\
+- .text
+- .globl " #tramp_name "
+- .type " #tramp_name ", @function
+- .align 32
+-" #tramp_name ":
+- /* Set up the arguments to fixup --
+- %o0 = link_map out of plt0
+- %o1 = offset of reloc entry
+- %o2 = return address */
+- ld [%o7 + 8], %o0
+- srl %g1, 10, %o1
+- mov %i7, %o2
+- call " #fixup_name "
+- sub %o1, 4*12, %o1
+- jmp %o0
+- restore
+- .size " #tramp_name ", . - " #tramp_name "
++ .text\n\
++ .globl " #tramp_name "\n\
++ .type " #tramp_name ", @function\n\
++ .align 32\n\
++" #tramp_name ":\n\
++ /* Set up the arguments to fixup --\n\
++ %o0 = link_map out of plt0\n\
++ %o1 = offset of reloc entry\n\
++ %o2 = return address */\n\
++ ld [%o7 + 8], %o0\n\
++ srl %g1, 10, %o1\n\
++ mov %i7, %o2\n\
++ call " #fixup_name "\n\
++ sub %o1, 4*12, %o1\n\
++ jmp %o0\n\
++ restore\n\
++ .size " #tramp_name ", . - " #tramp_name "\n\
+ .previous")
+
+ #ifndef PROF
+@@ -199,96 +199,96 @@
+ its return value is the user program's entry point. */
+
+ #define RTLD_START __asm__ ("\
+- .text
+- .globl _start
+- .type _start, @function
+- .align 32
+-_start:
+- /* Allocate space for functions to drop their arguments. */
+- sub %sp, 6*4, %sp
+- /* Pass pointer to argument block to _dl_start. */
+- call _dl_start
+- add %sp, 22*4, %o0
+- /* FALTHRU */
+- .globl _dl_start_user
+- .type _dl_start_user, @function
+-_dl_start_user:
+- /* Load the PIC register. */
+-1: call 2f
+- sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
+-2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
+- add %l7, %o7, %l7
+- /* Save the user entry point address in %l0 */
+- mov %o0, %l0
+- /* Store the highest stack address. */
+- sethi %hi(__libc_stack_end), %g2
+- or %g2, %lo(__libc_stack_end), %g2
+- ld [%l7 + %g2], %l1
+- sethi %hi(_dl_skip_args), %g2
+- add %sp, 6*4, %l2
+- or %g2, %lo(_dl_skip_args), %g2
+- st %l2, [%l1]
+- /* See if we were run as a command with the executable file name as an
+- extra leading argument. If so, adjust the contents of the stack. */
+- ld [%l7+%g2], %i0
+- ld [%i0], %i0
+- tst %i0
+- beq 3f
+- ld [%sp+22*4], %i5 /* load argc */
+- /* Find out how far to shift. */
+- sethi %hi(_dl_argv), %l3
+- or %l3, %lo(_dl_argv), %l3
+- ld [%l7+%l3], %l3
+- sub %i5, %i0, %i5
+- ld [%l3], %l4
+- sll %i0, 2, %i2
+- st %i5, [%sp+22*4]
+- sub %l4, %i2, %l4
+- add %sp, 23*4, %i1
+- add %i1, %i2, %i2
+- st %l4, [%l3]
+- /* Copy down argv */
+-21: ld [%i2], %i3
+- add %i2, 4, %i2
+- tst %i3
+- st %i3, [%i1]
+- bne 21b
+- add %i1, 4, %i1
+- /* Copy down env */
+-22: ld [%i2], %i3
+- add %i2, 4, %i2
+- tst %i3
+- st %i3, [%i1]
+- bne 22b
+- add %i1, 4, %i1
+- /* Copy down auxiliary table. */
+-23: ld [%i2], %i3
+- ld [%i2+4], %i4
+- add %i2, 8, %i2
+- tst %i3
+- st %i3, [%i1]
+- st %i4, [%i1+4]
+- bne 23b
+- add %i1, 8, %i1
+- /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */
+-3: sethi %hi(_dl_loaded), %o0
+- add %sp, 23*4, %o2
+- orcc %o0, %lo(_dl_loaded), %o0
+- sll %i5, 2, %o3
+- ld [%l7+%o0], %o0
+- add %o3, 4, %o3
+- mov %i5, %o1
+- add %o2, %o3, %o3
+- call _dl_init
+- ld [%o0], %o0
+- /* Pass our finalizer function to the user in %g1. */
+- sethi %hi(_dl_fini), %g1
+- or %g1, %lo(_dl_fini), %g1
+- ld [%l7+%g1], %g1
+- /* Jump to the user's entry point and deallocate the extra stack we got. */
+- jmp %l0
+- add %sp, 6*4, %sp
+- .size _dl_start_user, . - _dl_start_user
++ .text\n\
++ .globl _start\n\
++ .type _start, @function\n\
++ .align 32\n\
++_start:\n\
++ /* Allocate space for functions to drop their arguments. */\n\
++ sub %sp, 6*4, %sp\n\
++ /* Pass pointer to argument block to _dl_start. */\n\
++ call _dl_start\n\
++ add %sp, 22*4, %o0\n\
++ /* FALTHRU */\n\
++ .globl _dl_start_user\n\
++ .type _dl_start_user, @function\n\
++_dl_start_user:\n\
++ /* Load the PIC register. */\n\
++1: call 2f\n\
++ sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\
++2: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\
++ add %l7, %o7, %l7\n\
++ /* Save the user entry point address in %l0 */\n\
++ mov %o0, %l0\n\
++ /* Store the highest stack address. */\n\
++ sethi %hi(__libc_stack_end), %g2\n\
++ or %g2, %lo(__libc_stack_end), %g2\n\
++ ld [%l7 + %g2], %l1\n\
++ sethi %hi(_dl_skip_args), %g2\n\
++ add %sp, 6*4, %l2\n\
++ or %g2, %lo(_dl_skip_args), %g2\n\
++ st %l2, [%l1]\n\
++ /* See if we were run as a command with the executable file name as an\n\
++ extra leading argument. If so, adjust the contents of the stack. */\n\
++ ld [%l7+%g2], %i0\n\
++ ld [%i0], %i0\n\
++ tst %i0\n\
++ beq 3f\n\
++ ld [%sp+22*4], %i5 /* load argc */\n\
++ /* Find out how far to shift. */\n\
++ sethi %hi(_dl_argv), %l3\n\
++ or %l3, %lo(_dl_argv), %l3\n\
++ ld [%l7+%l3], %l3\n\
++ sub %i5, %i0, %i5\n\
++ ld [%l3], %l4\n\
++ sll %i0, 2, %i2\n\
++ st %i5, [%sp+22*4]\n\
++ sub %l4, %i2, %l4\n\
++ add %sp, 23*4, %i1\n\
++ add %i1, %i2, %i2\n\
++ st %l4, [%l3]\n\
++ /* Copy down argv */\n\
++21: ld [%i2], %i3\n\
++ add %i2, 4, %i2\n\
++ tst %i3\n\
++ st %i3, [%i1]\n\
++ bne 21b\n\
++ add %i1, 4, %i1\n\
++ /* Copy down env */\n\
++22: ld [%i2], %i3\n\
++ add %i2, 4, %i2\n\
++ tst %i3\n\
++ st %i3, [%i1]\n\
++ bne 22b\n\
++ add %i1, 4, %i1\n\
++ /* Copy down auxiliary table. */\n\
++23: ld [%i2], %i3\n\
++ ld [%i2+4], %i4\n\
++ add %i2, 8, %i2\n\
++ tst %i3\n\
++ st %i3, [%i1]\n\
++ st %i4, [%i1+4]\n\
++ bne 23b\n\
++ add %i1, 8, %i1\n\
++ /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp. */\n\
++3: sethi %hi(_dl_loaded), %o0\n\
++ add %sp, 23*4, %o2\n\
++ orcc %o0, %lo(_dl_loaded), %o0\n\
++ sll %i5, 2, %o3\n\
++ ld [%l7+%o0], %o0\n\
++ add %o3, 4, %o3\n\
++ mov %i5, %o1\n\
++ add %o2, %o3, %o3\n\
++ call _dl_init\n\
++ ld [%o0], %o0\n\
++ /* Pass our finalizer function to the user in %g1. */\n\
++ sethi %hi(_dl_fini), %g1\n\
++ or %g1, %lo(_dl_fini), %g1\n\
++ ld [%l7+%g1], %g1\n\
++ /* Jump to the user's entry point and deallocate the extra stack we got. */\n\
++ jmp %l0\n\
++ add %sp, 6*4, %sp\n\
++ .size _dl_start_user, . - _dl_start_user\n\
+ .previous");
+
+ static inline Elf32_Addr
diff --git a/recipes/glibc/glibc-2.2.5/errlist-1.9.patch b/recipes/glibc/glibc-2.2.5/errlist-1.9.patch
new file mode 100644
index 0000000000..ced22eecf9
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/errlist-1.9.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/errlist.c~errlist-1.9.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/errlist.c 2004-09-03 19:00:37.000000000 -0500
+@@ -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/recipes/glibc/glibc-2.2.5/errlist-arm.patch b/recipes/glibc/glibc-2.2.5/errlist-arm.patch
new file mode 100644
index 0000000000..a2afbd036e
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/errlist-arm.patch
@@ -0,0 +1,25 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/errlist.c~errlist-arm.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/errlist.c 2004-09-03 19:00:37.000000000 -0500
+@@ -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/recipes/glibc/glibc-2.2.5/etc/ld.so.conf b/recipes/glibc/glibc-2.2.5/etc/ld.so.conf
new file mode 100644
index 0000000000..46e06d3f0a
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/etc/ld.so.conf
@@ -0,0 +1,2 @@
+/usr/local/lib
+
diff --git a/recipes/glibc/glibc-2.2.5/fhs-linux-paths.patch b/recipes/glibc/glibc-2.2.5/fhs-linux-paths.patch
new file mode 100644
index 0000000000..9ba033fd8d
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/fhs-linux-paths.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/paths.h~fhs-linux-paths.patch 2000-11-15 17:06:47.000000000 -0600
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/paths.h 2004-09-03 19:00:39.000000000 -0500
+@@ -67,7 +67,7 @@
+ /* Provide trailing slash, since mostly used for building pathnames. */
+ #define _PATH_DEV "/dev/"
+ #define _PATH_TMP "/tmp/"
+-#define _PATH_VARDB "/var/db/"
++#define _PATH_VARDB "/var/lib/misc/"
+ #define _PATH_VARRUN "/var/run/"
+ #define _PATH_VARTMP "/var/tmp/"
+
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch
new file mode 100644
index 0000000000..e4abfe3f49
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch
@@ -0,0 +1,55 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/i386/dl-machine.h~glibc-2.2.5-allow-gcc-3.4-fixup.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/i386/dl-machine.h 2004-09-03 19:00:37.000000000 -0500
+@@ -63,11 +63,12 @@
+ 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
+--- glibc-2.2.5/elf/dl-runtime.c~glibc-2.2.5-allow-gcc-3.4-fixup.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/elf/dl-runtime.c 2004-09-03 19:00:37.000000000 -0500
+@@ -33,6 +33,12 @@
+ # 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 +48,7 @@
+ function. */
+
+ #ifndef ELF_MACHINE_NO_PLT
+-static ElfW(Addr) __attribute_used__
++static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
+ fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+@@ -126,7 +132,7 @@
+
+ #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
+
+-static ElfW(Addr) __attribute_used__
++static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
+ profile_fixup (
+ #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch
new file mode 100644
index 0000000000..5a9b3057dd
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch
@@ -0,0 +1,36 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/grp/initgroups.c~glibc-2.2.5-allow-gcc-3.4-grp.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/grp/initgroups.c 2004-09-03 19:00:38.000000000 -0500
+@@ -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)
+@@ -214,7 +214,7 @@
+ }
+ else
+ *ngroups = result;
+-
++
+ memcpy (groups, newgroups, *ngroups * sizeof (gid_t));
+
+ free (newgroups);
+--- glibc-2.2.5/nss/nsswitch.c~glibc-2.2.5-allow-gcc-3.4-grp.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/nss/nsswitch.c 2004-09-03 19:00:38.000000000 -0500
+@@ -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/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch
new file mode 100644
index 0000000000..0a6cee11fe
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-3.4-td.patch
@@ -0,0 +1,881 @@
+Fixes following error building glibc-2.2.5 with gcc-3.4:
+td_init.c: In function `td_init':
+td_init.c:30: error: parse error before string constant
+td_init.c:30: error: parse error before string constant
+make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.2.5/build-glibc/linuxthreads_db/td_init.os] Error 1
+
+# Retrieved by diffing a +-1 day rng around the time mentioned
+# in http://sources.redhat.com/ml/glibc-cvs/2001-q4/msg00654.html
+# cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc diff -u -D"2001-12-27 08:41:30" -D"2001-12-29 08:41:32"
+# then fixing paths.
+
+Index: ChangeLog
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/ChangeLog,v
+retrieving revision 1.41
+retrieving revision 1.42
+diff -u -r1.41 -r1.42
+--- libc/linuxthreads_db/ChangeLog 13 Apr 2001 00:09:54 -0000 1.41
++++ libc/linuxthreads_db/ChangeLog 29 Dec 2001 00:59:58 -0000 1.42
+@@ -1,3 +1,43 @@
++2001-12-28 Andreas Jaeger <aj@suse.de>
++
++ * td_init.c (td_init): Don't use __FUNCTION__ as literal.
++ * td_log.c (td_log): Likewise.
++ * td_ta_delete.c (td_ta_delete): Likewise.
++ * td_ta_get_nthreads.c (td_ta_get_nthreads): Likewise.
++ * td_ta_get_ph.c (td_ta_get_ph): Likewise.
++ * td_ta_map_id2thr.c (td_ta_map_id2thr): Likewise.
++ * td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Likewise.
++ * td_ta_new.c (td_ta_new): Likewise.
++ * td_ta_clear_event.c (td_ta_clear_event): Likewise.
++ * td_ta_enable_stats.c (td_ta_enable_stats): Likewise.
++ * td_ta_event_addr.c (td_ta_event_addr): Likewise.
++ * td_ta_event_getmsg.c (td_ta_event_getmsg): Likewise.
++ * td_ta_get_stats.c (td_ta_get_stats): Likewise.
++ * td_ta_reset_stats.c (td_ta_reset_stats): Likewise.
++ * td_ta_set_event.c (td_ta_set_event): Likewise.
++ * td_ta_setconcurrency.c (td_ta_setconcurrency): Likewise.
++ * td_ta_thr_iter.c (td_ta_thr_iter): Likewise.
++ * td_ta_tsd_iter.c (td_ta_tsd_iter): Likewise.
++ * td_thr_clear_event.c (td_thr_clear_event): Likewise.
++ * td_thr_dbresume.c (td_thr_dbresume): Likewise.
++ * td_thr_dbsuspend.c (td_thr_dbsuspend): Likewise.
++ * td_thr_event_enable.c (td_thr_event_enable): Likewise.
++ * td_thr_event_getmsg.c (td_thr_event_getmsg): Likewise.
++ * td_thr_get_info.c (td_thr_get_info): Likewise.
++ * td_thr_getfpregs.c (td_thr_getfpregs): Likewise.
++ * td_thr_getgregs.c (td_thr_getgregs): Likewise.
++ * td_thr_getxregs.c (td_thr_getxregs): Likewise.
++ * td_thr_getxregsize.c (td_thr_getxregsize): Likewise.
++ * td_thr_set_event.c (td_thr_set_event): Likewise.
++ * td_thr_setfpregs.c (td_thr_setfpregs): Likewise.
++ * td_thr_setgregs.c (td_thr_setgregs): Likewise.
++ * td_thr_setprio.c (td_thr_setprio): Likewise.
++ * td_thr_setsigpending.c (td_thr_setsigpending): Likewise.
++ * td_thr_setxregs.c (td_thr_setxregs): Likewise.
++ * td_thr_sigsetmask.c (td_thr_sigsetmask): Likewise.
++ * td_thr_tsd.c (td_thr_tsd): Likewise.
++ * td_thr_validate.c (td_thr_validate): Likewise.
++
+ 2001-04-12 Ulrich Drepper <drepper@redhat.com>
+
+ * td_ta_map_id2thr.c: If thread terminated return TD_NOTHR.
+Index: td_init.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_init.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_init.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_init.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Initialization function of thread debugger support library.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -27,6 +27,6 @@
+ td_init (void)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_init");
+ return TD_OK;
+ }
+Index: td_log.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_log.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_log.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_log.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Noop, left for historical reasons.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,8 +25,8 @@
+ td_log (void)
+ {
+ /* This interface is deprecated in the Sun interface. We provide it
+- for compatibility but don't do anyhting ourself. We might in
++ for compatibility but don't do anything ourself. We might in
+ future do some logging if this seems reasonable. */
+- LOG (__FUNCTION__);
++ LOG ("td_log");
+ return TD_OK;
+ }
+Index: td_ta_clear_event.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_clear_event.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_clear_event.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_clear_event.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Globally disable events.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -29,7 +29,7 @@
+ td_thr_events_t old_event;
+ int i;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_clear_event");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_delete.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_delete.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_delete.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_delete.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Detach to target process.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -26,7 +26,7 @@
+ td_err_e
+ td_ta_delete (td_thragent_t *ta)
+ {
+- LOG (__FUNCTION__);
++ LOG ("td_ta_delete");
+
+ /* Safety check. */
+ if (ta == NULL || __td_agent_list == NULL)
+Index: td_ta_enable_stats.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_enable_stats.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_enable_stats.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_enable_stats.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Enable collection of statistics for process.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,7 +25,7 @@
+ td_ta_enable_stats (const td_thragent_t *ta, int enable)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_ta_enable_stats");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_event_addr.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_event_addr.c,v
+retrieving revision 1.5
+retrieving revision 1.6
+diff -u -r1.5 -r1.6
+--- libc/linuxthreads_db/td_ta_event_addr.c 6 Jul 2001 05:27:23 -0000 1.5
++++ libc/linuxthreads_db/td_ta_event_addr.c 28 Dec 2001 16:41:29 -0000 1.6
+@@ -27,7 +27,7 @@
+ td_err_e res = TD_NOEVENT;
+ int idx = -1;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_event_addr");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_event_getmsg.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_event_getmsg.c,v
+retrieving revision 1.5
+retrieving revision 1.6
+diff -u -r1.5 -r1.6
+--- libc/linuxthreads_db/td_ta_event_getmsg.c 6 Jul 2001 05:27:23 -0000 1.5
++++ libc/linuxthreads_db/td_ta_event_getmsg.c 28 Dec 2001 16:41:29 -0000 1.6
+@@ -1,5 +1,5 @@
+ /* Retrieve event.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -32,7 +32,7 @@
+ td_eventbuf_t event;
+ psaddr_t addr;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_event_getmsg");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_get_nthreads.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_get_nthreads.c,v
+retrieving revision 1.5
+retrieving revision 1.6
+diff -u -r1.5 -r1.6
+--- libc/linuxthreads_db/td_ta_get_nthreads.c 6 Jul 2001 05:27:23 -0000 1.5
++++ libc/linuxthreads_db/td_ta_get_nthreads.c 28 Dec 2001 16:41:29 -0000 1.6
+@@ -25,7 +25,7 @@
+ {
+ psaddr_t addr;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_get_nthreads");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_get_ph.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_get_ph.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_get_ph.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_get_ph.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Get external process handle.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -24,7 +24,7 @@
+ td_err_e
+ td_ta_get_ph (const td_thragent_t *ta, struct ps_prochandle **ph)
+ {
+- LOG (__FUNCTION__);
++ LOG ("td_ta_get_ph");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_get_stats.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_get_stats.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_get_stats.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_get_stats.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Retrieve statistics for process.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,7 +25,7 @@
+ td_ta_get_stats (const td_thragent_t *ta, td_ta_stats_t *statsp)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_ta_get_stats");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_map_id2thr.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_map_id2thr.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_ta_map_id2thr.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_ta_map_id2thr.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -28,7 +28,7 @@
+ struct _pthread_descr_struct pds;
+ int pthread_threads_max;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_map_id2thr");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_map_lwp2thr.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_map_lwp2thr.c,v
+retrieving revision 1.5
+retrieving revision 1.6
+diff -u -r1.5 -r1.6
+--- libc/linuxthreads_db/td_ta_map_lwp2thr.c 6 Jul 2001 05:27:23 -0000 1.5
++++ libc/linuxthreads_db/td_ta_map_lwp2thr.c 28 Dec 2001 16:41:29 -0000 1.6
+@@ -1,5 +1,5 @@
+ /* Which thread is running on an lwp?
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -34,7 +34,7 @@
+ # define num 1
+ #endif
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_map_lwp2thr");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_new.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_new.c,v
+retrieving revision 1.10
+retrieving revision 1.11
+diff -u -r1.10 -r1.11
+--- libc/linuxthreads_db/td_ta_new.c 6 Jul 2001 05:27:23 -0000 1.10
++++ libc/linuxthreads_db/td_ta_new.c 28 Dec 2001 16:41:29 -0000 1.11
+@@ -35,7 +35,7 @@
+ psaddr_t addr;
+ struct agent_list *elemp;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_new");
+
+ /* Get the global event mask. This is one of the variables which
+ are new in the thread library to enable debugging. If it is
+Index: td_ta_reset_stats.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_reset_stats.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_reset_stats.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_reset_stats.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Reset statistics.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,7 +25,7 @@
+ td_ta_reset_stats (const td_thragent_t *ta)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_ta_reset_stats");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_set_event.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_set_event.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_ta_set_event.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_ta_set_event.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -1,5 +1,5 @@
+ /* Globally enable events.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -29,7 +29,7 @@
+ td_thr_events_t old_event;
+ int i;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_set_event");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_setconcurrency.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_setconcurrency.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_ta_setconcurrency.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_ta_setconcurrency.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Set suggested concurrency level for process.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,7 +25,7 @@
+ td_ta_setconcurrency (const td_thragent_t *ta, int level)
+ {
+ /* This is something LinuxThreads does not support. */
+- LOG (__FUNCTION__);
++ LOG ("td_ta_setconcurrency");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_thr_iter.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_thr_iter.c,v
+retrieving revision 1.11
+retrieving revision 1.12
+diff -u -r1.11 -r1.12
+--- libc/linuxthreads_db/td_ta_thr_iter.c 6 Jul 2001 05:27:23 -0000 1.11
++++ libc/linuxthreads_db/td_ta_thr_iter.c 28 Dec 2001 16:41:29 -0000 1.12
+@@ -1,5 +1,5 @@
+ /* Iterate over a process's threads.
+- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -86,7 +86,7 @@
+ # define num 1
+ #endif
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_thr_iter");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_ta_tsd_iter.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_ta_tsd_iter.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_ta_tsd_iter.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_ta_tsd_iter.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -1,5 +1,5 @@
+ /* Iterate over a process's thread-specific data.
+- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -29,7 +29,7 @@
+ int pthread_keys_max;
+ int cnt;
+
+- LOG (__FUNCTION__);
++ LOG ("td_ta_tsd_iter");
+
+ /* Test whether the TA parameter is ok. */
+ if (! ta_ok (ta))
+Index: td_thr_clear_event.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_clear_event.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_thr_clear_event.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_thr_clear_event.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Disable specific event for thread.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -31,7 +31,7 @@
+ td_thr_events_t old_event;
+ int i;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_clear_event");
+
+ /* Write the new value into the thread data structure. */
+ if (ps_pdread (th->th_ta_p->ph,
+Index: td_thr_dbresume.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_dbresume.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_dbresume.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_dbresume.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Resume execution of given thread.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_dbresume (const td_thrhandle_t *th)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_dbresume");
+ return TD_NOCAPAB;
+ }
+Index: td_thr_dbsuspend.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_dbsuspend.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_dbsuspend.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_dbsuspend.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Suspend execution of given thread.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_dbsuspend (const td_thrhandle_t *th)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_dbsuspend");
+ return TD_NOCAPAB;
+ }
+Index: td_thr_event_enable.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_event_enable.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_thr_event_enable.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_thr_event_enable.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Enable event process-wide.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -28,7 +28,7 @@
+ const td_thrhandle_t *th;
+ int onoff;
+ {
+- LOG (__FUNCTION__);
++ LOG ("td_thr_event_enable");
+
+ /* Write the new value into the thread data structure. */
+ if (ps_pdwrite (th->th_ta_p->ph,
+Index: td_thr_event_getmsg.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_event_getmsg.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -r1.3 -r1.4
+--- libc/linuxthreads_db/td_thr_event_getmsg.c 6 Jul 2001 05:27:23 -0000 1.3
++++ libc/linuxthreads_db/td_thr_event_getmsg.c 28 Dec 2001 16:41:29 -0000 1.4
+@@ -1,5 +1,5 @@
+ /* Retrieve event.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -29,7 +29,7 @@
+ {
+ td_eventbuf_t event;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_event_getmsg");
+
+ /* Read the even structure from the target. */
+ if (ps_pdread (th->th_ta_p->ph,
+Index: td_thr_get_info.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_get_info.c,v
+retrieving revision 1.9
+retrieving revision 1.10
+diff -u -r1.9 -r1.10
+--- libc/linuxthreads_db/td_thr_get_info.c 6 Jul 2001 05:27:23 -0000 1.9
++++ libc/linuxthreads_db/td_thr_get_info.c 28 Dec 2001 16:41:29 -0000 1.10
+@@ -1,5 +1,5 @@
+ /* Get thread information.
+- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -29,7 +29,7 @@
+ {
+ struct _pthread_descr_struct pds;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_get_info");
+
+ /* Get the thread descriptor. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+Index: td_thr_getfpregs.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getfpregs.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_thr_getfpregs.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_thr_getfpregs.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -26,7 +26,7 @@
+ {
+ struct _pthread_descr_struct pds;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_getfpregs");
+
+ /* We have to get the state and the PID for this thread. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+Index: td_thr_getgregs.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getgregs.c,v
+retrieving revision 1.8
+retrieving revision 1.9
+diff -u -r1.8 -r1.9
+--- libc/linuxthreads_db/td_thr_getgregs.c 6 Jul 2001 05:27:23 -0000 1.8
++++ libc/linuxthreads_db/td_thr_getgregs.c 28 Dec 2001 16:41:29 -0000 1.9
+@@ -26,7 +26,7 @@
+ {
+ struct _pthread_descr_struct pds;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_getgregs");
+
+ /* We have to get the state and the PID for this thread. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+Index: td_thr_getxregs.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getxregs.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_getxregs.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_getxregs.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Get a thread's extra state register set.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_getxregs (const td_thrhandle_t *th, void *xregs)
+ {
+ /* XXX This might be platform specific. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_getxregs");
+ return TD_NOXREGS;
+ }
+Index: td_thr_getxregsize.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_getxregsize.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_getxregsize.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_getxregsize.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Get the size of the extra state register set for this architecture.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_getxregsize (const td_thrhandle_t *th, int *sizep)
+ {
+ /* XXX This might be platform specific. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_getxregsize");
+ return TD_NOXREGS;
+ }
+Index: td_thr_set_event.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_set_event.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_thr_set_event.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_thr_set_event.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -1,5 +1,5 @@
+ /* Enable specific event for thread.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -31,7 +31,7 @@
+ td_thr_events_t old_event;
+ int i;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_set_event");
+
+ /* Write the new value into the thread data structure. */
+ if (ps_pdread (th->th_ta_p->ph,
+Index: td_thr_setfpregs.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setfpregs.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_thr_setfpregs.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_thr_setfpregs.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -26,7 +26,7 @@
+ {
+ struct _pthread_descr_struct pds;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_setfpregs");
+
+ /* We have to get the state and the PID for this thread. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+Index: td_thr_setgregs.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setgregs.c,v
+retrieving revision 1.6
+retrieving revision 1.7
+diff -u -r1.6 -r1.7
+--- libc/linuxthreads_db/td_thr_setgregs.c 6 Jul 2001 05:27:23 -0000 1.6
++++ libc/linuxthreads_db/td_thr_setgregs.c 28 Dec 2001 16:41:29 -0000 1.7
+@@ -26,7 +26,7 @@
+ {
+ struct _pthread_descr_struct pds;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_setgregs");
+
+ /* We have to get the state and the PID for this thread. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+Index: td_thr_setprio.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setprio.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_setprio.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_setprio.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Set a thread's priority.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_setprio (const td_thrhandle_t *th, int prio)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_setprio");
+ return TD_OK;
+ }
+Index: td_thr_setsigpending.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setsigpending.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_setsigpending.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_setsigpending.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Raise a signal for a thread.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -26,6 +26,6 @@
+ const sigset_t *ss)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_setsigpending");
+ return TD_OK;
+ }
+Index: td_thr_setxregs.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_setxregs.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_setxregs.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_setxregs.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Set a thread's extra state register set.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_setxregs (const td_thrhandle_t *ta, const void *addr)
+ {
+ /* XXX This might have to be platform specific. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_setxregs");
+ return TD_NOXREGS;
+ }
+Index: td_thr_sigsetmask.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_sigsetmask.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_sigsetmask.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_sigsetmask.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Set a thread's signal mask.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -25,6 +25,6 @@
+ td_thr_sigsetmask (const td_thrhandle_t *th, const sigset_t *ss)
+ {
+ /* XXX We have to figure out what has to be done. */
+- LOG (__FUNCTION__);
++ LOG ("td_thr_sigsetmask");
+ return TD_OK;
+ }
+Index: td_thr_tsd.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_tsd.c,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- libc/linuxthreads_db/td_thr_tsd.c 6 Jul 2001 05:27:23 -0000 1.2
++++ libc/linuxthreads_db/td_thr_tsd.c 28 Dec 2001 16:41:29 -0000 1.3
+@@ -1,5 +1,5 @@
+ /* Get a thread-specific data pointer for a thread.
+- Copyright (C) 1999 Free Software Foundation, Inc.
++ Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
+
+@@ -33,7 +33,7 @@
+ unsigned int idx2nd;
+ void *p;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_tsd");
+
+ /* Get the thread descriptor. */
+ if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds,
+Index: td_thr_validate.c
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads_db/td_thr_validate.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- libc/linuxthreads_db/td_thr_validate.c 6 Jul 2001 05:27:23 -0000 1.4
++++ libc/linuxthreads_db/td_thr_validate.c 28 Dec 2001 16:41:29 -0000 1.5
+@@ -28,7 +28,7 @@
+ int pthread_threads_max = th->th_ta_p->pthread_threads_max;
+ int cnt;
+
+- LOG (__FUNCTION__);
++ LOG ("td_thr_validate");
+
+ /* Now get all descriptors, one after the other. */
+ for (cnt = 0; cnt < pthread_threads_max; ++cnt, ++handles)
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-4.x-configure.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-4.x-configure.patch
new file mode 100644
index 0000000000..138c5414cb
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-allow-gcc-4.x-configure.patch
@@ -0,0 +1,21 @@
+Fixes
+checking version of powerpc-405-linux-gnu-gcc ... 4.0.0, bad
+checking for gnumake... no
+checking for gmake... no
+checking for make... make
+checking version of make... 3.80, ok
+configure: error:
+*** These critical programs are missing or too old:gcc
+
+
+--- glibc-2.2.5/configure.old 2005-03-10 00:23:46.374213600 -0800
++++ glibc-2.2.5/configure 2005-03-10 00:25:13.313996744 -0800
+@@ -1476,7 +1476,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]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
++ *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|4.[0-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/recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch
new file mode 100644
index 0000000000..8466731834
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-pwrite64.patch
@@ -0,0 +1,35 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/alpha/sysdep.h~glibc-2.2.5-alpha-pwrite64.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/alpha/sysdep.h 2004-09-03 19:00:38.000000000 -0500
+@@ -1,4 +1,4 @@
+-/* 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.
+
+@@ -56,6 +56,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/recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch
new file mode 100644
index 0000000000..fd3403405a
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-alpha-self-clobber.patch
@@ -0,0 +1,25 @@
+wget http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/linuxthreads/sysdeps/alpha/pt-machine.h.diff?r1=1.9&r2=1.10&cvsroot=glibc
+
+Should fix error
+
+internals.h: In function `pthread_setcancelstate':
+internals.h:381: error: asm-specifier for variable `__self' conflicts with asm clobber list
+make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/linuxthreads/cancel.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/linuxthreads'
+
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/alpha/pt-machine.h,v
+retrieving revision 1.9
+retrieving revision 1.10
+diff -u -r1.9 -r1.10
+--- libc/linuxthreads/sysdeps/alpha/pt-machine.h 2002/04/06 04:05:13 1.9
++++ libc/linuxthreads/sysdeps/alpha/pt-machine.h 2002/05/20 20:09:34 1.10
+@@ -76,7 +76,7 @@
+ #define THREAD_SELF \
+ ({ \
+ register pthread_descr __self __asm__("$0"); \
+- __asm__ ("call_pal %1" : "=r"(__self) : "i"(PAL_rduniq) : "$0"); \
++ __asm__ ("call_pal %1" : "=r"(__self) : "i"(PAL_rduniq)); \
+ __self; \
+ })
+
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch
new file mode 100644
index 0000000000..eb7fa996fa
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-arm-pwrite64.patch
@@ -0,0 +1,23 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h~glibc-2.2.5-arm-pwrite64.patch 2004-09-03 19:00:37.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h 2004-09-03 19:00:38.000000000 -0500
+@@ -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/recipes/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch
new file mode 100644
index 0000000000..4029bf4f2a
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-crosstest.patch
@@ -0,0 +1,28 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/dlfcn/Makefile~glibc-2.2.5-crosstest.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/dlfcn/Makefile 2004-09-03 19:00:38.000000000 -0500
+@@ -60,6 +60,8 @@
+ test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
+ $(test-modules): $(objpfx)%.so: $(objpfx)%.os
+ $(build-module)
++# without following rule, test-modules don't get built when cross-compiling
++tests: $(test-modules)
+
+ $(objpfx)glrefmain: $(libdl)
+ $(objpfx)glrefmain.out: $(objpfx)glrefmain \
+--- glibc-2.2.5/elf/Makefile~glibc-2.2.5-crosstest.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/elf/Makefile 2004-09-03 19:00:38.000000000 -0500
+@@ -263,6 +263,9 @@
+ test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
+ generated += $(addsuffix .so,$(strip $(modules-names)))
+
++# without following rule, test-modules don't get built when cross-compiling
++tests: $(test-modules)
++
+ ifeq (yes,$(build-shared))
+ ifeq ($(cross-compiling),no)
+ tests: $(objpfx)tst-pathopt.out
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch
new file mode 100644
index 0000000000..a27be24275
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-crossyes.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/configure~glibc-2.2.5-crossyes.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/configure 2004-09-03 19:00:38.000000000 -0500
+@@ -1738,7 +1738,7 @@
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+- ac_cv_prog_cc_cross=no
++ ac_cv_prog_cc_cross=yes
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch
new file mode 100644
index 0000000000..9b732188ca
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-cygwin.patch
@@ -0,0 +1,79 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/Makeconfig~glibc-2.2.5-cygwin.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/Makeconfig 2004-09-03 19:00:38.000000000 -0500
+@@ -439,13 +439,13 @@
+ # run the linked programs.
+ link-libc = -Wl,-rpath-link=$(rpath-link) \
+ $(common-objpfx)libc.so$(libc.so-version) \
+- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
++ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
+ # This is how to find at build-time things that will be installed there.
+ rpath-dirs = math elf dlfcn nss nis rt resolv crypt
+ else
+ ifneq (,$(findstring aix,$(config-os)))
+ link-libc = $(common-objpfx)libc.a \
+- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
++ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
+ rpath-dirs = math dlfcn nss nis rt resolv crypt
+ endif
+ endif
+@@ -649,7 +649,7 @@
+ # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
+ # to pass different flags for each flavor.
+ libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
+-all-object-suffixes := .o .os .op .og .ob .oS
++all-object-suffixes := .o .os .op .og .ob .oST
+ object-suffixes :=
+ CPPFLAGS-.o = $(pic-default)
+ CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
+@@ -703,14 +703,14 @@
+
+ ifeq (yes,$(build-shared))
+ # Build special library that contains the static-only routines for libc.
+-object-suffixes-for-libc += .oS
++object-suffixes-for-libc += .oST
+
+ # Must build the routines as PIC, though, because they can end up in (users')
+ # shared objects. We don't want to use CFLAGS-os because users may, for
+ # example, make that processor-specific.
+-CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
+-CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
+-libtype.oS = lib%_nonshared.a
++CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
++CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC
++libtype.oST = lib%_nonshared.a
+ endif
+
+
+--- glibc-2.2.5/Makerules~glibc-2.2.5-cygwin.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/Makerules 2004-09-03 19:00:38.000000000 -0500
+@@ -361,7 +361,7 @@
+ # Bounded pointer thunks are only built for *.ob
+ elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
+
+-elide-routines.oS += $(filter-out $(static-only-routines),\
++elide-routines.oST += $(filter-out $(static-only-routines),\
+ $(routines) $(aux) $(sysdep_routines)) \
+ $(elide-bp-thunks)
+ elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
+@@ -842,14 +842,14 @@
+ # of the files are taken by the linker.
+ install: $(inst_libdir)/libc.so
+ $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
+- $(inst_libdir)/$(patsubst %,$(libtype.oS),\
++ $(inst_libdir)/$(patsubst %,$(libtype.oST),\
+ $(libprefix)$(libc-name)) \
+ $(+force)
+ (echo '/* GNU ld script';\
+ echo ' Use the shared library, but some functions are only in';\
+ echo ' the static library, so try that secondarily. */';\
+ echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
+- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
++ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
+ ')' \
+ ) > $@.new
+ mv -f $@.new $@
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch
new file mode 100644
index 0000000000..73cfd1a832
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch
@@ -0,0 +1,1108 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/powerpc/Dist~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/Dist 2004-09-03 19:00:38.000000000 -0500
+@@ -1,9 +1,6 @@
+ dl-machine.c
+ dl-start.S
+ ppc-mcount.S
+-fe_nomask.c
+-fprrest.S
+-fprsave.S
+ gprsave1.S
+ gprsave0.S
+ gprrest1.S
+--- glibc-2.2.5/sysdeps/powerpc/Makefile~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/Makefile 2004-09-03 19:00:38.000000000 -0500
+@@ -3,16 +3,12 @@
+ +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
+ asm-CPPFLAGS += -Wa,-mppc
+
+-ifeq ($(subdir),math)
+-libm-support += fenv_const fe_nomask
+-endif
+-
+ ifeq ($(subdir),gmon)
+ sysdep_routines += ppc-mcount
+ endif
+
+ ifeq ($(subdir),misc)
+-sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest
++sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
+ endif
+
+ # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
+--- glibc-2.2.5/sysdeps/powerpc/Versions~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/Versions 2004-09-03 19:00:38.000000000 -0500
+@@ -1,8 +1,4 @@
+ libm {
+- GLIBC_2.1 {
+- # symbols used in macros from sysdeps/powerpc/bits/fenv.h
+- __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
+- }
+ GLIBC_2.2 {
+ # Special functions to save and restore registers used by the
+ # runtime libraries.
+--- glibc-2.2.5/sysdeps/powerpc/__longjmp.S~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S 2004-09-03 19:00:38.000000000 -0500
+@@ -24,6 +24,8 @@
+ #include <bp-sym.h>
+ #include <bp-asm.h>
+
++/* The FPU loads have been removed from this file - see fpu/__longjmp.S */
++
+ ENTRY (BP_SYM (__longjmp))
+ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+
+@@ -31,44 +33,26 @@
+ lwz r2,(JB_GPR2*4)(r3)
+ lwz r0,(JB_LR*4)(r3)
+ lwz r14,((JB_GPRS+0)*4)(r3)
+- lfd fp14,((JB_FPRS+0*2)*4)(r3)
+ lwz r15,((JB_GPRS+1)*4)(r3)
+- lfd fp15,((JB_FPRS+1*2)*4)(r3)
+ lwz r16,((JB_GPRS+2)*4)(r3)
+- lfd fp16,((JB_FPRS+2*2)*4)(r3)
+ lwz r17,((JB_GPRS+3)*4)(r3)
+- lfd fp17,((JB_FPRS+3*2)*4)(r3)
+ lwz r18,((JB_GPRS+4)*4)(r3)
+- lfd fp18,((JB_FPRS+4*2)*4)(r3)
+ lwz r19,((JB_GPRS+5)*4)(r3)
+- lfd fp19,((JB_FPRS+5*2)*4)(r3)
+ lwz r20,((JB_GPRS+6)*4)(r3)
+- lfd fp20,((JB_FPRS+6*2)*4)(r3)
+ mtlr r0
+ lwz r21,((JB_GPRS+7)*4)(r3)
+- lfd fp21,((JB_FPRS+7*2)*4)(r3)
+ lwz r22,((JB_GPRS+8)*4)(r3)
+- lfd fp22,((JB_FPRS+8*2)*4)(r3)
+ lwz r0,(JB_CR*4)(r3)
+ lwz r23,((JB_GPRS+9)*4)(r3)
+- lfd fp23,((JB_FPRS+9*2)*4)(r3)
+ lwz r24,((JB_GPRS+10)*4)(r3)
+- lfd fp24,((JB_FPRS+10*2)*4)(r3)
+ lwz r25,((JB_GPRS+11)*4)(r3)
+- lfd fp25,((JB_FPRS+11*2)*4)(r3)
+ mtcrf 0xFF,r0
+ lwz r26,((JB_GPRS+12)*4)(r3)
+- lfd fp26,((JB_FPRS+12*2)*4)(r3)
+ lwz r27,((JB_GPRS+13)*4)(r3)
+- lfd fp27,((JB_FPRS+13*2)*4)(r3)
+ lwz r28,((JB_GPRS+14)*4)(r3)
+- lfd fp28,((JB_FPRS+14*2)*4)(r3)
+ lwz r29,((JB_GPRS+15)*4)(r3)
+- lfd fp29,((JB_FPRS+15*2)*4)(r3)
+ lwz r30,((JB_GPRS+16)*4)(r3)
+- lfd fp30,((JB_FPRS+16*2)*4)(r3)
+ lwz r31,((JB_GPRS+17)*4)(r3)
+- lfd fp31,((JB_FPRS+17*2)*4)(r3)
+ mr r3,r4
+ blr
+ END (BP_SYM (__longjmp))
+--- glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h 2004-09-03 19:00:38.000000000 -0500
+@@ -17,6 +17,7 @@
+ 02111-1307 USA. */
+
+ /* Define the machine-dependent type `jmp_buf'. PowerPC version. */
++/* For processors without floating point. */
+
+ #ifndef _SETJMP_H
+ # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+@@ -33,12 +34,11 @@
+ # define JB_LR 2 /* The address we will return to */
+ # define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
+ # define JB_CR 21 /* Condition code registers. */
+-# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
+-# define JB_SIZE (58*4)
++# define JB_SIZE (22*4)
+ #endif
+
+ #ifndef _ASM
+-typedef long int __jmp_buf[58];
++typedef long int __jmp_buf[22];
+ #endif
+
+ /* Test if longjmp to JMPBUF would unwind the frame
+--- glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c~glibc-2.2.5-hhl-powerpc-fpu.patch
++++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
+-/* Clear given exceptions in current floating-point environment.
+- Copyright (C) 1997,99,2000,01 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
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#include <fenv_libc.h>
+-
+-#undef feclearexcept
+-int
+-__feclearexcept (int excepts)
+-{
+- fenv_union_t u;
+-
+- /* Get the current state. */
+- u.fenv = fegetenv_register ();
+-
+- /* Clear the relevant bits. */
+- u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
+- | (excepts & FPSCR_STICKY_BITS));
+-
+- /* Put the new state in effect. */
+- fesetenv_register (u.fenv);
+-
+- /* Success. */
+- return 0;
+-}
+-
+-#include <shlib-compat.h>
+-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+-strong_alias (__feclearexcept, __old_feclearexcept)
+-compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
+-#endif
+-
+-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
+--- glibc-2.2.5/sysdeps/powerpc/fe_nomask.c~glibc-2.2.5-hhl-powerpc-fpu.patch
++++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
+-/* Procedure definition for FE_NOMASK_ENV.
+- Copyright (C) 1997 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
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#include <fenv.h>
+-#include <errno.h>
+-
+-/* This is presently a stub, until it's decided how the kernels should
+- support this. */
+-
+-const fenv_t *
+-__fe_nomask_env(void)
+-{
+- __set_errno (ENOSYS);
+- return FE_ENABLED_ENV;
+-}
+-stub_warning (__fe_nomask_env)
+--- glibc-2.2.5/sysdeps/powerpc/fprrest.S~glibc-2.2.5-hhl-powerpc-fpu.patch
++++ glibc-2.2.5/sysdeps/powerpc/fprrest.S
+-/* Copyright (C) 2000, 2001 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
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-/*
+- Floating Point Registers (FPRs) restore routine
+-*/
+-
+-#include <sysdep.h>
+-
+-ENTRY(_restfpr_all)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
+-C_TEXT(_restf14):
+-C_TEXT(_restfpr_14): lfd fp14,-144(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
+-C_TEXT(_restf15):
+-C_TEXT(_restfpr_15): lfd fp15,-136(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
+-C_TEXT(_restf16):
+-C_TEXT(_restfpr_16): lfd fp16,-128(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
+-C_TEXT(_restf17):
+-C_TEXT(_restfpr_17): lfd fp17,-120(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
+-C_TEXT(_restf18):
+-C_TEXT(_restfpr_18): lfd fp18,-112(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
+-C_TEXT(_restf19):
+-C_TEXT(_restfpr_19): lfd fp19,-104(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
+-C_TEXT(_restf20):
+-C_TEXT(_restfpr_20): lfd fp20,-96(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
+-C_TEXT(_restf21):
+-C_TEXT(_restfpr_21): lfd fp21,-88(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
+-C_TEXT(_restf22):
+-C_TEXT(_restfpr_22): lfd fp22,-80(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
+-C_TEXT(_restf23):
+-C_TEXT(_restfpr_23): lfd fp23,-72(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
+-C_TEXT(_restf24):
+-C_TEXT(_restfpr_24): lfd fp24,-64(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
+-C_TEXT(_restf25):
+-C_TEXT(_restfpr_25): lfd fp25,-56(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
+-C_TEXT(_restf26):
+-C_TEXT(_restfpr_26): lfd fp26,-48(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
+-C_TEXT(_restf27):
+-C_TEXT(_restfpr_27): lfd fp27,-40(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
+-C_TEXT(_restf28):
+-C_TEXT(_restfpr_28): lfd fp28,-32(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
+-C_TEXT(_restf29):
+-C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
+- lfd fp29,-24(r1) #restore f29
+- mtlr r0 #move return address to LR
+- lfd fp30,-16(r1) #restore f30
+- lfd fp31,-8(r1) #restore f31
+- blr #return
+--- glibc-2.2.5/sysdeps/powerpc/fprsave.S~glibc-2.2.5-hhl-powerpc-fpu.patch
++++ glibc-2.2.5/sysdeps/powerpc/fprsave.S
+-/* Copyright (C) 2000, 2001 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
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-/*
+- Floating Point Registers (FPRs) save routine
+-*/
+-
+-#include <sysdep.h>
+-
+-ENTRY(_savefpr_all)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
+-C_TEXT(_savef14):
+-C_TEXT(_savefpr_14): stfd fp14,-144(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
+-C_TEXT(_savef15):
+-C_TEXT(_savefpr_15): stfd fp15,-136(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
+-C_TEXT(_savef16):
+-C_TEXT(_savefpr_16): stfd fp16,-128(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
+-C_TEXT(_savef17):
+-C_TEXT(_savefpr_17): stfd fp17,-120(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
+-C_TEXT(_savef18):
+-C_TEXT(_savefpr_18): stfd fp18,-112(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
+-C_TEXT(_savef19):
+-C_TEXT(_savefpr_19): stfd fp19,-104(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
+-C_TEXT(_savef20):
+-C_TEXT(_savefpr_20): stfd fp20,-96(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
+-C_TEXT(_savef21):
+-C_TEXT(_savefpr_21): stfd fp21,-88(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
+-C_TEXT(_savef22):
+-C_TEXT(_savefpr_22): stfd fp22,-80(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
+-C_TEXT(_savef23):
+-C_TEXT(_savefpr_23): stfd fp23,-72(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
+-C_TEXT(_savef24):
+-C_TEXT(_savefpr_24): stfd fp24,-64(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
+-C_TEXT(_savef25):
+-C_TEXT(_savefpr_25): stfd fp25,-56(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
+-C_TEXT(_savef26):
+-C_TEXT(_savefpr_26): stfd fp26,-48(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
+-C_TEXT(_savef27):
+-C_TEXT(_savefpr_27): stfd fp27,-40(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
+-C_TEXT(_savef28):
+-C_TEXT(_savefpr_28): stfd fp28,-32(r1)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
+- ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
+-C_TEXT(_savef29):
+-C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
+- stfd fp30,-16(r1) #save f30
+- stfd fp31,-8(r1) #save f31
+- stw r0,8(r1) #save LR in callers frame
+- blr #return
+--- glibc-2.2.5/sysdeps/powerpc/fpu/Dist~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist 2004-09-03 19:00:38.000000000 -0500
+@@ -1,3 +1,6 @@
++fe_nomask.c
++fprrest.S
++fprsave.S
+ fenv_const.c
+ fenv_libc.h
+ t_sqrt.c
+--- glibc-2.2.5/sysdeps/powerpc/fpu/Makefile~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile 2004-09-03 19:00:38.000000000 -0500
+@@ -1,3 +1,7 @@
+ ifeq ($(subdir),math)
+ libm-support += fenv_const fe_nomask t_sqrt
+ endif
++
++ifeq ($(subdir),misc)
++sysdep_routines += fprsave fprrest
++endif
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,6 @@
++libm {
++ GLIBC_2.1 {
++ # symbols used in macros from sysdeps/powerpc/bits/fenv.h
++ __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
++ }
++}
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,74 @@
++/* longjmp for PowerPC.
++ Copyright (C) 1995, 1996, 1997, 1999, 2000 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
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the GNU C Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA. */
++
++#include <sysdep.h>
++#define _ASM
++#define _SETJMP_H
++#include <bits/setjmp.h>
++#include <bp-sym.h>
++#include <bp-asm.h>
++
++ENTRY (BP_SYM (__longjmp))
++ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
++
++ lwz r1,(JB_GPR1*4)(r3)
++ lwz r2,(JB_GPR2*4)(r3)
++ lwz r0,(JB_LR*4)(r3)
++ lwz r14,((JB_GPRS+0)*4)(r3)
++ lfd fp14,((JB_FPRS+0*2)*4)(r3)
++ lwz r15,((JB_GPRS+1)*4)(r3)
++ lfd fp15,((JB_FPRS+1*2)*4)(r3)
++ lwz r16,((JB_GPRS+2)*4)(r3)
++ lfd fp16,((JB_FPRS+2*2)*4)(r3)
++ lwz r17,((JB_GPRS+3)*4)(r3)
++ lfd fp17,((JB_FPRS+3*2)*4)(r3)
++ lwz r18,((JB_GPRS+4)*4)(r3)
++ lfd fp18,((JB_FPRS+4*2)*4)(r3)
++ lwz r19,((JB_GPRS+5)*4)(r3)
++ lfd fp19,((JB_FPRS+5*2)*4)(r3)
++ lwz r20,((JB_GPRS+6)*4)(r3)
++ lfd fp20,((JB_FPRS+6*2)*4)(r3)
++ mtlr r0
++ lwz r21,((JB_GPRS+7)*4)(r3)
++ lfd fp21,((JB_FPRS+7*2)*4)(r3)
++ lwz r22,((JB_GPRS+8)*4)(r3)
++ lfd fp22,((JB_FPRS+8*2)*4)(r3)
++ lwz r0,(JB_CR*4)(r3)
++ lwz r23,((JB_GPRS+9)*4)(r3)
++ lfd fp23,((JB_FPRS+9*2)*4)(r3)
++ lwz r24,((JB_GPRS+10)*4)(r3)
++ lfd fp24,((JB_FPRS+10*2)*4)(r3)
++ lwz r25,((JB_GPRS+11)*4)(r3)
++ lfd fp25,((JB_FPRS+11*2)*4)(r3)
++ mtcrf 0xFF,r0
++ lwz r26,((JB_GPRS+12)*4)(r3)
++ lfd fp26,((JB_FPRS+12*2)*4)(r3)
++ lwz r27,((JB_GPRS+13)*4)(r3)
++ lfd fp27,((JB_FPRS+13*2)*4)(r3)
++ lwz r28,((JB_GPRS+14)*4)(r3)
++ lfd fp28,((JB_FPRS+14*2)*4)(r3)
++ lwz r29,((JB_GPRS+15)*4)(r3)
++ lfd fp29,((JB_FPRS+15*2)*4)(r3)
++ lwz r30,((JB_GPRS+16)*4)(r3)
++ lfd fp30,((JB_FPRS+16*2)*4)(r3)
++ lwz r31,((JB_GPRS+17)*4)(r3)
++ lfd fp31,((JB_FPRS+17*2)*4)(r3)
++ mr r3,r4
++ blr
++END (BP_SYM (__longjmp))
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,47 @@
++/* Copyright (C) 1997, 1998, 2000 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
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the GNU C Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA. */
++
++/* Define the machine-dependent type `jmp_buf'. PowerPC version. */
++
++#ifndef _SETJMP_H
++# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
++#endif
++
++/* The previous bits/setjmp.h had __jmp_buf defined as a structure.
++ We use an array of 'long int' instead, to make writing the
++ assembler easier. Naturally, user code should not depend on
++ either representation. */
++
++#if defined __USE_MISC || defined _ASM
++# define JB_GPR1 0 /* Also known as the stack pointer */
++# define JB_GPR2 1
++# define JB_LR 2 /* The address we will return to */
++# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total */
++# define JB_CR 21 /* Condition code registers. */
++# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total */
++# define JB_SIZE (58*4)
++#endif
++
++#ifndef _ASM
++typedef long int __jmp_buf[58];
++#endif
++
++/* Test if longjmp to JMPBUF would unwind the frame
++ containing a local variable at ADDRESS. */
++#define _JMPBUF_UNWINDS(jmpbuf, address) \
++ ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,48 @@
++/* Clear given exceptions in current floating-point environment.
++ Copyright (C) 1997,99,2000,01 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <fenv_libc.h>
++
++#undef feclearexcept
++int
++__feclearexcept (int excepts)
++{
++ fenv_union_t u;
++
++ /* Get the current state. */
++ u.fenv = fegetenv_register ();
++
++ /* Clear the relevant bits. */
++ u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
++ | (excepts & FPSCR_STICKY_BITS));
++
++ /* Put the new state in effect. */
++ fesetenv_register (u.fenv);
++
++ /* Success. */
++ return 0;
++}
++
++#include <shlib-compat.h>
++#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
++strong_alias (__feclearexcept, __old_feclearexcept)
++compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
++#endif
++
++versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,32 @@
++/* Procedure definition for FE_NOMASK_ENV.
++ Copyright (C) 1997 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include <fenv.h>
++#include <errno.h>
++
++/* This is presently a stub, until it's decided how the kernels should
++ support this. */
++
++const fenv_t *
++__fe_nomask_env(void)
++{
++ __set_errno (ENOSYS);
++ return FE_ENABLED_ENV;
++}
++stub_warning (__fe_nomask_env)
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,94 @@
++/* Copyright (C) 2000, 2001 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++/*
++ Floating Point Registers (FPRs) restore routine
++*/
++
++#include <sysdep.h>
++
++ENTRY(_restfpr_all)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
++C_TEXT(_restf14):
++C_TEXT(_restfpr_14): lfd fp14,-144(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
++C_TEXT(_restf15):
++C_TEXT(_restfpr_15): lfd fp15,-136(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
++C_TEXT(_restf16):
++C_TEXT(_restfpr_16): lfd fp16,-128(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
++C_TEXT(_restf17):
++C_TEXT(_restfpr_17): lfd fp17,-120(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
++C_TEXT(_restf18):
++C_TEXT(_restfpr_18): lfd fp18,-112(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
++C_TEXT(_restf19):
++C_TEXT(_restfpr_19): lfd fp19,-104(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
++C_TEXT(_restf20):
++C_TEXT(_restfpr_20): lfd fp20,-96(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
++C_TEXT(_restf21):
++C_TEXT(_restfpr_21): lfd fp21,-88(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
++C_TEXT(_restf22):
++C_TEXT(_restfpr_22): lfd fp22,-80(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
++C_TEXT(_restf23):
++C_TEXT(_restfpr_23): lfd fp23,-72(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
++C_TEXT(_restf24):
++C_TEXT(_restfpr_24): lfd fp24,-64(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
++C_TEXT(_restf25):
++C_TEXT(_restfpr_25): lfd fp25,-56(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
++C_TEXT(_restf26):
++C_TEXT(_restfpr_26): lfd fp26,-48(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
++C_TEXT(_restf27):
++C_TEXT(_restfpr_27): lfd fp27,-40(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
++C_TEXT(_restf28):
++C_TEXT(_restfpr_28): lfd fp28,-32(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
++C_TEXT(_restf29):
++C_TEXT(_restfpr_29): lwz r0,8(r1) #get return address from frame
++ lfd fp29,-24(r1) #restore f29
++ mtlr r0 #move return address to LR
++ lfd fp30,-16(r1) #restore f30
++ lfd fp31,-8(r1) #restore f31
++ blr #return
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,93 @@
++/* Copyright (C) 2000, 2001 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++/*
++ Floating Point Registers (FPRs) save routine
++*/
++
++#include <sysdep.h>
++
++ENTRY(_savefpr_all)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
++C_TEXT(_savef14):
++C_TEXT(_savefpr_14): stfd fp14,-144(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
++C_TEXT(_savef15):
++C_TEXT(_savefpr_15): stfd fp15,-136(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
++C_TEXT(_savef16):
++C_TEXT(_savefpr_16): stfd fp16,-128(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
++C_TEXT(_savef17):
++C_TEXT(_savefpr_17): stfd fp17,-120(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
++C_TEXT(_savef18):
++C_TEXT(_savefpr_18): stfd fp18,-112(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
++C_TEXT(_savef19):
++C_TEXT(_savefpr_19): stfd fp19,-104(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
++C_TEXT(_savef20):
++C_TEXT(_savefpr_20): stfd fp20,-96(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
++C_TEXT(_savef21):
++C_TEXT(_savefpr_21): stfd fp21,-88(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
++C_TEXT(_savef22):
++C_TEXT(_savefpr_22): stfd fp22,-80(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
++C_TEXT(_savef23):
++C_TEXT(_savefpr_23): stfd fp23,-72(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
++C_TEXT(_savef24):
++C_TEXT(_savefpr_24): stfd fp24,-64(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
++C_TEXT(_savef25):
++C_TEXT(_savefpr_25): stfd fp25,-56(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
++C_TEXT(_savef26):
++C_TEXT(_savefpr_26): stfd fp26,-48(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
++C_TEXT(_savef27):
++C_TEXT(_savefpr_27): stfd fp27,-40(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
++C_TEXT(_savef28):
++C_TEXT(_savefpr_28): stfd fp28,-32(r1)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
++ ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
++C_TEXT(_savef29):
++C_TEXT(_savefpr_29): stfd fp29,-24(r1) #save f29
++ stfd fp30,-16(r1) #save f30
++ stfd fp31,-8(r1) #save f31
++ stw r0,8(r1) #save LR in callers frame
++ blr #return
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,67 @@
++/* FPU control word definitions. PowerPC version.
++ Copyright (C) 1996, 1997, 1998 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
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#ifndef _FPU_CONTROL_H
++#define _FPU_CONTROL_H
++
++/* rounding control */
++#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
++#define _FPU_RC_DOWN 0x03
++#define _FPU_RC_UP 0x02
++#define _FPU_RC_ZERO 0x01
++
++#define _FPU_MASK_NI 0x04 /* non-ieee mode */
++
++/* masking of interrupts */
++#define _FPU_MASK_ZM 0x10 /* zero divide */
++#define _FPU_MASK_OM 0x40 /* overflow */
++#define _FPU_MASK_UM 0x20 /* underflow */
++#define _FPU_MASK_XM 0x08 /* inexact */
++#define _FPU_MASK_IM 0x80 /* invalid operation */
++
++#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
++
++/* The fdlibm code requires no interrupts for exceptions. */
++#define _FPU_DEFAULT 0x00000000 /* Default value. */
++
++/* IEEE: same as above, but (some) exceptions;
++ we leave the 'inexact' exception off.
++ */
++#define _FPU_IEEE 0x000000f0
++
++/* Type of the control word. */
++typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
++
++/* Macros for accessing the hardware control word. */
++#define _FPU_GETCW(cw) ( { \
++ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
++ __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
++ (cw)=tmp.cw[1]; \
++ tmp.cw[1]; } )
++#define _FPU_SETCW(cw) { \
++ union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
++ tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
++ tmp.cw[1] = cw; \
++ __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
++}
++
++/* Default control word set at startup. */
++extern fpu_control_t __fpu_control;
++
++#endif /* _FPU_CONTROL_H */
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S 2004-09-03 19:00:38.000000000 -0500
+@@ -0,0 +1,73 @@
++/* setjmp for PowerPC.
++ Copyright (C) 1995, 1996, 1997, 1999, 2000 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
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the GNU C Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA. */
++
++#include <sysdep.h>
++#define _ASM
++#define _SETJMP_H
++#include <bits/setjmp.h>
++#include <bp-sym.h>
++#include <bp-asm.h>
++
++ENTRY (BP_SYM (__sigsetjmp))
++ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
++
++ stw r1,(JB_GPR1*4)(3)
++ mflr r0
++ stw r2,(JB_GPR2*4)(3)
++ stw r14,((JB_GPRS+0)*4)(3)
++ stfd fp14,((JB_FPRS+0*2)*4)(3)
++ stw r0,(JB_LR*4)(3)
++ stw r15,((JB_GPRS+1)*4)(3)
++ stfd fp15,((JB_FPRS+1*2)*4)(3)
++ mfcr r0
++ stw r16,((JB_GPRS+2)*4)(3)
++ stfd fp16,((JB_FPRS+2*2)*4)(3)
++ stw r0,(JB_CR*4)(3)
++ stw r17,((JB_GPRS+3)*4)(3)
++ stfd fp17,((JB_FPRS+3*2)*4)(3)
++ stw r18,((JB_GPRS+4)*4)(3)
++ stfd fp18,((JB_FPRS+4*2)*4)(3)
++ stw r19,((JB_GPRS+5)*4)(3)
++ stfd fp19,((JB_FPRS+5*2)*4)(3)
++ stw r20,((JB_GPRS+6)*4)(3)
++ stfd fp20,((JB_FPRS+6*2)*4)(3)
++ stw r21,((JB_GPRS+7)*4)(3)
++ stfd fp21,((JB_FPRS+7*2)*4)(3)
++ stw r22,((JB_GPRS+8)*4)(3)
++ stfd fp22,((JB_FPRS+8*2)*4)(3)
++ stw r23,((JB_GPRS+9)*4)(3)
++ stfd fp23,((JB_FPRS+9*2)*4)(3)
++ stw r24,((JB_GPRS+10)*4)(3)
++ stfd fp24,((JB_FPRS+10*2)*4)(3)
++ stw r25,((JB_GPRS+11)*4)(3)
++ stfd fp25,((JB_FPRS+11*2)*4)(3)
++ stw r26,((JB_GPRS+12)*4)(3)
++ stfd fp26,((JB_FPRS+12*2)*4)(3)
++ stw r27,((JB_GPRS+13)*4)(3)
++ stfd fp27,((JB_FPRS+13*2)*4)(3)
++ stw r28,((JB_GPRS+14)*4)(3)
++ stfd fp28,((JB_FPRS+14*2)*4)(3)
++ stw r29,((JB_GPRS+15)*4)(3)
++ stfd fp29,((JB_FPRS+15*2)*4)(3)
++ stw r30,((JB_GPRS+16)*4)(3)
++ stfd fp30,((JB_FPRS+16*2)*4)(3)
++ stw r31,((JB_GPRS+17)*4)(3)
++ stfd fp31,((JB_FPRS+17*2)*4)(3)
++ b JUMPTARGET (BP_SYM (__sigjmp_save))
++END (BP_SYM (__sigsetjmp))
+--- glibc-2.2.5/sysdeps/powerpc/fpu_control.h~glibc-2.2.5-hhl-powerpc-fpu.patch
++++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h
+-/* FPU control word definitions. PowerPC version.
+- Copyright (C) 1996, 1997, 1998 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
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library is distributed in the hope that it will be useful,
+- but WITHOUT ANY WARRANTY; without even the implied warranty of
+- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
+-
+-#ifndef _FPU_CONTROL_H
+-#define _FPU_CONTROL_H
+-
+-/* rounding control */
+-#define _FPU_RC_NEAREST 0x00 /* RECOMMENDED */
+-#define _FPU_RC_DOWN 0x03
+-#define _FPU_RC_UP 0x02
+-#define _FPU_RC_ZERO 0x01
+-
+-#define _FPU_MASK_NI 0x04 /* non-ieee mode */
+-
+-/* masking of interrupts */
+-#define _FPU_MASK_ZM 0x10 /* zero divide */
+-#define _FPU_MASK_OM 0x40 /* overflow */
+-#define _FPU_MASK_UM 0x20 /* underflow */
+-#define _FPU_MASK_XM 0x08 /* inexact */
+-#define _FPU_MASK_IM 0x80 /* invalid operation */
+-
+-#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
+-
+-/* The fdlibm code requires no interrupts for exceptions. */
+-#define _FPU_DEFAULT 0x00000000 /* Default value. */
+-
+-/* IEEE: same as above, but (some) exceptions;
+- we leave the 'inexact' exception off.
+- */
+-#define _FPU_IEEE 0x000000f0
+-
+-/* Type of the control word. */
+-typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
+-
+-/* Macros for accessing the hardware control word. */
+-#define _FPU_GETCW(cw) ( { \
+- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
+- __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
+- (cw)=tmp.cw[1]; \
+- tmp.cw[1]; } )
+-#define _FPU_SETCW(cw) { \
+- union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
+- tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
+- tmp.cw[1] = cw; \
+- __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
+-}
+-
+-/* Default control word set at startup. */
+-extern fpu_control_t __fpu_control;
+-
+-#endif /* _FPU_CONTROL_H */
+--- glibc-2.2.5/sysdeps/powerpc/setjmp.S~glibc-2.2.5-hhl-powerpc-fpu.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/setjmp.S 2004-09-03 19:00:38.000000000 -0500
+@@ -24,6 +24,8 @@
+ #include <bp-sym.h>
+ #include <bp-asm.h>
+
++/* The FPU stores have been removed from this file - see fpu/setjmp.S */
++
+ ENTRY (BP_SYM (__sigsetjmp))
+ CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+
+@@ -31,43 +33,25 @@
+ mflr r0
+ stw r2,(JB_GPR2*4)(3)
+ stw r14,((JB_GPRS+0)*4)(3)
+- stfd fp14,((JB_FPRS+0*2)*4)(3)
+ stw r0,(JB_LR*4)(3)
+ stw r15,((JB_GPRS+1)*4)(3)
+- stfd fp15,((JB_FPRS+1*2)*4)(3)
+ mfcr r0
+ stw r16,((JB_GPRS+2)*4)(3)
+- stfd fp16,((JB_FPRS+2*2)*4)(3)
+ stw r0,(JB_CR*4)(3)
+ stw r17,((JB_GPRS+3)*4)(3)
+- stfd fp17,((JB_FPRS+3*2)*4)(3)
+ stw r18,((JB_GPRS+4)*4)(3)
+- stfd fp18,((JB_FPRS+4*2)*4)(3)
+ stw r19,((JB_GPRS+5)*4)(3)
+- stfd fp19,((JB_FPRS+5*2)*4)(3)
+ stw r20,((JB_GPRS+6)*4)(3)
+- stfd fp20,((JB_FPRS+6*2)*4)(3)
+ stw r21,((JB_GPRS+7)*4)(3)
+- stfd fp21,((JB_FPRS+7*2)*4)(3)
+ stw r22,((JB_GPRS+8)*4)(3)
+- stfd fp22,((JB_FPRS+8*2)*4)(3)
+ stw r23,((JB_GPRS+9)*4)(3)
+- stfd fp23,((JB_FPRS+9*2)*4)(3)
+ stw r24,((JB_GPRS+10)*4)(3)
+- stfd fp24,((JB_FPRS+10*2)*4)(3)
+ stw r25,((JB_GPRS+11)*4)(3)
+- stfd fp25,((JB_FPRS+11*2)*4)(3)
+ stw r26,((JB_GPRS+12)*4)(3)
+- stfd fp26,((JB_FPRS+12*2)*4)(3)
+ stw r27,((JB_GPRS+13)*4)(3)
+- stfd fp27,((JB_FPRS+13*2)*4)(3)
+ stw r28,((JB_GPRS+14)*4)(3)
+- stfd fp28,((JB_FPRS+14*2)*4)(3)
+ stw r29,((JB_GPRS+15)*4)(3)
+- stfd fp29,((JB_FPRS+15*2)*4)(3)
+ stw r30,((JB_GPRS+16)*4)(3)
+- stfd fp30,((JB_FPRS+16*2)*4)(3)
+ stw r31,((JB_GPRS+17)*4)(3)
+- stfd fp31,((JB_FPRS+17*2)*4)(3)
+ b JUMPTARGET (BP_SYM (__sigjmp_save))
+ END (BP_SYM (__sigsetjmp))
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch
new file mode 100644
index 0000000000..9a9eb37c7d
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-build-gmon.patch
@@ -0,0 +1,88 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/mips/machine-gmon.h~glibc-2.2.5-mips-build-gmon.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/mips/machine-gmon.h 2004-09-03 19:00:38.000000000 -0500
+@@ -17,42 +17,52 @@
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+-#define _MCOUNT_DECL static void __mcount
++#define _MCOUNT_DECL(frompc,selfpc) \
++static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
+
+ /* Call __mcount with our the return PC for our caller,
+ and the return PC our caller will return to. */
+ #ifdef __PIC__
+ #define CPLOAD ".cpload $25;"
++#define CPRESTORE ".cprestore 44\n\t"
+ #else
+ #define CPLOAD
++#define CPRESTORE
+ #endif
+
+ #define MCOUNT asm(\
+- ".globl _mcount;" \
+- ".align 2;" \
+- ".type _mcount,@function;" \
+- "_mcount:;" \
+- ".set noreorder;" \
+- ".set noat;" \
++ ".globl _mcount;\n\t" \
++ ".align 2;\n\t" \
++ ".type _mcount,@function;\n\t" \
++ ".ent _mcount\n\t" \
++ "_mcount:\n\t" \
++ ".frame $sp,44,$31\n\t" \
++ ".set noreorder;\n\t" \
++ ".set noat;\n\t" \
+ CPLOAD \
+- "sw $4,8($29);" \
+- "sw $5,12($29);" \
+- "sw $6,16($29);" \
+- "sw $7,20($29);" \
+- "sw $1,0($29);" \
+- "sw $31,4($29);" \
+- "move $5,$31;" \
+- "move $4,$1;" \
+- "jal __mcount;" \
+- "nop;" \
+- "lw $4,8($29);" \
+- "lw $5,12($29);" \
+- "lw $6,16($29);" \
+- "lw $7,20($29);" \
+- "lw $31,4($29);" \
+- "lw $1,0($29);" \
+- "addu $29,$29,8;" \
+- "j $31;" \
+- "move $31,$1;" \
+- ".set reorder;" \
+- ".set at");
++ "subu $29,$29,48;\n\t" \
++ CPRESTORE \
++ "sw $4,24($29);\n\t" \
++ "sw $5,28($29);\n\t" \
++ "sw $6,32($29);\n\t" \
++ "sw $7,36($29);\n\t" \
++ "sw $2,40($29);\n\t" \
++ "sw $1,16($29);\n\t" \
++ "sw $31,20($29);\n\t" \
++ "move $5,$31;\n\t" \
++ "move $4,$1;\n\t" \
++ "jal __mcount;\n\t" \
++ "nop;\n\t" \
++ "lw $4,24($29);\n\t" \
++ "lw $5,28($29);\n\t" \
++ "lw $6,32($29);\n\t" \
++ "lw $7,36($29);\n\t" \
++ "lw $2,40($29);\n\t" \
++ "lw $31,20($29);\n\t" \
++ "lw $1,16($29);\n\t" \
++ "addu $29,$29,56;\n\t" \
++ "j $31;\n\t" \
++ "move $31,$1;\n\t" \
++ ".set reorder;\n\t" \
++ ".set at\n\t" \
++ ".end _mcount");
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch
new file mode 100644
index 0000000000..18d64201fa
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-mips-clone-local-label.patch
@@ -0,0 +1,24 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S~glibc-2.2.5-mips-clone-local-label.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S 2004-09-03 19:00:38.000000000 -0500
+@@ -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/recipes/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch
new file mode 100644
index 0000000000..7a27bacea1
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.2.5-ppc405erratum77.patch
@@ -0,0 +1,65 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/powerpc/atomicity.h~glibc-2.2.5-ppc405erratum77.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/powerpc/atomicity.h 2004-09-03 19:00:38.000000000 -0500
+@@ -28,6 +28,17 @@
+ # define __ATOMICITY_INLINE inline
+ #endif
+
++#ifdef __PPC405__
++/* workaround for PPC405 erratum #77 - Mark Hatle, dank. References:
++ http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
++ http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489
++ http://www.kegel.com/xgcc3/ppc405erratum77.html
++ FIXME: using dbct instead of sync would be faster */
++#define __LIBC_PPC405_ERR77_SYNC "sync \n\t"
++#else
++#define __LIBC_PPC405_ERR77_SYNC
++#endif
++
+ static __ATOMICITY_INLINE int
+ __attribute__ ((unused))
+ exchange_and_add (volatile uint32_t *mem, int val)
+@@ -36,6 +47,7 @@
+ __asm__ ("\n\
+ 0: lwarx %0,0,%2 \n\
+ add%I3 %1,%0,%3 \n\
++ " __LIBC_PPC405_ERR77_SYNC "\n\
+ stwcx. %1,0,%2 \n\
+ bne- 0b \n\
+ " : "=&b"(result), "=&r"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory");
+@@ -50,6 +62,7 @@
+ __asm__ ("\n\
+ 0: lwarx %0,0,%1 \n\
+ add%I2 %0,%0,%2 \n\
++ " __LIBC_PPC405_ERR77_SYNC "\n\
+ stwcx. %0,0,%1 \n\
+ bne- 0b \n\
+ " : "=&b"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory");
+@@ -65,6 +78,7 @@
+ sub%I2c. %0,%0,%2 \n\
+ cntlzw %0,%0 \n\
+ bne- 1f \n\
++ " __LIBC_PPC405_ERR77_SYNC "\n\
+ stwcx. %3,0,%1 \n\
+ bne- 0b \n\
+ 1: \n\
+@@ -79,6 +93,7 @@
+ long int result;
+ __asm__ ("\n\
+ 0: lwarx %0,0,%1 \n\
++ " __LIBC_PPC405_ERR77_SYNC "\n\
+ stwcx. %2,0,%1 \n\
+ bne- 0b \n\
+ " : "=&r"(result) : "r"(p), "r"(newval) : "cr0", "memory");
+@@ -94,6 +109,7 @@
+ 0: lwarx %0,0,%1 \n\
+ cmpwi %0,0 \n\
+ bne- 1f \n\
++ " __LIBC_PPC405_ERR77_SYNC "\n\
+ stwcx. %2,0,%1 \n\
+ bne- 0b \n\
+ 1: \n\
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.3.2-allow-solaris.patch b/recipes/glibc/glibc-2.2.5/glibc-2.3.2-allow-solaris.patch
new file mode 100644
index 0000000000..bda01b4267
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.3.2-allow-solaris.patch
@@ -0,0 +1,41 @@
+See http://sources.redhat.com/ml/crossgcc/2003-11/msg00111.html
+Might fix error
+... gcc-3.2.3-glibc-2.3.2/build-glibc/csu/version-info.h:8: too many decimal points in floating constant
+make[2]: ***
+when building on Solaris. I haven't seen this be needed yet, but what the heck,
+here it is in case someone needs it.
+
+Retrieved with http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/csu/Makefile.diff?r1=1.70&r2=1.71&cvsroot=glibc
+
+Revision 1.71, Thu Sep 25 20:29:39 2003 UTC (8 months, 2 weeks ago) by drepper
+Branch: MAIN
+CVS Tags: glibc-2_3_3
+
+($(objpfx)version-info.h): Fix sed script to handle banners.
+
+===================================================================
+RCS file: /cvs/glibc/libc/csu/Makefile,v
+retrieving revision 1.70
+retrieving revision 1.71
+diff -u -r1.70 -r1.71
+--- libc/csu/Makefile 2003/06/26 07:27:39 1.70
++++ libc/csu/Makefile 2003/09/25 20:29:39 1.71
+@@ -222,14 +222,14 @@
+ if [ -z "$$os" ]; then \
+ os=Linux; \
+ fi; \
+- echo "\"Compiled on a $$os $$version system" \
+- "on `date +%Y-%m-%d`.\\n\"" ;; \
++ printf '"Compiled on a %s %s system on %s.\\n"\n' \
++ "$os" "$version" "`date +%Y-%m-%d`" ;; \
+ *) ;; \
+ esac; \
+ files="$(all-Banner-files)"; \
+ if test -n "$$files"; then \
+- echo "\"Available extensions:\\n\""; \
++ printf '"Available extensions:\\n"\n'; \
+ sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \
+- -e 's/\(^.*$$\)/\"\1\\n\"/' $$files; \
++ -e 's/^\(.*\)$$/\"\1\\n\"/' $$files; \
+ fi) > $@T
+ mv -f $@T $@
diff --git a/recipes/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch b/recipes/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch
new file mode 100644
index 0000000000..8bfbcb173a
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-2.3.2-initfini.patch
@@ -0,0 +1,12 @@
+diff -urNd glibc-2.3.2-ct25/csu/Makefile glibc-2.3.2/csu/Makefile
+--- glibc-2.3.2-ct25/csu/Makefile 2004-06-25 13:47:54.000000000 +0200
++++ glibc-2.3.2/csu/Makefile 2004-06-25 13:54:33.000000000 +0200
+@@ -99,7 +99,7 @@
+ $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
+ $(compile.S) -g0 $(ASFLAGS-.os) -o $@
+
+-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
++CFLAGS-initfini.s = -O1 -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
+
+ vpath initfini.c $(full_config_sysdirs)
+
diff --git a/recipes/glibc/glibc-2.2.5/glibc-drow-sh.patch b/recipes/glibc/glibc-2.2.5/glibc-drow-sh.patch
new file mode 100644
index 0000000000..c0e4bbd58c
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-drow-sh.patch
@@ -0,0 +1,30 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/kernel-features.h~glibc-drow-sh.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/kernel-features.h 2004-09-03 19:00:38.000000000 -0500
+@@ -134,11 +134,20 @@
+
+ /* The changed st_ino field appeared in 2.4.0-test6. But we cannot
+ distinguish this version from other 2.4.0 releases. Therefore play
+- save and assume it available is for 2.4.1 and up. */
+-#if __LINUX_KERNEL_VERSION >= 132097
++ save and assume it available is for 2.4.1 and up. However, SH is lame,
++ and still does not have a 64-bit inode field. */
++#if __LINUX_KERNEL_VERSION >= 132097 \
++ && !defined __sh__
+ # define __ASSUME_ST_INO_64_BIT 1
+ #endif
+
++/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test. */
++#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__
++# define __ASSUME_TRUNCATE64_SYSCALL 1
++# define __ASSUME_MMAP2_SYSCALL 1
++# define __ASSUME_STAT64_SYSCALL 1
++#endif
++
+ /* To support locking of large files a new fcntl() syscall was introduced
+ in 2.4.0-test7. We test for 2.4.1 for the earliest version we know
+ the syscall is available. */
diff --git a/recipes/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch b/recipes/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch
new file mode 100644
index 0000000000..4556e858d2
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-linuxthreads-2.3.2-initfini.patch
@@ -0,0 +1,12 @@
+diff -urNd glibc-2.3.2-ct25/linuxthreads/Makefile glibc-2.3.2/linuxthreads/Makefile
+--- glibc-2.3.2-ct25/linuxthreads/Makefile 2004-06-25 13:48:03.000000000 +0200
++++ glibc-2.3.2/linuxthreads/Makefile 2004-06-25 13:53:02.000000000 +0200
+@@ -81,7 +81,7 @@
+ extra-objs += crti.o crtn.o
+ omit-deps += crti crtn
+
+-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
++CFLAGS-pt-initfini.s = -O1 -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
+ endif
+
+ librt-tests = ex10 ex11
diff --git a/recipes/glibc/glibc-2.2.5/glibc-test-lowram.patch b/recipes/glibc/glibc-2.2.5/glibc-test-lowram.patch
new file mode 100644
index 0000000000..658d14bac6
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/glibc-test-lowram.patch
@@ -0,0 +1,19 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/malloc/tst-calloc.c~glibc-test-lowram.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/malloc/tst-calloc.c 2004-09-03 19:00:38.000000000 -0500
+@@ -24,9 +24,8 @@
+ #include <stdio.h>
+
+
+-/* Number of samples per size. */
+-#define N 50000
+-
++/* Number of samples per size. This is also the maximum memory consumption in kilobytes. */
++#define N 8000
+
+ static void
+ fixed_test (int size)
diff --git a/recipes/glibc/glibc-2.2.5/initfini-alpha.patch b/recipes/glibc/glibc-2.2.5/initfini-alpha.patch
new file mode 100644
index 0000000000..94dc2aba25
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/initfini-alpha.patch
@@ -0,0 +1,128 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/alpha/elf/initfini.c~initfini-alpha.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/alpha/elf/initfini.c 2004-09-03 19:00:38.000000000 -0500
+@@ -37,62 +37,62 @@
+ files, all of which may have different GP values. So we must reload
+ the GP value from crti.o in crtn.o. */
+
+-__asm__ ("
+-
+-#include \"defs.h\"
+-
+-/*@HEADER_ENDS*/
+-
+-/*@_init_PROLOG_BEGINS*/
+- .section .init, \"ax\", @progbits
+- .globl _init
+- .ent _init
+-_init:
+- ldgp $29, 0($27)
+- subq $30, 16, $30
+- lda $27, __gmon_start__
+- stq $26, 0($30)
+- stq $29, 8($30)
+- .prologue 1
+- beq $27, 1f
+- jsr $26, ($27), __gmon_start__
+- ldq $29, 8($30)
+-1:
+- .align 3
+- .end _init
+- .size _init, 0
+-/*@_init_PROLOG_ENDS*/
+-
+-/*@_init_EPILOG_BEGINS*/
+- .section .init, \"ax\", @progbits
+- ldq $26, 0($30)
+- ldq $29, 8($30)
+- addq $30, 16, $30
+- ret
+-/*@_init_EPILOG_ENDS*/
+-
+-/*@_fini_PROLOG_BEGINS*/
+- .section .fini, \"ax\", @progbits
+- .globl _fini
+- .ent _fini
+-_fini:
+- ldgp $29, 0($27)
+- subq $30, 16, $30
+- stq $26, 0($30)
+- stq $29, 8($30)
+- .prologue 1
+- .align 3
+- .end _fini
+- .size _fini, 0
+-/*@_fini_PROLOG_ENDS*/
+-
+-/*@_fini_EPILOG_BEGINS*/
+- .section .fini, \"ax\", @progbits
+- ldq $26, 0($30)
+- ldq $29, 8($30)
+- addq $30, 16, $30
+- ret
+-/*@_fini_EPILOG_ENDS*/
+-
+-/*@TRAILER_BEGINS*/
++__asm__ ("\n\
++\n\
++#include \"defs.h\"\n\
++\n\
++/*@HEADER_ENDS*/\n\
++\n\
++/*@_init_PROLOG_BEGINS*/\n\
++ .section .init, \"ax\", @progbits\n\
++ .globl _init\n\
++ .ent _init\n\
++_init:\n\
++ ldgp $29, 0($27)\n\
++ subq $30, 16, $30\n\
++ lda $27, __gmon_start__\n\
++ stq $26, 0($30)\n\
++ stq $29, 8($30)\n\
++ .prologue 1\n\
++ beq $27, 1f\n\
++ jsr $26, ($27), __gmon_start__\n\
++ ldq $29, 8($30)\n\
++1:\n\
++ .align 3\n\
++ .end _init\n\
++ .size _init, 0\n\
++/*@_init_PROLOG_ENDS*/\n\
++\n\
++/*@_init_EPILOG_BEGINS*/\n\
++ .section .init, \"ax\", @progbits\n\
++ ldq $26, 0($30)\n\
++ ldq $29, 8($30)\n\
++ addq $30, 16, $30\n\
++ ret\n\
++/*@_init_EPILOG_ENDS*/\n\
++\n\
++/*@_fini_PROLOG_BEGINS*/\n\
++ .section .fini, \"ax\", @progbits\n\
++ .globl _fini\n\
++ .ent _fini\n\
++_fini:\n\
++ ldgp $29, 0($27)\n\
++ subq $30, 16, $30\n\
++ stq $26, 0($30)\n\
++ stq $29, 8($30)\n\
++ .prologue 1\n\
++ .align 3\n\
++ .end _fini\n\
++ .size _fini, 0\n\
++/*@_fini_PROLOG_ENDS*/\n\
++\n\
++/*@_fini_EPILOG_BEGINS*/\n\
++ .section .fini, \"ax\", @progbits\n\
++ ldq $26, 0($30)\n\
++ ldq $29, 8($30)\n\
++ addq $30, 16, $30\n\
++ ret\n\
++/*@_fini_EPILOG_ENDS*/\n\
++\n\
++/*@TRAILER_BEGINS*/\n\
+ ");
diff --git a/recipes/glibc/glibc-2.2.5/initfini-flags.patch b/recipes/glibc/glibc-2.2.5/initfini-flags.patch
new file mode 100644
index 0000000000..1c9bd2bcf2
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/initfini-flags.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- glibc-2.2.5/csu/Makefile~glibc-2.3.2-initfini
++++ glibc-2.2.5/csu/Makefile
+@@ -92,7 +92,7 @@
+ $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
+ $(compile.S) -g0 $(ASFLAGS-.os) -o $@
+
+-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
++CFLAGS-initfini.s = -O1 -g0 -fPIC -fno-inline-functions
+
+ vpath initfini.c $(full_config_sysdirs)
+
diff --git a/recipes/glibc/glibc-2.2.5/initfini-sh.patch b/recipes/glibc/glibc-2.2.5/initfini-sh.patch
new file mode 100644
index 0000000000..2566cd933a
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/initfini-sh.patch
@@ -0,0 +1,248 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/sh/elf/initfini.c~initfini-sh.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/sh/elf/initfini.c 2004-09-03 19:00:39.000000000 -0500
+@@ -27,122 +27,122 @@
+ * crtn.s puts the corresponding function epilogues
+ in the .init and .fini sections. */
+
+-__asm__ ("
+-
+-#include \"defs.h\"
+-#define SHARED
+-
+-/*@HEADER_ENDS*/
+-
+-/*@TESTS_BEGIN*/
+-
+-/*@TESTS_END*/
+-
+-/*@_init_PROLOG_BEGINS*/
+- .section .init
+- .align 5
+- .global _init
+- .type _init,@function
+-_init:
+- mov.l r12,@-r15
+- mov.l r14,@-r15
+- sts.l pr,@-r15
+-#ifdef SHARED
+- mova .L22,r0
+- mov.l .L22,r12
+- add r0,r12
+- mova .L23,r0
+- mov.l .L23,r1
+- add r0,r1
+-#else
+- mov.l .L23,r1
+-#endif
+- jsr @r1
+- mov r15,r14
+- bra 1f
+- nop
+- .align 2
+-#ifdef SHARED
+-.L22:
+- .long _GLOBAL_OFFSET_TABLE_
+-.L23:
+- .long __gmon_start__@PLT
+-#else
+-.L23:
+- .long __gmon_start__
+-#endif
+- .data
+- .global __fpscr_values
+-__fpscr_values:
+- .long 0
+- .long 0x80000
+- .previous
+-1:
+- ALIGN
+- END_INIT
+-
+-
+-/*@_init_PROLOG_ENDS*/
+-
+-/*@_init_EPILOG_BEGINS*/
+- .section .init
+- mov r14,r15
+- lds.l @r15+,pr
+- mov.l @r15+,r14
+- rts
+- mov.l @r15+,r12
+- END_INIT
+- .section .text
+- .align 5
+- .weak __gmon_start__
+- .type __gmon_start__,@function
+-__gmon_start__:
+- mov.l r14,@-r15
+- mov r15,r14
+- mov r14,r15
+- rts
+- mov.l @r15+,r14
+-
+-/*@_init_EPILOG_ENDS*/
+-
+-/*@_fini_PROLOG_BEGINS*/
+- .section .fini
+- .align 5
+- .global _fini
+- .type _fini,@function
+-_fini:
+- mov.l r12,@-r15
+- mov.l r14,@-r15
+- sts.l pr,@-r15
+-#ifdef SHARED
+- mova .L27,r0
+- mov.l .L27,r12
+- add r0,r12
+-#endif
+- mov r15,r14
+- ALIGN
+- END_FINI
+-#ifdef SHARED
+- bra 1f
+- nop
+- .align 2
+-.L27:
+- .long _GLOBAL_OFFSET_TABLE_
+-#endif
+-1:
+-/*@_fini_PROLOG_ENDS*/
+-
+-/*@_fini_EPILOG_BEGINS*/
+- .section .fini
+- mov r14,r15
+- lds.l @r15+,pr
+- mov.l @r15+,r14
+- rts
+- mov.l @r15+,r12
+-
+- END_FINI
+-
+-/*@_fini_EPILOG_ENDS*/
+-
+-/*@TRAILER_BEGINS*/
++__asm__ ("\n\
++\n\
++#include \"defs.h\"\n\
++#define SHARED\n\
++\n\
++/*@HEADER_ENDS*/\n\
++\n\
++/*@TESTS_BEGIN*/\n\
++\n\
++/*@TESTS_END*/\n\
++\n\
++/*@_init_PROLOG_BEGINS*/\n\
++ .section .init\n\
++ .align 5\n\
++ .global _init\n\
++ .type _init,@function\n\
++_init:\n\
++ mov.l r12,@-r15\n\
++ mov.l r14,@-r15\n\
++ sts.l pr,@-r15\n\
++#ifdef SHARED\n\
++ mova .L22,r0\n\
++ mov.l .L22,r12\n\
++ add r0,r12\n\
++ mova .L23,r0\n\
++ mov.l .L23,r1\n\
++ add r0,r1\n\
++#else\n\
++ mov.l .L23,r1\n\
++#endif\n\
++ jsr @r1\n\
++ mov r15,r14\n\
++ bra 1f\n\
++ nop\n\
++ .align 2\n\
++#ifdef SHARED\n\
++.L22:\n\
++ .long _GLOBAL_OFFSET_TABLE_\n\
++.L23:\n\
++ .long __gmon_start__@PLT\n\
++#else\n\
++.L23:\n\
++ .long __gmon_start__\n\
++#endif\n\
++ .data\n\
++ .global __fpscr_values\n\
++__fpscr_values:\n\
++ .long 0\n\
++ .long 0x80000\n\
++ .previous\n\
++1:\n\
++ ALIGN\n\
++ END_INIT\n\
++\n\
++ \n\
++/*@_init_PROLOG_ENDS*/\n\
++\n\
++/*@_init_EPILOG_BEGINS*/\n\
++ .section .init\n\
++ mov r14,r15\n\
++ lds.l @r15+,pr\n\
++ mov.l @r15+,r14\n\
++ rts \n\
++ mov.l @r15+,r12\n\
++ END_INIT\n\
++ .section .text\n\
++ .align 5\n\
++ .weak __gmon_start__\n\
++ .type __gmon_start__,@function\n\
++__gmon_start__:\n\
++ mov.l r14,@-r15\n\
++ mov r15,r14\n\
++ mov r14,r15\n\
++ rts \n\
++ mov.l @r15+,r14\n\
++ \n\
++/*@_init_EPILOG_ENDS*/\n\
++\n\
++/*@_fini_PROLOG_BEGINS*/\n\
++ .section .fini\n\
++ .align 5\n\
++ .global _fini\n\
++ .type _fini,@function\n\
++_fini:\n\
++ mov.l r12,@-r15\n\
++ mov.l r14,@-r15\n\
++ sts.l pr,@-r15\n\
++#ifdef SHARED\n\
++ mova .L27,r0\n\
++ mov.l .L27,r12\n\
++ add r0,r12\n\
++#endif\n\
++ mov r15,r14\n\
++ ALIGN\n\
++ END_FINI\n\
++#ifdef SHARED\n\
++ bra 1f\n\
++ nop\n\
++ .align 2\n\
++.L27:\n\
++ .long _GLOBAL_OFFSET_TABLE_\n\
++#endif\n\
++1:\n\
++/*@_fini_PROLOG_ENDS*/\n\
++\n\
++/*@_fini_EPILOG_BEGINS*/\n\
++ .section .fini\n\
++ mov r14,r15\n\
++ lds.l @r15+,pr\n\
++ mov.l @r15+,r14\n\
++ rts \n\
++ mov.l @r15+,r12\n\
++\n\
++ END_FINI\n\
++ \n\
++/*@_fini_EPILOG_ENDS*/\n\
++\n\
++/*@TRAILER_BEGINS*/\n\
+ ");
diff --git a/recipes/glibc/glibc-2.2.5/ldd.patch b/recipes/glibc/glibc-2.2.5/ldd.patch
new file mode 100644
index 0000000000..01719dbe08
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/ldd.patch
@@ -0,0 +1,38 @@
+--- elf/ldd.bash.in~ Tue Apr 3 21:43:31 2001
++++ elf/ldd.bash.in Tue Apr 3 21:54:15 2001
+@@ -32,6 +32,7 @@
+ warn=
+ bind_now=
+ verbose=
++filename_magic_regex="((^|/)lib|.so$)"
+
+ while test $# -gt 0; do
+ case "$1" in
+@@ -123,8 +124,11 @@
+ echo "ldd: ${file}:" $"No such file or directory" >&2
+ result=1
+ elif test -r "$file"; then
+- test -x "$file" || echo 'ldd:' $"\
+-warning: you do not have execution permission for" "\`$file'" >&2
++ if test ! -x "$file" && eval echo "$file" \
++ | egrep -v "$filename_magic_regex" > /dev/null; then
++ echo 'ldd:' $"warning: you do not have execution permission for"\
++ "\`$file'" >&2
++ fi
+ RTLD=
+ for rtld in ${RTLDLIST}; do
+ if test -x $rtld; then
+@@ -143,7 +147,12 @@
+ fi
+ case $ret in
+ 0)
+- eval $add_env '"$file"' || result=1
++ if [ ! -x "$file" ] && eval file -L "$file" 2>/dev/null \
++ | sed 10q | egrep "$file_magic_regex" > /dev/null; then
++ eval $add_env ${RTLD} '"$file"' || result=1
++ else
++ eval $add_env '"$file"' || result=1
++ fi
+ ;;
+ 1)
+ # This can be a non-ELF binary or no binary at all.
diff --git a/recipes/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch b/recipes/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch
new file mode 100644
index 0000000000..48127a1281
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/linuxthreads-2.2.5-ppc405erratum77.patch
@@ -0,0 +1,34 @@
+# see http://bugs.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=4155
+# and http://www.kegel.com/xgcc3/ppc405erratum77.html
+# See also matching patch for glibc
+
+diff -aur glibc-2.2.5.orig/linuxthreads/sysdeps/powerpc/pt-machine.h glibc-2.2.5/linuxthreads/sysdeps/powerpc/pt-machine.h
+--- glibc-2.2.5.orig/linuxthreads/sysdeps/powerpc/pt-machine.h Thu May 17 12:47:46 2001
++++ glibc-2.2.5/linuxthreads/sysdeps/powerpc/pt-machine.h Tue Jul 23 05:38:24 2002
+@@ -41,6 +41,17 @@
+ #define HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
+ #define IMPLEMENT_TAS_WITH_CAS
+
++#ifdef __PPC405__
++/* workaround for PPC405 erratum #77 - Mark Hatle, dank. References:
++ http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
++ http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489
++ http://www.kegel.com/xgcc3/ppc405erratum77.html
++ FIXME: using dbct instead of sync would be faster */
++#define __LINUXTHREADS_PPC405_ERR77_SYNC "sync \n\t"
++#else
++#define __LINUXTHREADS_PPC405_ERR77_SYNC
++#endif
++
+ PT_EI int
+ __compare_and_swap (long int *p, long int oldval, long int newval)
+ {
+@@ -50,6 +61,7 @@
+ "0: lwarx %0,0,%1 ;"
+ " xor. %0,%3,%0;"
+ " bne 1f;"
++ __LINUXTHREADS_PPC405_ERR77_SYNC
+ " stwcx. %2,0,%1;"
+ " bne- 0b;"
+ "1: "
+
diff --git a/recipes/glibc/glibc-2.2.5/longjmp-sparc.patch b/recipes/glibc/glibc-2.2.5/longjmp-sparc.patch
new file mode 100644
index 0000000000..8bce091779
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/longjmp-sparc.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h~longjmp-sparc.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 2004-09-03 19:00:39.000000000 -0500
+@@ -48,7 +48,7 @@
+ #define END(name) \
+ .size name, . - name
+
+-#define LOC(name) . ## L ## name
++#define LOC(name) .##L##name
+
+ #ifdef PIC
+ #define SYSCALL_ERROR_HANDLER \
diff --git a/recipes/glibc/glibc-2.2.5/pt-initfini-alpha.patch b/recipes/glibc/glibc-2.2.5/pt-initfini-alpha.patch
new file mode 100644
index 0000000000..22a1cfed17
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/pt-initfini-alpha.patch
@@ -0,0 +1,119 @@
+--- glibc-2.2.5/linuxthreads/sysdeps/alpha/elf/pt-initfini.c.old Fri Jun 6 22:02:08 2003
++++ glibc-2.2.5/linuxthreads/sysdeps/alpha/elf/pt-initfini.c Fri Jun 6 22:02:33 2003
+@@ -37,60 +37,60 @@
+ files, all of which may have different GP values. So we must reload
+ the GP value from crti.o in crtn.o. */
+
+-__asm__ ("
+-
+-#include \"defs.h\"
+-
+-/*@HEADER_ENDS*/
+-
+-/*@_init_PROLOG_BEGINS*/
+- .section .init, \"ax\", @progbits
+- .globl _init
+- .ent _init
+-_init:
+- ldgp $29, 0($27)
+- subq $30, 16, $30
+- lda $27, __pthread_initialize_minimal
+- stq $26, 0($30)
+- stq $29, 8($30)
+- .prologue 1
+- jsr $26, ($27), __pthread_initialize_minimal
+- ldq $29, 8($30)
+- .align 3
+- .end _init
+- .size _init, 0
+-/*@_init_PROLOG_ENDS*/
+-
+-/*@_init_EPILOG_BEGINS*/
+- .section .init, \"ax\", @progbits
+- ldq $26, 0($30)
+- ldq $29, 8($30)
+- addq $30, 16, $30
+- ret
+-/*@_init_EPILOG_ENDS*/
+-
+-/*@_fini_PROLOG_BEGINS*/
+- .section .fini, \"ax\", @progbits
+- .globl _fini
+- .ent _fini
+-_fini:
+- ldgp $29, 0($27)
+- subq $30, 16, $30
+- stq $26, 0($30)
+- stq $29, 8($30)
+- .prologue 1
+- .align 3
+- .end _fini
+- .size _fini, 0
+-/*@_fini_PROLOG_ENDS*/
+-
+-/*@_fini_EPILOG_BEGINS*/
+- .section .fini, \"ax\", @progbits
+- ldq $26, 0($30)
+- ldq $29, 8($30)
+- addq $30, 16, $30
+- ret
+-/*@_fini_EPILOG_ENDS*/
+-
+-/*@TRAILER_BEGINS*/
++__asm__ ("\n\
++\n\
++#include \"defs.h\"\n\
++\n\
++/*@HEADER_ENDS*/\n\
++\n\
++/*@_init_PROLOG_BEGINS*/\n\
++ .section .init, \"ax\", @progbits\n\
++ .globl _init\n\
++ .ent _init\n\
++_init:\n\
++ ldgp $29, 0($27)\n\
++ subq $30, 16, $30\n\
++ lda $27, __pthread_initialize_minimal\n\
++ stq $26, 0($30)\n\
++ stq $29, 8($30)\n\
++ .prologue 1\n\
++ jsr $26, ($27), __pthread_initialize_minimal\n\
++ ldq $29, 8($30)\n\
++ .align 3\n\
++ .end _init\n\
++ .size _init, 0\n\
++/*@_init_PROLOG_ENDS*/\n\
++\n\
++/*@_init_EPILOG_BEGINS*/\n\
++ .section .init, \"ax\", @progbits\n\
++ ldq $26, 0($30)\n\
++ ldq $29, 8($30)\n\
++ addq $30, 16, $30\n\
++ ret\n\
++/*@_init_EPILOG_ENDS*/\n\
++\n\
++/*@_fini_PROLOG_BEGINS*/\n\
++ .section .fini, \"ax\", @progbits\n\
++ .globl _fini\n\
++ .ent _fini\n\
++_fini:\n\
++ ldgp $29, 0($27)\n\
++ subq $30, 16, $30\n\
++ stq $26, 0($30)\n\
++ stq $29, 8($30)\n\
++ .prologue 1\n\
++ .align 3\n\
++ .end _fini\n\
++ .size _fini, 0\n\
++/*@_fini_PROLOG_ENDS*/\n\
++\n\
++/*@_fini_EPILOG_BEGINS*/\n\
++ .section .fini, \"ax\", @progbits\n\
++ ldq $26, 0($30)\n\
++ ldq $29, 8($30)\n\
++ addq $30, 16, $30\n\
++ ret\n\
++/*@_fini_EPILOG_ENDS*/\n\
++\n\
++/*@TRAILER_BEGINS*/\n\
+ ");
diff --git a/recipes/glibc/glibc-2.2.5/pt-initfini-flags.patch b/recipes/glibc/glibc-2.2.5/pt-initfini-flags.patch
new file mode 100644
index 0000000000..e8ba2facfc
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/pt-initfini-flags.patch
@@ -0,0 +1,16 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- glibc-2.2.5/linuxthreads/Makefile~glibc-linuxthreads-2.3.2-initfini
++++ glibc-2.2.5/linuxthreads/Makefile
+@@ -54,7 +54,7 @@
+ extra-objs += crti.o
+ omit-deps += crti
+
+-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions
++CFLAGS-pt-initfini.s = -O1 -g0 -fPIC -fno-inline-functions
+ endif
+
+ librt-tests = ex10 ex11
diff --git a/recipes/glibc/glibc-2.2.5/pt-initfini-sh.patch b/recipes/glibc/glibc-2.2.5/pt-initfini-sh.patch
new file mode 100644
index 0000000000..8c9cdb8ada
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/pt-initfini-sh.patch
@@ -0,0 +1,267 @@
+--- glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c.old Wed May 28 09:29:55 2003
++++ glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c Wed May 28 09:30:11 2003
+@@ -36,134 +36,134 @@
+ * crtn.s puts the corresponding function epilogues
+ in the .init and .fini sections. */
+
+-__asm__ ("
+-
+-#include \"defs.h\"
+-#define SHARED
+-
+-/*@HEADER_ENDS*/
+-
+-/*@TESTS_BEGIN*/
+-
+-/*@TESTS_END*/
+-
+-/*@_init_PROLOG_BEGINS*/
+- .section .init
+- .align 5
+- .global _init
+- .type _init,@function
+-_init:
+- mov.l r12,@-r15
+- mov.l r14,@-r15
+- sts.l pr,@-r15
+-#ifdef SHARED
+- mova .L22,r0
+- mov.l .L22,r12
+- add r0,r12
+- mova .L24,r0
+- mov.l .L24,r1
+- add r0,r1
+- jsr @r1
+- nop
+- mova .L23,r0
+- mov.l .L23,r1
+- add r0,r1
+-#else
+- mov.l .L24,r1
+- jsr @r1
+- nop
+- mov.l .L23,r1
+-#endif
+- jsr @r1
+- mov r15,r14
+- bra 1f
+- nop
+- .align 2
+-#ifdef SHARED
+-.L22:
+- .long _GLOBAL_OFFSET_TABLE_
+-.L23:
+- .long __gmon_start__@PLT
+-.L24:
+- .long __pthread_initialize_minimal@PLT
+-#else
+-.L23:
+- .long __gmon_start__
+-.L24:
+- .long __pthread_initialize_minimal
+-#endif
+- .data
+- .global __fpscr_values
+-__fpscr_values:
+- .long 0
+- .long 0x80000
+- .previous
+-1:
+- ALIGN
+- END_INIT
+-
+-
+-/*@_init_PROLOG_ENDS*/
+-
+-/*@_init_EPILOG_BEGINS*/
+- .section .init
+- mov r14,r15
+- lds.l @r15+,pr
+- mov.l @r15+,r14
+- rts
+- mov.l @r15+,r12
+- END_INIT
+- .section .text
+- .align 5
+- .weak __gmon_start__
+- .type __gmon_start__,@function
+-__gmon_start__:
+- mov.l r14,@-r15
+- mov r15,r14
+- mov r14,r15
+- rts
+- mov.l @r15+,r14
+-
+-/*@_init_EPILOG_ENDS*/
+-
+-/*@_fini_PROLOG_BEGINS*/
+- .section .fini
+- .align 5
+- .global _fini
+- .type _fini,@function
+-_fini:
+- mov.l r12,@-r15
+- mov.l r14,@-r15
+- sts.l pr,@-r15
+-#ifdef SHARED
+- mova .L27,r0
+- mov.l .L27,r12
+- add r0,r12
+-#endif
+- mov r15,r14
+- ALIGN
+- END_FINI
+-#ifdef SHARED
+- bra 1f
+- nop
+- .align 2
+-.L27:
+- .long _GLOBAL_OFFSET_TABLE_
+-#endif
+-1:
+-/*@_fini_PROLOG_ENDS*/
+-
+-/*@_fini_EPILOG_BEGINS*/
+- .section .fini
+- mov r14,r15
+- lds.l @r15+,pr
+- mov.l @r15+,r14
+- rts
+- mov.l @r15+,r12
+-
+- END_FINI
+-
+-/*@_fini_EPILOG_ENDS*/
+-
+-/*@TRAILER_BEGINS*/
++__asm__ ("\n\
++\n\
++#include \"defs.h\"\n\
++#define SHARED\n\
++\n\
++/*@HEADER_ENDS*/\n\
++\n\
++/*@TESTS_BEGIN*/\n\
++\n\
++/*@TESTS_END*/\n\
++\n\
++/*@_init_PROLOG_BEGINS*/\n\
++ .section .init\n\
++ .align 5\n\
++ .global _init\n\
++ .type _init,@function\n\
++_init:\n\
++ mov.l r12,@-r15\n\
++ mov.l r14,@-r15\n\
++ sts.l pr,@-r15\n\
++#ifdef SHARED\n\
++ mova .L22,r0\n\
++ mov.l .L22,r12\n\
++ add r0,r12\n\
++ mova .L24,r0\n\
++ mov.l .L24,r1\n\
++ add r0,r1\n\
++ jsr @r1\n\
++ nop\n\
++ mova .L23,r0\n\
++ mov.l .L23,r1\n\
++ add r0,r1\n\
++#else\n\
++ mov.l .L24,r1\n\
++ jsr @r1\n\
++ nop\n\
++ mov.l .L23,r1\n\
++#endif\n\
++ jsr @r1\n\
++ mov r15,r14\n\
++ bra 1f\n\
++ nop\n\
++ .align 2\n\
++#ifdef SHARED\n\
++.L22:\n\
++ .long _GLOBAL_OFFSET_TABLE_\n\
++.L23:\n\
++ .long __gmon_start__@PLT\n\
++.L24:\n\
++ .long __pthread_initialize_minimal@PLT\n\
++#else\n\
++.L23:\n\
++ .long __gmon_start__\n\
++.L24:\n\
++ .long __pthread_initialize_minimal\n\
++#endif\n\
++ .data\n\
++ .global __fpscr_values\n\
++__fpscr_values:\n\
++ .long 0\n\
++ .long 0x80000\n\
++ .previous\n\
++1:\n\
++ ALIGN\n\
++ END_INIT\n\
++\n\
++ \n\
++/*@_init_PROLOG_ENDS*/\n\
++\n\
++/*@_init_EPILOG_BEGINS*/\n\
++ .section .init\n\
++ mov r14,r15\n\
++ lds.l @r15+,pr\n\
++ mov.l @r15+,r14\n\
++ rts \n\
++ mov.l @r15+,r12\n\
++ END_INIT\n\
++ .section .text\n\
++ .align 5\n\
++ .weak __gmon_start__\n\
++ .type __gmon_start__,@function\n\
++__gmon_start__:\n\
++ mov.l r14,@-r15\n\
++ mov r15,r14\n\
++ mov r14,r15\n\
++ rts \n\
++ mov.l @r15+,r14\n\
++ \n\
++/*@_init_EPILOG_ENDS*/\n\
++\n\
++/*@_fini_PROLOG_BEGINS*/\n\
++ .section .fini\n\
++ .align 5\n\
++ .global _fini\n\
++ .type _fini,@function\n\
++_fini:\n\
++ mov.l r12,@-r15\n\
++ mov.l r14,@-r15\n\
++ sts.l pr,@-r15\n\
++#ifdef SHARED\n\
++ mova .L27,r0\n\
++ mov.l .L27,r12\n\
++ add r0,r12\n\
++#endif\n\
++ mov r15,r14\n\
++ ALIGN\n\
++ END_FINI\n\
++#ifdef SHARED\n\
++ bra 1f\n\
++ nop\n\
++ .align 2\n\
++.L27:\n\
++ .long _GLOBAL_OFFSET_TABLE_\n\
++#endif\n\
++1:\n\
++/*@_fini_PROLOG_ENDS*/\n\
++\n\
++/*@_fini_EPILOG_BEGINS*/\n\
++ .section .fini\n\
++ mov r14,r15\n\
++ lds.l @r15+,pr\n\
++ mov.l @r15+,r14\n\
++ rts \n\
++ mov.l @r15+,r12\n\
++\n\
++ END_FINI\n\
++ \n\
++/*@_fini_EPILOG_ENDS*/\n\
++\n\
++/*@TRAILER_BEGINS*/\n\
+ ");
diff --git a/recipes/glibc/glibc-2.2.5/sh-setjmp-fix.patch b/recipes/glibc/glibc-2.2.5/sh-setjmp-fix.patch
new file mode 100644
index 0000000000..fa2f51aab6
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/sh-setjmp-fix.patch
@@ -0,0 +1,17 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/sh/bits/setjmp.h~sh-setjmp-fix.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/sh/bits/setjmp.h 2004-09-03 19:00:39.000000000 -0500
+@@ -42,7 +42,9 @@
+ } __jmp_buf[1];
+ #endif
+
++#if defined __USE_MISC || defined _ASM
+ #define JB_SIZE (4 * 15)
++#endif
+
+ /* Test if longjmp to JMPBUF would unwind the frame
+ containing a local variable at ADDRESS. */
diff --git a/recipes/glibc/glibc-2.2.5/sprintf-prototype.patch b/recipes/glibc/glibc-2.2.5/sprintf-prototype.patch
new file mode 100644
index 0000000000..47dc672a38
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/sprintf-prototype.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/stdio-common/sprintf.c~sprintf-prototype.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/stdio-common/sprintf.c 2004-09-03 19:00:39.000000000 -0500
+@@ -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;
diff --git a/recipes/glibc/glibc-2.2.5/sscanf.patch b/recipes/glibc/glibc-2.2.5/sscanf.patch
new file mode 100644
index 0000000000..2958b1f8e0
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/sscanf.patch
@@ -0,0 +1,64 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/stdio-common/sscanf.c~sscanf.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/stdio-common/sscanf.c 2004-09-03 19:00:39.000000000 -0500
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc.
++/* Copyright (C) 1991,1995,1996,1998,2002,2003 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
+@@ -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;
+--- glibc-2.2.5/libio/swprintf.c~sscanf.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/libio/swprintf.c 2004-09-03 19:00:39.000000000 -0500
+@@ -1,4 +1,5 @@
+-/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
++/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
++ 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
+@@ -22,10 +23,7 @@
+ /* Write formatted output into S, according to the format string FORMAT. */
+ /* VARARGS3 */
+ int
+-swprintf (s, n, format)
+- wchar_t *s;
+- size_t n;
+- const wchar_t *format;
++swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
+ {
+ va_list arg;
+ int done;
+--- glibc-2.2.5/libio/swscanf.c~sscanf.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/libio/swscanf.c 2004-09-03 19:00:39.000000000 -0500
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
++/* Copyright (C) 1991,1995,1996,1998,1999,2003 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
+@@ -22,9 +22,7 @@
+ /* Read formatted input from S, according to the format string FORMAT. */
+ /* VARARGS2 */
+ int
+-swscanf (s, format)
+- const wchar_t *s;
+- const wchar_t *format;
++swscanf (const wchar_t *s, const wchar_t *format, ...)
+ {
+ va_list arg;
+ int done;
diff --git a/recipes/glibc/glibc-2.2.5/threadparam.patch b/recipes/glibc/glibc-2.2.5/threadparam.patch
new file mode 100644
index 0000000000..dd97838c07
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/threadparam.patch
@@ -0,0 +1,69 @@
+2002-05-21 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/pthread/pthread.h (pthread_create): Rename first parameter.
+ (pthread_cancel): Likewise.
+ * internals.h (__pthread_create_2_1): Likewise.
+ * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads/internals.h,v
+retrieving revision 1.69.2.2
+retrieving revision 1.69.2.3
+diff -u -r1.69.2.2 -r1.69.2.3
+--- libc/linuxthreads/internals.h 2002/03/22 08:30:32 1.69.2.2
++++ libc/linuxthreads/internals.h 2002/08/20 22:01:25 1.69.2.3
+@@ -554,7 +554,7 @@
+ /* Prototypes for compatibility functions. */
+ extern int __pthread_attr_init_2_1 (pthread_attr_t *__attr);
+ extern int __pthread_attr_init_2_0 (pthread_attr_t *__attr);
+-extern int __pthread_create_2_1 (pthread_t *__restrict __thread,
++extern int __pthread_create_2_1 (pthread_t *__restrict __threadp,
+ const pthread_attr_t *__attr,
+ void *(*__start_routine) (void *),
+ void *__restrict __arg);
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/pthread/pthread.h,v
+retrieving revision 1.31
+retrieving revision 1.31.2.1
+diff -u -r1.31 -r1.31.2.1
+--- libc/linuxthreads/sysdeps/pthread/pthread.h 2001/03/15 21:12:31 1.31
++++ libc/linuxthreads/sysdeps/pthread/pthread.h 2002/08/20 22:01:26 1.31.2.1
+@@ -160,7 +160,7 @@
+ /* Create a thread with given attributes ATTR (or default attributes
+ if ATTR is NULL), and call function START_ROUTINE with given
+ arguments ARG. */
+-extern int pthread_create (pthread_t *__restrict __thread,
++extern int pthread_create (pthread_t *__restrict __threadp,
+ __const pthread_attr_t *__restrict __attr,
+ void *(*__start_routine) (void *),
+ void *__restrict __arg) __THROW;
+@@ -588,7 +588,7 @@
+ extern int pthread_setcanceltype (int __type, int *__oldtype) __THROW;
+
+ /* Cancel THREAD immediately or at the next possibility. */
+-extern int pthread_cancel (pthread_t __thread) __THROW;
++extern int pthread_cancel (pthread_t __cancelthread) __THROW;
+
+ /* Test for pending cancellation for the current thread and terminate
+ the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
+===================================================================
+RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h,v
+retrieving revision 1.5
+retrieving revision 1.5.2.1
+diff -u -r1.5 -r1.5.2.1
+--- libc/linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h 2000/08/21 06:48:03 1.5
++++ libc/linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h 2002/08/20 22:01:26 1.5.2.1
+@@ -1,5 +1,5 @@
+ /* Signal handling function for threaded programs.
+- Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
++ Copyright (C) 1998, 1999, 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
+@@ -33,6 +33,6 @@
+ __sigset_t *__restrict __oldmask)__THROW;
+
+ /* Send signal SIGNO to the given thread. */
+-extern int pthread_kill (pthread_t __thread, int __signo) __THROW;
++extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;
+
+ #endif /* bits/sigthread.h */
diff --git a/recipes/glibc/glibc-2.2.5/unwind-arm.patch b/recipes/glibc/glibc-2.2.5/unwind-arm.patch
new file mode 100644
index 0000000000..b44f41aec0
--- /dev/null
+++ b/recipes/glibc/glibc-2.2.5/unwind-arm.patch
@@ -0,0 +1,18 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- glibc-2.2.5/sysdeps/unix/sysv/linux/configure~unwind-arm.patch 2004-09-03 19:00:33.000000000 -0500
++++ glibc-2.2.5/sysdeps/unix/sysv/linux/configure 2004-09-03 19:00:39.000000000 -0500
+@@ -56,6 +56,10 @@
+ arch_minimum_kernel=2.1.100
+ libc_cv_gcc_unwind_find_fde=yes
+ ;;
++ arm*)
++ libc_cv_gcc_unwind_find_fde=yes
++ arch_minimum_kernel=2.0.10
++ ;;
+ i386*)
+ libc_cv_gcc_unwind_find_fde=yes
+ arch_minimum_kernel=2.0.10
diff --git a/recipes/glibc/glibc-2.3.2/10_cvs.patch b/recipes/glibc/glibc-2.3.2/10_cvs.patch
new file mode 100644
index 0000000000..0c3ecdcb40
--- /dev/null
+++ b/recipes/glibc/glibc-2.3.2/10_cvs.patch
@@ -0,0 +1,177118 @@
+--- glibc-2.3.2/CANCEL-FILE-WAIVE 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/CANCEL-FILE-WAIVE 2003-09-02 05:24:58.000000000 -0400
+@@ -0,0 +1,33 @@
++mkdtemp.os
++tmpnam.os
++tmpnam_r.os
++__assert.os
++assert.os
++assert-perr.os
++gconv_builtin.os
++gconv_simple.os
++gconv.os
++iconv.os
++strfmon.os
++strfmon_l.os
++argp-xinl.os
++iofdopen.os
++printf_fp.os
++printf_fphex.os
++printf_size.os
++strxfrm.os
++strxfrm_l.os
++strcoll.os
++strcoll_l.os
++alphasort.os
++alphasort64.os
++set-freeres.os
++btowc.os
++wctob.os
++mblen.os
++strops.os
++wstrops.os
++fmemopen.os
++closedir.os
++hsearch.os
++hsearch_r.os
+--- glibc-2.3.2/ChangeLog 2003-02-28 20:10:14.000000000 -0500
++++ glibc-2.3.2/ChangeLog 2003-09-20 09:40:33.000000000 -0400
+@@ -1,3 +1,5919 @@
++2003-09-19 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/Makefile ($(objpfx)librtld.os): Create link map also for
++ final build to ease quality control.
++
++ * sysdeps/unix/sysv/linux/getcwd.c (__getcwd): If compiled for
++ ld.so, don't include NULL buffer pointer handling.
++
++2003-09-19 Jakub Jelinek <jakub@redhat.com>
++
++ * dlfcn/dlopen.c (dlopen): Add static_link_warning.
++
++2003-09-18 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/memstream.c (open_memstream): Use _IO_init instead of
++ _IO_old_init.
++
++2003-09-17 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/wordexp.c (eval_expr_val): Use strtol since we
++ have to recognize octal and hexadecimal numbers as well. Simplify
++ function, signs are handled in strtol.
++ * posix/wordexp-test.c: Add tests for octal and hexadecimal
++ numbers in arithmetic expressions.
++
++2003-09-17 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/Makefile (distribute): Add tst-alignmod.c.
++ (tests): Add tst-align.
++ (modules-names): Add tst-alignmod.
++ (CFLAGS-tst-align.c, CFLAGS-tst-alignmod.c): Add
++ $(stack-align-test-flags).
++ ($(objpfx)tst-align): Depend on libdl.
++ ($(objpfx)tst-align.out): Depend on tst-alignmod.so.
++ * elf/tst-align.c: New file.
++ * elf/tst-alignmod.c: New file.
++ * misc/Makefile (CFLAGS-tst-tsearch.c): Add $(stack-align-test-flags).
++ * misc/tst-tsearch.c: Include tst-stack-align.h.
++ (stack_align_check): New array.
++ (cmp_fn, walk_action): Use TEST_STACK_ALIGN ().
++ (main): Report error if stack was not enough aligned
++ in cmp_fn or walk_action.
++ * stdlib/Makefile (CFLAGS-tst-qsort.c): Add $(stack-align-test-flags).
++ * stdlib/tst-qsort.c: Include tst-stack-align.h.
++ (align_check): New var.
++ (compare): Use TEST_STACK_ALIGN () macro.
++ (main): Report error if stack was not enough aligned in compare.
++ * sysdeps/i386/i686/Makefile (stack-align-test-flags): Remove
++ unneeded -mpreferred-stack-boundary=4.
++ * sysdeps/x86_64/tst-stack-align.h: New file.
++
++ * libio/memstream.c (_IO_wmem_jumps): Remove unused structure.
++ (_IO_wmem_sync, _IO_wmem_finish): Remove unused functions.
++
++2003-09-17 Philip Blundell <philb@gnu.org>
++
++ * sysdeps/arm/dl-machine.h (CALL_ROUTINE): Deleted.
++ (BX): Define.
++ (ELF_MACHINE_RUNTIME_TRAMPOLINE): Optimise a little.
++
++ * sysdeps/arm/sysdep.h (DO_RET): New.
++
++ * sysdeps/unix/sysv/linux/arm/vfork.S: Add #error if __NR_vfork
++ required but not defined. Improve test of error code.
++
++2003-09-17 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/i386/Makefile (stack-align-test-flags): Add
++ -malign-double -mpreferred-stack-boundary=4.
++
++2003-09-17 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/posix/utimes.c (__utimes): Truncate instead of round.
++ * sysdeps/unix/sysv/linux/utimes.c (__utimes): Likewise.
++
++2003-09-15 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/i386/Makefile (sysdep-CFLAGS): If not in math or csu
++ subdir, add -mpreferred-stack-boundary=4, with few exceptions.
++
++2003-09-17 Jakub Jelinek <jakub@redhat.com>
++
++ * Makeconfig (stack-align-test-flags): Set.
++ * stdlib/Makefile (CFLAGS-tst-bsearch.c): Add
++ $(stack-align-test-flags).
++ * stdlib/tst-bsearch.c: Include tst-stack-align.h.
++ (align_check): New var.
++ (comp): Use TEST_STACK_ALIGN macro.
++ (do_test): Fail if align_check != 1.
++ * sysdeps/generic/tst-stack-align.h: New file.
++ * sysdeps/i386/i686/Makefile (stack-align-test-flags): Add -msse.
++ * sysdeps/i386/i686/tst-stack-align.h: New file.
++
++2003-09-17 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/clone.S: Make sure child gets a
++ stack which is aligned (mod 16).
++
++2003-09-17 Uwe Reimann <Uwe_Reimann@gmx.net>
++ Hans-Peter Nilsson <hp@axis.com>
++
++ * sysdeps/cris/dl-machine.h (elf_machine_type_class): Classify
++ R_CRIS_GLOB_DAT as ELF_RTYPE_CLASS_PLT. Clarify comment.
++
++2003-09-17 Jakub Jelinek <jakub@redhat.com>
++
++ * dirent/scandir.c: Include bits/libc-lock.h.
++ (struct scandir_cancel_struct): New type.
++ (cancel_handler): New function.
++ (SCANDIR): Add __libc_cleanup_{push,pop}, save state into
++ scandir_cancel_struct.
++
++2003-09-16 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/Dist: Remove internal_statvfs.c.
++ * sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
++ Add internal_statvfs.
++ * sysdeps/unix/sysv/linux/fstatvfs.c: Call __internal_statvfs
++ instead of including "internal_statvfs.c".
++ * sysdeps/unix/sysv/linux/statvfs.c: Likewise.
++ * sysdeps/unix/sysv/linux/internal_statvfs.c: Make it a real function.
++ Add code to avoid the stat calls on all the reported mount points
++ when we can determine mismatch in advance.
++ * sysdeps/unix/sysv/linux/linux_fsinfo.h: Add AUTOFS_SUPER_MAGIC and
++ USBDEVFS_SUPER_MAGIC.
++
++2003-09-16 Jakub Jelinek <jakub@redhat.com>
++
++ * posix/Versions (sched_getaffinity, sched_setaffinity): Change
++ from GLIBC_2.3.2 to GLIBC_2.3.3 symbol version.
++
++2003-09-16 Bruno Haible <bruno@clisp.org>
++
++ * intl/tst-gettext2.sh: Set GCONV_PATH and LOCPATH only after
++ invoking msgfmt, not before.
++
++2003-09-15 Jakub Jelinek <jakub@redhat.com>
++
++ * argp/argp.h (argp_parse, __argp_parse): Remove __THROW.
++ * argp/Makefile (CFLAGS-argp-help.c, CFLAGS-argp-parse.c): Add
++ $(uses-callbacks).
++ * dirent/Makefile (CFLAGS-scandir.c, CFLAGS-scandir64.c): Likewise.
++ * elf/Makefile (CFLAGS-dl-iterate-phdr.c,
++ CFLAGS-dl-iterate-phdr-static.c): Add $(uses-callbacks).
++ * elf/dl-iteratephdr.c (cancel_handler): New function.
++ (__dl_iterate_phdr): Add __libc_cleanup_{push,pop}.
++ * elf/link.h (dl_iterate_phdr): Remove __THROW.
++ * io/Makefile (CFLAGS-fts.c): Merge into one assignment.
++ Add $(uses-callbacks).
++ (CFLAGS-ftw.c, CFLAGS-ftw64.c): Add $(uses-callbacks).
++ * misc/Makefile (CFLAGS-tsearch.c, CFLAGS-lsearch.c): Change
++ $(exceptions) to $(uses-callbacks).
++ * Makeconfig (uses-callbacks): Set to $(exceptions).
++ * posix/Makefile (CFLAGS-glob.c, CFLAGS-glob64.c): Add
++ $(uses-callbacks).
++ * stdlib/Makefile (CFLAGS-bsearch.c, CFLAGS-msort.c, CFLAGS-qsort.c):
++ Likewise.
++
++2003-09-15 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/m68k/setjmp.c: Add hidden_def.
++
++2003-09-14 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/memstream.c (open_memstream): Don't allow wide char operations.
++
++ * dirent/dirent.h: Remove __THROW from scandir.
++
++2003-09-14 Philip Blundell <philb@gnu.org>
++
++ * sysdeps/unix/sysv/linux/arm/mmap.S: Use sys_mmap2 if it's known
++ to be available.
++
++ * sysdeps/unix/sysv/linux/arm/mmap64.S: Optimise code a little.
++
++ * sysdeps/arm/memset.S: Rewrite.
++
++2003-09-12 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New.
++ (__SSIZE_T_TYPE): Define to __SWORD_TYPE for gcc 2.95.x and
++ __SLONGWORD_TYPE otherwise.
++
++2003-09-14 Ulrich Drepper <drepper@redhat.com>
++
++ * io/Makefile (CFLAGS-ftw.c): Add -fexceptions.
++ (CFLAGS-ftw64.c): Likewise.
++
++2003-09-13 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/Makefile (CFLAGS-nscd_getpw_r.c): Add -fexceptions.
++ (CFLAGS-nscd_getgr_r.c): Likewise.
++ (CFLAGS-nscd_gethst_r.c): Likewise.
++
++2003-09-12 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/if_index.c: Use only non-cancelable
++ interfaces.
++
++ * grp/Makefile (CFLAGS-getgrgid_r.c, CFLAGS-getgrnam_r.c,
++ CFLAGS-fgetgrent.c, CFLAGS-fgetgrent_r.c, CFLAGS-putgrent.c,
++ CFLAGS-initgroups.c, CFLAGS-getgrgid.c): Add -fexceptions.
++ * inet/Makefile (CFLAGS-either_ntoh.c, CFLAGS-either_hton.c,
++ CFLAGS-getnetgrent.c, CFLAGS-getnetgrent_r.c): Likewise.
++ * io/Makefile (CFLAGS-posix_fallocate.c, CFLAGS-posix_fallocate64.c):
++ Likewise.
++ * misc/Makefile (CFLAGS-err.c): Likewise.
++ * posix/Makefile (CFLAGS-getaddrinfo.c, CFLAGS-spawn.c,
++ CFLAGS-spawnp.c, CFLAGS-spawni.c, CFLAGS-pause.c, CFLAGS-glob.c,
++ CFLAGS-glob64.c): Likewise.
++ * pwd/Makefile (CFLAGS-getpw.c): Likewise.
++ * shadow/Makefile (CFLAGS-fgetspent.c, CFLAGS-fgetspent_r.c,
++ CFLAGS-putspent.c, CFLAGS-getspnam.c, CFLAGS-getspnam_r.c): Likewise.
++ * stdio-common/Makefile (CFLAGS-cuserid.c): Likewise.
++ * sunrpc/Makefile (CFLAGS-openchild.c): Likewise.
++
++ * stdlib/Makefile (CFLAGS-mkstemp.c): Remove definition.
++
++ * libio/stdio.h: Remove __THROW from cuserid prototype.
++
++ * locale/loadarchive.c: Use only non-cancelable interfaces.
++ * resolv/herror.c (herror): Likewise.
++
++ * malloc/hooks.c: Before using IO stream mark stream so it uses
++ only non-cancelable interfaces.
++ * malloc/malloc.c: Likewise.
++ * posix/getopt.c: Likewise.
++
++
++2003-09-11 Jakub Jelinek <jakub@redhat.com>
++
++ * Makerules (LDFLAGS-c.so): Remove -u __register_frame.
++
++2003-09-12 Ulrich Drepper <drepper@redhat.com>
++
++ * stdio-common/stdio_ext.h: Mark most functions with __THROW.
++
++ * misc/err.h: Remove __THROW from all prototypes.
++
++ * posix/getopt.h (__THROW): Define if not already defined. Add
++ __THROW to the getopt functions.
++
++2003-09-11 Ulrich Drepper <drepper@redhat.com>
++
++ * io/Makefile (CFLAGS-lockf.c): Add -fexceptions.
++ (CFLAGS-fts.c): Likewise.
++ * io/fcntl.h: Remove __THROW from lockf prototypes.
++ * io/fts.h: Remove most __THROW.
++
++2003-09-11 H.J. Lu <hongjiu.lu@intel.com>
++
++ * elf/tls-macros.h (TLS_IE): Add a stop bit for ia64.
++ (TLS_LD): Likewise.
++ (TLS_GD): Likewise.
++
++2003-09-11 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/fileops.c (_IO_new_file_overflow): Add INTUSE to
++ _IO_free_backup_area call.
++
++2003-09-10 Chris Demetriou <cgd@broadcom.com>
++
++ * sysdeps/unix/sysv/linux/mips/pread64.c (__libc_pread64): Fix
++ syscall invocation.
++ * sysdeps/unix/sysv/linux/mips/pwrite64.c (__libc_pwrite64): Likewise.
++ * sysdeps/unix/sysv/linux/mips/pread.c (__libc_pread): Likewise.
++ Also, only assert off_t size is 4 for N32 and O32, and clean up
++ white space.
++ * sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Likewise.
++
++2003-09-10 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr):
++ Don't use c_ispeed under [! _HAVE_STRUCT_TERMIOS_C_ISPEED].
++ Don't use c_ospeed under [! _HAVE_STRUCT_TERMIOS_C_OSPEED].
++ * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
++ Reported by Daniel Jacobowitz <drow@mvista.com>.
++
++2003-09-10 Jakub Jelinek <jakub@redhat.com>
++
++ * string/Makefile (strop-tests): Add memccpy.
++ * string/test-memccpy.c: New test.
++
++2003-09-09 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (SIGCONTEXT): Add
++ siginfo_t * argument before, change into struct ucontext *.
++ (SIGCONTEXT_EXTRA_ARGS): Define to _si,.
++ (GET_PC, GET_FRAME, GET_STACK): Adjust for ctx being a pointer
++ instead of structure.
++ * sysdeps/unix/sysv/linux/x86_64/register-dump.h (REGISTER_DUMP):
++ Likewise.
++
++2003-09-09 Ulrich Drepper <drepper@redhat.com>
++
++ * string/stratcliff.c (main): Check memccpy.
++
++2003-04-11 Jes Sorensen <jes@wildopensource.com>
++
++ * sysdeps/ia64/memccpy.S: When recovering for src_aligned and the
++ character is found during recovery, use correct register when
++ determining the position of the found character.
++
++2003-04-01 Jes Sorensen <jes@wildopensource.com>
++
++ * sysdeps/ia64/memccpy.S: Use speculatively loads for readahead to
++ avoid segfaults when reading from unmapped pages. For aligned
++ reload and continue, for misaligned, roll back and use byte copy.
++ Save ar.ec on entry and restore on exit.
++
++2003-09-09 Chris Demetriou <cgd@broadcom.com>
++
++ * sysdeps/unix/mips/sysdep.h (PSEUDO_END): Undef before defining.
++
++2003-09-08 Chris Demetriou <cgd@broadcom.com>
++
++ * sysdeps/mips/mips64/n32/Implies: Move ieee754/ldbl-128 to
++ the top of the list.
++ * sysdeps/mips/mips64/n64/Implies: Likewise.
++
++2003-09-08 Roland McGrath <roland@frob.com>
++
++ * sysdeps/unix/sysv/linux/speed.c
++ (cfsetospeed): Only set c_ospeed under [_HAVE_STRUCT_TERMIOS_C_OSPEED].
++ (cfsetispeed): Only set c_ispeed under [_HAVE_STRUCT_TERMIOS_C_ISPEED].
++ * sysdeps/unix/sysv/linux/bits/termios.h
++ (_HAVE_STRUCT_TERMIOS_C_ISPEED, _HAVE_STRUCT_TERMIOS_C_OSPEED): Define.
++ * sysdeps/unix/sysv/linux/alpha/bits/termios.h: Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
++
++2003-09-08 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/x86_64/register-dump.h: Undo last change.
++ * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h: Likewise.
++
++2003-09-08 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/bits/types.h (__quad_t): Make long int if 64-bit.
++ (__u_quad_t): Make unsigned long int if 64-bit.
++ (__SQUAD_TYPE): Make long int if 64-bit.
++ (__UQUAD_TYPE): Make unsigned long int if 64-bit.
++ * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
++
++2003-09-08 Ulrich Drepper <drepper@redhat.com>
++
++ * Makefile (tests): Run check-c++-types.sh if possible.
++ * scripts/check-c++-types.h: New file.
++ * scripts/data/c++-types-i386-linux-gnu.data: New file.
++
++2003-09-08 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump):
++ Use struct sigcontext.
++
++ * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (SIGCONTEXT):
++ Use struct sigcontext.
++ (GET_PC): Adopt.
++ (GET_FRAME): Likewise.
++ (GET_STACK): Likewise.
++
++2003-09-08 Wolfram Gloger <wg@malloc.de>
++
++ * malloc/malloc.c (sYSMALLOc): Move foreign sbrk accounting into
++ contiguous case. Bug report from Prem Gopalan <prem@mazunetworks.com>.
++ (mALLOPt): Avoid requirement of C99.
++
++2003-09-08 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/bug-ftell.c: Include <sys/types.h>.
++ (main): Mark cp as const.
++
++2003-09-07 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/syscalls.list (fcntl): Remove.
++ * sysdeps/unix/sysv/linux/x86_64/fcntl.c: Remove.
++
++2003-09-05 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Fill in c_ispeed
++ and c_ospeed fields.
++ * sysdeps/unix/sysv/linux/speed.c (cfsetospeed): Set c_ospeed field.
++ (cfsetispeed): Set c_ispeed field.
++ * sysdeps/unix/sysv/linux/tcsetattr.c (IBAUD0): Define unconditionally
++ to match corresponding speed.c code.
++
++2003-09-06 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/wfileops.c (_IO_wfile_underflow): Mark beginning of the
++ narrow character buffer.
++ * libio/Makefile: Add rules to build and run bug-ftell.
++ * libio/bug-ftell.c: New file.
++
++ * stdio-common/vfprintf.c: Don't use the first grouping number twice.
++
++ * stdio-common/vfscanf.c (vfscanf): Fix recognition of characters
++ matching the decimal point and possibly leading the thousands
++ separator. This caused the recognition of thousands separators to
++ always fail.
++
++2003-09-05 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/fileops.c (_IO_new_file_overflow): Handle switching to
++ write mode from read in backup buffer.
++ * libio/Makefile (tests): Add bug-ungetc2.
++ * libio/bug-ungetc2.c: New file.
++
++2003-09-05 Roland McGrath <roland@redhat.com>
++
++ * nss/getXXbyYY.c (FUNCTION_NAME): Remove unused variable.
++
++2003-09-04 Roland McGrath <roland@frob.com>
++
++ * sysdeps/mach/hurd/mmap.c (__mmap): If io_map fails with MIG_BAD_ID,
++ EOPNOTSUPP, or ENOSYS, change it to ENODEV.
++
++2003-09-04 H.J. Lu <hongjiu.lu@intel.com>
++
++ * sysdeps/unix/sysv/linux/ia64/bits/sigstack.h (MINSIGSTKSZ):
++ Fix a typo.
++
++2003-09-05 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/i386/bits/string.h (__memrchr): Do addition in assembler
++ to make it conforming C.
++ * sysdeps/i386/i486/bits/string.h (__memrchr): Likewise.
++
++ * sysdeps/unix/sysv/linux/i386/fcntl.c (__fcntl_nocancel): Change
++ prototype to use variable argument lists and get the possible one
++ argument via va_arg.
++ * sysdeps/unix/sysv/linux/fcntl.c (__fcntl_nocancel): Likewise.
++ * sysdeps/unix/sysv/linux/x86_64/fcntl.c: New.
++
++2003-09-04 Ulrich Drepper <drepper@redhat.com>
++
++ * posix/unistd.h: Add back __THROW to sysconf, pathconf, fpathconf.
++
++ * sysdeps/unix/sysv/linux/pathconf.c (__statfs_filesize_max):
++ Report correct value for vxfs.
++ * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define VXFS_SUPER_MAGIC.
++
++ * gmon/gmon.c: Use only not-cancelable syscalls to write profiling
++ data.
++
++ * sysdeps/generic/utmp_file.c: Use not-cancelable syscalls all
++ over the place. It would be allowed to have these functions as
++ cancellation points but the cleanup would be ugly and a lot of
++ work.
++
++ * sysdeps/generic/not-cancel.h (fcntl_not_cancel): Define.
++ * sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Define.
++
++ * include/fcntl.h (__fcntl_nocancel): Declare.
++ * sysdeps/unix/sysv/linux/fcntl.c: New file.
++ * sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl): Only enable
++ cancellation if absolutely needed.
++ (__fcntl_nocancel): Define.
++
++ * posix/unistd.h (gethostid): Remove __THROW. Clarify comment.
++ * sysdeps/unix/sysv/linux/Makefile (CFLAGS-gethostid.c): Add
++ -fexceptions.
++ * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use
++ extend_alloca.
++
++ * resolv/res_init.c (__res_nclose): Use close_not_cancel_no_status
++ instead of __close.
++
++ * nss/getXXbyYY.c (FUNCTION_NAME): Add a few casts. Remove
++ unnecessary errno handling.
++
++ * nss/getXXbyYY_r.c (INTERNAL): Use better variable name.
++ Initialize it in all cases. Change it to be a bit more like the
++ code we had before.
++
++2003-09-04 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/fileops.c (_IO_file_read, _IO_new_file_write): Add
++ __builtin_expect.
++ (_IO_file_open): Likewise. Use close_not_cancel.
++
++2003-09-04 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/libio.h: Define _IO_FLAGS2_NOTCANCEL.
++ * libio/fileops.c [_LIBC]: Remove close macro.
++ (_IO_file_open): If _IO_FLAGS2_NOTCANCEL is set, use open_not_cancel.
++ (_IO_new_file_open): Recognize 'c' flag in mode string.
++ (_IO_file_read): If _IO_FLAGS2_NOTCANCEL is set use read_not_cancel.
++ (_IO_new_file_write): If _IO_FLAGS2_NOTCANCEL is set use
++ write_not_cancel.
++ * iconv/gconv_conf.c: Use fopen with 'c' mode flag.
++ * inet/rcmd.c: Likewise.
++ * inet/ruserpass.c: Likewise.
++ * intl/localealias.c: Likewise.
++ * malloc/mtrace.c: Likewise.
++ * misc/getpass.c: Likewise.
++ * misc/getttyent.c: Likewise.
++ * misc/mntent_r.c: Likewise.
++ * misc/getusershell.c: Likewise.
++ * nss/nsswitch.c: Likewise.
++ * resolv/res_hconf.c: Likewise.
++ * resolv/res_init.c: Likewise.
++ * sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
++ * time/getdate.c: Likewise.
++ * time/tzfile.c: Likewise.
++ * misc/fstab.h: Undo last change.
++ * misc/mntent.h: Likewise.
++ * misc/Makefile: Remove CFLAGS-mntent_r.c, CFLAGS-mntent.c, and
++ CFLAGS-fstab.c definition.
++
++2003-09-04 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/unwind.h (_Unwind_GetBSP): Add prototype.
++
++2003-09-03 Ulrich Drepper <drepper@redhat.com>
++
++ * nss/getXXbyYY_r.c (INTERNAL): Explicitly set errno and avoid
++ returning ERANGE if this wasn't intended.
++
++2003-09-03 Jakub Jelinek <jakub@redhat.com>
++
++ * intl/loadmsgcat.c (open, close, read, mmap, munmap): Define as
++ function-like macros.
++
++2003-09-03 Ulrich Drepper <drepper@redhat.com>
++
++ * grp/Makefile (CFLAGS-getgrent_r.c): Add -fexceptions.
++ (CFLAGS-getgrent.c): Likewise.
++ * pwd/Makefile (CFLAGS-getpwent_r.c): Add -fexceptions.
++ (CFLAGS-getpwent.c): Likewise.
++ * shadow/Makefile (CFLAGS-getspent_r.c): Add -fexceptions.
++ (CFLAGS-getspent.c): Likewise.
++
++ * inet/Makefile: Add -fexceptions to CFLAGS for the various
++ getXXent and getXXbyYY functions.
++
++ * locale/loadlocale.c: Use not-cancelable variants of open, close,
++ and read.
++
++2003-09-02 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
++ rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo and
++ rt_sigpending.
++ * sysdeps/unix/sysv/linux/alpha/sigaction.c (__syscall_rt_sigaction):
++ New prototype.
++ * sysdeps/unix/sysv/linux/arm/syscalls.list (__syscall_*): Remove
++ unused __syscall_ stubs.
++ * sysdeps/unix/sysv/linux/arm/Makefile (sysdep_routines): Remove
++ rt_*.
++ * sysdeps/unix/sysv/linux/cris/Makefile: Removed.
++ * sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
++ (__syscall_recvfrom, __syscall_sendto): Remove unused aliases.
++ * sysdeps/unix/sysv/linux/mips/syscalls.list (__syscall_*): Remove
++ unused __syscall_ stubs.
++ * sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Remove rt_*.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
++ (__syscall_*): Remove unused __syscall_ stubs.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
++ (__syscall_*): Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/Makefile (sysdep_routines): Remove
++ rt_*.
++ * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__syscall_*):
++ Remove unused __syscall_ stubs.
++ * sysdeps/unix/sysv/linux/sh/Makefile (sysdep_routines): Remove rt_*.
++ * sysdeps/unix/sysv/linux/rt_sigaction.c: Removed.
++ * sysdeps/unix/sysv/linux/rt_sigpending.c: Removed.
++ * sysdeps/unix/sysv/linux/rt_sigprocmask.c: Removed.
++ * sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: Removed.
++ * sysdeps/unix/sysv/linux/rt_sigreturn.c: Removed.
++ * sysdeps/unix/sysv/linux/rt_sigsuspend.c: Removed.
++ * sysdeps/unix/sysv/linux/rt_sigtimedwait.c: Removed.
++ * sysdeps/unix/sysv/linux/s_pread64.c: Removed.
++ * sysdeps/unix/sysv/linux/s_pwrite64.c: Removed.
++ * sysdeps/unix/sysv/linux/alpha/gethostname.c: Remove unused
++ __syscall_* prototypes.
++ * sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/msgctl.c: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise.
++ * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/fchown.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getegid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getgid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getmsg.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getresgid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getresuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/getuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/lchown.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/lockf64.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/putmsg.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setgid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setgroups.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setregid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setresgid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setresuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/fxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/lxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/sigpending.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/sigprocmask.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/sigsuspend.c: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/xstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/m68k/chown.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/ftruncate64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/truncate64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/ustat.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/ioctl.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/xstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/fxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/lxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c: Likewise.
++ * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/pwrite.c: Likewise.
++ * sysdeps/unix/sysv/linux/execve.c: Likewise.
++ * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise.
++ * sysdeps/unix/sysv/linux/reboot.c: Likewise.
++ * sysdeps/unix/sysv/linux/_exit.c: Likewise.
++ * sysdeps/unix/sysv/linux/ftruncate64.c: Likewise.
++ * sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
++ * sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
++ * sysdeps/unix/sysv/linux/gai_sigqueue.c: Likewise.
++ * sysdeps/unix/sysv/linux/readahead.c: Likewise.
++ * sysdeps/unix/sysv/linux/getcwd.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigwait.c: Likewise.
++ * sysdeps/unix/sysv/linux/getdents.c: Likewise.
++ * sysdeps/unix/sysv/linux/readv.c: Likewise.
++ * sysdeps/unix/sysv/linux/getpriority.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigaction.c: Likewise.
++ * sysdeps/unix/sysv/linux/ipc_priv.h: Likewise.
++ * sysdeps/unix/sysv/linux/llseek.c: Likewise.
++ * sysdeps/unix/sysv/linux/sysctl.c: Likewise.
++ * sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mmap64.c: Likewise.
++ * sysdeps/unix/sysv/linux/ustat.c: Likewise.
++ * sysdeps/unix/sysv/linux/poll.c: Likewise.
++ * sysdeps/unix/sysv/linux/pread64.c: Likewise.
++ * sysdeps/unix/sysv/linux/writev.c: Likewise.
++ * sysdeps/unix/sysv/linux/pread.c: Likewise.
++ * sysdeps/unix/sysv/linux/ptrace.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigpending.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigqueue.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
++ * sysdeps/unix/sysv/linux/truncate64.c: Likewise.
++ * sysdeps/unix/sysv/linux/xmknod.c: Likewise.
++ * sysdeps/unix/sysv/linux/xstat64.c: Likewise.
++
++2003-09-02 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Revert last change.
++ * sysdeps/unix/sysv/linux/powerpc/syscalls.list: New file.
++ * sysdeps/unix/sysv/linux/sparc/syscalls.list: New file.
++
++2003-09-02 Ulrich Drepper <drepper@redhat.com>
++
++ * stdio-common/Makefile (CFLAGS-vprintf.c): Add -fexceptions.
++
++ * intl/loadmsgcat.c: For _LIBC, call not cancelable versions of
++ open, close, and read.
++
++ * sysdeps/unix/sysv/linux/i386/sysdep.h (PSEUDO): Also define
++ *_nocancel name.
++
++ * sysdeps/unix/sysv/linux/i386/syscalls.list: Add waitpid.
++
++ * libio/Makefile (CFLAGS-oldtmpfile.c): Add -fexceptions.
++ * sysdeps/generic/tmpfile.c (tmpfile): Use __unlink instead of remove.
++ * libio/oldtmpfile.c (__old_tmpfile): Likewise.
++
++ * misc/Makefile (CFLAGS-getusershell.c): Add -fexceptions.
++
++ * io/Makefile (CFLAGS-statfs.c): Add -fexceptions.
++ (CFLAGS-fstatfs.c): Likewise.
++ (CFLAGS-statvfs.c): Likewise.
++ (CFLAGS-fstatvfs.c): Likewise.
++
++2003-09-01 Ulrich Drepper <drepper@redhat.com>
++
++ * misc/Makefile (CFLAGS-getsysstats.c): Add -fexceptions.
++ * posix/unistd.h: Remove __THROW from pathconf, fpathconf,
++ sysconf.
++ * posix/Makefile (CFLAGS-sysconf.c): Add -fexceptions.
++ (CFLAGS-pathconf.c): Likewise.
++ (CFLAGS-fpathconf.c): Likewise.
++
++ * misc/Makefile (CFLAGS-fstab.c): Add -fexceptions.
++ * misc/fstab.h: Remove all __THROW.
++ * misc/Makefile (CFLAGS-mntent.c): Add -fexceptions.
++ (CFLAGS-mntent_r.c): Likewise.
++ * misc/mntent.h: Remove most __THROW.
++
++ * misc/Makefile (CFLAGS-mkstemp.c): Add -fexceptions.
++ (CFLAGS-mkstemp64.c): Likewise.
++
++ * sysdeps/generic/wordexp.c (parse_comm): Disable cancellation
++ around call to exec_comm.
++ * posix/wordexp.h: Remove __THROW from wordexp.
++ * posix/Makefile (CFLAGS-wordexp.c): Add -fexceptions.
++
++ * sysdeps/unix/sysv/linux/getloadavg.c (getloadavg): Use
++ not-cancelable functions.
++
++ * libio/Makefile (CFLAGS-oldiofopen.c): Add -fexceptions.
++ (CFLAGS-iofopen.c): Likewise.
++ (CFLAGS-iofopen64.c): Likewise.
++
++ * stdlib/fmtmsg.c (fmtmsg): Disable cancellation around output
++ functions.
++ * stdlib/Makefile (CFLAGS-fmtmsg.c): Add -fexceptions.
++ * stdlib/fmtmsg.h: Remove __THROW from fmtmsg.
++
++ * stdlib/stdlib.h: Remove __THROW from posix_openpt and getpt.
++ * login/Makefile (CFLAGS-getpt.c): Add -fexceptions.
++
++2003-09-01 Thorsten Kukuk <kukuk@suse.de>
++
++ * nis/nss_compat/compat-spwd.c (getspnam_plususer): Return
++ NSS_STATUS_SUCCESS if entry was found.
++ (getspent_next_file): Store user in blacklist after entry
++ was found, use innetgr.
++
++2003-09-01 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise.c: New.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/posix_fadvise64.c: New.
++
++ * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Fix tls offset
++ computation for TCB_AT_TP. Support l_firstbyte_offset != 0 for
++ DTV_AT_TP, optimize.
++
++2003-08-31 Kaz Kojima <kkojima@rr.iij4u.or.jp>
++
++ * sysdeps/unix/sysv/linux/sh/Versions: Add posix_fadvise64 and
++ posix_fallocate64 at GLIBC_2.3.3.
++ * sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO_ERRVAL): Define.
++ (PSEUDO_END_ERRVAL, ret_ERRVAL): Likewise.
++
++2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
++
++ * sysdeps/unix/sysv/linux/ia64/syscalls.list: Remove __syscall_
++ functions.
++
++2003-08-31 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/libioP.h (_IO_acquire_lock_fct): Define as inline function.
++ Code by Richard Henderson.
++
++2003-08-31 Philip Blundell <philb@gnu.org>
++
++ * sysdeps/unix/sysv/linux/arm/Versions: Add posix_fadvise64 and
++ posix_fallocate64 at GLIBC_2.3.3.
++
++2003-08-31 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/x86_64/bsd-_setjmp.S: Use HIDDEN_JUMPTARGET.
++ * include/setjmp.h: Add libc_hidden_proto for __sigsetjmp.
++
++2003-08-30 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/sysdep.h (cfi_window_save, CFI_WINDOW_SAVE): Define.
++ * sysdeps/unix/sysv/linux/sparc/bits/setjmp.h: Allow file to be
++ included multiple times.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Pass
++ ptid, tls, ctid arguments to the kernel.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/getpagesize.c (__getpagesize):
++ Use INTERNAL_SYSCALL instead of __syscall_getpagesize.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
++ (__libc_sigaction): Use INLINE_SYSCALL instead of
++ __syscall_rt_sigaction.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
++ (__syscall_getgroups, __syscall_getpagesize, __syscall__llseek,
++ __syscall_setfsgid, __syscall_setfsuid, __syscall_setgid,
++ __syscall_setgroups, __syscall_setregid, __syscall_setreuid,
++ __syscall_ipc, __syscall_setuid, __syscall_rt_sigaction,
++ __syscall_rt_sigpending, __syscall_rt_sigprocmask,
++ __syscall_rt_sigqueueinfo, __syscall_rt_sigsuspend,
++ __syscall_rt_sigtimedwait): Remove unneeded syscall stubs.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile (sysdep_routines):
++ Remove rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait,
++ rt_sigqueueinfo, rt_sigaction and rt_sigpending.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
++ (__CLONE_SYSCALL_STRING): Define.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S (__socket): Add
++ CFI directives.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
++ (__CLONE_SYSCALL_STRING): Define.
++ * sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_CLONE_SYSCALL):
++ Define.
++ * sysdeps/unix/sysv/linux/sparc/system.c: New file.
++
++2003-08-30 Ulrich Drepper <drepper@redhat.com>
++
++ * sunrpc/rpc/clnt.h: Remove a few __THROW.
++ * sunrpc/Makefile (CFLAGS-auth_unix.c): Add -fexceptions.
++ (CFLAGS-key_call.c): Likewise.
++ (CFLAGS-pmap_rmt.c): Likewise.
++ (CFLAGS-clnt_perr.c): Likewise.
++ * sunrpc/rpc/auth.h: Remove serveral __THROW.
++
++ * inet/Makefile (CFLAGS-gethstbyad_r.c): Add -fexceptions.
++ (CFLAGS-gethstbynm_r.c): Likewise.
++ (CFLAGS-gethstbynm2_r.c): Likewise.
++ (CFLAGS-rcmd.c): Likewise.
++ * resolv/Makefile (CFLAGS-res_hconf.c): Add -fexceptions.
++
++ * argp/Makefile (CFLAGS-argp-help.c): Add -fexceptions.
++ (CFLAGS-argp-fmtstream.c): Likewise.
++ * argp/argp.h: Remove a number of __THROW.
++
++ * misc/sys/syslog.h (vsyslog): Remove __THROW.
++
++ * misc/Makefile (CFLAGS-getpass.c): Add -fexceptions.
++ * misc/getpass.c (getpass): Add cleanup handler to ensure the
++ stream is closed even if the thread is canceled.
++ (call_fclose): New function.
++ * posix/unistd.h: Remove __THROW from getpass prototype.
++
++ * posix/Makefile (CFLAGS-getopt.c): Add -fexceptions.
++
++ * signal/signal.h (psignal): Remove __THROW.
++ * stdio-common/Makefile (CFLAGS-psignal.c): Add -fexceptions.
++
++ * misc/Makefile (CFLAGS-error.c): Define.
++ * misc/error.c (error): Disable cancellation handling around the
++ actual output. The message should in any case be printed.
++ (error_at_line): Likewise.
++
++ * misc/error.h: Protect parameter names with leading __.
++
++2003-08-28 Carlos O'Donell <carlos@baldric.uwo.ca>
++
++ * sysdeps/unix/sysv/linux/hppa/syscalls.list: Add semtimedop.
++
++2003-08-29 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/iofgetpos64.c (_IO_new_fgetpos64): Move lock release to the
++ end.
++
++2003-08-29 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/stdio.h: Remove a few more __THROW.
++
++2003-08-29 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/Makefile: Compile fputc.c, fputwc.c, freopen64.c, freopen.c,
++ fseek.c, fseeko64.c, fseeko.c, ftello64.c, ftello.c, fwide.c, getc.c,
++ getchar.c, getwc.c, getwchar.c, iofclose.c, iofflush.c, iofgetpos64.c,
++ iofgetpos.c, iofgets.c, iofgetws.c, iofputs.c, iofputws.c, iofread.c,
++ iofsetpos64.c, iofsetpos.c, ioftell.c, iofwrite.c, iogetdelim.c,
++ iogetline.c, iogets.c, iogetwline.c, ioputs.c, ioseekoff.c,
++ ioseekpos.c, iosetbuffer.c, iosetvbuf.c, ioungetc.c, ioungetwc.c,
++ oldfileops.c, oldiofclose.c, oldiofgetpos64.c, oldiofgetpos.c,
++ oldiofsetpos64.c, oldiofsetpos.c, peekc.c, putc.c, putchar.c, putwc.c,
++ putwchar.c and rewind.c with exceptions.
++ * sysdeps/generic/bits/stdio-lock.h (_IO_acquire_lock,
++ _IO_release_lock): Define.
++ * libio/fileops.c (_IO_new_file_underflow): Use it.
++ * libio/fputc.c (fputc): Likewise.
++ * libio/fputwc.c (fputwc): Likewise.
++ * libio/freopen64.c (freopen64):
++ * libio/freopen.c (freopen): Likewise.
++ * libio/fseek.c (fseek): Likewise.
++ * libio/fseeko64.c (fseeko64): Likewise.
++ * libio/fseeko.c (fseeko): Likewise.
++ * libio/ftello64.c (ftello64): Likewise.
++ * libio/ftello.c (ftello): Likewise.
++ * libio/fwide.c (fwide): Likewise.
++ * libio/getc.c (_IO_getc): Likewise.
++ * libio/getchar.c (getchar): Likewise.
++ * libio/getwc.c (_IO_getwc): Likewise.
++ * libio/getwchar.c (getwchar): Likewise.
++ * libio/iofclose.c (_IO_new_fclose):
++ * libio/iofflush.c (_IO_fflush): Likewise.
++ * libio/iofgetpos64.c (_IO_new_fgetpos64): Likewise.
++ * libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
++ * libio/iofgets.c (_IO_fgets): Likewise.
++ * libio/iofgetws.c (fgetws): Likewise.
++ * libio/iofputs.c (_IO_fputs): Likewise.
++ * libio/iofputws.c (fputws): Likewise.
++ * libio/iofread.c (_IO_fread): Likewise.
++ * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise.
++ * libio/iofsetpos.c (_IO_new_fsetpos): Likewise.
++ * libio/ioftell.c (_IO_ftell): Likewise.
++ * libio/iofwrite.c (_IO_fwrite): Likewise.
++ * libio/iogetdelim.c (_IO_getdelim): Likewise.
++ * libio/iogets.c (_IO_gets): Likewise.
++ * libio/ioputs.c (_IO_puts): Likewise.
++ * libio/ioseekoff.c (_IO_seekoff): Likewise.
++ * libio/ioseekpos.c (_IO_seekpos): Likewise.
++ * libio/iosetbuffer.c (_IO_setbuffer): Likewise.
++ * libio/iosetvbuf.c (_IO_setvbuf): Likewise.
++ * libio/ioungetc.c (_IO_ungetc): Likewise.
++ * libio/ioungetwc.c (ungetwc): Likewise.
++ * libio/oldiofclose.c (_IO_old_fclose): Likewise.
++ * libio/oldiofgetpos64.c (_IO_old_fgetpos64): Likewise.
++ * libio/oldiofgetpos.c (_IO_old_fgetpos): Likewise.
++ * libio/oldiofsetpos64.c (_IO_old_fsetpos64): Likewise.
++ * libio/oldiofsetpos.c (_IO_old_fsetpos): Likewise.
++ * libio/peekc.c (_IO_peekc_locked): Likewise.
++ * libio/putc.c (_IO_putc): Likewise.
++ * libio/putchar.c (putchar): Likewise.
++ * libio/putwc.c (putwc): Likewise.
++ * libio/putwchar.c (putwchar): Likewise.
++ * libio/rewind.c (rewind): Likewise.
++ * libio/wfileops.c (_IO_wfile_underflow): Likewise.
++
++2003-08-29 Ulrich Drepper <drepper@redhat.com>
++
++ * signal/signal.h: sighold, sigrelse, sigignore, sigset were
++ available in XPG4.2.
++
++2003-08-27 Phil Knirsch <pknirsch@redhat.com>
++ Jakub Jelinek <jakub@redhat.com>
++
++ * sunrpc/svc.c (svc_getreqset): Fix fds_bits reading on 64-bit
++ big endian arches. Don't read beyond end of fds_bits array.
++
++2003-04-27 Bruno Haible <bruno@clisp.org>
++
++ * manual/message.texi (Advanced gettext functions): Add information
++ about Korean, Portuguese, Latvian. Gaeilge is also known as Irish.
++ Add section about Lithuanian, reported by Ricardas Cepas
++ <rch@richard.eu.org>.
++ Add information about Croatian.
++ Ukrainian is like Russian, reported by Andy Rysin <arysin@yahoo.com>.
++ Remove remark about continuation lines that is not true for PO files.
++ Fix formula for Slovenian, reported by Roman Maurer
++ <roman.maurer@amis.net>.
++
++2003-08-27 Ulrich Drepper <drepper@redhat.com>
++
++ * math/math_private.h: Declare __copysignf.
++ * sysdeps/ieee754/flt-32/s_scalbnf.c: Use __copysignf instead of
++ copysignf.
++
++ * sysdeps/x86_64/fpu/bits/mathinline.h: Define __signbitf,
++ __signbit, and __signbitl inline functions.
++
++ * sysdeps/unix/sysv/linux/x86_64/__start_context.S: Use
++ HIDDEN_JUMPTARGET instead of JUMPTARGET to call exit().
++
++ * sysdeps/x86_64/bsd-_setjmp.S [PIC]: Jump to __GI___sigsetjmp.
++ * sysdeps/x86_64/setjmp.S: Add libc_hidden_def for __sigsetjmp.
++
++2003-08-27 Jakub Jelinek <jakub@redhat.com>
++
++ * inet/inet_mkadr.c (inet_makeaddr): Optimize.
++
++2003-08-27 Ulrich Drepper <drepper@redhat.com>
++
++ * include/stdio.h: Add declarations for __builtin_fwrite and
++ __builtin_fwrite_unlocked.
++
++2003-08-27 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/opendir.c (__opendir): Make sure even struct dirent64
++ fits into allocation. Add padding on 32-bit arches so that
++ dirp->data is enough aligned for struct dirent64.
++ Avoid clearing of the buffer, just clear DIR structure.
++
++2003-08-26 Ulrich Drepper <drepper@redhat.com>
++
++ * nss/nsswitch.c: Add libc_hidden_def for __nss_lookup_function.
++ * nss/nsswitch.h: Add libc_hidden_proto for __nss_lookup_function.
++
++2003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/elf/Makefile: New file.
++
++2003-08-26 Jakub Jelinek <jakub@redhat.com>
++
++ * login/programs/utmpdump.c (print_entry): Cast tv_usec to long
++ to match format string.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c (union semun): Add
++ __old_buf.
++ (__new_semctl): Shut up warning.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h
++ (_dl_string_hwcap): Add __attribute__ ((always_inline)).
++
++2003-08-26 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/ldconfig.c (search_dir): When checking for GNU-style .so
++ link file use the real file name, not the resolved name we got by
++ following the symlinks.
++
++2003-08-25 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/oldfileops.c (_IO_old_file_init): Initialize _mode field
++ if the object size is large enough.
++
++2003-08-25 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/ldconfig.c (search_dir): Treat symlink as regular file
++ if it won't point to itself unless it is .so symlink for the linker.
++
++2003-08-25 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/libio.h (_IO_fwide): In the mode==0 optimization, don't
++ use _mode if _IO_fwide_maybe_incompatible.
++ * libio/iofwide.c (_IO_fwide): Move the test for mode == 0 after
++ the compatibility test.
++
++2003-08-25 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/cache.c (save_cache): Don't write beyond end of file_entries
++ buffer.
++ Duplicate last old cache entry if the count would be odd.
++
++2003-08-25 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/posix_fadvise64.c: Cast arguments of
++ __LONG_LONG_PAIR to long.
++
++2003-08-25 Philip Blundell <philb@gnu.org>
++
++ * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_ERRVAL): Define.
++ (PSEUDO_END_ERRVAL, ret_ERRVAL): Likewise.
++
++2003-08-18 Alfred M. Szmidt <ams@kemisten.nu>
++
++ * sysdeps/generic/bits/libc-lock.h (__libc_cleanup_pop): Redefine
++ and use __libc_cleanup_region_end instead.
++
++2003-08-25 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/ldconfig.c (search_dir): Revert patch of 2003-7-21.
++
++2003-08-22 Ulrich Drepper <drepper@redhat.com>
++
++ * io/fcntl.h (posix_fallocate): Change type of third parameter to
++ off_t.
++ (posix_fallocate64): Change type of third parameter to off64_t.
++ * sysdeps/generic/posix_fallocate.c: Adjust for type change.
++ * sysdeps/posix/posix_fallocate.c: Likewise.
++ * sysdeps/generic/posix_fallocate64.c: Likewise.
++ * sysdeps/posix/posix_fallocate64.c: Likewise. Add compatibility
++ code for 32-bit platforms.
++ * sysdeps/unix/sysv/linux/i386/Versions: Add new version for
++ posix_fallocate64.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise.
++
++2003-08-19 Ulrich Drepper <drepper@redhat.com>
++
++ * string/bits/string2.h (__STRING2_COPY_TYPE): Add attribute to
++ the type, not to name.
++
++ * stdio-common/test-vfprintf.c (main): Don't write temporary file
++ into source directory.
++
++ * malloc/malloc.c (_int_free): Add cheap test for some invalid
++ block sizes.
++
++ * sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: Fix typo in
++ syscall name.
++
++2003-08-18 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/shm_open.c (shm_open): Fold EISDIR error
++ into EINVAL.
++
++2003-08-18 H.J. Lu <hongjiu.lu@intel.com>
++
++ * sysdeps/ia64/dl-machine.h (elf_machine_rela): Use _dl_reloc_bad_type.
++ (elf_machine_lazy_rel): Likewise.
++
++2003-08-18 Art Haas <ahaas@airmail.net>
++
++ * malloc/malloc.h: Remove unneeded ';' where closing the C++
++ extern block.
++
++2003-08-18 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/ia64/dl-fptr.h (ELF_MACHINE_LOAD_ADDRESS): Support
++ loading big binaries where @gprel(sym) cannot be handled in 'add'
++ but instead has to be used with 'movl'.
++
++2003-08-17 Juergen Kreileder <jk@blackdown.de>
++ Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/x86_64/bits/byteswap.h: New file.
++
++2003-08-17 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: Fix typo.
++
++2003-08-16 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_ERRVAL,
++ PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
++ * sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_ERRVAL,
++ PSEUDO_RET_ERRVAL, ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
++ * sysdeps/unix/alpha/sysdep.h (PSEUDO_ERRVAL,
++ ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
++ * sysdeps/unix/mips/sysdep.h (PSEUDO_ERRVAL,
++ ret_ERRVAL, PSEUDO_END_ERRVAL): Define.
++ * sysdeps/unix/sparc/sysdep.h (PSEUDO_ERRVAL,
++ ret_ERRVAL): Define.
++ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO_ERRVAL,
++ PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
++ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (PSEUDO_ERRVAL,
++ PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (PSEUDO_ERRVAL):
++ Define.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (PSEUDO_ERRVAL,
++ PSEUDO_END_ERRVAL, ret_ERRVAL): Define.
++ * sysdeps/unix/sysdep.h (PSEUDO_END_ERRVAL): Define.
++
++ * sysdeps/unix/sysv/linux/syscalls.list (posix_fadvise64,
++ posix_fadvise64_64): Remove.
++ * sysdeps/unix/sysv/linux/alpha/syscalls.list (posix_fadvise64): Add
++ V flag.
++ * sysdeps/unix/sysv/linux/ia64/syscalls.list (posix_fadvise64):
++ Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
++ (posix_fadvise64): Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
++ (posix_fadvise64): Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
++ (posix_fadvise64): Likewise.
++ * sysdeps/unix/sysv/linux/x86_64/syscalls.list (posix_fadvise64):
++ Likewise.
++ * sysdeps/unix/sysv/linux/i386/posix_fadvise64_64.S: Moved to...
++ * sysdeps/unix/sysv/linux/i386/posix_fadvise64.S: ...here.
++ (__posix_fadvise64_l64): Fix a typo in fadvise64 syscall invocation.
++ (__posix_fadvise64_l32): New function.
++ * sysdeps/unix/sysv/linux/i386/Makefile: Revert last change.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (libc): Export
++ posix_fadvise64@@GLIBC_2.3.3.
++ * sysdeps/unix/sysv/linux/s390/s390-32/Versions (libc): Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (libc): Likewise.
++ * sysdeps/unix/sysv/linux/posix_fadvise.c (posix_fadvise): Return
++ error value.
++ * sysdeps/unix/sysv/linux/posix_fadvise64.c: New file.
++
++ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
++ (SYSCALL_ERROR_HANDLER): Use TLS errno/__libc_errno if USE___THREAD.
++
++2003-08-15 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/sparc/sparc32/dl-machine.h (WEAKADDR): Remove.
++ (elf_machine_matches_host): Remove weak extern stuff.
++ Use GL(dl_hwcap) unconditionally and GL(dl_hwcap_mask) if SHARED.
++ (elf_machine_runtime_setup, sparc_fixup_plt): Remove weak extern
++ stuff. Use GL(dl_hwcap) unconditionally.
++
++2003-08-16 Alan Modra <amodra@bigpond.net.au>
++
++ * sysdeps/powerpc/powerpc64/elf/start.S: Add a nop after
++ __libc_start_main branch.
++
++2003-08-16 Jakub Jelinek <jakub@redhat.com>,
++ Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/generic/posix_fadvise.c (posix_fadvise): Return ENOSYS
++ instead of setting errno.
++ * sysdeps/generic/posix_fadvise64.c (posix_fadvise64): Likewise.
++
++2003-08-16 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/generic/posix_fadvise.c (posix_fadvise): Adjust prototype.
++ * sysdeps/generic/posix_fadvise64.c (posix_fadvise64): Likewise.
++
++2003-08-15 Ulrich Drepper <drepper@redhat.com>
++
++ * io/fcntl.h (posix_fadvise64): Change type of third parameter to
++ off_t.
++ * sysdeps/unix/sysv/linux/posix_fadvise.c: Adjust definition.
++ * sysdeps/unix/make-syscalls.sh: Recognize V prefix to the parameter
++ description indicating the error value is returned, not -1.
++ * sysdeps/unix/sysv/linux/kernel-features.h: Add definition of
++ __ASSUME_FADVISE64_64_SYSCALL.
++ * sysdeps/unix/sysv/linux/syscalls.list: Don't define madvise and
++ posix_madvise in one file. Have posix_madvise defined with error
++ value returned.
++ Define posix_fadvise64_64 entry. Add version info to posix_fadvise64
++ entry.
++ * sysdeps/unix/sysv/linux/i386/posix_fadvise.S: New file.
++ * sysdeps/unix/sysv/linux/i386/sysdep.h: Define PSEUDO_ERRVAL,
++ PSEUDO_END_ERRVAL, and ret_ERRVAL.
++ * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/i386/Versions [GLIBC_2.3.3]: Add
++ posix_fadvise64.
++
++ * posix/Makefile (routines): Add posix_madvise.
++ * sysdeps/generic/madvise.c: Don't define posix_madvise.
++ * sysdeps/generic/posix_madvise.c: New file.
++ * sysdeps/unix/sysv/aix/posix_madvise.c: New file.
++ * sysdeps/unix/sysv/linux/i386/Makefile [subdir=io] (subdir_routines):
++ Add posix_fadvise64_64.
++
++2003-08-15 Jakub Jelinek <jakub@redhat.com>
++
++ * assert/assert.h (assert_perror): Use __builtin_expect for gcc >=
++ 3.0, not for !gcc or gcc < 3.0.
++
++2003-08-11 Carlos O'Donell <carlos@baldric.uwo.ca>
++
++ * dlfcn/default.c (main): Cast dlsym loaded value to same type as main.
++ Address passed to test_in_mod1 and test_in_mod2 without casting.
++ * dlfcn/defaultmod1.c: Change prototype of test_in_mod1.
++ (test_in_mod1): Cast dlsym loaded value to same type as mainp.
++ * dlfcn/defaultmod2.c: Change prototype of test_in_mod2.
++ (test_in_mod2): Cast dlsym loaded value to same type as mainp.
++
++2003-08-15 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/sparc/sparc32/elf/configure.in (libc_cv_sparc32_tls):
++ Change quotes before using [].
++
++ * sysdeps/unix/sysv/linux/sparc/sys/user.h: New file.
++
++ * sysdeps/sparc/sparc32/bits/atomic.h (__sparc32_atomic_lock):
++ Renamed to...
++ (__sparc32_atomic_locks): ...this. Change into 64-byte array.
++ (__sparc32_atomic_do_lock, __sparc32_atomic_do_unlock): Add addr
++ argument. Select one of 64 locks from address bits.
++ (atomic_compare_and_exchange_val_acq,
++ atomic_compare_and_exchange_bool_acq): Pass memory address to
++ __sparc32_atomic_do_{,un}lock.
++
++2003-08-14 Ulrich Drepper <drepper@redhat.com>
++
++ * assert/assert.h (assert): Use !! in front of expression to allow
++ use of pointers.
++
++ * iconvdata/cp932.c: Fixed checking of a few border of code areas.
++ Changed conversion of JIS X 0201 from using a table to calculating.
++ * iconvdata/euc-jp-ms.c: Fixed conversion table and rewrote
++ conversion routine. Changed CHARSET_NAME definition from EUCJP-MS to
++ EUC-JP-MS.
++ * iconvdata/tst-tables.sh: Add CP932 and EUC-JP-MS.
++ * iconvdata/CP932.irreversible: New file.
++ * iconvdata/EUC-JP-MS.irreversible: New file.
++ Patch by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>.
++
++2003-08-13 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/syscalls.list: Add time syscall.
++
++ * elf/Makefile: Use LC_ALL=C in a few cases where we call external
++ text processing tools.
++
++ * sysdeps/pthread/aio_misc.h (struct waitlist): Don't add caller_pid
++ element unless BROKEN_THREAD_SIGNALS is defined.
++ (struct requestlist): Likewise.
++ * sysdeps/pthread/aio_misc.c (__aio_enqueue_request): Don't fill in
++ caller_pid of new request unless BROKEN_THREAD_SIGNALS is defined.
++ * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
++ * sysdeps/pthread/aio_notify.c (__aio_notify_only): Remove caller_pid
++ parameter unless BROKEN_THREAD_SIGNALS is defined. Adjust callers.
++ Pass current PID to __aio_sigqueue.
++ * sysdeps/pthread/lio_listio.c (lio_listio): Adjust __aio_notify_only
++ call. Don't initialize caller_pid field of waitlist element.
++
++2003-08-12 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/libioP.h (_IO_vtable_offset): Define.
++ * libio/freopen.c (freopen): Use it.
++ * libio/ioputs.c (_IO_puts): Likewise.
++ * libio/freopen64.c (freopen64): Likewise.
++ * libio/genops.c (__underflow, __uflow, _IO_flush_all_lockp):
++ Likewise.
++ * libio/iofclose.c (_IO_new_fclose): Likewise.
++ * libio/iofputs.c (_IO_fputs): Likewise.
++ * libio/ioftell.c (_IO_ftell): Likewise.
++ * libio/iofwrite.c (_IO_fwrite): Likewise.
++ * libio/ioseekoff.c (_IO_seekoff_unlocked): Likewise.
++ * libio/iosetbuffer.c (_IO_setbuffer): Likewise.
++ * stdio-common/vfprintf.c (ORIENT, vfprintf): Likewise.
++ * stdio-common/vfscanf.c (ORIENT): Likewise.
++
++2003-08-11 Ulrich Drepper <drepper@redhat.com>
++
++ * assert/assert.h: Use __builtin_expect in assert and
++ assert_perror definitions if possible.
++
++2003-08-07 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/ldsodefs.h (_rtld_global): Add
++ _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
++ * elf/rtld.c (rtld_lock_default_lock_recursive,
++ rtld_lock_default_unlock_recursive): New functions.
++ (dl_main): Initialize _dl_rtld_lock_recursive and
++ _dl_rtld_unlock_recursive.
++
++2003-08-05 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/ldconfig.c (main): Append SLIBDIR and LIBDIR to
++ config_file directories instead of prepending.
++
++2003-08-02 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_CLONE_STOPPED.
++
++2003-08-01 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/bits/libc-lock.h
++ (__libc_cleanup_push,__libc_cleanup_pop): Define even here.
++
++2003-08-01 Roland McGrath <roland@frob.com>
++
++ * sysdeps/mach/hurd/getdents.c: Just use sysdeps/generic/getdents.c.
++
++2003-07-31 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/bits/types.h (__ssize_t): Use __SSIZE_T_TYPE
++ instead of __SWORD_TYPE.
++ * sysdeps/generic/bits/typesizes.h (__SSIZE_T_TYPE): Define.
++ * sysdeps/mach/hurd/bits/typesizes.h (__SSIZE_T_TYPE): Define.
++ * sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h (__SSIZE_T_TYPE):
++ Define.
++ * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__SSIZE_T_TYPE):
++ Define.
++ * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__SSIZE_T_TYPE):
++ Define.
++ * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New file.
++
++ * dlfcn/dlerror.c (once): New.
++ (dlerror): Call __libc_once.
++ (_dlerror_run): Remove once.
++
++ * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h (struct sigcontext):
++ Sync with 2.5.7 and 2.5.73 kernel changes.
++
++ * dlfcn/eval.c (funcall): Add noinline attribute to shut up warnings.
++ * elf/rtld.c (dl_main): Cast ElfW(Addr) arguments with %Zx/%Zd
++ formats to size_t.
++ * elf/dl-lookup.c (_dl_debug_bindings): Likewise.
++ * elf/tst-tls6.c (do_test): Use %zd format for l_tls_modid.
++ * elf/tst-tls8.c (do_test): Use %zd format for modid1 and modid2.
++ * gmon/tst-sprofil.c (main): Add parens to shut up warning.
++ * iconv/tst-iconv3.c (main): Use %td instead of %zd for pointer
++ difference argument.
++ * stdio-common/tst-wc-printf.c (main): Cast arguments with %C
++ format to wint_t.
++ * stdlib/tst-limits.c (main): For WORD_BIT and LONG_BIT, use
++ %d format and cast expected value to int.
++ * sysdeps/generic/libc-start.c (STATIC): Add
++ __attribute__((always_inline) if LIBC_START_MAIN is already defined.
++ * sysdeps/powerpc/fpu/w_sqrt.c (a_nan, a_inf): Change from uint32_t
++ to ieee_float_shape_type.
++ (__sqrt): Avoid type punning.
++ * sysdeps/powerpc/fpu/w_sqrtf.c (a_nan, a_inf): Change from uint32_t
++ to ieee_float_shape_type.
++ (__sqrtf): Avoid type punning.
++ * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Don't define
++ refsym if in dl-conflict.c.
++ * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise.
++ * sysdeps/unix/sysv/linux/i386/semctl.c (union semun): Add __old_buf.
++ (__new_semctl): Shut up warning.
++ * sysdeps/unix/sysv/linux/semctl.c (union semun): Add __old_buf.
++ (__new_semctl): Shut up warning.
++ * sysdeps/unix/sysv/linux/shmctl.c (__new_shmctl): Wrap long lines.
++ Change old into union of __old_shmid_ds and __old_shminfo structs.
++ Adjust all users.
++ * wcsmbs/wcsmbs-tst1.c (main): Cast arguments with %C format to wint_t.
++
++ * sysdeps/unix/sysv/linux/utimes.c (__utimes): Fix actime and
++ modtime computation.
++ * sysdeps/unix/sysv/linux/futimes.c (__futimes): Likewise.
++ * sysdeps/posix/utimes.c (__utimes): Likewise.
++
++2003-07-30 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/dl-reloc.c (_dl_allocate_static_tls): Don't return any value,
++ call dl_signal_error directly. If already relocated, call
++ GL(dl_init_static_tls) directly, otherwise queue it for later.
++ (CHECK_STATIC_TLS): Undo 2003-07-24 change.
++ * elf/rtld.c (dl_main): Initialize GL(dl_init_static_tls).
++ * elf/dl-open.c (dl_open_worker): Call GL_dl_init_static_tls
++ for all static TLS initializations delayed in _dl_allocate_static_tls.
++ * elf/dl-support.c (_dl_init_static_tls): New variable.
++ * include/link.h (struct link_map): Add l_need_tls_init.
++ * sysdeps/generic/ldsodefs.h (_rtld_global): Add _dl_init_static_tls.
++ (_dl_nothread_init_static_tls): New prototype.
++ (_dl_allocate_static_tls): Adjust prototype.
++
++ * elf/tls-macros.h (VAR_INT_DEF): Add alignment directive.
++
++2003-07-31 Alexandre Oliva <aoliva@redhat.com>
++
++ * elf/dynamic-link.h (elf_machine_rel, elf_machine_rela,
++ elf_machine_rel_relative, elf_machine_rela_relative): Don't assume
++ reloc_addr is aligned.
++ * sysdeps/alpha/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rela,
++ elf_machine_rel_relative, elf_machine_rela_relative): Adjust.
++ * sysdeps/cris/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/hppa/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela,
++ elf_machine_rel_relative, elf_machine_rela_relative): Adjust.
++ * sysdeps/ia64/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/m68k/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/mips/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/powerpc/powerpc64/dl-machine.h
++ (elf_machine_rela_relative, elf_machine_rela): Adjust.
++ * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/sh/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++ * sysdeps/x86_64/dl-machine.h (elf_machine_rela,
++ elf_machine_rela_relative): Adjust.
++
++2003-07-29 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Restore
++ alignment of TCB used before the last change so that it matches
++ ld's output for IE code.
++
++2003-07-29 Jakub Jelinek <jakub@redhat.com>
++
++ * include/ctype.h (__ctype_b_loc, __ctype_toupper_loc,
++ __ctype_tolower_loc): Avoid "dereferencing type-punned pointer will
++ break strict-aliasing rules" warnings.
++
++2003-07-29 Roland McGrath <roland@redhat.com>
++
++ * elf/Makefile: Revert accidental changes in last commit.
++ * elf/dl-support.c: Likewise.
++
++ * rt/tst-timer2.c: New file.
++ * rt/Makefile (tests): Add it.
++
++2003-07-25 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/dl-support.c (_dl_hwcap): Add nocommon attribute.
++
++2003-07-29 Roland McGrath <roland@redhat.com>
++
++ * elf/Makefile (tests) [$(build-shared) = yes]:
++ Depend on $(test-modules).
++ * dlfcn/Makefile: Likewise.
++
++2003-07-28 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/generic/bits/types.h (__STD_TYPE): New macro.
++ Use that instead of `typedef' when using __*_TYPE macros in rhs.
++
++ * elf/tst-tls14.c [USE_TLS && HAVE___THREAD]: Conditionalize on this.
++ * elf/tst-tlsmod14a.c: Likewise.
++
++ * sysdeps/unix/sysv/linux/sys/sysctl.h: Include <linux/compiler.h>
++ before <linux/sysctl.h>.
++
++2003-07-27 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/syscalls.list: time syscall never fails.
++ * sysdeps/unix/sysv/linux/x86_64/time.S: time syscall never fails.
++ * sysdeps/unix/sysv/i386/time.S: time syscall never fails.
++ * sysdeps/unix/syscalls.list: umask syscall never fails.
++
++2003-07-27 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/init-first.c: Mark init as used.
++
++2003-07-25 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/a.out.h: Replace with i386 version.
++ Include bits/a.out.h.
++ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
++ bits/a.out.h.
++ * sysdeps/unix/sysv/linux/bits/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/i386/bits/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/m68k/bits/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/x86_64/bits/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/alpha/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/alpha/bits/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/sparc/a.out.h: New file.
++ * sysdeps/unix/sysv/linux/sparc/bits/a.out.h: New file.
++
++2003-07-24 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/pthread/aio_cancel.c (aio_cancel): Return AIO_ALLDONE
++ if aiocbp != NULL and has already completed. Return -1/EINVAL if
++ aiocbp->aio_fildes does not match fildes.
++
++2003-07-24 Ulrich Drepper <drepper@redhat.com>
++
++ * timezone/zic.c (rpytime): Replace cheap overflow check with a
++ functioning one.
++
++ * include/link.h (struct link_map): Add l_tls_firstbyte_offset field.
++ * sysdeps/generic/dl-tls.c [TLS_TCB_AT_TP] (_dl_determine_tlsoffset):
++ Fix calculation of offsets to take misalignment of first byte in
++ file into account.
++ * elf/dl-load.c (_dl_map_object_from_fd): Initialize
++ l_tls_firstbyte_offset field.
++ * elf/rtld.c (_dl_start_final, _dl_start, dl_main): Likewise.
++ * elf/dl-reloc.c (_dl_allocate_static_tls): Change return type to int.
++ Take l_tls_firstbyte_offset information into account.
++ (CHECK_STATIC_TLS): _dl_allocate_static_tls can fail now.
++ * sysdeps/generic/ldsodefs.h: Adjust _dl_allocate_static_tls prototype.
++ * elf/Makefile: Add rules to build and run tst-tls14.
++ * elf/tst-tls14.c: New file.
++ * elf/tst-tlsmod14a.c: New file.
++ * elf/tst-tlsmod14b.c: New file.
++
++2003-07-23 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/pthread/lio_listio.c (LIO_OPCODE_BASE): Define.
++ (lio_listio): Use it.
++ * sysdeps/pthread/lio_listio64.c: Include lio_listio.c instead of
++ after few defines to avoid duplication.
++
++2003-07-22 Jakub Jelinek <jakub@redhat.com>
++
++ * include/stdio.h (__libc_fatal): Add libc_hidden_proto.
++ * include/dlfcn.h (__libc_dlopen_mode, __libc_dlsym, __libc_dlclose):
++ Likewise.
++ * elf/dl-libc.c (__libc_dlopen_mode, __libc_dlsym, __libc_dlclose):
++ Add libc_hidden_def.
++ * sysdeps/generic/libc_fatal.c (__libc_fatal): Likewise.
++ * sysdeps/posix/libc_fatal.c (__libc_fatal): Likewise.
++ * sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Likewise.
++ * elf/Versions (libc): Export __libc_dlopen_mode@@GLIBC_PRIVATE,
++ __libc_dlsym@@GLIBC_PRIVATE and __libc_dlclose@@GLIBC_PRIVATE.
++ * libio/Versions (libc): Export __libc_fatal@@GLIBC_PRIVATE.
++ * sysdeps/generic/unwind-dw2.c: Readd #ifs removed during last
++ change.
++ * sysdeps/generic/unwind.inc: Removed.
++
++ * include/resolv.h (__resp): Declare. Define to __libc_resp
++ if in libc.so.
++ (_res): If USE___THREAD, define to (*__resp).
++ * resolv/res_libc.c (_res): Normal .bss variable with compat_symbol
++ even if USE___THREAD.
++ (__resp): New __thread variable.
++ (__libc_resp): New alias.
++ * resolv/Versions (libc): Export _res@GLIBC_2.0 even if
++ USE_TLS && HAVE___THREAD. Export __resp@@GLIBC_PRIVATE.
++ * sysdeps/generic/res-state.c (__res_state): Return __resp
++ if USE___THREAD.
++
++2003-07-22 H.J. Lu <hongjiu.lu@intel.com>
++
++ * elf/dl-support.c (_dl_hwcap): New variable.
++ (_dl_aux_init): Initialize GL(dl_hwcap) for static binaries.
++
++ * sysdeps/i386/fpu/fclrexcpt.c: Include <unistd.h>, <ldsodefs.h>
++ and <dl-procinfo.h>.
++ (__feclearexcept): Clear MXCSR if needed.
++ * sysdeps/i386/fpu/fsetexcptflg.c: Likewise.
++
++ * sysdeps/i386/fpu_control.h (_FPU_GETCW, _FPU_SETCW): Document
++ that newer hardware needs more than these macros.
++
++ * sysdeps/i386/setfpucw.c: New file.
++
++2003-07-22 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/Makefile (CFLAGS-ldconfig.c): Define IS_IN_ldconfig.
++ * elf/ldconfig.c: Include dl-procinfo.c.
++ (PROCINFO_CLASS): Define.
++ * sysdeps/generic/ldsodefs.h (PROCINFO_CLASS): Define.
++ * sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: New file.
++ * sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h: New file.
++ * sysdeps/unix/sysv/linux/i386/dl-procinfo.c (PROCINFO_CLASS):
++ Define if not yet defined. Use it instead of EXTERN. Undefine
++ at the end of the file.
++ * sysdeps/unix/sysv/linux/arm/dl-procinfo.c (PROCINFO_CLASS):
++ Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c
++ (PROCINFO_CLASS): Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c
++ (PROCINFO_CLASS): Likewise.
++
++2003-07-22 H.J. Lu <hongjiu.lu@intel.com>
++
++ * elf/ldconfig.c (main): Issue a fatal error if relative path
++ is used to build cache.
++
++2003-07-22 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/readlib.c (process_file): Avoid possible overflow in assignment.
++
++2003-07-21 Art Haas <ahaas@airmail.net>
++
++ * manual/charset.texi (Converting a Character): Fix example code so a
++ valid pointer is returned.
++
++2003-07-22 Andreas Jaeger <aj@suse.de>
++
++ * elf/readlib.c (process_file): Check that file is a shared
++ object.
++
++ * elf/sofini.c (__FRAME_END__): Use attribute used so that gcc
++ will not optimize it away.
++ (__DTOR_END__): Likewise.
++ (__CTOR_END__): Likewise.
++
++ * include/libc-symbols.h (_elf_set_element): Use attribute used so
++ that gcc will not optimize it away.
++ (link_warning): Likewise.
++
++2003-07-22 Ulrich Drepper <drepper@redhat.com>
++
++ * wcsmbs/wcpncpy.c (__wcpncpy): Correct destination pointer handling.
++ * wcsmbs/Makefile (tests): Add tst-wcpncpy.
++ * wcsmbs/tst-wcpncpy.c: New file.
++
++2003-07-21 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/bits/sched.h (CLONE_STOPPED): Define.
++
++ * sysdeps/i386/fpu/feenablxcpt.c (feenableexcept): Reverse use of
++ stmxcsr and ldmxcsr.
++
++ * Makerules (build-module-helper): Add -z defs unless explicitly said
++ not to do it.
++ * dlfcn/Makefile: Define various *-no-z-defs variables for test DSOs
++ which has undefined symbols.
++ * elf/Makefile: Likewise.
++
++ * sysdeps/i386/fpu/fedisblxcpt.c: Use dl_hwcap, not dl_hwcap_mask.
++ * sysdeps/i386/fpu/feenablxcpt.c: Likewise.
++ * sysdeps/i386/fpu/feholdexcpt.c: Likewise.
++ * sysdeps/i386/fpu/fesetround.c: Likewise.
++ * sysdeps/i386/fpu/ftestexcept.c: Likewise.
++
++2003-07-21 HJ Lu <hongjiu.lu@intel.com>
++
++ * elf/ldconfig.c (search_dir): Treat symlink as regular file
++ if it won't point to itself.
++
++2003-07-20 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/ia64/hp-timing.h (REPEAT_READ): Cast to long int not to int.
++
++2003-07-20 Andreas Jaeger <aj@suse.de>
++
++ * iconvdata/cp932.c (BODY): STANDARD_ERR_HANDLER is now called
++ STANDARD_TO_LOOP_ERR_HANDLER.
++ * iconvdata/euc-jp-ms.c (BODY): Likewise.
++
++2003-07-19 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/bits/sched.h (__CPU_ZERO): Fix typo.
++
++ * sysdeps/unix/sysv/linux/syscalls.list: Remove affinity syscalls.
++
++2003-07-16 Daniel Jacobowitz <drow@mvista.com>
++ Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/mips/bits/shm.h (SHMLBA): Define to
++ 256K, remove unneeded declaration of __getpagesize.
++
++2003-07-16 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/unix/sysv/linux/futimes.c: Include <string.h>.
++
++2003-07-15 Ulrich Drepper <drepper@redhat.com>
++
++ * io/test-utime.c (main): Make test yet more robust.
++
++2003-07-14 Ulrich Drepper <drepper@redhat.com>
++
++ More cancellation handling fixups.
++ * sysdeps/unix/sysv/linux/not-cancel.h: Add waitpid_not_cancel.
++ * sysdeps/generic/not-cancel.h: Likewise.
++ * catgets/open_catalog.c: Use not-cancelable syscalls.
++ * time/Makefile (CFLAGS-getdate.c): Add -fexceptions.
++ * sysdeps/unix/sysv/linux/llseek.c: Must not be cancelable.
++ * sysdeps/unix/syscalls.list: Don't mark lseek as cancelable.
++ * dlfcn/dlfcn.h: Mark dlopen with __THROW again.
++ * io/fcntl.h: Don't mark posix_fallocate with __THROW.
++ * libio/fileops.c: Use not-cancelable syscalls for fclose.
++ * libio/iopopen.c: Use no-cancelable syscalls.
++ * libio/stdio.h: Mark popen and pclose with __THROW again.
++ * misc/Makefile (CFLAGS-syslog.c): Add -fexceptions.
++ * misc/syslog.c: Fix locking and cancellation cleanup handling.
++ * posix/unistd.h: Mark ttyname and ttyname_r again with __THROW.
++ * stdio-common/Makefile (CFLAGS-tmpfile.c, CFLAGS-tmpfile64.c,
++ CFLAGS-tempname.c): Add -fexceptions.
++ * stdlib/Makefile (CFLAGS-mkstemp.c): Add -fexceptions.
++ * string/string.h: Mark strerror and strerror_r with _THROW again.
++ * sysdeps/generic/unwind.inc: New file. Copied from gcc.
++ * sysdeps/generic/unwind-dw2.c: Update from gcc version. Remove
++ #ifs since we now need all the code compiled.
++ * sysdeps/posix/spawni.c: Use close_not_cancel instead of close.
++ * sysdeps/unix/closedir.c: Use not-cancelable syscalls.
++ * sysdeps/unix/opendir.c: Likewise.
++
++ * iconvdata/Makefile (modules): Add CP932 and EUC-JP-MS.
++ Add rule for EUC-JP-MS dependency.
++ * iconvdata/cp932.c: New file.
++ * iconvdata/eucjp-ms.c: New file.
++ * iconvdata/gconv-modules: Add entries for CP932 and EUC-JP-MS.
++ Patch by MORIYAMA Masayuki <msyk@mtg.biglobe.ne.jp>.
++
++2003-07-15 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S (__socket): Add
++ cfi directives.
++
++2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h
++ (__ASSUME_FIXED_CLONE_SYSCALL): New macro.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Use it.
++
++ * sysdeps/unix/sysv/linux/utimes.c: Include sysdep.h.
++
++2003-07-14 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_TGKILL for Alpha appropriately.
++
++2003-07-12 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/bits/statfs.h (_STATFS_F_FRSIZE): Define.
++ * sysdeps/unix/sysv/linux/alpha/bits/statfs.h (_STATFS_F_FRSIZE):
++ Likewise.
++ * sysdeps/unix/sysv/linux/s390/bits/statfs.h (_STATFS_F_FRSIZE):
++ Likewise.
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_UTIMES for x86 and kernels > 2.5.75.
++
++ * sysdeps/unix/sysv/linux/futimes.c (__futimes): Handle case with
++ second parameter == NULL.
++ * sysdeps/unix/sysv/linux/utimes.c: New file.
++
++2003-07-12 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/futimes.c: Include kernel-features.h.
++ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMES): Fix
++ a typo.
++
++2003-07-12 Ulrich Drepper <drepper@redhat.com>
++
++ * time/sys/time.h: Namespace cleanup.
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_UTIMES for the architectures which always had the syscall.
++ * sysdeps/unix/sysv/linux/futimes.c: New file.
++
++2003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
++
++ * sysdeps/unix/sysv/linux/sh/socket.S: Save and restore the PR
++ register across CENABLE and CDISABLE.
++
++2003-07-11 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/sigwait.c: Include string.h.
++ * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.
++ * sysdeps/unix/sysv/linux/sleep.c (__sleep): Cast value to unsigned
++ int before assigning to max to avoid warnings.
++
++2003-07-11 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S (__socket): Add
++ cfi directives.
++ * sysdeps/unix/sysv/linux/s390/s390-32/socket.S (__socket): Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/socket.S (__socket): Likewise.
++
++2003-07-10 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc64/elf/start.S: Set section flags of
++ .data.rel.ro.local to "aw".
++
++2003-07-10 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/m68k/Makefile: Remove CLFAGS-.oS addition.
++ * Makeconfig (CFLAGS-.oS): Use PIC-ccflag instead of pic-ccflag.
++ (PIC-ccflag): Define.
++
++2003-07-04 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/s390/s390-32/elf/start.S: Emit position independent code
++ if PIC.
++ * sysdeps/s390/s390-64/elf/start.S: Likewise.
++
++2003-07-07 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc64/elf/start.S: Put L(start_address)
++ into .data.rel.ro.local section if PIC to avoid DT_TEXTREL.
++
++2003-07-07 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Version
++ __ASSUME_CORRECT_SI_PID and __ASSUME_TGKILL if possible.
++
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Adjust for
++ compilation with HAVE_AUX_SECURE defined.
++
++2003-07-05 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/alpha/elf/initfini.c: Avoid .ent/.end.
++
++2003-07-03 Ulrich Drepper <drepper@redhat.com>
++
++ * configure.in: Also check for .cfi_rel_offset pseudo-op.
++
++2003-07-03 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/prof-freq.c (__profile_frequency): Fix a
++ typo.
++
++2003-07-03 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_AT_CLKTCK):
++ Define.
++ * sysdeps/unix/sysv/linux/prof-freq.h: New file.
++
++2003-07-02 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Protect new_sysinfo
++ decl and use with #ifdef NEED_DL_SYSINFO.
++
++2003-07-02 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Don't set
++ GL(dl_sysinfo) unles GL(dl_sysinfo_dso) is also set.
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_VSYSCALL only for 2.5.69 and up since this is when the
++ vsyscall DSO was added.
++
++ * posix/bits/posix1_lim.h (_POSIX_NGROUPS_MAX): Define to 8 or 0
++ depending on selected standard.
++ (NGROUPS_MAX): Define to 8 if not defined.
++
++2003-07-02 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/sys/epoll.h: New file.
++
++2003-05-04 H.J. Lu <hongjiu.lu@intel.com>
++
++ * malloc/arena.c (arena_get2): Add atomic_write_barrier.
++ * malloc/thread-m.h: Include <atomic.h>.
++ (atomic_full_barrier): Provide default.
++ (atomic_read_barrier): Likewise.
++ (atomic_write_barrier): Likewise.
++ * sysdeps/ia64/bits/atomic.h (atomic_full_barrier): New #define.
++
++2003-06-30 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/sysdep.h: Define cfi_rel_offset and CFI_REL_OFFSET.
++
++2003-06-30 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_bool_*_int):
++ Invert the sense of the return value.
++ (__arch_exchange_16_int): Fix paste-o.
++ (__arch_exchange_{32,64}_int): Fix think-o.
++
++ * sysdeps/unix/sysv/linux/alpha/clone.S: Load child_tid properly.
++
++2003-06-30 Richard Henderson <rth@redhat.com>
++
++ * include/sys/resource.h (__getrusage): Mark hidden.
++ * include/sys/time.h (__settimeofday, __setitimer, __utimes): Likewise.
++ * include/sys/wait.h (__wait4): Likewise.
++
++2003-06-17 Guido Guenther <agx@sigxcpu.org>
++
++ * sysdeps/unix/sysv/linux/mips/xstatconv.c: Handle STAT_IS_KERNEL_STAT
++ case.
++ (xstat_conv): Rename to __xstat_conv and remove static inline.
++ (xstat64_conv): Likewise.
++
++2003-06-29 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/sleep.c (__sleep): Handle parameter
++ values which cannot be handled in one nanosleep call.
++
++2003-06-25 Alfred M. Szmidt <ams@kemisten.nu>
++
++ * sysdeps/generic/bits/in.h (IPV6_HOPOPTS, IPV6_DSTOPTS): New macros.
++ (IPV6_RXHOPOPTS, IPV6_RXDSTOPTS): Use them.
++
++ * sysdeps/generic/ifreq.h (__if_nextreq) [_HAVE_SA_LEN]: Typo fix.
++
++2003-06-04 Thorsten Kukuk <kukuk@suse.de>
++
++ * sysdeps/unix/sysv/linux/net/if_arp.h: Sync with kernel header,
++ fix typo.
++
++2003-06-26 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/unix/sysv/linux/xstatconv.h [!STAT_IS_KERNEL_STAT]:
++ Conditionalize function definitions that use struct kernel_stat.
++ * sysdeps/unix/sysv/linux/fxstat.c: Remove __syscall_fstat extern.
++ * sysdeps/unix/sysv/linux/lxstat.c: Remove __syscall_lstat extern.
++ * sysdeps/unix/sysv/linux/xstat.c: Remove __syscall_stat extern.
++
++2003-06-28 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/s390/semtimedop.c (semtimedop): Add real
++ implementation.
++
++2003-06-07 Thorsten Kukuk <kukuk@suse.de>
++
++ * nis/nss_compat/compat-grp.c: Remove unused nis_first variable.
++ (getgrent_next_file): Don't store group name to early in blacklist.
++
++ * nis/nss_compat/compat-pwd.c (internal_getpwuid_r): Save strlen result
++ and use memcpy instead of strcpy.
++
++2003-06-28 Ulrich Drepper <drepper@redhat.com>
++
++ * nis/nss_compat/compat-grp.c: Optimize several little things. Use
++ stream unlocked.
++ * nis/nss_compat/compat-initgroups.c: Likewise.
++ * nis/nss_compat/compat-pwd.c: Likewise.
++ * nis/nss_compat/compat-spwd.c: Likewise.
++
++2003-06-27 Thorsten Kukuk <kukuk@suse.de>
++
++ * nis/nss_compat/compat-initgroups.c: Don't use our own NIS/NIS+
++ functions, dlopen corresponding NSS module instead.
++
++2003-06-27 Jeroen Dekkers <jeroen@dekkers.cx>
++
++ * sysdeps/mach/hurd/alpha/init-first.c: Remove call to __libc_init.
++ * sysdeps/mach/hurd/i386/init-first.c: Likewise.
++ * sysdeps/mach/hurd/mips/init-first.c: Likewise.
++ * sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
++
++2003-06-27 Ulrich Drepper <drepper@redhat.com>
++
++ * rt/Makefile (CFLAGS-librt-cancellation.c): Define.
++
++2003-06-26 Roland McGrath <roland@frob.com>
++
++ * sysdeps/mach/configure.in: Barf rather than define NO_CREATION_TIME.
++ * sysdeps/mach/configure: Regenerated.
++ * sysdeps/mach/hurd/times.c (times_init): Function removed.
++ (__times): Assume `creation_time' field is available.
++ * sysdeps/mach/hurd/Makefile [$(subdir) = csu] (sysdep_routines):
++ Don't append set-init.
++ * sysdeps/mach/hurd/set-init.c: File removed.
++
++2003-06-26 Roland McGrath <roland@redhat.com>
++
++ * elf/elf.h (AT_SECURE): New macro.
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Grok it,
++ set __libc_enable_secure.
++ (_dl_show_auxv): Add AT_SECURE to name table.
++ * elf/dl-support.c (_dl_aux_init): Grok AT_SECURE, set
++ __libc_enable_secure and __libc_enable_secure_decided.
++ * sysdeps/unix/sysv/linux/ldsodefs.h
++ [__ASSUME_AT_SECURE] (HAVE_AUX_SECURE): Define it.
++ * sysdeps/unix/sysv/linux/kernel-features.h
++ [__LINUX_KERNEL_VERSION >= 132426] (__ASSUME_AT_SECURE): Define it.
++
++2003-06-26 Ulrich Drepper <drepper@redhat.com>
++
++ * io/test-utime.c: If _STATBUF_ST_NSEC is defined, adjust lower
++ boundary test to take rounding of nanoseconds into account.
++
++ * sysdeps/unix/sysv/linux/bits/stat.h: Define _STATBUF_ST_NSEC.
++ * sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise.
++ * sysdeps/unix/sysv/linux/m68k/bits/stat.h: Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise.
++ * sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise.
++ * sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Likewise.
++
++2003-06-26 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/m68k/fpu/bits/mathinline.h: Don't inline frexp.
++ * sysdeps/m68k/fpu/s_frexp.c: Put implementation here.
++ * sysdeps/m68k/fpu/s_frexpl.c: Fix to handle unnormalized numbers.
++
++2003-06-17 Thorsten Kukuk <kukuk@suse.de>
++
++ * nis/Makefile: Remove NIS/NIS+ files from nss_compat module.
++ * nis/nss_compat/compat-grp.c: Don't use our own NIS/NIS+ functions,
++ dlopen corresponding NSS module instead.
++ * nis/nss_compat/compat-pwd.c: Likewise.
++ * nis/nss_compat/compat-spwd.c: Likewise.
++ * nis/nss_compat/compat-initgroups.c: Disabled for now.
++ * nss/Versions: Export __nss_lookup_function.
++
++2003-06-19 Daniel Jacobowitz <drow@mvista.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Update kernel features
++ for the SH architecture.
++
++2003-06-25 Thorsten Kukuk <kukuk@suse.de>
++
++ * csu/Makefile: Use CPPFLAGS to find correct linux/version.h.
++
++2003-06-25 Andreas Jaeger <aj@suse.de>
++
++ * stdlib/tst-strtod.c (main): Declare constant long double as
++ suggested by Jakub Jelinek and Andreas Schwab.
++
++ * posix/tst-nanosleep.c: Include <time.h> for nanosleep
++ declaration.
++
++ * stdio-common/tst-fphex.c: Fix format string.
++
++ * posix/transbug.c: Include <string.h> for memset and strlen
++ declarations.
++
++ * stdio-common/tst-sprintf.c: Include <stdlib.h> for free declaration.
++
++ * stdlib/tst-strtod.c (main): Pass long double value.
++
++ * test-skeleton.c: Include <time.h> for nanosleep declaration.
++
++2003-06-25 Ulrich Drepper <drepper@redhat.com>
++
++ * include/time.h: Don't define CLOCK_IDFIELD_SIZE if _ISOMAC is
++ defined.
++
++2003-06-11 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/Versions (libc): Add _dl_open_hook@GLIBC_PRIVATE.
++ * elf/dl-libc.c (struct dl_open_hook): New.
++ (_dl_open_hook): New variable.
++ (do_dlsym_private): New function.
++ (__libc_dlopen_mode) [!SHARED]: Lookup _dl_open_hook@GLIBC_PRIVATE
++ and initialize it if found.
++ (__libc_dlopen_mode) [SHARED]: If _dl_open_hook is non-NULL,
++ call dlopen_mode hook.
++ (__libc_dlsym) [SHARED]: If _dl_open_hook is non-NULL,
++ call dlsym hook.
++ (__libc_dlclose) [SHARED]: If _dl_open_hook is non-NULL,
++ call dlclose hook.
++
++2003-06-25 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/cris/sysdep.h (INLINE_SYSCALL): Cast
++ result to long int so that extensions to long long int work.
++ Patch by Uwe Reimann <libc-alpha@pulsar.homelinux.net>.
++
++2003-06-19 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/ldconfig.c (main): Use add_system_dir instead of add_dir.
++ * sysdeps/generic/dl-cache.h (add_system_dir): Define.
++ * sysdeps/unix/sysv/linux/x86_64/dl-cache.h: Include sparc
++ dl-cache.h.
++ * sysdeps/unix/sysv/linux/s390/dl-cache.h: New file.
++ * sysdeps/unix/sysv/linux/mips/dl-cache.h: New file.
++ * sysdeps/unix/sysv/linux/powerpc/dl-cache.h: New file.
++ * sysdeps/unix/sysv/linux/sparc/dl-cache.h: New file.
++
++2003-06-19 Jakub Jelinek <jakub@redhat.com>
++
++ * test-skeleton.c (timeout_handler): If waitpid returned 0,
++ retry once after a second. If killed == 0, assume
++ WTERMSIG (status) == SIGKILL.
++
++2003-06-18 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Catch uninitialized
++ elements in the table instead of printing an empty name string.
++
++2003-06-05 Roland McGrath <roland@redhat.com>
++
++ * elf/elf.h (PT_GNU_STACK): New macro.
++
++2003-06-24 Ulrich Drepper <drepper@redhat.com>
++
++ * include/time.h: Define CLOCK_IDFIELD_SIZE.
++ * sysdeps/posix/clock_getres.c: Recognize thread CPU clock IDs.
++ * sysdeps/unix/clock_gettime.c: Likewise.
++ * sysdeps/unix/clock_settime.c: Likewise.
++ * sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P): Adjust for new
++ clock id for thread CPU clocks.
++
++ * sysdeps/unix/sysv/linux/fstatfs64.c (__fstatfs64): Add support
++ for the fstatfs64 syscall.
++ * sysdeps/unix/sysv/linux/statfs64.c (__statfs64): Add support for
++ the statfs64 syscall.
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_STATFS64 appropriately.
++
++ * sysdeps/unix/sysv/linux/internal_statvfs.c: Use f_frsize field
++ from statfs structure if it has been filled in.
++
++ * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs): Add f_frsize
++ field.
++ (struct statfs64): Likewise.
++ * sysdeps/unix/sysv/linux/alpha/bits/statfs.h: Likewise.
++ * sysdeps/unix/sysv/linux/s390/bits/statfs.h: Likewise.
++
++2003-06-24 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/unix/sysv/linux/alpha/syscalls.list (pread, pwrite): Use
++ the 64-bit syscall name.
++
++ * sysdeps/alpha/setjmp.S (_setjmp, setjmp): Mark .prologue.
++
++ * sysdeps/alpha/fpu/bits/mathinline.h: Honor
++ __LIBC_INTERNAL_MATH_INLINES. Implement __signbitf, __signbit.
++
++ * sysdeps/unix/sysv/linux/alpha/clone.S: Use HIDDEN_JUMPTARGET.
++ * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Use
++ libc_hidden_def.
++ * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/setfpucw.c: Use libc_hidden_proto
++ on them.
++
++ * sysdeps/alpha/bits/atomic.h: New file.
++
++2003-06-24 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/m68k/fpu/libm-test-ulps: Update.
++
++2003-06-24 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/stat.h (_STAT_VER_LINUX): Avoid
++ redeclaration with 32-bit code.
++
++2003-05-19 Ed Connell <ed.connell@sas.com>
++
++ * sysdeps/unix/sysv/linux/i386/getcontext.S (getcontext): Retain
++ floating point mask.
++ * sysdeps/i386/fpu/fegetenv.c (fegetenv): Likewise.
++
++2003-06-23 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/pthread/aio_misc.h: Mark __aio_requests_mutex,
++ __aio_enqueue_request, __aio_find_req, __aio_find_req_fd,
++ __aio_free_request, __aio_notify, and __aio_sigqueue as hidden.
++
++ * sysdeps/pthread/aio_suspend.c (aio_suspend): Set errno to the result
++ of pthread_cond_wait if there was an error. Use pthread_cleanup_*
++ instead of __libc_cleanup_region_*.
++
++2003-06-20 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/unix/make-syscalls.sh: Implement ! prefix for strong aliases.
++ * sysdeps/unix/sysv/linux/alpha/syscalls.list (open, open64): New.
++
++2003-06-20 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL1): Use __builtin_expect.
++ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_ST_INO_64_BIT)
++ Unset for alpha.
++ (__ASSUME_TIMEVAL64): Set for alpha.
++ * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
++ adjtimex, osf_sigprocmask, old_adjtimex.
++ * sysdeps/unix/sysv/linux/alpha/adjtime.c: Use INLINE_SYSCALL,
++ __ASSUME_TIMEVAL64. Reorg tv64 functions to avoid uninit variable.
++ * sysdeps/unix/sysv/linux/alpha/getitimer.S: Use __ASSUME_TIMEVAL64.
++ * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Streamline
++ PIC code sequence.
++ * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/sigaction.c: New file.
++ * sysdeps/unix/sysv/linux/alpha/sigprocmask.c: Use INLINE_SYSCALL.
++ * sysdeps/unix/sysv/linux/alpha/ustat.c: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/xmknod.c: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove osf_sigprocmask,
++ sys_ustat, sys_mknod, adjtimex, old_adjtimex.
++ * sysdeps/unix/sysv/linux/alpha/sysdep.h (INLINE_SYSCALL): Don't
++ defer to __syscall_name; error for rt_sigaction.
++ * sysdeps/unix/sysv/linux/alpha/xstatconv.c: Include kernel_stat.h.
++
++2003-06-18 Ulrich Drepper <drepper@redhat.com>
++
++ * malloc/malloc.c (public_mALLINFo): Initialize malloc if it
++ hasn't happened yet.
++
++ * sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump):
++ Fix completely broken implementation. The second parameter is of
++ type struct ucontext*.
++
++ * sysdeps/x86_64/dl-machine.h (elf_machine_runtime_setup): Always
++ inline.
++
++ * sysdeps/i386/i686/dl-hash.h: Don't inline _dl_elf_hash.
++ * sysdeps/generic/dl-hash.h: Likewise.
++
++ * sysdeps/generic/memcmp.c: Remove inline from
++ memcmp_common_alignment and memcmp_not_common_alignment definition.
++
++ * intl/localealias.c (read_alias_file): Determine whether line is
++ read incompletely early, before we modify the line.
++
++2003-06-17 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela)
++ <case R_PPC64_DTPREL64>: Don't segfault on undefined symbols.
++
++2003-06-17 Paul Mackerras <paulus@samba.org>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: New file.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: New file.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: New file.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: New file.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h: New file.
++ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Adjust.
++
++2003-06-17 Jakub Jelinek <jakub@redhat.com>
++
++ * posix/regcomp.c (build_word_op): Use alnum instead of alpha class.
++
++2003-06-17 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/clock_nanosleep.c (clock_nanosleep): nanosleep
++ takes care of enabling cancellation.
++
++ * sysdeps/pthread/aio_suspend.c (aio_suspend): Make aio_suspend
++ cancelable. It's not correct to disable cancellation. Instead of
++ a cleanup handler.
++
++ * sysdeps/unix/sysv/linux/sigtimedwait.c: If SIGCANCEL is defined
++ and part of the incoming set, create a temporary set without this
++ signal.
++ * sysdeps/unix/sysv/linux/sigwait.c: Likewise.
++ * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.
++
++ * sysdeps/unix/sysv/linux/sleep.c: Use CANCELLATION_P if defined before
++ returning because seconds==0. Add __builtin_expect.
++
++2003-06-16 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/socket.S: Add unwind information.
++
++ * sysdeps/unix/sysv/linux/wait.c (__libc_wait): Fix type of result
++ variable.
++
++2003-06-16 Thorsten Kukuk <kukuk@suse.de>
++
++ * include/libc-symbols.h: Add static_link_warning macro.
++ * grp/initgroups.c: Print linker warning if this function
++ is called in a static linked binary.
++ * nss/getXXbyYY.c: Likewise.
++ * nss/getXXbyYY_r.c: Likewise.
++ * nss/getXXent.c: Likewise.
++ * nss/getXXent_r.c: Likewise.
++ * sysdeps/posix/getaddrinfo.c: Likewise.
++
++2003-06-16 Bruno Haible <bruno@clisp.org>
++
++ * iconvdata/gconv-modules (ISO-8859-15): Add aliases ISO_8859-15,
++ LATIN-9.
++ (ISO-8859-16): Add aliases ISO_8859-16:2001, ISO_8859-16.
++ (IBM1047): Add alias IBM-1047.
++ (GBK): Add aliases MS936, WINDOWS-936.
++
++2003-06-16 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/xstatconv.c (__xstat_conv): Define even if
++ defined __ASSUME_STAT64_SYSCALL && defined XSTAT_IS_XSTAT64.
++ (__xstat64_conv): Change xstat_conv to __xstat_conv.
++
++2003-06-16 Ulrich Drepper <drepper@redhat.com>
++
++ * locale/iso-639.def: Update from current official ISO 639.
++
++ * math/tgmath.h (__TGMATH_UNARY_IMAG_ONLY): Removed.
++
++2003-06-15 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/i386/fpu/feenablxcpt.c (feenableexcept): Correct setting
++ of MXCSR.
++ * sysdeps/i386/fpu/fedisblxcpt.c (fedisableexcept): Likewise.
++ * sysdeps/i386/fpu/feholdexcpt.c (feholdexcept): Likewise.
++ Reported by Arnaud Desitter <arnaud.desitter@geography.oxford.ac.uk>.
++
++ * math/tgmath.h (carg): Handle real arguments.
++ (conj): Likewise.
++ (cproj): Likewise.
++ (cimag): Likewise.
++ (creal): Likewise.
++
++ * math/Makefile (CFLAGS-test-tgmath-ret.c): New.
++ (tests): Add test-tgmath-ret.
++ * math/test-tgmath-ret.c: New file.
++
++ * math/tgmath.h (ilogb): Return always an int.
++
++2003-06-16 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/rtld.c (dl_main): Use l_map_start not l_addr in Phdr
++ computation so that prelinking works.
++
++2003-06-15 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/dl-iteratephdr.c (__dl_iterate_phdr): Don't skip dynamic
++ linker's map.
++ * elf/rtld.c (dl_main): Initialize l_phdr and l_phnum of of the
++ dynamic linker's map.
++
++ Fix cancellation point handling wrt exception based cleanup.
++ * io/Makefile: Compile fcntl.c, poll.c, and lockf.c with exceptions.
++ * misc/Makefile: Compile pselect.c, readv.c, writev.c, and usleep.c
++ with exceptions.
++ * posix/Makefile: Compile pread.c, pread64.c, pwrite.c, pwrite64.c,
++ sleep.c, wait.c, waitid.c, and waitpid.c with exceptions.
++ * rt/Makefile: Compile aio_suspend.c and clock_nanosleep.c with
++ exceptions.
++ * signal/Makefile: Compile sigpause.c, sigsuspend.c, sigtimedwait.c,
++ sigwait.c, and sigwaitinfo.c with exceptions.
++ * stdlib/Makefile: Compile system.c with exceptions.
++ * sysvipc/Makefile: Compile msgrcv.c and msgsnd.c with exceptions.
++ * termios/Makefile: Compile tcdrain.c with exceptions.
++ * sysdeps/generic/lockf.c: Add comment explaining the cancellation
++ situation.
++ * sysdeps/generic/pselect.c: Likewise.
++ * sysdeps/posix/sigpause.c: Likewise.
++ * sysdeps/posix/system.c: Likewise.
++ * sysdeps/posix/waitid.c: Likewise.
++ * sysdeps/unix/sysv/linux/sleep.c: Likewise.
++ * sysdeps/unix/sysv/linux/usleep.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/sysdep.h: Major rewrite of
++ INTERNAL_SYSCALL to not use push inside asm statement so that
++ unwind info is correct around the syscall.
++ * sysdeps/unix/clock_nanosleep.c: Add cancellation support.
++ * sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
++
++2003-06-15 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/x86_64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
++ Add CFI directives.
++
++2003-06-15 Guido Guenther <agx@sigxcpu.org>
++
++ * sysdeps/unix/sysv/linux/mips/Makefile: Add missing endif and
++ create $(objpfx).
++
++2003-06-14 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/check_pf.c (__check_pf): Use __close,
++ not close.
++
++ * inet/inet6_option.c (inet6_option_alloc): Add libc_hidden_def.
++ * include/netinet/in.h (inet6_option_alloc): Add libc_hidden_proto
++ definition.
++
++ * inet/netinet/ip6.h (IP6OPT_PAD1, IP6OPT_PADN): Define.
++ * inet/netinet/in.h: Add prototypes for inet6_option_* functions.
++ * inet/Makefile (routines): Add inet6_option.
++ * inet/inet6_option.c: New file.
++ * inet/Versions [GLIBC_2.3.3] (libc): Add inet6_option_space,
++ inet6_option_init, inet6_option_append, inet6_option_alloc,
++ inet6_option_next, and inet6_option_find.
++
++2003-06-13 Ulrich Drepper <drepper@redhat.com>
++
++ * inet/netinet/ip6.h (struct ip6_ext): Define.
++
++ * sysdeps/unix/sysv/linux/sys/param.h (howmany): Optimize for gcc.
++
++ Fixing gcc 3.3 warnings, part II.
++ * argp/argp-help.c (hol_entry_long_iterate): Always inline.
++ * elf/dl-load.c (cache_rpath): Don't inline.
++ * iconvdata/cns11642l2.h: Always inline all functions.
++ * iconvdata/iso-ir-165.h: Likewise.
++ * locale/Makefile (aux): Add coll-lookup.
++ * locale/coll-lookup.c: New file.
++ * locale/coll-lookup.h (collidx_table_lookup): Do not define here.
++ (collseq_table_lookup): Likewise.
++ * locale/weightwc.h: Adjust collidx_table_lookup calls for name change.
++ * posix/fnmatch_loop.c: Adjust collseq_table_lookup calls for name
++ change.
++ * posix/regcomp.c: Likewise.
++ * posix/regexec.c: Likewise.
++ * locale/programs/3level.h (*_get): Always inline.
++ * locale/programs/locfile.h: Move definition of handle_copy to...
++ * locale/programs/locfile.c: ...here.
++ * locale/programs/ld-collate.c (obstack_int32_grow): Always inline.
++ (obstack_int32_grow_fast): Likewise.
++ (utf8_encode): Likewise.
++ (find_element): Avoid aliasing problems.
++ (insert_value): Likewise.
++ (collate_read): Likewise.
++ * nss/getent.c (print_hosts): Don't inline
++ (print_networks): Likewise.
++ (print_shadow): Likewise.
++ (build_doc): Likewise.
++ * nss/nss_files/files-parse.c [ENTDATA] (parser_stclass): Don't
++ inline.
++ * posix/regcomp.c (re_set_fastmap): Always inline.
++ (seek_collating_symbol_entry): Likewise.
++ (lookup_collation_sequence_value): Likewise.
++ (build_range_exp): Likewise.
++ (build_collating_symbol): Likewise.
++ * posix/regexec.c (acquire_init_state_context): Don't inline.
++ (clean_state_log_if_need): Likewise.
++ * resolv/res_send.c (eConsIovec): Rewrite to not return struct and
++ adjust all callers.
++ (evConsTime): Likewise.
++ (evAddTime): Likewise.
++ (evSubTime): Likewise.
++ (evNowTime): Likewise.
++ (evTimeSpec): Removed.
++ (__libc_res_nsend): Avoid aliasing problem.
++ * sysdeps/unix/sysv/linux/ifreq.h: Move old_siocgifconf definition to..
++ * sysdeps/unix/sysv/linux/ifreq.c: ...here.
++ * sysdeps/unix/sysv/linux/i386/dl-procinfo.h (_dl_string_hwcap):
++ Always inline.
++ (_dl_string_platform): Likewise.
++ * wctype/wchar-lookup.h (wctype_table_lookup): Always inline.
++ (wcwidth_table_lookup): Likewise.
++ (wctrans_table_lookup): Likewise.
++
++ * sysdeps/unix/sysv/linux/sys/epoll.h: Include <stdint.h>.
++
++2003-06-12 Ulrich Drepper <drepper@redhat.com>
++
++ * wcsmbs/wchar.h: Define wint_t in std namespace, too [PR libc/5034].
++
++2003-05-29 Jim Meyering <jim@meyering.net>
++
++ * time/strftime.c (my_strftime) [!defined _NL_CURRENT
++ && HAVE_STRFTIME]: Use underlying_strftime for %r.
++ Suggested by Daniel Yacob <locales@geez.org>.
++
++2003-06-12 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h (RTLD_START): Replace
++ @got notation with @toc.
++ * sysdeps/powerpc/powerpc64/sysdep.h (CALL_MCOUNT): Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S (__brk): Likewise.
++
++2003-06-12 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/posix/getaddrinfo.c (gaih_inet): Set no_inet6_date also
++ if only PF_INET address is needed.
++
++ * nss/getXXbyYY_r.c: Make sure we always return a nonzero value in
++ case of an error.
++
++ * scripts/config.guess: Update from upstream version.
++ * scripts/config.sub: Likewise.
++
++2003-06-12 Jakub Jelinek <jakub@redhat.com>
++
++ * locale/programs/ld-time.c (time_output): Also copy the era format,
++ not only the name.
++
++2003-06-12 H.J. Lu <hongjiu.lu@intel.com>
++
++ * posix/transbug.c (run_test): Return 1 for failure.
++ (do_test): Compare only if run_test is successful.
++
++2003-06-12 Simon Josefsson <jas@extundo.com>
++
++ * argp/argp.h [!__THROW]: Define if undefined.
++
++2003-06-12 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/cris/sysdep.h: Fix handling of syscalls with
++ more than four parameters.
++ Patch by Uwe Reimann <libc-alpha@pulsar.homelinux.net>.
++
++2003-06-12 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/kernel_stat.h: New file.
++ * sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: New file.
++ * sysdeps/unix/sysv/linux/x86_64/kernel_stat.h: New file.
++
++ * stdio-common/printf-parsemb.c: Include stdlib.h and sys/param.h.
++
++2003-06-12 Roland McGrath <roland@redhat.com>
++
++ * Makerules ($(objpfx)stubs): Rewrite sed magic.
++
++2003-02-28 Isamu Hasegawa <isamu@yamato.ibm.com>
++
++ * posix/regcomp.c (parse_expression): Deliver translation to
++ build_word_op, and build_charclass.
++ (build_charclass): Apply translation for character classes too.
++ (build_word_op): Deliver translation to build_charclass.
++ * posix/transbug.c: New file.
++ * posix/Makefile (tests): Add transbug.
++
++2003-06-04 Paolo Bonzini <bonzini@gnu.org>
++
++ * posix/regexec.c (group_nodes_into_DFAstates): Check for
++ NEXT_ENDBUF_CONSTRAINT. Move check for constraints which do a
++ 'continue' before the others.
++
++2003-06-11 Ulrich Drepper <drepper@redhat.com>
++
++ * dirent/scandir.c (SCANDIR): Reset errno after calling selector
++ function [PR libc/5045].
++
++ * sysdeps/i386/bits/byteswap.h (__bswap_32): Use bswap instruction
++ also for P4.
++
++ * time/tzfile.c: Add a couple of __builtin_expect.
++
++ Remove warnings gcc 3.3 shows.
++ * argp/argp-help.c (hol_entry_short_iterate): Don't inline.
++ * elf/dl-load.c (fillin_rpath): Likewise.
++ (add_path): Likewise.
++ * elf/dl-version.c (find_needed): Always inline.
++ * elf/do-lookup.c (FCT): Don't inline.
++ * iconv/Makefile: Extend vpath to intl subdir.
++ (iconvconfig-modules): Add hash-string.
++ * iconv/gconv_charset.h (strip): Don't inline.
++ (upstr): Always inline.
++ Move __gconv_compare_alias prototype to...
++ * iconv/gconv_int.h: ...here.
++ * iconv/gconv_db.c: Don't include gconv_charset.h.
++ * iconv/gconv_conf.c (add_alias): Don't inline.
++ (insert_module): Likewise.
++ * iconv/gconv_simple.c (internal_ucs4_loop): Always inline.
++ (internal_ucs4_loop_unaligned): Likewise.
++ (internal_ucs4_loop_single): Likewise.
++ (ucs4_internal_loop): Likewise.
++ (ucs4_internal_loop_unaligned): Likewise.
++ (ucs4_internal_loop_single): Likewise.
++ (internal_ucs4le_loop): Always inline.
++ (internal_ucs4le_loop_unaligned): Likewise.
++ (internal_ucs4le_loop_single): Likewise.
++ (ucs4le_internal_loop): Likewise.
++ (ucs4le_internal_loop_unaligned): Likewise.
++ (ucs4le_internal_loop_single): Likewise.
++ * iconv/loop.c: Always inline the defined functions.
++ * iconvdata/cns11642.h: Likewise.
++ * iconvdata/cns11642l1.h: Likewise.
++ * iconvdata/euc-kr.c: Likewise.
++ * iconvdata/gb2312.h: Likewise.
++ * iconvdata/jis0201.h: Likewise.
++ * iconvdata/jis0208.h: Likewise.
++ * iconvdata/jis0212.h: Likewise.
++ * iconvdata/jisx0213.h: Likewise.
++ * iconvdata/ksc5601.h: Likewise.
++ * iconvdata/utf-7.c (base64): Don't inline.
++ * include/libc-symbols.h (symbol_set_first_element): Add cast
++ (symbol_set_end_p): Likewise.
++ * include/set-hooks (RUN_HOOK): Likewise.
++ * inet/Makefile (aux): Add ifreq.
++ * intl/Makefile (aux): Add some entries from routines. Add
++ hash-string.
++ * intl/hash-string.c: New file.
++ * intl/hash-string.h: Remove hash_string definition. Declare
++ __hash_string.
++ * iconv/gconv_cache.c (find_module_idx): Adjust hash_string caller.
++ * iconv/iconvconfig.c (new_name): Likewise.
++ * intl/dcigettext.c (_nl_find_msg): Likewise.
++ * intl/loadmsgcat.c (_nl_load_domain): Likewise.
++ * io/ftw.c (open_dir_stream): Always inline.
++ (process_entry): Don't inline.
++ * locale/findlocale.c: Include gconv_int.h.
++ * locale/setlocale.c (new_composite_name): Don't inline.
++ * locale/weight.h (findidx): Always inline.
++ * locale/weightwc.h (findidx): Likewise.
++ * locale/programs/linereader.c (lr_ignore_rest): Define here.
++ * locale/programs/linereader.h (lr_ignore_rest): Don't define here,
++ just declare it.
++ (lr_getc): Always inline.
++ (lr_ungetc): Likewise.
++ * nss/nss_files/files-parse.c (parse_list): Likewise.
++ * stdio-common/Makefile (aux): Add printf-parsemb and
++ printf-parsewc.
++ * stdio-common/_itoa.h (_itoa_word): Always inline.
++ (_fitoa_word, _fitoa): Don't define here, only declare.
++ * stdio-common/_itoa.c (_iftoa_word): Add here.
++ (_fitoa): Likewise.
++ * stdio-common/_itowa.h (_itowa_word): Always inline.
++ * stdio-common/printf-parse.h (read_int): Don't inline.
++ (find_spec): Don't define.
++ Declare __find_specmb and __find_specwc.
++ (parse_one_spec): Don't define.
++ Declare __parse_one_specmb and __parse_one_specwc.
++ * stdio-common/printf-parsemb.c: New file.
++ * stdio-common/printf-parsewc.c: New file.
++ * stdio-common/vfprintf.c: Update calls to find_spec and
++ parse_one_spec for new names.
++ * stdio-common/printf-prs.c: Likewise. Define DONT_NEED_READ_INT.
++ * stdlib/Makefile (aux): Add grouping and groupingwc.
++ * stdlib/grouping.c: New file.
++ * stdlib/groupingwc.c: New file.
++ * stdlib/grouping.h (correctly_grouped_prefix): Don't define here.
++ Just prototype.
++ * stdlib/rpmatch.c (try): Don't inline.
++ * stdlib/strtod.c (round_and_return): Don't line.
++ (str_to_mpn): Likewise.
++ (__mpn_lshift_1): Always inline. Optimize only for constant count.
++ Adjust for name change of correctly_grouped_prefix.
++ * sysdeps/generic/strtol.c: Adjust for name change of
++ correctly_grouped_prefix.
++ * string/strxfrm.c (utf8_encode): Don't inline.
++ * sysdeps/generic/dl-cache.c: Define _dl_cache_libcmp.
++ * sysdeps/generic/dl-cache.h: Just declare _dl_cache_libcmp.
++ * sysdeps/generic/ifreq.c: New file.
++ * sysdeps/unix/sysv/linux/ifreq.c: New file.
++ * sysdeps/generic/ifreq.h (__ifreq): Only declare here.
++ * sysdeps/unix/sysv/linux/ifreq.h: Likewise.
++ * sysdeps/generic/ldsodefs.h (_dl_name_match_p): Always inline.
++ * sysdeps/generic/unwind-dw2-fde.c (start_fde_sort): Don't inline.
++ (fde_split): Likewise.
++ (fde_merge): Likewise.
++ (end_fde_sort): Likewise.
++ (init_object): Likewise.
++ (binary_search_unencoded_fdes): Likewise.
++ (binary_search_single_encoding_fdes): Likewise.
++ (binary_search_mixed_encoding_fdes): Likewise.
++ * sysdeps/generic/wordexp.c (w_addchar): Don't inline.
++ * sysdeps/i386/dl-machine.c (elf_machine_runtime_setup): Always inline.
++ * sysdeps/posix/sprofil.c (profil_count): Don't inline.
++ * sysdeps/unix/sysv/linux/Makefile [subdir=io] (sysdep_routines):
++ Add xstatconv.
++ * sysdeps/unix/sysv/linux/xstatconv.h: New file.
++ * sysdeps/unix/sysv/linux/xstatconv.c: Don't inline the function.
++ Export them. Prepend __ to name.
++ * sysdeps/unix/sysv/linux/Dist: Add xstatconv.h.
++ * sysdeps/unix/sysv/linux/fxstat.c: Adjust for name change of
++ conversion functions.
++ * sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
++ * sysdeps/unix/sysv/linux/lxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
++ * sysdeps/unix/sysv/linux/xstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/xstat64.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
++ * sysdeps/unix/sysv/linux/pathconf.c (__statfs_link_max,
++ __statfs_filesize_max, __statfs_symlinks): Define here. __ prepended
++ to name. Change callers.
++ * sysdeps/unix/sysv/linux/pathconf.h (__statfs_link_max,
++ __statfs_filesize_max, __statfs_symlinks): Don't define here, just
++ declare.
++ * sysdeps/unix/sysv/linux/fpathconf.c: Change all callers.
++ * time/tzfile.c (decode): Always inline.
++ * wcsmbs/wcsnrtombs.c: Change type of inbuf to unsigned char*.
++ Remove cast in tomb function call.
++ * wcsmbs/wcsrtombs.c Likewise.
++ * wcsmbs/wcstob.c: Introduce new temp variable to take pointer in
++ tomb function call.
++
++2003-06-10 Ulrich Drepper <drepper@redhat.com>
++
++ * po/zh_CN.po: Update from translation team.
++
++2003-06-10 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/bits/in.h (IPV6_V6ONLY, IPV6_JOIN_ANYCAST,
++ IPV6_LEAVE_ANYCAST, IPV6_IPSEC_POLICY, IPV6_XFRM_POLICY): Define.
++
++2003-06-10 Ulrich Drepper <drepper@redhat.com>
++
++ * inet/Makefile (aux): Add check_pf.
++ * include/ifaddrs.h: Add prototype for __check_pf.
++ * sysdeps/generic/check_pf.c: New file.
++ * sysdeps/unix/sysv/linux/check_pf.c: New file.
++ * sysdeps/unix/sysv/linux/ifaddrs.h (__no_netlink_support): Renamed
++ from no_netlink_support. Export.
++ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't call getifaddrs,
++ call __check_pf.
++
++ * sysdeps/generic/ifaddrs.h: Add libc_hidden_def.
++
++ * sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't leak memory
++ from getifaddr calls.
++
++2003-06-09 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h
++ (__ASSUME_SETRESGID_SYSCALL): Define.
++ * sysdeps/unix/sysv/linux/setegid.c: Use __ASSUME_SETRESGID_SYSCALL
++ instead of __ASSUME_SETRESUID_SYSCALL.
++ (setegid): Only use setresgid32 inline syscall if __NR_setresgid32 is
++ defined.
++ * sysdeps/unix/sysv/linux/seteuid.c (seteuid): Only use setresgid32
++ inline syscall if __NR_setresuid32 is defined.
++ * sysdeps/unix/sysv/linux/i386/setegid.c (setegid): Use
++ __ASSUME_SETRESGID_SYSCALL instead of __ASSUME_SETRESUID_SYSCALL.
++ * sysdeps/unix/sysv/linux/i386/setregid.c: Backout last changes.
++ * sysdeps/unix/sysv/linux/i386/setreuid.c: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/setegid.c (setegid): Protect
++ code handling non-existant setresgid32 syscall with
++ #if __ASSUME_SETRESGID_SYSCALL == 0.
++
++2003-06-09 Andreas Schwab <schwab@suse.de>
++
++ * sunrpc/Makefile (generated): Remove rpc-proto.c, rpc-proto.d.
++ ($(rpcsvc:%.x=$(objpfx)x%$o)): Don't depend on
++ $(objpfx)rpc-proto.d.
++ (rpcsvc-dt-files, rpcsvc-depfiles): Define. Include
++ $(rpcsvc-depfiles) instead of $(objpfx)rpc-proto.d.
++ ($(objpfx)rpc-proto.d, $(objpfx)rpc-proto.c): Remove rules.
++
++2003-06-08 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/seteuid.c (seteuid): Use setresuid32
++ syscall directly if possible. If __ASSUME_SETRESUID_SYSCALL is
++ defined drop compatibility code.
++ * sysdeps/unix/sysv/linux/setegid.c (setegid): Use setresgid32
++ syscall directly if possible. If __ASSUME_SETRESUID_SYSCALL is
++ defined drop compatibility code.
++ * sysdeps/unix/sysv/linux/i386/seteuid.c (seteuid): Use
++ setresuid32 syscall directly if possible.
++ * sysdeps/unix/sysv/linux/i386/setegid.c (setegid): Use
++ setresgid32 syscall directly if possible.
++ * sysdeps/unix/sysv/linux/i386/setregid.c (__setregid): Make POSIX
++ compliant. Don't change sgid.
++ * sysdeps/unix/sysv/linux/i386/setreuid.c (__setreuid): Make POSIX
++ compliant. Don't change suid.
++
++ * config.h.in: Add have-forced-unwind.
++ * configure.in: Add AC_SUBST(libc_cv_forced_unwind).
++
++2003-06-07 Ulrich Drepper <drepper@redhat.com>
++
++ * test-skeleton.c (main): If EXPECTED_STATUS is defined check that
++ returned status from child matches.
++
++ * Makeconfig (gnulib): Add -lgcc_eh once again.
++
++2003-06-06 Ulrich Drepper <drepper@redhat.com>
++
++ * test-skeleton.c (main): Use TEMP_FAILURE_RETRY with waitpid.
++
++ * sysdeps/unix/sysv/linux/i386/sysdep.h (ASMFMT_2): Only allow
++ %edx for first parameter. This means no pushl and therefore the
++ unwind info isn't screwed up.
++
++2003-06-04 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/alpha/dl-machine.h (RTLD_START): Fix top-of-stack backtrace.
++ * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
++ * sysdeps/alpha/elf/start.S: Likewise. Remove pointless allocation.
++ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Use standard ldgp
++ entry sequence and explicit relocs. Add unwind info for sigreturn
++ and rt_sigreturn.
++ * configure.in (libc_cv_asm_cfi_directives): Test .cfi_remember_state.
++
++ * sysdeps/unix/sysv/linux/alpha/syscalls.list (semtimedop): New.
++ Annotate some parameters.
++ * sysdeps/unix/sysv/linux/alpha/sysdep.h (__NR_semtimedop): New.
++
++ * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Fix typo in conversion.
++
++ * include/libc-symbols.h (symbol_set_declare): Use arrays
++ of unspecified size.
++
++2003-06-04 Jakub Jelinek <jakub@redhat.com>
++
++ * config.make.in (ASFLAGS-config): New.
++ * Makeconfig (ASFLAGS): Append $(ASFLAGS-config).
++ * configure.in (libc_cv_as_noexecstack): New check.
++ (ASFLAGS_config): Substitute.
++
++2003-06-04 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/i386/fpu/bits/mathinline.h (log1p, asinh, acosh, atanh,
++ hypot, logb): Protect with #ifdef __FAST_MATH__.
++
++2003-06-04 Thorsten Kukuk <kukuk@suse.de>
++
++ * sysdeps/i386/fpu/bits/mathinline.h (ldexpf, ldexpl): Protect with
++ #ifdef __FAST_MATH__.
++
++2003-06-03 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/glob.c [HAVE_D_TYPE] (glob_in_dir): Also allow
++ DT_LNK entries if GLOB_ONLYDIR is set [PR libc/5043].
++ * posix/globtest.sh: Adjust for this change.
++
++ * sysdeps/unix/sysv/linux/ifaddrs.c (netlink_open): Call getsockname
++ to get the actual PID value used in the records passed up.
++ (getifaddrs): Don't initialize nh.pid here.
++
++2003-06-02 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ifaddrs.c (netlink_receive): Minor
++ optimization.
++
++ * po/zh_CN.po: Update from translation team.
++
++ * posix/getconf.c (main): Also recognize names without the
++ _POSIX_ prefix.
++
++ * elf/Makefile (CFLAGS-dl-lookup.c): Define.
++
++2003-06-02 Bernd Schmidt <bernds@redhat.com>
++
++ * sysdeps/i386/fpu/bits/mathinline.h (sqrt, __sqrtl, ldexp,
++ ldexpf, ldexpl): Only define if __FAST_MATH__.
++
++2003-06-02 Richard C. Bilson <rcbilson@plg.uwaterloo.ca>
++
++ Replace hard-coded offsets into struct sigcontext with generated file.
++ * sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym: New file.
++ * sysdeps/unix/sysv/linux/ia64/Makefile
++ [$(subdir) = stdlib] (gen-as-const-headers): Add it.
++ * sysdeps/unix/sysv/linux/ia64/ucontext_i.h: Include it instead of
++ defining SC_* macros here.
++
++2003-06-02 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/bits/sched.h (CLONE_PID): Remove.
++
++2003-06-01 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/i386/dl-machine.h: Include <sysdep.h>.
++
++2003-06-01 Ulrich Drepper <drepper@redhat.com>
++
++ * test-skeleton.c (main): Request getopt to not reorder the
++ command line.
++
++ * elf/Makefile (CFLAGS-dl-runtime.c): Define.
++
++ * wcsmbs/wcpncpy.c (__wcpncpy): Fix broken implementation to match
++ stpncpy.
++
++2003-05-31 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/bits/sigaction.h (SA_NOCLDWAIT): Define.
++
++2003-05-31 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_plt_conflict):
++ New function.
++ (elf_machine_rela) <case R_PPC64_JMP_SLOT>: Avoid
++ RESOLVE_CONFLICT_FIND_MAP. If RESOLVE_CONFLICT_FIND_MAP is defined,
++ call elf_machine_plt_conflict instead of elf_machine_fixup_plt.
++
++2003-05-31 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/i386/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Add
++ CFI directives.
++
++ * csu/Makefile: Fix Makefile warnings regarding Scrt1.o.
++
++ * libio/fileops.c (_IO_file_open): Don't mark as inline.
++
++ * sysdeps/ia64/elf/initfini.c (gmon_initializer): Mark with
++ attribute used.
++
++2003-05-30 Ulrich Drepper <drepper@redhat.com>
++
++ * scripts/config.guess: Update from master copy.
++ * scripts/config.sub: Likewise.
++
++2003-05-30 Guido Guenther <agx@sigxcpu.org>
++
++ * sysdeps/mips/mips64/bsd-_setjmp.S: Include <sys/asm.h> for
++ SETUP_GP64 and friends.
++ * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Fix register
++ names in internal_syscall{6,7}.
++ * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pread.c [_MIPS_SIM == _ABI64]: Fix
++ number of syscall arguments.
++ * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
++
++2003-05-30 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/x86_64/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
++ Add CFI directives.
++
++ * sysdeps/unix/sysv/linux/x86_64/sigaction.c (RESTORE2): Add CFI
++ directives.
++
++ * sysdeps/generic/sysdep.h: Add CFI_* macros for C files.
++
++ * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
++ Add CFI directives.
++
++2003-05-30 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc32/elf/start.S: Make code compilable with
++ SHARED.
++
++2003-05-11 Andreas Schwab <schwab@suse.de>
++
++ * Makerules: Always use -MP together with -MD.
++ (sed-remove-dotot): Substitute $(..) also at start of line.
++ ($(stdio_lim:h=st)): Use -MD instead of SUNPRO_DEPENDENCIES.
++ Generated defines with a single compiler call.
++ Use $(sed-remove-dotdot).
++ * mach/Makefile ($(objpfx)mach-syscalls.mk): Use -MD instead
++ of DEPENDENCIES_OUTPUT, and use $(sed-remove-objpfx).
++ * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h):
++ Use -MD instead of SUNPRO_DEPENDENCIES, and use $(sed-remove-objpfx).
++ * sysdeps/unix/sysv/linux/mips/Makefile
++ ($(objpfx)syscall-%.h): Likewise.
++
++2003-05-28 Roland McGrath <roland@redhat.com>
++
++ * malloc/malloc.h [! __GNUC__] (__const): Define if undefined.
++
++2003-05-26 Aldy Hernandez <aldyh@redhat.com>
++
++ * soft-fp/soft-fp.h (FP_EX_UNDERFLOW): Define to 0.
++
++2003-05-28 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/setcontext.S: Pass fourth argument to
++ rt_sigprocmask system call.
++ * sysdeps/unix/sysv/linux/ia64/ucontext_i.h (SC_MASK): Fix value.
++ From Peter A. Buhr <pabuhr@plg2.math.uwaterloo.ca>.
++
++2003-05-28 Ulrich Drepper <drepper@redhat.com>
++
++ * include/libc-symbols.h: Define hidden attribute for real also if
++ LIBC_NONSHARED is defined. Patch by Jakub Jelinek.
++
++ * csu/Makefile: Add rules to build Scrt1.o.
++ * sysdeps/i386/elf/start.S: Make code compilable with SHARED.
++ * sysdeps/x86_64/elf/start.S: Likewise.
++
++2003-05-27 Jakub Jelinek <jakub@redhat.com>
++
++ * stdio-common/vfprintf.c (process_arg, process_string_arg): Use
++ pa_int/pa_u_int instead of pa_short_int, pa_u_short_int and pa_char.
++ * stdio-common/printf-parse.h (union printf_arg): Remove pa_char,
++ pa_short_int, pa_u_short_int and pa_float.
++
++2003-05-26 Jakub Jelinek <jakub@redhat.com>
++
++ * libio/strops.c (_IO_str_init_static): Change into a wrapper around
++ _IO_str_init_static_internal.
++ (_IO_str_init_static_internal): Moved from _IO_str_init_static,
++ change size argument to _IO_size_t, don't limit sprintf to 64M.
++ (_IO_str_init_readonly): Call _IO_str_init_static_internal.
++ * libio/wstrops.c (_IO_wstr_init_static): Change size argument to
++ _IO_size_t, don't limit swprintf to 256M.
++ (_IO_wstr_init_readonly): Remove.
++ * libio/libioP.h (_IO_str_init_static_internal, _IO_wstr_init_static):
++ Adjust prototypes.
++ (_IO_wstr_init_readonly): Remove prototype.
++ * libio/iovsprintf.c (_IO_vsprintf): Use
++ _IO_str_init_static_internal instead of INTUSE(_IO_str_init_static).
++ * libio/iovsscanf.c (_IO_vsscanf): Likewise.
++ * libio/memstream.c (open_memstream): Likewise.
++ * libio/obprintf.c (_IO_obstack_vfprintf): Likewise.
++ * libio/vasprintf.c (_IO_vasprintf): Likewise.
++ * libio/vsnprintf.c (_IO_vsnprintf): Likewise.
++ * stdio-common/tst-sprintf.c (main): Add new test.
++
++2003-05-26 Ulrich Drepper <drepper@redhat.com>
++
++ * stdio-common/vfprintf.c (vfprintf): Be bug-compatible with some
++ other implementation in respect of multiple uses of parameter with
++ different types.
++
++2003-05-25 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_FUTEX_REQUEUE for >= 2.5.70.
++
++2003-05-22 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/gettimeofday.S: Add CFI
++ directives.
++ * sysdeps/unix/sysv/linux/x86_64/time.S: Likewise.
++ * sysdeps/x86_64/strtok.S: Likewise.
++
++2003-05-20 Guido Guenther <agx@sigxcpu.org>
++
++ * sysdeps/unix/sysv/linux/mips/bits/siginfo.h: Change SI_ASYNCNL
++ to -60 and define SI_TKILL.
++
++2003-05-21 H.J. Lu <hongjiu.lu@intel.com>
++
++ * math/test-fenv.c (feexcp_nomask_test): Fix comment.
++ (feexcp_mask_test): Likewise.
++
++2003-05-21 Ulrich Drepper <drepper@redhat.com>
++
++ * locale/programs/locale.c (main): Fix typo in last patch.
++
++ * csu/elf-init.c: Mark __preinit_array_start, __preinit_array_end,
++ __init_array_start, __init_array_end, __fini_array_start, and
++ __fini_array_end as hidden.
++
++2003-05-21 Petter Reinholdtsen <pere@hungry.com>
++
++ * locale/programs/locale.c (main): Report an error if setlocale()
++ fails [PR libc/2254].
++
++2003-05-21 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/s390/system.c: New file.
++
++2003-05-21 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (LOADARGS_0,
++ LOADARGS_1, LOADARGS_2, LOADARGS_3, LOADARGS_4, LOADARGS_5,
++ LOADARGS_6): Don't error if syscall argument is a string literal.
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h (LOADARGS_0,
++ LOADARGS_1, LOADARGS_2, LOADARGS_3, LOADARGS_4, LOADARGS_5,
++ LOADARGS_6): Likewise.
++
++2003-05-21 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/generic/sysdep.h (cfi_offset, cfi_startproc,
++ cfi_endproc, cfi_def_cfa, cfi_def_ccfa_register,
++ cfi_def_cfa_offset, cfi_adjust_cfa_offset, cfi_offset): Define.
++
++ * sysdeps/x86_64/sysdep.h (CALL_MCOUNT): Add cfi directives.
++ (ENTRY): Likewise.
++ (END): Likewise.
++
++ * configure.in: Test for asm cfi directives.
++
++ * config.h.in: Add HAVE_ASM_CFI_DIRECTIVES.
++
++2003-05-17 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/syscall.S: Revert last patch.
++
++ * rt/tst-clock_nanosleep.c: Include <time.h> for clock_nanosleep.
++
++2003-05-16 Ulrich Drepper <drepper@redhat.com>
++
++ * rt/Makefile (tests): Add tst-clock_nanosleep.
++ * rt/tst-clock_nanosleep.c: New file.
++ * posix/Makefile (tests): Add tst-nanosleep.
++ * posix/tst-nanosleep.c: New file.
++
++ * sysdeps/unix/clock_nanosleep.c (CPUCLOCK_P): Fix definition.
++
++ * include/features.h (__USE_XOPEN2K): Define also for
++ _POSIX_C_SOURCE>=200112L.
++
++ * sysdeps/unix/sysv/linux/sigwaitinfo.c (do_sigwaitinfo): Fold
++ SI_TKILL code into SI_USER.
++ * sysdeps/unix/sysv/linux/sigtimedwait.c (do_sigtimedwait): Likewise.
++
++ * sysdeps/posix/sigpause.c (do_sigpause): Use sigdelset after all.
++
++2003-05-15 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc32/dl-machine.c (_dl_reloc_overflow):
++ Remove sym argument, always use refsym.
++ (__process_machine_rela): Adjust callers.
++ * sysdeps/powerpc/powerpc64/dl-machine.c (_dl_reloc_overflow):
++ Likewise.
++ * sysdeps/powerpc/powerpc32/dl-machine.h (_dl_reloc_overflow):
++ Adjust prototype.
++ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Likewise.
++
++2003-05-15 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Fix typo
++ (DL_NEED_SYSINFO -> NEED_DL_SYSINFO). If aux value is not known
++ print numeric values.
++
++2003-05-12 Thorsten Kukuk <kukuk@suse.de>
++
++ * inet/netinet/igmp.h: Sync with Linux Kernel 2.5.69 and *BSD.
++
++2003-05-14 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/unix/sysv/linux/ia64/umount.c: New file.
++
++2003-05-14 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/rtld.c (dl_main): For LD_TRACE_PRELINKING print search scope
++ even if no DT_NEEDED is present.
++
++2003-05-13 David Mosberger <davidm@hpl.hp.com>
++
++ * sysdeps/unix/sysv/linux/ia64/setjmp.S: Fix the fix from
++ 2003-03-27: setjmp is NOT a leaf-routine (due to the call to
++ __sigjmp_save) so we can't keep the saved unat value in a scratch
++ register (r16). Use loc2 instead.
++
++2003-05-13 Ulrich Drepper <drepper@redhat.com>
++
++ * csu/Makefile: Do compile elf-init with PIC flag since in dynamic
++ binaries it has to be relocatable.
++
++ * sysdeps/unix/sysv/linux/waitpid.c: Use waitpid syscall is available.
++
++2003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/bits/atomic.h
++ (__arch_compare_and_exchange_bool_8_rel): Define.
++ (__arch_compare_and_exchange_bool_16_rel): Define.
++ (__ARCH_REL_INSTR): Define if not already defined.
++ (__arch_atomic_exchange_and_add_32): Add "memory" to clobber list.
++ (__arch_atomic_decrement_if_positive_32):
++ Add "memory" to clobber list.
++ (__arch_compare_and_exchange_val_32_acq): Remove release sync.
++ (__arch_compare_and_exchange_val_32_rel): Define.
++ (__arch_atomic_exchange_32): Remove.
++ (__arch_atomic_exchange_32_acq): Define.
++ (__arch_atomic_exchange_32_rel): Define.
++ (atomic_compare_and_exchange_val_rel): Define.
++ (atomic_exchange_acq): Use __arch_atomic_exchange_*_acq forms.
++ (atomic_exchange_rel): Define.
++ * sysdeps/powerpc/powerpc32/bits/atomic.h
++ (__arch_compare_and_exchange_bool_32_acq): Remove release sync.
++ (__arch_compare_and_exchange_bool_32_rel): Define.
++ (__arch_compare_and_exchange_bool_64_rel): Define.
++ (__arch_compare_and_exchange_val_64_rel): Define.
++ (__arch_atomic_exchange_64): Remove.
++ (__arch_atomic_exchange_64_acq): Define.
++ (__arch_atomic_exchange_64_rel): Define.
++ * sysdeps/powerpc/powerpc64/bits/atomic.h
++ (__arch_compare_and_exchange_bool_32_rel): Define.
++ (__arch_compare_and_exchange_bool_64_acq): Remove release sync.
++ (__arch_compare_and_exchange_bool_64_rel): Define.
++ (__arch_compare_and_exchange_val_64_acq): Remove release sync.
++ (__arch_compare_and_exchange_val_64_rel): Define.
++ (__arch_atomic_exchange_64): Remove.
++ (__arch_atomic_exchange_64_acq): Define.
++ (__arch_atomic_exchange_64_rel): Define.
++ (__arch_atomic_exchange_and_add_64): Add "memory" to clobber list.
++ (__arch_atomic_decrement_if_positive_64):
++ Add "memory" to clobber list.
++ [!UP](__ARCH_REL_INSTR): Define as lwsync.
++
++2003-05-11 Andreas Schwab <schwab@suse.de>
++
++ * io/Makefile ($(objpfx)ftwtest.out): Use absolute file names.
++
++2003-05-11 Ulrich Drepper <drepper@redhat.com>
++
++ * time/tst-strftime.c (do_test): Add tests for - flag.
++
++2003-05-11 Jim Meyering <jim@meyering.net>
++
++ * time/strftime.c (my_strftime): Let the `-' (no-pad) flag affect
++ the space-padded-by-default conversion specifiers, %e, %k, %l.
++
++2003-05-11 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/generic/sched_setaffinity.c: Fix parameter name.
++
++2003-05-10 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/bits/sched.h: Define cpu_set_t only if not
++ already defined and when really needed.
++ * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
++
++2003-05-09 Thorsten Kukuk <kukuk@suse.de>
++
++ * sysdeps/unix/sysv/linux/netinet/igmp.h: Don't include kernel
++ headers, add defines from kernel header, move it from here...
++ * inet/netinet/igmp.h: ... to here.
++ * inet/Makefile (headers): Add netinet/igmp.h.
++ * sysdeps/unix/sysv/linux/Makefile: Remove netinet/igmp.h.
++ * sysdeps/unix/sysv/linux/Dist: Remove netinet/igmp.h.
++
++2003-05-10 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/pthread/lio_listio64.c (lio_listio64): If SIG == NULL,
++ use dummy sigevent structure with SIGEV_NONE [PR libc/5015].
++
++2003-05-09 Thorsten Kukuk <kukuk@suse.de>
++
++ * libio/bits/stdio.h: Sync prototypes with libio/stdio.h
++ (remove __THROW from possible cancellation points).
++
++2003-05-10 Ulrich Drepper <drepper@redhat.com>
++
++ * posix/sched.h (CPU_SETSIZE): Define.
++
++2003-05-09 Ulrich Drepper <drepper@redhat.com>
++
++ * Makeconfig (gnulib): Remove -lgcc_eh again.
++
++ * posix/sched.h: Change prototypes of sched_getaffinity and
++ sched_setaffinity. Define CPU_SET, CPU_CLR, CPU_ISSET, and CPU_ZERO.
++ * sysdeps/generic/sched_getaffinity.c: Adjust definition.
++ * sysdeps/generic/sched_setaffinity.c: Likewise.
++ * sysdeps/generic/bits/sched.h: Define __CPU_SETSIZE, __NCPUBITS,
++ __CPUELT, __CPUMASK, cpu_set_t, __cpu_mask, __CPU_ZERO, __CPU_SET,
++ __CPU_CLR, and __CPU_ISSET.
++ * sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
++ * sysdeps/unix/sysv/linux/sched_getaffinity.c: New file.
++ * sysdeps/unix/sysv/linux/sched_setaffinity.c: New file.
++
++ * include/atomic.h (atomic_exchange_acq): Renamed from atomic_exchange.
++ (atomic_exchange_rel): New #define.
++ * sysdeps/ia64/bits/atomic.h: Likewise.
++ * sysdeps/i386/i486/bits/atomic.h (atomic_exchange_acq): Renamed from
++ atomic_exchange.
++ * sysdeps/m68k/m68020/bits/atomic.h: Likewise.
++ * sysdeps/powerpc/bits/atomic.h: Likewise.
++ * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: Likewise.
++ * sysdeps/sparc/sparc64/bits/atomic.h: Likewise.
++ * sysdeps/x86_64/bits/atomic.h: Likewise.
++ * csu/tst-atomic.c: Use atomic_exchange_acq instead of atomic_exchange.
++
++ * sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c: New file.
++
++2003-05-08 Ulrich Drepper <drepper@redhat.com>
++
++ * malloc/thread-m.h: Remove special handling of thread_atfork if
++ HAVE_register_atfork_malloc is defined.
++
++2003-05-07 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/syscall.S: Add DWARF2 unwind
++ information.
++
++2003-05-06 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/oldiofdopen.c (_IO_old_fdopen): Use _IO_old_init not _IO_init.
++ * libio/oldiofopen.c (_IO_old_fopen): Likewise.
++ * libio/libioP.h: Declare _IO_old_init.
++ * libio/genops.c (_IO_no_init): Split in two. New function
++ _IO_old_init.
++
++2003-05-05 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/enbl-secure.c (__libc_enable_secure_decided): New
++ variable.
++ (__libc_init_secure): Don't do anything if __libc_enable_secure_decided
++ is nonzero.
++ * include/unistd.h: Declare __libc_enable_secure_decided.
++ * elf/dl-support.c (_dl_aux_init): Recognize AT_UID, AT_EUID, AT_GID,
++ and AT_EGID. If all found, set __libc_enable_secure and
++ __libc_enable_secure_decided.
++
++ * sysdeps/generic/libc-start.c [!SHARED]: Call
++ __libc_check_standard_fds after __libc_init_first.
++
++2003-05-05 Roland McGrath <roland@redhat.com>
++
++ * Makerules (common-before-compile): New variable.
++ ($(common-objpfx)%.make): Depend on that instead of $(before-compile).
++ ($(common-objpfx)%.h $(common-objpfx)%.h.d): Likewise. Move this rule
++ to after all setting of before-compile.
++
++2003-05-05 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/ia64/bits/atomic.h (__arch_compare_and_exchange_val_8_acq,
++ __arch_compare_and_exchange_val_16_acq): Cast 0 to mem's type.
++ * sysdeps/powerpc/powerpc32/bits/atomic.h
++ (__arch_compare_and_exchange_val_64_acq): Likewise.
++ * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h
++ (__arch_compare_and_exchange_val_8_acq,
++ __arch_compare_and_exchange_val_16_acq,
++ __arch_compare_and_exchange_val_64_acq): Likewise.
++ * sysdeps/sparc/sparc64/bits/atomic.h
++ (__arch_compare_and_exchange_val_8_acq,
++ __arch_compare_and_exchange_val_16_acq): Likewise.
++ * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_8_acq,
++ __arch_compare_and_exchange_val_16_acq,
++ __arch_compare_and_exchange_val_64_acq): Likewise.
++ * sysdeps/unix/sysv/linux/sh/bits/atomic.h
++ (__arch_compare_and_exchange_val_64_acq): Likewise.
++ * sysdeps/s390/s390-64/backtrace.c (__backtrace): Add cast to shut
++ up warning.
++ * sysdeps/s390/fpu/fegetenv.c (fegetenv): Likewise.
++
++ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
++ (INLINE_SYSCALL, INTERNAL_SYSCALL_DIRECT, INTERNAL_SYSCALL_SVC0):
++ Return long instead of int.
++ (INTERNAL_SYSCALL_ERROR_P): Cast val to unsigned long, replace
++ 0xfffff001u with -4095UL.
++
++2003-05-05 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/x86_64/fpu_control.h: New from i386.
++
++ * sysdeps/unix/sysv/linux/x86_64/sysdep.h (__NR_semtimedop):
++ Define if not defined.
++
++ * sunrpc/Makefile (generated-dirs): New variable.
++ * resolv/Makefile (generated): New variable.
++
++2003-05-04 Roland McGrath <roland@redhat.com>
++
++ * csu/Makefile ($(csu-dummies) target rule): Don't use a temp C file.
++ Depend on $(before-compile).
++
++ * csu/Makefile ($(objpfx)crt%.o): Replace implicit rule with a static
++ pattern rule. The implicit rule could be ruled out when $(objpfx)
++ didn't exist at the time of its consideration (ugh!).
++
++ * Makerules (+make-deps): Fix target matching.
++ Use $(sed-remove-dotdot).
++
++2003-05-03 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/nscd.c (main): Parse config file right after parsing
++ parameters. Then, if get_stats is true, call receive_print_stats.
++ Drop parameter from nscd_init call.
++ (get_stats): New variable.
++ (parse_opt): Set get_stats, don't call receive_print_stats here.
++ * nscd/nscd.h: Declare dbs, stat_user, and stat_uid. Adjust nscd_init
++ prototype.
++ * nscd/connections.c (stat_user, stat_uid): New variables.
++ (dbs): Make global.
++ (nscd_init): Don't read configuration file here. Drop parameter.
++ (handle_request): Cleanup handling of non-database lookup requests.
++ * nscd/nscd_conf.c (nscd_parse_file): Recognize stat-user entry.
++ Get UID of the specified user. Use xstrdup instead of strdup.
++ * nscd/nscd_stat.c (receive_print_stats): Check UID. If not zero,
++ check stat_user.
++ * nscd/Makefile (nscd-modules): Add xstrdup.
++ * nscd/nscd.conf: Document stat-user entry.
++
++2003-05-03 H.J. Lu <hongjiu.lu@intel.com>
++
++ * sysdeps/unix/sysv/linux/ia64/sysdep.h (__NR_semtimedop): Define
++ if not defined.
++
++2003-04-22 Roland McGrath <roland@redhat.com>
++
++ * elf/elf.h (AT_SYSINFO_EHDR): New macro, replaces AT_SYSINFO_EH_FRAME.
++ * sysdeps/generic/ldsodefs.h (struct rtld_global): Remove
++ dl_sysinfo_eh_frame member, add dl_sysinfo_dso member instead.
++ * elf/dl-support.c: Update defn.
++ * sysdeps/generic/libc-start.c: Don't call __register_frame_info_bases.
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [NEED_DL_SYSINFO]:
++ Set GL(dl_sysinfo_dso) from AT_SYSINFO_EHDR.
++ (_dl_show_auxv): Grok AT_SYSINFO_EHDR, not AT_SYSINFO_EH_FRAME.
++ * elf/rtld.c (dl_main) [NEED_DL_SYSINFO]: If GL(dl_sysinfo_dso) is
++ set, set up a link_map for the preloaded, prelinked object.
++
++2003-05-03 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/gnu/Makefile (generated): Append errlist-compat.c here, ...
++ * stdio-common/Makefile: ... not here.
++
++ * csu/Makefile ($(objpfx)initfini.s): Depend on $(before-compile).
++ * sysdeps/gnu/Makefile ($(objpfx)errlist-compat.c): Likewise.
++
++2003-05-02 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/s390/semtimedop.c: New file.
++
++ * sysdeps/unix/sysv/linux/alpha/ipc_priv.h (IPCOP_semtimedop): Define.
++
++ * sysdeps/generic/dl-fptr.c (_dl_make_fptr): Use 0 not NULL for
++ comparing ftab elements.
++ (_dl_unmap): Fix typo in test.
++ (_dl_make_fptr): Fix typos introduced in last change.
++
++ * sysdeps/generic/dl-fptr.c: Put back one optimization from the
++ original patch. Use non-exported symbols. Mark translatable
++ strings. Pretty printing.
++
++2003-05-02 Roland McGrath <roland@redhat.com>
++
++ * Makerules (do-stamp): Do $(make-target-directory).
++
++2003-04-07 H.J. Lu <hjl@gnu.org>
++
++ * sysdeps/generic/dl-fptr.c: Modify to remove the lock.
++
++2003-04-03 H.J. Lu <hjl@gnu.org>
++
++ * sysdeps/ia64/dl-fptr.c: Moved to ...
++ * sysdeps/generic/dl-fptr.c: Here.
++
++ * sysdeps/generic/dl-fptr.h: New.
++ * sysdeps/ia64/dl-fptr.h: New.
++
++ * sysdeps/ia64/dl-symaddr.c: Moved to ...
++ * sysdeps/generic/dl-symaddr.c: here.
++
++ * sysdeps/ia64/dl-machine.h: Include <dl-fptr.h>.
++ (IA64_BOOT_FPTR_TABLE_LEN): Removed.
++ (ia64_fdesc): Likewise.
++ (ia64_fdesc_table): Likewise.
++ (__ia64_make_fptr): Likewise.
++ (__ia64_init_bootstrap_fdesc_table): Replace __ia64_boot_fptr_table
++ with _dl_boot_fptr_table.
++ (elf_machine_runtime_setup): Replace `struct ia64_fdesc' with
++ `struct fdesc'.
++ (elf_machine_rela): Replace __ia64_make_fptr with _dl_make_fptr.
++
++2003-05-01 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/generic/bp-thunks.h: Protect includes with [!__ASSEMBLER__].
++ * sysdeps/unix/sysv/linux/i386/bp-thunks.h: Likewise.
++
++ * sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h):
++ Use $(make-target-directory).
++ * sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise.
++
++ * Makerules (compile-mkdep-flags): New variable, pass -MD -MF $@.d.
++ (compile-command.S): Don't use ifndef. Append $(compile-mkdep-flags).
++ (compile-command.s, compile-command.c): Likewise.
++ ($(objpfx)%.d): All such pattern rules removed.
++ ($(+sysdir_pfx)sysd-rules): Don't generate them.
++ ($(common-objpfx)dummy.d): Target removed.
++ (make-dummy-dep): Variable removed.
++ (generate-md5): Likewise.
++ (%.d: %.dt): New pattern rule.
++ (+depfiles): Use $(wildcard) function to get just existing *.d files
++ and .d files for existing *.dt files.
++ (common-clean): Remove all *.d and *.dt files.
++ (before-compile): Add $(objpfx). when it doesn't exist,
++ regardless of $(no_deps).
++ * elf/rtld-Rules ($(objpfx)rtld-%.d): All such pattern rules removed.
++ (rtld-depfiles): Use .os.d instead of .d names.
++ Include existing *.d files and .d files for existing *.dt files.
++
++ * Makerules ($(common-objpfx)%.make): Protect with [! subdir].
++ Use -MD, -MT and -MF flags instead of SUNPRO_DEPENDENCIES variable.
++
++ * sysdeps/unix/Makefile ($(common-objpfx)s-%.d): Remove compat.h hack.
++ Do s-*.d includes only if we have some syscall routines in this subdir.
++
++ * include/libc-symbols.h (libc_freeres_ptr): Use %nobits instead of
++ @nobits. The former is accepted by gas on any ELF platform.
++
++2003-05-01 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/semtimedop.c: New file.
++
++ * malloc/malloc.c (mSTATs): Call ptmalloc_init if necessary.
++
++2003-04-29 Andreas Schwab <schwab@suse.de>
++
++ * string/test-strcat.c (do_one_test): Fix attribute name.
++
++2003-04-30 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (ucontext): Make
++ uc_flags long for all ABIs.
++
++2003-04-30 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/sysv/linux/x86_64/sys/debugreg.h
++ (DR_CONTROL_RESERVED): Use correct value for 64-bit.
++ Reported by Andrew Derrick Balsa <andrebalsa@mailingaddress.org>.
++ Add bi-arch support.
++
++2003-04-30 Ulrich Drepper <drepper@redhat.com>
++
++ * malloc/malloc.c (mEMALIGn): Define alias __memalign_internal.
++ (__posix_memalign): Use __memalign_internal instead of memalign.
++
++2003-04-29 Roland McGrath <roland@redhat.com>
++
++ * configure.in: Search for AUTOCONF unconditionally.
++ Just don't complain about missing it under --without-cvs.
++
++ * include/libc-symbols.h (__symbol_set_attribute): New macro,
++ give hidden for [SHARED] and weak for [! SHARED].
++ (symbol_set_declare): Use that. Never need weak_extern these days.
++ * Makerules ($(common-objpfx)shlib.lds): Go back to using PROVIDE.
++ Depend on $(..)Makerules.
++
++2003-04-29 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Use __ protected
++ variants of socket, bind, recvmsg, and sendto.
++
++ * sysdeps/i386/fpu/ftestexcept.c: Also check SSE status word.
++
++ * include/signal.h: Use libc_hidden_proto for sigaddset and sigdelset.
++ * signal/sigaddset.c: Add libc_hidden_def.
++ * signal/sigdelset.c: Likewise.
++
++2003-04-29 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/i386/i486/string-inlines.c (__memcpy_g, __strchr_g): Move
++ to the end of the file.
++
++ * configure.in: Change __oline__ to $LINENO.
++ (HAVE_BUILTIN_REDIRECTION): New check.
++ * config.h.in (HAVE_BUILTIN_REDIRECTION): Add.
++ * include/libc-symbols.h (libc_hidden_builtin_proto,
++ libc_hidden_builtin_def, libc_hidden_builtin_weak,
++ libc_hidden_builtin_ver): Define.
++ * include/string.h (memchr, memcpy, memmove, memset, strcat, strchr,
++ strcmp, strcpy, strcspn, strlen, strncmp, strncpy, strpbrk, strrchr,
++ strspn, strstr): Add libc_hidden_builtin_proto.
++ * intl/plural.y: Include string.h.
++ * sysdeps/alpha/alphaev6/memchr.S (memchr): Add
++ libc_hidden_builtin_def.
++ * sysdeps/alpha/alphaev6/memcpy.S (memcpy): Likewise.
++ * sysdeps/alpha/alphaev6/memset.S (memset): Likewise.
++ * sysdeps/alpha/alphaev67/strcat.S (strcat): Likewise.
++ * sysdeps/alpha/alphaev67/strchr.S (strchr): Likewise.
++ * sysdeps/alpha/alphaev67/strlen.S (strlen): Likewise.
++ * sysdeps/alpha/alphaev67/strrchr.S (strrchr): Likewise.
++ * sysdeps/alpha/memchr.S (memchr): Likewise.
++ * sysdeps/alpha/memset.S (memset): Likewise.
++ * sysdeps/alpha/strcat.S (strcat): Likewise.
++ * sysdeps/alpha/strchr.S (strchr): Likewise.
++ * sysdeps/alpha/strcmp.S (strcmp): Likewise.
++ * sysdeps/alpha/strcpy.S (strcpy): Likewise.
++ * sysdeps/alpha/strlen.S (strlen): Likewise.
++ * sysdeps/alpha/strncmp.S (strncmp): Likewise.
++ * sysdeps/alpha/strncpy.S (strncpy): Likewise.
++ * sysdeps/alpha/strrchr.S (strrchr): Likewise.
++ * sysdeps/arm/memset.S (memset): Likewise.
++ * sysdeps/arm/strlen.S (strlen): Likewise.
++ * sysdeps/generic/memchr.c (memchr): Likewise.
++ * sysdeps/generic/memcpy.c (memcpy): Likewise.
++ * sysdeps/generic/memmove.c (memmove): Likewise.
++ * sysdeps/generic/memset.c (memset): Likewise.
++ * sysdeps/generic/strcat.c (strcat): Likewise.
++ * sysdeps/generic/strchr.c (strchr): Likewise.
++ * sysdeps/generic/strcmp.c (strcmp): Likewise.
++ * sysdeps/generic/strcpy.c (strcpy): Likewise.
++ * sysdeps/generic/strcspn.c (strcspn): Likewise.
++ * sysdeps/generic/strlen.c (strlen): Likewise.
++ * sysdeps/generic/strncmp.c (strncmp): Likewise.
++ * sysdeps/generic/strncpy.c (strncpy): Likewise.
++ * sysdeps/generic/strpbrk.c (strpbrk): Likewise.
++ * sysdeps/generic/strrchr.c (strrchr): Likewise.
++ * sysdeps/generic/strspn.c (strspn): Likewise.
++ * sysdeps/generic/strstr.c (strstr): Likewise.
++ * sysdeps/i386/i486/strcat.S (strcat): Likewise.
++ * sysdeps/i386/i486/strlen.S (strlen): Likewise.
++ * sysdeps/i386/i586/memcpy.S (memcpy): Likewise.
++ * sysdeps/i386/i586/memset.S (memset): Likewise.
++ * sysdeps/i386/i586/strchr.S (strchr): Likewise.
++ * sysdeps/i386/i586/strcpy.S (strcpy): Likewise.
++ * sysdeps/i386/i586/strlen.S (strlen): Likewise.
++ * sysdeps/i386/i686/memcpy.S (memcpy): Likewise.
++ * sysdeps/i386/i686/memmove.S (memmove): Likewise.
++ * sysdeps/i386/i686/memset.S (memset): Likewise.
++ * sysdeps/i386/i686/strcmp.S (strcmp): Likewise.
++ * sysdeps/i386/memchr.S (memchr): Likewise.
++ * sysdeps/i386/memset.c (memset): Likewise.
++ * sysdeps/i386/strchr.S (strchr): Likewise.
++ * sysdeps/i386/strcspn.S (strcspn): Likewise.
++ * sysdeps/i386/strlen.c (strlen): Likewise.
++ * sysdeps/i386/strpbrk.S (strpbrk): Likewise.
++ * sysdeps/i386/strrchr.S (strrchr): Likewise.
++ * sysdeps/i386/strspn.S (strspn): Likewise.
++ * sysdeps/ia64/memchr.S (memchr): Likewise.
++ * sysdeps/ia64/memcpy.S (memcpy): Likewise.
++ * sysdeps/ia64/memmove.S (memmove): Likewise.
++ * sysdeps/ia64/memset.S (memset): Likewise.
++ * sysdeps/ia64/strcat.S (strcat): Likewise.
++ * sysdeps/ia64/strchr.S (strchr): Likewise.
++ * sysdeps/ia64/strcmp.S (strcmp): Likewise.
++ * sysdeps/ia64/strcpy.S (strcpy): Likewise.
++ * sysdeps/ia64/strlen.S (strlen): Likewise.
++ * sysdeps/ia64/strncmp.S (strncmp): Likewise.
++ * sysdeps/ia64/strncpy.S (strncpy): Likewise.
++ * sysdeps/m68k/memchr.S (memchr): Likewise.
++ * sysdeps/m68k/strchr.S (strchr): Likewise.
++ * sysdeps/mips/mips64/memcpy.S (memcpy): Likewise.
++ * sysdeps/mips/mips64/memset.S (memset): Likewise.
++ * sysdeps/mips/memcpy.S (memcpy): Likewise.
++ * sysdeps/mips/memset.S (memset): Likewise.
++ * sysdeps/powerpc/powerpc32/memset.S (memset): Likewise.
++ * sysdeps/powerpc/powerpc32/strchr.S (strchr): Likewise.
++ * sysdeps/powerpc/powerpc32/strcmp.S (strcmp): Likewise.
++ * sysdeps/powerpc/powerpc32/strcpy.S (strcpy): Likewise.
++ * sysdeps/powerpc/powerpc32/strlen.S (strlen): Likewise.
++ * sysdeps/powerpc/powerpc64/memcpy.S (memcpy): Likewise.
++ * sysdeps/powerpc/powerpc64/memset.S (memset): Likewise.
++ * sysdeps/powerpc/powerpc64/strchr.S (strchr): Likewise.
++ * sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Likewise.
++ * sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Likewise.
++ * sysdeps/powerpc/powerpc64/strlen.S (strlen): Likewise.
++ * sysdeps/powerpc/strcat.c (strcat): Likewise.
++ * sysdeps/sparc/sparc32/memchr.S (memchr): Likewise.
++ * sysdeps/sparc/sparc32/memcpy.S (memcpy): Likewise.
++ * sysdeps/sparc/sparc32/memset.S (memset): Likewise.
++ * sysdeps/sparc/sparc32/strcat.S (strcat): Likewise.
++ * sysdeps/sparc/sparc32/strchr.S (strchr, strrchr): Likewise.
++ * sysdeps/sparc/sparc32/strcmp.S (strcmp): Likewise.
++ * sysdeps/sparc/sparc32/strcpy.S (strcpy): Likewise.
++ * sysdeps/sparc/sparc32/strlen.S (strlen): Likewise.
++ * sysdeps/sparc/sparc64/sparcv9b/memcpy.S (memcpy, memmove): Likewise.
++ * sysdeps/sparc/sparc64/memchr.S (memchr): Likewise.
++ * sysdeps/sparc/sparc64/memcpy.S (memcpy, memmove): Likewise.
++ * sysdeps/sparc/sparc64/memset.S (memset): Likewise.
++ * sysdeps/sparc/sparc64/strcat.S (strcat): Likewise.
++ * sysdeps/sparc/sparc64/strchr.S (strchr, strrchr): Likewise.
++ * sysdeps/sparc/sparc64/strcmp.S (strcmp): Likewise.
++ * sysdeps/sparc/sparc64/strcpy.S (strcpy): Likewise.
++ * sysdeps/sparc/sparc64/strcspn.S (strcspn): Likewise.
++ * sysdeps/sparc/sparc64/strlen.S (strlen): Likewise.
++ * sysdeps/sparc/sparc64/strncmp.S (strncmp): Likewise.
++ * sysdeps/sparc/sparc64/strncpy.S (strncpy): Likewise.
++ * sysdeps/sparc/sparc64/strpbrk.S (strpbrk): Likewise.
++ * sysdeps/sparc/sparc64/strspn.S (strspn): Likewise.
++ * sysdeps/sh/memcpy.S (memcpy): Likewise.
++ * sysdeps/sh/memset.S (memset): Likewise.
++ * sysdeps/sh/strlen.S (strlen): Likewise.
++ * sysdeps/s390/s390-32/memchr.S (memchr): Likewise.
++ * sysdeps/s390/s390-32/memcpy.S (memcpy): Likewise.
++ * sysdeps/s390/s390-32/memset.S (memset): Likewise.
++ * sysdeps/s390/s390-32/strcmp.S (strcmp): Likewise.
++ * sysdeps/s390/s390-32/strcpy.S (strcpy): Likewise.
++ * sysdeps/s390/s390-32/strncpy.S (strncpy): Likewise.
++ * sysdeps/s390/s390-64/memchr.S (memchr): Likewise.
++ * sysdeps/s390/s390-64/memcpy.S (memcpy): Likewise.
++ * sysdeps/s390/s390-64/memset.S (memset): Likewise.
++ * sysdeps/s390/s390-64/strcmp.S (strcmp): Likewise.
++ * sysdeps/s390/s390-64/strcpy.S (strcpy): Likewise.
++ * sysdeps/s390/s390-64/strncpy.S (strncpy): Likewise.
++ * sysdeps/x86_64/memcpy.S (memcpy): Likewise.
++ * sysdeps/x86_64/memset.S (memset): Likewise.
++ * sysdeps/x86_64/strcat.S (strcat): Likewise.
++ * sysdeps/x86_64/strchr.S (strchr): Likewise.
++ * sysdeps/x86_64/strcmp.S (strcmp): Likewise.
++ * sysdeps/x86_64/strcpy.S (strcpy): Likewise.
++ * sysdeps/x86_64/strcspn.S (strcspn): Likewise.
++ * sysdeps/x86_64/strlen.S (strlen): Likewise.
++ * sysdeps/x86_64/strspn.S (strspn): Likewise.
++ * string/string-inlines.c: Move...
++ * sysdeps/generic/string-inlines.c: ...here.
++ (__memcpy_g, __strchr_g): Remove.
++ (__NO_INLINE__): Define before including <string.h>,
++ undefine after. Include bits/string.h and bits/string2.h.
++ * sysdeps/i386/i486/string-inlines.c: New file.
++ * sysdeps/i386/string-inlines.c: New file.
++ * sysdeps/i386/i486/Versions: Remove.
++ All GLIBC_2.1.1 symbols moved...
++ * sysdeps/i386/Versions (libc): ...here.
++
++2003-04-29 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/i386/fpu/Makefile: New file.
++ * sysdeps/i386/fpu/fedisblxcpt.c: Also set SSE control word.
++ * sysdeps/i386/fpu/feenablxcpt.c: Likewise.
++ * sysdeps/i386/fpu/feholdexcpt.c: Likewise.
++ * sysdeps/i386/fpu/fesetround.c: Also set SSE rounding mode
++ [PR libc/4987].
++
++2003-04-28 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/nscd_getgr_r.c: Compact code a bit. Add some __builtin_expect.
++ * nscd/nscd_getpw_r.c: Likewise.
++ * nscd/nscd_gethst_r.c: Likewise.
++
++2003-04-27 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/pwdcache.c: Initialize .version element in result.
++ * nscd/grpcache.c: Likewise.
++ * nscd/pwdcache.c: Likewise.
++
++2003-04-27 Andreas Schwab <schwab@suse.de>
++
++ * Makeconfig ($(common-objpfx)sysd-sorted): Fix for running in
++ subdirectory.
++
++2003-04-27 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/unix/sysv/linux/m68k/semtimedop.S: New file.
++
++2003-04-27 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/connections.c (client_queued): New variable.
++ (nscd_run): Revamp the loop. Don't call poll except for cleanup
++ threads. Keep track of the number of delays caused because of busy
++ worker threads.
++ * nscd/nscd.h: Declare client_queued.
++ * nscd/nscd_stat.c: Transmit and print client_queued information.
++
++ * locale/programs/locale.c (show_info): Use '\177' instead of CHAR_MAX.
++
++ * Makerules ($(common-objpfx)shlib.lds): Don't use PROVIDE to
++ define __start_libc_freeres_ptrs and __stop___libc_freeres_ptrs.
++
++2003-04-26 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/dl-close.c [USE_TLS && TLS_TCB_AT_TP] (_dl_close): Reimplement
++ tracking of freed memory in static TLS block.
++ * elf/Makefile: Add rules to build and run tst-tls13.
++ * elf/tst-tls13.c: New file.
++ * elf/tst-tlsmod13.c: New file.
++ * elf/tst-tlsmod13a.c: New file.
++
++ * elf/tst-tls8.c: Adjust types of variables to avoid warnings.
++
++ * elf/dl-reloc.c: Pretty printing.
++
++2003-04-26 Roland McGrath <roland@redhat.com>
++
++ * Makerules ($(common-objpfx)shlib.lds): New target.
++ (common-generated): Add it.
++ (build-shlib, build-module): Use that instead of generating every time.
++ ($(common-objpfx)libc.so): Depend on it.
++ (lib%.so rule): Likewise.
++ (build-module-helper-objlist): Remove %.lds.
++ (LDSEDCMD-c.so): Variable removed.
++ * iconvdata/extra-module.mk ($(objpfx)$(mod).so):
++ Depend on $(common-objpfx)shlib.lds.
++ * dlfcn/Makefile ($(test-modules)): Likewise.
++
++2003-04-26 Roland McGrath <roland@frob.com>
++
++ * sysdeps/mach/hurd/tmpfile.c: Remove USE_IN_LIBIO conditionals.
++
++2003-04-26 Andreas Schwab <schwab@suse.de>
++
++ * elf/dl-close.c (remove_slotinfo): Fix missing parens.
++
++2003-04-25 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/cache.c (cache_search): Keep track of how many chain links
++ we searched and update table statistics.
++ (cache_add): Keep track of how many values are in the table.
++ (prune_cache): Likewise. Keep track of locking success.
++ Print messages about removed entries in separate pass.
++ * nscd/connections.c (handle_request): Don't print debug message here.
++ The caller will do it. Keep track of locking success.
++ (nscd_run): Print debug message. Also print PID of the client process.
++ * nscd/nscd.c (start_time): New variable.
++ (main): Remember start time.
++ * nscd/nscd.h: Declare start_time.
++ (struct database): Add more members for new statistics.
++ * nscd/nscd_stat.c: Add support for sending, receiving, and printing
++ of new statistics.
++
++ * sysdeps/posix/getaddrinfo.c: Include <stdbool.h>.
++
++2003-04-22 Jakub Jelinek <jakub@redhat.com>
++
++ * include/link.h (NO_TLS_OFFSET): Define to 0 if not defined.
++ * elf/dl-close.c (_dl_close): Use NO_TLS_OFFSET.
++ * elf/dl-object.c (_dl_new_object): Initialize l_tls_offset to
++ NO_TLS_OFFSET.
++ * elf/rtld.c (_dl_start_final, _dl_start): Likewise.
++ * elf/dl-reloc.c (CHECK_STATIC_TLS): Use NO_TLS_OFFSET.
++ * sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Likewise.
++ * sysdeps/powerpc/dl-tls.h (TLS_TPREL_VALUE): Don't subtract
++ TLS_TCB_SIZE.
++
++2003-04-24 Ulrich Drepper <drepper@redhat.com>
++
++ * nss/getent.c: Implement alternative host database lookup via
++ getaddrinfo.
++
++ * include/ifaddrs.h: New file.
++ * include/netdb.h: Move definitions of AI_V4MAPPED, AI_ALL, and
++ AI_ADDRCONFIG...
++ * resolv/netdb.h: ...here.
++ * sysdeps/gnu/ifaddrs.c. Use libc_hidden_def where appropriate.
++ * sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
++ * sysdeps/posix/getaddrinfo.c: Implement AI_V4MAPPED, AI_ALL, and
++ AI_ADDRCONFIG.
++
++2003-04-24 Roland McGrath <roland@redhat.com>
++
++ * elf/dl-reloc.c (_dl_allocate_static_tls): Add internal_function.
++
++2003-04-24 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/dl-reloc.c (allocate_static_tls): Rename to...
++ (_dl_allocate_static_tls): ... this function. No longer static.
++ (CHECK_STATIC_TLS): Adjust.
++ * sysdeps/generic/ldsodefs.h (_dl_allocate_static_tls): New prototype.
++ * sysdeps/powerpc/powerpc32/dl-machine.h (__process_machine_rela):
++ Add SYM_MAP argument.
++ (elf_machine_rela): Adjust caller. Declare SYM_MAP unconditionally.
++ Check if SYM_MAP != NULL for R_PPC_DTPREL32. Only handle 32-bit
++ TLS relocs here. #ifdef out relocs which never appear in
++ .gnu.conflict section from dl-conflict.c processing.
++ * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela):
++ Add SYM_MAP argument. Handle 16-bit TLS relocs here.
++
++ * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): #ifdef
++ out relocs which never appear in .gnu.conflict section from
++ dl-conflict.c processing.
++ * sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela): Likewise.
++ * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
++ * sysdeps/i386/dl-machine.h (elf_machine_rela): Likewise.
++ Use r_type in RESOLVE macro.
++
++2003-04-23 Ulrich Drepper <drepper@redhat.com>
++
++ * nis/ypclnt.c (__yp_bind): Expect YPDB parameter to always be !=
++ NULL. Remove code made redundant by this assumption.
++ (__yp_unbind): Add call to free. Adjust all callers.
++
++ * nis/ypclnt.c (yp_all): Free the dom_binding object after
++ unbinding it.
++
++ * grp/initgroups.c (getgrouplist): Don't copy too much into the
++ user buffer if more groups are found than fit into it.
++
++ * nis/nss_nis/nis-initgroups.c (_nss_nis_initgroups_dyn): Use
++ extend_alloca.
++
++2003-04-23 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/posix/getaddrinfo.c (gaih_inet): Check for rc == ERANGE,
++ not rc == errno. Use extend_alloca.
++
++ * elf/tst-tls12.c (main): Fix declaration.
++ * elf/tst-tls10.c (dummy): Make hidden instead of static.
++ * elf/tst-tlsmod7.c (dummy): Likewise.
++ * elf/tst-tlsmod8.c (dummy): Likewise.
++ * elf/tst-tlsmod9.c (dummy): Likewise.
++
++2003-04-22 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/not-cancel.h: Put parens around macro args.
++ (open_not_cancel): Make last argument non-optional.
++ * sysdeps/generic/check_fds.c (check_one_fd): Update caller.
++ * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Likewise.
++ * iconv/gconv_cache.c (__gconv_load_cache): Likewise.
++
++ * include/tls.h: Protect against multiple inclusion.
++
++2003-04-22 Ulrich Drepper <drepper@redhat.com>
++
++ * nscd/nscd-client.h: Add declaration for __nscd_open_socket.
++ * nscd/nscd_gethst_r.c (__nscd_open_socket): Renamed from
++ open_socket. Not static anymore.
++ (nscd_gethst_r): Use __nscd_open_socket.
++ * nscd/nscd_getgr_r.c (open_socket): Removed.
++ (nscd_getgr_r): Use __nscd_open_socket.
++ * nscd/nscd_getpw_r.c (open_socket): Removed.
++ (nscd_getpw_r): Use __nscd_open_socket.
++
++ * nscd/nscd.c (main): Change type of fdn to long int and use strtol.
++ * nscd/connections.c (handle_request): Add cast to avoid warning.
++
++2003-04-21 Ulrich Drepper <drepper@redhat.com>
++
++ * signal/sigfillset.c: Moved to...
++ * sysdeps/generic/sigfillset.c: ...here. If SIGCANCEL is defined
++ do not set the corresponding bit.
++
++ * sysdeps/unix/sysv/linux/sigprocmask.c: Prevent changing mask for
++ SIGCANCEL.
++ * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: Define SI_TKILL.
++ * sysdeps/unix/sysv/linux/bits/siginfo.h: Define SI_TKILL.
++ * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Define SI_TKILL.
++ * sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Define SI_TKILL.
++ * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Define SI_TKILL.
++
++2003-04-20 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/not-cancel.h (open_not_cancel): Cast
++ first syscall parameter to const char*.
++
++2003-04-19 Ulrich Drepper <drepper@redhat.com>
++
++ * intl/Makefile ($(objpfx)msgs.h): Use C locale for sed run.
++
++ * configure.in: Add AC_PROG_CXX.
++ * config.make.in (CXX): Define.
++
++ * sysdeps/i386/i686/hp-timing.h (HP_TIMING_PRINT): Change type of
++ __len to size_t to avoid warnings.
++
++2003-04-18 Jes Sorensen <jes@wildopensource.com>
++
++ * libc/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Sync with Linux
++ 2.5.67.
++ * libc/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
++
++2003-04-19 Ulrich Drepper <drepper@redhat.com>
++
++ * stdlib/cxa_finalize.c (__cxa_finalize): Don't call
++ UNREGISTER_ATFORK if d == NULL.
++
++ * catgets/nl_types.h: Remove __THROW marker from cancellation points.
++ * dirent/dirent.h: Likewise.
++ * dlfcn/dlfcn.h: Likewise.
++ * grp/grp.h: Likewise.
++ * iconv/iconv.h: Likewise.
++ * io/fcntl.h: Likewise.
++ * io/ftw.h: Likewise.
++ * libio/stdio.h: Likewise.
++ * misc/sys/mman.h: Likewise.
++ * misc/sys/select.h: Likewise.
++ * misc/sys/syslog.h: Likewise.
++ * misc/sys/uio.h: Likewise.
++ * posix/spawn.h: Likewise.
++ * posix/unistd.h: Likewise.
++ * posix/sys/wait.h: Likewise.
++ * pwd/pwd.h: Likewise.
++ * resolv/netdb.h: Likewise.
++ * rt/aio.h: Likewise.
++ * shadow/shadow.h: Likewise.
++ * signal/signal.h: Likewise.
++ * socket/sys/socket.h: Likewise.
++ * stdlib/stdlib.h: Likewise.
++ * streams/stropts.h: Likewise.
++ * string/string.h: Likewise.
++ * sysdeps/gnu/utmpx.h: Likewise.
++ * sysvipc/sys/msg.h: Likewise.
++ * termios/termios.h: Likewise.
++ * time/time.h: Likewise.
++ * wcsmbs/wchar.h: Likewise.
++ * iconv/gconv_cache.c: Include <not-cancel.h> and use non-cancelable
++ functions.
++ * misc/daemon.c: Likewise.
++ * sysdeps/generic/backtracesymsfd.c: Likewise.
++ * sysdeps/generic/check_fds.c: Likewise.
++ * sysdeps/unix/sysv/linux/gethostid.c: Likewise.
++ * sysdeps/unix/sysv/linux/not-cancel.h: New file.
++ * sysdeps/generic/not-cancel.h: New file.
++ * csu/Makefile (distribute): Add not-cancel.h.
++ * sysdeps/unix/sysv/linux/fatal-prepare.h: New file.
++ * sysdeps/unix/sysv/linux/Makefile: Define FATAL_PREPARE_INCLUDE
++ for assert.c and assert-perr.c to include <fatal-prepare.h>.
++ * sysdeps/unix/sysv/linux/Dist: Add fatal-prepare.h.
++
++ * sysdeps/posix/remove.c (remove): Rewrite. No need to restore
++ errno and unlink first.
++
++ * io/ftw.c (ftw_dir): In all places assume fchdir is available.
++
++2003-04-18 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/libc_fatal.c (__libc_fatal): Use
++ INTERNAL_SYSCALL instead of INLINE_SYSCALL.
++
++2003-04-17 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/Makefile: Remove db2 directory handling.
++
++ * malloc/Makefile (CFLAGS-malloc.c): Define DEFAULT_TOP_PAD to 128k.
++ * sysdeps/unix/sysv/linux/Makefile (CFLAGS-malloc.c): Add to, not
++ replace.
++
++ * signal/Makefile (tests): Add tst-sigsimple.
++ * signal/tst-sigsimple.c: New file.
++
++2003-04-16 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/Makefile (distribute): Add tst-tlsmod{[7-9],1[0-2]}.c and
++ tst-tls10.h.
++ (tests): Add tst-tls1[0-2].
++ (modules-names): Add tst-tlsmod{[7-8],1[0-2]}.
++ ($(objpfx)tst-tlsmod8.so): Depend on tst-tlsmod7.so.
++ ($(objpfx)tst-tlsmod10.so): Depend on tst-tlsmod9.so.
++ ($(objpfx)tst-tlsmod12.so): Depend on tst-tlsmod11.so.
++ ($(objpfx)tst-tls10): Depend on tst-tlsmod8.so.
++ ($(objpfx)tst-tls11): Depend on tst-tlsmod10.so.
++ ($(objpfx)tst-tls12): Depend on tst-tlsmod12.so.
++ * elf/tst-tls10.c: New test.
++ * elf/tst-tls11.c: New test.
++ * elf/tst-tls12.c: New test.
++ * elf/tst-tls10.h: New file.
++ * elf/tst-tlsmod7.c: New file.
++ * elf/tst-tlsmod8.c: New file.
++ * elf/tst-tlsmod9.c: New file.
++ * elf/tst-tlsmod10.c: New file.
++ * elf/tst-tlsmod11.c: New file.
++ * elf/tst-tlsmod12.c: New file.
++
++2003-04-15 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/bits/atomic.h: Moved ppc32/64 specific code to ...
++ * sysdeps/powerpc/powerpc32/bits/atomic.h: New file.
++ * sysdeps/powerpc/powerpc64/bits/atomic.h: New file.
++
++2003-04-17 Ulrich Drepper <drepper@redhat.com>
++
++ * posix/regex.h: Include <sys/types.h>.
++
++ * signal/sigrelse.c (sigrelse): Use sigdelset and not __sigdelset.
++ The signal number must be checked.
++ * signal/sighold.c (sighold): Use sigaddset and not __sigaddset.
++ The signal number must be checked [PR libc/5004].
++
++ * sysdeps/unix/sysv/linux/system.c: If compiled without threads
++ don't do anything fancy.
++
++ * sysdeps/generic/bits/libc-lock.h: Define
++ __rtld_lock_define_initialized_recursive.
++
++ * nss/getXXbyYY_r.c [USE_NSCD] (REENTRANT_NAME): Only retry
++ contacting nscd if NOT_USENSCD_NAME > 0.
++ * nss/nsswitch.c (__nss_disable_nscd): New function.
++ * nss/nsswitch.h: Declare it.
++ * nss/Versions [GLIBC_PRIVATE]: Export __nss_disable_nscd.
++ * nscd/nscd.c (main): Call __nss_disable_nscd.
++
++2003-04-16 Ulrich Drepper <drepper@redhat.com>
++
++ * stdio-common/perror.c (perror): We don't need to set the offset
++ to _IO_pos_bad, this is how streams are initialized.
++
++ * locale/programs/ld-time.c (TESTARR_ELEM): Make i unsigned.
++ (time_output): If necessary, allocate new buffer for .name string if
++ padding is required.
++
++ * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Check lengths
++ before copying. This might leave holes in the list. Adjust
++ pointers if necessary.
++ (netlink_receive): Allocate only one block.
++ (free_netlink_handle): Adjust appropriately.
++ (getifaddrs): Lots of cleanups.
++
++ * string/test-strncpy.c (do_one_test): Mark start and stop as
++ possibly unused.
++ * string/test-memchr.c: Likewise.
++ * string/test-memcmp.c: Likewise.
++ * string/test-memcpy.c: Likewise.
++ * string/test-memmove.c: Likewise.
++ * string/test-memset.c: Likewise.
++ * string/test-strcat.c: Likewise.
++ * string/test-strchr.c: Likewise.
++ * string/test-strcmp.c: Likewise.
++ * string/test-strcpy.c: Likewise.
++ * string/test-strlen.c: Likewise.
++ * string/test-strncmp.c: Likewise.
++ * string/test-strpbrk.c: Likewise.
++ * string/test-strrchr.c: Likewise.
++ * string/test-strspn.c: Likewise.
++
++2003-04-15 Roland McGrath <roland@redhat.com>
++
++ * libio/fileops.c (_IO_file_close_it): Macro tweak to avoid warning.
++
++ * sysdeps/generic/libc-start.c [NEED_DL_SYSINFO]: Add decl for
++ INTUSE(__register_frame_info_bases).
++
++2003-04-15 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/elf.h: Define AT_SYSINFO_EH_FRAME.
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Handle
++ AT_SYSINFO_EH_FRAME. Adjust string width.
++ (_dl_show_auxv):Display AT_SYSINFO_EH_FRAME value.
++ * sysdeps/generic/ldsodefs.h [NEED_DL_SYSINFO] (struct rtld_global):
++ Add _dl_sysinfo_eh_frame field.
++ * elf/dl-support.c [NEED_DL_SYSINFO]: Define _dl_sysinfo_eh_frame.
++ * sysdeps/generic/libc-start.c [NEED_DL_SYSINFO] Define eh_obj
++ variable.
++ [NEED_DL_SYSINFO] (LIBC_START_MAIN): Call __register_frame_info_bases
++ if _dl_sysinfo_eh_frame is non-NULL.
++
++ * Makeconfig (gnulib): Add -lgcc_eh.
++
++ * config.h.in: Define HAVE_FORCED_UNWIND.
++
++2003-04-15 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/strcmp.S: Convert to full 64-bit.
++ * sysdeps/powerpc/powerpc64/strcpy.S: Likewise.
++
++2003-04-15 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Avoid
++ checking R_PPC_RELATIVE, R_PPC_NONE and whether relocation is
++ against local symbol in conflict processing.
++
++2003-04-15 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/bits/atomic.h
++ [__powerpc64] (__arch_compare_and_exchange_val_64_acq): Define.
++ [! __powerpc64] (__arch_compare_and_exchange_val_64_acq): Defined
++ as abort stub.
++ (__arch_compare_and_exchange_val_32_acq): Define.
++ (atomic_compare_and_exchange_val_acq): Define.
++
++2003-04-15 Ulrich Drepper <drepper@redhat.com>
++
++ * include/atomic.h: Pretty printing.
++
++2003-04-14 Ulrich Drepper <drepper@redhat.com>
++
++ * stdio-common/vfscanf.c: Add casts to avoid warnings.
++
++2003-04-14 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/i386/i486/bits/atomic.h: Rename LOCK to LOCK_PREFIX.
++ * sysdeps/x86_64/bits/atomic.h: Likewise.
++
++2003-04-14 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/sysdep.h: Change PUSHARGS_1 and
++ POPARGS_1 to emit labels for the mov instructions.
++
++2003-04-14 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (ret_NOERRNO): Define.
++
++2003-04-14 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/generic/unwind-dw2.c (_Unwind_GetCFA): Add a cast to silence
++ compiler warning.
++
++ * sysdeps/generic/unwind-pe.h: Fix decl hacks broken in merge.
++
++2003-04-14 Ulrich Drepper <drepper@redhat.com>
++
++ * string/strxfrm.c (STRXFRM): Terminate rulearr at correct
++ position. Reported by jreiser@BitWagon.com.
++
++2003-04-13 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/unwind-dw2-fde.c: Update from recent gcc version.
++ * sysdeps/generic/unwind-dw2-fde.h: Likewise.
++ * sysdeps/generic/unwind-dw2.c: Likewise.
++ * sysdeps/generic/unwind-pe.h: Likewise.
++
++2003-04-13 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/sysv/linux/mips/profil-counter: New.
++ * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Port to n32/n64.
++ * sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: New.
++ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Port to n32/n64.
++ (mcontext_t): Make it match the 32-bit mips kernel in o32.
++ * sysdeps/unix/sysv/linux/mips/sys/user.h: Bring in constants from
++ the mips and mips64 headers.
++ (struct user): Port to n32/n64.
++
++2003-04-12 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Add cast to
++ avoid warning.
++
++ * sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_sigaction): If
++ __ASSUME_VSYSCALL is defined don't add restorer.
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_VSYSCALL for 2.5.53.
++
++2003-04-11 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/libc-start.c: Cleanup MAIN_AUXVEC_ARG handling.
++ Remove HAVE_CANCELBUF code. Replace with code using the new
++ initializers for unwind-based cleanup handling.
++ * sysdeps/generic/unwind.h: Update from latest gcc version.
++ * sysdeps/unix/sysv/linux/i386/sysdep.h: Define labels in a few
++ places to allow unwind data generation.
++ * sysdeps/i386/bits/setjmp.h: Allow file to be included multiple times.
++ * sysdeps/x86_64/bits/setjmp.h: Likewise.
++ * sysdeps/sh/bits/setjmp.h: Likewise.
++ * sysdeps/powerpc/bits/setjmp.h: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/bits/setjmp.h: Likewise.
++ * sysdeps/alpha/bits/setjmp.h: Likewise.
++
++2003-04-11 Roland McGrath <roland@redhat.com>
++
++ * csu/tst-empty.c: New file.
++ * csu/Makefile (tests, tests-static): Add it.
++
++2003-04-11 Jakub Jelinek <jakub@redhat.com>
++
++ * string/test-strcmp.c (do_random_tests): Test whether return value
++ has been promoted to wordsize if the ABI requires caller to do so.
++ * string/test-strncmp.c (do_random_tests): Likewise.
++ * string/test-memcmp.c (do_random_tests): Likewise.
++
++ * sysdeps/powerpc/powerpc64/strcmp.S (strcmp): Sign extend rRTN
++ before returning.
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c
++ (__fe_nomask_env): Try prctl even if __ASSUME_NEW_PRCTL_SYSCALL
++ is not defined, but the prctl constants are.
++
++ * string/tester.c (test_strcmp): Fix a typo.
++
++2003-04-09 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/alpha/fpu/bits/mathdef.h: Remove FLT_EVAL_METHOD definition.
++ * sysdeps/powerpc/fpu/bits/mathdef.h: Likewise.
++
++2003-04-08 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/sys/regdef.h (t4,t5,t6,t7): Renamed to t0..t3 on
++ NewABI.
++ (ta0, ta1, ta2, ta3): Defined to t4..t7 on o32, and a4..a7 on
++ NewABI.
++ * sysdeps/mips/mips64/memcpy.S: Adjust register naming
++ conventions.
++ * sysdeps/mips/mips64/memset.S: Likewise.
++ * sysdeps/unix/mips/sysdep.S (__syscall_error) [_LIBC_REENTRANT]:
++ Use t0 instead of t4 as temporary.
++
++2003-04-07 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/ldconfig.c (parse_conf): Ignore leading whitespace. Use
++ feof_unlocked instead of feof.
++ (add_dir): Ignore trailing whitespace.
++
++2003-04-07 Jakub Jelinek <jakub@redhat.com>
++
++ * posix/bug-regex4.c (main): Cap RANGE and STOP arguments to
++ sum of SIZE1 and SIZE2 arguments.
++
++2003-04-06 Ulrich Drepper <drepper@redhat.com>
++
++ * iconv/iconv_prog.c (process_block): Don't print message about
++ invalid input if the -c option is used.
++ (main): Correctly append IGNORE string for -c option.
++
++2002-04-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
++
++ * sysdeps/sh/bits/atomic.h: Moved to ...
++ * sysdeps/unix/sysv/linux/sh/bits/atomic.h: ... here. Add comments.
++ (__arch_compare_and_exchange_val_*_acq): Add parens around macro
++ arguments.
++ (atomic_bit_set, atomic_bit_test_set): Likewise.
++ (atomic_exchange_and_add): Likewise. Don't evaluate VALUE argument
++ twice.
++ (atomic_add, atomic_add_negative, atomic_add_zero): Likewise.
++
++2003-04-06 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/swapcontext.S: Rewrite register
++ restoration as done for setcontext yesterday.
++
++2003-04-06 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/rtld.c: Revert 2003-03-14 change.
++ * elf/dl-conflict.c (_dl_resolve_conflicts): Move
++ #if ! ELF_MACHINE_NO_RELA conditional into the routine.
++
++2003-04-05 Ulrich Drepper <drepper@redhat.com>
++
++ * sunrpc/xdr.c (xdr_string): Catch nodesize == 0 [PR libc/4999].
++
++ * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r):
++ Always initialize *signgamp before returning an error.
++
++2003-04-05 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/setcontext.S: Rewrite to avoid writing
++ below the stack pointer even if switching to the same context we are
++ running right now.
++
++2003-04-05 Ulrich Drepper <drepper@redhat.com>
++
++ * catgets/gencat.c (read_input_file): Make sure that \n is not
++ alone on the line before testing for continuation.
++
++ * math/test-tgmath.c (compile_test): Initialize c.
++
++2003-04-05 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c: New.
++ * sysdeps/unix/sysv/linux/mips/mips64/n32/truncate64.c: New.
++ * sysdeps/unix/sysv/linux/kernel-features.h: fcntl64 is available
++ on mips n32.
++ * sysdeps/unix/sysv/linux/mips/kernel_stat.h: Explain why
++ XSTAT_IS_XSTAT64 must not be used for mips n64. Use 64-bit data
++ structure on n32 as well.
++ * sysdeps/unix/sysv/linux/mips/bits/stat.h: Use POSIX-compliant
++ data types on n32 and n64.
++
++2003-04-05 Ulrich Drepper <drepper@redhat.com>
++
++ * libio/fileops.c (_IO_new_file_fopen): Don't free step data right
++ after getting them.
++
++ * malloc/thread-m.h [PTHREAD_MUTEX_INITIALIZER]: If
++ HAVE_register_atfork_malloc is defined use __register_atfork_malloc
++ instead of __register_atfork.
++
++2003-04-05 Jakub Jelinek <jakub@redhat.com>
++
++ * stdio-common/reg-printf.c (__register_printf_function): Calloc
++ instead of malloc __printf_arginfo_table and __printf_function_table.
++ Reported by John Reiser <jreiser@BitWagon.com>.
++
++2003-04-04 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/strchr.S: 64-bit optimizations.
++ * sysdeps/powerpc/powerpc64/strlen.S: 64-bit optimizations.
++
++ * sysdeps/powerpc/fpu/bits/mathdef.h (FLT_EVAL_METHOD): Undef before
++ defining.
++
++2003-04-04 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/sysv/linux/mips/bits/fcntl.h (struct flock): Adjust
++ for n64 abi.
++
++2003-04-03 Roland McGrath <roland@redhat.com>
++
++ * configure.in: Fix up use of compilation flags to match the build:
++ For .s files, $ASFLAGS;
++ For .S files, $CPPFLAGS $ASFLAGS;
++ For .c files, $CFLAGS $CPPFLAGS;
++ when linking, add $LDFLAGS.
++ * configure: Regenerated.
++
++2003-04-03 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Reverse test
++ for atomic_compare_and_exchange_bool_acq failure.
++
++2003-04-03 Ulrich Drepper <drepper@redhat.com>
++
++ * posix/unistd.h: Define _POSIX_VERSION, _POSIX2_VERSION,
++ _POSIX2_C_BIND, _POSIX2_C_DEV, _POSIX2_SW_DEV, and
++ _POSXI2_LOCALEDEF to 200112L. Remove _POSIX2_C_VERSION.
++ Remove declaration of pthread_atfork.
++
++2003-04-02 Ulrich Drepper <drepper@redhat.com>
++
++ * locale/iso-639.def: Add many more languages from the current ISO 639.
++
++ * sysdeps/unix/sysv/linux/ipc_priv.h: Define IPCOP_semtimedop.
++ * sysdeps/generic/semtimedop.c: New file.
++ * sysdeps/unix/sysv/linux/i386/semtimedop.S: New file.
++ * sysdeps/unix/sysv/linux/ia64/syscalls.list: Add semtimedop.
++ * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
++ * sysvipc/Makefile (routines): Add semtimedop.
++ * sysvipc/Versions [GLIBC_2.3.3] (glibc): Add semtimedop.
++ * sysvipc/sys/sem.h: Declare semtimedop.
++
++2003-04-02 Daniel Jacobowitz <drow@mvista.com>
++
++ * configure.in: Check for __register_frame_info in both
++ -lgcc and -lgcc_eh.
++ * configure: Regenerated.
++
++2003-04-01 Roland McGrath <roland@redhat.com>
++
++ * scripts/abilist.awk: Allow dots in soname suffix.
++
++ * scripts/abilist.awk (emit): Fix bailout condition.
++
++2003-04-01 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c: Use the
++ IA-64 version.
++
++ * elf/tls-macros.h [__ia64__] (TLS_IE, TLS_LD, TLS_GD): Add gp
++ register as input to asm.
++
++2003-04-01 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (sigevent_t): Fix a typo.
++
++2003-04-01 Andreas Jaeger <aj@suse.de>
++
++ * configure.in: Output as/ld as name if version is too old.
++
++2003-03-31 Daniel Jacobowitz <drow@mvista.com>
++
++ * configure.in: Don't require an installed C library in the test
++ for ".set" assembler support.
++
++2003-03-31 Roland McGrath <roland@redhat.com>
++
++ * signal/tst-sigset.c: New file.
++ * signal/Makefile (tests): Add it.
++
++2003-03-31 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/alpha/bits/signum.h (_NSIG): Define to 65.
++ * sysdeps/unix/sysv/linux/hppa/bits/signum.h (_NSIG): Likewise.
++ * sysdeps/unix/sysv/linux/sparc/bits/signum.h (_NSIG): Likewise.
++ * sysdeps/unix/sysv/linux/bits/signum.h (_NSIG): Likewise.
++ (__SIGRTMAX): Adjust accordingly.
++ * sysdeps/gnu/siglist.c: If OLD2_SIGLIST_SIZE is defined define
++ second compatibility symbol set.
++ * sysdeps/unix/sysv/linux/siglist.h (OLD2_SIGLIST_SIZE): Define.
++
++2003-03-31 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/m68k/m68020/bits/atomic.h (atomic_increment_and_test):
++ Define.
++ (atomic_decrement_and_test): Fix test.
++
++2003-03-31 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/sparc/sparc32/bits/atomic.h: New file.
++ * sysdeps/sparc/sparc32/sparcv9/bits/atomic.h: New file.
++ * sysdeps/sparc/sparc64/bits/atomic.h: New file.
++ * sysdeps/sparc/sparc32/atomicity.h: Removed.
++ * sysdeps/sparc/sparc32/sparcv9/atomicity.h: Removed.
++ * sysdeps/sparc/sparc64/atomicity.h: Removed.
++
++2003-03-30 Roland McGrath <roland@redhat.com>
++
++ * scripts/abilist.awk: Grok .opd foo plus .text .foo as "foo F" alone.
++
++ * intl/po2test.sed: Anchor substitution regexps to fix last change.
++
++2003-03-29 Paolo Bonzini <bonzini@gnu.org>
++
++ * intl/po2test.sed: Unify the transformations for msgid and msgstr
++ and remove a useless s/// command.
++
++2003-03-27 David Mosberger <davidm@hpl.hp.com>
++
++ * sysdeps/ia64/dl-machine.h (RTLD_START): Wrap ".save rp, r0"
++ directive into empty .prologue region to ensure that call-chain
++ is terminated even for the first instruction.
++
++ * sysdeps/ia64/elf/start.S (_start): Use ".save rp, r0" idiom
++ to terminate call-chain right from the get-go.
++
++ * sysdeps/unix/sysv/linux/ia64/fork.S (fork): Remove unnecessary
++ stop bit between compare & branch.
++
++2003-03-29 Ulrich Drepper <drepper@redhat.com>
++
++ * stdlib/strtod.c (INTERNAL): Recognize first digit after decimal
++ point correctly [PR libc/4993].
++
++ * sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Avoid
++ netlink_open calls if netlink is known to not be available.
++
++2003-03-29 Alexandre Oliva <aoliva@redhat.com>
++
++ * configure.in: Add mips64* support.
++ * sysdeps/mips/bits/endian.h: Make it bi-endian.
++ * sysdeps/mips/mipsel/bits/endian.h: Removed.
++ * sysdeps/mips/mips64/n32/el/bits/endian.h: Removed.
++ * sysdeps/mips/mips64/n64/el/bits/endian.h: Removed.
++ * sysdeps/mips/mips32/Makefile (CC): Add -mabi=32.
++ * sysdeps/mips/mips64/n32/Makefile (CC): Add -mabi=n32.
++ * sysdeps/mips/mips64/n64/Makefile (CC): Add -mabi=64.
++ * sysdeps/mips/Implies: Moved wordsize-32 to...
++ * sysdeps/mips/mips32/Implies: New file.
++ * sysdeps/unix/mips/sysdep.h (PSEUDO_NOERRNO, PSEUDO_END_NOERRNO,
++ ret_NOERRNO): New.
++ (ret, PSEUDO_END): Moved past END.
++ (PSEUDO): Moved to...
++ * sysdeps/unix/mips/mips32/sysdep.h: New file.
++ * sysdeps/unix/mips/mips64/n32/sysdep.h: Removed #undef PSEUDO.
++ * sysdeps/unix/mips/mips64/n64/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/mips/sysdep.h: Move to...
++ * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: New file.
++ * sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h: New file.
++
++ * sysdeps/unix/sysv/linux/mips/clone.S (__thread_start):
++ Re-introduce ENTRY.
++
++2003-03-28 Thorsten Kukuk <kukuk@suse.de>
++
++ * sysdeps/unix/sysv/linux/ifaddrs.c: New file.
++ * inet/test-ifaddrs.c: Allow AF_PACKET.
++ * sysdeps/unix/sysv/linux/kernel-features.h: Add
++ __ASSUME_NETLINK_SUPPORT.
++
++2003-03-28 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/vismain.c (do_test): Comment out tests which fail in the moment.
++
++2003-03-26 H.J. Lu <hjl@gnu.org>
++
++ * elf/vismod.h (getvarlocal1): Return const char **.
++ (getvarinmod1): Likewise.
++ (getvaritcpt1): Likewise.
++ (getvarlocal2): Likewise.
++ (getvarinmod2): Likewise.
++ (getvaritcpt2): Likewise.
++ (getvaritcpt3): Likewise.
++ * elf/vismain.c (do_test): Adjusted.
++ * elf/vismod1.c (getvarlocal1): Return address.
++ (getvarinmod1): Likewise.
++ (getvaritcpt1): Likewise.
++ * elf/vismod2.c (getvarlocal2): Likewise.
++ (getvarinmod2): Likewise.
++ (getvaritcpt2): Likewise.
++ * elf/vismod3.c (getvaritcpt3): Likewise.
++
++2003-03-28 Roland McGrath <roland@redhat.com>
++
++ * elf/vismain.c (do_test): Print both addresses when they don't match.
++
++ * scripts/abilist.awk: If given -v filename_regexp and/or -v
++ libname_regexp when parsing names, then produce output only
++ for those matching the given regexps. In combine mode, save all
++ stanzas for a final sorting by stanza header at the end.
++ Emit a blank line between stanzas.
++
++ * scripts/abilist.awk: When given -v combine=1, do parse_names and
++ emit a single output stream with lib name in stanza header lines.
++
++ * scripts/abilist.awk: Emit A for all *ABS* regardless of type.
++
++2003-03-27 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/powerpc/bits/atomic.h [! __powerpc64__]
++ (__arch_atomic_decrement_if_positive_64): Fix bogus definition.
++
++2003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
++
++ * sysdeps/sh/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
++ Return old value. Make asm output reg constraint earlyclobber.
++ Renamed from...
++ (__arch_compare_and_exchange_8_acq): ... this.
++ (__arch_compare_and_exchange_val_16_acq):
++ Return old value. Make asm output reg constraint earlyclobber.
++ Renamed from...
++ (__arch_compare_and_exchange_16_acq): ... this.
++ (__arch_compare_and_exchange_val_32_acq):
++ Return old value. Make asm output reg constraint earlyclobber.
++ Renamed from...
++ (__arch_compare_and_exchange_32_acq): ... this.
++ (__arch_compare_and_exchange_val_64_acq):
++ Renamed from...
++ (__arch_compare_and_exchange_64_acq): ... this.
++ (atomic_exchange_and_add): Use local variables and
++ __arch_compare_and_exchange_val_64_acq.
++ (atomic_add): Likewise.
++ (atomic_add_negative, atomic_add_zero): Use local variables.
++
++2003-03-28 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/mips/sysdep.S: Include sys/asm.h.
++
++2003-03-27 Ulrich Drepper <drepper@redhat.com>
++
++ * Makefile: Remove libmd5crypt goal.
++
++2003-03-25 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Restore
++ special handling of relocations against local symbols.
++
++2003-03-27 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/bits/atomic.h
++ (__arch_compare_and_exchange_bool_32_acq): Move to [!__powerpc64__].
++ [__powerpc64__] (__arch_compare_and_exchange_bool_32_acq):
++ Define PPC64 specific version.
++ [__powerpc64__] (__arch_compare_and_exchange_bool_64_acq):
++ Change (mem) constraint to "b".
++ [__powerpc64__] (__arch_atomic_exchange_and add_64):
++ Replace addi with add. Change (value) contraint to "r".
++ Change (mem) constraint to "b".
++ [__powerpc64__] (__arch_atomic_decrement_if_positive_64): New macro.
++ (__arch_atomic_exchange_32): Change (mem) constraint to "b".
++ (__arch_atomic_exchange_and_add_32): Change (mem) constraint to "b".
++ (__arch_atomic_decrement_if_positive_32): New macro.
++ (atomic_decrement_if_positive): Use __arch* macros.
++
++2003-03-27 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/ia64/fpu/libm-test-ulps: Update.
++
++2003-03-27 Roland McGrath <roland@redhat.com>
++
++ * scripts/rpm2dynsym.sh: New file.
++ * Makefile (distribute): Add it.
++
++2003-03-27 David Mosberger <davidm@hpl.hp.com>
++
++ * sysdeps/unix/sysv/linux/ia64/getcontext.S: Restore caller's
++ ar.unat before returning. Add missing .mem.offset directives
++ to ensure file gets assembled without warnings.
++ * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
++
++2003-03-27 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/sysconf.c (__sysconf) <_SC_MONOTONIC_CLOCK>:
++ Return -1 instead of 0 if clock_getres failed.
++
++2003-03-27 Roland McGrath <roland@redhat.com>
++
++ * scripts/abilist.awk: If variable `parse_names' is set, grok the file
++ header lines and write out foo.symlist files for each foo.so.NN listed.
++
++ * libio/libioP.h (_IO_wfile_jumps): Remove attribute_hidden.
++ This symbol is exported, and we don't want to hide it.
++ Add libc_hidden_proto instead.
++ (_IO_file_jumps): Add libc_hidden_proto.
++ * libio/wfileops.c (_IO_wfile_jumps): Add libc_hidden_data_def.
++ Remove INTVARDEF.
++ * libio/fileops.c (_IO_file_jumps): Likewise.
++ * libio/stdfiles.c: Don't use INTUSE on them.
++ * libio/iofdopen.c (_IO_new_fdopen): Likewise.
++ * libio/iofopen.c (__fopen_internal): Likewise.
++ * libio/freopen.c (freopen): Likewise.
++ * libio/freopen64.c (freopen64): Likewise.
++ * libio/iovdprintf.c (_IO_vdprintf): Likewise.
++
++ * Makerules (check-abi) [$(enable-check-abi) = warn]:
++ Ignore exit status from diff.
++ * configure.in (enable_check_abi): Document possible value "warn".
++ Change default to no for now.
++ * configure: Regenerated.
++
++ * sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Emit stub_warning
++ macro calls and a #include <stub-tag.h> at the end.
++ * Makerules ($(objpfx)stubs): Tweak sed commands.
++
++ * sysdeps/unix/sysv/linux/syscalls.list: Use - rather than EXTRA in
++ caller column for *xattr syscalls, since they are in sysdeps/generic.
++
++ * sysdeps/unix/sysv/linux/i386/setfsuid.c: setfsgid -> setfsuid
++ * sysdeps/unix/sysv/linux/i386/setfsgid.c: setfsuid -> setfsgid
++
++2003-03-26 Roland McGrath <roland@redhat.com>
++
++ * Makerules (check-abi-config): Use /thread instead of /tls when
++ use-thread and not just use-tls is set.
++
++ * Makerules (update-abi): Put quotes around $(update-abi-config).
++
++ * elf/Makefile (check-abi): Depend on check-abi-ld.
++ (update-abi): Depend on update-abi-ld.
++
++2003-03-26 GOTO Masanori <gotom@debian.or.jp>
++
++ * sysdeps/unix/sysv/linux/i386/setfsuid.c: Use INTERNAL_SYSCALL and
++ do not check for errors (unless testing for 32bit variant).
++ * sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
++
++2003-03-27 Philip Blundell <philb@gnu.org>
++
++ * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_RET_NOERRNO): Use
++ unconditional mov. Remove nop.
++
++ * sysdeps/unix/sysv/linux/kernel-features.h
++ (__ASSUME_VFORK_SYSCALL): Define for kernel 2.4 on arm.
++ * sysdeps/unix/sysv/linux/arm/vfork.S: Elide compatibility code
++ when __ASSUME_VFORK_SYSCALL is defined.
++ * sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise for
++ __ASSUME_MMAP2_SYSCALL.
++ * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise for
++ __ASSUME_REALTIME_SIGNALS.
++
++2003-03-26 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/ldsodefs.h (ELF_RTYPE_CLASS_COPY): Define to 2
++ only if DL_NO_COPY_RELOCS is not defined.
++ * sysdeps/ia64/dl-lookupcfg.h: Define DL_NO_COPY_RELOCS.
++
++2003-03-26 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/make-syscalls.sh: When an undefined syscall has
++ SOURCE=-, append its symbol names to make variable unix-stub-syscalls.
++ * sysdeps/unix/Makefile [$(subdir) = misc] [unix-stub-syscalls]
++ (sysdep_routines): Add stub-syscalls.
++ ($(objpfx)stub-syscalls.c): New target.
++ (generated): Add stub-syscalls.c.
++
++ * tls.make.c: Also define use-tls according to USE_TLS macro.
++
++2003-03-26 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (struct siginfo): Avoid
++ no-op padding element.
++ * sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Likewise.
++ * sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise.
++
++2003-03-26 GOTO Masanori <gotom@debian.or.jp>
++
++ * sysdeps/unix/sysv/linux/i386/getgroups.c: Fix the error
++ condition check for the return value of getgroups32.
++
++2003-03-26 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (PSEUDO_NOERRNO):
++ Fix a typo.
++ * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h (PSEUDO_NOERRNO,
++ PSEUDO_END_NOERRNO): Define.
++ * sysdeps/unix/sysdep.h (PSEUDO_END_NOERRNO): Fix a typo.
++ Define to PSEUDO_END.
++
++2003-03-26 Ulrich Drepper <drepper@redhat.com>
++
++ * abilist/librt.abilist: Add new timer interfaces for 64-bit archs.
++
++2003-03-25 Jiro SEKIBA <jir@yamato.ibm.com>
++
++ * iconvdata/euc-tw.c (from_euc_tw): Fix return value of TO_LOOP.
++ * iconvdata/bug-iconv4.c: New file.
++ * iconvdata/Makefile (tests): Add bug-iconv4.
++
++2003-03-25 H.J. Lu <hjl@gnu.org>
++
++ * elf/dl-lookup.c (_dl_lookup_symbol): Avoid looking up protected
++ symbols twice.
++ (_dl_lookup_versioned_symbol): Likewise.
++
++2003-03-26 Jakub Jelinek <jakub@redhat.com>
++
++ * csu/tst-atomic.c (do_test): Add some new
++ atomic_compare_and_exchange_val_acq, atomic_add_zero,
++ atomic_compare_and_exchange_bool_acq and atomic_add_negative tests.
++ * include/atomic.h (atomic_add_negative, atomic_add_zero):
++ Prefix local variable so that it doesn't clash with the one
++ in atomic_exchange_and_add.
++ * sysdeps/ia64/bits/atomic.h (atomic_exchange): Fix for long/void *
++ pointers.
++ (atomic_exchange_and_add): Implement using __sync_fetch_and_add_?i.
++ * sysdeps/powerpc/bits/atomic.h (atomic_exchange_and_add): Force
++ value into register.
++ * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_64_acq):
++ Cast newval to long.
++ * sysdeps/x86_64/bits/atomic.h
++ (__arch_compare_and_exchange_val_64_acq): Cast newval and oldval to
++ long.
++ (atomic_exchange): Cast newvalue to long if sizeof == 8.
++ (atomic_exchange_and_add): Cast value to long if sizeof == 8.
++ (atomic_add, atomic_add_negative, atomic_add_zero): Likewise.
++ (atomic_bit_set): Shift 1L up in all cases to shut up warnings.
++
++2003-03-21 Martin Schwidefsky <schwidefskyde.ibm.com>
++
++ * sysdeps/s390/s390-32/backtrace.c (__backtrace): Remove high order
++ bit from backtrace addresses.
++
++2003-03-21 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/unix/sysv/linux/i386/chown.c: Don't define any versioned
++ __chown symbols.
++
++2003-03-25 Roland McGrath <roland@redhat.com>
++
++ * config.make.in (enable-check-abi): New variable from configure.
++ * configure.in (enable_check_abi): New substituted variable,
++ controlled by --{enable,disable}-check-abi (default yes).
++ * configure: Regenerated.
++ * Makerules [$(enable-check-abi) = yes] (tests): Put this condition
++ on check-abi dependency.
++
++2003-03-26 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/m68k/m68020/bits/atomic.h: Fix typos.
++ * include/atomic.h: Likewise.
++
++ * sysdeps/unix/sysv/linux/m68k/sysdep.h: Define ret_NOERRNO.
++
++2003-03-25 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/powerpc/bits/atomic.h (__arch_atomic_exchange_32): New macro.
++ (__arch_atomic_exchange_64): New macro.
++ (atomic_exchange): Use them.
++ (__arch_atomic_exchange_and_add_32): New macro.
++ (__arch_atomic_exchange_and_add_64): New macro.
++ (atomic_exchange_and_add): Use them.
++ Original patch from Steven Munroe <sjmunroe@us.ibm.com>.
++
++2003-03-25 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/sgidefs.h (_MIPS_ISA_MIPS32, _MIPS_ISA_MIPS64):
++ Define.
++ * sysdeps/mips/sys/asm.h: Test _MIPS_ISA against them on all
++ ISA tests.
++ (ALSZ, ALMASK, SZREG, REG_S, REG_L): Define based on ABI, not ISA.
++ (PTR_ADD, etc): Test _MIPS_SZPTR instead of _MIPS_SZLONG.
++ * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Use _MIPS_SZPTR
++ to decide whether to add padding.
++ * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Use _MIPS_SZPTR
++ to decide whether to add padding.
++ * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h (struct
++ old_kernel_sigaction): Likewise.
++
++2003-03-25 Ulrich Drepper <drepper@redhat.com>
++
++ * csu/tst-atomic.c: Adjust tests to what atomic_add_negative and
++ atomic_add_zero were supposed to do.
++ * include/atomic.h: Adjust atomic_add_negative and atomic_add_zero
++ to x86 behavior.
++
++ * sysdeps/generic/bits/typesizes.h (__TIMER_T_TYPE): Define as void*.
++ This matches the new timer implementation.
++ * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__TIMER_T_TYPE):
++ Likewise.
++ * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__TIMER_T_TYPE):
++ Likewise.
++ * sysdeps/unix/sysv/linux/bits/siginfo.h (struct siginfo): Adjust
++ timer info for what the kernel provides these days.
++ (struct sigevent): Add _tid field.
++ Define SIGEV_THREAD_ID.
++ Remove struct __pthread_attr_s forward declaration.
++ * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Likewise.
++ * sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise.
++
++ * Versions.def (librt): Add GLIBC_2.3.3.
++
++ * abilist/libpthread.abilist: Update for nptl.
++
++2003-03-24 Jon Grimm <jgrimm@us.ibm.com>
++
++ * inet/netinet/in.h: Add IPPROTO_SCTP.
++
++2003-03-24 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/sys/epoll.h (EPOLLET): Define.
++
++2003-03-24 Philip Blundell <philb@gnu.org>
++
++ * sysdeps/unix/sysv/linux/arm/sysdep.h (INTERNAL_SYSCALL):
++ Remove a1 from clobber list.
++
++2003-03-24 Ulrich Drepper <drepper@redhat.com>
++
++ * timezone/antarctica: Update from tzdata2003a.
++ * timezone/asia: Likewise.
++ * timezone/australasia: Likewise.
++ * timezone/europe: Likewise.
++ * timezone/iso3166.tab: Likewise.
++ * timezone/northamerica: Likewise.
++ * timezone/southamerica: Likewise.
++ * timezone/zone.tab: Likewise.
++
++2003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_END_NOERRNO): Fix typo.
++
++2003-03-23 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/sysdep.h (ret_NOERRNO): Avoid
++ unwanted expansion by definining to ret. Patch by Ian Wienand.
++
++ * sysdeps/unix/make-syscalls.sh: Recognize 'E' in first position of
++ the parameter description to denote no error checking. Generate
++ appropriate pseudo asm code.
++ * sysdeps/unix/syscalls.list: Mark getgid, getpid, getuid with 'E'.
++ * sysdeps/unix/sysv/linux/syscalls.list: Mark getegid, geteuid,
++ getpgrp, and getppid with 'E'.
++ * sysdeps/powerpc/powerpc32/sysdep.h: Define PSEUDO_NOERRNO,
++ PSEUDO_END_NOERRNO, and ret_NOERRNO.
++ * sysdeps/powerpc/powerpc64/sysdep.h: Likewise.
++ * sysdeps/unix/sysdep.h: Likewise.
++ * sysdeps/unix/alpha/sysdep.h: Likewise.
++ * sysdeps/unix/sparc/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/cris/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/hppa/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
++ * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
++
++2003-03-23 Roland McGrath <roland@redhat.com>
++
++ * Makeconfig (+includes): Don't use $(last-includes).
++
++2003-03-22 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/sysv/linux/configure.in: Update mips64 patterns.
++ * sysdeps/unix/sysv/linux/configure: Rebuilt.
++
++2003-03-23 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/alpha/fpu/libm-test-ulps: Update.
++ * sysdeps/arm/libm-test-ulps: Update.
++ * sysdeps/hppa/fpu/libm-test-ulps: Update.
++ * sysdeps/ia64/fpu/libm-test-ulps: Update.
++ * sysdeps/mips/fpu/libm-test-ulps: Update.
++ * sysdeps/powerpc/nofpu/libm-test-ulps: Update.
++ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
++ * sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
++ * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
++ * sysdeps/sh/sh4/fpu/libm-test-ulps: Update.
++ * sysdeps/s390/fpu/libm-test-ulps: Update.
++ * sysdeps/x86_64/fpu/libm-test-ulps: Update.
++
++2003-03-22 Roland McGrath <roland@redhat.com>
++
++ * include/atomic.h: Put parens around all macro arguments.
++ (__atomic_val_bysize, __atomic_bool_bysize): New macros.
++ (atomic_compare_and_exchange_val_acq): Use it.
++ (atomic_compare_and_exchange_bool_acq): Likewise.
++ (atomic_increment_and_test): Invert sense of test.
++ (atomic_decrement_and_test): Likewise.
++ * csu/tst-atomic.c: Update those tests to match.
++
++2003-03-22 Jakub Jelinek <jakub@redhat.com>
++
++ * include/atomic.h (atomic_compare_and_exchange_val_acq): Add comment.
++ Don't define if __arch_compare_and_exchange_val_32_acq is not defined.
++ (atomic_compare_and_exchange_bool_acq): Add comment. Don't use
++ __oldval variable in the macro, since it might be macro argument.
++ (atomic_decrement_if_positive): Initialize __memp, remove setting
++ of non-existent variable.
++ (atomic_bit_test_set): Cast 1 to __typeof (*mem) before shifting.
++ * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Implement
++ using atomic_compare_and_exchange_val_acq.
++ (atomic_decrement_if_positive, atomic_bit_test_set): Define.
++ * sysdeps/s390/bits/atomic.h (__arch_compare_and_exchange_val_8_acq):
++ Renamed from...
++ (__arch_compare_and_exchange_bool_8_acq): ... this.
++ (__arch_compare_and_exchange_val_16_acq): Renamed from...
++ (__arch_compare_and_exchange_bool_16_acq): ... this.
++ (__arch_compare_and_exchange_val_32_acq): Return old value. Renamed
++ from...
++ (__arch_compare_and_exchange_bool_32_acq): ... this.
++ (__arch_compare_and_exchange_val_64_acq): Return old value. Renamed
++ from...
++ (__arch_compare_and_exchange_bool_64_acq): ... this.
++ (__arch_compare_and_exchange_val_32_acq): Use __typeof for local
++ variables types instead of assuming int.
++ Change prefix of local variables to __arch.
++ * sysdeps/generic/bits/atomic.h (arch_compare_and_exchange_acq):
++ Remove.
++ (atomic_compare_and_exchange_val_acq,
++ atomic_compare_and_exchange_bool_acq): Define.
++
++ * csu/tst-atomic.c: New test.
++ * csu/tst-atomic-long.c: New test.
++ * csu/Makefile (tests): Add tst-atomic and tst-atomic-long.
++
++ * malloc/memusagestat.c (main): Kill warning if uint64_t is ulong.
++
++ * sysdeps/s390/Versions: Add trailing newline.
++
++ * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Kill warning
++ if INTERNAL_SYSCALL_ERROR_P doesn't use its first argument.
++
++2003-03-22 Andreas Schwab <schwab@suse.de>
++
++ * sysdeps/m68k/fpu/libm-test-ulps: Update.
++
++ * sysdeps/m68k/m68020/bits/atomic.h: New file.
++ * sysdeps/m68k/m68020/atomicity.h: Removed.
++
++2003-03-22 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/elf/ldsodefs.h: Add mips-specific elf64 relocation
++ data structures and macros. Protect from multiple inclusion.
++
++ * sysdeps/mips/dl-machine.h (ELF_MIPS_GNU_GOT1_MASK): Fix harmless
++ typo in #if test.
++
++2003-03-21 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/i386/fpu/libm-test-ulps: Update.
++
++ * math/libm-test.inc (tgamma_test): Recompute some constants with
++ 36 digits precision.
++ (lgamma_test): Likewise.
++ (ccos_test): Likewise.
++ (ccosh_test): Likewise.
++ (clog10_test): Likewise.
++ (csin_test): Likewise.
++ (csinh_test): Likewise.
++ (ctan_test): Likewise.
++ (ctanh_test): Likewise.
++
++2003-03-19 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Regenerated.
++
++2003-03-21 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/i386/i486/bits/atomic.h (atomic_bit_set): Use "ir"
++ constraint to permit non-constant BIT argument.
++ (atomic_bit_test_set): Likewise.
++ * sysdeps/x86_64/bits/atomic.h (atomic_bit_test_set): Likewise.
++ (atomic_bit_set): Likewise. Use 1UL in case that BIT might be >= 32.
++ For quadword case, use "i" constraint if __builtin_constant_p and < 32
++ or "r" constraint otherwise.
++
++ * configure.in: Move AC_PROG_CC and other program-finding before all
++ the version checks.
++ * configure: Regenerated.
++
++2003-03-21 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/mips64/memcpy.S: Fix porting bug that broke
++ unaligned copying of 8-15 bytes. From Chris Demetriou
++ <cgd@broadcom.com>. Fix label names.
++ * sysdeps/mips/mips64/memset.S: Fix label names. Make similar
++ change as to memcpy.S.
++ * sysdeps/mips/memcpy.S: Formatting changes.
++ * sysdeps/mips/memset.S: Likewise.
++
++2003-03-21 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/arm/sysdep.h (CALL_MCOUNT): Add trailing semicolon.
++
++2003-03-21 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/mips64/memcpy.S, sysdeps/mips/mips64/memset.S: New.
++ * sysdeps/mips/memcpy.S, sysdeps/mips/memset.S: Update comments.
++
++2003-03-21 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/i386/i486/bits/atomic.h
++ (__arch_compare_and_exchange_val_64_acq): Rewrite abort-calling
++ version of the macro to avoid compile-time warnings.
++ [! __PIC__] (__arch_compare_and_exchange_64_acq): Rename to above.
++ (atomic_exchange_and_add, atomic_add): Fix name and usage of it.
++ (atomic_increment, atomic_decrement): Likewise.
++
++2003-03-21 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/x86_64/bits/atomic.h: Don't use matching memory constraints.
++ * sysdeps/i386/i486/bits/atomic.h: Likewise.
++
++2003-03-21 Roland McGrath <roland@redhat.com>
++
++ * include/atomic.h (atomic_compare_and_exchange_bool_acq): Typo fix.
++
++2003-03-20 Ulrich Drepper <drepper@redhat.com>
++
++ * include/atomic.h: Define atomic_compare_and_exchange_val_acq,
++ atomic_compare_and_exchange_val_rel,
++ atomic_compare_and_exchange_bool_acq, and
++ atomic_compare_and_exchange_bool_rel instead of
++ atomic_compare_and_exchange_acq and atomic_compare_and_exchange_rel.
++ * sysdeps/i386/i486/bits/atomic.h: Define
++ __arch_compare_and_exchange_val_*_acq instead of
++ __arch_compare_and_exchange_*_acq.
++ * sysdeps/x86_64/bits/atomic.h: Likewise.
++ * sysdeps/ia64/bits/atomic.h: Define
++ __arch_compare_and_exchange_bool_*_acq instead of
++ __arch_compare_and_exchange_*_acq.
++ * sysdeps/powerpc/bits/atomic.h: Likewise.
++ * sysdeps/s390/bits/atomic.h: Likewise.
++ * gmon/mcount.c: Adjust for new form of compare&exchange macros.
++ * malloc/set-freeres.c: Likewise.
++ * nscd/cache.c: Likewise.
++ * stdlib/cxa_finalize.c: Likewise.
++ * sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
++
++2003-03-20 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/bits/setjmp.h: n32 has only 6 call-saved fpregs.
++ * sysdeps/mips/mips64/setjmp_aux.c (__sigsetjmp_aux): Adjust.
++ * sysdeps/mips/mips64/__longjmp.c (__longjmp): Likewise.
++
++ * sysdeps/unix/sysv/linux/mips/pread.c: Don't break up offset
++ into high and low halves on n64.
++ * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
++ * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
++
++2003-03-20 Ulrich Drepper <drepper@redhat.com>
++
++ * include/atomic.h (atomic_decrement_if_positive): Adjust for the
++ correct atomic_compare_and_exchange_acq semantics.
++
++2003-03-20 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/ieee754.h: Remove excess #endif.
++
++2003-03-20 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/powerpc/bits/atomic.h (atomic_exchange): Remove unused
++ variable. Remove superfluous memory clobber.
++
++ * include/atomic.h: Syntax braino fix.
++
++ * posix/tst-nice.c (do_test): Use %m formats instead of printing errno
++ in decimal. Don't bail if niced at start. Just check that nice call
++ bumps the total at all.
++
++2003-03-20 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/bits/setjmp.h: Store all N32 and N64 registers,
++ including pc, gp, sp and fp, as long long.
++ * sysdeps/mips/mips64/setjmp.S: Pass gp to __sigsetjmp_aux.
++ * sysdeps/mips/mips64/setjmp_aux.c: Adjust type of arguments.
++ Add gp argument, and set gp in the jmpbuf to it.
++ * sysdeps/mips/setjmp_aux.c: Revert to o32-only.
++
++2003-03-20 Ulrich Drepper <drepper@redhat.com>
++
++ * include/atomic.h: Define atomic_exchange and
++ atomic_decrement_if_positive if not already defined. Add some
++ __builtin_expect.
++ * sysdeps/i386/i486/bits/atomic.h: Define atomic_exchange.
++ * sysdeps/x86_64/bits/atomic.h: Likewise.
++ * sysdeps/ia64/bits/atomic.h: Pretty printing. Define atomic_exchange.
++ * sysdeps/powerpc/bits/atomic.h: Pretty printing. Define
++ atomic_exchange, atomic_exchange_and_add, and
++ atomic_decrement_if_positive
++
++2003-03-20 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S: Sign-extend
++ with a single instruction.
++
++ * sysdeps/mips/dl-machine.h (ELF_MIPS_GNU_GOT1_MASK): Define
++ properly for n64.
++ (elf_machine_runtime_setup): Cast link_map pointer to Elf Addr
++ type.
++ (elf_machine_rel, elf_machine_rel_relative): Cast symidx to Elf
++ Word before comparing with gotsym. Take reloc_addr argument as
++ void*. Remove the code added for the compiler to drop any
++ alignment assumptions.
++
++2003-03-19 Ulrich Drepper <drepper@redhat.com>
++
++ * Makefile (distribute): Add include/atomic.h and bits/atomic.h.
++ * include/atomic.h: New file.
++ * sysdeps/i386/i486/bits/atomic.h: New file.
++ * sysdeps/x86_64/bits/atomic.h: New file.
++ * sysdeps/s390/bits/atomic.h: New file.
++ * sysdeps/sh/bits/atomic.h: New file.
++ * sysdeps/ia64/bits/atomic.h: New file.
++ * sysdeps/powerpc/bits/atomic.h: New file.
++ * sysdeps/generic/bits/atomic.h: New file.
++ * sysdeps/i386/i486/atomicity.h: Removed.
++ * sysdeps/x86_64/atomicity.h: Removed.
++ * sysdeps/s390/s390-32/atomicity.h: Removed.
++ * sysdeps/s390/s390-64/atomicity.h: Removed.
++ * sysdeps/ia64/atomicity.h: Removed.
++ * sysdeps/powerpc/powerpc32/atomicity.h: Removed.
++ * sysdeps/powerpc/powerpc64/atomicity.h: Removed.
++ * elf/dl-profile.c: Use atomic.h instead of atomicity.h. Adjust
++ use of macros from atomicity.h to new names and semantics.
++ * gmon_mcount.c: Likewise.
++ * malloc/set-freeres.c: Likewise.
++ * nscd/cache.c: Likewise.
++ * stdlib/cxa_finalize.c: Likewise.
++ * sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
++
++2003-03-19 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/ieee754.h: New file, suitable to replace both
++ ../ieee754/ieee754.h and ../ieee754/ldbl-128/ieee754.h, kept
++ mips-specific for now.
++
++2003-03-19 Ulrich Drepper <drepper@redhat.com>
++
++ * stdlib/strtod.c (INTERNAL): While eating trailing zeros handle
++ hexdigits correctly. Reported by Fred Tydeman <tydeman@tybor.com>.
++ * stdlib/tst-strtod.c: Add test for the bug.
++
++ * posix/tst-nice.c (do_test): Remove invalid of return value.
++ Don't run test if initial level != 0.
++
++2003-03-19 Amos Waterland <apw@us.ibm.com>
++
++ * posix/tst-nice.c: New file.
++ * posix/Makefile (tests): Add tst-nice.
++
++2003-03-18 Roland McGrath <roland@redhat.com>
++
++ * abilist: New directory of libfoo.abilist files maintained using
++ scripts/merge-abilist.awk and "make update-abi" rules.
++ * Makefile (distribute): Add abilist/*.abilist.
++ * Makerules [$(build-shared) = yes] [$(subdir)] (tests):
++ Depend on check-abi.
++
++ * configure.in: Move $critic_missing check after all AC_CHECK_PROG_VER.
++ * configure: Regenerated.
++
++ * sysdeps/unix/sysv/linux/syscalls.list (posix_fadvise64): Fix name.
++
++2003-03-18 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/posix/sysconf.c (__sysconf): Handle _SC_MONOTONIC_CLOCK
++ correctly.
++
++2003-03-18 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/memcpy.S: New file.
++
++2003-03-18 Ulrich Drepper <drepper@redhat.com>
++
++ * Versions.def: Add GLIBC_2.3.3 for libpthread.
++
++2003-03-17 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/libc-start.c [!SHARED &&
++ !LIBC_START_MAIN_AUXVEC_ARG]: Compute beginning of auxvec correctly.
++
++2003-03-17 Roland McGrath <roland@redhat.com>
++
++ * include/ctype.h: Revert last change.
++
++2003-03-17 Ulrich Drepper <drepper@redhat.com>
++
++ * argp/tst-argp1.c: Use test-skeleton.c.
++ * locale/tst-C-locale.c: Likewise.
++
++2003-03-17 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/mips64/Implies: Move wordsize-64 to...
++ * sysdeps/mips/mips64/n64/Implies: New file.
++ * sysdeps/mips/mips64/n64/Makefile: New file.
++ * sysdeps/mips/mips64/n64/el/bits/endian.h: New file.
++ * sysdeps/mips/mips64/n32/Implies: New file.
++ * sysdeps/mips/mips64/n32/Makefile: New file.
++ * sysdeps/mips/mips64/n32/el/bits/endian.h: New file.
++ * sysdeps/unix/mips/mips64/n32/sysdep.h: New file.
++ * sysdeps/unix/mips/mips64/n64/sysdep.h: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/llseek.c: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/recv.c: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/send.c: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/syscall.S: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/syscalls.list: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/umount.c: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S: New file.
++
++ * sysdeps/unix/sysv/linux/configure.in (libc_cv_slibdir): Use
++ lib64 for mips64/n64 and lib32 for mips64/n32.
++ (ldd_rewrite_script): Needed for all mips64 configurations.
++ * sysdeps/unix/sysv/linux/configure: Rebuilt.
++ * sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed: New file.
++ * sysdeps/unix/sysv/linux/mips/mips64/Dist: New file.
++
++ * sysdeps/mips/machine-gmon.h (MCOUNT): Define for N32 and N64 as
++ well.
++
++ * sysdeps/unix/sysv/linux/mips/configure.in: New. Pre-process
++ asm/unistd.h into asm-unistd.h.
++ * sysdeps/unix/sysv/linux/mips/configure: Generated.
++ * sysdeps/unix/sysv/linux/mips/Makefile: Do custom processing
++ of syscall list.
++ * sysdeps/unix/sysv/linux/mips/sys/syscall.h: New file.
++ * sysdeps/unix/sysv/linux/mips/clone.S: Don't include
++ asm/unistd.h.
++
++ * sysdeps/unix/sysv/linux/mips/sys/ptrace.h: New file.
++ * sysdeps/unix/sysv/linux/mips/ptrace.c: New file. Use long
++ long type for registers on n32.
++
++ * sysdeps/mips/bits/wordsize.h: New file, appropriate for all
++ 3 ABIs.
++ * sysdeps/mips/mips64/gmp-mparam.h: New file. Define
++ BITS_PER_LONGINT to __WORDSIZE, to match all 3 ABIs.
++ * sysdeps/mips/setjmp_aux.c (STRINGXP, REGS, PTRS): New macros.
++ (__sigsetjmp_aux): Use them. Adjust for all 3 ABIs.
++ * sysdeps/mips/elf/start.S: Adjust for all 3 ABIs.
++ * sysdeps/unix/mips/brk.S: Likewise.
++ * sysdeps/unix/mips/sysdep.S: Likewise.
++ * sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
++ * sysdeps/mips/bits/setjmp.h (__jmp_buf): Likewise.
++ * sysdeps/mips/sys/ucontext.h: Likewise.
++ * sysdeps/unix/sysv/linux/mips/sys/profcs.h: Likewise.
++ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise.
++ * sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise.
++ * sysdeps/mips/mips64/bsd-_setjmp.S: Likewise.
++ * sysdeps/mips/mips64/bsd-setjmp.S: Likewise.
++ * sysdeps/mips/mips64/setjmp.S: Likewise.
++ * sysdeps/mips/mips64/bits/setjmp.h: Deleted, obsolete.
++ * sysdeps/mips/mips64/soft-fp/sfp-machine.h: Use long long for
++ 64-bit types.
++
++2003-03-16 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/clock_settime.c (HANDLE_REALTIME): Define tv here,
++ not at function level.
++ * sysdeps/unix/clock_gettime.c (HANDLE_REALTIME): Likewise.
++
++2003-03-15 Roland McGrath <roland@redhat.com>
++
++ * nis/nss_nis/nis-hosts.c (internal_gethostbyname2_r): int -> size_t
++ * nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Likewise.
++ * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Likewise.
++ * nis/nis_table.c (__create_ib_request): Likewise.
++
++ * posix/fnmatch_loop.c: Add casts for signedness.
++ * nss/nss_files/files-hosts.c: Likewise.
++ * nscd/nscd_getpw_r.c (nscd_getpw_r): Likewise.
++ * gmon/gmon.c (write_call_graph): Use u_long for FROM_LEN.
++ * nscd/nscd_getgr_r.c (nscd_getgr_r): Use nscd_ssize_t for CNT.
++
++ * configure.in (libc_cv_visibility_attribute): Use AC_TRY_COMMAND,
++ get errors into the log file.
++ (libc_cv_broken_visibility_attribute): Likewise.
++ (libc_cv_broken_alias_attribute): Likewise.
++ (libc_cv_asm_weak_directive): Likewise.
++ (libc_cv_need_minus_P): Likewise.
++ (libc_cv_dot_text): Likewise.
++ (libc_cv_asm_global_directive): Likewise.
++ (libc_cv_asm_type_prefix): Likewise.
++ * configure: Regenerated.
++
++ * nscd/cache.c (cache_search): Give first arg type `request_type'.
++ * nscd/nscd.h: Update decl.
++
++ * nscd/nscd_getpw_r.c (nscd_getpw_r): Add casts for signedness.
++ * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise.
++ * elf/dl-close.c (_dl_close): Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/chown.c (__chown): int -> size_t
++ * io/fts.c (fts_build): Likewise.
++ * elf/cache.c (add_to_cache): Likewise.
++ * locale/programs/locarchive.c (show_archive_content): Likewise.
++
++ * posix/fnmatch.c (fnmatch): Tweak __builtin_expect use.
++
++ * include/ctype.h (__ctype_b_loc): Tweak type punning to make gcc 3.3
++ happy.
++ (__ctype_toupper_loc, __ctype_tolower_loc): Likewise.
++
++2003-03-15 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/system.c: Use the generic Linux
++ code for most parts.
++
++2003-03-15 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/i386/system.c: Moved to ...
++ * sysdeps/unix/sysv/linux/system.c: ... here.
++ (FORK): Don't #define if already #define'd.
++ * sysdeps/unix/sysv/linux/s390/system.c: File removed.
++ * sysdeps/unix/sysv/linux/kernel-features.h [__powerpc__]:
++ (__ASSUME_CLONE_THREAD_FLAGS): Define for kernel >= 2.5.64.
++
++ * dlfcn/tst-dlinfo.c: New file.
++ * dlfcn/Makefile (tests): Add tst-dlinfo.
++ ($(objpfx)tst-dlinfo): New target.
++
++ * dlfcn/dlinfo.c: New file.
++ * dlfcn/Makefile (libdl-routines): Add it.
++ * dlfcn/Versions (libdl: GLIBC_2.3.3): Add dlinfo.
++ * dlfcn/dlfcn.h [__USE_GNU]: Declare dlinfo.
++ [__USE_GNU] (RTLD_DI_*): New enum constants.
++ [__USE_GNU] (Dl_serpath, Dl_serinfo): New types.
++ * elf/dl-load.c (cache_rpath): New inline function.
++ (_dl_map_object): Use it.
++ (_dl_rtld_di_serinfo): New function.
++ * sysdeps/generic/ldsodefs.h: Declare it.
++ * elf/Versions (ld: GLIBC_PRIVATE): Add it.
++
++ * sysdeps/powerpc/elf/libc-start.c (AUX_VECTOR_INIT): Define it.
++ (LIBC_START_MAIN, LIBC_START_MAIN_AUXVEC_ARG, MAIN_AUXVEC_ARG)
++ (INIT_MAIN_ARGS): Define, and #include <sysdeps/generic/libc-start.c>.
++ (__libc_start_main): Just call the generic one for most of the work.
++
++ * sysdeps/generic/libc-start.c [LIBC_START_MAIN]: If defined, define a
++ static function by that name instead of BP_SYM (__libc_start_main).
++ [LIBC_START_MAIN_AUXVEC_ARG]: Take AUXVEC as argument.
++ [MAIN_AUXVEC_ARG]: Pass 4th argument to MAIN.
++ [INIT_MAIN_ARGS]: Give INIT the same args as MAIN.
++
++ * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [DL_PLATFORM_AUXV]:
++ Use this macro for extra AT_* cases.
++ * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c (DL_PLATFORM_AUXV):
++ New macro, guts from ...
++ (__aux_init_cache): ... here, function removed.
++ (DL_PLATFORM_INIT): Don't define this.
++
++ * sysdeps/powerpc/powerpc32/memset.S: Put __cache_line_size in bss.
++ * sysdeps/powerpc/powerpc64/memset.S: Likewise.
++
++ * Versions.def (libthread_db): Add GLIBC_2.3.3 set.
++
++2003-03-14 Roland McGrath <roland@redhat.com>
++
++ * dlfcn/dlerror.c (dlerror): If objname is "", don't put ": " after it.
++
++2003-03-14 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/Makefile (syscall-%.h): Fix a typo.
++
++ * sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Include
++ sysdeps/posix/pause.c instead of sysdeps/unix/common/pause.c.
++
++2003-03-14 Alexandre Oliva <aoliva@redhat.com>
++
++ * sysdeps/mips/fpu/bits/mathdef.h: New.
++ (__NO_LONG_DOUBLE_MATH): Define for o32.
++
++ * sysdeps/mips/sys/asm.h: Formatting changes.
++ (PTR, PTRSIZE, PTRLOG): Adjust for all 3 ABIs.
++ (CPADD): Define for all of them.
++ (SETUP_GP, SETUP_GPX, SETUP_GPX_L, SAVE_GP, SETUP_GP64,
++ SETUP_GPX64, SETUP_GPX64_L, RESTORE_GP64, USE_ALT_CP,
++ NARGSAVE): Define per ABI spec.
++ (END): Don't redefine.
++ (LONG_SLL, LONG_SLLV, LONG_SRL, LONG_SRLV, LONG_SRA,
++ LONG_SRAV): Remove duplicate definitions.
++ (PTR_ADD, PTR_ADDI, PTR_ADDU, PTR_ADDIU, PTR_SUB, PTR_SUBI,
++ PTR_SUBU, PTR_SUBIU, PTR_L, PTR_S, PTR_SLL, PTR_SLLV, PTR_SRL,
++ PTR_SRLV, PTR_SRA, PTR_SRAV, PTR_SCALESHIFT): Define for n32.
++ (PTR_LA): Define for all 3 ABIs.
++
++ * sysdeps/mips/dl-machine.h: Include sys/asm.h.
++ (elf_machine_matches_host): Prevent linking of o32 and n32
++ together.
++ (elf_machine_dynamic): Document assumption on $gp.
++ (STRINGXP, STRINGXV, STRINGV_): New macros.
++ (elf_machine_load_address): Use them to stringize PTR_LA and
++ PTR_SUBU.
++ (ELF_DL_FRAME_SIZE, ELF_DL_SAVE_ARG_REGS,
++ ELF_DL_RESTORE_ARG_REGS, IFABIO32): New macros used in...
++ (_dl_runtime_resolve): Adjust it for all 3 ABIs.
++ (__dl_runtime_resolve): Cast the symtab initializer to the
++ right type.
++ (RTLD_START): Use it. Adjust it for all 3 ABIs.
++ (elf_machine_rel): Mark as always_inline in RTLD_BOOTSTRAP.
++ Handle 64-bit R_MIPS_REL composite relocation and accept
++ R_MIPS_64 relocations to shift addend size to 64 bits.
++ Document assumption regarding local GOT entries. Document
++ backward-compatibility departing from the ABI behavior in
++ applying relocations that reference section symbols, no longer
++ used. Support relocations to mis-aligned offsets.
++ * sysdeps/mips/mips64/dl-machine.h: Deleted, obsolete.
++
++ * sysdeps/unix/sysv/linux/mips/readelflib.c: New file.
++
++ * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
++ (_KERNEL_NSIG_BPW): Define in terms of _MIPS_SZLONG.
++ * sysdeps/unix/sysv/linux/mips/sigaction.c: Define restore and
++ restore_rt functions. Use them.
++
++ * sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Don't
++ .set mips2 on new abis.
++
++2003-03-13 Ulrich Drepper <drepper@redhat.com>
++
++ * posix/getconf.c: Recognize POSIX2_SYMLINKS.
++ * sysdeps/generic/bits/confname.h: Define _PC_2_SYMLINKS.
++ * sysdeps/posix/fpathconf.c: Handle _PC_2_SYMLINKS.
++ * sysdeps/posix/pathconf.c: Likewise.
++ * sysdeps/unix/sysv/linux/fpathconf.c: Likewise.
++ * sysdeps/unix/sysv/linux/pathconf.c: Likewise.
++ * sysdeps/unix/sysv/linux/pathconf.h: Define statfs_symlinks.
++
++ * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define some more magic
++ words.
++
++2003-03-14 Alexandre Oliva <aoliva@redhat.com>
++
++ * include/gmp.h: Include/gmp-mparam.h.
++ * stdlib/strtod.c: Include gmp-mparam.h before gmp.h and
++ gmp-impl.h.
++
++ * elf/dl-conflict.c: Don't compile _dl_resolve_conflicts if
++ ELF_MACHINE_NO_RELA is set.
++ * elf/rtld.c (dl_main): No prelink support for REL-only.
++
++ * sysdeps/generic/ldconfig.h (FLAG_MIPS64_LIBN32,
++ FLAG_MIPS64_LIBN64): Define.
++ * elf/cache.c (print_entry): Handle mips64 n32 and n64.
++
++ * sysdeps/mips/memcpy.S: Map t0-3 to a4-7 on new abis.
++ * sysdeps/mips/memset.S: Likewise.
++ * sysdeps/mips/sys/regdef.h: Alias a4-7 or t0-3 to $8-11
++ depending on the ABI.
++
++ * sysdeps/mips/atomicity.h (exchange_and_add, atomic_add):
++ Don't .set mips2 on new abi.
++ (compare_and_swap): Likewise. Support 64-bit longs on n64.
++
++ * stdlib/fpioconst.h: Include gmp.h with angle brackets.
++
++2003-03-13 Roland McGrath <roland@redhat.com>
++
++ * elf/dl-load.c (_dl_map_object_from_fd): Bail if no PT_LOAD phdrs
++ found. Reported by Alexandre Oliva <aoliva@redhat.com>.
++
++2003-03-13 Alexandre Oliva <aoliva@redhat.com>
++
++ * stdio-common/_itoa.c (_itoa_base_table): Make 64-bit
++ literals long long.
++ * stdlib/fpioconst.c: Likewise.
++ * stdlib/strtod.c: Likewise.
++
++ * sysdeps/mips/add_n.S: Use L macro for local labels.
++ * sysdeps/mips/addmul_1.S: Likewise.
++ * sysdeps/mips/lshift.S: Likewise.
++ * sysdeps/mips/memcpy.S: Likewise.
++ * sysdeps/mips/memset.S: Likewise.
++ * sysdeps/mips/mul_1.S: Likewise.
++ * sysdeps/mips/rshift.S: Likewise.
++ * sysdeps/mips/sub_n.S: Likewise.
++ * sysdeps/mips/submul_1.S: Likewise.
++ * sysdeps/mips/mips64/add_n.S: Likewise.
++ * sysdeps/mips/mips64/addmul_1.S: Likewise.
++ * sysdeps/mips/mips64/lshift.S: Likewise.
++ * sysdeps/mips/mips64/mul_1.S: Likewise.
++ * sysdeps/mips/mips64/rshift.S: Likewise.
++ * sysdeps/mips/mips64/sub_n.S: Likewise.
++ * sysdeps/mips/mips64/submul_1.S: Likewise.
++ * sysdeps/unix/mips/sysdep.h: Define L() according to ABI
++ conventions. Define END as in sys/asm.h.
++ * sysdeps/unix/mips/sysdep.S: Likewise.
++ * sysdeps/unix/mips/wait.S: Likewise.
++ * sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
++
++ * sysdeps/ieee754/dbl-64/dbl2mpn.c (__mpn_extract_double):
++ Cast shifted values that may be too narrow to mp_limb_t.
++ * sysdeps/ieee754/dbl-64/mpn2dbl.c (__mpn_construct_double):
++ Likewise.
++ * sysdeps/ieee754/flt-32/mpn2flt.c (__mpn_construct_float):
++ Likewise.
++ * sysdeps/ieee754/ldbl-128/ldbl2mpn.c
++ (__mpn_extract_long_double): Likewise.
++ * sysdeps/ieee754/ldbl-128/mpn2ldbl.c
++ (__mpn_construct_long_double): Likewise.
++ * sysdeps/ieee754/ldbl-96/ldbl2mpn.c
++ (__mpn_extract_long_double): Likewise.
++ * sysdeps/ieee754/ldbl-96/mpn2ldbl.c
++ (__mpn_construct_long_double): Likewise.
++
++2003-03-13 Roland McGrath <roland@redhat.com>
++
++ * elf/Makefile ($(objpfx)librtld.mk): Tweak regexp so that one-line
++ entries in the map file match too.
++
++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.
++
++2003-03-13 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/sysdep.h (BREAK_INSN_1, BREAK_INSN,
++ ASM_OUTARGS_0, ASM_OUTARGS_1, ASM_OUTARGS_2, ASM_OUTARGS_3,
++ ASM_OUTARGS_4, ASM_OUTARGS_5, ASM_OUTARGS_6): Define.
++ (INTERNAL_SYSCALL, INLINE_SYSCALL): Use it. Make syscall arguments
++ clobbered by the syscall.
++ (ASM_ARGS_1, ASM_ARGS_2, ASM_ARGS_3, ASM_ARGS_4, ASM_ARGS_5,
++ ASM_ARGS_6): Change constraints from r to index of corresponding
++ output register.
++ * sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Swap
++ ptid and ctid to match kernel.
++ * sysdeps/unix/sysv/linux/ia64/system.c (FORK): Likewise.
++
++2003-03-12 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/powerpc/powerpc64/elf/configure.in: Remove
++ AC_DEFINE(PI_STATIC_AND_HIDDEN). Not supported for PowerPC64.
++ * sysdeps/powerpc/powerpc64/elf/configure: Regenerated.
++
++2003-03-11 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela):
++ Check SYM_MAP rather than SYM as definedness check.
++ Handle R_PPC64_ADDR32, R_PPC64_ADDR30, and R_PPC64_REL64 relocs.
++ Don't handle R_PPC64_REL24 reloc.
++ Mostly from Steven Munroe <sjmunroe@us.ibm.com>.
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h
++ [USE_TLS] (elf_machine_type_class): Match all the TLS relocs in a
++ block, so we cover all the TPREL16* flavors without 6 ||s.
++ [USE_TLS] (elf_machine_tprel): New function.
++ (elf_machine_rela) [USE_TLS]: Use elf_machine_tprel for TPREL64 reloc,
++ and handle TPREL16 relocs too. Return rather than break for DTPREL64.
++ Mostly from Steven Munroe <sjmunroe@us.ibm.com>.
++
++2003-03-11 Ralf Baechle <ralf@linux-mips.org>
++
++ * sysdeps/unix/sysv/linux/mips/clone.S (__thread_start): Use jal
++ instead of jalr to invoke subroutine so restoring the $gp register
++ will work properly.
++
++2003-03-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
++
++ * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (__NR_pread64): Define
++ to __NR_pread if not defined.
++ (__NR_pwrite64): Define to __NR_pwrite if not defined.
++
++2003-03-11 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/unix/sysv/linux/ia64/system.c: New file.
++ * sysdeps/unix/sysv/linux/kernel-features.h
++ (__ASSUME_CLONE_THREAD_FLAGS): Define for IA-64 and s390* with
++ kernel >= 2.5.64.
++
++2003-03-11 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/generic/dl-sysdep.c (_dl_important_hwcaps): If CNT == 1,
++ allocate space even for the trailing '/'.
++ Reported by John Reiser <jreiser@BitWagon.com>.
++
++ * sysdeps/unix/sysv/linux/ia64/sysdep.h (LOAD_ARGS_6, ASM_ARGS_6,
++ ASM_CLOBBERS_6): Define.
++ (ASM_CLOBBERS_5): Use ASM_CLOBBERS_6.
++ * sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Reorder arguments
++ to match IA-32 order.
++ * sysdeps/unix/sysv/linux/i386/clone.S: Fix comment.
++
++2003-03-10 Steven Munroe <sjmunroe@us.ibm.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Don't clobber R7.
++ Copy extra params for NPTL to registers used in clone syscall.
++
++2003-03-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
++
++ * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Correct system
++ call names for pread and pwrite.
++
++2003-03-10 Roland McGrath <roland@redhat.com>
++
++ * dlfcn/Makefile (libdl-routines): Add dladdr1.
++ * dlfcn/dladdr1.c: New file.
++ * dlfcn/dlfcn.h [__USE_GNU]: Declare dladdr1.
++ [__USE_GNU] (RTLD_DL_SYMENT, RTLD_DL_LINKMAP): New enum constants.
++ * elf/dl-addr.c (_dl_addr): Take new args, a struct link_map ** and
++ a const ElfNN_Sym ** to fill in.
++ * include/dlfcn.h: Update decl. Include <link.h>.
++ * dlfcn/dladdr.c (dladdr): Update caller.
++ * malloc/mtrace.c (tr_where): Likewise.
++ * sysdeps/generic/elf/backtracesyms.c: Likewise.
++ * sysdeps/generic/elf/backtracesymsfd.c: Likewise.
++ * dlfcn/Versions (libdl: GLIBC_2.3.3): New set, add dladdr1.
++ * Versions.def (libdl): Define GLIBC_2.3.3 set.
++
++ * sysdeps/unix/make-syscalls.sh: Generate $(compile-syscall) for
++ assembler command.
++ * sysdeps/unix/Makefile (compile-syscall): New variable.
++ Pass -g0 to compiler for assembling syscall stubs from stdin.
++
++ * sysdeps/i386/sysdep.h [HAVE_CPP_ASM_DEBUGINFO]
++ (STABS_CURRENT_FILE, STABS_CURRENT_FILE1, STABS_FUN, STABS_FUN_END):
++ Define these to do nothing.
++
++ * configure.in: New check for -g on .S files.
++ * configure: Regenerated.
++ * config.make.in (have-cpp-asm-debuginfo): New variable.
++ * config.h.in (HAVE_CPP_ASM_DEBUGINFO): New #undef.
++ * Makeconfig (ASFLAGS): New variable, if undefined and
++ $(have-cpp-asm-debuginfo), take options matching -g% from $(CFLAGS).
++ * Makerules (compile.S, COMPILE.S): Use $(ASFLAGS).
++
++2003-03-09 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Take 3 new args
++ used by NPTL on new kernels. From Paul Mackerras <paulus@samba.org>.
++
++2003-03-09 Ulrich Drepper <drepper@redhat.com>
++
++ * po/fi.po: Update from translation team.
++ * po/ca.po: Likewise.
++ * po/da.po: Likewise.
++
++2003-03-08 Ulrich Drepper <drepper@redhat.com>
++
++ * rt/tst-aio7.c (do_test): Change BYTES into a #define.
++
++2003-03-07 Ulrich Drepper <drepper@redhat.com>
++
++ * rt/tst-aio7.c (do_test): Give BUFF permanent extent, too.
++
++ * sysdeps/powerpc/fpu/w_sqrt.c: Fix comment.
++
++2003-03-07 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/s390/s390-32/sysdep.h (L): Use .Lfoo instead of foo.
++ * sysdeps/s390/s390-64/sysdep.h (L): Likewise.
++
++2003-03-04 Guido Guenther <agx@sigxcpu.org>
++
++ * sysdeps/unix/sysv/linux/mips/syscalls.list: Remove unneeded
++ stubs, we have INLINE_SYSCALL.
++ * sysdeps/unix/sysv/linux/mips/bits/mman.h: Define MAP_POPULATE,
++ MAP_NONBLOCK.
++
++2003-03-06 Roland McGrath <roland@redhat.com>
++
++ * rt/tst-aio7.c (do_test): Revert last change. Instead, give CB1
++ permanent extent and add a comment about testing its implicit teardown.
++
++2003-03-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
++
++ * rt/tst-aio7.c (do_test): Cancel i/o on CB1 before it's out of scope.
++
++2003-03-05 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Fix
++ reversed __builtin_expect expectation.
++
++2003-03-05 Roland McGrath <roland@redhat.com>
++
++ * stdio-common/sscanf.c: Use prototype defn with ... syntax.
++ * libio/swscanf.c: Likewise.
++ * libio/swprintf.c: Likewise.
++
++2003-03-04 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h: Include <dl-tls.h>.
++ (elf_machine_rela): Always use RESOLVE_MAP, needed for
++ R_PPC64_JMP_SLOT as well as TLS cases.
++ (BIT_INSERT): Move parenthesis where it ought to have been.
++ Reported by Steven Munroe <sjmunroe@us.ibm.com>.
++
++ * posix/confstr.c (confstr): Correct STRING_LEN values for
++ _CS_GNU_LIBC_VERSION and _CS_GNU_LIBPTHREAD_VERSION, add missing
++ break. Reported by Alexandre Julliard <julliard@winehq.com>.
++
++2003-03-04 Jakub Jelinek <jakub@redhat.com>
++
++ * sysdeps/ia64/fpu/libm-test-ulps: Regenerated.
++
++2003-03-04 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/x86_64/clone.S: Add support for the new
++ clone parameters.
++
++ * po/sv.po: Update from translation team.
++
++2003-03-04 Andreas Jaeger <aj@suse.de>
++ Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Fix comments.
++
++2003-03-03 Ulrich Drepper <drepper@redhat.com>
++
++ * sysdeps/generic/dl-sysdep.h: Add double include protection.
++
++ * po/tr.po: Update from translation team.
++
++ * elf/dl-load.c (_dl_map_object_from_fd): Determine whether there
++ are holes between the segments. Only call mprotect to set
++ proection to PROT_NONE if there are some.
++
++ * elf/dl-load.c (struct filebuf): Actually use FILEBUF_SIZE.
++ Update comment.
++
++ * include/sched.h (__clone2): Use ... instead of adding all the
++ new parameters.
++
++2003-03-03 Roland McGrath <roland@redhat.com>
++
++ * elf/dl-load.c (struct filebuf): Fix typo in last change.
++
++ * sysdeps/powerpc/powerpc32/elf/configure.in: Don't define
++ PI_STATIC_AND_HIDDEN.
++
++2003-03-03 Ian Wienand <ianw@gelato.unsw.edu.au>
++
++ * sysdeps/unix/sysv/linux/ia64/clone2.S: Update to take extra clone
++ flags.
++ * include/sched.h: Update clone2 prototype.
++
++2003-03-03 Andreas Jaeger <aj@suse.de>
++
++ * math/tgmath.h (__TGMATH_UNARY_REAL_RET_ONLY): New definition.
++ (llrint): Use it to correct return type.
++ (lrint): Likewise.
++ (lround): Likewise.
++ (llround): Likewise.
++
++2003-03-03 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/dl-load.c (struct filebuf): For 64-bit platforms use 640
++ byte filebuf size.
++
++ * libio/fileops.c (_IO_new_file_fopen): Close stillborn descriptor
++ if ccs parameter isn't valid. Reported by Andreas Schwab.
++
++2003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
++
++ * sysdeps/unix/sysv/linux/s390/s390-32/syscall.S (syscall): Add support
++ for system call numbers > 255.
++ * sysdeps/unix/sysv/linux/s390/s390-32/syscall.h (DO_CALL,
++ INLINE_SYSCALL, INTERNAL_SYSCALL_DIRECT, INTERNAL_SYSCALL_SVC0,
++ INTERNAL_SYSCALL): Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/syscall.S (syscall): Likewise.
++ * sysdeps/unix/sysv/linux/s390/s390-64/syscall.h (DO_CALL,
++ INLINE_SYSCALL, INTERNAL_SYSCALL_DIRECT, INTERNAL_SYSCALL_SVC0,
++ INTERNAL_SYSCALL): Likewise.
++
++2003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
++
++ * sysdeps/generic/dl-tls.c (_dl_deallocate_tls): Don't free the dtv
++ array if it is the initial dtv.
++
++2003-03-03 Ulrich Drepper <drepper@redhat.com>
++
++ * po/es.po: Update from translation team.
++ * po/fr.po: Likewise.
++ * po/gl.po: Likewise.
++ * po/sk.po: Likewise.
++ * po/sv.po: Likewise.
++
++ * sysdeps/unix/sysv/linux/syscalls.list: Add remap_file_pages entry.
++ * misc/sys/mman.h: Add prototype for remap_file_pages.
++ * sysdeps/generic/remap_file_pages.c: New file.
++ * misc/Makefile (routines): Add remap_file_pages.
++ * misc/Versions [libc:GLIBC_2.3.3]: Add remap_file_pages.
++
++ * sysdeps/unix/sysv/linux/x86_64/bits/mman.h: Define MAP_POPULATE
++ and MAP_NONBLOCK.
++ * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise.
++ * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise
++ * sysdeps/unix/sysv/linux/m68k/bits/mman.h: Likewise.
++ * sysdeps/unix/sysv/linux/arm/bits/mman.h: Likewise.
++ * sysdeps/unix/sysv/linux/ia64/bits/mman.h: Likewise.
++ * sysdeps/unix/sysv/linux/hppa/bits/mman.h: Likewise.
++ * sysdeps/unix/sysv/linux/alpha/bits/mman.h: Likewise.
++ * sysdeps/unix/sysv/linux/i386/bits/mman.h: Likewise.
++
++2003-03-03 Roland McGrath <roland@redhat.com>
++
++ * sysdeps/ia64/dl-fptr.c (__ia64_make_fptr): Revert last change.
++ * sysdeps/ia64/dl-machine.h: Likewise.
++ * sysdeps/ia64/dl-symaddr.c (_dl_symbol_address): Remove const from
++ argument type.
++ * sysdeps/ia64/dl-lookupcfg.h: Update decl.
++
++ * sysdeps/wordsize-64/strtol_l.c (strtoll_l): Define as weak alias.
++ * sysdeps/wordsize-64/strtoul_l.c (strtoull_l): Define as weak alias.
++ * locale/Versions (libc: GLIBC_2.3): Move those to ...
++ * sysdeps/wordsize-32/Versions (libc: GLIBC_2.3): ... here, new file.
++ * sysdeps/wordsize-64/Versions (libc: GLIBC_2.3.3) Likewise.
++ * Versions.def (libc): Add GLIBC_2.3.3 set.
++
++ * sysdeps/ia64/dl-fptr.c (__ia64_make_fptr): Add const to MAP arg.
++ * sysdeps/ia64/dl-machine.h: Update decl.
++
++2003-03-03 Andreas Jaeger <aj@suse.de>
++
++ * sysdeps/unix/clock_settime.c (HANDLE_REALTIME): Add missing brace.
++
++2003-03-02 Roland McGrath <roland@redhat.com>
++
++ * scripts/abilist.awk: Reject data items with apparent 0 size.
++
++ * scripts/merge-abilist.awk: Restore hack to elide pattern foo.*/bar
++ after foo.* as if it were a duplicate.
++
++ * sysdeps/unix/sysv/linux/ia64/brk.S: Add .type and .size for __curbrk.
++
++2003-03-02 Ulrich Drepper <drepper@redhat.com>
++
++ * elf/dl-load.c (struct filebuf): Reduce buf array to 512 bytes.
++
++ * sysdeps/generic/bits/time.h: Define CLOCK_MONOTONIC.
++ * sysdeps/posix/clock_getres.c: Define code for CLOCK_REALTIME only
++ if not already defined. Use SYSDEP_GETRES to allow other files to
++ provide alternative implementations.
++ * sysdeps/unix/sysv/linux/clock_getres.c: New file
++ * sysdeps/unix/clock_gettime.c: Define code for CLOCK_REALTIME only
++ if not already defined. Use SYSDEP_GETTIME to allow other files to
++ provide alternative implementations.
++ * sysdeps/unix/sysv/linux/clock_gettime.c: New file.
++ * sysdeps/unix/clock_settime.c: Define code for CLOCK_REALTIME only
++ if not already defined. Use SYSDEP_GETTIME to allow other files to
++ provide alternative implementations.
++ * sysdeps/unix/sysv/linux/clock_settime.c: New file.
++ * sysdeps/unix/clock_nanosleep.c: Use SYSDEP_NANOSLEEP to allow
++ other files to provide alternative implementations. Rearrange
++ tests for invalid parameters.
++ * sysdeps/unix/sysv/linux/clock_nanosleep.c: New file.
++ * sysdeps/unix/sysv/linux/sysconf.c: New file.
++ * sysdeps/unix/sysv/linux/kernel-features.h: Define
++ __ASSUME_POSIX_TIMERS for Linux 2.5.63 and up.
++ * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
++ _POSIX_MONOTONIC_CLOCK.
++
++2003-03-02 Roland McGrath <roland@redhat.com>
++
++ * scripts/merge-abilist.awk: More checks for bogus input.
++ Uniquify duplicate config names.
++
++ * scripts/abilist.awk: Don't distinguish weak symbols in normal output.
++
++ * sysdeps/powerpc/powerpc32/dl-machine.c (_dl_reloc_overflow): Renamed
++ from dl_reloc_overflow, make global.
++ (__process_machine_rela): Update callers.
++ * sysdeps/powerpc/powerpc32/dl-machine.h: Declare _dl_reloc_overflow.
++ Add attribute_hidden to __process_machine_rela decl.
++ (elf_machine_type_class, elf_machine_rela): Handle 16-bit TLS relocs.
++
++ * sysdeps/generic/libc-start.c (__libc_start_main): Don't assign const
++ variable.
++
++ * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_fixup_plt):
++ Don't use weak_extern for dl_rtld_map. Instead check only if [SHARED].
++ (elf_machine_rela): Clean up.
++
++ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Clean up.
++
++ PowerPC TLS support contributed by Paul Mackerras <paulus@samba.org>.
++ * sysdeps/powerpc/powerpc32/elf/configure.in: New file.
++ * sysdeps/powerpc/powerpc32/elf/configure: New generated file.
++ * elf/tls-macros.h [__powerpc__ && !__powerpc64__]
++ (TLS_LE, TLS_IE, TLS_LD, TLS_GD): Define them.
++ * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela): Support
++ new relocs for TLS.
++
++ * sysdeps/powerpc/dl-tls.h (TLS_TP_OFFSET, TLS_DTV_OFFSET): Move these
++ macros out of [SHARED].
++ (TLS_TPREL_VALUE, TLS_DTPREL_VALUE): New macros.
++
++ * elf/elf.h: Define R_PPC_* relocs for TLS support.
++ Clean up R_PPC64_* macro definition comments.
++
++ * configure.in: In "running configure fragment for" message,
++ omit $srcdir from the name if we prepended it.
++ * configure: Regenerated.
++
++ * elf/dl-reloc.c (allocate_static_tls): Fix calculations.
++ From Jakub Jelinek <jakub@redhat.com>.
++
++ * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Revert last change,
++ which duplicated the O_DIRECT defn.
++
++2003-03-01 GOTO Masanori <gotom@debian.or.jp>
++
++ * stdlib/stdlib.h: Add missing __USE_BSD enclosure for BSD derived
++ random functions.
++
++2003-03-01 Andreas Schwab <schwab@suse.de>
++
++ * resolv/Makefile (tests): Don't depend on
++ $(objpfx)mtrace-tst-leaks when cross compiling.
++
++ * sysdeps/m68k/dl-machine.h (_dl_start_user): Access
++ __libc_stack_end through GOT since it is a global symbol.
++
+ 2003-03-01 GOTO Masanori <gotom@debian.or.jp>
+
+ * argp/argp.h: Fix a typo.
+@@ -5561,6 +11477,16 @@
+ (common-mostlyclean, common-clean): Clean up rtld-* files.
+ * sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules.
+
++2003-05-20 Jakub Jelinek <jakub@redhat.com>
++
++ * elf/dynamic-link.h (elf_get_dynamic_info): Add temp argument.
++ If temp != NULL, copy dynamic entries which need relocation to temp
++ array before relocating.
++ (DL_RO_DYN_TEMP_CNT): Define.
++ * elf/dl-load.c (_dl_map_object_from_fd): Adjust caller.
++ * elf/rtld.c (_dl_start): Likewise.
++ (dl_main): Likewise. Add dyn_temp static variable.
++
+ 2002-10-11 Roland McGrath <roland@redhat.com>
+
+ * sysdeps/generic/dl-tls.c (__tls_get_addr): After freeing block in
+--- glibc-2.3.2/Makeconfig 2003-01-06 00:31:36.000000000 -0500
++++ glibc-2.3.2/Makeconfig 2003-09-19 22:37:01.000000000 -0400
+@@ -83,6 +83,12 @@
+ # Get the values defined by options to `configure'.
+ include $(common-objpfx)config.make
+
++# What flags to give to sources which call user provided callbacks
++uses-callbacks = $(exceptions)
++
++# What flags to give to tests which test stack alignment
++stack-align-test-flags =
++
+ # We have a special subdir for each binary format.
+ # For now, only ELF is fully supported.
+ ifeq ($(elf),yes)
+@@ -505,7 +511,7 @@
+ link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a)
+
+ ifndef gnulib
+-gnulib := -lgcc
++gnulib := -lgcc -lgcc_eh
+ endif
+ ifeq ($(elf),yes)
+ +preinit = $(addprefix $(csu-objpfx),crti.o)
+@@ -621,7 +627,7 @@
+ +includes = -I$(..)include -I. \
+ $(patsubst %/,-I%,$(objpfx)) $(patsubst %/,-I%,$(..)) \
+ $(libio-include) $(includes) \
+- $(+sysdep-includes) $(last-includes) $(sysincludes)
++ $(+sysdep-includes) $(sysincludes)
+
+ # Since libio has several internal header files, we use a -I instead
+ # of many little headers in the include directory.
+@@ -669,6 +675,8 @@
+ libtype.os := lib%_pic.a
+ # This can be changed by a sysdep makefile
+ pic-ccflag = -fPIC
++# This one should always stay like this unless there is a very good reason.
++PIC-ccflag = -fPIC
+ endif
+ ifeq (yes,$(build-profile))
+ # Under --enable-profile, we will build a static library of profiled objects.
+@@ -711,11 +719,20 @@
+ # Must build the routines as PIC, though, because they can end up in (users')
+ # shared objects. We don't want to use CFLAGS-os because users may, for
+ # example, make that processor-specific.
+-CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
++CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
+ CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
+ libtype.oS = lib%_nonshared.a
+ endif
+
++# The assembler can generate debug information too.
++ifndef ASFLAGS
++ifeq ($(have-cpp-asm-debuginfo),yes)
++ASFLAGS := $(filter -g%,$(CFLAGS))
++else
++ASFLAGS :=
++endif
++endif
++ASFLAGS += $(ASFLAGS-config)
+
+ +gnu-stabs = $(shell echo>&2 '*** BARF ON ME')
+
+@@ -921,11 +938,11 @@
+ all-Depend-files = $(wildcard $(..)*/Depend)
+ $(common-objpfx)sysd-sorted: $(..)scripts/gen-sorted.awk $(all-Depend-files) \
+ $(common-objpfx)sysd-dirs $(..)Makeconfig
+- { { dirs='$(patsubst $(..)%/Depend,$(..)%,$(filter %/Depend,$^))';\
++ { { dirs='$(patsubst $(..)%/Depend,%,$(filter %/Depend,$^))'; \
+ for d in $$dirs; do \
+ while read on; do \
+ echo "depend $$d $$on"; \
+- done < $$d/Depend; \
++ done < $(..)$$d/Depend; \
+ done; \
+ for f in $(all-subdirs); do \
+ echo $$f; \
+--- glibc-2.3.2/Makefile 2003-02-21 01:22:51.000000000 -0500
++++ glibc-2.3.2/Makefile 2003-09-19 22:37:01.000000000 -0400
+@@ -228,6 +228,18 @@
+ tests-clean:
+ @$(MAKE) subdir_testclean no_deps=t
+
++tests: $(objpfx)c++-types-check.out
++ifneq ($(CXX),no)
++ifneq (,$(wildcard scripts/data/c++-types-$(base-machine)-$(config-os).data))
++$(objpfx)c++-types-check.out: scripts/data/c++-types-$(base-machine)-$(config-os).data
++ scripts/check-c++-types.sh $^ $(CXX) $(filter-out -std=gnu99,$(CFLAGS)) $(CPPFLAGS) > $@
++else
++$(objpfx)c++-types-check.out:
++ @echo 'WARNING C++ tests not run; create a c++-types-XXX file'
++ @echo "not run" > $@
++endif
++endif
++
+ # The realclean target is just like distclean for the parent, but we want
+ # the subdirs to know the difference in case they care.
+ realclean distclean: parent-clean
+@@ -274,6 +286,7 @@
+ include/shlib-compat.h include/pthread.h Versions.def \
+ cppflags-iterator.mk tls.make.c \
+ include/stubs-prologue.h include/gnu/stubs.h \
++ include/atomic.h bits/atomic.h \
+ INTERFACE CONFORMANCE NAMESPACE LICENSES \
+ $(addprefix scripts/, \
+ rellns-sh config.sub config.guess \
+@@ -282,7 +295,11 @@
+ gen-sorted.awk abi-versions.awk abilist.awk \
+ firstversions.awk documented.sh cpp \
+ output-format.sed gen-as-const.awk \
+- merge-abilist.awk extract-abilist.awk)
++ merge-abilist.awk extract-abilist.awk \
++ rpm2dynsym.sh \
++ ) \
++ $(wildcard scripts/data/*.data) \
++ $(wildcard abilist/*.abilist)
+
+ distribute := $(strip $(distribute))
+ generated := $(generated) stubs.h
+@@ -318,12 +335,6 @@
+ iconvdata/% localedata/% po/% manual/%:
+ $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
+
+-# This is a special goal for people making binary distributions. Normally
+-# everybody uses the DES based crypt library but for the distribution we
+-# need the only-MD5 based one as well.
+-md5-crypt/libmd5crypt:
+- $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
+-
+ # glibc 2.0 contains some header files which aren't used with glibc 2.1
+ # anymore.
+ # These rules should remove those headers
+--- glibc-2.3.2/Makefile.in 2000-11-15 18:03:08.000000000 -0500
++++ glibc-2.3.2/Makefile.in 2002-11-16 08:53:55.000000000 -0500
+@@ -1,4 +1,4 @@
+-# Generated from $Id: Makefile.in,v 1.7 2000/11/15 23:03:08 drepper Exp $.
++# Generated from $Id: Makefile.in,v 1.6 1998/02/26 14:51:55 drepper Exp $.
+
+ srcdir = @srcdir@
+
+--- glibc-2.3.2/Makerules 2003-02-22 18:23:31.000000000 -0500
++++ glibc-2.3.2/Makerules 2003-09-19 22:37:01.000000000 -0400
+@@ -125,29 +125,9 @@
+ endif # avoid-generated
+ endif # $(versioning) = yes
+
+-
+-# Generating headers for assembly constants.
+-# We need this defined early to get into before-compile before
+-# it's used in sysd-rules, below.
+-$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
+- %.sym $(before-compile)
+- $(AWK) -f $< $(filter %.sym,$^) \
+- | $(CC) -S -o - $(CFLAGS) $(CPPFLAGS) -x c - \
+- -MD -MF $(@:.h=.h.d)T -MT '$(@:.h=.h.d) $(@:.h.d=.h)' \
+- | sed -n 's/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$$/#define \1 \2/p' > $(@:.h.d=.h)T
+- sed $(sed-remove-objpfx) $(sed-remove-dotdot) \
+- $(@:.h=.h.d)T > $(@:.h=.h.d)T2
+- rm -f $(@:.h=.h.d)T
+- mv -f $(@:.h=.h.d)T2 $(@:.h=.h.d)
+- mv -f $(@:.h.d=.h)T $(@:.h.d=.h)
+-vpath %.sym $(sysdirs)
+-before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
+-
+-
+-# When we have no deps pass doing it, then make sure the subdirectory
+-# for object files gets created.
+-ifdef no_deps
++# Make sure the subdirectory for object files gets created.
+ ifdef objpfx
++ifeq (,$(wildcard $(objpfx).))
+ before-compile += $(objpfx).
+ $(objpfx).:
+ $(make-target-directory)
+@@ -166,26 +146,59 @@
+ $(before-compile):
+ endif
+
++# We don't want $(common-objpfx) files to depend on miscellaneous stuff
++# in subdirs.
++ifdef subdir
++common-before-compile := $(filter-out $(objpfx)%,$(before-compile))
++else
++common-before-compile = $(before-compile)
++endif
++
++ifndef subdir
+ # If a makefile needs to do something conditional on something that
+ # can only be figured out from headers, write a FOO.make.c input
+ # file that uses cpp contructs and contains @@@ LINE @@@ for each LINE
+ # to emit in the generated makefile, and use -include $(common-objpfx)FOO.make.
+-$(common-objpfx)%.make: $(..)%.make.c $(..)Makerules $(before-compile)
++#
++# We only generate these in the top-level makefile, to avoid any weirdness
++# from subdir-specific makefile tweaks creeping in on an update.
++$(common-objpfx)%.make: $(..)%.make.c $(..)Makerules $(common-before-compile)
+ rm -f $@T $@.dT
+ (echo '# Generated from $*.make.c by Makerules.'; \
+- SUNPRO_DEPENDENCIES='$@.dT $$(common-objpfx)$*.make' \
+ $(CC) $(CFLAGS) $(CPPFLAGS) -E $< \
++ -MD -MP -MT '$$(common-objpfx)$*.make' -MF $@.dT \
+ | sed -n '/@@@/{s/@@@[ ]*\(.*\)@@@/\1/;s/[ ]*$$//p;}'; \
+ echo 'common-generated += $(@F)'; \
+ sed $(sed-remove-objpfx) $(sed-remove-dotdot) $@.dT; \
+ rm -f $@.dT) > $@T
+ mv -f $@T $@
++endif
+
+ ifdef subdir
+-sed-remove-dotdot := -e 's@ *\.\.\/\([^ \]*\)@ $$(..)\1@g'
++sed-remove-dotdot := -e 's@ *\.\.\/\([^ \]*\)@ $$(..)\1@g' \
++ -e 's@^\.\.\/\([^ \]*\)@$$(..)\1@g'
+ else
+-sed-remove-dotdot := -e 's@ *\([^ \/$$][^ \]*\)@ $$(..)\1@g'
++sed-remove-dotdot := -e 's@ *\([^ \/$$][^ \]*\)@ $$(..)\1@g' \
++ -e 's@^\([^ \/$$][^ \]*\)@$$(..)\1@g'
+ endif
++
++
++# Generating headers for assembly constants.
++# We need this defined early to get into before-compile before
++# it's used in sysd-rules, below.
++$(common-objpfx)%.h $(common-objpfx)%.h.d: $(..)scripts/gen-as-const.awk \
++ %.sym $(common-before-compile)
++ $(AWK) -f $< $(filter %.sym,$^) \
++ | $(CC) -S -o - $(CFLAGS) $(CPPFLAGS) -x c - \
++ -MD -MP -MF $(@:.h=.h.d)T -MT '$(@:.h=.h.d) $(@:.h.d=.h)' \
++ | sed -n 's/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$$/#define \1 \2/p' > $(@:.h.d=.h)T
++ sed $(sed-remove-objpfx) $(sed-remove-dotdot) \
++ $(@:.h=.h.d)T > $(@:.h=.h.d)T2
++ rm -f $(@:.h=.h.d)T
++ mv -f $(@:.h=.h.d)T2 $(@:.h=.h.d)
++ mv -f $(@:.h.d=.h)T $(@:.h.d=.h)
++vpath %.sym $(sysdirs)
++before-compile += $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
+
+ # Generate an ordered list of implicit rules which find the source files in
+ # each sysdep directory. The old method was to use vpath to search all the
+@@ -193,15 +206,6 @@
+ # later directory would be chosen over a .c file in an earlier directory,
+ # which does not preserve the desired sysdeps ordering behavior.
+
+-# When making the list of .d files to include, we can't know which ones
+-# have source in .s files, and thus do not in fact need a .d file.
+-# So we must define rules to make .d files for .s files.
+-define make-dummy-dep
+-$(addprefix ln $(common-objpfx)dummy.d ,$(filter-out $(wildcard $@),$@))
+-endef
+-$(common-objpfx)dummy.d:
+- echo '# .s files cannot contain includes, so they need no deps.' > $@
+-
+ # It matters that this set of rules, for compiling from sources in
+ # the current directory (the $srcdir/$subdir) come before the
+ # generated sysdep rules in included from sysd-rules below. When
+@@ -212,21 +216,18 @@
+ endef
+ object-suffixes-left := $(all-object-suffixes)
+ include $(o-iterator)
+-$(objpfx)%.d: %.S $(before-compile); $(+make-deps)
+
+ define o-iterator-doit
+ $(objpfx)%$o: %.s $(before-compile); $$(compile-command.s)
+ endef
+ object-suffixes-left := $(all-object-suffixes)
+ include $(o-iterator)
+-$(objpfx)%.d: %.s $(common-objpfx)dummy.d; $(make-dummy-dep)
+
+ define o-iterator-doit
+ $(objpfx)%$o: %.c $(before-compile); $$(compile-command.c)
+ endef
+ object-suffixes-left := $(all-object-suffixes)
+ include $(o-iterator)
+-$(objpfx)%.d: %.c $(before-compile); $(+make-deps)
+
+ # Omit the objpfx rules when building in the source tree, because
+ # objpfx is empty and so these rules just override the ones above.
+@@ -238,21 +239,18 @@
+ endef
+ object-suffixes-left := $(all-object-suffixes)
+ include $(o-iterator)
+-$(objpfx)%.d: $(objpfx)%.S $(before-compile); $(+make-deps)
+
+ define o-iterator-doit
+ $(objpfx)%$o: $(objpfx)%.s $(before-compile); $$(compile-command.s)
+ endef
+ object-suffixes-left := $(all-object-suffixes)
+ include $(o-iterator)
+-$(objpfx)%.d: $(objpfx)%.s $(common-objpfx)dummy.d; $(make-dummy-dep)
+
+ define o-iterator-doit
+ $(objpfx)%$o: $(objpfx)%.c $(before-compile); $$(compile-command.c)
+ endef
+ object-suffixes-left := $(all-object-suffixes)
+ include $(o-iterator)
+-$(objpfx)%.d: $(objpfx)%.c $(before-compile); $(+make-deps)
+ endif
+
+ # System-dependent makefiles can put in `inhibit-sysdep-asm' wildcard
+@@ -301,26 +299,6 @@
+ echo "\$$(objpfx)ptw-%$$o: $$dir/%.c \$$(before-compile); \
+ \$$(compile-command.c)"; \
+ done; \
+- $(open-check-inhibit-asm) \
+- echo "\$$(objpfx)%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \
+- \$$(make-dummy-dep)"; \
+- echo "\$$(objpfx)rtld-%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \
+- \$$(make-dummy-dep)"; \
+- echo "\$$(objpfx)ptw-%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \
+- \$$(make-dummy-dep)"; \
+- echo "\$$(objpfx)%.d: $$dir/%.S \$$(before-compile); \
+- \$$(+make-deps)"; \
+- echo "\$$(objpfx)rtld-%.d: $$dir/%.S \$$(before-compile); \
+- \$$(+make-deps)"; \
+- echo "\$$(objpfx)ptw-%.d: $$dir/%.S \$$(before-compile); \
+- \$$(+make-deps)"; \
+- $(close-check-inhibit-asm) \
+- echo "\$$(objpfx)%.d: $$dir/%.c \$$(before-compile); \
+- \$$(+make-deps)"; \
+- echo "\$$(objpfx)rtld-%.d: $$dir/%.c \$$(before-compile); \
+- \$$(+make-deps)"; \
+- echo "\$$(objpfx)ptw-%.d: $$dir/%.c \$$(before-compile); \
+- \$$(+make-deps)"; \
+ echo "\$$(objpfx)m_%.S: $$dir/s_%.S; \$$(+make-include-of-dep)"; \
+ echo "\$$(objpfx)m_%.c: $$dir/s_%.c; \$$(+make-include-of-dep)"; \
+ done; \
+@@ -383,32 +361,20 @@
+ endif # $(versioning) = yes
+ endif # sysd-sorted-done
+
+-
+-ifndef compile-command.S
+-compile-command.S = $(compile.S) $(OUTPUT_OPTION)
+-endif
+-ifndef compile-command.s
+-compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION)
+-endif
+-ifndef compile-command.c
+-compile-command.c = $(compile.c) $(OUTPUT_OPTION)
+-endif
++# Generate .dT files as we compile.
++compile-mkdep-flags = -MD -MP -MF $@.dt
++compile-command.S = $(compile.S) $(OUTPUT_OPTION) $(compile-mkdep-flags)
++compile-command.s = $(COMPILE.s) $< $(OUTPUT_OPTION) $(compile-mkdep-flags)
++compile-command.c = $(compile.c) $(OUTPUT_OPTION) $(compile-mkdep-flags)
+
+ # GCC can grok options after the file name, and it looks nicer that way.
+ compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS)
+-compile.S = $(CC) $< -c $(CPPFLAGS) $(S-CPPFLAGS) $(ASFLAGS-$(suffix $@))
+-COMPILE.S = $(CC) -c $(CPPFLAGS) $(S-CPPFLAGS) $(ASFLAGS-$(suffix $@))
++compile.S = $(CC) $< -c $(CPPFLAGS) $(S-CPPFLAGS) \
++ $(ASFLAGS) $(ASFLAGS-$(suffix $@))
++COMPILE.S = $(CC) -c $(CPPFLAGS) $(S-CPPFLAGS) \
++ $(ASFLAGS) $(ASFLAGS-$(suffix $@))
+ COMPILE.s = $(filter-out -pipe,$(CC)) -c $(ASFLAGS)
+
+-# If we want to generate MD5 checksums for the sources do this now.
+-ifeq ($(md5),yes)
+-generate-md5 = ; rm -f $(@:.d=.md5); \
+-$(CC) -E $< $(CFLAGS) $(CPPFLAGS) $($(patsubst .%,%,$(suffix $(<F)))-CPPFLAGS) | \
+-sed '/^\#/d;/^[[:space:]]*$$/d' | md5sum > $(@:.d=.md5)
+-else
+-generate-md5 =
+-endif
+-
+ # We need this for the output to go in the right place. It will default to
+ # empty if make was configured to work with a cc that can't grok -c and -o
+ # together. You can't compile the C library with such a compiler.
+@@ -418,14 +384,16 @@
+ # the dependency run for C sources. But having it for assembly sources can
+ # get the wrong predefines.
+ S-CPPFLAGS = -DASSEMBLER $(asm-CPPFLAGS)
++
+ define +make-deps
+ $(make-target-directory)
+ $(+mkdep) $< $(if $(filter %.c,$<),$(CFLAGS)) \
+- $(CPPFLAGS) $($(patsubst .%,%,$(suffix $(<F)))-CPPFLAGS) | sed \
+--e 's,$(subst .,\.,$*)\.o,$(foreach o,$(all-object-suffixes),$(@:.d=$o)) $@,' \
+-$(sed-remove-objpfx) > $(@:.d=.T)
++ $(CPPFLAGS) $($(patsubst .%,%,$(suffix $(<F)))-CPPFLAGS) | sed -e\
++'s,$(subst .,\.,$(@F:.d=.o)),$(foreach o,$(all-object-suffixes),$(@:.d=$o)) $@,' \
++$(sed-remove-objpfx) $(sed-remove-dotdot) > $(@:.d=.T)
+ mv -f $(@:.d=.T) $@ $(generate-md5)
+ endef
++
+ ifneq (,$(objpfx))
+ # Continuation lines here are dangerous because they introduce spaces!
+ define sed-remove-objpfx
+@@ -509,17 +477,23 @@
+ ifeq (yes,$(elf))
+ # binutils only position loadable notes into the first page for binaries,
+ # not for shared objects
+-define build-shlib
+-$(build-shlib-helper) \
+- -o $@.new $(csu-objpfx)abi-note.o -Wl,--verbose \
+- $(LDLIBS-$(@F:lib%.so=%).so) 2>&1 | \
+- sed -e '/^=========/,/^=========/!d;/^=========/d' \
++$(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules
++ $(LINK.o) -shared -Wl,-O1 \
++ $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS.so) \
++ -Wl,--verbose 2>&1 | \
++ sed > $@T \
++ -e '/^=========/,/^=========/!d;/^=========/d' \
+ -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+- $(LDSEDCMD-$(@F:lib%.so=%).so) > $@.lds
+-rm -f $@.new
+-$(build-shlib-helper) -o $@ -T $@.lds \
++ -e 's/^.*\*(\.dynbss).*$$/& \
++ PROVIDE(__start___libc_freeres_ptrs = .); \
++ *(__libc_freeres_ptrs) \
++ PROVIDE(__stop___libc_freeres_ptrs = .);/'
++ mv -f $@T $@
++common-generated += shlib.lds
++
++define build-shlib
++$(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \
+ $(csu-objpfx)abi-note.o $(build-shlib-objlist)
+-rm -f $@.lds
+ endef
+ else
+ ifneq (,$(findstring aix,$(config-os)))
+@@ -547,6 +521,7 @@
+ else
+ define build-module-helper
+ $(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \
++ $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \
+ -B$(csu-objpfx) $(load-map-file) \
+ $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
+ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
+@@ -559,16 +534,8 @@
+ # binutils only position loadable notes into the first page for binaries,
+ # not for shared objects
+ define build-module
+-$(build-module-helper) \
+- -o $@.new $(csu-objpfx)abi-note.o -Wl,--verbose \
+- $(LDLIBS-$(@F:lib%.so=%).so) 2>&1 | \
+- sed -e '/^=========/,/^=========/!d;/^=========/d' \
+- -e 's/^.*\.hash[ ]*:.*$$/ .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+- > $@.lds
+-rm -f $@.new
+-$(build-module-helper) -o $@ -T $@.lds \
++$(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
+ $(csu-objpfx)abi-note.o $(build-module-objlist)
+-rm -f $@.lds
+ endef
+ else
+ ifneq (,$(findstring aix,$(config-os)))
+@@ -590,7 +557,7 @@
+
+ build-module-helper-objlist = \
+ $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
+- $(filter-out $(map-file) $(+preinit) $(+postinit),$^))
++ $(filter-out %.lds $(map-file) $(+preinit) $(+postinit),$^))
+ whole-archive := -Wl,--whole-archive
+
+ build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
+@@ -605,8 +572,6 @@
+ LDLIBS-c.so += $(gnulib)
+ # Give libc.so an entry point and make it directly runnable itself.
+ LDFLAGS-c.so += -e __libc_main
+-# Force the backward compatibility EH functions to be linked.
+-LDFLAGS-c.so += -u __register_frame
+ # Pre-link the objects of libc_pic.a so that we can locally resolve
+ # COMMON symbols before we link against ld.so. This is because ld.so
+ # contains some of libc_pic.a already, which will prevent the COMMONs
+@@ -616,12 +581,12 @@
+ $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
+ $(LINK.o) -nostdlib -nostartfiles -r -o $@ \
+ $(LDFLAGS-c_pic.os) -Wl,-d -Wl,--whole-archive $^
+-LDSEDCMD-c.so = -e 's/^.*\*(\.dynbss).*$$/& __start___libc_freeres_ptrs = .; *(__libc_freeres_ptrs) __stop___libc_freeres_ptrs = .;/'
+ # Use our own special initializer and finalizer files for libc.so.
+ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
+ $(common-objpfx)libc_pic.os \
+ $(elfobjdir)/sofini.os \
+- $(elfobjdir)/interp.os $(elfobjdir)/ld.so
++ $(elfobjdir)/interp.os $(elfobjdir)/ld.so \
++ $(common-objpfx)shlib.lds
+ $(build-shlib)
+ ifeq ($(versioning),yes)
+ $(common-objpfx)libc.so: $(common-objpfx)libc.map
+@@ -689,6 +654,15 @@
+ +depfiles := $(addprefix $(objpfx),\
+ $(filter-out $(addsuffix .d,$(omit-deps)),\
+ $(+depfiles)))
++all-dt-files := $(foreach o,$(object-suffixes-for-libc),$(+depfiles:.d=$o.dt))
+++depfiles := $(patsubst %.dt,%.d,$(wildcard $(all-dt-files))) \
++ $(wildcard $(all-dt-files:.dt=.d))
++
++# This is a funny rule in that it removes its input file.
++%.d: %.dt
++ @sed $(sed-remove-objpfx) $< > $(@:.d=.T) && \
++ mv -f $(@:.d=.T) $@ && \
++ rm -f $<
+
+ # Avoid the .h.d files for any .sym files whose .h files don't exist yet.
+ # They will be generated when they're needed, and trying too early won't work.
+@@ -762,6 +736,7 @@
+ $(objpfx)stamp$o: $(o-objects); $$(do-stamp)
+ endef
+ define do-stamp
++$(make-target-directory)
+ echo '$(patsubst $(objpfx)%,$(addsuffix /,$(subdir))%,$^)' > $@T
+ mv -f $@T $@
+ endef
+@@ -1188,15 +1163,23 @@
+ LC_ALL=C \
+ $(AWK) -f $< -v 'config=$(check-abi-config)' \
+ $(filter %.abilist,$^) \
+- | diff -pu0 - $(filter %.symlist,$^)
++ | { diff -pu0 - $(filter %.symlist,$^) $(check-abi-warn) ; }
+ endef
++ifeq ($(enable-check-abi),warn)
++check-abi-warn = || echo '*** WARNING: $*.so failed ABI check'
++endif
+
+ ifeq ($(firstword $(sysd-sorted-done) f)$(firstword $(generating) f),tf)
+ -include $(common-objpfx)tls.make
+-config-tls-yes := tls
+-config-tls-no := notls
++config-tls := notls
++ifeq ($(use-tls),yes)
++config-tls := tls
++endif
++ifeq ($(use-thread),yes)
++config-tls := thread
++endif
+ check-abi-config := \
+- $(config-machine)-$(config-vendor)-$(config-os)/$(config-tls-$(use-thread))
++ $(config-machine)-$(config-vendor)-$(config-os)/$(config-tls)
+ endif
+
+ update-abi-%: $(..)scripts/merge-abilist.awk $(..)abilist/%.abilist \
+@@ -1211,7 +1194,7 @@
+ endef
+ else
+ define update-abi
+-LC_ALL=C $(AWK) -v config=$(update-abi-config) -f $^ \
++LC_ALL=C $(AWK) -v config='$(update-abi-config)' -f $^ \
+ > $(..)abilist/$*.abilist.new
+ @if cmp -s $(..)abilist/$*.abilist.new $(..)abilist/$*.abilist 2> /dev/null; \
+ then rm -f $(..)abilist/$*.abilist.new; \
+@@ -1233,19 +1216,23 @@
+ update-abi: subdir_update-abi
+ endif
+
+-# Enable this when all the .abilist files are in place.
+-#tests: check-abi
+-
+ ifeq ($(subdir),elf)
+ check-abi: check-abi-libc
+ update-abi: update-abi-libc
+ common-generated += libc.symlist
+ endif
+
++ifeq ($(build-shared),yes)
++ifneq ($(enable-check-abi),no)
++ifdef subdir
++tests: check-abi
++endif
++endif
++endif
++
+ endif
+
+ # There's no good place to put this - here will do.
+-# The dependencies are wrong if it's run from the top level.
+ ifeq ($(filter %posix, $(sysdirs)),)
+ L_tmpnam = 1
+ TMP_MAX = 0
+@@ -1263,24 +1250,20 @@
+ $(stdio_lim:h=st): $(..)stdio-common/stdio_lim.h.in $(..)Rules \
+ $(common-objpfx)config.make
+ $(make-target-directory)
+- echo '#include "$(..)posix/bits/posix1_lim.h"' | \
+- SUNPRO_DEPENDENCIES='$(@:st=dT) $@' \
+- $(CC) $(+includes) -E -dM -xc - -o $(@:st=hT)
+- echo '#include "$(..)misc/sys/uio.h"' | \
+- SUNPRO_DEPENDENCIES='$(@:st=dT) $@' \
+- $(CC) -D_LIBC=1 $(+includes) -E -dM -xc - | cat - >> $(@:st=hT)
+-ifdef sed-remove-objpfx
+- sed $(sed-remove-objpfx) $(@:st=dT) > $(@:st=dt)
+- cat $(@:st=dt) >> $(@:st=d)
+-else
+- cat $(@:st=dT) >> $(@:st=d)
+-endif
++ { echo '#include "$(..)posix/bits/posix1_lim.h"'; \
++ echo '#define _LIBC 1'; \
++ echo '#include "$(..)misc/sys/uio.h"'; } | \
++ $(CC) -E -dM -MD -MP -MF $(@:st=dT) -MT '$(@:st=h) $(@:st=d)' \
++ $(+includes) -xc - -o $(@:st=hT)
++ sed $(sed-remove-objpfx) $(sed-remove-dotdot) \
++ $(@:st=dT) > $(@:st=dt)
++ mv -f $(@:st=dt) $(@:st=d)
+ fopen_max=`sed -n 's/^#define OPEN_MAX //1p' $(@:st=hT)`; \
+ filename_max=`sed -n 's/^#define PATH_MAX //1p' $(@:st=hT)`; \
+ iov_max=`sed -n 's/^#define UIO_MAXIOV //p' $(@:st=hT)`; \
+ fopen_max=$${fopen_max:-16}; \
+ filename_max=$${filename_max:-1024}; \
+- if [ -z $$iov_max ]; then \
++ if [ -z "$$iov_max" ]; then \
+ define_iov_max="# undef IOV_MAX"; \
+ else \
+ define_iov_max="# define IOV_MAX $$iov_max"; \
+@@ -1355,8 +1338,8 @@
+
+ # Also remove the dependencies and generated source files.
+ common-clean: common-mostlyclean
+- -rm -f $(addprefix $(objpfx),$(generated)) $(+depfiles)
+- -rm -f $(objpfx)rtld-*.d
++ -rm -f $(addprefix $(objpfx),$(generated))
++ -rm -f $(objpfx)*.d $(objpfx)*.dt
+ -rm -fr $(addprefix $(objpfx),$(generated-dirs))
+ -rm -f $(addprefix $(common-objpfx),$(common-generated))
+ -rm -f $(objpfx)distinfo
+@@ -1370,17 +1353,23 @@
+ .PHONY: stubs # The parent Makefile calls this target.
+ stubs: $(objpfx)stubs
+ endif
+-s = $(sysdep_dir)/generic
+ $(objpfx)stubs: $(+depfiles)
++ifneq (,$(strip $(+depfiles)))
+ # Use /dev/null since `...` might expand to empty.
+- (s=`cd $s && $(PWD_P)`; \
+- $(patsubst %/,cd % &&,$(objpfx)) \
+- sed -n 's/^stub_warning *(\([^)]*\).*$$/#define __stub_\1/p' \
+- `sed -n -e '\@ $s/[^ ]*\.c@{; s@^.* $s/\([^ ]*\.c\).*$$@'"$$s"'/\1@; h; }' \
+- -e '/stub-tag\.h/{; g; p; }' \
+- $(patsubst $(objpfx)%,%,$^) /dev/null` \
+- /dev/null) > $@T
++ c=`($(patsubst %/,cd % &&,$(objpfx)) \
++ sed -n -e 's@\$$(common-objpfx)@$(common-objpfx)@g' \
++ -e 's@\$$(objpfx)@$(objpfx)@g' \
++ -e '/stub-tag\.h/{; g; s/./&/p; }' \
++ -e '/:/{x; s/^.*$$//; x; }' \
++ -e 's/^.*://;s/\\$$//;s/^ *\([^ ][^ ]*\) .*$$/\1/' \
++ -e '/^[^ ][^ ]*$$/{G;s/^.*\n\(..*\)/\1/;s/\n//;h; }' \
++ $(patsubst $(objpfx)%,%,$^)) | sort | uniq`; \
++ sed -n 's/^stub_warning *(\([^)]*\).*$$/#define __stub_\1/p' \
++ $$c /dev/null > $@T
+ mv -f $@T $@
++else
++ > $@
++endif
+
+ # Make the distribution tar file.
+
+--- glibc-2.3.2/NEWS 2003-01-13 04:26:13.000000000 -0500
++++ glibc-2.3.2/NEWS 2003-04-24 20:05:56.000000000 -0400
+@@ -1,10 +1,24 @@
+-GNU C Library NEWS -- history of user-visible changes. 2003-1-12
+-Copyright (C) 1992-2002, 2003 Free Software Foundation, Inc.
++GNU C Library NEWS -- history of user-visible changes. 2003-4-24
++Copyright (C) 1992-2002,2003 Free Software Foundation, Inc.
+ See the end for copying conditions.
+
+ Please send GNU C library bug reports using the `glibcbug' script to
+ <bugs@gnu.org>. Please send questions and suggestions to <bug-glibc@gnu.org>.
+
++Version 2.3.3
++
++* New functions `dladdr1' and `dlinfo' in <dlfcn.h> provide more ways to
++ interrogate the dynamic linker, compatible with the Solaris interface.
++
++* ELF thread-local storage support (TLS) now works on PowerPC and PowerPC64;
++ implemented by Paul Mackerras, Steven Munroe, and Roland McGrath.
++
++* getifaddrs new uses on Linux the netlink interface to get the information.
++ Implemented by Thorsten Kukuk.
++
++* getaddrinfo now implements AI_V4MAPPED, AI_ALL, and AI_ADDRCONF.
++ Implemented by Ulrich Drepper.
++
+ Version 2.3.2
+
+ * Thread-safe interfaces for many functions that access locale data
+--- glibc-2.3.2/README-alpha 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/README-alpha 2002-11-16 08:53:55.000000000 -0500
+@@ -0,0 +1,287 @@
++ GNU libc SNAPSHOT SYSTEM
++ (general info)
++ Updated 1997-9-26
++
++WHAT ARE GNU libc SNAPSHOTS
++---------------------------
++
++Snapshots are an "image" of the main glibc development tree, captured at a
++particular random instant in time. When you use the snapshots, you should be
++able to maintain a local copy of libc that is no more than one day older than
++the official source tree used by the libc maintainers.
++
++The primary purpose of providing snapshots is to widen the group of motivated
++developers that would like to help test, debug, and enhance glibc, by providing
++you with access to the "latest and greatest" source. This has several
++advantages, and several disadvantages.
++
++ First the advantages:
++
++ o Once we have a large base of motivated testers using the snapshots,
++ this should provide good coverage across all currently supported
++ glibc hosts and targets. If a new bug is introduced in glibc due to
++ fixing another bug or ongoing development, it should become
++ obvious much more quickly and get fixed before the next general
++ net release. This should help to reduce the chances of glibc being
++ released to the general public with a major bug that went unnoticed
++ during the release cycle testing because they are machine dependent.
++ We hope to greatly improve glibc's stability and reliability by
++ involving more people and more execution environments in the
++ prerelease testing.
++
++ o With access to the latest source, any diffs that you send to fix
++ bugs or add new features should be much easier for the glibc team
++ to merge into the official source base (after suitable review
++ of course). This encourages us to merge your changes quicker,
++ while they are still "fresh".
++
++ o Once your diffs are merged, you can obtain a new copy of glibc
++ containing your changes almost immediately. Thus you do not
++ have to maintain local copies of your changes for any longer
++ than it takes to get them merged into the official source base.
++ This encourages you to send in changes quicker.
++
++ And the disadvantages:
++
++ o The snapshot you get will be largely untested and of unknown quality.
++ It may fail to configure or compile. It may have serious bugs.
++ You should always keep a copy of the last known working version
++ before updating to the current snapshot, or at least be able to
++ regenerate a working version if the latest snapshot is unusable
++ in your environment for some reason.
++
++ If a production version of glibc has a bug and a snapshot has the fix,
++ and you care about stability, you should put only the fix for that
++ particular problem into your production version. Of course, if you
++ are eager to test glibc, you can use the snapshot versions in your
++ daily work, but users who have not been consulted about whether they
++ feel like testing glibc should generally have something which is at
++ least as bug free as the last released version.
++
++ o Providing timely response to your questions, bug reports, and
++ submitted patches will require the glibc development team to allocate
++ time from an already thin time budget. Please try to help us make
++ this time as productive as possible. See the section below about
++ how to submit changes.
++
++
++WHO SHOULD TRY THE SNAPSHOTS
++----------------------------
++
++Remember, these are snapshots not tested versions. So if you use
++these versions you should be able to
++
++ o make sure your system stays usable
++
++ o locate and hopefully fix problems
++
++ o to port glibc to a new target yourself
++
++You should not use the snapshots if
++
++ o your system is needed in a production environment which needs
++ stability
++
++ o you expect us to fix your problems since you somehow depend on them.
++ You must be willing to fix the problems yourself, we don't want to
++ see "I have problems, fix this" messages.
++
++
++HOW TO GET THE SNAPSHOTS
++------------------------
++
++At the moment we provide a full snapshot weekly (every sunday), so
++that users getting a snapshot for the first time, or updating after
++a long period of not updating, can get the latest version in a single
++operation. Along with the full snapshot, we will provide incremental
++diffs on a nearly daily basis (whenever code changes). Each daily
++diff will be relative to the source tree after applying all previous
++daily diffs. The daily diffs are for people who have relatively low
++bandwidth ftp or uucp connections.
++
++The files will be available via anonymous ftp from alpha.gnu.org, in
++directory /gnu/libc and on linux.kernel.org in /pub/software/libs/glibc. The
++directories should look something like:
++
++ libc-970921.tar.gz
++ libc-970917-970922.diff.gz
++ libc-970922-970925.diff.gz
++ .
++ .
++ .
++
++Please note that the snapshots on alpha.gnu.org and on
++linux.kernel.org are not always in sync. Patches to some files might
++appear a day a diff earlier or later on alpha than on kernel.
++Use always alpha or always kernel but don't mix them.
++
++There are sometimes additionally test releases of the add-ons available in
++these directories. If a new version of an add-on is available it is normally
++required for the corresponding snapshot so always pay attention for these.
++
++Note that we provide GNU gzip compressed files only. You can ftp gzip
++from ftp.gnu.org in directory pub/gnu.
++
++In some cases the dates for diffs and snapshots do not match like in the
++example above. The full release is for 970921 but the patch is for
++970917-970922. This only means that nothing changed between 970917 and 970922
++and that you have to use this patch on top of the 970921 snapshot since the
++patch is made on 970922.
++
++Also, as the gcc developers did with their gcc snapshot system, even though we
++will make the snapshots available on a publically accessible ftp area, we ask
++that recipients not widely publicise their availability. The motivation for
++this request is not to hoard them, but to avoid the situation where the
++general glibc user base naively attempts to use the snapshots, has trouble with
++them, complains publically, and the reputation of glibc declines because of a
++perception of instability or lack of quality control.
++
++
++GLIBC TEST SUITE
++----------------
++
++A test suite is distributed as an integral part of the snapshots. A simple
++"make check" in your build directory is sufficient to run the tests. glibc
++should pass all tests and if any fails, please report it. A failure might not
++originate from a bug in glibc but also from bugs in the tools, e.g. with gcc
++2.7.2.x the math tests fail some of the tests because of compiler bugs.
++
++Note that the test suite is still in its infancy. The tests themselves only
++cover a small portion of libc features, and where tests do exist for a feature
++they are not exhaustive. New tests are welcome.
++
++
++GETTING HELP, GLIBC DISCUSSIONS, etc
++------------------------------------
++
++People who want to help with glibc and who test out snapshots
++regularly should get on the libc-alpha@sourceware.cygnus.com mailing
++list by sending an email to libc-alpha-subscribe@sourceware.cygnus.com.
++This list is meant (as the name suggests) for the discussion of test
++releases and also reports for them. People who are on this list are
++welcome to post questions of general interest.
++
++People who are not only willing to test the snapshots but instead
++really want to help developing glibc should contact
++libc-hacker-subscribe@sourceware.cygnus.com.org to be put on the developers
++mailing list. This list is really only meant for developers. No
++questions about installation problems or other simple topics are
++wanted nor will they be answered.
++
++Do *not* send any questions about the snapshots or patches specific to the
++snapshots to bug-glibc@gnu.org. Nobody there will have any idea what
++you are talking about and it will just cause confusion.
++
++
++BUG REPORTS
++-----------
++
++Send bug reports directly to Ulrich Drepper <drepper@gnu.org>. Please
++do *not* use the glibcbug script for reporting bugs in the snapshots.
++glibcbug should only be used for problems with the official released versions.
++We don't like bug reports in the bug database because otherwise the impression
++of instability or lack of quality control of glibc as a whole might manifest
++in people's mind.
++
++Note that since no testing is done on the snapshots, and snapshots may even be
++made when glibc is in an inconsistent state, it may not be unusual for an
++occasional snapshot to have a very obvious bug, such as failure to compile on
++*any* machine. It is likely that such bugs will be fixed by the next
++snapshot, so it really isn't necessary to report them unless they persist for
++a couple of days.
++
++Missing files should always be reported, since they usually mean there is a
++problem with the snapshot-generating process and we won't know about them
++unless someone tells us.
++
++Bugs which are non-obvious, such as failure to compile on only a specific
++machine, a new machine dependent or obscure bug (particularly one not detected
++by the testsuite), etc should be reported when you discover them, or have a
++suggested patch to fix them.
++
++
++FORMAT FOR PATCHES
++------------------
++
++If you have a fix for a bug, or an enhancement to submit, send your patch to
++Ulrich Drepper <drepper@gnu.org>. Here are some simple guidelines for
++submitting patches:
++
++ o Use "unified diffs" for patches. A typical command for generating
++ context diffs is "diff -ru glibc-old glibc-patched".
++
++ o Use the "minimalist approach" for patches. That is, each patch
++ should address only one particular bug, new feature, etc. Do not
++ save up many unrelated changes and submit them all in one big
++ patch, since in general, the larger the patch the more difficult
++ it is for us to decide if the patch is either correct or
++ desirable. And if we find something about the patch that needs
++ to be corrected before it can be installed, we would have to reject
++ the entire patch, which might contain changes which otherwise would
++ be accepted if submitted separately.
++
++ o Submit a sample ChangeLog entry with your patch. See the existing
++ glibc ChangeLog for examples of what a ChangeLog entry should look
++ like. The emacs command ^X4A will create a ChangeLog entry header
++ for you.
++
++
++BUILDING SNAPSHOTS
++------------------
++
++The `best' way to build glibc is to use an extra directory, e.g.:
++tar xzf libc-970921.tar.gz
++mkdir build-glibc
++cd build-glibc
++../libc-970921/configure ...
++
++In this way you can easily clean up (since `make clean' doesn't work at
++the moment) and rebuild glibc.
++
++
++NECESSARY TOOLS
++---------------
++
++For the recommended versions of gcc, binutils, make, texinfo, gettext,
++autoconf and other tools which might be especially needed when using patches,
++please read the file INSTALL.
++
++
++HOW CAN YOU HELP
++----------------
++
++It helps already a lot if you just install glibc on your system and try to
++solve any problems. You might want to look at the file `PROJECTS' and help
++with one of those projects, fix some bugs (see `BUGS' or the bug database),
++port to an unsupported platform, ...
++
++
++FURTHER DOCUMENTATION
++---------------------
++
++A lot of questions are answered in the FAQ. The files `INSTALL', `README' and
++`NOTES' contain the most important documentation. Furthermore glibc has its
++own 700+ pages info documentation, ...
++
++
++
++And finally a word of caution: The libc is one of the most fundamental parts
++of your system - and these snapshots are untested and come without any
++guarantee or warranty. You might be lucky and everything works or you might
++crash your system. If you install a glibc snapshot as primary library, you
++should have a backup somewhere.
++
++On many systems it is also a problem to replace the libc while the system is
++running. In the worst case on broken OSes some systems crash. On better
++systems you can move the old libc aside but removing it will cause problems
++since there are still processes using this libc image and so you might have to
++check the filesystem to get rid of the libc data. One good alternative (which
++is also safer) is to use a chroot'ed environment.
++
++Thanks for your help and support.
++
++Thanks to Fred Fish from Cygnus for the original version of this text
++(for GDB).
++
++
++Ulrich Drepper
+--- glibc-2.3.2/README.template 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/README.template 2002-11-16 08:53:56.000000000 -0500
+@@ -0,0 +1,87 @@
++This directory contains the version VERSION release of the GNU C Library.
++Many bugs have been fixed since the last release.
++Some bugs surely remain.
++
++As of this release, the GNU C library is known to run on the following
++configurations:
++
++ *-*-gnu GNU Hurd
++ i[3456]86-*-linux-gnu Linux-2.x on Intel
++ m68k-*-linux-gnu Linux-2.x on Motorola 680x0
++ alpha*-*-linux-gnu Linux-2.x on DEC Alpha
++ powerpc-*-linux-gnu Linux and MkLinux on PowerPC systems
++ powerpc64-*-linux-gnu Linux-2.4.19+ on 64-bit PowerPC systems
++ sparc-*-linux-gnu Linux-2.x on SPARC
++ sparc64-*-linux-gnu Linux-2.x on UltraSPARC 64-bit
++ arm-*-none ARM standalone systems
++ arm-*-linux Linux-2.x on ARM
++ arm-*-linuxaout Linux-2.x on ARM using a.out binaries
++ mips*-*-linux-gnu Linux-2.x on MIPS
++ ia64-*-linux-gnu Linux-2.x on ia64
++ s390-*-linux-gnu Linux-2.x on IBM S/390
++ s390x-*-linux-gnu Linux-2.4+ on IBM S/390 64-bit
++ sh-*-linux-gnu Linux-2.x on Super Hitachi
++ cris-*-linux-gnu Linux-2.4+ on CRIS
++ x86-64-*-linux-gnu Linux-2.4+ on x86-64
++
++Former releases of this library (version 1.09.1 and perhaps earlier
++versions) used to run on the following configurations:
++
++ alpha-dec-osf1
++ i[3456]86-*-bsd4.3
++ i[3456]86-*-isc2.2
++ i[3456]86-*-isc3
++ i[3456]86-*-sco3.2
++ i[3456]86-*-sco3.2v4
++ i[3456]86-*-sysv
++ i[3456]86-*-sysv4
++ i[3456]86-force_cpu386-none
++ i[3456]86-sequent-bsd
++ i960-nindy960-none
++ m68k-hp-bsd4.3
++ m68k-mvme135-none
++ m68k-mvme136-none
++ m68k-sony-newsos3
++ m68k-sony-newsos4
++ m68k-sun-sunos4
++ mips-dec-ultrix4
++ mips-sgi-irix4
++ sparc-sun-solaris2
++ sparc-sun-sunos4
++
++Since no one has volunteered to test and fix the above configurations,
++these are not supported at the moment. It's expected that these don't
++work anymore. Porting the library is not hard. If you are interested
++in doing a port, please contact the glibc maintainers by sending
++electronic mail to <bug-glibc@gnu.org>.
++
++There are some add-ons which can be used together with GNU libc. They
++are designed in a way to ease the installation by integrating them in
++the libc source tree. Simply get the add-ons you need and use the
++--enable-add-ons option of the `configure' script to tell where the
++add-ons are found. Please read the FAQ file for more details.
++
++See the file INSTALL to find out how to configure, build, install, and port
++the GNU C library. You might also consider reading the WWW pages for the
++GNU libc at http://www.gnu.org/software/libc/libc.html.
++
++The GNU C Library is completely documented by the Texinfo manual found
++in the `manual/' subdirectory. The manual is still being updated and
++contains some known errors and omissions; we regret that we do not
++have the resources to work on the manual as much as we would like.
++Please send comments on the manual to <bug-glibc-manual@gnu.org>, and
++not to the library bug-reporting address.
++
++The file NOTES contains a description of the feature-test macros used
++in the GNU C library, explaining how you can tell the library what
++facilities you want it to make available.
++
++We prefer to get bug reports sent using the `glibcbug' shell script which
++is installed together with the rest of the GNU libc to <bugs@gnu.org>.
++Simply run this shell script and fill in the information. Nevertheless
++you can still send bug reports to <bug-glibc@gnu.org> as normal electronic
++mails.
++
++The GNU C Library is free software. See the file COPYING.LIB for copying
++conditions, and LICENSES for notices about a few contributions that require
++these additional notices to be distributed.
+--- glibc-2.3.2/Versions.def 2002-12-10 14:05:17.000000000 -0500
++++ glibc-2.3.2/Versions.def 2003-04-12 11:39:41.000000000 -0400
+@@ -18,6 +18,7 @@
+ GLIBC_2.3
+ GLIBC_2.3.1
+ GLIBC_2.3.2
++ GLIBC_2.3.3
+ %ifdef USE_IN_LIBIO
+ HURD_CTHREADS_0.3
+ %endif
+@@ -32,6 +33,7 @@
+ libdl {
+ GLIBC_2.0
+ GLIBC_2.1
++ GLIBC_2.3.3
+ }
+ libm {
+ GLIBC_2.0
+@@ -71,6 +73,7 @@
+ GLIBC_2.2.3
+ GLIBC_2.2.6
+ GLIBC_2.3.2
++ GLIBC_2.3.3
+ GLIBC_PRIVATE
+ }
+ libresolv {
+@@ -82,6 +85,7 @@
+ GLIBC_2.1
+ GLIBC_2.2
+ GLIBC_2.3
++ GLIBC_2.3.3
+ }
+ libutil {
+ GLIBC_2.0
+@@ -96,6 +100,7 @@
+ GLIBC_2.1.3
+ GLIBC_2.2.3
+ GLIBC_2.3
++ GLIBC_2.3.3
+ }
+ libanl {
+ GLIBC_2.2.3
+--- glibc-2.3.2/abilist/ld.abilist 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/abilist/ld.abilist 2003-04-01 23:39:52.000000000 -0500
+@@ -0,0 +1,35 @@
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++ GLIBC_2.0 A
++ _r_debug D 0x14
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ __libc_memalign F
++ calloc F
++ free F
++ malloc F
++ realloc F
++GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++ GLIBC_2.1 A
++GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ _dl_mcount F
++GLIBC_2.2.5 x86_64-.*-linux.*/tls
++ GLIBC_2.2.5 A
++GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ _r_debug D 0x28
++GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls
++ GLIBC_2.2 A
++GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls x86_64-.*-linux.*/tls
++ GLIBC_2.3 A
++GLIBC_2.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls
++ ___tls_get_addr F
++GLIBC_2.3 i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread x86_64-.*-linux.*/tls
++ __tls_get_addr F
++GLIBC_2.3 s390-.*-linux.*/tls s390x-.*-linux.*/tls
++ __tls_get_offset F
+--- glibc-2.3.2/abilist/libBrokenLocale.abilist 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/abilist/libBrokenLocale.abilist 2003-04-01 23:39:52.000000000 -0500
+@@ -0,0 +1,13 @@
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++ GLIBC_2.0 A
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ __ctype_get_mb_cur_max F
++GLIBC_2.2.5 x86_64-.*-linux.*/tls
++ GLIBC_2.2.5 A
++GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++ GLIBC_2.2 A
++GLIBC_2.3 powerpc64-.*-linux.*/thread
++ GLIBC_2.3 A
+--- glibc-2.3.2/abilist/libanl.abilist 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/abilist/libanl.abilist 2003-04-01 23:39:52.000000000 -0500
+@@ -0,0 +1,13 @@
++GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++ GLIBC_2.2.3 A
++GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ gai_cancel F
++ gai_error F
++ gai_suspend F
++ getaddrinfo_a F
++GLIBC_2.2.5 x86_64-.*-linux.*/tls
++ GLIBC_2.2.5 A
++GLIBC_2.3 powerpc64-.*-linux.*/thread
++ GLIBC_2.3 A
+--- glibc-2.3.2/abilist/libc.abilist 1969-12-31 19:00:00.000000000 -0500
++++ glibc-2.3.2/abilist/libc.abilist 2003-04-01 23:39:52.000000000 -0500
+@@ -0,0 +1,2231 @@
++GCC_3.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++ GCC_3.0 A
++ _Unwind_Find_FDE F
++ __deregister_frame_info_bases F
++ __register_frame_info_bases F
++ __register_frame_info_table_bases F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls
++ __fpu_control D 0x2
++ vm86 F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++ GLIBC_2.0 A
++ _IO_stderr_ D 0x50
++ _IO_stdin_ D 0x50
++ _IO_stdout_ D 0x50
++ __strtoq_internal F
++ __strtouq_internal F
++ _sys_errlist D 0x1ec
++ _sys_siglist D 0x80
++ res_init F
++ sys_errlist D 0x1ec
++ sys_sigabbrev D 0x80
++ sys_siglist D 0x80
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.1.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ getaliasbyname_r F
++ getaliasent_r F
++ getgrent_r F
++ getgrgid_r F
++ getgrnam_r F
++ gethostbyaddr_r F
++ gethostbyname2_r F
++ gethostbyname_r F
++ gethostent_r F
++ getnetbyaddr_r F
++ getnetbyname_r F
++ getnetent_r F
++ getprotobyname_r F
++ getprotobynumber_r F
++ getprotoent_r F
++ getpwent_r F
++ getpwnam_r F
++ getpwuid_r F
++ getrpcbyname_r F
++ getrpcbynumber_r F
++ getrpcent_r F
++ getservbyname_r F
++ getservbyport_r F
++ getservent_r F
++ getspent_r F
++ getspnam_r F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls
++ _sys_nerr D 0x4
++ sys_nerr D 0x4
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ _IO_do_write F
++ _IO_fclose F
++ _IO_fdopen F
++ _IO_file_attach F
++ _IO_file_close_it F
++ _IO_file_fopen F
++ _IO_file_init F
++ _IO_file_overflow F
++ _IO_file_seekoff F
++ _IO_file_setbuf F
++ _IO_file_sync F
++ _IO_file_underflow F
++ _IO_file_write F
++ _IO_file_xsputn F
++ _IO_fopen F
++ _IO_popen F
++ _IO_proc_close F
++ _IO_proc_open F
++ fclose F
++ fdopen F
++ fopen F
++ pclose F
++ popen F
++ pthread_attr_init F
++ tmpfile F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.1 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ chown F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ fnmatch F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ _IO_fgetpos F
++ _IO_fsetpos F
++ fgetpos F
++ fopencookie F
++ fsetpos F
++ getrlimit F
++ localeconv F
++ msgctl F
++ semctl F
++ setrlimit F
++ shmctl F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++ re_max_failures D 0x4
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3.2 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ pthread_cond_broadcast F
++ pthread_cond_destroy F
++ pthread_cond_init F
++ pthread_cond_signal F
++ pthread_cond_wait F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls ia64-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls powerpc64-.*-linux.*/thread s390-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls x86_64-.*-linux.*/tls
++ realpath F
++GLIBC_2.0 i.86-.*-linux.*/notls i.86-.*-linux.*/thread i.86-.*-linux.*/tls m68.*-.*-linux.*/notls powerpc-.*-linux.*/notls powerpc-.*-linux.*/thread powerpc-.*-linux.*/tls s390-.*-linux.*/tls
++| GLIBC_2.2.5 x86_64-.*-linux.*/tls
++| GLIBC_2.2 ia64-.*-linux.*/tls s390x-.*-linux.*/tls sh[34].*-.*-linux.*/notls sh[34].*-.*-linux.*/thread sh[34].*-.*-linux.*/tls
++| GLIBC_2.3 powerpc64-.*-linux.*/thread
++ _IO_adjust_column F
++ _IO_default_doallocate F
++ _IO_default_finish F
++ _IO_default_pbackfail F
++ _IO_default_uflow F
++ _IO_default_xsgetn F
++ _IO_default_xsputn F
++ _IO_doallocbuf F
++ _IO_feof F
++ _IO_ferror F
++ _IO_fflush F
++ _IO_fgets F
++ _IO_file_close F
++ _IO_file_doallocate F
++ _IO_file_open F
++ _IO_file_read F
++ _IO_file_seek F
++ _IO_file_stat F
++ _IO_flockfile F
++ _IO_flush_all F
++ _IO_flush_all_linebuffered F
++ _IO_fprintf F
++ _IO_fputs F
++ _IO_fread F
++ _IO_free_backup_area F
++ _IO_ftell F
++ _IO_ftrylockfile F
++ _IO_funlockfile F
++ _IO_fwrite F
++ _IO_getc F
++ _IO_getline F
++ _IO_gets F
++ _IO_init F
++ _IO_init_marker F
++ _IO_link_in F
++ _IO_marker_delta F
++ _IO_marker_difference F
++ _IO_padn F
++ _IO_peekc_locked F
++ _IO_printf F
++ _IO_putc F
++ _IO_puts F
++ _IO_remove_marker F
++ _IO_seekmark F
++ _IO_seekoff F
++ _IO_seekpos F
++ _IO_setb F
++ _IO_setbuffer F
++ _IO_setvbuf F
++ _IO_sgetn F
++ _IO_sprintf F
++ _IO_sputbackc F
++ _IO_sscanf F
++ _IO_str_init_readonly F
++ _IO_str_init_static F
++ _IO_str_overflow F
++ _IO_str_pbackfail F
++ _IO_str_seekoff F
++ _IO_str_underflow F
++ _IO_sungetc F
++ _IO_switch_to_get_mode F
++ _IO_un_link F
++ _IO_ungetc F
++ _IO_unsave_markers F
++ _IO_vfprintf F
++ _IO_vfscanf F
++ _IO_vsprintf F
++ __adjtimex F
++ __argz_count F
++ __argz_next F
++ __argz_stringify F
++ __assert_fail F
++ __assert_perror_fail F
++ __bsd_getpgrp F
++ __check_rhosts_file D 0x4
++ __close F
++ __cmsg_nxthdr F
++ __connect F
++ __ctype_get_mb_cur_max F
++ __daylight D 0x4
++ __dcgettext F
++ __default_morecore F
++ __dgettext F
++ __dup2 F
++ __errno_location F
++ __fcntl F
++ __ffs F
++ __finite F
++ __finitef F
++ __finitel F
++ __fxstat F
++ __getdelim F
++ __getpagesize F
++ __getpgid F
++ __getpid F
++ __gettimeofday F
++ __gmtime_r F
++ __h_errno_location F
++ __isinf F
++ __isinff F
++ __isinfl F
++ __isnan F
++ __isnanf F
++ __isnanl F
++ __iswctype F
++ __ivaliduser F
++ __libc_calloc F
++ __libc_free F
++ __libc_init_first F
++ __libc_mallinfo F
++ __libc_malloc F
++ __libc_mallopt F
++ __libc_memalign F
++ __libc_pvalloc F
++ __libc_realloc F
++ __libc_start_main F
++ __libc_valloc F
++ __lseek F
++ __lxstat F
++ __mbrlen F
++ __mbrtowc F
++ __mempcpy F
++ __monstartup F
++ __nss_configure_lookup F
++ __nss_database_lookup F
++ __nss_group_lookup F
++ __nss_hosts_lookup F
++ __nss_next F
++ __nss_passwd_lookup F
++ __open F
++ __overflow F
++ __pipe F
++ __printf_fp F
++ __profile_frequency F
++ __read F
++ __res_randomid F
++ __sbrk F
++ __sched_get_priority_max F
++ __sched_get_priority_min F
++ __sched_getparam F
++ __sched_getscheduler F
++ __sched_setscheduler F
++ __sched_yield F
++ __secure_getenv F
++ __select F
++ __send F
++ __setpgid F
++ __sigaction F
++ __sigaddset F
++ __sigdelset F
++ __sigismember F
++ __sigpause F
++ __sigsetjmp F
++ __stpcpy F
++ __stpncpy F
++ __strcasecmp F
++ __strdup F
++ __strerror_r F
++ __strtod_internal F
++ __strtof_internal F
++ __strtok_r F
++ __strtol_internal F
++ __strtold_internal F
++ __strtoll_internal F
++ __strtoul_internal F
++ __strtoull_internal F
++ __sysv_signal F
++ __uflow F
++ __underflow F
++ __vfscanf F
++ __vsnprintf F
++ __vsscanf F
++ __wait F
++ __waitpid F
++ __wcstod_internal F
++ __wcstof_internal F
++ __wcstol_internal F
++ __wcstold_internal F
++ __wcstoll_internal F
++ __wcstoul_internal F
++ __wcstoull_internal F
++ __write F
++ __xmknod F
++ __xpg_basename F
++ __xstat F
++ _exit F
++ _libc_intl_domainname D 0x5
++ _longjmp F
++ _mcleanup F
++ _mcount F
++ _nl_msg_cat_cntr D 0x4
++ _obstack_allocated_p F
++ _obstack_begin F
++ _obstack_begin_1 F
++ _obstack_free F
++ _obstack_memory_used F
++ _obstack_newchunk F
++ _rpc_dtablesize F
++ _seterr_reply F
++ _setjmp F
++ _tolower F
++ _toupper F
++ a64l F
++ abort F
++ abs F
++ accept F
++ access F
++ acct F
++ addmntent F
++ adjtime F
++ adjtimex F
++ advance F
++ alarm F
++ alphasort F
++ argz_add F
++ argz_add_sep F
++ argz_append F
++ argz_count F
++ argz_create F
++ argz_create_sep F
++ argz_delete F
++ argz_extract F
++ argz_insert F
++ argz_next F
++ argz_replace F
++ argz_stringify F
++ asctime F
++ asctime_r F
++ asprintf F
++ atof F
++ atoi F
++ atol F
++ atoll F
++ authnone_create F
++ authunix_create F
++ authunix_create_default F
++ basename F
++ bcmp F
++ bcopy F
++ bdflush F
++ bind F
++ bindresvport F
++ bindtextdomain F
++ brk F
++ bsd_signal F
++ bsearch F
++ btowc F
++ bzero F
++ calloc F
++ callrpc F
++ canonicalize_file_name F
++ catclose F
++ catgets F
++ catopen F
++ cfgetispeed F
++ cfgetospeed F
++ cfmakeraw F
++ cfree F
++ cfsetispeed F
++ cfsetospeed F
++ cfsetspeed F
++ chdir F
++ chflags F
++ chmod F
++ chroot F
++ clearenv F
++ clearerr F
++ clearerr_unlocked F
++ clnt_broadcast F
++ clnt_create F
++ clnt_pcreateerror F
++ clnt_perrno F
++ clnt_perror F
++ clnt_spcreateerror F
++ clnt_sperrno F
++ clnt_sperror F
++ clntraw_create F
++ clnttcp_create F
++ clntudp_bufcreate F
++ clntudp_create F
++ clock F
++ close F
++ closedir F
++ closelog F
++ confstr F
++ connect F
++ copysign F
++ copysignf F
++ copysignl F
++ creat F
++ create_module F
++ ctermid F
++ ctime F
++ ctime_r F
++ cuserid F
++ daemon F
++ daylight D 0x4
++ dcgettext F
++ delete_module F
++ dgettext F
++ difftime F
++ dirfd F
++ dirname F
++ div F
++ dprintf F
++ drand48 F
++ drand48_r F
++ dup F
++ dup2 F
++ dysize F
++ ecvt F
++ ecvt_r F
++ endaliasent F
++ endfsent F
++ endgrent F
++ endhostent F
++ endmntent F
++ endnetent F
++ endnetgrent F
++ endprotoent F
++ endpwent F
++ endrpcent F
++ endservent F
++ endspent F
++ endttyent F
++ endusershell F
++ endutent F
++ envz_add F
++ envz_entry F
++ envz_get F
++ envz_merge F
++ envz_remove F
++ envz_strip F
++ erand48 F
++ erand48_r F
++ err F
++ error F
++ error_at_line F
++ error_message_count D 0x4
++ error_one_per_line D 0x4
++ errx F
++ ether_aton F
++ ether_aton_r F
++ ether_hostton F
++ ether_line F
++ ether_ntoa F
++ ether_ntoa_r F
++ ether_ntohost F
++ euidaccess F
++ execl F
++ execle F
++ execlp F
++ execv F
++ execve F
++ execvp F
++ exit F
++ fchdir F
++ fchflags F
++ fchmod F
++ fchown F
++ fcloseall F
++ fcntl F
++ fcvt F
++ fcvt_r F
++ fdatasync F
++ feof F
++ feof_unlocked F
++ ferror F
++ ferror_unlocked F
++ fexecve F
++ fflush F
++ fflush_unlocked F
++ ffs F
++ fgetc F
++ fgetgrent F
++ fgetgrent_r F
++ fgetpwent F
++ fgetpwent_r F
++ fgets F
++ fgetspent F
++ fgetspent_r F
++ fileno F
++ fileno_unlocked F
++ finite F
++ finitef F
++ finitel F
++ flock F
++ flockfile F
++ fork F
++ fpathconf F
++ fprintf F
++ fputc F
++ fputc_unlocked F
++ fputs F
++ fread F
++ free F
++ freeaddrinfo F
++ freopen F
++ frexp F
++ frexpf F
++ frexpl F
++ fscanf F
++ fseek F
++ fstatfs F
++ fsync F
++ ftell F
++ ftime F
++ ftok F
++ ftruncate F
++ ftrylockfile F
++ fts_children F
++ fts_close F
++ fts_open F
++ fts_read F
++ fts_set F
++ ftw F
++ funlockfile F
++ fwrite F
++ gcvt F
++ get_avphys_pages F
++ get_current_dir_name F
++ get_kernel_syms F
++ get_myaddress F
++ get_nprocs F
++ get_nprocs_conf F
++ get_phys_pages F
++ getaddrinfo F
++ getaliasbyname F
++ getaliasent F
++ getc F
++ getc_unlocked F
++ getchar F
++ getchar_unlocked F
++ getcwd F
++ getdelim F
++ getdirentries F
++ getdomainname F
++ getdtablesize F
++ getegid F
++ getenv F
++ geteuid F
++ getfsent F
++ getfsfile F
++ getfsspec F
++ getgid F
++ getgrent F
++ getgrgid F
++ getgrnam F
++ getgroups F
++ gethostbyaddr F
++ gethostbyname F
++ gethostbyname2 F
++ gethostent F
++ gethostid F
++ gethostname F
++ getitimer F
++ getline F
++ getlogin F
++ getlogin_r F
++ getmntent F
++ getmntent_r F
++ getnetbyaddr F
++ getnetbyname F
++ getnetent F
++ getnetgrent F
++ getnetgrent_r F
++ getopt F
++ getopt_long F
++ getopt_long_only F
++ getpagesize F
++ getpass F
++ getpeername F
++ getpgid F
++ getpgrp F
++ getpid F
++ getppid F
++ getpriority F
++ getprotobyname F
++ getprotobynumber F
++ getprotoent F
++ getpublickey F
++ getpw F
++ getpwent F
++ getpwnam F
++ getpwuid F
++ getresgid F
++ getresuid F
++ getrpcbyname F
++ getrpcbynumber F
++ getrpcent F
++ getrpcport F
++ getrusage F
++ gets F
++ getsecretkey F
++ getservbyname F
++ getservbyport F
++ getservent F
++ getsid F
++ getsockname F
++ getsockopt F
++ getspent F
++ getspnam F
++ getsubopt F
++ gettext F
++ gettimeofday F
++ getttyent F
++ getttynam F
++ getuid F
++ getusershell F
++ getutent F
++ getutent_r F
++ getutid F
++ getutid_r F
++ getutline F
++ getutline_r F
++ getw F
++ getwd F
++ glob F
++ glob_pattern_p F
++ globfree F
++ gmtime F
++ gmtime_r F
++ group_member F
++ gsignal F
++ gtty F
++ h_nerr D 0x4
++ hasmntopt F
++ hcreate F
++ hcreate_r F
++ hdestroy F
++ hdestroy_r F
++ herror F
++ hsearch F
++ hsearch_r F
++ hstrerror F
++ htonl F
++ htons F
++ index F
++ inet_addr F
++ inet_aton F
++ inet_lnaof F
++ inet_makeaddr F
++ inet_netof F
++ inet_network F
++ inet_nsap_addr F
++ inet_nsap_ntoa F
++ inet_ntoa F
++ inet_ntop F
++ inet_pton F
++ init_module F
++ initgroups F
++ initstate F
++ initstate_r F
++ innetgr F
++ insque F
++ ioctl F
++ iruserok F
++ isalnum F
++ isalpha F
++ isascii F
++ isatty F
++ isblank F
++ iscntrl F
++ isdigit F
++ isfdtype F
++ isgraph F
++ isinf F
++ isinff F
++ isinfl F
++ islower F
++ isnan F
++ isnanf F
++ isnanl F
++ isprint F
++ ispunct F
++ isspace F
++ isupper F
++ iswalnum F
++ iswalpha F
++ iswcntrl F
++ iswctype F
++ iswdigit F
++ iswgraph F
++ iswlower F
++ iswprint F
++ iswpunct F
++ iswspace F
++ iswupper F
++ iswxdigit F
++ isxdigit F
++ jrand48 F
++ jrand48_r F
++ kill F
++ killpg F
++ klogctl F
++ l64a F
++ labs F
++ lchown F
++ lckpwdf F
++ lcong48 F
++ lcong48_r F
++ ldexp F
++ ldexpf F
++ ldexpl F
++ ldiv F
++ lfind F
++ link F
++ listen F
++ llabs F
++ lldiv F
++ llseek F
++ localtime F
++ localtime_r F
++ lockf F
++ longjmp F
++ lrand48 F
++ lrand48_r F
++ lsearch F
++ lseek F
++ madvise F
++ mallinfo F
++ malloc F
++ malloc_get_state F
++ malloc_set_state F
++ malloc_stats F
++ malloc_trim F
++ malloc_usable_size F
++ mallopt F
++ mblen F
++ mbrlen F
++ mbrtowc F
++ mbsinit F
++ mbsnrtowcs F
++ mbsrtowcs F
++ mbstowcs F
++ mbtowc F
++ mcheck F
++ memalign F
++ memccpy F
++ memchr F
++ memcmp F
++ memcpy F
++ memfrob F
++ memmem F
++ memmove F
++ memset F
++ mkdir F
++ mkfifo F
++ mkstemp F
++ mktemp F
++ mktime F
++ mlock F
++ mlockall F
++ mmap F
++ modf F
++ modff F
++ modfl F
++ monstartup F
++ mount F
++ mprobe F
++ mprotect F
++ mrand48 F
++ mrand48_r F
++ mremap F
++ msgget F
++ msgrcv F
++ msgsnd F
++ msync F
++ mtrace F
++ munlock F
++ munlockall F
++ munmap F
++ muntrace F
++ nanosleep F
++ nfsservctl F
++ nice F
++ nl_langinfo F
++ nrand48 F
++ nrand48_r F
++ ntohl F
++ ntohs F
++ obstack_exit_failure D 0x4
++ obstack_free F
++ obstack_printf F
++ obstack_vprintf F
++ on_exit F
++ open F
++ open_memstream F
++ opendir F
++ openlog F
++ opterr D 0x4
++ optind D 0x4
++ optopt D 0x4
++ parse_printf_format F
++ pathconf F
++ pause F
++ perror F
++ personality F
++ pipe F
++ pmap_getmaps F
++ pmap_getport F
++ pmap_rmtcall F
++ pmap_set F
++ pmap_unset F
++ poll F
++ prctl F
++ printf F
++ profil F
++ pselect F
++ psignal F
++ pthread_attr_destroy F
++ pthread_attr_getdetachstate F
++ pthread_attr_getinheritsched F
++ pthread_attr_getschedparam F
++ pthread_attr_getschedpolicy F
++ pthread_attr_getscope F
++ pthread_attr_setdetachstate F
++ pthread_attr_setinheritsched F
++ pthread_attr_setschedparam F
++ pthread_attr_setschedpolicy F
++ pthread_attr_setscope F
++ pthread_condattr_destroy F
++ pthread_condattr_init F
++ pthread_equal F
++ pthread_exit F
++ pthread_getschedparam F
++ pthread_mutex_destroy F
++ pthread_mutex_init F
++ pthread_mutex_lock F
++ pthread_mutex_unlock F
++ pthread_self F
++ pthread_setcancelstate F
++ pthread_setcanceltype F
++ pthread_setschedparam F
++ ptrace F
++ putc F
++ putc_unlocked F
++ putchar F
++ putchar_unlocked F
++ putenv F
++ putpwent F
++ puts F
++ putspent F
++ pututline F
++ putw F
++ pvalloc F
++ qecvt F
++ qecvt_r F
++ qfcvt F
++ qfcvt_r F
++ qgcvt F
++ qsort F
++ query_module F
++ quotactl F
++ raise F
++ rand F
++ rand_r F
++ random F
++ random_r F
++ rcmd F
++ re_comp F
++ re_compile_fastmap F
++ re_compile_pattern F
++ re_exec F
++ re_match F
++ re_match_2 F
++ re_search F
++ re_search_2 F
++ re_set_registers F
++ re_set_syntax F
++ read F
++ readdir F
++ readdir_r F
++ readlink F
++ readv F
++ realloc F
++ reboot F
++ recv F
++ recvfrom F
++ recvmsg F
++ regcomp F
++ regerror F
++ regexec F
++ regfree F
++ register_printf_function F
++ registerrpc F
++ remove F
++ remque F
++ rename F
++ revoke F
++ rewind F
++ rewinddir F
++ rexec F
++ rexecoptions D 0x4
++ rindex F
++ rmdir F
++ rpmatch F
++ rresvport F
++ ruserok F
++ ruserpass F
++ sbrk F
++ scalbn F
++ scalbnf F
++ scalbnl F
++ scandir F
++ scanf F
++ sched_get_priority_max F
++ sched_get_priority_min F
++ sched_getparam F
++ sched_getscheduler F
++ sched_rr_get_interval F
++ sched_setparam F
++ sched_setscheduler F
++ sched_yield F
++ seed48 F
++ seed48_r F
++ seekdir F
++ select F
++ semget F
++ semop F
++ send F
++ sendmsg F
++ sendto F
++ setaliasent F
++ setbuf F
++ setbuffer F
++ setcontext F
++ setdomainname F
++ setegid F
++ setenv F
++ seteuid F
++ setfsent F
++ setfsgid F
++ setfsuid F
++ setgid F
++ setgrent F
++ setgroups F
++ sethostent F
++ sethostid F
++ sethostname F
++ setitimer F
++ setjmp F
++ setlinebuf F
++ setlocale F
++ setlogin F
++ setlogmask F
++ setmntent F
++ setnetent F
++ setnetgrent F
++ setpgid F
++ setpgrp F
++ setpriority F
++ setprotoent F
++ setpwent F
++ setregid F
++ setresgid F
++ setresuid F
++ setreuid F
++ setrpcent F
++ setservent F
++ setsid F
++ setsockopt F
++ setspent F
++ setstate F
++ setstate_r F
++ settimeofday F
++ setttyent F
++ setuid F
++ setusershell F
++ setutent F
++ setvbuf F
++ sgetspent F
++ sgetspent_r F
++ shmat F
++ shmdt F
++ shmget F
++ shutdown F
++ sigaction F
++ sigaddset F
++ sigaltstack F
++ sigandset F
++ sigblock F
++ sigdelset F
++ sigemptyset F
++ sigfillset F
++ siggetmask F
++ siginterrupt F
++ sigisemptyset F
++ sigismember F
++ siglongjmp F
++ signal F
++ sigorset F
++ sigpause F