Do a clean-up pass on the OBSOLETE features (versions):
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 14 20:11:44 2007 +0000 (2007-08-14)
changeset 330447b203edc2e
parent 329 419d959441ed
child 331 0c05f9ea3254
Do a clean-up pass on the OBSOLETE features (versions):
- remove legions of those,
- remove associated patches no longer needed,
- mark then as (OBSOLETE) in the prompt;
config/binutils.in
config/cc_gcc.in
config/debug/dmalloc.in
config/debug/gdb.in
config/debug/ltrace.in
config/debug/strace.in
config/kernel_linux_headers_copy.in
config/kernel_linux_headers_install.in
config/libc_glibc.in
config/libc_uClibc.in
config/tools/libelf.in
patches/binutils/2.11.2/gcc-pr3106.patch
patches/binutils/2.13.90.0.2/README
patches/binutils/2.13.90.0.2/rh62-binutils-2.11.93.0.2-sparc-nonpic.patch
patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-glibc21.patch
patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-gotpc.patch
patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-tpoff32.patch
patches/binutils/2.14.90.0.5/binutils-cross-demangler.patch
patches/binutils/2.14.90.0.5/binutils-sh-relocs.patch
patches/binutils/2.14.90.0.7/binutils-cross-demangler.patch
patches/binutils/2.14.92/binutils-skip-comments.patch
patches/binutils/2.14.92/gccpr15247-fix.patch
patches/binutils/2.15.90.0.3/binutils-20040817-linkonce.patch
patches/binutils/2.15.90.0.3/binutils-20040820-duplicates.patch
patches/binutils/2.15.90.0.3/binutils-skip-comments.patch
patches/binutils/2.15.90.0.3/gccpr15247-fix.patch
patches/binutils/2.15.91.0.2/binutils-20040817-linkonce.patch
patches/binutils/2.15.91.0.2/binutils-dup-sections.patch
patches/binutils/2.15.91.0.2/binutils-skip-comments.patch
patches/binutils/2.17.50.0.8/100-uclibc-conf.patch
patches/binutils/2.17.50.0.8/110-arm-eabi-conf.patch
patches/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch
patches/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch
patches/binutils/2.17.50.0.9/100-uclibc-conf.patch
patches/binutils/2.17.50.0.9/110-arm-eabi-conf.patch
patches/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch
patches/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch
patches/gcc/3.3.1/compat.exp.patch
patches/gcc/3.3.1/config.sub.patch
patches/gcc/3.3.1/empty6.patch
patches/gcc/3.3.1/gcc-3.2.3-g++.exp.patch
patches/gcc/3.3.1/gcc-3.3-libstdc++-v3-dg.exp.patch
patches/gcc/3.3.1/gcc-3.3.1-trap-posix.patch
patches/gcc/3.3.1/pr10392-1-test.patch
patches/gcc/3.3.1/pr10412-1-test.patch
patches/gcc/3.3.1/pr10589-1-test.patch
patches/gcc/3.3.1/pr11162-1-test.patch
patches/gcc/3.3.1/pr11587-1-test.patch
patches/gcc/3.3.1/pr11736-1-test.patch
patches/gcc/3.3.1/pr11864-1-test.patch
patches/gcc/3.3.1/pr11949-fix.patch
patches/gcc/3.3.1/pr9365-1-test.patch
patches/gcc/3.3.1/sh-pic-set_fpscr.patch
patches/gcc/3.3.1/sh-spec.patch
patches/gcc/3.3.1/sh4-pthread.patch
patches/gcc/3.3.1/thunk3.patch
patches/gcc/3.3.2/empty6.patch
patches/gcc/3.3.2/gcc-3.2.3-g++.exp.patch
patches/gcc/3.3.2/gcc-3.3-libstdc++-v3-dg.exp.patch
patches/gcc/3.3.2/gcc-3.3.2-arm-bigendian.patch
patches/gcc/3.3.2/gcc-3.3.2-trap-posix.patch
patches/gcc/3.3.2/pr10392-1-test.patch
patches/gcc/3.3.2/pr10412-1-test.patch
patches/gcc/3.3.2/pr10589-1-test.patch
patches/gcc/3.3.2/pr11162-1-test.patch
patches/gcc/3.3.2/pr11587-1-test.patch
patches/gcc/3.3.2/pr11608-fix.patch
patches/gcc/3.3.2/pr11736-1-test.patch
patches/gcc/3.3.2/pr11864-1-test.patch
patches/gcc/3.3.2/pr13260-test.patch
patches/gcc/3.3.2/pr9365-1-test.patch
patches/gcc/3.3.2/sh-lib1funcs_sizeAndType.patch
patches/gcc/3.3.2/sh-libgcc-hidden.patch
patches/gcc/3.3.2/sh-pic-set_fpscr-gcc-3.3.2.patch
patches/gcc/3.3.2/thunk3.patch
patches/gcc/3.3.3/config.sub.patch
patches/gcc/3.3.3/empty6.patch
patches/gcc/3.3.3/gcc-3.3.2-arm-bigendian.patch
patches/gcc/3.3.3/gcc-3.3.3-trap-posix.patch
patches/gcc/3.3.3/pr10392-1-test.patch
patches/gcc/3.3.3/pr10412-1-test.patch
patches/gcc/3.3.3/pr10589-1-test.patch
patches/gcc/3.3.3/pr11162-1-test.patch
patches/gcc/3.3.3/pr11587-1-test.patch
patches/gcc/3.3.3/pr11608.patch
patches/gcc/3.3.3/pr11736-1-test.patch
patches/gcc/3.3.3/pr11864-1-test.patch
patches/gcc/3.3.3/pr12009.patch
patches/gcc/3.3.3/pr12010.patch
patches/gcc/3.3.3/pr13250-fix.patch
patches/gcc/3.3.3/pr13260-fix-3.3.3.patch
patches/gcc/3.3.3/pr13260-test.patch
patches/gcc/3.3.3/pr15089-fix.patch
patches/gcc/3.3.3/pr9365-1-test.patch
patches/gcc/3.3.3/sh-lib1funcs_sizeAndType.patch
patches/gcc/3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch
patches/gcc/3.3.3/thunk3.patch
patches/gcc/3.3.4/gcc-3.3.4-arm-bigendian.patch
patches/gcc/3.3.4/gcc-3.3.4-arm-pr22528.patch
patches/gcc/3.3.4/gcc-3.3.4-libstdcxx-sh.patch
patches/gcc/3.3.4/gcc-3.3.4-ppc-asm-spec.patch
patches/gcc/3.3.4/gcc-3.3.4-trap-posix.patch
patches/gcc/3.3.5/gcc-3.3.4-arm-bigendian.patch
patches/gcc/3.3.5/gcc-3.3.4-arm-pr22528.patch
patches/gcc/3.3/compat.exp.patch
patches/gcc/3.3/config.sub.patch
patches/gcc/3.3/gcc-3.2.3-g++.exp.patch
patches/gcc/3.3/gcc-3.3-libstdc++-v3-dg.exp.patch
patches/gcc/3.3/sh-pic-set_fpscr.patch
patches/gcc/3.3/sh-predef-gnu_source.patch
patches/gcc/3.3/sh-spec.patch
patches/gcc/3.3/sh4-kaz-workaround.patch
patches/gcc/3.3/sh4-no-fix-protos.patch
patches/gcc/3.3/sh4-pthread.patch
patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch
patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch
patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch
patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch
patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch
patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch
patches/gcc/3.4.0/pr13250-fix.patch
patches/gcc/3.4.0/pr15647-fix.patch
patches/gcc/3.4.1/fix-fixincl.patch
patches/gcc/3.4.1/gcc-3.4-sparc-pr16430-fix.patch
patches/gcc/3.4.1/gcc-3.4.0-arm-bigendian.patch
patches/gcc/3.4.1/gcc-3.4.0-arm-lib1asm.patch
patches/gcc/3.4.1/gcc-3.4.0-arm-nolibfloat.patch
patches/gcc/3.4.1/pr15068-fix.patch
patches/gcc/3.4.2/gcc-3.4.0-arm-bigendian.patch
patches/gcc/3.4.2/gcc-3.4.0-arm-lib1asm.patch
patches/gcc/3.4.2/gcc-3.4.0-arm-nolibfloat.patch
patches/gcc/3.4.3/fix-fixincl.patch
patches/gcc/3.4.3/gcc-3.4.0-arm-bigendian.patch
patches/gcc/3.4.3/gcc-3.4.0-arm-lib1asm.patch
patches/gcc/3.4.3/gcc-3.4.0-arm-nolibfloat.patch
patches/gcc/3.4.3/pr15068-fix.patch
patches/gcc/3.4.3/pr16201-fix.patch
patches/gcc/3.4.3/pr18508-fix.patch
patches/gcc/3.4.4/100-uclibc-conf.patch
patches/gcc/3.4.4/200-uclibc-locale.patch
patches/gcc/3.4.4/300-libstdc++-pic.patch
patches/gcc/3.4.4/600-gcc34-arm-ldm-peephole.patch
patches/gcc/3.4.4/601-gcc34-arm-ldm-peephole2.patch
patches/gcc/3.4.4/601-gcc34-arm-ldm.patch
patches/gcc/3.4.4/602-sdk-libstdc++-includes.patch
patches/gcc/3.4.4/700-pr15068-fix.patch
patches/gcc/3.4.4/71_all_sh-pr16665-fix.patch
patches/gcc/3.4.4/72_all_sh-no-reorder-blocks.patch
patches/gcc/3.4.4/73_all_sh-pr20617.patch
patches/gcc/3.4.4/800-arm-bigendian.patch
patches/gcc/3.4.4/800-powerpc-libc_stack_end-uclibc.patch
patches/gcc/3.4.4/830-gcc-bug-num-22167.patch
patches/gcc/3.4.4/900-nios2.patch
patches/gcc/3.4.4/arm-softfloat.patch
patches/gcc/3.4.4/fix-fixincl.patch
patches/gcc/3.4.5/fix-fixincl.patch
patches/gcc/3.4.5/gcc-3.4.0-arm-bigendian.patch
patches/gcc/3.4.5/gcc-3.4.0-arm-lib1asm.patch
patches/gcc/3.4.5/gcc-3.4.0-arm-nolibfloat.patch
patches/gcc/3.4.5/pr15068-fix.patch
patches/gdb/6.2.1/100-uclibc-conf.patch
patches/gdb/6.2.1/200-uclibc-readline-conf.patch
patches/gdb/6.2.1/400-mips-coredump.patch-2.4.23-29
patches/gdb/6.2.1/500-thread-timeout.patch
patches/gdb/6.3/100-uclibc-conf.patch
patches/gdb/6.3/200-uclibc-readline-conf.patch
patches/gdb/6.3/400-mips-coredump.patch-2.4.23-29
patches/gdb/6.3/500-thread-timeout.patch
patches/gdb/6.3/600-debian_10.selected-frame.patch
patches/gdb/6.3/620-debian_static-thread-db.patch
patches/gdb/6.3/630-debian_24.tracepoint-segv.patch
patches/gdb/6.3/640-debian_dwarf2-frame-signal-unwinder.patch
patches/gdb/6.3/650-debian_vsyscall-gdb-support.patch
patches/gdb/6.3/660-debian_dwarf-cfa-restore.patch
patches/gdb/6.3/680-debian_sim-destdir.patch
patches/gdb/6.3/690-debian_member-field-symtab.patch
patches/gdb/6.3/700-debian_cp-pass-by-reference.patch
patches/gdb/6.3/710-debian_thread-db-multiple-libraries.patch
patches/gdb/6.3/720-debian_static-threads-test.patch
patches/gdb/6.3/730-debian_gdb-fix-tracefork-check.patch
patches/gdb/6.3/740-debian_make-cv-type-crash.patch
patches/gdb/6.3/750-debian_sparc-singlestep.patch
patches/gdb/6.3/760-debian_vsyscall-bfd-close-result.patch
patches/gdb/6.3/770-debian_vfork-done-spelling.patch
patches/gdb/6.3/780-debian_gdbserver-rdynamic.patch
patches/gdb/6.3/790-debian_dwarf2-cfi-warning.patch
patches/gdb/6.3/800-debian_linux-use-underscore-exit.patch
patches/gdb/6.3/810-debian_bfd-no-kylix-crash.patch
patches/gdb/6.3/820-debian_disable-linux-fork-messages.patch
patches/glibc/2.1.3/README
patches/glibc/2.1.3/arm-ctl_bus_isa.patch
patches/glibc/2.1.3/backport-config.sub.patch
patches/glibc/2.1.3/el.po.patch
patches/glibc/2.1.3/glibc-2.1.3-ac_cv_prog_cc_cross.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-db2.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-dns.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-fixup.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-generic.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-grp.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-locale.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-mntent.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-sunrpc.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-configure.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-dl-machine-i386.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-errlist.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-longlong.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-sscanf.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-syscall.patch
patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-versioninfo.patch
patches/glibc/2.1.3/glibc-2.1.3-cygwin.patch
patches/glibc/2.1.3/glibc-2.1.3-override.patch
patches/glibc/2.1.3/glibc-2.2.2-export_fp_hw.patch
patches/glibc/2.1.3/glibc-manual-stdin.texi-1.127.patch
patches/glibc/2.1.3/glibc-rpcgen-cpp.patch
patches/glibc/2.1.3/rh62-00-glibc-2.1.3.patch
patches/glibc/2.1.3/rh62-01-glibc-2.1.3-security.patch
patches/glibc/2.1.3/rh62-02-glibc-2.1.3-locale.patch
patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch
patches/glibc/2.1.3/rh62-04-glibc-2.1.3-tzfile.patch
patches/glibc/2.1.3/rh62-06-glibc-2.1.3-preload.patch
patches/glibc/2.1.3/rh62-07-glibc-2.1.3-alpha.patch
patches/glibc/2.1.3/rh62-08-glibc-2.1.3-glob.patch
patches/glibc/2.1.3/rh62-09-glibc-2.1.3-security2.patch
patches/glibc/2.1.3/rh62-10-glibc-2.1.3-xdr_array.patch
patches/glibc/2.1.3/rh62-11-glibc-2.1.3-calloc.patch
patches/glibc/2.1.3/rh62-12-glibc-2.1.3-maxpacket.patch
patches/glibc/2.1.3/rh62-99-glibc-2.1.3-allow-gcc-3.4-dns.patch
patches/glibc/2.1.3/rh62-99-glibc-2.1.3-allow-gcc-3.4-gconv_stubs.patch
patches/glibc/2.1.3/sk.po.patch
patches/glibc/2.2.2/arm-ctl_bus_isa.patch
patches/glibc/2.2.2/glibc-2.1.3-allow-gcc-3.4-grp.patch
patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-sscanf.patch
patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-versioninfo.patch
patches/glibc/2.2.2/glibc-2.2.2-allow-gcc-3-configure.patch
patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-dl-machine-i386.patch
patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-errlist.patch
patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-longlong.patch
patches/glibc/2.2.2/glibc-2.2.2-export_fp_hw.patch
patches/glibc/2.2.2/glibc-2.2.2-printf-not-macro.patch
patches/glibc/2.2.2/glibc-2.2.2-syslog-bugfix.patch
patches/glibc/2.2.2/glibc-2.2.5-alpha-pwrite64.patch
patches/glibc/2.2.2/glibc-2.2.5-arm-pwrite64.patch
patches/glibc/2.2.2/glibc-2.2.5-i386-pwrite64.patch
patches/glibc/2.2.2/glibc-2.2.5-m68k-pwrite.patch
patches/glibc/2.2.2/glibc-manual-stdin.texi-1.127.patch
patches/glibc/2.2.2/glibc-nss-noopt.patch
patches/glibc/2.2.2/tst-pathopt-cross.patch
patches/glibc/2.2.3/errlist-1.9.patch
patches/glibc/2.2.3/errlist-arm.patch
patches/glibc/2.2.3/glibc-2.2.3-mips-base-addr-got.patch
patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch
patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch
patches/glibc/2.2.5/alpha-build-failure.patch
patches/glibc/2.2.5/arm-asm-clobber.patch
patches/glibc/2.2.5/arm-ctl_bus_isa.patch
patches/glibc/2.2.5/cris-libc-symbols.patch
patches/glibc/2.2.5/cris-stack-direction.patch
patches/glibc/2.2.5/dl-machine-alpha.patch
patches/glibc/2.2.5/dl-machine-arm.patch
patches/glibc/2.2.5/dl-machine-m68k.patch
patches/glibc/2.2.5/dl-machine-sh.patch
patches/glibc/2.2.5/dl-machine-sparc.patch
patches/glibc/2.2.5/errlist-1.9.patch
patches/glibc/2.2.5/errlist-arm.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-weakextern.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-configure.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf-2.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-gconv.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-i386.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-iconv.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-iconvdata.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-locale.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-malloc.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-mipsel.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-msort.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-powerpc-procfs.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-powerpc.patch
patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-sunrpc.patch
patches/glibc/2.2.5/glibc-2.2.5-alpha-pwrite64.patch
patches/glibc/2.2.5/glibc-2.2.5-arm-pwrite64.patch
patches/glibc/2.2.5/glibc-2.2.5-crosstest.patch
patches/glibc/2.2.5/glibc-2.2.5-crossyes.patch
patches/glibc/2.2.5/glibc-2.2.5-cygwin.patch
patches/glibc/2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch
patches/glibc/2.2.5/glibc-2.2.5-i386-pwrite64.patch
patches/glibc/2.2.5/glibc-2.2.5-m68k-pwrite.patch
patches/glibc/2.2.5/glibc-2.2.5-mips-build-gmon.patch
patches/glibc/2.2.5/glibc-2.2.5-mips-clone-local-label.patch
patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.56.patch
patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.57.patch
patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.59-kinda.patch
patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.60.patch
patches/glibc/2.2.5/glibc-2.2.5-powerpc-as.patch
patches/glibc/2.2.5/glibc-2.2.5-ppc405erratum77.patch
patches/glibc/2.2.5/glibc-2.3.2-allow-gcc-3.5-xdr.patch
patches/glibc/2.2.5/glibc-drow-sh.patch
patches/glibc/2.2.5/glibc-test-lowram.patch
patches/glibc/2.2.5/initfini-alpha.patch
patches/glibc/2.2.5/initfini-ia64.patch
patches/glibc/2.2.5/initfini-sh.patch
patches/glibc/2.2.5/longjmp-sparc.patch
patches/glibc/2.2.5/sh-setjmp-fix.patch
patches/glibc/2.2.5/sprintf-prototype.patch
patches/glibc/2.2.5/sscanf.patch
patches/glibc/2.2.5/unwind-arm.patch
patches/glibc/2.3.2/README-hppa
patches/glibc/2.3.2/arm-asm-clobber.patch
patches/glibc/2.3.2/arm-ctl_bus_isa.patch
patches/glibc/2.3.2/arm-mcount_internal.patch
patches/glibc/2.3.2/epoll-epollet.patch
patches/glibc/2.3.2/epoll-stdint.patch
patches/glibc/2.3.2/errlist-awk.patch
patches/glibc/2.3.2/fixup.patch
patches/glibc/2.3.2/gcc-pr-9552-workaround.patch
patches/glibc/2.3.2/glibc-2.2.5-crosstest.patch
patches/glibc/2.3.2/glibc-2.2.5-mips-clone-local-label.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.4-inline.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.4-nounit.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-PR14096.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-elf.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-gconv.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-msort.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-sunrpc.patch
patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-xdr.patch
patches/glibc/2.3.2/glibc-2.3.2-alpha-pwrite64.patch
patches/glibc/2.3.2/glibc-2.3.2-arm-fix-strlen.patch
patches/glibc/2.3.2/glibc-2.3.2-cross-2.patch
patches/glibc/2.3.2/glibc-2.3.2-cross.patch
patches/glibc/2.3.2/glibc-2.3.2-cygwin.patch
patches/glibc/2.3.2/glibc-2.3.2-mips-user.patch
patches/glibc/2.3.2/glibc-2.3.2-mips.patch
patches/glibc/2.3.2/glibc-2.3.2-override.patch
patches/glibc/2.3.2/glibc-2.3.2-powerpc-as.patch
patches/glibc/2.3.2/glibc-2.3.2-pr139-fix.patch
patches/glibc/2.3.2/glibc-2.3.2-sh4-socket.patch
patches/glibc/2.3.2/glibc-2.3.2-sh4-trapa.patch
patches/glibc/2.3.2/glibc-2.3.2-sparc32-sysdep.patch
patches/glibc/2.3.2/glibc-2.3.2-sparc64-dl-machine.patch
patches/glibc/2.3.2/glibc-2.3.2-sparc64-pause.patch
patches/glibc/2.3.2/glibc-2.3.2-sparc64-pwrite64.patch
patches/glibc/2.3.2/glibc-2.3.2-without-fp.patch
patches/glibc/2.3.2/glibc-2.3.3-allow-gcc-4.0-configure.patch
patches/glibc/2.3.2/glibc-2.3.3-allow-gcc-4.0-powerpc-procfs.patch
patches/glibc/2.3.2/glibc-configure-apple-as.patch
patches/glibc/2.3.2/glibc-drow-sh.patch
patches/glibc/2.3.2/glibc-fp-byteorder.patch
patches/glibc/2.3.2/glibc-test-lowram.patch
patches/glibc/2.3.2/nobits.patch
patches/glibc/2.3.2/old/glibc-2.3.2-powerpc-procfs.patch
patches/glibc/2.3.2/sscanf.patch
patches/glibc/2.3.2/string2-typedef.patch
patches/glibc/2.3.3/arm-ctl_bus_isa.patch
patches/glibc/2.3.3/bad/glibc-2.3.3-alpha-pwrite64.patch
patches/glibc/2.3.3/fixup.patch
patches/glibc/2.3.3/glibc-2.2.5-allow-gcc-4.0-malloc.patch
patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.4-inline.patch
patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-elf.patch
patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-gconv.patch
patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-msort.patch
patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-sunrpc.patch
patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-xdr.patch
patches/glibc/2.3.3/glibc-2.3.2-arm-fix-strlen.patch
patches/glibc/2.3.3/glibc-2.3.2-pr139-fix.patch
patches/glibc/2.3.3/glibc-2.3.2-sparc32-sysdep.patch
patches/glibc/2.3.3/glibc-2.3.2-sparc64-dl-machine.patch
patches/glibc/2.3.3/glibc-2.3.2-without-fp.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-configure.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-elf-2.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-elf-3.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-i386.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconv.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconvdata-2.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconvdata.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-locale.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-posix.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-powerpc-procfs.patch
patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-x86_64.patch
patches/glibc/2.3.3/glibc-2.3.3-alpha-pwrite64.patch
patches/glibc/2.3.3/glibc-2.3.3-cygwin.patch
patches/glibc/2.3.3/glibc-2.3.3-libeh-kludge.patch
patches/glibc/2.3.3/glibc-2.3.3-s390-fadvise64.patch
patches/glibc/2.3.3/glibc-2.3.3-unwind-dw2.patch
patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-arm.patch
patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-elf.patch
patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch
patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch
patches/glibc/2.3.3/glibc-configure-apple-as.patch
patches/glibc/2.3.3/glibc-fp-byteorder.patch
patches/glibc/2.3.4/arm-ctl_bus_isa.patch
patches/glibc/2.3.4/bad/glibc-2.3.4-cygwin.patch
patches/glibc/2.3.4/fix-pr398.patch
patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-arm.patch
patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-elf.patch
patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-iconvdata.patch
patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc-procfs.patch
patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch
patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch
patches/glibc/2.3.4/glibc-2.3.4-cygwin.patch
patches/glibc/2.3.4/glibc-2.3.4-memcmp.patch
patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-string.patch
patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-symbols.patch
patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-wcstol_l.patch
patches/glibc/2.3.4/glibc-configure-apple-as.patch
patches/glibc/2.3.4/glibc-fp-byteorder.patch
patches/glibc/2.3.4/make-install-lib-all.patch
patches/glibc/2.3.4/pr758.patch
patches/glibc/2.3.5/arm-ctl_bus_isa.patch
patches/glibc/2.3.5/fix-pr398.patch
patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-arm.patch
patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-elf.patch
patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-iconvdata.patch
patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc-procfs.patch
patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch
patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch
patches/glibc/2.3.5/glibc-2.3.4-memcmp.patch
patches/glibc/2.3.5/glibc-2.3.5-allow-gcc-4.0-wordexp.patch
patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-string.patch
patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-symbols.patch
patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-wcstol_l.patch
patches/glibc/2.3.5/glibc-2.3.5-cygwin.patch
patches/glibc/2.3.5/glibc-2.3.5-fix-pr631.patch
patches/glibc/2.3.5/glibc-2.3.5-sh-memset.patch
patches/glibc/2.3.5/glibc-configure-apple-as.patch
patches/glibc/2.3.5/glibc-fp-byteorder.patch
patches/glibc/2.3.5/glibc-mips-bootstrap-gcc-header-install.patch
patches/glibc/2.3.5/make-install-lib-all.patch
patches/glibc/2.3.5/pr758.patch
patches/glibc/20040827/arm-ctl_bus_isa.patch
patches/glibc/20040827/glibc-2.3.2-sparc64-dl-machine.patch
patches/glibc/20040827/glibc-2.3.3-cygwin.patch
patches/glibc/20040827/glibc-2.3.3-libeh-kludge.patch
patches/glibc/20040827/glibc-configure-apple-as.patch
patches/glibc/20040827/glibc-fp-byteorder.patch
patches/glibc/20050502/make-install-lib-all.patch
patches/glibc/compat-2.1/rh62-09-glibc-compat-2.1.3-security2.patch
patches/glibc/compat-2.1/rh62-12-glibc-compat-2.1.3-maxpacket.patch
     1.1 --- a/config/binutils.in	Tue Aug 14 19:32:22 2007 +0000
     1.2 +++ b/config/binutils.in	Tue Aug 14 20:11:44 2007 +0000
     1.3 @@ -9,50 +9,16 @@
     1.4      bool
     1.5      prompt "binutils version"
     1.6  
     1.7 -config BINUTILS_V_2_11_2
     1.8 -    bool
     1.9 -    prompt "2.11.2"
    1.10 -    depends on OBSOLETE
    1.11 -
    1.12 -config BINUTILS_V_2_13_90
    1.13 -    bool
    1.14 -    prompt "2.13.90"
    1.15 -    depends on OBSOLETE
    1.16 -
    1.17  config BINUTILS_V_2_14
    1.18      bool
    1.19 -    prompt "2.14"
    1.20 -    depends on OBSOLETE
    1.21 -
    1.22 -config BINUTILS_V_2_14_90
    1.23 -    bool
    1.24 -    prompt "2.14.90"
    1.25 -    depends on OBSOLETE
    1.26 -
    1.27 -config BINUTILS_V_2_14_92
    1.28 -    bool
    1.29 -    prompt "2.14.92"
    1.30 +    prompt "2.14 (OBSOLETE)"
    1.31      depends on OBSOLETE
    1.32  
    1.33  config BINUTILS_V_2_15
    1.34      bool
    1.35 -    prompt "2.15"
    1.36 +    prompt "2.15 (OBSOLETE)"
    1.37      depends on OBSOLETE
    1.38  
    1.39 -config BINUTILS_V_2_15_90
    1.40 -    bool
    1.41 -    prompt "2.15.90"
    1.42 -    depends on OBSOLETE
    1.43 -
    1.44 -config BINUTILS_V_2_15_91
    1.45 -    bool
    1.46 -    prompt "2.15.91"
    1.47 -    depends on OBSOLETE
    1.48 -
    1.49 -config BINUTILS_V_2_16
    1.50 -    bool
    1.51 -    prompt "2.16"
    1.52 -
    1.53  config BINUTILS_V_2_16_1
    1.54      bool
    1.55      prompt "2.16.1"
    1.56 @@ -61,89 +27,19 @@
    1.57      bool
    1.58      prompt "2.17"
    1.59  
    1.60 -config BINUTILS_V_2_17_50_0_1
    1.61 -    bool
    1.62 -    prompt "2.17.50.0.1"
    1.63 -    depends on EXPERIMENTAL
    1.64 -
    1.65 -config BINUTILS_V_2_17_50_0_2
    1.66 -    bool
    1.67 -    prompt "2.17.50.0.2"
    1.68 -    depends on EXPERIMENTAL
    1.69 -
    1.70 -config BINUTILS_V_2_17_50_0_3
    1.71 -    bool
    1.72 -    prompt "2.17.50.0.3"
    1.73 -    depends on EXPERIMENTAL
    1.74 -
    1.75 -config BINUTILS_V_2_17_50_0_4
    1.76 -    bool
    1.77 -    prompt "2.17.50.0.4"
    1.78 -    depends on EXPERIMENTAL
    1.79 -
    1.80 -config BINUTILS_V_2_17_50_0_5
    1.81 -    bool
    1.82 -    prompt "2.17.50.0.5"
    1.83 -    depends on EXPERIMENTAL
    1.84 -
    1.85 -config BINUTILS_V_2_17_50_0_6
    1.86 -    bool
    1.87 -    prompt "2.17.50.0.6"
    1.88 -    depends on EXPERIMENTAL
    1.89 -
    1.90 -config BINUTILS_V_2_17_50_0_7
    1.91 -    bool
    1.92 -    prompt "2.17.50.0.7"
    1.93 -    depends on EXPERIMENTAL
    1.94 -
    1.95 -config BINUTILS_V_2_17_50_0_8
    1.96 -    bool
    1.97 -    prompt "2.17.50.0.8"
    1.98 -    depends on EXPERIMENTAL
    1.99 -
   1.100 -config BINUTILS_V_2_17_50_0_9
   1.101 -    bool
   1.102 -    prompt "2.17.50.0.9"
   1.103 -    depends on EXPERIMENTAL
   1.104 -
   1.105  config BINUTILS_V_2_17_50_0_10
   1.106      bool
   1.107 -    prompt "2.17.50.0.10"
   1.108 -    depends on EXPERIMENTAL
   1.109 -
   1.110 -config BINUTILS_V_2_17_50_0_11
   1.111 -    bool
   1.112 -    prompt "2.17.50.0.11"
   1.113 -    depends on EXPERIMENTAL
   1.114 -
   1.115 -config BINUTILS_V_2_17_50_0_12
   1.116 -    bool
   1.117 -    prompt "2.17.50.0.12"
   1.118 -    depends on EXPERIMENTAL
   1.119 -
   1.120 -config BINUTILS_V_2_17_50_0_13
   1.121 -    bool
   1.122 -    prompt "2.17.50.0.13"
   1.123 -    depends on EXPERIMENTAL
   1.124 -
   1.125 -config BINUTILS_V_2_17_50_0_14
   1.126 -    bool
   1.127 -    prompt "2.17.50.0.14"
   1.128 +    prompt "2.17.50.0.10 (EXPERIMENTAL)"
   1.129      depends on EXPERIMENTAL
   1.130  
   1.131  config BINUTILS_V_2_17_50_0_15
   1.132      bool
   1.133 -    prompt "2.17.50.0.15"
   1.134 -    depends on EXPERIMENTAL
   1.135 -
   1.136 -config BINUTILS_V_2_17_50_0_16
   1.137 -    bool
   1.138 -    prompt "2.17.50.0.16"
   1.139 +    prompt "2.17.50.0.15 (EXPERIMENTAL)"
   1.140      depends on EXPERIMENTAL
   1.141  
   1.142  config BINUTILS_V_2_17_50_0_17
   1.143      bool
   1.144 -    prompt "2.17.50.0.17"
   1.145 +    prompt "2.17.50.0.17 (EXPERIMENTAL)"
   1.146      depends on EXPERIMENTAL
   1.147  
   1.148  config BINUTILS_V_2_17_50_0_18
   1.149 @@ -157,33 +53,12 @@
   1.150  
   1.151  config BINUTILS_VERSION
   1.152      string
   1.153 -    default "2.11.2" if BINUTILS_V_2_11_2
   1.154 -    default "2.13.90" if BINUTILS_V_2_13_90
   1.155      default "2.14" if BINUTILS_V_2_14
   1.156 -    default "2.14.90" if BINUTILS_V_2_14_90
   1.157 -    default "2.14.92" if BINUTILS_V_2_14_92
   1.158      default "2.15" if BINUTILS_V_2_15
   1.159 -    default "2.15.90" if BINUTILS_V_2_15_90
   1.160 -    default "2.15.91" if BINUTILS_V_2_15_91
   1.161 -    default "2.16" if BINUTILS_V_2_16
   1.162      default "2.16.1" if BINUTILS_V_2_16_1
   1.163      default "2.17" if BINUTILS_V_2_17
   1.164 -    default "2.17.50.0.1" if BINUTILS_V_2_17_50_0_1
   1.165 -    default "2.17.50.0.2" if BINUTILS_V_2_17_50_0_2
   1.166 -    default "2.17.50.0.3" if BINUTILS_V_2_17_50_0_3
   1.167 -    default "2.17.50.0.4" if BINUTILS_V_2_17_50_0_4
   1.168 -    default "2.17.50.0.5" if BINUTILS_V_2_17_50_0_5
   1.169 -    default "2.17.50.0.6" if BINUTILS_V_2_17_50_0_6
   1.170 -    default "2.17.50.0.7" if BINUTILS_V_2_17_50_0_7
   1.171 -    default "2.17.50.0.8" if BINUTILS_V_2_17_50_0_8
   1.172 -    default "2.17.50.0.9" if BINUTILS_V_2_17_50_0_9
   1.173      default "2.17.50.0.10" if BINUTILS_V_2_17_50_0_10
   1.174 -    default "2.17.50.0.11" if BINUTILS_V_2_17_50_0_11
   1.175 -    default "2.17.50.0.12" if BINUTILS_V_2_17_50_0_12
   1.176 -    default "2.17.50.0.13" if BINUTILS_V_2_17_50_0_13
   1.177      default "2.17.50.0.14" if BINUTILS_V_2_17_50_0_14
   1.178 -    default "2.17.50.0.15" if BINUTILS_V_2_17_50_0_15
   1.179 -    default "2.17.50.0.16" if BINUTILS_V_2_17_50_0_16
   1.180      default "2.17.50.0.17" if BINUTILS_V_2_17_50_0_17
   1.181      default "2.17.50.0.18" if BINUTILS_V_2_17_50_0_18
   1.182  # CT_INSERT_VERSION_STRING_ABOVE
     2.1 --- a/config/cc_gcc.in	Tue Aug 14 19:32:22 2007 +0000
     2.2 +++ b/config/cc_gcc.in	Tue Aug 14 20:11:44 2007 +0000
     2.3 @@ -6,81 +6,23 @@
     2.4  
     2.5  config CC_V_2_95_3
     2.6      bool
     2.7 -    prompt "2.95.3"
     2.8 +    prompt "2.95.3 (OBSOLETE)"
     2.9      depends on OBSOLETE
    2.10  
    2.11  config CC_V_3_2_3
    2.12      bool
    2.13 -    prompt "3.2.3"
    2.14 -    depends on OBSOLETE
    2.15 -
    2.16 -config CC_V_3_3
    2.17 -    bool
    2.18 -    prompt "3.3"
    2.19 -    depends on OBSOLETE
    2.20 -
    2.21 -config CC_V_3_3_1
    2.22 -    bool
    2.23 -    prompt "3.3.1"
    2.24 -    depends on OBSOLETE
    2.25 -
    2.26 -config CC_V_3_3_2
    2.27 -    bool
    2.28 -    prompt "3.3.2"
    2.29 -    depends on OBSOLETE
    2.30 -
    2.31 -config CC_V_3_3_3
    2.32 -    bool
    2.33 -    prompt "3.3.3"
    2.34 -    depends on OBSOLETE
    2.35 -
    2.36 -config CC_V_3_3_4
    2.37 -    bool
    2.38 -    prompt "3.3.4"
    2.39 -    depends on OBSOLETE
    2.40 -
    2.41 -config CC_V_3_3_5
    2.42 -    bool
    2.43 -    prompt "3.3.5"
    2.44 +    prompt "3.2.3 (OBSOLETE)"
    2.45      depends on OBSOLETE
    2.46  
    2.47  config CC_V_3_3_6
    2.48      bool
    2.49 -    prompt "3.3.6"
    2.50 -
    2.51 -config CC_V_3_4_0
    2.52 -    bool
    2.53 -    prompt "3.4.0"
    2.54 -    depends on OBSOLETE
    2.55 -
    2.56 -config CC_V_3_4_1
    2.57 -    bool
    2.58 -    prompt "3.4.1"
    2.59 -    depends on OBSOLETE
    2.60 -
    2.61 -config CC_V_3_4_2
    2.62 -    bool
    2.63 -    prompt "3.4.2"
    2.64 -    depends on OBSOLETE
    2.65 -
    2.66 -config CC_V_3_4_3
    2.67 -    bool
    2.68 -    prompt "3.4.3"
    2.69 -    depends on OBSOLETE
    2.70 -
    2.71 -config CC_V_3_4_4
    2.72 -    bool
    2.73 -    prompt "3.4.4"
    2.74 -    depends on OBSOLETE
    2.75 -
    2.76 -config CC_V_3_4_5
    2.77 -    bool
    2.78 -    prompt "3.4.5"
    2.79 +    prompt "3.3.6 (OBSOLETE)"
    2.80      depends on OBSOLETE
    2.81  
    2.82  config CC_V_3_4_6
    2.83      bool
    2.84 -    prompt "3.4.6"
    2.85 +    prompt "3.4.6 (OBSOLETE)"
    2.86 +    depends on OBSOLETE
    2.87  
    2.88  config CC_V_4_0_0
    2.89      bool
    2.90 @@ -130,19 +72,7 @@
    2.91      string
    2.92      default "2.95.3" if CC_V_2_95_3
    2.93      default "3.2.3" if CC_V_3_2_3
    2.94 -    default "3.3" if CC_V_3_3
    2.95 -    default "3.3.1" if CC_V_3_3_1
    2.96 -    default "3.3.2" if CC_V_3_3_2
    2.97 -    default "3.3.3" if CC_V_3_3_3
    2.98 -    default "3.3.4" if CC_V_3_3_4
    2.99 -    default "3.3.5" if CC_V_3_3_5
   2.100      default "3.3.6" if CC_V_3_3_6
   2.101 -    default "3.4.0" if CC_V_3_4_0
   2.102 -    default "3.4.1" if CC_V_3_4_1
   2.103 -    default "3.4.2" if CC_V_3_4_2
   2.104 -    default "3.4.3" if CC_V_3_4_3
   2.105 -    default "3.4.4" if CC_V_3_4_4
   2.106 -    default "3.4.5" if CC_V_3_4_5
   2.107      default "3.4.6" if CC_V_3_4_6
   2.108      default "4.0.0" if CC_V_4_0_0
   2.109      default "4.0.1" if CC_V_4_0_1
     3.1 --- a/config/debug/dmalloc.in	Tue Aug 14 19:32:22 2007 +0000
     3.2 +++ b/config/debug/dmalloc.in	Tue Aug 14 20:11:44 2007 +0000
     3.3 @@ -13,7 +13,7 @@
     3.4  
     3.5  config DMALLOC_V_5_4_3
     3.6      bool
     3.7 -    prompt "5.4.3"
     3.8 +    prompt "5.4.3 (OBSOLETE)"
     3.9      depends on OBSOLETE
    3.10  
    3.11  config DMALLOC_V_5_5_2
     4.1 --- a/config/debug/gdb.in	Tue Aug 14 19:32:22 2007 +0000
     4.2 +++ b/config/debug/gdb.in	Tue Aug 14 20:11:44 2007 +0000
     4.3 @@ -42,19 +42,9 @@
     4.4      prompt "snapshot (EXPERIMENTAL)"
     4.5      depends on EXPERIMENTAL
     4.6  
     4.7 -config GDB_V_6_2_1
     4.8 -    bool
     4.9 -    prompt "6.2.1"
    4.10 -    depends on OBSOLETE
    4.11 -
    4.12 -config GDB_V_6_3
    4.13 -    bool
    4.14 -    prompt "6.3"
    4.15 -    depends on OBSOLETE
    4.16 -
    4.17  config GDB_V_6_4
    4.18      bool
    4.19 -    prompt "6.4"
    4.20 +    prompt "6.4 (OBSOLETE)"
    4.21      depends on OBSOLETE
    4.22  
    4.23  config GDB_V_6_5
    4.24 @@ -72,8 +62,6 @@
    4.25  config GDB_VERSION
    4.26      string
    4.27      default "snapshot" if GDB_V_snapshot
    4.28 -    default "6.2.1" if GDB_V_6_2_1
    4.29 -    default "6.3" if GDB_V_6_3
    4.30      default "6.4" if GDB_V_6_4
    4.31      default "6.5" if GDB_V_6_5
    4.32      default "6.6" if GDB_V_6_6
     5.1 --- a/config/debug/ltrace.in	Tue Aug 14 19:32:22 2007 +0000
     5.2 +++ b/config/debug/ltrace.in	Tue Aug 14 20:11:44 2007 +0000
     5.3 @@ -20,7 +20,7 @@
     5.4  
     5.5  config LTRACE_V_0_3_36
     5.6      bool
     5.7 -    prompt "0.3.36"
     5.8 +    prompt "0.3.36 (OBSOLETE)"
     5.9      depends on OBSOLETE
    5.10  
    5.11  config LTRACE_V_0_4
     6.1 --- a/config/debug/strace.in	Tue Aug 14 19:32:22 2007 +0000
     6.2 +++ b/config/debug/strace.in	Tue Aug 14 20:11:44 2007 +0000
     6.3 @@ -13,77 +13,12 @@
     6.4  
     6.5  config STRACE_V_4_5
     6.6      bool
     6.7 -    prompt "4.5"
     6.8 -    depends on OBSOLETE
     6.9 -
    6.10 -config STRACE_V_4_5_1
    6.11 -    bool
    6.12 -    prompt "4.5.1"
    6.13 -    depends on OBSOLETE
    6.14 -
    6.15 -config STRACE_V_4_5_2
    6.16 -    bool
    6.17 -    prompt "4.5.2"
    6.18 -    depends on OBSOLETE
    6.19 -
    6.20 -config STRACE_V_4_5_3
    6.21 -    bool
    6.22 -    prompt "4.5.3"
    6.23 -    depends on OBSOLETE
    6.24 -
    6.25 -config STRACE_V_4_5_4
    6.26 -    bool
    6.27 -    prompt "4.5.4"
    6.28 -    depends on OBSOLETE
    6.29 -
    6.30 -config STRACE_V_4_5_5
    6.31 -    bool
    6.32 -    prompt "4.5.5"
    6.33 -    depends on OBSOLETE
    6.34 -
    6.35 -config STRACE_V_4_5_6
    6.36 -    bool
    6.37 -    prompt "4.5.6"
    6.38 -    depends on OBSOLETE
    6.39 -
    6.40 -config STRACE_V_4_5_7
    6.41 -    bool
    6.42 -    prompt "4.5.7"
    6.43 -    depends on OBSOLETE
    6.44 -
    6.45 -config STRACE_V_4_5_8
    6.46 -    bool
    6.47 -    prompt "4.5.8"
    6.48 -    depends on OBSOLETE
    6.49 -
    6.50 -config STRACE_V_4_5_9
    6.51 -    bool
    6.52 -    prompt "4.5.9"
    6.53 -    depends on OBSOLETE
    6.54 -
    6.55 -config STRACE_V_4_5_10
    6.56 -    bool
    6.57 -    prompt "4.5.10"
    6.58 -    depends on OBSOLETE
    6.59 -
    6.60 -config STRACE_V_4_5_11
    6.61 -    bool
    6.62 -    prompt "4.5.11"
    6.63 -    depends on OBSOLETE
    6.64 -
    6.65 -config STRACE_V_4_5_12
    6.66 -    bool
    6.67 -    prompt "4.5.12"
    6.68 -    depends on OBSOLETE
    6.69 -
    6.70 -config STRACE_V_4_5_13
    6.71 -    bool
    6.72 -    prompt "4.5.13"
    6.73 +    prompt "4.5 (OBSOLETE)"
    6.74      depends on OBSOLETE
    6.75  
    6.76  config STRACE_V_4_5_14
    6.77      bool
    6.78 -    prompt "4.5.14"
    6.79 +    prompt "4.5.14 (OBSOLETE)"
    6.80      depends on OBSOLETE
    6.81  
    6.82  config STRACE_V_4_5_15
    6.83 @@ -97,19 +32,6 @@
    6.84  config STRACE_VERSION
    6.85      string
    6.86      default "4.5" if STRACE_V_4_5
    6.87 -    default "4.5.1" if STRACE_V_4_5_1
    6.88 -    default "4.5.2" if STRACE_V_4_5_2
    6.89 -    default "4.5.3" if STRACE_V_4_5_3
    6.90 -    default "4.5.4" if STRACE_V_4_5_4
    6.91 -    default "4.5.5" if STRACE_V_4_5_5
    6.92 -    default "4.5.6" if STRACE_V_4_5_6
    6.93 -    default "4.5.7" if STRACE_V_4_5_7
    6.94 -    default "4.5.8" if STRACE_V_4_5_8
    6.95 -    default "4.5.9" if STRACE_V_4_5_9
    6.96 -    default "4.5.10" if STRACE_V_4_5_10
    6.97 -    default "4.5.11" if STRACE_V_4_5_11
    6.98 -    default "4.5.12" if STRACE_V_4_5_12
    6.99 -    default "4.5.13" if STRACE_V_4_5_13
   6.100      default "4.5.14" if STRACE_V_4_5_14
   6.101      default "4.5.15" if STRACE_V_4_5_15
   6.102  # CT_INSERT_VERSION_STRING_ABOVE
     7.1 --- a/config/kernel_linux_headers_copy.in	Tue Aug 14 19:32:22 2007 +0000
     7.2 +++ b/config/kernel_linux_headers_copy.in	Tue Aug 14 20:11:44 2007 +0000
     7.3 @@ -2,25 +2,9 @@
     7.4      bool
     7.5      prompt "Linux kernel version"
     7.6  
     7.7 -config KERNEL_COPY_V_2_6_0
     7.8 +config KERNEL_COPY_V_2_4_26
     7.9      bool
    7.10 -    prompt "2.6.0"
    7.11 -
    7.12 -config KERNEL_COPY_V_2_6_1
    7.13 -    bool
    7.14 -    prompt "2.6.1"
    7.15 -
    7.16 -config KERNEL_COPY_V_2_6_2
    7.17 -    bool
    7.18 -    prompt "2.6.2"
    7.19 -
    7.20 -config KERNEL_COPY_V_2_6_3
    7.21 -    bool
    7.22 -    prompt "2.6.3"
    7.23 -
    7.24 -config KERNEL_COPY_V_2_6_4
    7.25 -    bool
    7.26 -    prompt "2.6.4"
    7.27 +    prompt "2.4.26"
    7.28  
    7.29  config KERNEL_COPY_V_2_6_5
    7.30      bool
    7.31 @@ -38,645 +22,21 @@
    7.32      bool
    7.33      prompt "2.6.8"
    7.34  
    7.35 -config KERNEL_COPY_V_2_6_8_1
    7.36 -    bool
    7.37 -    prompt "2.6.8.1"
    7.38 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.39 -
    7.40 -config KERNEL_COPY_V_2_6_9
    7.41 -    bool
    7.42 -    prompt "2.6.9"
    7.43 -
    7.44 -config KERNEL_COPY_V_2_6_10
    7.45 -    bool
    7.46 -    prompt "2.6.10"
    7.47 -
    7.48 -config KERNEL_COPY_V_2_6_11
    7.49 -    bool
    7.50 -    prompt "2.6.11"
    7.51 -
    7.52 -config KERNEL_COPY_V_2_6_11_1
    7.53 -    bool
    7.54 -    prompt "2.6.11.1"
    7.55 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.56 -
    7.57 -config KERNEL_COPY_V_2_6_11_10
    7.58 -    bool
    7.59 -    prompt "2.6.11.10"
    7.60 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.61 -
    7.62 -config KERNEL_COPY_V_2_6_11_11
    7.63 -    bool
    7.64 -    prompt "2.6.11.11"
    7.65 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.66 -
    7.67 -config KERNEL_COPY_V_2_6_11_12
    7.68 -    bool
    7.69 -    prompt "2.6.11.12"
    7.70 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.71 -
    7.72 -config KERNEL_COPY_V_2_6_11_2
    7.73 -    bool
    7.74 -    prompt "2.6.11.2"
    7.75 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.76 -
    7.77  config KERNEL_COPY_V_2_6_11_3
    7.78      bool
    7.79      prompt "2.6.11.3"
    7.80      depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.81  
    7.82 -config KERNEL_COPY_V_2_6_11_4
    7.83 -    bool
    7.84 -    prompt "2.6.11.4"
    7.85 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.86 -
    7.87 -config KERNEL_COPY_V_2_6_11_5
    7.88 -    bool
    7.89 -    prompt "2.6.11.5"
    7.90 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.91 -
    7.92 -config KERNEL_COPY_V_2_6_11_6
    7.93 -    bool
    7.94 -    prompt "2.6.11.6"
    7.95 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    7.96 -
    7.97 -config KERNEL_COPY_V_2_6_11_7
    7.98 -    bool
    7.99 -    prompt "2.6.11.7"
   7.100 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.101 -
   7.102 -config KERNEL_COPY_V_2_6_11_8
   7.103 -    bool
   7.104 -    prompt "2.6.11.8"
   7.105 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.106 -
   7.107 -config KERNEL_COPY_V_2_6_11_9
   7.108 -    bool
   7.109 -    prompt "2.6.11.9"
   7.110 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.111 -
   7.112 -config KERNEL_COPY_V_2_6_12
   7.113 -    bool
   7.114 -    prompt "2.6.12"
   7.115 -
   7.116 -config KERNEL_COPY_V_2_6_12_1
   7.117 -    bool
   7.118 -    prompt "2.6.12.1"
   7.119 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.120 -
   7.121 -config KERNEL_COPY_V_2_6_12_2
   7.122 -    bool
   7.123 -    prompt "2.6.12.2"
   7.124 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.125 -
   7.126 -config KERNEL_COPY_V_2_6_12_3
   7.127 -    bool
   7.128 -    prompt "2.6.12.3"
   7.129 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.130 -
   7.131 -config KERNEL_COPY_V_2_6_12_4
   7.132 -    bool
   7.133 -    prompt "2.6.12.4"
   7.134 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.135 -
   7.136 -config KERNEL_COPY_V_2_6_12_5
   7.137 -    bool
   7.138 -    prompt "2.6.12.5"
   7.139 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.140 -
   7.141 -config KERNEL_COPY_V_2_6_12_6
   7.142 -    bool
   7.143 -    prompt "2.6.12.6"
   7.144 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.145 -
   7.146 -config KERNEL_COPY_V_2_6_13
   7.147 -    bool
   7.148 -    prompt "2.6.13"
   7.149 -
   7.150 -config KERNEL_COPY_V_2_6_13_1
   7.151 -    bool
   7.152 -    prompt "2.6.13.1"
   7.153 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.154 -
   7.155 -config KERNEL_COPY_V_2_6_13_2
   7.156 -    bool
   7.157 -    prompt "2.6.13.2"
   7.158 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.159 -
   7.160 -config KERNEL_COPY_V_2_6_13_3
   7.161 -    bool
   7.162 -    prompt "2.6.13.3"
   7.163 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.164 -
   7.165 -config KERNEL_COPY_V_2_6_13_4
   7.166 -    bool
   7.167 -    prompt "2.6.13.4"
   7.168 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.169 -
   7.170 -config KERNEL_COPY_V_2_6_13_5
   7.171 -    bool
   7.172 -    prompt "2.6.13.5"
   7.173 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.174 -
   7.175 -config KERNEL_COPY_V_2_6_14
   7.176 -    bool
   7.177 -    prompt "2.6.14"
   7.178 -
   7.179 -config KERNEL_COPY_V_2_6_14_1
   7.180 -    bool
   7.181 -    prompt "2.6.14.1"
   7.182 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.183 -
   7.184 -config KERNEL_COPY_V_2_6_14_2
   7.185 -    bool
   7.186 -    prompt "2.6.14.2"
   7.187 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.188 -
   7.189 -config KERNEL_COPY_V_2_6_14_3
   7.190 -    bool
   7.191 -    prompt "2.6.14.3"
   7.192 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.193 -
   7.194 -config KERNEL_COPY_V_2_6_14_4
   7.195 -    bool
   7.196 -    prompt "2.6.14.4"
   7.197 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.198 -
   7.199 -config KERNEL_COPY_V_2_6_14_5
   7.200 -    bool
   7.201 -    prompt "2.6.14.5"
   7.202 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.203 -
   7.204 -config KERNEL_COPY_V_2_6_14_6
   7.205 -    bool
   7.206 -    prompt "2.6.14.6"
   7.207 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.208 -
   7.209 -config KERNEL_COPY_V_2_6_14_7
   7.210 -    bool
   7.211 -    prompt "2.6.14.7"
   7.212 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.213 -
   7.214 -config KERNEL_COPY_V_2_6_15
   7.215 -    bool
   7.216 -    prompt "2.6.15"
   7.217 -
   7.218 -config KERNEL_COPY_V_2_6_15_1
   7.219 -    bool
   7.220 -    prompt "2.6.15.1"
   7.221 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.222 -
   7.223 -config KERNEL_COPY_V_2_6_15_2
   7.224 -    bool
   7.225 -    prompt "2.6.15.2"
   7.226 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.227 -
   7.228 -config KERNEL_COPY_V_2_6_15_3
   7.229 -    bool
   7.230 -    prompt "2.6.15.3"
   7.231 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.232 -
   7.233 -config KERNEL_COPY_V_2_6_15_4
   7.234 -    bool
   7.235 -    prompt "2.6.15.4"
   7.236 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.237 -
   7.238 -config KERNEL_COPY_V_2_6_15_5
   7.239 -    bool
   7.240 -    prompt "2.6.15.5"
   7.241 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.242 -
   7.243 -config KERNEL_COPY_V_2_6_15_6
   7.244 -    bool
   7.245 -    prompt "2.6.15.6"
   7.246 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.247 -
   7.248 -config KERNEL_COPY_V_2_6_15_7
   7.249 -    bool
   7.250 -    prompt "2.6.15.7"
   7.251 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.252 -
   7.253 -config KERNEL_COPY_V_2_6_16
   7.254 -    bool
   7.255 -    prompt "2.6.16"
   7.256 -
   7.257 -config KERNEL_COPY_V_2_6_16_1
   7.258 -    bool
   7.259 -    prompt "2.6.16.1"
   7.260 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.261 -
   7.262 -config KERNEL_COPY_V_2_6_16_10
   7.263 -    bool
   7.264 -    prompt "2.6.16.10"
   7.265 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.266 -
   7.267 -config KERNEL_COPY_V_2_6_16_11
   7.268 -    bool
   7.269 -    prompt "2.6.16.11"
   7.270 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.271 -
   7.272 -config KERNEL_COPY_V_2_6_16_12
   7.273 -    bool
   7.274 -    prompt "2.6.16.12"
   7.275 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.276 -
   7.277 -config KERNEL_COPY_V_2_6_16_13
   7.278 -    bool
   7.279 -    prompt "2.6.16.13"
   7.280 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.281 -
   7.282 -config KERNEL_COPY_V_2_6_16_14
   7.283 -    bool
   7.284 -    prompt "2.6.16.14"
   7.285 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.286 -
   7.287 -config KERNEL_COPY_V_2_6_16_15
   7.288 -    bool
   7.289 -    prompt "2.6.16.15"
   7.290 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.291 -
   7.292 -config KERNEL_COPY_V_2_6_16_16
   7.293 -    bool
   7.294 -    prompt "2.6.16.16"
   7.295 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.296 -
   7.297 -config KERNEL_COPY_V_2_6_16_17
   7.298 -    bool
   7.299 -    prompt "2.6.16.17"
   7.300 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.301 -
   7.302 -config KERNEL_COPY_V_2_6_16_18
   7.303 -    bool
   7.304 -    prompt "2.6.16.18"
   7.305 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.306 -
   7.307 -config KERNEL_COPY_V_2_6_16_19
   7.308 -    bool
   7.309 -    prompt "2.6.16.19"
   7.310 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.311 -
   7.312 -config KERNEL_COPY_V_2_6_16_2
   7.313 -    bool
   7.314 -    prompt "2.6.16.2"
   7.315 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.316 -
   7.317 -config KERNEL_COPY_V_2_6_16_20
   7.318 -    bool
   7.319 -    prompt "2.6.16.20"
   7.320 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.321 -
   7.322 -config KERNEL_COPY_V_2_6_16_21
   7.323 -    bool
   7.324 -    prompt "2.6.16.21"
   7.325 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.326 -
   7.327 -config KERNEL_COPY_V_2_6_16_22
   7.328 -    bool
   7.329 -    prompt "2.6.16.22"
   7.330 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.331 -
   7.332 -config KERNEL_COPY_V_2_6_16_23
   7.333 -    bool
   7.334 -    prompt "2.6.16.23"
   7.335 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.336 -
   7.337 -config KERNEL_COPY_V_2_6_16_24
   7.338 -    bool
   7.339 -    prompt "2.6.16.24"
   7.340 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.341 -
   7.342 -config KERNEL_COPY_V_2_6_16_25
   7.343 -    bool
   7.344 -    prompt "2.6.16.25"
   7.345 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.346 -
   7.347 -config KERNEL_COPY_V_2_6_16_26
   7.348 -    bool
   7.349 -    prompt "2.6.16.26"
   7.350 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.351 -
   7.352 -config KERNEL_COPY_V_2_6_16_27
   7.353 -    bool
   7.354 -    prompt "2.6.16.27"
   7.355 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.356 -
   7.357 -config KERNEL_COPY_V_2_6_16_28
   7.358 -    bool
   7.359 -    prompt "2.6.16.28"
   7.360 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.361 -
   7.362 -config KERNEL_COPY_V_2_6_16_29
   7.363 -    bool
   7.364 -    prompt "2.6.16.29"
   7.365 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.366 -
   7.367 -config KERNEL_COPY_V_2_6_16_3
   7.368 -    bool
   7.369 -    prompt "2.6.16.3"
   7.370 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.371 -
   7.372 -config KERNEL_COPY_V_2_6_16_30
   7.373 -    bool
   7.374 -    prompt "2.6.16.30"
   7.375 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.376 -
   7.377 -config KERNEL_COPY_V_2_6_16_31
   7.378 -    bool
   7.379 -    prompt "2.6.16.31"
   7.380 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.381 -
   7.382 -config KERNEL_COPY_V_2_6_16_32
   7.383 -    bool
   7.384 -    prompt "2.6.16.32"
   7.385 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.386 -
   7.387 -config KERNEL_COPY_V_2_6_16_33
   7.388 -    bool
   7.389 -    prompt "2.6.16.33"
   7.390 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.391 -
   7.392 -config KERNEL_COPY_V_2_6_16_34
   7.393 -    bool
   7.394 -    prompt "2.6.16.34"
   7.395 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.396 -
   7.397 -config KERNEL_COPY_V_2_6_16_35
   7.398 -    bool
   7.399 -    prompt "2.6.16.35"
   7.400 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.401 -
   7.402 -config KERNEL_COPY_V_2_6_16_36
   7.403 -    bool
   7.404 -    prompt "2.6.16.36"
   7.405 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.406 -
   7.407 -config KERNEL_COPY_V_2_6_16_4
   7.408 -    bool
   7.409 -    prompt "2.6.16.4"
   7.410 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.411 -
   7.412 -config KERNEL_COPY_V_2_6_16_5
   7.413 -    bool
   7.414 -    prompt "2.6.16.5"
   7.415 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.416 -
   7.417 -config KERNEL_COPY_V_2_6_16_6
   7.418 -    bool
   7.419 -    prompt "2.6.16.6"
   7.420 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.421 -
   7.422 -config KERNEL_COPY_V_2_6_16_7
   7.423 -    bool
   7.424 -    prompt "2.6.16.7"
   7.425 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.426 -
   7.427 -config KERNEL_COPY_V_2_6_16_8
   7.428 -    bool
   7.429 -    prompt "2.6.16.8"
   7.430 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.431 -
   7.432 -config KERNEL_COPY_V_2_6_16_9
   7.433 -    bool
   7.434 -    prompt "2.6.16.9"
   7.435 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.436 -
   7.437 -config KERNEL_COPY_V_2_6_17
   7.438 -    bool
   7.439 -    prompt "2.6.17"
   7.440 -
   7.441 -config KERNEL_COPY_V_2_6_17_1
   7.442 -    bool
   7.443 -    prompt "2.6.17.1"
   7.444 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.445 -
   7.446 -config KERNEL_COPY_V_2_6_17_10
   7.447 -    bool
   7.448 -    prompt "2.6.17.10"
   7.449 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.450 -
   7.451 -config KERNEL_COPY_V_2_6_17_11
   7.452 -    bool
   7.453 -    prompt "2.6.17.11"
   7.454 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.455 -
   7.456 -config KERNEL_COPY_V_2_6_17_12
   7.457 -    bool
   7.458 -    prompt "2.6.17.12"
   7.459 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.460 -
   7.461 -config KERNEL_COPY_V_2_6_17_13
   7.462 -    bool
   7.463 -    prompt "2.6.17.13"
   7.464 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.465 -
   7.466 -config KERNEL_COPY_V_2_6_17_14
   7.467 -    bool
   7.468 -    prompt "2.6.17.14"
   7.469 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.470 -
   7.471 -config KERNEL_COPY_V_2_6_17_2
   7.472 -    bool
   7.473 -    prompt "2.6.17.2"
   7.474 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.475 -
   7.476 -config KERNEL_COPY_V_2_6_17_3
   7.477 -    bool
   7.478 -    prompt "2.6.17.3"
   7.479 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.480 -
   7.481 -config KERNEL_COPY_V_2_6_17_4
   7.482 -    bool
   7.483 -    prompt "2.6.17.4"
   7.484 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.485 -
   7.486 -config KERNEL_COPY_V_2_6_17_5
   7.487 -    bool
   7.488 -    prompt "2.6.17.5"
   7.489 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.490 -
   7.491 -config KERNEL_COPY_V_2_6_17_6
   7.492 -    bool
   7.493 -    prompt "2.6.17.6"
   7.494 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.495 -
   7.496 -config KERNEL_COPY_V_2_6_17_7
   7.497 -    bool
   7.498 -    prompt "2.6.17.7"
   7.499 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.500 -
   7.501 -config KERNEL_COPY_V_2_6_17_8
   7.502 -    bool
   7.503 -    prompt "2.6.17.8"
   7.504 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.505 -
   7.506 -config KERNEL_COPY_V_2_6_17_9
   7.507 -    bool
   7.508 -    prompt "2.6.17.9"
   7.509 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.510 -
   7.511 -config KERNEL_COPY_V_2_6_18
   7.512 -    bool
   7.513 -    prompt "2.6.18"
   7.514 -
   7.515 -config KERNEL_COPY_V_2_6_18_1
   7.516 -    bool
   7.517 -    prompt "2.6.18.1"
   7.518 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.519 -
   7.520 -config KERNEL_COPY_V_2_6_18_2
   7.521 -    bool
   7.522 -    prompt "2.6.18.2"
   7.523 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.524 -
   7.525 -config KERNEL_COPY_V_2_6_18_3
   7.526 -    bool
   7.527 -    prompt "2.6.18.3"
   7.528 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.529 -
   7.530 -config KERNEL_COPY_V_2_6_18_4
   7.531 -    bool
   7.532 -    prompt "2.6.18.4"
   7.533 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.534 -
   7.535 -config KERNEL_COPY_V_2_6_18_5
   7.536 -    bool
   7.537 -    prompt "2.6.18.5"
   7.538 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.539 -
   7.540 -config KERNEL_COPY_V_2_6_18_6
   7.541 -    bool
   7.542 -    prompt "2.6.18.6"
   7.543 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.544 -
   7.545 -config KERNEL_COPY_V_2_6_19
   7.546 -    bool
   7.547 -    prompt "2.6.19"
   7.548 -
   7.549 -config KERNEL_COPY_V_2_6_19_1
   7.550 -    bool
   7.551 -    prompt "2.6.19.1"
   7.552 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   7.553 -
   7.554  # CT_INSERT_VERSION_ABOVE
   7.555  # Don't remove above line!
   7.556  endchoice
   7.557  
   7.558  config KERNEL_VERSION
   7.559      string
   7.560 -    default "2.6.0" if KERNEL_COPY_V_2_6_0
   7.561 -    default "2.6.1" if KERNEL_COPY_V_2_6_1
   7.562 -    default "2.6.2" if KERNEL_COPY_V_2_6_2
   7.563 -    default "2.6.3" if KERNEL_COPY_V_2_6_3
   7.564 -    default "2.6.4" if KERNEL_COPY_V_2_6_4
   7.565      default "2.6.5" if KERNEL_COPY_V_2_6_5
   7.566      default "2.6.6" if KERNEL_COPY_V_2_6_6
   7.567      default "2.6.7" if KERNEL_COPY_V_2_6_7
   7.568      default "2.6.8" if KERNEL_COPY_V_2_6_8
   7.569 -    default "2.6.8.1" if KERNEL_COPY_V_2_6_8_1
   7.570 -    default "2.6.9" if KERNEL_COPY_V_2_6_9
   7.571 -    default "2.6.10" if KERNEL_COPY_V_2_6_10
   7.572 -    default "2.6.11" if KERNEL_COPY_V_2_6_11
   7.573 -    default "2.6.11.1" if KERNEL_COPY_V_2_6_11_1
   7.574 -    default "2.6.11.10" if KERNEL_COPY_V_2_6_11_10
   7.575 -    default "2.6.11.11" if KERNEL_COPY_V_2_6_11_11
   7.576 -    default "2.6.11.12" if KERNEL_COPY_V_2_6_11_12
   7.577 -    default "2.6.11.2" if KERNEL_COPY_V_2_6_11_2
   7.578      default "2.6.11.3" if KERNEL_COPY_V_2_6_11_3
   7.579 -    default "2.6.11.4" if KERNEL_COPY_V_2_6_11_4
   7.580 -    default "2.6.11.5" if KERNEL_COPY_V_2_6_11_5
   7.581 -    default "2.6.11.6" if KERNEL_COPY_V_2_6_11_6
   7.582 -    default "2.6.11.7" if KERNEL_COPY_V_2_6_11_7
   7.583 -    default "2.6.11.8" if KERNEL_COPY_V_2_6_11_8
   7.584 -    default "2.6.11.9" if KERNEL_COPY_V_2_6_11_9
   7.585 -    default "2.6.12" if KERNEL_COPY_V_2_6_12
   7.586 -    default "2.6.12.1" if KERNEL_COPY_V_2_6_12_1
   7.587 -    default "2.6.12.2" if KERNEL_COPY_V_2_6_12_2
   7.588 -    default "2.6.12.3" if KERNEL_COPY_V_2_6_12_3
   7.589 -    default "2.6.12.4" if KERNEL_COPY_V_2_6_12_4
   7.590 -    default "2.6.12.5" if KERNEL_COPY_V_2_6_12_5
   7.591 -    default "2.6.12.6" if KERNEL_COPY_V_2_6_12_6
   7.592 -    default "2.6.13" if KERNEL_COPY_V_2_6_13
   7.593 -    default "2.6.13.1" if KERNEL_COPY_V_2_6_13_1
   7.594 -    default "2.6.13.2" if KERNEL_COPY_V_2_6_13_2
   7.595 -    default "2.6.13.3" if KERNEL_COPY_V_2_6_13_3
   7.596 -    default "2.6.13.4" if KERNEL_COPY_V_2_6_13_4
   7.597 -    default "2.6.13.5" if KERNEL_COPY_V_2_6_13_5
   7.598 -    default "2.6.14" if KERNEL_COPY_V_2_6_14
   7.599 -    default "2.6.14.1" if KERNEL_COPY_V_2_6_14_1
   7.600 -    default "2.6.14.2" if KERNEL_COPY_V_2_6_14_2
   7.601 -    default "2.6.14.3" if KERNEL_COPY_V_2_6_14_3
   7.602 -    default "2.6.14.4" if KERNEL_COPY_V_2_6_14_4
   7.603 -    default "2.6.14.5" if KERNEL_COPY_V_2_6_14_5
   7.604 -    default "2.6.14.6" if KERNEL_COPY_V_2_6_14_6
   7.605 -    default "2.6.14.7" if KERNEL_COPY_V_2_6_14_7
   7.606 -    default "2.6.15" if KERNEL_COPY_V_2_6_15
   7.607 -    default "2.6.15.1" if KERNEL_COPY_V_2_6_15_1
   7.608 -    default "2.6.15.2" if KERNEL_COPY_V_2_6_15_2
   7.609 -    default "2.6.15.3" if KERNEL_COPY_V_2_6_15_3
   7.610 -    default "2.6.15.4" if KERNEL_COPY_V_2_6_15_4
   7.611 -    default "2.6.15.5" if KERNEL_COPY_V_2_6_15_5
   7.612 -    default "2.6.15.6" if KERNEL_COPY_V_2_6_15_6
   7.613 -    default "2.6.15.7" if KERNEL_COPY_V_2_6_15_7
   7.614 -    default "2.6.16" if KERNEL_COPY_V_2_6_16
   7.615 -    default "2.6.16.1" if KERNEL_COPY_V_2_6_16_1
   7.616 -    default "2.6.16.10" if KERNEL_COPY_V_2_6_16_10
   7.617 -    default "2.6.16.11" if KERNEL_COPY_V_2_6_16_11
   7.618 -    default "2.6.16.12" if KERNEL_COPY_V_2_6_16_12
   7.619 -    default "2.6.16.13" if KERNEL_COPY_V_2_6_16_13
   7.620 -    default "2.6.16.14" if KERNEL_COPY_V_2_6_16_14
   7.621 -    default "2.6.16.15" if KERNEL_COPY_V_2_6_16_15
   7.622 -    default "2.6.16.16" if KERNEL_COPY_V_2_6_16_16
   7.623 -    default "2.6.16.17" if KERNEL_COPY_V_2_6_16_17
   7.624 -    default "2.6.16.18" if KERNEL_COPY_V_2_6_16_18
   7.625 -    default "2.6.16.19" if KERNEL_COPY_V_2_6_16_19
   7.626 -    default "2.6.16.2" if KERNEL_COPY_V_2_6_16_2
   7.627 -    default "2.6.16.20" if KERNEL_COPY_V_2_6_16_20
   7.628 -    default "2.6.16.21" if KERNEL_COPY_V_2_6_16_21
   7.629 -    default "2.6.16.22" if KERNEL_COPY_V_2_6_16_22
   7.630 -    default "2.6.16.23" if KERNEL_COPY_V_2_6_16_23
   7.631 -    default "2.6.16.24" if KERNEL_COPY_V_2_6_16_24
   7.632 -    default "2.6.16.25" if KERNEL_COPY_V_2_6_16_25
   7.633 -    default "2.6.16.26" if KERNEL_COPY_V_2_6_16_26
   7.634 -    default "2.6.16.27" if KERNEL_COPY_V_2_6_16_27
   7.635 -    default "2.6.16.28" if KERNEL_COPY_V_2_6_16_28
   7.636 -    default "2.6.16.29" if KERNEL_COPY_V_2_6_16_29
   7.637 -    default "2.6.16.3" if KERNEL_COPY_V_2_6_16_3
   7.638 -    default "2.6.16.30" if KERNEL_COPY_V_2_6_16_30
   7.639 -    default "2.6.16.31" if KERNEL_COPY_V_2_6_16_31
   7.640 -    default "2.6.16.32" if KERNEL_COPY_V_2_6_16_32
   7.641 -    default "2.6.16.33" if KERNEL_COPY_V_2_6_16_33
   7.642 -    default "2.6.16.34" if KERNEL_COPY_V_2_6_16_34
   7.643 -    default "2.6.16.35" if KERNEL_COPY_V_2_6_16_35
   7.644 -    default "2.6.16.36" if KERNEL_COPY_V_2_6_16_36
   7.645 -    default "2.6.16.4" if KERNEL_COPY_V_2_6_16_4
   7.646 -    default "2.6.16.5" if KERNEL_COPY_V_2_6_16_5
   7.647 -    default "2.6.16.6" if KERNEL_COPY_V_2_6_16_6
   7.648 -    default "2.6.16.7" if KERNEL_COPY_V_2_6_16_7
   7.649 -    default "2.6.16.8" if KERNEL_COPY_V_2_6_16_8
   7.650 -    default "2.6.16.9" if KERNEL_COPY_V_2_6_16_9
   7.651 -    default "2.6.17" if KERNEL_COPY_V_2_6_17
   7.652 -    default "2.6.17.1" if KERNEL_COPY_V_2_6_17_1
   7.653 -    default "2.6.17.10" if KERNEL_COPY_V_2_6_17_10
   7.654 -    default "2.6.17.11" if KERNEL_COPY_V_2_6_17_11
   7.655 -    default "2.6.17.12" if KERNEL_COPY_V_2_6_17_12
   7.656 -    default "2.6.17.13" if KERNEL_COPY_V_2_6_17_13
   7.657 -    default "2.6.17.14" if KERNEL_COPY_V_2_6_17_14
   7.658 -    default "2.6.17.2" if KERNEL_COPY_V_2_6_17_2
   7.659 -    default "2.6.17.3" if KERNEL_COPY_V_2_6_17_3
   7.660 -    default "2.6.17.4" if KERNEL_COPY_V_2_6_17_4
   7.661 -    default "2.6.17.5" if KERNEL_COPY_V_2_6_17_5
   7.662 -    default "2.6.17.6" if KERNEL_COPY_V_2_6_17_6
   7.663 -    default "2.6.17.7" if KERNEL_COPY_V_2_6_17_7
   7.664 -    default "2.6.17.8" if KERNEL_COPY_V_2_6_17_8
   7.665 -    default "2.6.17.9" if KERNEL_COPY_V_2_6_17_9
   7.666 -    default "2.6.18" if KERNEL_COPY_V_2_6_18
   7.667 -    default "2.6.18.1" if KERNEL_COPY_V_2_6_18_1
   7.668 -    default "2.6.18.2" if KERNEL_COPY_V_2_6_18_2
   7.669 -    default "2.6.18.3" if KERNEL_COPY_V_2_6_18_3
   7.670 -    default "2.6.18.4" if KERNEL_COPY_V_2_6_18_4
   7.671 -    default "2.6.18.5" if KERNEL_COPY_V_2_6_18_5
   7.672 -    default "2.6.18.6" if KERNEL_COPY_V_2_6_18_6
   7.673 -    default "2.6.19" if KERNEL_COPY_V_2_6_19
   7.674 -    default "2.6.19.1" if KERNEL_COPY_V_2_6_19_1
   7.675  # CT_INSERT_VERSION_STRING_ABOVE
   7.676  # Don't remove above line!
     8.1 --- a/config/kernel_linux_headers_install.in	Tue Aug 14 19:32:22 2007 +0000
     8.2 +++ b/config/kernel_linux_headers_install.in	Tue Aug 14 20:11:44 2007 +0000
     8.3 @@ -2,203 +2,24 @@
     8.4      bool
     8.5      prompt "Linux kernel version"
     8.6  
     8.7 -config KERNEL_INSTALL_V_2_6_18
     8.8 -    bool
     8.9 -    prompt "2.6.18"
    8.10 -    depends on OBSOLETE
    8.11 -
    8.12 -config KERNEL_INSTALL_V_2_6_18_1
    8.13 -    bool
    8.14 -    prompt "2.6.18.1"
    8.15 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.16 -
    8.17 -config KERNEL_INSTALL_V_2_6_18_2
    8.18 -    bool
    8.19 -    prompt "2.6.18.2"
    8.20 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.21 -
    8.22 -config KERNEL_INSTALL_V_2_6_18_3
    8.23 -    bool
    8.24 -    prompt "2.6.18.3"
    8.25 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.26 -
    8.27 -config KERNEL_INSTALL_V_2_6_18_4
    8.28 -    bool
    8.29 -    prompt "2.6.18.4"
    8.30 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.31 -
    8.32 -config KERNEL_INSTALL_V_2_6_18_5
    8.33 -    bool
    8.34 -    prompt "2.6.18.5"
    8.35 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.36 -
    8.37 -config KERNEL_INSTALL_V_2_6_18_6
    8.38 -    bool
    8.39 -    prompt "2.6.18.6"
    8.40 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.41 -
    8.42 -config KERNEL_INSTALL_V_2_6_18_7
    8.43 -    bool
    8.44 -    prompt "2.6.18.7"
    8.45 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.46 -
    8.47  config KERNEL_INSTALL_V_2_6_18_8
    8.48      bool
    8.49 -    prompt "2.6.18.8"
    8.50 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    8.51 -
    8.52 -config KERNEL_INSTALL_V_2_6_19
    8.53 -    bool
    8.54 -    prompt "2.6.19"
    8.55 -    depends on OBSOLETE
    8.56 -
    8.57 -config KERNEL_INSTALL_V_2_6_19_1
    8.58 -    bool
    8.59 -    prompt "2.6.19.1"
    8.60 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.61 -
    8.62 -config KERNEL_INSTALL_V_2_6_19_2
    8.63 -    bool
    8.64 -    prompt "2.6.19.2"
    8.65 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.66 -
    8.67 -config KERNEL_INSTALL_V_2_6_19_3
    8.68 -    bool
    8.69 -    prompt "2.6.19.3"
    8.70 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.71 -
    8.72 -config KERNEL_INSTALL_V_2_6_19_4
    8.73 -    bool
    8.74 -    prompt "2.6.19.4"
    8.75 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.76 -
    8.77 -config KERNEL_INSTALL_V_2_6_19_5
    8.78 -    bool
    8.79 -    prompt "2.6.19.5"
    8.80 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.81 -
    8.82 -config KERNEL_INSTALL_V_2_6_19_6
    8.83 -    bool
    8.84 -    prompt "2.6.19.6"
    8.85 +    prompt "2.6.18.8 (OBSOLETE)"
    8.86      depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
    8.87  
    8.88  config KERNEL_INSTALL_V_2_6_19_7
    8.89      bool
    8.90 -    prompt "2.6.19.7"
    8.91 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
    8.92 -
    8.93 -config KERNEL_INSTALL_V_2_6_20
    8.94 -    bool
    8.95 -    prompt "2.6.20"
    8.96 -    depends on OBSOLETE
    8.97 -
    8.98 -config KERNEL_INSTALL_V_2_6_20_1
    8.99 -    bool
   8.100 -    prompt "2.6.20.1"
   8.101 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.102 -
   8.103 -config KERNEL_INSTALL_V_2_6_20_2
   8.104 -    bool
   8.105 -    prompt "2.6.20.2"
   8.106 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.107 -
   8.108 -config KERNEL_INSTALL_V_2_6_20_3
   8.109 -    bool
   8.110 -    prompt "2.6.20.3"
   8.111 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.112 -
   8.113 -config KERNEL_INSTALL_V_2_6_20_4
   8.114 -    bool
   8.115 -    prompt "2.6.20.4"
   8.116 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.117 -
   8.118 -config KERNEL_INSTALL_V_2_6_20_5
   8.119 -    bool
   8.120 -    prompt "2.6.20.5"
   8.121 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.122 -
   8.123 -config KERNEL_INSTALL_V_2_6_20_6
   8.124 -    bool
   8.125 -    prompt "2.6.20.6"
   8.126 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.127 -
   8.128 -config KERNEL_INSTALL_V_2_6_20_7
   8.129 -    bool
   8.130 -    prompt "2.6.20.7"
   8.131 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.132 -
   8.133 -config KERNEL_INSTALL_V_2_6_20_8
   8.134 -    bool
   8.135 -    prompt "2.6.20.8"
   8.136 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.137 -
   8.138 -config KERNEL_INSTALL_V_2_6_20_9
   8.139 -    bool
   8.140 -    prompt "2.6.20.9"
   8.141 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.142 -
   8.143 -config KERNEL_INSTALL_V_2_6_20_10
   8.144 -    bool
   8.145 -    prompt "2.6.20.10"
   8.146 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.147 -
   8.148 -config KERNEL_INSTALL_V_2_6_20_11
   8.149 -    bool
   8.150 -    prompt "2.6.20.11"
   8.151 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.152 -
   8.153 -config KERNEL_INSTALL_V_2_6_20_12
   8.154 -    bool
   8.155 -    prompt "2.6.20.12"
   8.156 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.157 -
   8.158 -config KERNEL_INSTALL_V_2_6_20_13
   8.159 -    bool
   8.160 -    prompt "2.6.20.13"
   8.161 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.162 -
   8.163 -config KERNEL_INSTALL_V_2_6_20_14
   8.164 -    bool
   8.165 -    prompt "2.6.20.14"
   8.166 +    prompt "2.6.19.7 (OBSOLETE)"
   8.167      depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.168  
   8.169  config KERNEL_INSTALL_V_2_6_20_15
   8.170      bool
   8.171 -    prompt "2.6.20.15"
   8.172 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.173 +    prompt "2.6.20.15 (OBSOLETE)"
   8.174 +    depends on KERNEL_VERSION_SEE_EXTRAVERSION && OBSOLETE
   8.175  
   8.176 -config KERNEL_INSTALL_V_2_6_21
   8.177 +config KERNEL_INSTALL_V_2_6_21_7
   8.178      bool
   8.179 -    prompt "2.6.21"
   8.180 -
   8.181 -config KERNEL_INSTALL_V_2_6_21_1
   8.182 -    bool
   8.183 -    prompt "2.6.21.1"
   8.184 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.185 -
   8.186 -config KERNEL_INSTALL_V_2_6_21_2
   8.187 -    bool
   8.188 -    prompt "2.6.21.2"
   8.189 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.190 -
   8.191 -config KERNEL_INSTALL_V_2_6_21_3
   8.192 -    bool
   8.193 -    prompt "2.6.21.3"
   8.194 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.195 -
   8.196 -config KERNEL_INSTALL_V_2_6_21_4
   8.197 -    bool
   8.198 -    prompt "2.6.21.4"
   8.199 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.200 -
   8.201 -config KERNEL_INSTALL_V_2_6_21_5
   8.202 -    bool
   8.203 -    prompt "2.6.21.5"
   8.204 -    depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.205 -
   8.206 -config KERNEL_INSTALL_V_2_6_21_6
   8.207 -    bool
   8.208 -    prompt "2.6.21.6"
   8.209 +    prompt "2.6.21.7"
   8.210      depends on KERNEL_VERSION_SEE_EXTRAVERSION
   8.211  
   8.212  config KERNEL_INSTALL_V_2_6_22
   8.213 @@ -221,46 +42,10 @@
   8.214  
   8.215  config KERNEL_VERSION
   8.216      string
   8.217 -    default "2.6.18" if KERNEL_INSTALL_V_2_6_18
   8.218 -    default "2.6.18.1" if KERNEL_INSTALL_V_2_6_18_1
   8.219 -    default "2.6.18.2" if KERNEL_INSTALL_V_2_6_18_2
   8.220 -    default "2.6.18.3" if KERNEL_INSTALL_V_2_6_18_3
   8.221 -    default "2.6.18.4" if KERNEL_INSTALL_V_2_6_18_4
   8.222 -    default "2.6.18.5" if KERNEL_INSTALL_V_2_6_18_5
   8.223 -    default "2.6.18.6" if KERNEL_INSTALL_V_2_6_18_6
   8.224 -    default "2.6.18.7" if KERNEL_INSTALL_V_2_6_18_7
   8.225      default "2.6.18.8" if KERNEL_INSTALL_V_2_6_18_8
   8.226 -    default "2.6.19" if KERNEL_INSTALL_V_2_6_19
   8.227 -    default "2.6.19.1" if KERNEL_INSTALL_V_2_6_19_1
   8.228 -    default "2.6.19.2" if KERNEL_INSTALL_V_2_6_19_2
   8.229 -    default "2.6.19.3" if KERNEL_INSTALL_V_2_6_19_3
   8.230 -    default "2.6.19.4" if KERNEL_INSTALL_V_2_6_19_4
   8.231 -    default "2.6.19.5" if KERNEL_INSTALL_V_2_6_19_5
   8.232 -    default "2.6.19.6" if KERNEL_INSTALL_V_2_6_19_6
   8.233      default "2.6.19.7" if KERNEL_INSTALL_V_2_6_19_7
   8.234 -    default "2.6.20" if KERNEL_INSTALL_V_2_6_20
   8.235 -    default "2.6.20.1" if KERNEL_INSTALL_V_2_6_20_1
   8.236 -    default "2.6.20.2" if KERNEL_INSTALL_V_2_6_20_2
   8.237 -    default "2.6.20.3" if KERNEL_INSTALL_V_2_6_20_3
   8.238 -    default "2.6.20.4" if KERNEL_INSTALL_V_2_6_20_4
   8.239 -    default "2.6.20.5" if KERNEL_INSTALL_V_2_6_20_5
   8.240 -    default "2.6.20.6" if KERNEL_INSTALL_V_2_6_20_6
   8.241 -    default "2.6.20.7" if KERNEL_INSTALL_V_2_6_20_7
   8.242 -    default "2.6.20.8" if KERNEL_INSTALL_V_2_6_20_8
   8.243 -    default "2.6.20.9" if KERNEL_INSTALL_V_2_6_20_9
   8.244 -    default "2.6.20.10" if KERNEL_INSTALL_V_2_6_20_10
   8.245 -    default "2.6.20.11" if KERNEL_INSTALL_V_2_6_20_11
   8.246 -    default "2.6.20.12" if KERNEL_INSTALL_V_2_6_20_12
   8.247 -    default "2.6.20.13" if KERNEL_INSTALL_V_2_6_20_13
   8.248 -    default "2.6.20.14" if KERNEL_INSTALL_V_2_6_20_14
   8.249      default "2.6.20.15" if KERNEL_INSTALL_V_2_6_20_15
   8.250 -    default "2.6.21" if KERNEL_INSTALL_V_2_6_21
   8.251 -    default "2.6.21.1" if KERNEL_INSTALL_V_2_6_21_1
   8.252 -    default "2.6.21.2" if KERNEL_INSTALL_V_2_6_21_2
   8.253 -    default "2.6.21.3" if KERNEL_INSTALL_V_2_6_21_3
   8.254 -    default "2.6.21.4" if KERNEL_INSTALL_V_2_6_21_4
   8.255 -    default "2.6.21.5" if KERNEL_INSTALL_V_2_6_21_5
   8.256 -    default "2.6.21.6" if KERNEL_INSTALL_V_2_6_21_6
   8.257 +    default "2.6.21.7" if KERNEL_INSTALL_V_2_6_21_7
   8.258      default "2.6.22" if KERNEL_INSTALL_V_2_6_22
   8.259      default "2.6.22.1" if KERNEL_INSTALL_V_2_6_22_1
   8.260      default "2.6.22.2" if KERNEL_INSTALL_V_2_6_22_2
     9.1 --- a/config/libc_glibc.in	Tue Aug 14 19:32:22 2007 +0000
     9.2 +++ b/config/libc_glibc.in	Tue Aug 14 20:11:44 2007 +0000
     9.3 @@ -4,103 +4,10 @@
     9.4      bool
     9.5      prompt "glibc version"
     9.6  
     9.7 -config LIBC_V_1_09_1
     9.8 -    bool
     9.9 -    prompt "1.09.1"
    9.10 -    depends on OBSOLETE
    9.11 -
    9.12 -config LIBC_V_2_0_1
    9.13 -    bool
    9.14 -    prompt "2.0.1"
    9.15 -    depends on OBSOLETE
    9.16 -
    9.17 -config LIBC_V_2_0_6
    9.18 -    bool
    9.19 -    prompt "2.0.6"
    9.20 -    depends on OBSOLETE
    9.21 -
    9.22 -config LIBC_V_2_1_1
    9.23 -    bool
    9.24 -    prompt "2.1.1"
    9.25 -    depends on OBSOLETE
    9.26 -
    9.27 -config LIBC_V_2_1_2
    9.28 -    bool
    9.29 -    prompt "2.1.2"
    9.30 -    depends on OBSOLETE
    9.31 -
    9.32 -config LIBC_V_2_1_3
    9.33 -    bool
    9.34 -    prompt "2.1.3"
    9.35 -    depends on OBSOLETE
    9.36 -
    9.37 -config LIBC_V_2_2
    9.38 -    bool
    9.39 -    prompt "2.2"
    9.40 -    depends on OBSOLETE
    9.41 -
    9.42 -config LIBC_V_2_2_1
    9.43 -    bool
    9.44 -    prompt "2.2.1"
    9.45 -    depends on OBSOLETE
    9.46 -
    9.47 -config LIBC_V_2_2_2
    9.48 -    bool
    9.49 -    prompt "2.2.2"
    9.50 -    depends on OBSOLETE
    9.51 -
    9.52 -config LIBC_V_2_2_3
    9.53 -    bool
    9.54 -    prompt "2.2.3"
    9.55 -    depends on OBSOLETE
    9.56 -
    9.57 -config LIBC_V_2_2_4
    9.58 -    bool
    9.59 -    prompt "2.2.4"
    9.60 -    depends on OBSOLETE
    9.61 -
    9.62 -config LIBC_V_2_2_5
    9.63 -    bool
    9.64 -    prompt "2.2.5"
    9.65 -    depends on OBSOLETE
    9.66 -
    9.67 -config LIBC_V_2_3
    9.68 -    bool
    9.69 -    prompt "2.3"
    9.70 -    depends on OBSOLETE
    9.71 -
    9.72 -config LIBC_V_2_3_1
    9.73 -    bool
    9.74 -    prompt "2.3.1"
    9.75 -    depends on OBSOLETE
    9.76 -
    9.77 -config LIBC_V_2_3_2
    9.78 -    bool
    9.79 -    prompt "2.3.2"
    9.80 -    depends on OBSOLETE
    9.81 -
    9.82 -config LIBC_V_2_3_3
    9.83 -    bool
    9.84 -    prompt "2.3.3"
    9.85 -    depends on OBSOLETE
    9.86 -
    9.87 -config LIBC_V_2_3_4
    9.88 -    bool
    9.89 -    prompt "2.3.4"
    9.90 -    depends on OBSOLETE
    9.91 -
    9.92 -config LIBC_V_2_3_5
    9.93 -    bool
    9.94 -    prompt "2.3.5"
    9.95 -    depends on OBSOLETE
    9.96 -
    9.97  config LIBC_V_2_3_6
    9.98      bool
    9.99 -    prompt "2.3.6"
   9.100 -
   9.101 -config LIBC_V_2_4
   9.102 -    bool
   9.103 -    prompt "2.4"
   9.104 +    prompt "2.3.6 (OBSOLETE)"
   9.105 +    depends on OBSOLETE
   9.106  
   9.107  config LIBC_V_2_5
   9.108      bool
   9.109 @@ -108,8 +15,7 @@
   9.110  
   9.111  config LIBC_V_2_5_1
   9.112      bool
   9.113 -    prompt "2.5.1 (EXPERIMENTAL)"
   9.114 -    depends on EXPERIMENTAL
   9.115 +    prompt "2.5.1"
   9.116  
   9.117  config LIBC_V_2_6
   9.118      bool
   9.119 @@ -127,24 +33,6 @@
   9.120  
   9.121  config LIBC_VERSION
   9.122      string
   9.123 -    default "1.09.1" if LIBC_V_1_09_1
   9.124 -    default "2.0.1" if LIBC_V_2_0_1
   9.125 -    default "2.0.6" if LIBC_V_2_0_6
   9.126 -    default "2.1.1" if LIBC_V_2_1_1
   9.127 -    default "2.1.2" if LIBC_V_2_1_2
   9.128 -    default "2.1.3" if LIBC_V_2_1_3
   9.129 -    default "2.2" if LIBC_V_2_2
   9.130 -    default "2.2.1" if LIBC_V_2_2_1
   9.131 -    default "2.2.2" if LIBC_V_2_2_2
   9.132 -    default "2.2.3" if LIBC_V_2_2_3
   9.133 -    default "2.2.4" if LIBC_V_2_2_4
   9.134 -    default "2.2.5" if LIBC_V_2_2_5
   9.135 -    default "2.3" if LIBC_V_2_3
   9.136 -    default "2.3.1" if LIBC_V_2_3_1
   9.137 -    default "2.3.2" if LIBC_V_2_3_2
   9.138 -    default "2.3.3" if LIBC_V_2_3_3
   9.139 -    default "2.3.4" if LIBC_V_2_3_4
   9.140 -    default "2.3.5" if LIBC_V_2_3_5
   9.141      default "2.3.6" if LIBC_V_2_3_6
   9.142      default "2.4" if LIBC_V_2_4
   9.143      default "2.5" if LIBC_V_2_5
    10.1 --- a/config/libc_uClibc.in	Tue Aug 14 19:32:22 2007 +0000
    10.2 +++ b/config/libc_uClibc.in	Tue Aug 14 20:11:44 2007 +0000
    10.3 @@ -12,29 +12,19 @@
    10.4      bool
    10.5      prompt "<specific date>"
    10.6  
    10.7 -config LIBC_V_0_9_26
    10.8 -    bool
    10.9 -    prompt "0.9.26"
   10.10 -    depends on OBSOLETE
   10.11 -
   10.12 -config LIBC_V_0_9_27
   10.13 -    bool
   10.14 -    prompt "0.9.27"
   10.15 -    depends on OBSOLETE
   10.16 -
   10.17  config LIBC_V_0_9_28
   10.18      bool
   10.19 -    prompt "0.9.28"
   10.20 +    prompt "0.9.28 (OBSOLETE)"
   10.21      depends on OBSOLETE
   10.22  
   10.23  config LIBC_V_0_9_28_1
   10.24      bool
   10.25 -    prompt "0.9.28.1"
   10.26 +    prompt "0.9.28.1 (OBSOLETE)"
   10.27      depends on OBSOLETE
   10.28  
   10.29  config LIBC_V_0_9_28_2
   10.30      bool
   10.31 -    prompt "0.9.28.2"
   10.32 +    prompt "0.9.28.2 (OBSOLETE)"
   10.33      depends on OBSOLETE
   10.34  
   10.35  config LIBC_V_0_9_28_3
   10.36 @@ -53,8 +43,6 @@
   10.37      string
   10.38      prompt "Enter date (YYYYMMDD)" if LIBC_V_specific_date
   10.39      default "snapshot" if LIBC_V_snapshot
   10.40 -    default "0.9.26" if LIBC_V_0_9_26
   10.41 -    default "0.9.27" if LIBC_V_0_9_27
   10.42      default "0.9.28" if LIBC_V_0_9_28
   10.43      default "0.9.28.1" if LIBC_V_0_9_28_1
   10.44      default "0.9.28.2" if LIBC_V_0_9_28_2
   10.45 @@ -62,6 +50,12 @@
   10.46      default "0.9.29" if LIBC_V_0_9_29
   10.47  # CT_INSERT_VERSION_STRING_ABOVE
   10.48  # Don't remove above line!
   10.49 +    help
   10.50 +      Enter the date of the snapshot you want to use in the form: YYYYMMDD
   10.51 +      where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
   10.52 +      day in the month.
   10.53 +      
   10.54 +      Please note that uClibc site removes snapshots older than a month.
   10.55  
   10.56  choice
   10.57      bool
    11.1 --- a/config/tools/libelf.in	Tue Aug 14 19:32:22 2007 +0000
    11.2 +++ b/config/tools/libelf.in	Tue Aug 14 20:11:44 2007 +0000
    11.3 @@ -19,44 +19,9 @@
    11.4      bool
    11.5      prompt "libelf version"
    11.6  
    11.7 -config LIBELF_V_0_8_0
    11.8 -    bool
    11.9 -    prompt "0.8.0"
   11.10 -    depends on OBSOLETE
   11.11 -
   11.12 -config LIBELF_V_0_8_2
   11.13 -    bool
   11.14 -    prompt "0.8.2"
   11.15 -    depends on OBSOLETE
   11.16 -
   11.17 -config LIBELF_V_0_8_3
   11.18 -    bool
   11.19 -    prompt "0.8.3"
   11.20 -    depends on OBSOLETE
   11.21 -
   11.22 -config LIBELF_V_0_8_4
   11.23 -    bool
   11.24 -    prompt "0.8.4"
   11.25 -    depends on OBSOLETE
   11.26 -
   11.27 -config LIBELF_V_0_8_5
   11.28 -    bool
   11.29 -    prompt "0.8.5"
   11.30 -    depends on OBSOLETE
   11.31 -
   11.32 -config LIBELF_V_0_8_6
   11.33 -    bool
   11.34 -    prompt "0.8.6"
   11.35 -    depends on OBSOLETE
   11.36 -
   11.37 -config LIBELF_V_0_8_7
   11.38 -    bool
   11.39 -    prompt "0.8.7"
   11.40 -    depends on OBSOLETE
   11.41 -
   11.42  config LIBELF_V_0_8_8
   11.43      bool
   11.44 -    prompt "0.8.8"
   11.45 +    prompt "0.8.8 (OBSOLETE)"
   11.46      depends on OBSOLETE
   11.47  
   11.48  config LIBELF_V_0_8_9
   11.49 @@ -69,13 +34,6 @@
   11.50  
   11.51  config LIBELF_VERSION
   11.52      string
   11.53 -    default "0.8.0" if LIBELF_V_0_8_0
   11.54 -    default "0.8.2" if LIBELF_V_0_8_2
   11.55 -    default "0.8.3" if LIBELF_V_0_8_3
   11.56 -    default "0.8.4" if LIBELF_V_0_8_4
   11.57 -    default "0.8.5" if LIBELF_V_0_8_5
   11.58 -    default "0.8.6" if LIBELF_V_0_8_6
   11.59 -    default "0.8.7" if LIBELF_V_0_8_7
   11.60      default "0.8.8" if LIBELF_V_0_8_8
   11.61      default "0.8.9" if LIBELF_V_0_8_9
   11.62  # CT_INSERT_VERSION_STRING_ABOVE
    12.1 --- a/patches/binutils/2.11.2/gcc-pr3106.patch	Tue Aug 14 19:32:22 2007 +0000
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,28 +0,0 @@
    12.4 -See http://gcc.gnu.org/PR3106
    12.5 -Backported from gcc-3.0.x
    12.6 -
    12.7 -Fixes error
    12.8 -  .../binutils-2.11.2/libiberty/strerror.c:468: error: conflicting types for `sys_nerr'
    12.9 -  /usr/include/stdio.h:258: error: previous declaration of `sys_nerr'
   12.10 -  make[1]: *** [strerror.o] Error 1
   12.11 -  make: *** [all-libiberty] Error 2
   12.12 -on Mac OS X.
   12.13 -
   12.14 ---- binutils-2.11.2/libiberty/strerror.c.old	2004-03-24 16:23:19.000000000 -0800
   12.15 -+++ binutils-2.11.2/libiberty/strerror.c	2004-03-24 16:23:48.000000000 -0800
   12.16 -@@ -13,6 +13,7 @@
   12.17 -    incompatible with our later declaration, perhaps by using const
   12.18 -    attributes.  So we hide the declaration in errno.h (if any) using a
   12.19 -    macro. */
   12.20 -+#define sys_nerr sys_nerr__
   12.21 - #define sys_errlist sys_errlist__
   12.22 - #endif
   12.23 - 
   12.24 -@@ -20,6 +21,7 @@
   12.25 - #include <errno.h>
   12.26 - 
   12.27 - #ifdef HAVE_SYS_ERRLIST
   12.28 -+#undef sys_nerr
   12.29 - #undef sys_errlist
   12.30 - #endif
   12.31 - 
    13.1 --- a/patches/binutils/2.13.90.0.2/README	Tue Aug 14 19:32:22 2007 +0000
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,6 +0,0 @@
    13.4 -The files rh62*.patch are from the Red Hat 6.2 file
    13.5 -binutils-2.13.90.0.2-2.src.rpm
    13.6 -
    13.7 -I am trusting here that Red Hat's patches are appropriate for all CPU
    13.8 -types.  If I'm wrong, just remove the offending patch...
    13.9 -- Dan Kegel
    14.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.11.93.0.2-sparc-nonpic.patch	Tue Aug 14 19:32:22 2007 +0000
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,96 +0,0 @@
    14.4 -2002-04-20  Jakub Jelinek  <jakub@redhat.com>
    14.5 -
    14.6 -	* elf32-sparc.c (elf32_sparc_relocate_section): Find real output
    14.7 -	section with SEC_MERGE.
    14.8 -	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
    14.9 -
   14.10 ---- binutils/bfd/elf32-sparc.c.jj	Sat Apr 20 22:11:57 2002
   14.11 -+++ binutils/bfd/elf32-sparc.c	Sat Apr 20 23:06:33 2002
   14.12 -@@ -1144,7 +1144,7 @@ elf32_sparc_relocate_section (output_bfd
   14.13 -       struct elf_link_hash_entry *h;
   14.14 -       Elf_Internal_Sym *sym;
   14.15 -       asection *sec;
   14.16 --      bfd_vma relocation, off;
   14.17 -+      bfd_vma relocation, off, orig_addend = 0;
   14.18 -       bfd_reloc_status_type r;
   14.19 -       boolean is_plt = false;
   14.20 -       boolean unresolved_reloc;
   14.21 -@@ -1192,6 +1192,7 @@ elf32_sparc_relocate_section (output_bfd
   14.22 - 	{
   14.23 - 	  sym = local_syms + r_symndx;
   14.24 - 	  sec = local_sections[r_symndx];
   14.25 -+	  orig_addend = rel->r_addend;
   14.26 - 	  relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
   14.27 - 	}
   14.28 -       else
   14.29 -@@ -1527,6 +1528,25 @@ elf32_sparc_relocate_section (output_bfd
   14.30 - 			  asection *osec;
   14.31 - 
   14.32 - 			  osec = sec->output_section;
   14.33 -+			  /* FIXME: As soon as making sections zero size
   14.34 -+			     is possible, this if can go away.  */
   14.35 -+			  if (bfd_is_abs_section (osec)
   14.36 -+			      && h == NULL
   14.37 -+			      && (sec->flags & SEC_MERGE)
   14.38 -+			      && ELF_ST_TYPE (sym->st_info) == STT_SECTION
   14.39 -+			      && (elf_section_data (sec)->sec_info_type
   14.40 -+				  == ELF_INFO_TYPE_MERGE))
   14.41 -+			    {
   14.42 -+			      asection *msec;
   14.43 -+
   14.44 -+			      msec = sec;
   14.45 -+			      _bfd_merged_section_offset (output_bfd, &msec,
   14.46 -+					elf_section_data (sec)->sec_info,
   14.47 -+					sym->st_value + orig_addend,
   14.48 -+					(bfd_vma) 0);
   14.49 -+			      osec = msec->output_section;
   14.50 -+			     }
   14.51 -+
   14.52 - 			  indx = elf_section_data (osec)->dynindx;
   14.53 - 
   14.54 - 			  /* FIXME: we really should be able to link non-pic
   14.55 ---- binutils/bfd/elf64-sparc.c.jj	Sat Apr 20 22:11:57 2002
   14.56 -+++ binutils/bfd/elf64-sparc.c	Sat Apr 20 23:12:18 2002
   14.57 -@@ -1939,7 +1939,7 @@ sparc64_elf_relocate_section (output_bfd
   14.58 -       struct elf_link_hash_entry *h;
   14.59 -       Elf_Internal_Sym *sym;
   14.60 -       asection *sec;
   14.61 --      bfd_vma relocation, off;
   14.62 -+      bfd_vma relocation, off, orig_addend = 0;
   14.63 -       bfd_reloc_status_type r;
   14.64 -       boolean is_plt = false;
   14.65 -       boolean unresolved_reloc;
   14.66 -@@ -1982,6 +1982,7 @@ sparc64_elf_relocate_section (output_bfd
   14.67 - 	{
   14.68 - 	  sym = local_syms + r_symndx;
   14.69 - 	  sec = local_sections[r_symndx];
   14.70 -+	  orig_addend = rel->r_addend;
   14.71 - 	  relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel);
   14.72 - 	}
   14.73 -       else
   14.74 -@@ -2211,6 +2212,25 @@ sparc64_elf_relocate_section (output_bfd
   14.75 - 			    asection *osec;
   14.76 - 
   14.77 - 			    osec = sec->output_section;
   14.78 -+			    /* FIXME: As soon as making sections zero size
   14.79 -+			       is possible, this if can go away.  */
   14.80 -+			    if (bfd_is_abs_section (osec)
   14.81 -+				&& h == NULL
   14.82 -+				&& (sec->flags & SEC_MERGE)
   14.83 -+				&& ELF_ST_TYPE (sym->st_info) == STT_SECTION
   14.84 -+				&& (elf_section_data (sec)->sec_info_type
   14.85 -+				    == ELF_INFO_TYPE_MERGE))
   14.86 -+			      {
   14.87 -+				asection *msec;
   14.88 -+
   14.89 -+				msec = sec;
   14.90 -+				_bfd_merged_section_offset (output_bfd, &msec,
   14.91 -+					elf_section_data (sec)->sec_info,
   14.92 -+					sym->st_value + orig_addend,
   14.93 -+					(bfd_vma) 0);
   14.94 -+				osec = msec->output_section;
   14.95 -+			      }
   14.96 -+
   14.97 - 			    indx = elf_section_data (osec)->dynindx;
   14.98 - 
   14.99 - 			    /* FIXME: we really should be able to link non-pic
    15.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-glibc21.patch	Tue Aug 14 19:32:22 2007 +0000
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,58 +0,0 @@
    15.4 ---- binutils/ld/emulparams/elf_i386_glibc21.sh.jj	Sat Aug  3 17:04:41 2002
    15.5 -+++ binutils/ld/emulparams/elf_i386_glibc21.sh	Sat Aug  3 17:04:41 2002
    15.6 -@@ -0,0 +1,11 @@
    15.7 -+SCRIPT_NAME=elf
    15.8 -+OUTPUT_FORMAT="elf32-i386"
    15.9 -+TEXT_START_ADDR=0x08048000
   15.10 -+MAXPAGESIZE=0x1000
   15.11 -+NONPAGED_TEXT_START_ADDR=0x08048000
   15.12 -+ARCH=i386
   15.13 -+MACHINE=
   15.14 -+NOP=0x9090
   15.15 -+TEMPLATE_NAME=elf32
   15.16 -+GENERATE_SHLIB_SCRIPT=yes
   15.17 -+LIB_PATH=/usr/i386-glibc21-linux/lib:/usr/local/lib
   15.18 ---- binutils/ld/configure.tgt.jj	Thu Aug  1 20:49:32 2002
   15.19 -+++ binutils/ld/configure.tgt	Sat Aug  3 17:06:18 2002
   15.20 -@@ -143,7 +143,8 @@ i[3456]86-*-linux*aout*)	targ_emul=i386l
   15.21 - 			;;
   15.22 - i[3456]86-*-linux*oldld)	targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
   15.23 - i[3456]86-*-linux-gnu*)	targ_emul=elf_i386
   15.24 --			targ_extra_emuls=i386linux
   15.25 -+			targ_extra_emuls="i386linux elf_i386_glibc21"
   15.26 -+			targ_extra_libpath=elf_i386_glibc21
   15.27 - 			if test x${want64} = xtrue; then
   15.28 - 			  targ_extra_emuls="$targ_extra_emuls elf_x86_64"
   15.29 - 			fi
   15.30 ---- binutils/ld/Makefile.am.jj	Thu Aug  1 20:49:32 2002
   15.31 -+++ binutils/ld/Makefile.am	Sat Aug  3 17:04:41 2002
   15.32 -@@ -181,6 +181,7 @@ ALL_EMULATIONS = \
   15.33 - 	eelf_i386.o \
   15.34 - 	eelf_i386_be.o \
   15.35 - 	eelf_i386_chaos.o \
   15.36 -+	eelf_i386_glibc21.o \
   15.37 - 	eelf_i386_fbsd.o \
   15.38 - 	eelf_i386_ldso.o \
   15.39 - 	eelf_s390.o \
   15.40 -@@ -718,6 +719,9 @@ eelf_i386_be.c: $(srcdir)/emulparams/elf
   15.41 - eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
   15.42 -   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
   15.43 - 	${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
   15.44 -+eelf_i386_glibc21.c: $(srcdir)/emulparams/elf_i386_glibc21.sh \
   15.45 -+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
   15.46 -+	${GENSCRIPTS} elf_i386_glibc21 "$(tdir_elf_i386_glibc21)"
   15.47 - eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
   15.48 -   $(srcdir)/emulparams/elf_i386.sh \
   15.49 -   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
   15.50 ---- binutils/ld/Makefile.in.jj	Thu Aug  1 20:49:32 2002
   15.51 -+++ binutils/ld/Makefile.in	Sat Aug  3 17:07:34 2002
   15.52 -@@ -1197,6 +1197,9 @@ eelf_i386_be.c: $(srcdir)/emulparams/elf
   15.53 - eelf_i386_chaos.c: $(srcdir)/emulparams/elf_i386_chaos.sh \
   15.54 -   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf_chaos.sc ${GEN_DEPENDS}
   15.55 - 	${GENSCRIPTS} elf_i386_chaos "$(tdir_elf_i386_chaos)"
   15.56 -+eelf_i386_glibc21.c: $(srcdir)/emulparams/elf_i386_glibc21.sh \
   15.57 -+  $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
   15.58 -+	${GENSCRIPTS} elf_i386_glibc21 "$(tdir_elf_i386_glibc21)"
   15.59 - eelf_i386_fbsd.c: $(srcdir)/emulparams/elf_i386_fbsd.sh \
   15.60 -   $(srcdir)/emulparams/elf_i386.sh \
   15.61 -   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
    16.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-gotpc.patch	Tue Aug 14 19:32:22 2007 +0000
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,372 +0,0 @@
    16.4 -2002-08-03  Jakub Jelinek  <jakub@redhat.com>
    16.5 -
    16.6 -	* config/tc-i386.c (output_insn): Save frag_now and frag_now_fix ()
    16.7 -	at start of insn, pass it to output_disp and output_imm.
    16.8 -	(output_disp): Added arguments.  If _GLOBAL_OFFSET_TABLE_ is seen
    16.9 -	in displacement for R_386_32 reloc, use R_386_GOTPC and compute
   16.10 -	properly addend.
   16.11 -	(output_imm): Added arguments.  Compute properly addend for
   16.12 -	R_386_GOTPC.
   16.13 -	(md_apply_fix3): Remove R_386_GOTPC handling.
   16.14 -	* testsuite/gas/i386/gotpc.s: New.
   16.15 -	* testsuite/gas/i386/gotpc.d: New.
   16.16 -	* testsuite/gas/i386/i386.exp: Add gotpc test.
   16.17 -
   16.18 ---- binutils/gas/config/tc-i386.c.jj	2002-07-18 11:35:39.000000000 +0200
   16.19 -+++ binutils/gas/config/tc-i386.c	2002-08-02 21:13:18.000000000 +0200
   16.20 -@@ -104,8 +104,10 @@ static void output_insn PARAMS ((void));
   16.21 - static void output_branch PARAMS ((void));
   16.22 - static void output_jump PARAMS ((void));
   16.23 - static void output_interseg_jump PARAMS ((void));
   16.24 --static void output_imm PARAMS ((void));
   16.25 --static void output_disp PARAMS ((void));
   16.26 -+static void output_imm PARAMS ((fragS *insn_start_frag,
   16.27 -+				offsetT insn_start_off));
   16.28 -+static void output_disp PARAMS ((fragS *insn_start_frag,
   16.29 -+				 offsetT insn_start_off));
   16.30 - #ifndef I386COFF
   16.31 - static void s_bss PARAMS ((int));
   16.32 - #endif
   16.33 -@@ -3101,14 +3103,21 @@ output_interseg_jump ()
   16.34 -   md_number_to_chars (p + size, (valueT) i.op[0].imms->X_add_number, 2);
   16.35 - }
   16.36 - 
   16.37 -+
   16.38 - static void
   16.39 - output_insn ()
   16.40 - {
   16.41 -+  fragS *insn_start_frag;
   16.42 -+  offsetT insn_start_off;
   16.43 -+
   16.44 -   /* Tie dwarf2 debug info to the address at the start of the insn.
   16.45 -      We can't do this after the insn has been output as the current
   16.46 -      frag may have been closed off.  eg. by frag_var.  */
   16.47 -   dwarf2_emit_insn (0);
   16.48 - 
   16.49 -+  insn_start_frag = frag_now;
   16.50 -+  insn_start_off = frag_now_fix ();
   16.51 -+
   16.52 -   /* Output jumps.  */
   16.53 -   if (i.tm.opcode_modifier & Jump)
   16.54 -     output_branch ();
   16.55 -@@ -3179,10 +3188,10 @@ output_insn ()
   16.56 - 	}
   16.57 - 
   16.58 -       if (i.disp_operands)
   16.59 --	output_disp ();
   16.60 -+	output_disp (insn_start_frag, insn_start_off);
   16.61 - 
   16.62 -       if (i.imm_operands)
   16.63 --	output_imm ();
   16.64 -+	output_imm (insn_start_frag, insn_start_off);
   16.65 -     }
   16.66 - 
   16.67 - #ifdef DEBUG386
   16.68 -@@ -3194,7 +3203,9 @@ output_insn ()
   16.69 - }
   16.70 - 
   16.71 - static void
   16.72 --output_disp ()
   16.73 -+output_disp (insn_start_frag, insn_start_off)
   16.74 -+    fragS *insn_start_frag;
   16.75 -+    offsetT insn_start_off;
   16.76 - {
   16.77 -   char *p;
   16.78 -   unsigned int n;
   16.79 -@@ -3224,6 +3235,7 @@ output_disp ()
   16.80 - 	    }
   16.81 - 	  else
   16.82 - 	    {
   16.83 -+	      RELOC_ENUM reloc_type;
   16.84 - 	      int size = 4;
   16.85 - 	      int sign = 0;
   16.86 - 	      int pcrel = (i.flags[n] & Operand_PCrel) != 0;
   16.87 -@@ -3266,16 +3278,50 @@ output_disp ()
   16.88 - 		}
   16.89 - 
   16.90 - 	      p = frag_more (size);
   16.91 -+	      reloc_type = reloc (size, pcrel, sign, i.reloc[n]);
   16.92 -+#ifdef BFD_ASSEMBLER
   16.93 -+	      if (reloc_type == BFD_RELOC_32
   16.94 -+		  && GOT_symbol
   16.95 -+		  && GOT_symbol == i.op[n].disps->X_add_symbol
   16.96 -+		  && (i.op[n].disps->X_op == O_symbol
   16.97 -+		      || (i.op[n].disps->X_op == O_add
   16.98 -+			  && ((symbol_get_value_expression
   16.99 -+			       (i.op[n].disps->X_op_symbol)->X_op)
  16.100 -+			      == O_subtract))))
  16.101 -+		{
  16.102 -+		  offsetT add;
  16.103 -+
  16.104 -+		  if (insn_start_frag == frag_now)
  16.105 -+		    add = (p - frag_now->fr_literal) - insn_start_off;
  16.106 -+		  else
  16.107 -+		    {
  16.108 -+		      fragS *fr;
  16.109 -+
  16.110 -+		      add = insn_start_frag->fr_fix - insn_start_off;
  16.111 -+		      for (fr = insn_start_frag->fr_next;
  16.112 -+			   fr && fr != frag_now; fr = fr->fr_next)
  16.113 -+			add += fr->fr_fix;
  16.114 -+		      add += p - frag_now->fr_literal;
  16.115 -+		    }
  16.116 -+
  16.117 -+		  /* We don't support dynamic linking on x86-64 yet.  */
  16.118 -+		  if (flag_code == CODE_64BIT)
  16.119 -+		    abort ();
  16.120 -+		  reloc_type = BFD_RELOC_386_GOTPC;
  16.121 -+		  i.op[n].disps->X_add_number += add;
  16.122 -+		}
  16.123 -+#endif
  16.124 - 	      fix_new_exp (frag_now, p - frag_now->fr_literal, size,
  16.125 --			   i.op[n].disps, pcrel,
  16.126 --			   reloc (size, pcrel, sign, i.reloc[n]));
  16.127 -+			   i.op[n].disps, pcrel, reloc_type);
  16.128 - 	    }
  16.129 - 	}
  16.130 -     }
  16.131 - }
  16.132 - 
  16.133 - static void
  16.134 --output_imm ()
  16.135 -+output_imm (insn_start_frag, insn_start_off)
  16.136 -+    fragS *insn_start_frag;
  16.137 -+    offsetT insn_start_off;
  16.138 - {
  16.139 -   char *p;
  16.140 -   unsigned int n;
  16.141 -@@ -3328,6 +3374,48 @@ output_imm ()
  16.142 - 	      p = frag_more (size);
  16.143 - 	      reloc_type = reloc (size, 0, sign, i.reloc[n]);
  16.144 - #ifdef BFD_ASSEMBLER
  16.145 -+	      /*   This is tough to explain.  We end up with this one if we
  16.146 -+	       * have operands that look like
  16.147 -+	       * "_GLOBAL_OFFSET_TABLE_+[.-.L284]".  The goal here is to
  16.148 -+	       * obtain the absolute address of the GOT, and it is strongly
  16.149 -+	       * preferable from a performance point of view to avoid using
  16.150 -+	       * a runtime relocation for this.  The actual sequence of
  16.151 -+	       * instructions often look something like:
  16.152 -+	       *
  16.153 -+	       *	call	.L66
  16.154 -+	       * .L66:
  16.155 -+	       *	popl	%ebx
  16.156 -+	       *	addl	$_GLOBAL_OFFSET_TABLE_+[.-.L66],%ebx
  16.157 -+	       *
  16.158 -+	       *   The call and pop essentially return the absolute address
  16.159 -+	       * of the label .L66 and store it in %ebx.  The linker itself
  16.160 -+	       * will ultimately change the first operand of the addl so
  16.161 -+	       * that %ebx points to the GOT, but to keep things simple, the
  16.162 -+	       * .o file must have this operand set so that it generates not
  16.163 -+	       * the absolute address of .L66, but the absolute address of
  16.164 -+	       * itself.  This allows the linker itself simply treat a GOTPC
  16.165 -+	       * relocation as asking for a pcrel offset to the GOT to be
  16.166 -+	       * added in, and the addend of the relocation is stored in the
  16.167 -+	       * operand field for the instruction itself.
  16.168 -+	       *
  16.169 -+	       *   Our job here is to fix the operand so that it would add
  16.170 -+	       * the correct offset so that %ebx would point to itself.  The
  16.171 -+	       * thing that is tricky is that .-.L66 will point to the
  16.172 -+	       * beginning of the instruction, so we need to further modify
  16.173 -+	       * the operand so that it will point to itself.  There are
  16.174 -+	       * other cases where you have something like:
  16.175 -+	       *
  16.176 -+	       *	.long	$_GLOBAL_OFFSET_TABLE_+[.-.L66]
  16.177 -+	       *
  16.178 -+	       * and here no correction would be required.  Internally in
  16.179 -+	       * the assembler we treat operands of this form as not being
  16.180 -+	       * pcrel since the '.' is explicitly mentioned, and I wonder
  16.181 -+	       * whether it would simplify matters to do it this way.  Who
  16.182 -+	       * knows.  In earlier versions of the PIC patches, the
  16.183 -+	       * pcrel_adjust field was used to store the correction, but
  16.184 -+	       * since the expression is not pcrel, I felt it would be
  16.185 -+	       * confusing to do it this way.  */
  16.186 -+
  16.187 - 	      if (reloc_type == BFD_RELOC_32
  16.188 - 		  && GOT_symbol
  16.189 - 		  && GOT_symbol == i.op[n].imms->X_add_symbol
  16.190 -@@ -3337,11 +3425,26 @@ output_imm ()
  16.191 - 			       (i.op[n].imms->X_op_symbol)->X_op)
  16.192 - 			      == O_subtract))))
  16.193 - 		{
  16.194 -+		  offsetT add;
  16.195 -+
  16.196 -+		  if (insn_start_frag == frag_now)
  16.197 -+		    add = (p - frag_now->fr_literal) - insn_start_off;
  16.198 -+		  else
  16.199 -+		    {
  16.200 -+		      fragS *fr;
  16.201 -+
  16.202 -+		      add = insn_start_frag->fr_fix - insn_start_off;
  16.203 -+		      for (fr = insn_start_frag->fr_next;
  16.204 -+			   fr && fr != frag_now; fr = fr->fr_next)
  16.205 -+			add += fr->fr_fix;
  16.206 -+		      add += p - frag_now->fr_literal;
  16.207 -+		    }
  16.208 -+
  16.209 - 		  /* We don't support dynamic linking on x86-64 yet.  */
  16.210 - 		  if (flag_code == CODE_64BIT)
  16.211 - 		    abort ();
  16.212 - 		  reloc_type = BFD_RELOC_386_GOTPC;
  16.213 --		  i.op[n].imms->X_add_number += 3;
  16.214 -+		  i.op[n].imms->X_add_number += add;
  16.215 - 		}
  16.216 - #endif
  16.217 - 	      fix_new_exp (frag_now, p - frag_now->fr_literal, size,
  16.218 -@@ -4542,48 +4645,6 @@ md_apply_fix3 (fixP, valP, seg)
  16.219 - 	   runtime we merely add the offset to the actual PLT entry.  */
  16.220 - 	value = -4;
  16.221 - 	break;
  16.222 --      case BFD_RELOC_386_GOTPC:
  16.223 --
  16.224 --/*   This is tough to explain.  We end up with this one if we have
  16.225 -- * operands that look like "_GLOBAL_OFFSET_TABLE_+[.-.L284]".  The goal
  16.226 -- * here is to obtain the absolute address of the GOT, and it is strongly
  16.227 -- * preferable from a performance point of view to avoid using a runtime
  16.228 -- * relocation for this.  The actual sequence of instructions often look
  16.229 -- * something like:
  16.230 -- *
  16.231 -- *	call	.L66
  16.232 -- * .L66:
  16.233 -- *	popl	%ebx
  16.234 -- *	addl	$_GLOBAL_OFFSET_TABLE_+[.-.L66],%ebx
  16.235 -- *
  16.236 -- *   The call and pop essentially return the absolute address of
  16.237 -- * the label .L66 and store it in %ebx.  The linker itself will
  16.238 -- * ultimately change the first operand of the addl so that %ebx points to
  16.239 -- * the GOT, but to keep things simple, the .o file must have this operand
  16.240 -- * set so that it generates not the absolute address of .L66, but the
  16.241 -- * absolute address of itself.  This allows the linker itself simply
  16.242 -- * treat a GOTPC relocation as asking for a pcrel offset to the GOT to be
  16.243 -- * added in, and the addend of the relocation is stored in the operand
  16.244 -- * field for the instruction itself.
  16.245 -- *
  16.246 -- *   Our job here is to fix the operand so that it would add the correct
  16.247 -- * offset so that %ebx would point to itself.  The thing that is tricky is
  16.248 -- * that .-.L66 will point to the beginning of the instruction, so we need
  16.249 -- * to further modify the operand so that it will point to itself.
  16.250 -- * There are other cases where you have something like:
  16.251 -- *
  16.252 -- *	.long	$_GLOBAL_OFFSET_TABLE_+[.-.L66]
  16.253 -- *
  16.254 -- * and here no correction would be required.  Internally in the assembler
  16.255 -- * we treat operands of this form as not being pcrel since the '.' is
  16.256 -- * explicitly mentioned, and I wonder whether it would simplify matters
  16.257 -- * to do it this way.  Who knows.  In earlier versions of the PIC patches,
  16.258 -- * the pcrel_adjust field was used to store the correction, but since the
  16.259 -- * expression is not pcrel, I felt it would be confusing to do it this
  16.260 -- * way.  */
  16.261 --
  16.262 --	value -= 1;
  16.263 --	break;
  16.264 -       case BFD_RELOC_386_GOT32:
  16.265 -       case BFD_RELOC_386_TLS_GD:
  16.266 -       case BFD_RELOC_386_TLS_LDM:
  16.267 ---- binutils/gas/testsuite/gas/i386/gotpc.s.jj	2002-08-02 21:17:57.000000000 +0200
  16.268 -+++ binutils/gas/testsuite/gas/i386/gotpc.s	2002-08-03 22:55:47.000000000 +0200
  16.269 -@@ -0,0 +1,40 @@
  16.270 -+	.text
  16.271 -+test:
  16.272 -+	addl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
  16.273 -+	addl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
  16.274 -+	addl $_GLOBAL_OFFSET_TABLE_, %eax
  16.275 -+	addl $_GLOBAL_OFFSET_TABLE_, %ebx
  16.276 -+	leal _GLOBAL_OFFSET_TABLE+[.-test](%eax), %ebx
  16.277 -+	leal _GLOBAL_OFFSET_TABLE+[.-test](%ebx), %eax
  16.278 -+	leal _GLOBAL_OFFSET_TABLE+[.-test](%eax), %eax
  16.279 -+	leal _GLOBAL_OFFSET_TABLE+[.-test](%ebx), %ebx
  16.280 -+	subl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
  16.281 -+	subl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
  16.282 -+	subl $_GLOBAL_OFFSET_TABLE_, %eax
  16.283 -+	subl $_GLOBAL_OFFSET_TABLE_, %ebx
  16.284 -+	orl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
  16.285 -+	orl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
  16.286 -+	orl $_GLOBAL_OFFSET_TABLE_, %eax
  16.287 -+	orl $_GLOBAL_OFFSET_TABLE_, %ebx
  16.288 -+	movl $_GLOBAL_OFFSET_TABLE_+[.-test], %eax
  16.289 -+	movl $_GLOBAL_OFFSET_TABLE_+[.-test], %ebx
  16.290 -+	movl $_GLOBAL_OFFSET_TABLE_, %eax
  16.291 -+	movl $_GLOBAL_OFFSET_TABLE_, %ebx
  16.292 -+	movl $_GLOBAL_OFFSET_TABLE_+[.-test], foo
  16.293 -+	movl $_GLOBAL_OFFSET_TABLE_+[.-test], %gs:foo
  16.294 -+	gs; movl $_GLOBAL_OFFSET_TABLE_+[.-test], foo
  16.295 -+	movl $_GLOBAL_OFFSET_TABLE_+[.-test], _GLOBAL_OFFSET_TABLE_
  16.296 -+	movl _GLOBAL_OFFSET_TABLE_+[.-test], %eax
  16.297 -+	movl _GLOBAL_OFFSET_TABLE_+[.-test], %ebx
  16.298 -+	movl %eax, _GLOBAL_OFFSET_TABLE_+[.-test]
  16.299 -+	movl %ebx, _GLOBAL_OFFSET_TABLE_+[.-test]
  16.300 -+	movl %eax, %gs:_GLOBAL_OFFSET_TABLE_+[.-test]
  16.301 -+	movl %ebx, %gs:_GLOBAL_OFFSET_TABLE_+[.-test]
  16.302 -+	gs; movl %eax, _GLOBAL_OFFSET_TABLE_+[.-test]
  16.303 -+	gs; movl %ebx, _GLOBAL_OFFSET_TABLE_+[.-test]
  16.304 -+	leal _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %eax
  16.305 -+	leal _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %ebx
  16.306 -+	movl _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %eax
  16.307 -+	movl _GLOBAL_OFFSET_TABLE_@GOTOFF(%ebx), %ebx
  16.308 -+	.long _GLOBAL_OFFSET_TABLE_+[.-test]
  16.309 -+	.long _GLOBAL_OFFSET_TABLE_@GOTOFF
  16.310 ---- binutils/gas/testsuite/gas/i386/gotpc.d.jj	2002-08-02 21:18:43.000000000 +0200
  16.311 -+++ binutils/gas/testsuite/gas/i386/gotpc.d	2002-08-03 23:05:43.000000000 +0200
  16.312 -@@ -0,0 +1,52 @@
  16.313 -+#objdump: -drw
  16.314 -+#name: i386 gotpc
  16.315 -+
  16.316 -+.*: +file format .*
  16.317 -+
  16.318 -+Disassembly of section .text:
  16.319 -+
  16.320 -+0+000 <test>:
  16.321 -+   0:	05 01 00 00 00 [ 	]*add    \$0x1,%eax	1: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.322 -+   5:	81 c3 07 00 00 00 [ 	]*add    \$0x7,%ebx	7: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.323 -+   b:	05 01 00 00 00 [ 	]*add    \$0x1,%eax	c: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.324 -+  10:	81 c3 02 00 00 00 [ 	]*add    \$0x2,%ebx	12: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.325 -+  16:	8d 98 16 00 00 00 [ 	]*lea    0x16\(%eax\),%ebx	18: (R_386_)?(dir)?32	_GLOBAL_OFFSET_TABLE
  16.326 -+  1c:	8d 83 1c 00 00 00 [ 	]*lea    0x1c\(%ebx\),%eax	1e: (R_386_)?(dir)?32	_GLOBAL_OFFSET_TABLE
  16.327 -+  22:	8d 80 22 00 00 00 [ 	]*lea    0x22\(%eax\),%eax	24: (R_386_)?(dir)?32	_GLOBAL_OFFSET_TABLE
  16.328 -+  28:	8d 9b 28 00 00 00 [ 	]*lea    0x28\(%ebx\),%ebx	2a: (R_386_)?(dir)?32	_GLOBAL_OFFSET_TABLE
  16.329 -+  2e:	2d 2f 00 00 00 [ 	]*sub    \$0x2f,%eax	2f: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.330 -+  33:	81 eb 35 00 00 00 [ 	]*sub    \$0x35,%ebx	35: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.331 -+  39:	2d 01 00 00 00 [ 	]*sub    \$0x1,%eax	3a: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.332 -+  3e:	81 eb 02 00 00 00 [ 	]*sub    \$0x2,%ebx	40: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.333 -+  44:	0d 45 00 00 00 [ 	]*or     \$0x45,%eax	45: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.334 -+  49:	81 cb 4b 00 00 00 [ 	]*or     \$0x4b,%ebx	4b: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.335 -+  4f:	0d 01 00 00 00 [ 	]*or     \$0x1,%eax	50: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.336 -+  54:	81 cb 02 00 00 00 [ 	]*or     \$0x2,%ebx	56: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.337 -+  5a:	b8 5b 00 00 00 [ 	]*mov    \$0x5b,%eax	5b: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.338 -+  5f:	bb 60 00 00 00 [ 	]*mov    \$0x60,%ebx	60: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.339 -+  64:	b8 01 00 00 00 [ 	]*mov    \$0x1,%eax	65: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.340 -+  69:	bb 01 00 00 00 [ 	]*mov    \$0x1,%ebx	6a: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.341 -+  6e:	c7 05 00 00 00 00 74 00 00 00 [ 	]*movl   \$0x74,0x0	70: (R_386_)?(dir)?32	foo
  16.342 -+[ 	]*74: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.343 -+  78:	65 c7 05 00 00 00 00 7f 00 00 00 [ 	]*movl   \$0x7f,%gs:0x0	7b: (R_386_)?(dir)?32	foo
  16.344 -+[ 	]*7f: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.345 -+  83:	65 c7 05 00 00 00 00 8a 00 00 00 [ 	]*movl   \$0x8a,%gs:0x0	86: (R_386_)?(dir)?32	foo
  16.346 -+[ 	]*8a: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.347 -+  8e:	c7 05 02 00 00 00 94 00 00 00 [ 	]*movl   \$0x94,0x2	90: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.348 -+[ 	]*94: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.349 -+  98:	a1 99 00 00 00 [ 	]*mov    0x99,%eax	99: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.350 -+  9d:	8b 1d 9f 00 00 00 [ 	]*mov    0x9f,%ebx	9f: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.351 -+  a3:	a3 a4 00 00 00 [ 	]*mov    %eax,0xa4	a4: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.352 -+  a8:	89 1d aa 00 00 00 [ 	]*mov    %ebx,0xaa	aa: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.353 -+  ae:	65 a3 b0 00 00 00 [ 	]*mov    %eax,%gs:0xb0	b0: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.354 -+  b4:	65 89 1d b7 00 00 00 [ 	]*mov    %ebx,%gs:0xb7	b7: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.355 -+  bb:	65 a3 bd 00 00 00 [ 	]*mov    %eax,%gs:0xbd	bd: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.356 -+  c1:	65 89 1d c4 00 00 00 [ 	]*mov    %ebx,%gs:0xc4	c4: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.357 -+  c8:	8d 83 00 00 00 00 [ 	]*lea    0x0\(%ebx\),%eax	ca: (R_386_)?GOTOFF	_GLOBAL_OFFSET_TABLE_
  16.358 -+  ce:	8d 9b 00 00 00 00 [ 	]*lea    0x0\(%ebx\),%ebx	d0: (R_386_)?GOTOFF	_GLOBAL_OFFSET_TABLE_
  16.359 -+  d4:	8b 83 00 00 00 00 [ 	]*mov    0x0\(%ebx\),%eax	d6: (R_386_)?GOTOFF	_GLOBAL_OFFSET_TABLE_
  16.360 -+  da:	8b 9b 00 00 00 00 [ 	]*mov    0x0\(%ebx\),%ebx	dc: (R_386_)?GOTOFF	_GLOBAL_OFFSET_TABLE_
  16.361 -+  e0:	e0 00 [ 	]*loopne e2 <test\+0xe2>	e0: (R_386_)?GOTPC	_GLOBAL_OFFSET_TABLE_
  16.362 -+  e2:	00 00 [ 	]*add    %al,\(%eax\)
  16.363 -+  e4:	00 00 [ 	]*add    %al,\(%eax\)	e4: (R_386_)?GOTOFF	_GLOBAL_OFFSET_TABLE_
  16.364 -+	...
  16.365 ---- binutils/gas/testsuite/gas/i386/i386.exp.jj	2002-07-18 11:35:39.000000000 +0200
  16.366 -+++ binutils/gas/testsuite/gas/i386/i386.exp	2002-08-02 21:57:46.000000000 +0200
  16.367 -@@ -53,6 +53,7 @@ if [expr ([istarget "i*86-*-*"] ||  [ist
  16.368 -     run_dump_test "jump"
  16.369 -     run_dump_test "ssemmx2"
  16.370 -     run_dump_test "sse2"
  16.371 -+    run_dump_test "gotpc"
  16.372 - 
  16.373 -     # PIC is only supported on ELF targets.
  16.374 -     if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] )
  16.375 -
    17.1 --- a/patches/binutils/2.13.90.0.2/rh62-binutils-2.13.90.0.2-tpoff32.patch	Tue Aug 14 19:32:22 2007 +0000
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,27 +0,0 @@
    17.4 -2002-08-07  Jakub Jelinek  <jakub@redhat.com>
    17.5 -
    17.6 -	* elf32-i386.c (elf_i386_relocate_section): Fill in proper addend
    17.7 -	for R_386_TLS_TPOFF32 relocs against symndx 0.
    17.8 -
    17.9 ---- binutils/bfd/elf32-i386.c.jj	2002-07-30 16:14:55.000000000 +0200
   17.10 -+++ binutils/bfd/elf32-i386.c	2002-08-07 23:41:48.000000000 +0200
   17.11 -@@ -2561,13 +2567,17 @@ elf_i386_relocate_section (output_bfd, i
   17.12 - 	      outrel.r_offset = (htab->sgot->output_section->vma
   17.13 - 				 + htab->sgot->output_offset + off);
   17.14 - 
   17.15 --	      bfd_put_32 (output_bfd, 0,
   17.16 --			  htab->sgot->contents + off);
   17.17 - 	      indx = h && h->dynindx != -1 ? h->dynindx : 0;
   17.18 - 	      if (r_type == R_386_TLS_GD)
   17.19 - 		dr_type = R_386_TLS_DTPMOD32;
   17.20 - 	      else
   17.21 - 		dr_type = R_386_TLS_TPOFF32;
   17.22 -+	      if (dr_type == R_386_TLS_TPOFF32 && indx == 0)
   17.23 -+		bfd_put_32 (output_bfd, relocation - dtpoff_base (info),
   17.24 -+			    htab->sgot->contents + off);
   17.25 -+	      else
   17.26 -+		bfd_put_32 (output_bfd, 0,
   17.27 -+			    htab->sgot->contents + off);
   17.28 - 	      outrel.r_info = ELF32_R_INFO (indx, dr_type);
   17.29 - 	      loc = (Elf32_External_Rel *) htab->srelgot->contents;
   17.30 - 	      loc += htab->srelgot->reloc_count++;
    18.1 --- a/patches/binutils/2.14.90.0.5/binutils-cross-demangler.patch	Tue Aug 14 19:32:22 2007 +0000
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,11 +0,0 @@
    18.4 ---- orig/Makefile.in	2004-05-12 18:22:30.000000000 -0700
    18.5 -+++ binutils-2.14.90.0.5/Makefile.in	2004-05-12 18:26:19.000000000 -0700
    18.6 -@@ -24384,6 +24384,8 @@
    18.7 - # Demangler depends on libiberty.
    18.8 - configure-demangler: maybe-configure-libiberty
    18.9 - all-demangler: maybe-all-libiberty
   18.10 -+configure-build-demangler: maybe-configure-build-libiberty
   18.11 -+all-build-demangler: maybe-all-build-libiberty
   18.12 - 
   18.13 - # The new demangler, which is included in libiberty, is written in C++.
   18.14 - # A working C++ compiler is required. For the target demangler, it may
    19.1 --- a/patches/binutils/2.14.90.0.5/binutils-sh-relocs.patch	Tue Aug 14 19:32:22 2007 +0000
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,38 +0,0 @@
    19.4 -Message-Id: <200307311239.h6VCdNe27056@r-rr.iij4u.or.jp>
    19.5 -To: dank@kegel.com
    19.6 -Cc: kkojima@rr.iij4u.or.jp
    19.7 -Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
    19.8 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
    19.9 -In-Reply-To: Your message of "Wed, 30 Jul 2003 21:55:54 -0700"
   19.10 -	<3F28A15A.5010400@kegel.com>
   19.11 -References: <3F28A15A.5010400@kegel.com>
   19.12 -Date: Thu, 31 Jul 2003 21:47:38 +0900
   19.13 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   19.14 -
   19.15 -Dan Kegel <dank@kegel.com> wrote:
   19.16 ->> I'll give binutils-2.14.90.0.5 a shot, then. 
   19.17 -> 
   19.18 -> No joy - same problem.  Guess I'll take this up on binutils and/or libc-alpha.
   19.19 -
   19.20 -Please try the patch below, though it's a diff against the current
   19.21 -binutils CVS.
   19.22 -
   19.23 -Regards,
   19.24 -	kaz
   19.25 ---
   19.26 -diff -u3p ORIG/src/bfd/elf32-sh.c LOCAL/src/bfd/elf32-sh.c
   19.27 ---- src/bfd/elf32-sh.c.old	Fri Jul 25 14:46:58 2003
   19.28 -+++ src/bfd/elf32-sh.c	Thu Jul 31 21:09:38 2003
   19.29 -@@ -6497,8 +6497,10 @@ sh_elf_check_relocs (bfd *abfd, struct b
   19.30 - 							  sreloc, 2))
   19.31 - 			return FALSE;
   19.32 - 		    }
   19.33 -+#if 0
   19.34 - 		  if (sec->flags & SEC_READONLY)
   19.35 - 		    info->flags |= DF_TEXTREL;
   19.36 -+#endif
   19.37 - 		  elf_section_data (sec)->sreloc = sreloc;
   19.38 - 		}
   19.39 - 
   19.40 -
   19.41 -
    20.1 --- a/patches/binutils/2.14.90.0.7/binutils-cross-demangler.patch	Tue Aug 14 19:32:22 2007 +0000
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,11 +0,0 @@
    20.4 ---- orig/Makefile.in	2004-05-12 18:22:30.000000000 -0700
    20.5 -+++ binutils-2.14.90.0.5/Makefile.in	2004-05-12 18:26:19.000000000 -0700
    20.6 -@@ -24384,6 +24384,8 @@
    20.7 - # Demangler depends on libiberty.
    20.8 - configure-demangler: maybe-configure-libiberty
    20.9 - all-demangler: maybe-all-libiberty
   20.10 -+configure-build-demangler: maybe-configure-build-libiberty
   20.11 -+all-build-demangler: maybe-all-build-libiberty
   20.12 - 
   20.13 - # The new demangler, which is included in libiberty, is written in C++.
   20.14 - # A working C++ compiler is required. For the target demangler, it may
    21.1 --- a/patches/binutils/2.14.92/binutils-skip-comments.patch	Tue Aug 14 19:32:22 2007 +0000
    21.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3 @@ -1,101 +0,0 @@
    21.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
    21.5 -Fixes
    21.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,' 
    21.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
    21.8 -
    21.9 -Paths adjusted to match crosstool's patcher.
   21.10 -
   21.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
   21.12 -From: Andreas Schwab <schwab at suse dot de>
   21.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
   21.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
   21.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
   21.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
   21.17 -
   21.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
   21.19 -
   21.20 -> Index: read.c
   21.21 -> ===================================================================
   21.22 -> RCS file: /cvs/src/src/gas/read.c,v
   21.23 -> retrieving revision 1.76
   21.24 -> diff -c -3 -p -r1.76 read.c
   21.25 -> *** read.c	12 Mar 2004 17:48:12 -0000	1.76
   21.26 -> --- read.c	18 Mar 2004 09:56:05 -0000
   21.27 -> *************** read_a_source_file (char *name)
   21.28 -> *** 1053,1059 ****
   21.29 ->   #endif
   21.30 ->   	  input_line_pointer--;
   21.31 ->   	  /* Report unknown char as ignored.  */
   21.32 -> ! 	  ignore_rest_of_line ();
   21.33 ->   	}
   21.34 ->   
   21.35 ->   #ifdef md_after_pass_hook
   21.36 -> --- 1053,1059 ----
   21.37 ->   #endif
   21.38 ->   	  input_line_pointer--;
   21.39 ->   	  /* Report unknown char as ignored.  */
   21.40 -> ! 	  demand_empty_rest_of_line ();
   21.41 ->   	}
   21.42 ->   
   21.43 ->   #ifdef md_after_pass_hook
   21.44 -
   21.45 -This means that the unknown character is no longer ignored, despite the
   21.46 -comment.  As a side effect a line starting with a line comment character
   21.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
   21.48 -warning, breaking builds of glibc on m68k-linux.  Earlier in
   21.49 -read_a_source_file where #APP is handled there is another comment that
   21.50 -claims that unknown comments are ignored, when in fact they aren't (only
   21.51 -the initial line comment character is skipped).
   21.52 -
   21.53 -Note that the presence of #APP will mess up the line counters, but
   21.54 -that appears to be difficult to fix.
   21.55 -
   21.56 -Andreas.
   21.57 -
   21.58 -2004-04-23  Andreas Schwab  <schwab@suse.de>
   21.59 -
   21.60 -	* read.c (read_a_source_file): Ignore unknown text after line
   21.61 -	comment character.  Fix misleading comment.
   21.62 -
   21.63 ---- binutils/gas/read.c.~1.78.~	2004-04-23 08:58:23.000000000 +0200
   21.64 -+++ binutils/gas/read.c	2004-04-23 21:49:01.000000000 +0200
   21.65 -@@ -1,6 +1,6 @@
   21.66 - /* read.c - read a source file -
   21.67 -    Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
   21.68 --   1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   21.69 -+   1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
   21.70 - 
   21.71 - This file is part of GAS, the GNU Assembler.
   21.72 - 
   21.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
   21.74 - 	      unsigned int new_length;
   21.75 - 	      char *tmp_buf = 0;
   21.76 - 
   21.77 --	      bump_line_counters ();
   21.78 - 	      s = input_line_pointer;
   21.79 - 	      if (strncmp (s, "APP\n", 4))
   21.80 --		continue;	/* We ignore it */
   21.81 -+		{
   21.82 -+		  /* We ignore it */
   21.83 -+		  ignore_rest_of_line ();
   21.84 -+		  continue;
   21.85 -+		}
   21.86 -+	      bump_line_counters ();
   21.87 - 	      s += 4;
   21.88 - 
   21.89 - 	      sb_new (&sbuf);
   21.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
   21.91 - 	    continue;
   21.92 - #endif
   21.93 - 	  input_line_pointer--;
   21.94 --	  /* Report unknown char as ignored.  */
   21.95 -+	  /* Report unknown char as error.  */
   21.96 - 	  demand_empty_rest_of_line ();
   21.97 - 	}
   21.98 - 
   21.99 -
  21.100 --- 
  21.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
  21.102 -SuSE Linux AG, Maxfeldstra&#xC3;e 5, 90409 N&#xC3;rnberg, Germany
  21.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
  21.104 -"And now for something completely different."
    22.1 --- a/patches/binutils/2.14.92/gccpr15247-fix.patch	Tue Aug 14 19:32:22 2007 +0000
    22.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3 @@ -1,192 +0,0 @@
    22.4 -See
    22.5 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
    22.6 -
    22.7 -Fixes spurious error
    22.8 -/tmp/ccvNi4ou.s: Assembler messages:
    22.9 -/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
   22.10 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/math/dosincos.o] Error 1
   22.11 -
   22.12 -when compiling glibc's dosincos.c with gcc-3.4.0
   22.13 -
   22.14 -===================================================================
   22.15 -RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
   22.16 -retrieving revision 1.9
   22.17 -retrieving revision 1.10
   22.18 -diff -u -r1.9 -r1.10
   22.19 ---- src/opcodes/sparc-opc.c	2004/01/18 23:46:32	1.9
   22.20 -+++ src/opcodes/sparc-opc.c	2004/04/20 10:23:51	1.10
   22.21 -@@ -1273,110 +1273,72 @@
   22.22 - #define FM_DF 2		/* v9 */
   22.23 - #define FM_QF 3		/* v9 */
   22.24 - 
   22.25 --#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
   22.26 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z,f,g", flags, v9 }, \
   22.27 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z,f,g", flags, v9 }
   22.28 --
   22.29 --#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
   22.30 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
   22.31 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
   22.32 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
   22.33 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
   22.34 -+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
   22.35 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z," args, flags, v9 }, \
   22.36 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z," args, flags, v9 }
   22.37 -+
   22.38 -+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
   22.39 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
   22.40 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
   22.41 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
   22.42 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
   22.43 - 
   22.44 - /* FIXME: use fmovicc/fmovfcc? */ /* v9 */
   22.45 --#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
   22.46 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z,f,g", flags | F_FLOAT, v9 }, \
   22.47 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \
   22.48 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z,f,g", flags | F_FLOAT, v9 }, \
   22.49 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \
   22.50 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \
   22.51 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 }
   22.52 --
   22.53 --/* v9 */ fmovcc  ("fmovda",	FM_DF, CONDA, FCONDA, 0),
   22.54 --/* v9 */ fmovcc  ("fmovqa",	FM_QF, CONDA, FCONDA, 0),
   22.55 --/* v9 */ fmovcc  ("fmovsa",	FM_SF, CONDA, FCONDA, 0),
   22.56 --/* v9 */ fmovicc ("fmovdcc",	FM_DF, CONDCC, 0),
   22.57 --/* v9 */ fmovicc ("fmovqcc",	FM_QF, CONDCC, 0),
   22.58 --/* v9 */ fmovicc ("fmovscc",	FM_SF, CONDCC, 0),
   22.59 --/* v9 */ fmovicc ("fmovdcs",	FM_DF, CONDCS, 0),
   22.60 --/* v9 */ fmovicc ("fmovqcs",	FM_QF, CONDCS, 0),
   22.61 --/* v9 */ fmovicc ("fmovscs",	FM_SF, CONDCS, 0),
   22.62 --/* v9 */ fmovcc  ("fmovde",	FM_DF, CONDE, FCONDE, 0),
   22.63 --/* v9 */ fmovcc  ("fmovqe",	FM_QF, CONDE, FCONDE, 0),
   22.64 --/* v9 */ fmovcc  ("fmovse",	FM_SF, CONDE, FCONDE, 0),
   22.65 --/* v9 */ fmovcc  ("fmovdg",	FM_DF, CONDG, FCONDG, 0),
   22.66 --/* v9 */ fmovcc  ("fmovqg",	FM_QF, CONDG, FCONDG, 0),
   22.67 --/* v9 */ fmovcc  ("fmovsg",	FM_SF, CONDG, FCONDG, 0),
   22.68 --/* v9 */ fmovcc  ("fmovdge",	FM_DF, CONDGE, FCONDGE, 0),
   22.69 --/* v9 */ fmovcc  ("fmovqge",	FM_QF, CONDGE, FCONDGE, 0),
   22.70 --/* v9 */ fmovcc  ("fmovsge",	FM_SF, CONDGE, FCONDGE, 0),
   22.71 --/* v9 */ fmovicc ("fmovdgeu",	FM_DF, CONDGEU, F_ALIAS),
   22.72 --/* v9 */ fmovicc ("fmovqgeu",	FM_QF, CONDGEU, F_ALIAS),
   22.73 --/* v9 */ fmovicc ("fmovsgeu",	FM_SF, CONDGEU, F_ALIAS),
   22.74 --/* v9 */ fmovicc ("fmovdgu",	FM_DF, CONDGU, 0),
   22.75 --/* v9 */ fmovicc ("fmovqgu",	FM_QF, CONDGU, 0),
   22.76 --/* v9 */ fmovicc ("fmovsgu",	FM_SF, CONDGU, 0),
   22.77 --/* v9 */ fmovcc  ("fmovdl",	FM_DF, CONDL, FCONDL, 0),
   22.78 --/* v9 */ fmovcc  ("fmovql",	FM_QF, CONDL, FCONDL, 0),
   22.79 --/* v9 */ fmovcc  ("fmovsl",	FM_SF, CONDL, FCONDL, 0),
   22.80 --/* v9 */ fmovcc  ("fmovdle",	FM_DF, CONDLE, FCONDLE, 0),
   22.81 --/* v9 */ fmovcc  ("fmovqle",	FM_QF, CONDLE, FCONDLE, 0),
   22.82 --/* v9 */ fmovcc  ("fmovsle",	FM_SF, CONDLE, FCONDLE, 0),
   22.83 --/* v9 */ fmovicc ("fmovdleu",	FM_DF, CONDLEU, 0),
   22.84 --/* v9 */ fmovicc ("fmovqleu",	FM_QF, CONDLEU, 0),
   22.85 --/* v9 */ fmovicc ("fmovsleu",	FM_SF, CONDLEU, 0),
   22.86 --/* v9 */ fmovfcc ("fmovdlg",	FM_DF, FCONDLG, 0),
   22.87 --/* v9 */ fmovfcc ("fmovqlg",	FM_QF, FCONDLG, 0),
   22.88 --/* v9 */ fmovfcc ("fmovslg",	FM_SF, FCONDLG, 0),
   22.89 --/* v9 */ fmovicc ("fmovdlu",	FM_DF, CONDLU, F_ALIAS),
   22.90 --/* v9 */ fmovicc ("fmovqlu",	FM_QF, CONDLU, F_ALIAS),
   22.91 --/* v9 */ fmovicc ("fmovslu",	FM_SF, CONDLU, F_ALIAS),
   22.92 --/* v9 */ fmovcc  ("fmovdn",	FM_DF, CONDN, FCONDN, 0),
   22.93 --/* v9 */ fmovcc  ("fmovqn",	FM_QF, CONDN, FCONDN, 0),
   22.94 --/* v9 */ fmovcc  ("fmovsn",	FM_SF, CONDN, FCONDN, 0),
   22.95 --/* v9 */ fmovcc  ("fmovdne",	FM_DF, CONDNE, FCONDNE, 0),
   22.96 --/* v9 */ fmovcc  ("fmovqne",	FM_QF, CONDNE, FCONDNE, 0),
   22.97 --/* v9 */ fmovcc  ("fmovsne",	FM_SF, CONDNE, FCONDNE, 0),
   22.98 --/* v9 */ fmovicc ("fmovdneg",	FM_DF, CONDNEG, 0),
   22.99 --/* v9 */ fmovicc ("fmovqneg",	FM_QF, CONDNEG, 0),
  22.100 --/* v9 */ fmovicc ("fmovsneg",	FM_SF, CONDNEG, 0),
  22.101 --/* v9 */ fmovcc  ("fmovdnz",	FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
  22.102 --/* v9 */ fmovcc  ("fmovqnz",	FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
  22.103 --/* v9 */ fmovcc  ("fmovsnz",	FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
  22.104 --/* v9 */ fmovfcc ("fmovdo",	FM_DF, FCONDO, 0),
  22.105 --/* v9 */ fmovfcc ("fmovqo",	FM_QF, FCONDO, 0),
  22.106 --/* v9 */ fmovfcc ("fmovso",	FM_SF, FCONDO, 0),
  22.107 --/* v9 */ fmovicc ("fmovdpos",	FM_DF, CONDPOS, 0),
  22.108 --/* v9 */ fmovicc ("fmovqpos",	FM_QF, CONDPOS, 0),
  22.109 --/* v9 */ fmovicc ("fmovspos",	FM_SF, CONDPOS, 0),
  22.110 --/* v9 */ fmovfcc ("fmovdu",	FM_DF, FCONDU, 0),
  22.111 --/* v9 */ fmovfcc ("fmovqu",	FM_QF, FCONDU, 0),
  22.112 --/* v9 */ fmovfcc ("fmovsu",	FM_SF, FCONDU, 0),
  22.113 --/* v9 */ fmovfcc ("fmovdue",	FM_DF, FCONDUE, 0),
  22.114 --/* v9 */ fmovfcc ("fmovque",	FM_QF, FCONDUE, 0),
  22.115 --/* v9 */ fmovfcc ("fmovsue",	FM_SF, FCONDUE, 0),
  22.116 --/* v9 */ fmovfcc ("fmovdug",	FM_DF, FCONDUG, 0),
  22.117 --/* v9 */ fmovfcc ("fmovqug",	FM_QF, FCONDUG, 0),
  22.118 --/* v9 */ fmovfcc ("fmovsug",	FM_SF, FCONDUG, 0),
  22.119 --/* v9 */ fmovfcc ("fmovduge",	FM_DF, FCONDUGE, 0),
  22.120 --/* v9 */ fmovfcc ("fmovquge",	FM_QF, FCONDUGE, 0),
  22.121 --/* v9 */ fmovfcc ("fmovsuge",	FM_SF, FCONDUGE, 0),
  22.122 --/* v9 */ fmovfcc ("fmovdul",	FM_DF, FCONDUL, 0),
  22.123 --/* v9 */ fmovfcc ("fmovqul",	FM_QF, FCONDUL, 0),
  22.124 --/* v9 */ fmovfcc ("fmovsul",	FM_SF, FCONDUL, 0),
  22.125 --/* v9 */ fmovfcc ("fmovdule",	FM_DF, FCONDULE, 0),
  22.126 --/* v9 */ fmovfcc ("fmovqule",	FM_QF, FCONDULE, 0),
  22.127 --/* v9 */ fmovfcc ("fmovsule",	FM_SF, FCONDULE, 0),
  22.128 --/* v9 */ fmovicc ("fmovdvc",	FM_DF, CONDVC, 0),
  22.129 --/* v9 */ fmovicc ("fmovqvc",	FM_QF, CONDVC, 0),
  22.130 --/* v9 */ fmovicc ("fmovsvc",	FM_SF, CONDVC, 0),
  22.131 --/* v9 */ fmovicc ("fmovdvs",	FM_DF, CONDVS, 0),
  22.132 --/* v9 */ fmovicc ("fmovqvs",	FM_QF, CONDVS, 0),
  22.133 --/* v9 */ fmovicc ("fmovsvs",	FM_SF, CONDVS, 0),
  22.134 --/* v9 */ fmovcc  ("fmovdz",	FM_DF, CONDZ, FCONDZ, F_ALIAS),
  22.135 --/* v9 */ fmovcc  ("fmovqz",	FM_QF, CONDZ, FCONDZ, F_ALIAS),
  22.136 --/* v9 */ fmovcc  ("fmovsz",	FM_SF, CONDZ, FCONDZ, F_ALIAS),
  22.137 --
  22.138 -+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
  22.139 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z," args, flags | F_FLOAT, v9 }, \
  22.140 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
  22.141 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z," args, flags | F_FLOAT, v9 }, \
  22.142 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
  22.143 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
  22.144 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
  22.145 -+
  22.146 -+#define fmovicc(suffix, cond, flags) /* v9 */ \
  22.147 -+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags),		\
  22.148 -+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags),		\
  22.149 -+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
  22.150 -+
  22.151 -+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
  22.152 -+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags),		\
  22.153 -+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags),		\
  22.154 -+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
  22.155 -+
  22.156 -+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
  22.157 -+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags),	\
  22.158 -+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags),	\
  22.159 -+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
  22.160 -+
  22.161 -+/* v9 */ fmovcc  ("a", CONDA, FCONDA, 0),
  22.162 -+/* v9 */ fmovicc ("cc", CONDCC, 0),
  22.163 -+/* v9 */ fmovicc ("cs", CONDCS, 0),
  22.164 -+/* v9 */ fmovcc  ("e", CONDE, FCONDE, 0),
  22.165 -+/* v9 */ fmovcc  ("g", CONDG, FCONDG, 0),
  22.166 -+/* v9 */ fmovcc  ("ge", CONDGE, FCONDGE, 0),
  22.167 -+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
  22.168 -+/* v9 */ fmovicc ("gu", CONDGU, 0),
  22.169 -+/* v9 */ fmovcc  ("l", CONDL, FCONDL, 0),
  22.170 -+/* v9 */ fmovcc  ("le", CONDLE, FCONDLE, 0),
  22.171 -+/* v9 */ fmovicc ("leu", CONDLEU, 0),
  22.172 -+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
  22.173 -+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
  22.174 -+/* v9 */ fmovcc  ("n", CONDN, FCONDN, 0),
  22.175 -+/* v9 */ fmovcc  ("ne", CONDNE, FCONDNE, 0),
  22.176 -+/* v9 */ fmovicc ("neg", CONDNEG, 0),
  22.177 -+/* v9 */ fmovcc  ("nz", CONDNZ, FCONDNZ, F_ALIAS),
  22.178 -+/* v9 */ fmovfcc ("o", FCONDO, 0),
  22.179 -+/* v9 */ fmovicc ("pos", CONDPOS, 0),
  22.180 -+/* v9 */ fmovfcc ("u", FCONDU, 0),
  22.181 -+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
  22.182 -+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
  22.183 -+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
  22.184 -+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
  22.185 -+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
  22.186 -+/* v9 */ fmovicc ("vc", CONDVC, 0),
  22.187 -+/* v9 */ fmovicc ("vs", CONDVS, 0),
  22.188 -+/* v9 */ fmovcc  ("z", CONDZ, FCONDZ, F_ALIAS),
  22.189 -+
  22.190 -+#undef fmoviccx /* v9 */
  22.191 -+#undef fmovfccx /* v9 */
  22.192 -+#undef fmovccx /* v9 */
  22.193 - #undef fmovicc /* v9 */
  22.194 - #undef fmovfcc /* v9 */
  22.195 - #undef fmovcc /* v9 */
    23.1 --- a/patches/binutils/2.15.90.0.3/binutils-20040817-linkonce.patch	Tue Aug 14 19:32:22 2007 +0000
    23.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.3 @@ -1,118 +0,0 @@
    23.4 -From http://sources.redhat.com/ml/binutils/2004-08/msg00190.html
    23.5 -
    23.6 -Date: Tue, 17 Aug 2004 12:04:29 +0200
    23.7 -From: Jakub Jelinek <jakub at redhat dot com>
    23.8 -To: binutils at sources dot redhat dot com
    23.9 -Subject: [PATCH] Fix `defined in discarded section' errors when building ia64 gcc
   23.10 -Message-ID: <20040817100429.GL30497@sunsite.ms.mff.cuni.cz>
   23.11 -Reply-To: Jakub Jelinek <jakub at redhat dot com>
   23.12 -References: <20040817090201.GK30497@sunsite.ms.mff.cuni.cz>
   23.13 -In-Reply-To: <20040817090201 dot GK30497 at sunsite dot ms dot mff dot cuni dot cz>
   23.14 -
   23.15 -On Tue, Aug 17, 2004 at 11:02:01AM +0200, Jakub Jelinek wrote:
   23.16 -> Current gcc 3.4.x (at least gcc-3_4-rhl-branch) doesn't build with CVS
   23.17 -> binutils (nor 2.15.91.0.2).
   23.18 -> The problem is that libstdc++.so linking fails with:
   23.19 -> `.gnu.linkonce.t._ZNSdD2Ev' referenced in section `.gnu.linkonce.ia64unw._ZNSdD2Ev' of .libs/sstream-inst.o: defined in discarded section `.gnu.linkonce.t._ZNSdD2Ev' of .libs/sstream-inst.o
   23.20 -> The problem is that both io-inst.s and sstream-inst.s have
   23.21 -> .gnu.linkonce.t._ZNSdD2Ev definition, but because io-inst.cc
   23.22 -> also instantiates some templates sstream-inst.cc doesn't instantiate,
   23.23 -> the inliner can do a better job in io-inst.cc.
   23.24 -> The result is that _ZNSdD2Ev in io-inst.cc is a leaf routine, while
   23.25 -> it is not in sstream-inst.cc (in assembly,
   23.26 -> _ZNSdD2Ev in io-inst.s starts with .prologue and no .save directives,
   23.27 -> while _ZNSdD2Ev] in sstream-inst.s has .prologue 12, 35 and some
   23.28 -> .save directives.
   23.29 -> IA-64 ABI allows leaf routines to have no unwind section at all,
   23.30 -> which means .gnu.linkonce.ia64unw._ZNSdD2Ev is not created in
   23.31 -> io-inst.o at all and as .gnu.linkonce.t._ZNSdD2Ev comes first
   23.32 -> and wins, .gnu.linkonce.ia64unw._ZNSdD2Ev in sstream.o suddenly
   23.33 -> references a discarded section.
   23.34 -> 
   23.35 -> Not sure what should be done here, but certainly the compiler
   23.36 -> isn't at fault here, it is a binutils problem.
   23.37 -> One fix could be to create empty .gnu.linkonce.ia64unw.* section
   23.38 -> in assembler, another special case ia64 unwind sections in the linker.
   23.39 -
   23.40 -Here is a patch for the first possibility.
   23.41 -It certainly makes libstdc++.so to link and even the unwind info looks
   23.42 -good on brief skimming.
   23.43 -
   23.44 -2004-08-17  Jakub Jelinek  <jakub@redhat.com>
   23.45 -
   23.46 -	* config/tc-ia64.c (start_unwind_section): Add linkonce_empty
   23.47 -	argument, don't do anything if current section is not
   23.48 -	.gnu.linkonce.t.* and linkonce_empty is set.
   23.49 -	(generate_unwind_image, dot_endp): Adjust callers, call
   23.50 -	start_unwind_section (*, 1) if nothing will be put into the
   23.51 -	section.
   23.52 -
   23.53 ---- binutils/gas/config/tc-ia64.c.jj	2004-07-30 11:42:24.000000000 +0200
   23.54 -+++ binutils/gas/config/tc-ia64.c	2004-08-17 13:45:04.288173205 +0200
   23.55 -@@ -1,5 +1,6 @@
   23.56 - /* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
   23.57 --   Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   23.58 -+   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
   23.59 -+   Free Software Foundation, Inc.
   23.60 -    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
   23.61 - 
   23.62 -    This file is part of GAS, the GNU Assembler.
   23.63 -@@ -3297,7 +3298,7 @@ static char *special_linkonce_name[] =
   23.64 -   };
   23.65 - 
   23.66 - static void
   23.67 --start_unwind_section (const segT text_seg, int sec_index)
   23.68 -+start_unwind_section (const segT text_seg, int sec_index, int linkonce_empty)
   23.69 - {
   23.70 -   /*
   23.71 -     Use a slightly ugly scheme to derive the unwind section names from
   23.72 -@@ -3359,6 +3360,8 @@ start_unwind_section (const segT text_se
   23.73 -       prefix = special_linkonce_name [sec_index - SPECIAL_SECTION_UNWIND];
   23.74 -       suffix += sizeof (".gnu.linkonce.t.") - 1;
   23.75 -     }
   23.76 -+  else if (linkonce_empty)
   23.77 -+    return;
   23.78 - 
   23.79 -   prefix_len = strlen (prefix);
   23.80 -   suffix_len = strlen (suffix);
   23.81 -@@ -3444,7 +3447,7 @@ generate_unwind_image (const segT text_s
   23.82 -       expressionS exp;
   23.83 -       bfd_reloc_code_real_type reloc;
   23.84 - 
   23.85 --      start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO);
   23.86 -+      start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 0);
   23.87 - 
   23.88 -       /* Make sure the section has 4 byte alignment for ILP32 and
   23.89 - 	 8 byte alignment for LP64.  */
   23.90 -@@ -3485,6 +3488,8 @@ generate_unwind_image (const segT text_s
   23.91 - 	  unwind.personality_routine = 0;
   23.92 - 	}
   23.93 -     }
   23.94 -+  else
   23.95 -+    start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 1);
   23.96 - 
   23.97 -   free_saved_prologue_counts ();
   23.98 -   unwind.list = unwind.tail = unwind.current_entry = NULL;
   23.99 -@@ -4164,7 +4169,7 @@ dot_endp (dummy)
  23.100 -       subseg_set (md.last_text_seg, 0);
  23.101 -       unwind.proc_end = expr_build_dot ();
  23.102 - 
  23.103 --      start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND);
  23.104 -+      start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 0);
  23.105 - 
  23.106 -       /* Make sure that section has 4 byte alignment for ILP32 and
  23.107 -          8 byte alignment for LP64.  */
  23.108 -@@ -4204,6 +4209,9 @@ dot_endp (dummy)
  23.109 - 			    bytes_per_address);
  23.110 - 
  23.111 -     }
  23.112 -+  else
  23.113 -+    start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 1);
  23.114 -+
  23.115 -   subseg_set (saved_seg, saved_subseg);
  23.116 - 
  23.117 -   /* Parse names of main and alternate entry points and set symbol sizes.  */
  23.118 -
  23.119 -
  23.120 -	Jakub
  23.121 -
    24.1 --- a/patches/binutils/2.15.90.0.3/binutils-20040820-duplicates.patch	Tue Aug 14 19:32:22 2007 +0000
    24.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.3 @@ -1,74 +0,0 @@
    24.4 -See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
    24.5 -
    24.6 -Date: Fri, 20 Aug 2004 21:13:43 -0400
    24.7 -From: Daniel Jacobowitz <drow at false dot org>
    24.8 -To: binutils at sources dot redhat dot com
    24.9 -Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
   24.10 -Message-ID: <20040821011342.GA30319@nevyn.them.org>
   24.11 -Mail-Followup-To: binutils at sources dot redhat dot com
   24.12 -References: <20040818145518.GA9774@nevyn.them.org> <20040819055040.GA11820@lucon.org> <20040819080034.GE21716@bubble.modra.org> <20040820173240.GA17678@nevyn.them.org> <20040821003737.GB16016@bubble.modra.org>
   24.13 -In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
   24.14 -
   24.15 -On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
   24.16 -> On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
   24.17 -> > Thanks.  How's this?
   24.18 -> 
   24.19 -> As you might have guessed from my rather slack review of your previous
   24.20 -> patch, I trust you enough to give the OK without proper review.  But
   24.21 -> since you asked...  :)
   24.22 -
   24.23 -Checked in as so.
   24.24 -
   24.25 --- 
   24.26 -Daniel Jacobowitz
   24.27 -
   24.28 -2004-08-20  Daniel Jacobowitz  <dan@debian.org>
   24.29 -
   24.30 -	* elflink.c (_bfd_elf_section_already_linked): Handle
   24.31 -	SEC_LINK_DUPLICATES_SAME_CONTENTS.
   24.32 -
   24.33 -Index: elflink.c
   24.34 -===================================================================
   24.35 -RCS file: /big/fsf/rsync/src-cvs/src/bfd/elflink.c,v
   24.36 -retrieving revision 1.97
   24.37 -diff -u -p -r1.97 elflink.c
   24.38 ---- binutils/bfd/elflink.c	18 Aug 2004 02:45:42 -0000	1.97
   24.39 -+++ binutils/bfd/elflink.c	21 Aug 2004 00:59:08 -0000
   24.40 -@@ -9366,6 +9366,36 @@ _bfd_elf_section_already_linked (bfd *ab
   24.41 - 		  (_("%B: duplicate section `%A' has different size\n"),
   24.42 - 		   abfd, sec);
   24.43 - 	      break;
   24.44 -+
   24.45 -+	    case SEC_LINK_DUPLICATES_SAME_CONTENTS:
   24.46 -+	      if (sec->size != l->sec->size)
   24.47 -+		(*_bfd_error_handler)
   24.48 -+		  (_("%B: duplicate section `%A' has different size\n"),
   24.49 -+		   abfd, sec);
   24.50 -+	      else if (sec->size != 0)
   24.51 -+		{
   24.52 -+		  bfd_byte *sec_contents, *l_sec_contents;
   24.53 -+
   24.54 -+		  if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
   24.55 -+		    (*_bfd_error_handler)
   24.56 -+		      (_("%B: warning: could not read contents of section `%A'\n"),
   24.57 -+		       abfd, sec);
   24.58 -+		  else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
   24.59 -+							&l_sec_contents))
   24.60 -+		    (*_bfd_error_handler)
   24.61 -+		      (_("%B: warning: could not read contents of section `%A'\n"),
   24.62 -+		       l->sec->owner, l->sec);
   24.63 -+		  else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
   24.64 -+		    (*_bfd_error_handler)
   24.65 -+		      (_("%B: warning: duplicate section `%A' has different contents\n"),
   24.66 -+		       abfd, sec);
   24.67 -+
   24.68 -+		  if (sec_contents)
   24.69 -+		    free (sec_contents);
   24.70 -+		  if (l_sec_contents)
   24.71 -+		    free (l_sec_contents);
   24.72 -+		}
   24.73 -+	      break;
   24.74 - 	    }
   24.75 - 
   24.76 - 	  /* Set the output_section field so that lang_add_section
   24.77 -
    25.1 --- a/patches/binutils/2.15.90.0.3/binutils-skip-comments.patch	Tue Aug 14 19:32:22 2007 +0000
    25.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.3 @@ -1,101 +0,0 @@
    25.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
    25.5 -Fixes
    25.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,' 
    25.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
    25.8 -
    25.9 -Paths adjusted to match crosstool's patcher.
   25.10 -
   25.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
   25.12 -From: Andreas Schwab <schwab at suse dot de>
   25.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
   25.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
   25.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
   25.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
   25.17 -
   25.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
   25.19 -
   25.20 -> Index: read.c
   25.21 -> ===================================================================
   25.22 -> RCS file: /cvs/src/src/gas/read.c,v
   25.23 -> retrieving revision 1.76
   25.24 -> diff -c -3 -p -r1.76 read.c
   25.25 -> *** read.c	12 Mar 2004 17:48:12 -0000	1.76
   25.26 -> --- read.c	18 Mar 2004 09:56:05 -0000
   25.27 -> *************** read_a_source_file (char *name)
   25.28 -> *** 1053,1059 ****
   25.29 ->   #endif
   25.30 ->   	  input_line_pointer--;
   25.31 ->   	  /* Report unknown char as ignored.  */
   25.32 -> ! 	  ignore_rest_of_line ();
   25.33 ->   	}
   25.34 ->   
   25.35 ->   #ifdef md_after_pass_hook
   25.36 -> --- 1053,1059 ----
   25.37 ->   #endif
   25.38 ->   	  input_line_pointer--;
   25.39 ->   	  /* Report unknown char as ignored.  */
   25.40 -> ! 	  demand_empty_rest_of_line ();
   25.41 ->   	}
   25.42 ->   
   25.43 ->   #ifdef md_after_pass_hook
   25.44 -
   25.45 -This means that the unknown character is no longer ignored, despite the
   25.46 -comment.  As a side effect a line starting with a line comment character
   25.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
   25.48 -warning, breaking builds of glibc on m68k-linux.  Earlier in
   25.49 -read_a_source_file where #APP is handled there is another comment that
   25.50 -claims that unknown comments are ignored, when in fact they aren't (only
   25.51 -the initial line comment character is skipped).
   25.52 -
   25.53 -Note that the presence of #APP will mess up the line counters, but
   25.54 -that appears to be difficult to fix.
   25.55 -
   25.56 -Andreas.
   25.57 -
   25.58 -2004-04-23  Andreas Schwab  <schwab@suse.de>
   25.59 -
   25.60 -	* read.c (read_a_source_file): Ignore unknown text after line
   25.61 -	comment character.  Fix misleading comment.
   25.62 -
   25.63 ---- binutils/gas/read.c.~1.78.~	2004-04-23 08:58:23.000000000 +0200
   25.64 -+++ binutils/gas/read.c	2004-04-23 21:49:01.000000000 +0200
   25.65 -@@ -1,6 +1,6 @@
   25.66 - /* read.c - read a source file -
   25.67 -    Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
   25.68 --   1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   25.69 -+   1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
   25.70 - 
   25.71 - This file is part of GAS, the GNU Assembler.
   25.72 - 
   25.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
   25.74 - 	      unsigned int new_length;
   25.75 - 	      char *tmp_buf = 0;
   25.76 - 
   25.77 --	      bump_line_counters ();
   25.78 - 	      s = input_line_pointer;
   25.79 - 	      if (strncmp (s, "APP\n", 4))
   25.80 --		continue;	/* We ignore it */
   25.81 -+		{
   25.82 -+		  /* We ignore it */
   25.83 -+		  ignore_rest_of_line ();
   25.84 -+		  continue;
   25.85 -+		}
   25.86 -+	      bump_line_counters ();
   25.87 - 	      s += 4;
   25.88 - 
   25.89 - 	      sb_new (&sbuf);
   25.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
   25.91 - 	    continue;
   25.92 - #endif
   25.93 - 	  input_line_pointer--;
   25.94 --	  /* Report unknown char as ignored.  */
   25.95 -+	  /* Report unknown char as error.  */
   25.96 - 	  demand_empty_rest_of_line ();
   25.97 - 	}
   25.98 - 
   25.99 -
  25.100 --- 
  25.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
  25.102 -SuSE Linux AG, Maxfeldstra&#xC3;e 5, 90409 N&#xC3;rnberg, Germany
  25.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
  25.104 -"And now for something completely different."
    26.1 --- a/patches/binutils/2.15.90.0.3/gccpr15247-fix.patch	Tue Aug 14 19:32:22 2007 +0000
    26.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.3 @@ -1,192 +0,0 @@
    26.4 -See
    26.5 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
    26.6 -
    26.7 -Fixes spurious error
    26.8 -/tmp/ccvNi4ou.s: Assembler messages:
    26.9 -/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
   26.10 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/math/dosincos.o] Error 1
   26.11 -
   26.12 -when compiling glibc's dosincos.c with gcc-3.4.0
   26.13 -
   26.14 -===================================================================
   26.15 -RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
   26.16 -retrieving revision 1.9
   26.17 -retrieving revision 1.10
   26.18 -diff -u -r1.9 -r1.10
   26.19 ---- src/opcodes/sparc-opc.c	2004/01/18 23:46:32	1.9
   26.20 -+++ src/opcodes/sparc-opc.c	2004/04/20 10:23:51	1.10
   26.21 -@@ -1273,110 +1273,72 @@
   26.22 - #define FM_DF 2		/* v9 */
   26.23 - #define FM_QF 3		/* v9 */
   26.24 - 
   26.25 --#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
   26.26 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z,f,g", flags, v9 }, \
   26.27 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z,f,g", flags, v9 }
   26.28 --
   26.29 --#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
   26.30 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
   26.31 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
   26.32 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
   26.33 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
   26.34 -+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
   26.35 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z," args, flags, v9 }, \
   26.36 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z," args, flags, v9 }
   26.37 -+
   26.38 -+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
   26.39 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
   26.40 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
   26.41 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
   26.42 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
   26.43 - 
   26.44 - /* FIXME: use fmovicc/fmovfcc? */ /* v9 */
   26.45 --#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
   26.46 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z,f,g", flags | F_FLOAT, v9 }, \
   26.47 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \
   26.48 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z,f,g", flags | F_FLOAT, v9 }, \
   26.49 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \
   26.50 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \
   26.51 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 }
   26.52 --
   26.53 --/* v9 */ fmovcc  ("fmovda",	FM_DF, CONDA, FCONDA, 0),
   26.54 --/* v9 */ fmovcc  ("fmovqa",	FM_QF, CONDA, FCONDA, 0),
   26.55 --/* v9 */ fmovcc  ("fmovsa",	FM_SF, CONDA, FCONDA, 0),
   26.56 --/* v9 */ fmovicc ("fmovdcc",	FM_DF, CONDCC, 0),
   26.57 --/* v9 */ fmovicc ("fmovqcc",	FM_QF, CONDCC, 0),
   26.58 --/* v9 */ fmovicc ("fmovscc",	FM_SF, CONDCC, 0),
   26.59 --/* v9 */ fmovicc ("fmovdcs",	FM_DF, CONDCS, 0),
   26.60 --/* v9 */ fmovicc ("fmovqcs",	FM_QF, CONDCS, 0),
   26.61 --/* v9 */ fmovicc ("fmovscs",	FM_SF, CONDCS, 0),
   26.62 --/* v9 */ fmovcc  ("fmovde",	FM_DF, CONDE, FCONDE, 0),
   26.63 --/* v9 */ fmovcc  ("fmovqe",	FM_QF, CONDE, FCONDE, 0),
   26.64 --/* v9 */ fmovcc  ("fmovse",	FM_SF, CONDE, FCONDE, 0),
   26.65 --/* v9 */ fmovcc  ("fmovdg",	FM_DF, CONDG, FCONDG, 0),
   26.66 --/* v9 */ fmovcc  ("fmovqg",	FM_QF, CONDG, FCONDG, 0),
   26.67 --/* v9 */ fmovcc  ("fmovsg",	FM_SF, CONDG, FCONDG, 0),
   26.68 --/* v9 */ fmovcc  ("fmovdge",	FM_DF, CONDGE, FCONDGE, 0),
   26.69 --/* v9 */ fmovcc  ("fmovqge",	FM_QF, CONDGE, FCONDGE, 0),
   26.70 --/* v9 */ fmovcc  ("fmovsge",	FM_SF, CONDGE, FCONDGE, 0),
   26.71 --/* v9 */ fmovicc ("fmovdgeu",	FM_DF, CONDGEU, F_ALIAS),
   26.72 --/* v9 */ fmovicc ("fmovqgeu",	FM_QF, CONDGEU, F_ALIAS),
   26.73 --/* v9 */ fmovicc ("fmovsgeu",	FM_SF, CONDGEU, F_ALIAS),
   26.74 --/* v9 */ fmovicc ("fmovdgu",	FM_DF, CONDGU, 0),
   26.75 --/* v9 */ fmovicc ("fmovqgu",	FM_QF, CONDGU, 0),
   26.76 --/* v9 */ fmovicc ("fmovsgu",	FM_SF, CONDGU, 0),
   26.77 --/* v9 */ fmovcc  ("fmovdl",	FM_DF, CONDL, FCONDL, 0),
   26.78 --/* v9 */ fmovcc  ("fmovql",	FM_QF, CONDL, FCONDL, 0),
   26.79 --/* v9 */ fmovcc  ("fmovsl",	FM_SF, CONDL, FCONDL, 0),
   26.80 --/* v9 */ fmovcc  ("fmovdle",	FM_DF, CONDLE, FCONDLE, 0),
   26.81 --/* v9 */ fmovcc  ("fmovqle",	FM_QF, CONDLE, FCONDLE, 0),
   26.82 --/* v9 */ fmovcc  ("fmovsle",	FM_SF, CONDLE, FCONDLE, 0),
   26.83 --/* v9 */ fmovicc ("fmovdleu",	FM_DF, CONDLEU, 0),
   26.84 --/* v9 */ fmovicc ("fmovqleu",	FM_QF, CONDLEU, 0),
   26.85 --/* v9 */ fmovicc ("fmovsleu",	FM_SF, CONDLEU, 0),
   26.86 --/* v9 */ fmovfcc ("fmovdlg",	FM_DF, FCONDLG, 0),
   26.87 --/* v9 */ fmovfcc ("fmovqlg",	FM_QF, FCONDLG, 0),
   26.88 --/* v9 */ fmovfcc ("fmovslg",	FM_SF, FCONDLG, 0),
   26.89 --/* v9 */ fmovicc ("fmovdlu",	FM_DF, CONDLU, F_ALIAS),
   26.90 --/* v9 */ fmovicc ("fmovqlu",	FM_QF, CONDLU, F_ALIAS),
   26.91 --/* v9 */ fmovicc ("fmovslu",	FM_SF, CONDLU, F_ALIAS),
   26.92 --/* v9 */ fmovcc  ("fmovdn",	FM_DF, CONDN, FCONDN, 0),
   26.93 --/* v9 */ fmovcc  ("fmovqn",	FM_QF, CONDN, FCONDN, 0),
   26.94 --/* v9 */ fmovcc  ("fmovsn",	FM_SF, CONDN, FCONDN, 0),
   26.95 --/* v9 */ fmovcc  ("fmovdne",	FM_DF, CONDNE, FCONDNE, 0),
   26.96 --/* v9 */ fmovcc  ("fmovqne",	FM_QF, CONDNE, FCONDNE, 0),
   26.97 --/* v9 */ fmovcc  ("fmovsne",	FM_SF, CONDNE, FCONDNE, 0),
   26.98 --/* v9 */ fmovicc ("fmovdneg",	FM_DF, CONDNEG, 0),
   26.99 --/* v9 */ fmovicc ("fmovqneg",	FM_QF, CONDNEG, 0),
  26.100 --/* v9 */ fmovicc ("fmovsneg",	FM_SF, CONDNEG, 0),
  26.101 --/* v9 */ fmovcc  ("fmovdnz",	FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
  26.102 --/* v9 */ fmovcc  ("fmovqnz",	FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
  26.103 --/* v9 */ fmovcc  ("fmovsnz",	FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
  26.104 --/* v9 */ fmovfcc ("fmovdo",	FM_DF, FCONDO, 0),
  26.105 --/* v9 */ fmovfcc ("fmovqo",	FM_QF, FCONDO, 0),
  26.106 --/* v9 */ fmovfcc ("fmovso",	FM_SF, FCONDO, 0),
  26.107 --/* v9 */ fmovicc ("fmovdpos",	FM_DF, CONDPOS, 0),
  26.108 --/* v9 */ fmovicc ("fmovqpos",	FM_QF, CONDPOS, 0),
  26.109 --/* v9 */ fmovicc ("fmovspos",	FM_SF, CONDPOS, 0),
  26.110 --/* v9 */ fmovfcc ("fmovdu",	FM_DF, FCONDU, 0),
  26.111 --/* v9 */ fmovfcc ("fmovqu",	FM_QF, FCONDU, 0),
  26.112 --/* v9 */ fmovfcc ("fmovsu",	FM_SF, FCONDU, 0),
  26.113 --/* v9 */ fmovfcc ("fmovdue",	FM_DF, FCONDUE, 0),
  26.114 --/* v9 */ fmovfcc ("fmovque",	FM_QF, FCONDUE, 0),
  26.115 --/* v9 */ fmovfcc ("fmovsue",	FM_SF, FCONDUE, 0),
  26.116 --/* v9 */ fmovfcc ("fmovdug",	FM_DF, FCONDUG, 0),
  26.117 --/* v9 */ fmovfcc ("fmovqug",	FM_QF, FCONDUG, 0),
  26.118 --/* v9 */ fmovfcc ("fmovsug",	FM_SF, FCONDUG, 0),
  26.119 --/* v9 */ fmovfcc ("fmovduge",	FM_DF, FCONDUGE, 0),
  26.120 --/* v9 */ fmovfcc ("fmovquge",	FM_QF, FCONDUGE, 0),
  26.121 --/* v9 */ fmovfcc ("fmovsuge",	FM_SF, FCONDUGE, 0),
  26.122 --/* v9 */ fmovfcc ("fmovdul",	FM_DF, FCONDUL, 0),
  26.123 --/* v9 */ fmovfcc ("fmovqul",	FM_QF, FCONDUL, 0),
  26.124 --/* v9 */ fmovfcc ("fmovsul",	FM_SF, FCONDUL, 0),
  26.125 --/* v9 */ fmovfcc ("fmovdule",	FM_DF, FCONDULE, 0),
  26.126 --/* v9 */ fmovfcc ("fmovqule",	FM_QF, FCONDULE, 0),
  26.127 --/* v9 */ fmovfcc ("fmovsule",	FM_SF, FCONDULE, 0),
  26.128 --/* v9 */ fmovicc ("fmovdvc",	FM_DF, CONDVC, 0),
  26.129 --/* v9 */ fmovicc ("fmovqvc",	FM_QF, CONDVC, 0),
  26.130 --/* v9 */ fmovicc ("fmovsvc",	FM_SF, CONDVC, 0),
  26.131 --/* v9 */ fmovicc ("fmovdvs",	FM_DF, CONDVS, 0),
  26.132 --/* v9 */ fmovicc ("fmovqvs",	FM_QF, CONDVS, 0),
  26.133 --/* v9 */ fmovicc ("fmovsvs",	FM_SF, CONDVS, 0),
  26.134 --/* v9 */ fmovcc  ("fmovdz",	FM_DF, CONDZ, FCONDZ, F_ALIAS),
  26.135 --/* v9 */ fmovcc  ("fmovqz",	FM_QF, CONDZ, FCONDZ, F_ALIAS),
  26.136 --/* v9 */ fmovcc  ("fmovsz",	FM_SF, CONDZ, FCONDZ, F_ALIAS),
  26.137 --
  26.138 -+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
  26.139 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z," args, flags | F_FLOAT, v9 }, \
  26.140 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
  26.141 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z," args, flags | F_FLOAT, v9 }, \
  26.142 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
  26.143 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
  26.144 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
  26.145 -+
  26.146 -+#define fmovicc(suffix, cond, flags) /* v9 */ \
  26.147 -+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags),		\
  26.148 -+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags),		\
  26.149 -+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
  26.150 -+
  26.151 -+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
  26.152 -+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags),		\
  26.153 -+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags),		\
  26.154 -+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
  26.155 -+
  26.156 -+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
  26.157 -+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags),	\
  26.158 -+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags),	\
  26.159 -+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
  26.160 -+
  26.161 -+/* v9 */ fmovcc  ("a", CONDA, FCONDA, 0),
  26.162 -+/* v9 */ fmovicc ("cc", CONDCC, 0),
  26.163 -+/* v9 */ fmovicc ("cs", CONDCS, 0),
  26.164 -+/* v9 */ fmovcc  ("e", CONDE, FCONDE, 0),
  26.165 -+/* v9 */ fmovcc  ("g", CONDG, FCONDG, 0),
  26.166 -+/* v9 */ fmovcc  ("ge", CONDGE, FCONDGE, 0),
  26.167 -+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
  26.168 -+/* v9 */ fmovicc ("gu", CONDGU, 0),
  26.169 -+/* v9 */ fmovcc  ("l", CONDL, FCONDL, 0),
  26.170 -+/* v9 */ fmovcc  ("le", CONDLE, FCONDLE, 0),
  26.171 -+/* v9 */ fmovicc ("leu", CONDLEU, 0),
  26.172 -+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
  26.173 -+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
  26.174 -+/* v9 */ fmovcc  ("n", CONDN, FCONDN, 0),
  26.175 -+/* v9 */ fmovcc  ("ne", CONDNE, FCONDNE, 0),
  26.176 -+/* v9 */ fmovicc ("neg", CONDNEG, 0),
  26.177 -+/* v9 */ fmovcc  ("nz", CONDNZ, FCONDNZ, F_ALIAS),
  26.178 -+/* v9 */ fmovfcc ("o", FCONDO, 0),
  26.179 -+/* v9 */ fmovicc ("pos", CONDPOS, 0),
  26.180 -+/* v9 */ fmovfcc ("u", FCONDU, 0),
  26.181 -+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
  26.182 -+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
  26.183 -+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
  26.184 -+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
  26.185 -+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
  26.186 -+/* v9 */ fmovicc ("vc", CONDVC, 0),
  26.187 -+/* v9 */ fmovicc ("vs", CONDVS, 0),
  26.188 -+/* v9 */ fmovcc  ("z", CONDZ, FCONDZ, F_ALIAS),
  26.189 -+
  26.190 -+#undef fmoviccx /* v9 */
  26.191 -+#undef fmovfccx /* v9 */
  26.192 -+#undef fmovccx /* v9 */
  26.193 - #undef fmovicc /* v9 */
  26.194 - #undef fmovfcc /* v9 */
  26.195 - #undef fmovcc /* v9 */
    27.1 --- a/patches/binutils/2.15.91.0.2/binutils-20040817-linkonce.patch	Tue Aug 14 19:32:22 2007 +0000
    27.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.3 @@ -1,118 +0,0 @@
    27.4 -From http://sources.redhat.com/ml/binutils/2004-08/msg00190.html
    27.5 -
    27.6 -Date: Tue, 17 Aug 2004 12:04:29 +0200
    27.7 -From: Jakub Jelinek <jakub at redhat dot com>
    27.8 -To: binutils at sources dot redhat dot com
    27.9 -Subject: [PATCH] Fix `defined in discarded section' errors when building ia64 gcc
   27.10 -Message-ID: <20040817100429.GL30497@sunsite.ms.mff.cuni.cz>
   27.11 -Reply-To: Jakub Jelinek <jakub at redhat dot com>
   27.12 -References: <20040817090201.GK30497@sunsite.ms.mff.cuni.cz>
   27.13 -In-Reply-To: <20040817090201 dot GK30497 at sunsite dot ms dot mff dot cuni dot cz>
   27.14 -
   27.15 -On Tue, Aug 17, 2004 at 11:02:01AM +0200, Jakub Jelinek wrote:
   27.16 -> Current gcc 3.4.x (at least gcc-3_4-rhl-branch) doesn't build with CVS
   27.17 -> binutils (nor 2.15.91.0.2).
   27.18 -> The problem is that libstdc++.so linking fails with:
   27.19 -> `.gnu.linkonce.t._ZNSdD2Ev' referenced in section `.gnu.linkonce.ia64unw._ZNSdD2Ev' of .libs/sstream-inst.o: defined in discarded section `.gnu.linkonce.t._ZNSdD2Ev' of .libs/sstream-inst.o
   27.20 -> The problem is that both io-inst.s and sstream-inst.s have
   27.21 -> .gnu.linkonce.t._ZNSdD2Ev definition, but because io-inst.cc
   27.22 -> also instantiates some templates sstream-inst.cc doesn't instantiate,
   27.23 -> the inliner can do a better job in io-inst.cc.
   27.24 -> The result is that _ZNSdD2Ev in io-inst.cc is a leaf routine, while
   27.25 -> it is not in sstream-inst.cc (in assembly,
   27.26 -> _ZNSdD2Ev in io-inst.s starts with .prologue and no .save directives,
   27.27 -> while _ZNSdD2Ev] in sstream-inst.s has .prologue 12, 35 and some
   27.28 -> .save directives.
   27.29 -> IA-64 ABI allows leaf routines to have no unwind section at all,
   27.30 -> which means .gnu.linkonce.ia64unw._ZNSdD2Ev is not created in
   27.31 -> io-inst.o at all and as .gnu.linkonce.t._ZNSdD2Ev comes first
   27.32 -> and wins, .gnu.linkonce.ia64unw._ZNSdD2Ev in sstream.o suddenly
   27.33 -> references a discarded section.
   27.34 -> 
   27.35 -> Not sure what should be done here, but certainly the compiler
   27.36 -> isn't at fault here, it is a binutils problem.
   27.37 -> One fix could be to create empty .gnu.linkonce.ia64unw.* section
   27.38 -> in assembler, another special case ia64 unwind sections in the linker.
   27.39 -
   27.40 -Here is a patch for the first possibility.
   27.41 -It certainly makes libstdc++.so to link and even the unwind info looks
   27.42 -good on brief skimming.
   27.43 -
   27.44 -2004-08-17  Jakub Jelinek  <jakub@redhat.com>
   27.45 -
   27.46 -	* config/tc-ia64.c (start_unwind_section): Add linkonce_empty
   27.47 -	argument, don't do anything if current section is not
   27.48 -	.gnu.linkonce.t.* and linkonce_empty is set.
   27.49 -	(generate_unwind_image, dot_endp): Adjust callers, call
   27.50 -	start_unwind_section (*, 1) if nothing will be put into the
   27.51 -	section.
   27.52 -
   27.53 ---- binutils/gas/config/tc-ia64.c.jj	2004-07-30 11:42:24.000000000 +0200
   27.54 -+++ binutils/gas/config/tc-ia64.c	2004-08-17 13:45:04.288173205 +0200
   27.55 -@@ -1,5 +1,6 @@
   27.56 - /* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture.
   27.57 --   Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   27.58 -+   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004
   27.59 -+   Free Software Foundation, Inc.
   27.60 -    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
   27.61 - 
   27.62 -    This file is part of GAS, the GNU Assembler.
   27.63 -@@ -3297,7 +3298,7 @@ static char *special_linkonce_name[] =
   27.64 -   };
   27.65 - 
   27.66 - static void
   27.67 --start_unwind_section (const segT text_seg, int sec_index)
   27.68 -+start_unwind_section (const segT text_seg, int sec_index, int linkonce_empty)
   27.69 - {
   27.70 -   /*
   27.71 -     Use a slightly ugly scheme to derive the unwind section names from
   27.72 -@@ -3359,6 +3360,8 @@ start_unwind_section (const segT text_se
   27.73 -       prefix = special_linkonce_name [sec_index - SPECIAL_SECTION_UNWIND];
   27.74 -       suffix += sizeof (".gnu.linkonce.t.") - 1;
   27.75 -     }
   27.76 -+  else if (linkonce_empty)
   27.77 -+    return;
   27.78 - 
   27.79 -   prefix_len = strlen (prefix);
   27.80 -   suffix_len = strlen (suffix);
   27.81 -@@ -3444,7 +3447,7 @@ generate_unwind_image (const segT text_s
   27.82 -       expressionS exp;
   27.83 -       bfd_reloc_code_real_type reloc;
   27.84 - 
   27.85 --      start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO);
   27.86 -+      start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 0);
   27.87 - 
   27.88 -       /* Make sure the section has 4 byte alignment for ILP32 and
   27.89 - 	 8 byte alignment for LP64.  */
   27.90 -@@ -3485,6 +3488,8 @@ generate_unwind_image (const segT text_s
   27.91 - 	  unwind.personality_routine = 0;
   27.92 - 	}
   27.93 -     }
   27.94 -+  else
   27.95 -+    start_unwind_section (text_seg, SPECIAL_SECTION_UNWIND_INFO, 1);
   27.96 - 
   27.97 -   free_saved_prologue_counts ();
   27.98 -   unwind.list = unwind.tail = unwind.current_entry = NULL;
   27.99 -@@ -4164,7 +4169,7 @@ dot_endp (dummy)
  27.100 -       subseg_set (md.last_text_seg, 0);
  27.101 -       unwind.proc_end = expr_build_dot ();
  27.102 - 
  27.103 --      start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND);
  27.104 -+      start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 0);
  27.105 - 
  27.106 -       /* Make sure that section has 4 byte alignment for ILP32 and
  27.107 -          8 byte alignment for LP64.  */
  27.108 -@@ -4204,6 +4209,9 @@ dot_endp (dummy)
  27.109 - 			    bytes_per_address);
  27.110 - 
  27.111 -     }
  27.112 -+  else
  27.113 -+    start_unwind_section (saved_seg, SPECIAL_SECTION_UNWIND, 1);
  27.114 -+
  27.115 -   subseg_set (saved_seg, saved_subseg);
  27.116 - 
  27.117 -   /* Parse names of main and alternate entry points and set symbol sizes.  */
  27.118 -
  27.119 -
  27.120 -	Jakub
  27.121 -
    28.1 --- a/patches/binutils/2.15.91.0.2/binutils-dup-sections.patch	Tue Aug 14 19:32:22 2007 +0000
    28.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.3 @@ -1,68 +0,0 @@
    28.4 -See http://sources.redhat.com/ml/binutils/2004-08/msg00256.html
    28.5 -
    28.6 -Date: Fri, 20 Aug 2004 21:13:43 -0400
    28.7 -From: Daniel Jacobowitz <drow at false dot org>
    28.8 -To: binutils at sources dot redhat dot com
    28.9 -Subject: Re: Handle SEC_LINK_DUPLICATES_SAME_CONTENTS for arm-linux
   28.10 -Message-ID: <20040821011342.GA30319@nevyn.them.org>
   28.11 -Mail-Followup-To: binutils at sources dot redhat dot com
   28.12 -References: <20040818145518.GA9774@nevyn.them.org> <20040819055040.GA11820@lucon.org> <20040819080034.GE21716@bubble.modra.org> <20040820173240.GA17678@nevyn.them.org> <20040821003737.GB16016@bubble.modra.org>
   28.13 -In-Reply-To: <20040821003737 dot GB16016 at bubble dot modra dot org>
   28.14 -
   28.15 -On Sat, Aug 21, 2004 at 10:07:38AM +0930, Alan Modra wrote:
   28.16 -> On Fri, Aug 20, 2004 at 01:32:40PM -0400, Daniel Jacobowitz wrote:
   28.17 -> > Thanks.  How's this?
   28.18 -> 
   28.19 -> As you might have guessed from my rather slack review of your previous
   28.20 -> patch, I trust you enough to give the OK without proper review.  But
   28.21 -> since you asked...  :)
   28.22 -
   28.23 -Checked in as so.
   28.24 -
   28.25 --- 
   28.26 -Daniel Jacobowitz
   28.27 -
   28.28 -[ rediffed against binutils-2.15.91.0.2, with some elbow grease ]
   28.29 -
   28.30 -2004-08-20  Daniel Jacobowitz  <dan@debian.org>
   28.31 -
   28.32 -	* elflink.c (_bfd_elf_section_already_linked): Handle
   28.33 -	SEC_LINK_DUPLICATES_SAME_CONTENTS.
   28.34 ---- binutils-2.15.91.0.2/bfd/elflink.c.old	2004-07-27 21:36:08.000000000 -0700
   28.35 -+++ binutils-2.15.91.0.2/bfd/elflink.c	2004-08-26 06:38:07.000000000 -0700
   28.36 -@@ -9359,6 +9359,35 @@
   28.37 - 		  (_("%s: %s: warning: duplicate section `%s' has different size\n"),
   28.38 - 		   bfd_archive_filename (abfd), name);
   28.39 - 	      break;
   28.40 -+	    case SEC_LINK_DUPLICATES_SAME_CONTENTS:
   28.41 -+	      if (sec->size != l->sec->size)
   28.42 -+		(*_bfd_error_handler)
   28.43 -+		  (_("%B: duplicate section `%A' has different size\n"),
   28.44 -+		   bfd_archive_filename (abfd), sec);
   28.45 -+	      else if (sec->size != 0)
   28.46 -+		{
   28.47 -+		  bfd_byte *sec_contents, *l_sec_contents;
   28.48 -+
   28.49 -+		  if (!bfd_malloc_and_get_section (abfd, sec, &sec_contents))
   28.50 -+		    (*_bfd_error_handler)
   28.51 -+		      (_("%B: warning: could not read contents of section `%A'\n"),
   28.52 -+		       bfd_archive_filename (abfd), sec);
   28.53 -+		  else if (!bfd_malloc_and_get_section (l->sec->owner, l->sec,
   28.54 -+							&l_sec_contents))
   28.55 -+		    (*_bfd_error_handler)
   28.56 -+		      (_("%B: warning: could not read contents of section `%A'\n"),
   28.57 -+		       bfd_archive_filename(l->sec->owner), l->sec);
   28.58 -+		  else if (memcmp (sec_contents, l_sec_contents, sec->size) != 0)
   28.59 -+		    (*_bfd_error_handler)
   28.60 -+		      (_("%B: warning: duplicate section `%A' has different contents\n"),
   28.61 -+		       bfd_archive_filename (abfd), sec);
   28.62 -+
   28.63 -+		  if (sec_contents)
   28.64 -+		    free (sec_contents);
   28.65 -+		  if (l_sec_contents)
   28.66 -+		    free (l_sec_contents);
   28.67 -+		}
   28.68 -+	      break;
   28.69 - 	    }
   28.70 - 
   28.71 - 	  /* Set the output_section field so that lang_add_section
    29.1 --- a/patches/binutils/2.15.91.0.2/binutils-skip-comments.patch	Tue Aug 14 19:32:22 2007 +0000
    29.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.3 @@ -1,101 +0,0 @@
    29.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
    29.5 -Fixes
    29.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,' 
    29.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
    29.8 -
    29.9 -Paths adjusted to match crosstool's patcher.
   29.10 -
   29.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
   29.12 -From: Andreas Schwab <schwab at suse dot de>
   29.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
   29.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
   29.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
   29.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
   29.17 -
   29.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
   29.19 -
   29.20 -> Index: read.c
   29.21 -> ===================================================================
   29.22 -> RCS file: /cvs/src/src/gas/read.c,v
   29.23 -> retrieving revision 1.76
   29.24 -> diff -c -3 -p -r1.76 read.c
   29.25 -> *** read.c	12 Mar 2004 17:48:12 -0000	1.76
   29.26 -> --- read.c	18 Mar 2004 09:56:05 -0000
   29.27 -> *************** read_a_source_file (char *name)
   29.28 -> *** 1053,1059 ****
   29.29 ->   #endif
   29.30 ->   	  input_line_pointer--;
   29.31 ->   	  /* Report unknown char as ignored.  */
   29.32 -> ! 	  ignore_rest_of_line ();
   29.33 ->   	}
   29.34 ->   
   29.35 ->   #ifdef md_after_pass_hook
   29.36 -> --- 1053,1059 ----
   29.37 ->   #endif
   29.38 ->   	  input_line_pointer--;
   29.39 ->   	  /* Report unknown char as ignored.  */
   29.40 -> ! 	  demand_empty_rest_of_line ();
   29.41 ->   	}
   29.42 ->   
   29.43 ->   #ifdef md_after_pass_hook
   29.44 -
   29.45 -This means that the unknown character is no longer ignored, despite the
   29.46 -comment.  As a side effect a line starting with a line comment character
   29.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
   29.48 -warning, breaking builds of glibc on m68k-linux.  Earlier in
   29.49 -read_a_source_file where #APP is handled there is another comment that
   29.50 -claims that unknown comments are ignored, when in fact they aren't (only
   29.51 -the initial line comment character is skipped).
   29.52 -
   29.53 -Note that the presence of #APP will mess up the line counters, but
   29.54 -that appears to be difficult to fix.
   29.55 -
   29.56 -Andreas.
   29.57 -
   29.58 -2004-04-23  Andreas Schwab  <schwab@suse.de>
   29.59 -
   29.60 -	* read.c (read_a_source_file): Ignore unknown text after line
   29.61 -	comment character.  Fix misleading comment.
   29.62 -
   29.63 ---- binutils/gas/read.c.~1.78.~	2004-04-23 08:58:23.000000000 +0200
   29.64 -+++ binutils/gas/read.c	2004-04-23 21:49:01.000000000 +0200
   29.65 -@@ -1,6 +1,6 @@
   29.66 - /* read.c - read a source file -
   29.67 -    Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
   29.68 --   1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   29.69 -+   1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
   29.70 - 
   29.71 - This file is part of GAS, the GNU Assembler.
   29.72 - 
   29.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
   29.74 - 	      unsigned int new_length;
   29.75 - 	      char *tmp_buf = 0;
   29.76 - 
   29.77 --	      bump_line_counters ();
   29.78 - 	      s = input_line_pointer;
   29.79 - 	      if (strncmp (s, "APP\n", 4))
   29.80 --		continue;	/* We ignore it */
   29.81 -+		{
   29.82 -+		  /* We ignore it */
   29.83 -+		  ignore_rest_of_line ();
   29.84 -+		  continue;
   29.85 -+		}
   29.86 -+	      bump_line_counters ();
   29.87 - 	      s += 4;
   29.88 - 
   29.89 - 	      sb_new (&sbuf);
   29.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
   29.91 - 	    continue;
   29.92 - #endif
   29.93 - 	  input_line_pointer--;
   29.94 --	  /* Report unknown char as ignored.  */
   29.95 -+	  /* Report unknown char as error.  */
   29.96 - 	  demand_empty_rest_of_line ();
   29.97 - 	}
   29.98 - 
   29.99 -
  29.100 --- 
  29.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
  29.102 -SuSE Linux AG, Maxfeldstra&#xC3;e 5, 90409 N&#xC3;rnberg, Germany
  29.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
  29.104 -"And now for something completely different."
    30.1 --- a/patches/binutils/2.17.50.0.8/100-uclibc-conf.patch	Tue Aug 14 19:32:22 2007 +0000
    30.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.3 @@ -1,139 +0,0 @@
    30.4 ---- binutils-2.16.91.0.7/bfd/configure
    30.5 -+++ binutils-2.16.91.0.7/bfd/configure
    30.6 -@@ -3576,7 +3576,7 @@
    30.7 -   ;;
    30.8 - 
    30.9 - # This must be Linux ELF.
   30.10 --linux-gnu*)
   30.11 -+linux-gnu*|linux-uclibc*)
   30.12 -   lt_cv_deplibs_check_method=pass_all
   30.13 -   ;;
   30.14 - 
   30.15 ---- binutils-2.16.91.0.7/binutils/configure
   30.16 -+++ binutils-2.16.91.0.7/binutils/configure
   30.17 -@@ -3411,7 +3411,7 @@
   30.18 -   ;;
   30.19 - 
   30.20 - # This must be Linux ELF.
   30.21 --linux-gnu*)
   30.22 -+linux-gnu*|linux-uclibc*)
   30.23 -   lt_cv_deplibs_check_method=pass_all
   30.24 -   ;;
   30.25 - 
   30.26 ---- binutils-2.16.91.0.7/configure
   30.27 -+++ binutils-2.16.91.0.7/configure
   30.28 -@@ -1270,7 +1270,7 @@
   30.29 -   am33_2.0-*-linux*)
   30.30 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   30.31 -     ;;
   30.32 --  sh-*-linux*)
   30.33 -+  sh*-*-linux*)
   30.34 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   30.35 -     ;;    
   30.36 -   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
   30.37 -@@ -1578,7 +1578,7 @@
   30.38 -   romp-*-*)
   30.39 -     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
   30.40 -     ;;
   30.41 --  sh-*-* | sh64-*-*)
   30.42 -+  sh*-*-* | sh64-*-*)
   30.43 -     case "${host}" in
   30.44 -       i[3456789]86-*-vsta) ;; # don't add gprof back in
   30.45 -       i[3456789]86-*-go32*) ;; # don't add gprof back in
   30.46 ---- binutils-2.16.91.0.7/configure.in
   30.47 -+++ binutils-2.16.91.0.7/configure.in
   30.48 -@@ -468,7 +468,7 @@
   30.49 -   am33_2.0-*-linux*)
   30.50 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   30.51 -     ;;
   30.52 --  sh-*-linux*)
   30.53 -+  sh*-*-linux*)
   30.54 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   30.55 -     ;;    
   30.56 -   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
   30.57 -@@ -776,7 +776,7 @@
   30.58 -   romp-*-*)
   30.59 -     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
   30.60 -     ;;
   30.61 --  sh-*-* | sh64-*-*)
   30.62 -+  sh*-*-* | sh64-*-*)
   30.63 -     case "${host}" in
   30.64 -       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
   30.65 -       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
   30.66 ---- binutils-2.16.91.0.7/gas/configure
   30.67 -+++ binutils-2.16.91.0.7/gas/configure
   30.68 -@@ -3411,7 +3411,7 @@
   30.69 -   ;;
   30.70 - 
   30.71 - # This must be Linux ELF.
   30.72 --linux-gnu*)
   30.73 -+linux-gnu*|linux-uclibc*)
   30.74 -   lt_cv_deplibs_check_method=pass_all
   30.75 -   ;;
   30.76 - 
   30.77 ---- binutils-2.16.91.0.7/gprof/configure
   30.78 -+++ binutils-2.16.91.0.7/gprof/configure
   30.79 -@@ -3419,6 +3419,11 @@
   30.80 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   30.81 -   ;;
   30.82 - 
   30.83 -+linux-uclibc*)
   30.84 -+  lt_cv_deplibs_check_method=pass_all
   30.85 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
   30.86 -+  ;;
   30.87 -+
   30.88 - netbsd* | knetbsd*-gnu)
   30.89 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
   30.90 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
   30.91 ---- binutils-2.16.91.0.7/ld/configure
   30.92 -+++ binutils-2.16.91.0.7/ld/configure
   30.93 -@@ -3413,7 +3413,7 @@
   30.94 -   ;;
   30.95 - 
   30.96 - # This must be Linux ELF.
   30.97 --linux-gnu*)
   30.98 -+linux-gnu*|linux-uclibc*)
   30.99 -   lt_cv_deplibs_check_method=pass_all
  30.100 -   ;;
  30.101 - 
  30.102 ---- binutils-2.16.91.0.7/libtool.m4
  30.103 -+++ binutils-2.16.91.0.7/libtool.m4
  30.104 -@@ -739,7 +739,7 @@
  30.105 -   ;;
  30.106 - 
  30.107 - # This must be Linux ELF.
  30.108 --linux-gnu*)
  30.109 -+linux-gnu*|linux-uclibc*)
  30.110 -   lt_cv_deplibs_check_method=pass_all
  30.111 -   ;;
  30.112 - 
  30.113 ---- binutils-2.16.91.0.7/ltconfig
  30.114 -+++ binutils-2.16.91.0.7/ltconfig
  30.115 -@@ -602,6 +602,7 @@
  30.116 - 
  30.117 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  30.118 - case $host_os in
  30.119 -+linux-uclibc*) ;;
  30.120 - linux-gnu*) ;;
  30.121 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  30.122 - esac
  30.123 -@@ -1247,7 +1248,7 @@
  30.124 -   ;;
  30.125 - 
  30.126 - # This must be Linux ELF.
  30.127 --linux-gnu*)
  30.128 -+linux-gnu*|linux-uclibc*)
  30.129 -   version_type=linux
  30.130 -   need_lib_prefix=no
  30.131 -   need_version=no
  30.132 ---- binutils-2.16.91.0.7/opcodes/configure
  30.133 -+++ binutils-2.16.91.0.7/opcodes/configure
  30.134 -@@ -3579,7 +3579,7 @@
  30.135 -   ;;
  30.136 - 
  30.137 - # This must be Linux ELF.
  30.138 --linux-gnu*)
  30.139 -+linux-gnu*|linux-uclibc*)
  30.140 -   lt_cv_deplibs_check_method=pass_all
  30.141 -   ;;
  30.142 - 
    31.1 --- a/patches/binutils/2.17.50.0.8/110-arm-eabi-conf.patch	Tue Aug 14 19:32:22 2007 +0000
    31.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.3 @@ -1,24 +0,0 @@
    31.4 -diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
    31.5 ---- binutils-2.16.91.0.7.orig/configure	2006-05-31 14:54:24.000000000 +0300
    31.6 -+++ binutils-2.16.91.0.7/configure	2006-05-31 14:55:53.000000000 +0300
    31.7 -@@ -1299,7 +1299,7 @@
    31.8 -   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
    31.9 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   31.10 -     ;;
   31.11 --  arm*-*-linux-gnueabi)
   31.12 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   31.13 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   31.14 -     noconfigdirs="$noconfigdirs target-libjava target-libobjc"
   31.15 -     ;;
   31.16 -diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
   31.17 ---- binutils-2.16.91.0.7.orig/configure.in	2006-05-31 14:54:24.000000000 +0300
   31.18 -+++ binutils-2.16.91.0.7/configure.in	2006-05-31 14:55:53.000000000 +0300
   31.19 -@@ -497,7 +497,7 @@
   31.20 -   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
   31.21 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   31.22 -     ;;
   31.23 --  arm*-*-linux-gnueabi)
   31.24 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   31.25 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   31.26 -     noconfigdirs="$noconfigdirs target-libjava target-libobjc"
   31.27 -     ;;
    32.1 --- a/patches/binutils/2.17.50.0.8/300-001_ld_makefile_patch.patch	Tue Aug 14 19:32:22 2007 +0000
    32.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.3 @@ -1,50 +0,0 @@
    32.4 -#!/bin/sh -e
    32.5 -## 001_ld_makefile_patch.dpatch
    32.6 -##
    32.7 -## All lines beginning with `## DP:' are a description of the patch.
    32.8 -## DP: Description: correct where ld scripts are installed
    32.9 -## DP: Author: Chris Chimelis <chris@debian.org>
   32.10 -## DP: Upstream status: N/A
   32.11 -## DP: Date: ??
   32.12 -
   32.13 -if [ $# -ne 1 ]; then
   32.14 -    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   32.15 -    exit 1
   32.16 -fi
   32.17 -
   32.18 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
   32.19 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
   32.20 -
   32.21 -case "$1" in
   32.22 -       -patch) patch $patch_opts -p1 < $0;;
   32.23 -       -unpatch) patch $patch_opts -p1 -R < $0;;
   32.24 -        *)
   32.25 -                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   32.26 -                exit 1;;
   32.27 -esac
   32.28 -
   32.29 -exit 0
   32.30 -
   32.31 -@DPATCH@
   32.32 ---- binutils-2.16.91.0.1/ld/Makefile.am
   32.33 -+++ binutils-2.16.91.0.1/ld/Makefile.am
   32.34 -@@ -20,7 +20,7 @@
   32.35 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   32.36 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   32.37 - # directives need to be different for native and cross linkers.
   32.38 --scriptdir = $(tooldir)/lib
   32.39 -+scriptdir = $(libdir)
   32.40 - 
   32.41 - EMUL = @EMUL@
   32.42 - EMULATION_OFILES = @EMULATION_OFILES@
   32.43 ---- binutils-2.16.91.0.1/ld/Makefile.in
   32.44 -+++ binutils-2.16.91.0.1/ld/Makefile.in
   32.45 -@@ -268,7 +268,7 @@
   32.46 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   32.47 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   32.48 - # directives need to be different for native and cross linkers.
   32.49 --scriptdir = $(tooldir)/lib
   32.50 -+scriptdir = $(libdir)
   32.51 - BASEDIR = $(srcdir)/..
   32.52 - BFDDIR = $(BASEDIR)/bfd
   32.53 - INCDIR = $(BASEDIR)/include
    33.1 --- a/patches/binutils/2.17.50.0.8/300-012_check_ldrunpath_length.patch	Tue Aug 14 19:32:22 2007 +0000
    33.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.3 @@ -1,47 +0,0 @@
    33.4 -#!/bin/sh -e
    33.5 -## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
    33.6 -##
    33.7 -## All lines beginning with `## DP:' are a description of the patch.
    33.8 -## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
    33.9 -## DP: cases where -rpath isn't specified. (#151024)
   33.10 -
   33.11 -if [ $# -ne 1 ]; then
   33.12 -    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   33.13 -    exit 1
   33.14 -fi
   33.15 -
   33.16 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
   33.17 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
   33.18 -
   33.19 -case "$1" in
   33.20 -       -patch) patch $patch_opts -p1 < $0;;
   33.21 -       -unpatch) patch $patch_opts -p1 -R < $0;;
   33.22 -        *)
   33.23 -                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   33.24 -                exit 1;;
   33.25 -esac
   33.26 -
   33.27 -exit 0
   33.28 -
   33.29 -@DPATCH@
   33.30 -diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
   33.31 ---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:58.000000000 +0100
   33.32 -+++ binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:59.000000000 +0100
   33.33 -@@ -692,6 +692,8 @@
   33.34 - 	      && command_line.rpath == NULL)
   33.35 - 	    {
   33.36 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   33.37 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   33.38 -+		  lib_path = NULL;
   33.39 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   33.40 - 						      force))
   33.41 - 		break;
   33.42 -@@ -871,6 +873,8 @@
   33.43 -   rpath = command_line.rpath;
   33.44 -   if (rpath == NULL)
   33.45 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   33.46 -+  if ((rpath) && (strlen (rpath) == 0))
   33.47 -+      rpath = NULL;
   33.48 -   if (! (bfd_elf_size_dynamic_sections
   33.49 - 	 (output_bfd, command_line.soname, rpath,
   33.50 - 	  command_line.filter_shlib,
    34.1 --- a/patches/binutils/2.17.50.0.9/100-uclibc-conf.patch	Tue Aug 14 19:32:22 2007 +0000
    34.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.3 @@ -1,139 +0,0 @@
    34.4 ---- binutils-2.16.91.0.7/bfd/configure
    34.5 -+++ binutils-2.16.91.0.7/bfd/configure
    34.6 -@@ -3576,7 +3576,7 @@
    34.7 -   ;;
    34.8 - 
    34.9 - # This must be Linux ELF.
   34.10 --linux-gnu*)
   34.11 -+linux-gnu*|linux-uclibc*)
   34.12 -   lt_cv_deplibs_check_method=pass_all
   34.13 -   ;;
   34.14 - 
   34.15 ---- binutils-2.16.91.0.7/binutils/configure
   34.16 -+++ binutils-2.16.91.0.7/binutils/configure
   34.17 -@@ -3411,7 +3411,7 @@
   34.18 -   ;;
   34.19 - 
   34.20 - # This must be Linux ELF.
   34.21 --linux-gnu*)
   34.22 -+linux-gnu*|linux-uclibc*)
   34.23 -   lt_cv_deplibs_check_method=pass_all
   34.24 -   ;;
   34.25 - 
   34.26 ---- binutils-2.16.91.0.7/configure
   34.27 -+++ binutils-2.16.91.0.7/configure
   34.28 -@@ -1270,7 +1270,7 @@
   34.29 -   am33_2.0-*-linux*)
   34.30 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   34.31 -     ;;
   34.32 --  sh-*-linux*)
   34.33 -+  sh*-*-linux*)
   34.34 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   34.35 -     ;;    
   34.36 -   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
   34.37 -@@ -1578,7 +1578,7 @@
   34.38 -   romp-*-*)
   34.39 -     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
   34.40 -     ;;
   34.41 --  sh-*-* | sh64-*-*)
   34.42 -+  sh*-*-* | sh64-*-*)
   34.43 -     case "${host}" in
   34.44 -       i[3456789]86-*-vsta) ;; # don't add gprof back in
   34.45 -       i[3456789]86-*-go32*) ;; # don't add gprof back in
   34.46 ---- binutils-2.16.91.0.7/configure.in
   34.47 -+++ binutils-2.16.91.0.7/configure.in
   34.48 -@@ -468,7 +468,7 @@
   34.49 -   am33_2.0-*-linux*)
   34.50 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   34.51 -     ;;
   34.52 --  sh-*-linux*)
   34.53 -+  sh*-*-linux*)
   34.54 -     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   34.55 -     ;;    
   34.56 -   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
   34.57 -@@ -776,7 +776,7 @@
   34.58 -   romp-*-*)
   34.59 -     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
   34.60 -     ;;
   34.61 --  sh-*-* | sh64-*-*)
   34.62 -+  sh*-*-* | sh64-*-*)
   34.63 -     case "${host}" in
   34.64 -       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
   34.65 -       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
   34.66 ---- binutils-2.16.91.0.7/gas/configure
   34.67 -+++ binutils-2.16.91.0.7/gas/configure
   34.68 -@@ -3411,7 +3411,7 @@
   34.69 -   ;;
   34.70 - 
   34.71 - # This must be Linux ELF.
   34.72 --linux-gnu*)
   34.73 -+linux-gnu*|linux-uclibc*)
   34.74 -   lt_cv_deplibs_check_method=pass_all
   34.75 -   ;;
   34.76 - 
   34.77 ---- binutils-2.16.91.0.7/gprof/configure
   34.78 -+++ binutils-2.16.91.0.7/gprof/configure
   34.79 -@@ -3419,6 +3419,11 @@
   34.80 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   34.81 -   ;;
   34.82 - 
   34.83 -+linux-uclibc*)
   34.84 -+  lt_cv_deplibs_check_method=pass_all
   34.85 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
   34.86 -+  ;;
   34.87 -+
   34.88 - netbsd* | knetbsd*-gnu)
   34.89 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
   34.90 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
   34.91 ---- binutils-2.16.91.0.7/ld/configure
   34.92 -+++ binutils-2.16.91.0.7/ld/configure
   34.93 -@@ -3413,7 +3413,7 @@
   34.94 -   ;;
   34.95 - 
   34.96 - # This must be Linux ELF.
   34.97 --linux-gnu*)
   34.98 -+linux-gnu*|linux-uclibc*)
   34.99 -   lt_cv_deplibs_check_method=pass_all
  34.100 -   ;;
  34.101 - 
  34.102 ---- binutils-2.16.91.0.7/libtool.m4
  34.103 -+++ binutils-2.16.91.0.7/libtool.m4
  34.104 -@@ -739,7 +739,7 @@
  34.105 -   ;;
  34.106 - 
  34.107 - # This must be Linux ELF.
  34.108 --linux-gnu*)
  34.109 -+linux-gnu*|linux-uclibc*)
  34.110 -   lt_cv_deplibs_check_method=pass_all
  34.111 -   ;;
  34.112 - 
  34.113 ---- binutils-2.16.91.0.7/ltconfig
  34.114 -+++ binutils-2.16.91.0.7/ltconfig
  34.115 -@@ -602,6 +602,7 @@
  34.116 - 
  34.117 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  34.118 - case $host_os in
  34.119 -+linux-uclibc*) ;;
  34.120 - linux-gnu*) ;;
  34.121 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  34.122 - esac
  34.123 -@@ -1247,7 +1248,7 @@
  34.124 -   ;;
  34.125 - 
  34.126 - # This must be Linux ELF.
  34.127 --linux-gnu*)
  34.128 -+linux-gnu*|linux-uclibc*)
  34.129 -   version_type=linux
  34.130 -   need_lib_prefix=no
  34.131 -   need_version=no
  34.132 ---- binutils-2.16.91.0.7/opcodes/configure
  34.133 -+++ binutils-2.16.91.0.7/opcodes/configure
  34.134 -@@ -3579,7 +3579,7 @@
  34.135 -   ;;
  34.136 - 
  34.137 - # This must be Linux ELF.
  34.138 --linux-gnu*)
  34.139 -+linux-gnu*|linux-uclibc*)
  34.140 -   lt_cv_deplibs_check_method=pass_all
  34.141 -   ;;
  34.142 - 
    35.1 --- a/patches/binutils/2.17.50.0.9/110-arm-eabi-conf.patch	Tue Aug 14 19:32:22 2007 +0000
    35.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.3 @@ -1,24 +0,0 @@
    35.4 -diff -urN binutils-2.16.91.0.7.orig/configure binutils-2.16.91.0.7/configure
    35.5 ---- binutils-2.16.91.0.7.orig/configure	2006-05-31 14:54:24.000000000 +0300
    35.6 -+++ binutils-2.16.91.0.7/configure	2006-05-31 14:55:53.000000000 +0300
    35.7 -@@ -1299,7 +1299,7 @@
    35.8 -   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
    35.9 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   35.10 -     ;;
   35.11 --  arm*-*-linux-gnueabi)
   35.12 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   35.13 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   35.14 -     noconfigdirs="$noconfigdirs target-libjava target-libobjc"
   35.15 -     ;;
   35.16 -diff -urN binutils-2.16.91.0.7.orig/configure.in binutils-2.16.91.0.7/configure.in
   35.17 ---- binutils-2.16.91.0.7.orig/configure.in	2006-05-31 14:54:24.000000000 +0300
   35.18 -+++ binutils-2.16.91.0.7/configure.in	2006-05-31 14:55:53.000000000 +0300
   35.19 -@@ -497,7 +497,7 @@
   35.20 -   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
   35.21 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   35.22 -     ;;
   35.23 --  arm*-*-linux-gnueabi)
   35.24 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   35.25 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   35.26 -     noconfigdirs="$noconfigdirs target-libjava target-libobjc"
   35.27 -     ;;
    36.1 --- a/patches/binutils/2.17.50.0.9/300-001_ld_makefile_patch.patch	Tue Aug 14 19:32:22 2007 +0000
    36.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.3 @@ -1,50 +0,0 @@
    36.4 -#!/bin/sh -e
    36.5 -## 001_ld_makefile_patch.dpatch
    36.6 -##
    36.7 -## All lines beginning with `## DP:' are a description of the patch.
    36.8 -## DP: Description: correct where ld scripts are installed
    36.9 -## DP: Author: Chris Chimelis <chris@debian.org>
   36.10 -## DP: Upstream status: N/A
   36.11 -## DP: Date: ??
   36.12 -
   36.13 -if [ $# -ne 1 ]; then
   36.14 -    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   36.15 -    exit 1
   36.16 -fi
   36.17 -
   36.18 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
   36.19 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
   36.20 -
   36.21 -case "$1" in
   36.22 -       -patch) patch $patch_opts -p1 < $0;;
   36.23 -       -unpatch) patch $patch_opts -p1 -R < $0;;
   36.24 -        *)
   36.25 -                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   36.26 -                exit 1;;
   36.27 -esac
   36.28 -
   36.29 -exit 0
   36.30 -
   36.31 -@DPATCH@
   36.32 ---- binutils-2.16.91.0.1/ld/Makefile.am
   36.33 -+++ binutils-2.16.91.0.1/ld/Makefile.am
   36.34 -@@ -20,7 +20,7 @@
   36.35 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   36.36 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   36.37 - # directives need to be different for native and cross linkers.
   36.38 --scriptdir = $(tooldir)/lib
   36.39 -+scriptdir = $(libdir)
   36.40 - 
   36.41 - EMUL = @EMUL@
   36.42 - EMULATION_OFILES = @EMULATION_OFILES@
   36.43 ---- binutils-2.16.91.0.1/ld/Makefile.in
   36.44 -+++ binutils-2.16.91.0.1/ld/Makefile.in
   36.45 -@@ -268,7 +268,7 @@
   36.46 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   36.47 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   36.48 - # directives need to be different for native and cross linkers.
   36.49 --scriptdir = $(tooldir)/lib
   36.50 -+scriptdir = $(libdir)
   36.51 - BASEDIR = $(srcdir)/..
   36.52 - BFDDIR = $(BASEDIR)/bfd
   36.53 - INCDIR = $(BASEDIR)/include
    37.1 --- a/patches/binutils/2.17.50.0.9/300-012_check_ldrunpath_length.patch	Tue Aug 14 19:32:22 2007 +0000
    37.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.3 @@ -1,47 +0,0 @@
    37.4 -#!/bin/sh -e
    37.5 -## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
    37.6 -##
    37.7 -## All lines beginning with `## DP:' are a description of the patch.
    37.8 -## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
    37.9 -## DP: cases where -rpath isn't specified. (#151024)
   37.10 -
   37.11 -if [ $# -ne 1 ]; then
   37.12 -    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   37.13 -    exit 1
   37.14 -fi
   37.15 -
   37.16 -[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
   37.17 -patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
   37.18 -
   37.19 -case "$1" in
   37.20 -       -patch) patch $patch_opts -p1 < $0;;
   37.21 -       -unpatch) patch $patch_opts -p1 -R < $0;;
   37.22 -        *)
   37.23 -                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   37.24 -                exit 1;;
   37.25 -esac
   37.26 -
   37.27 -exit 0
   37.28 -
   37.29 -@DPATCH@
   37.30 -diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
   37.31 ---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:58.000000000 +0100
   37.32 -+++ binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:59.000000000 +0100
   37.33 -@@ -692,6 +692,8 @@
   37.34 - 	      && command_line.rpath == NULL)
   37.35 - 	    {
   37.36 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   37.37 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   37.38 -+		  lib_path = NULL;
   37.39 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   37.40 - 						      force))
   37.41 - 		break;
   37.42 -@@ -871,6 +873,8 @@
   37.43 -   rpath = command_line.rpath;
   37.44 -   if (rpath == NULL)
   37.45 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   37.46 -+  if ((rpath) && (strlen (rpath) == 0))
   37.47 -+      rpath = NULL;
   37.48 -   if (! (bfd_elf_size_dynamic_sections
   37.49 - 	 (output_bfd, command_line.soname, rpath,
   37.50 - 	  command_line.filter_shlib,
    38.1 --- a/patches/gcc/3.3.1/compat.exp.patch	Tue Aug 14 19:32:22 2007 +0000
    38.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.3 @@ -1,37 +0,0 @@
    38.4 -Fixes the following problem when testing a cross-compiler:
    38.5 -
    38.6 -============================================
    38.7 -Testing g++.dg/compat/abi/bitfield1,
    38.8 -...
    38.9 -Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++  ...
   38.10 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
   38.11 -pid is 16028 -16028
   38.12 -compiler exited with status 1
   38.13 -output is:
   38.14 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
   38.15 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file data encoding not little-endian
   38.16 -
   38.17 -FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
   38.18 -============================================
   38.19 -
   38.20 ---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old	Thu Oct 17 17:22:57 2002
   38.21 -+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp	Mon Jul 14 10:59:19 2003
   38.22 -@@ -42,11 +42,13 @@
   38.23 - proc compat-fix-library-path { } {
   38.24 -     global ld_library_path
   38.25 - 
   38.26 --    # See comments in lib/g++.exp for why this is needed.
   38.27 --    setenv  LD_LIBRARY_PATH     $ld_library_path
   38.28 --    setenv  SHLIB_PATH          $ld_library_path
   38.29 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
   38.30 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
   38.31 -+    if {![is_remote target]} {
   38.32 -+	# See comments in lib/g++.exp for why this is needed.
   38.33 -+	setenv  LD_LIBRARY_PATH     $ld_library_path
   38.34 -+	setenv  SHLIB_PATH          $ld_library_path
   38.35 -+	setenv  LD_LIBRARYN32_PATH  $ld_library_path
   38.36 -+	setenv  LD_LIBRARY64_PATH   $ld_library_path
   38.37 -+    }
   38.38 - }
   38.39 - 
   38.40 - #
    39.1 --- a/patches/gcc/3.3.1/config.sub.patch	Tue Aug 14 19:32:22 2007 +0000
    39.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.3 @@ -1,72 +0,0 @@
    39.4 -When configuring a s390->s390 or cris->cris crosscompiler
    39.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
    39.6 -on an s390, and then I'll need this patch :-), you'll get the
    39.7 -following error:
    39.8 -
    39.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
   39.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
   39.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
   39.12 ---enable-languages=c
   39.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
   39.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
   39.15 ---disable-shared
   39.16 -...
   39.17 -*** --with-headers is only supported when cross compiling
   39.18 -
   39.19 -This error pops up only when you're using Daniel Jacobowitz's technique
   39.20 -of slightly changing the target and host tuples to make them different
   39.21 -enough to force gcc's build system to not try to pull in system libraries
   39.22 -or headers.  This technique is needed e.g. to build an x86 -> x86
   39.23 -cross-compiler.
   39.24 -(The LFS developers ran into the same bug that prompted me to use
   39.25 -this technique; they point people who run into it to
   39.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
   39.27 -way of avoiding this problem.  I think the tuple tweak is the way to go, though.)
   39.28 -
   39.29 -config-patches@gnu.org rejected this patch, on the grounds that there
   39.30 -is only one vendor of each of those two architectures, so the 
   39.31 -canonicalization is by definition correct.  When I pointed out the
   39.32 -difficulty this causes for people building s390 -> s390 or
   39.33 -cris -> cris compilers that are incompatible with the system
   39.34 -libraries and thus must be built like cross-compilers, he grumped and said 
   39.35 -"autoconf should let you specify a cross-compiler in some other way than
   39.36 -comparing tuple strings".
   39.37 -
   39.38 -
   39.39 -
   39.40 ---- gcc-3.3/config.sub.old	Sun Jun  8 20:38:47 2003
   39.41 -+++ gcc-3.3/config.sub	Sun Jun  8 20:40:34 2003
   39.42 -@@ -433,9 +433,12 @@
   39.43 - 	crds | unos)
   39.44 - 		basic_machine=m68k-crds
   39.45 - 		;;
   39.46 --	cris | cris-* | etrax*)
   39.47 -+	cris | etrax*)
   39.48 - 		basic_machine=cris-axis
   39.49 - 		;;
   39.50 -+	cris-*)
   39.51 -+		basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
   39.52 -+		;;
   39.53 - 	da30 | da30-*)
   39.54 - 		basic_machine=m68k-da30
   39.55 - 		;;
   39.56 -@@ -820,11 +823,17 @@
   39.57 - 	rtpc | rtpc-*)
   39.58 - 		basic_machine=romp-ibm
   39.59 - 		;;
   39.60 --	s390 | s390-*)
   39.61 -+	s390)
   39.62 - 		basic_machine=s390-ibm
   39.63 - 		;;
   39.64 --	s390x | s390x-*)
   39.65 -+	s390-*)
   39.66 -+		basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
   39.67 -+		;;
   39.68 -+	s390x)
   39.69 - 		basic_machine=s390x-ibm
   39.70 -+		;;
   39.71 -+	s390x-*)
   39.72 -+		basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
   39.73 - 		;;
   39.74 - 	sa29200)
   39.75 - 		basic_machine=a29k-amd
    40.1 --- a/patches/gcc/3.3.1/empty6.patch	Tue Aug 14 19:32:22 2007 +0000
    40.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.3 @@ -1,21 +0,0 @@
    40.4 -From 3.4 branch.  Fixes test failure
    40.5 -FAIL: g++.dg/abi/empty6.C  (test for warnings, line 6)
    40.6 -
    40.7 -===================================================================
    40.8 -RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
    40.9 -retrieving revision 1.1
   40.10 -retrieving revision 1.2
   40.11 -diff -u -r1.1 -r1.2
   40.12 ---- gcc/gcc/testsuite/g++.dg/abi/empty6.C	2002/09/25 19:07:35	1.1
   40.13 -+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C	2003/06/03 19:10:09	1.2
   40.14 -@@ -5,4 +5,9 @@
   40.15 - struct B {
   40.16 -   A a; // { dg-warning "empty" }
   40.17 -   virtual void f () {}
   40.18 --};
   40.19 -+} __attribute__((aligned(8)));
   40.20 -+/* The preceding attribute is necessary on targets with
   40.21 -+   BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
   40.22 -+   offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
   40.23 -+   and then there is no discrepancy between DECL_FIELD_OFFSET and
   40.24 -+   byte_position to warn about.  */
    41.1 --- a/patches/gcc/3.3.1/gcc-3.2.3-g++.exp.patch	Tue Aug 14 19:32:22 2007 +0000
    41.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.3 @@ -1,100 +0,0 @@
    41.4 -See http://gcc.gnu.org/PR12010
    41.5 -
    41.6 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
    41.7 -
    41.8 -The first hunk fixes the error
    41.9 -
   41.10 -/testsuite_flags: /testsuite_flags: No such file or directory
   41.11 -    while executing
   41.12 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
   41.13 -    (procedure "g++_include_flags" line 21)
   41.14 -    invoked from within
   41.15 -"g++_include_flags [get_multilibs] "
   41.16 -    (procedure "g++_init" line 63)
   41.17 -    invoked from within
   41.18 -"${tool}_init $test_file_name"
   41.19 -    (procedure "runtest" line 19)
   41.20 -    invoked from within
   41.21 -"runtest $test_name"
   41.22 -    ("foreach" body line 42)
   41.23 -    invoked from within
   41.24 -...
   41.25 -make[1]: [check-g++] Error 1 (ignored)
   41.26 -
   41.27 -The fix isn't especially pretty, but it worked for me, and can't hurt the
   41.28 -more common native compiler case.  Maybe someone who knows the code better 
   41.29 -can come up with a better fix.
   41.30 -
   41.31 -The second hunk fixes the error
   41.32 -
   41.33 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
   41.34 -
   41.35 -when trying to compile g++ testcases (!); setting up
   41.36 -the shared library environment when running crosstests of g++ 
   41.37 -should either be done by a special board file, or by
   41.38 -setting up a remote chroot environment (see http://kegel.com/crosstool),
   41.39 -not by blithely setting LD_LIBRARY_PATH on the local system.
   41.40 -
   41.41 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old	Fri Jul 11 15:42:47 2003
   41.42 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp	Sat Jul 12 12:57:07 2003
   41.43 -@@ -72,6 +72,8 @@
   41.44 - #
   41.45 - proc g++_include_flags { paths } {
   41.46 -     global srcdir
   41.47 -+    global objdir
   41.48 -+    global target_triplet
   41.49 -     global HAVE_LIBSTDCXX_V3
   41.50 -     global TESTING_IN_BUILD_TREE
   41.51 - 
   41.52 -@@ -90,6 +92,20 @@
   41.53 - 
   41.54 -     if { ${HAVE_LIBSTDCXX_V3} } {
   41.55 -       set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
   41.56 -+      if { $odir_v3 == "" } {
   41.57 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
   41.58 -+	  # first assume no multilibs
   41.59 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   41.60 -+      }
   41.61 -+      if { $odir_v3 == "" } {
   41.62 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
   41.63 -+	  # assume multilib only one level deep
   41.64 -+          set multisub [file tail $gccpath]
   41.65 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   41.66 -+      }
   41.67 -+      if { $odir_v3 == "" } {
   41.68 -+           error "Can't find libstdc++-v3"
   41.69 -+      }
   41.70 -       append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
   41.71 -     } else {
   41.72 -       set odir_v2 [lookfor_file ${gccpath} libstdc++]
   41.73 -@@ -192,16 +192,20 @@
   41.74 -       }
   41.75 -     }
   41.76 - 
   41.77 --    # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   41.78 --    # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   41.79 --    # (for the 64-bit ABI).  The right way to do this would be to modify
   41.80 --    # unix.exp -- but that's not an option since it's part of DejaGNU
   41.81 --    # proper, so we do it here.  We really only need to do 
   41.82 --    # this on IRIX, but it shouldn't hurt to do it anywhere else.
   41.83 --    setenv  LD_LIBRARY_PATH     $ld_library_path
   41.84 --    setenv  SHLIB_PATH          $ld_library_path
   41.85 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
   41.86 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
   41.87 -+    if {![is_remote target]} {
   41.88 -+      # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   41.89 -+      # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   41.90 -+      # (for the 64-bit ABI).  The right way to do this would be to modify
   41.91 -+      # unix.exp -- but that's not an option since it's part of DejaGNU
   41.92 -+      # proper, so we do it here.  We really only need to do 
   41.93 -+      # this on IRIX, but it shouldn't hurt to do it anywhere else.
   41.94 -+
   41.95 -+      # Doing this causes us to be unable to run cross-compilers.
   41.96 -+      setenv  LD_LIBRARY_PATH     $ld_library_path
   41.97 -+      setenv  SHLIB_PATH          $ld_library_path
   41.98 -+      setenv  LD_LIBRARYN32_PATH  $ld_library_path
   41.99 -+      setenv  LD_LIBRARY64_PATH   $ld_library_path
  41.100 -+    }
  41.101 - 
  41.102 -     return "$flags"
  41.103 - }
    42.1 --- a/patches/gcc/3.3.1/gcc-3.3-libstdc++-v3-dg.exp.patch	Tue Aug 14 19:32:22 2007 +0000
    42.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.3 @@ -1,54 +0,0 @@
    42.4 -Without this patch, the command
    42.5 -
    42.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
    42.7 -
    42.8 -fails in two ways:
    42.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
   42.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
   42.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
   42.12 -we just built.
   42.13 -
   42.14 -Here's an example log of the problem in action.  Every testcase fails, this shows just one:
   42.15 --------------
   42.16 -Invoking the compiler as g++ -ggdb3 -DDEBUG_ASSERT -I/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite /home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc   -g -O2 -DDEBUG_ASSERT  -L/testsuite -lv3test -lm  -o ./binders.exe
   42.17 -compiler exited with status 1
   42.18 -output is:
   42.19 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h: In method `void binder2nd<mem_fun1_ref_t<void,Elem,int> >::operator ()(const Elem &) const':^M
   42.20 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algo.h:83:   instantiated from `for_each<Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> > >(Elem *, Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> >)'^M
   42.21 -/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc:43:   instantiated from here^M
   42.22 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:224: conversion from `const Elem' to `Elem &' discards qualifiers^M
   42.23 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:622: in passing argument 1 of `mem_fun1_ref_t<void,Elem,int>::operator ()(Elem &, int) const'^M
   42.24 -...
   42.25 -FAIL: 20_util/binders.cc (test for excess errors)
   42.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
   42.27 --------------
   42.28 -
   42.29 -And here's the patch.  I'm not happy with it, and it probably gets some cases wrong,
   42.30 -but it seems to work for the common native case and for my cross-compiler case.
   42.31 -
   42.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
   42.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
   42.34 -@@ -46,8 +46,23 @@
   42.35 -     global gluefile wrap_flags
   42.36 -     global ld_library_path
   42.37 -     global tool_root_dir
   42.38 -+    global target_triplet
   42.39 - 
   42.40 -     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
   42.41 -+    if { $blddir == "" } {
   42.42 -+        set multilibs [get_multilibs]
   42.43 -+        # FIXME: assume multilib only one level deep
   42.44 -+        set multisub [file tail $multilibs]
   42.45 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
   42.46 -+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   42.47 -+    }
   42.48 -+    if { $blddir == "" } {
   42.49 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
   42.50 -+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   42.51 -+    }
   42.52 -+    if { $blddir == "" } {
   42.53 -+         error "Can't find libstdc++-v3"
   42.54 -+    }
   42.55 - 
   42.56 -     # By default, we assume we want to run program images.
   42.57 -     global dg-do-what-default
    43.1 --- a/patches/gcc/3.3.1/gcc-3.3.1-trap-posix.patch	Tue Aug 14 19:32:22 2007 +0000
    43.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.3 @@ -1,44 +0,0 @@
    43.4 -# 
    43.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
    43.6 -#
    43.7 -# Error:
    43.8 -#
    43.9 -# creating libintl.h
   43.10 -# Configuring etc...
   43.11 -# loading cache ../config.cache
   43.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
   43.13 -# creating ./config.status
   43.14 -# creating Makefile
   43.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
   43.16 -#
   43.17 -# Description:
   43.18 -#
   43.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
   43.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
   43.21 -#
   43.22 -# Status:
   43.23 -#
   43.24 -# fixed in gcc >= 3.3.5
   43.25 -# backport of gcc-3.3.5 fix
   43.26 -#
   43.27 -diff -ruN gcc-3.3.1-orig/configure gcc-3.3.1/configure
   43.28 ---- gcc-3.3.1-orig/configure	2002-09-29 18:11:24.000000000 +0200
   43.29 -+++ gcc-3.3.1/configure	2005-04-20 18:49:20.223220401 +0200
   43.30 -@@ -697,7 +697,7 @@
   43.31 - if test -f skip-this-dir; then
   43.32 - 	# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   43.33 - 	# and reset the trap handler.
   43.34 --	trap 0
   43.35 -+	trap '' 0
   43.36 - 	rm -rf Makefile* ${tmpdir}
   43.37 - 	# Execute the final clean-up actions
   43.38 - 	${config_shell} skip-this-dir
   43.39 -@@ -1596,7 +1596,7 @@
   43.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   43.41 - # and reset the trap handler.
   43.42 - rm -rf ${tmpdir}
   43.43 --trap 0
   43.44 -+trap '' 0
   43.45 - 
   43.46 - exit 0
   43.47 - 
    44.1 --- a/patches/gcc/3.3.1/pr10392-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    44.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.3 @@ -1,65 +0,0 @@
    44.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    44.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c	Sun Sep 14 14:28:24 2003
    44.6 -@@ -0,0 +1,62 @@
    44.7 -+/* PR optimization/10392
    44.8 -+ * Reporter: marcus@mc.pp.se
    44.9 -+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
   44.10 -+ * Description:
   44.11 -+ * The address calculation of an index operation on an array on the stack 
   44.12 -+ * can _under some conditions_ get messed up completely
   44.13 -+ *
   44.14 -+ * Testcase tweaked by dank@kegel.com
   44.15 -+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
   44.16 -+ * but what the heck, let's test other architectures, too.
   44.17 -+ * Not marked as xfail since it's a regression.
   44.18 -+*/
   44.19 -+/* { dg-do run } */
   44.20 -+/* { dg-options "-O2" } */
   44.21 -+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
   44.22 -+const char *dont_optimize_function_away;
   44.23 -+
   44.24 -+const char *use(const char *str)
   44.25 -+{
   44.26 -+	dont_optimize_function_away = str;
   44.27 -+	if (str[0] != 'v')
   44.28 -+		abort();
   44.29 -+	if (str[1] < '1' || str[1] > '6')
   44.30 -+		abort();
   44.31 -+	if (str[2])
   44.32 -+		abort();
   44.33 -+	return str[2] ? "notused" : "v6";
   44.34 -+}
   44.35 -+
   44.36 -+const char *func(char *a, char *b)
   44.37 -+{
   44.38 -+	char buf[128];
   44.39 -+	unsigned char i;
   44.40 -+	const char *result;
   44.41 -+
   44.42 -+	char *item[] = {
   44.43 -+		"v1",
   44.44 -+		"v2",
   44.45 -+	};
   44.46 -+
   44.47 -+	buf[0] = 'v';
   44.48 -+	buf[1] = '3';
   44.49 -+	buf[2] = 0;
   44.50 -+
   44.51 -+	for (i = 0; i < 2; i++) {
   44.52 -+		/* bug is: following line passes wild pointer to use() on sh4 -O2 */
   44.53 -+		result = use(item[i]);
   44.54 -+
   44.55 -+		use(buf);
   44.56 -+		use(a);
   44.57 -+		use(b);
   44.58 -+		result = use(result);
   44.59 -+	}
   44.60 -+	return result;
   44.61 -+}
   44.62 -+
   44.63 -+int main()
   44.64 -+{
   44.65 -+	func("v4", "v5");
   44.66 -+	return 0;
   44.67 -+}
   44.68 -+
    45.1 --- a/patches/gcc/3.3.1/pr10412-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    45.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.3 @@ -1,46 +0,0 @@
    45.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    45.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c	Sun Sep 14 16:15:21 2003
    45.6 -@@ -0,0 +1,43 @@
    45.7 -+/* PR target/10412
    45.8 -+ * Reporter: shrinivasa@kpitcummins.com 
    45.9 -+ * Summary: Renesas SH - Incorrect code generation
   45.10 -+ * Description:
   45.11 -+ * When following code is compiled  with
   45.12 -+ * sh-elf-gcc  -S -mhitachi -m2 -O2 bug1.c
   45.13 -+ * generates an incorrect code.
   45.14 -+ *
   45.15 -+ * Testcase tweaked by dank@kegel.com
   45.16 -+ * Problem only happens with -mhitachi -m2.  Not sure if I can give those
   45.17 -+ * options for all sh targets.  They work on sh4, though.
   45.18 -+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
   45.19 -+*/
   45.20 -+/* { dg-do run } */
   45.21 -+/* { dg-options "-O2" } */
   45.22 -+int global_val;
   45.23 -+
   45.24 -+int func0(int x)
   45.25 -+{
   45.26 -+	global_val += x;
   45.27 -+	return (x != 99);
   45.28 -+}
   45.29 -+
   45.30 -+int func1(unsigned long addr)
   45.31 -+{
   45.32 -+	int err;
   45.33 -+
   45.34 -+	err = func0(addr);
   45.35 -+	if (err)
   45.36 -+		return (err);
   45.37 -+
   45.38 -+	err = func0(addr * 7);	/* address of func0 is lost during multiplication -> probable SIGSEGV */
   45.39 -+	return (err);
   45.40 -+}
   45.41 -+
   45.42 -+int main(int argc, char **argv)
   45.43 -+{
   45.44 -+	global_val = 0;
   45.45 -+	global_val += func1(99);
   45.46 -+	if (global_val != 99 * 8 + 1)
   45.47 -+		abort();
   45.48 -+	return 0;
   45.49 -+}
    46.1 --- a/patches/gcc/3.3.1/pr10589-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    46.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.3 @@ -1,17 +0,0 @@
    46.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    46.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c	Mon Sep 15 08:57:58 2003
    46.6 -@@ -0,0 +1,14 @@
    46.7 -+/* PR target/10589
    46.8 -+ * Reporter: mathieu@thenesis.com
    46.9 -+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
   46.10 -+ * Keywords: ice-on-valid-code
   46.11 -+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
   46.12 -+ * Did not fail in Hard Hat 2.0 gcc-2.97, nor in dodes gcc-3.0.2, so this is a regression, so I'm not marking it xfail
   46.13 -+ */
   46.14 -+/* { dg-do compile { target sh*-*-* } } */
   46.15 -+/* { dg-options "-fomit-frame-pointer -mdalign" } */
   46.16 -+
   46.17 -+int foo(int a, int b)
   46.18 -+{
   46.19 -+	return a / b;
   46.20 -+}
    47.1 --- a/patches/gcc/3.3.1/pr11162-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    47.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.3 @@ -1,25 +0,0 @@
    47.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    47.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c	Sun Sep 14 16:24:41 2003
    47.6 -@@ -0,0 +1,22 @@
    47.7 -+/*
    47.8 -+ * PR optimization/11162
    47.9 -+ * Reporter: Toshiyasu Morita <tm@kloo.net>
   47.10 -+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
   47.11 -+ * Keywords: ice-on-valid-code
   47.12 -+ * Description:
   47.13 -+ * [ICE] when channel.i from stress-1.17 is compiled with options:
   47.14 -+ * -O2 -m4 -fnew-ra
   47.15 -+ * ...
   47.16 -+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
   47.17 -+ * Sibcalls are supposed to end the block (and the function!), so the fact
   47.18 -+ * that we have an instruction following one (even if its fake) is confusing.
   47.19 -+ *
   47.20 -+ * testcase tweaked by dank@kegel.com
   47.21 -+ */
   47.22 -+/* { dg-do compile } */
   47.23 -+/* { dg-options "-O2 -fnew-ra" } */
   47.24 -+
   47.25 -+int foo(char *p1)
   47.26 -+{
   47.27 -+	return bar(p1);
   47.28 -+}
    48.1 --- a/patches/gcc/3.3.1/pr11587-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    48.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.3 @@ -1,39 +0,0 @@
    48.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    48.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c	Mon Sep 15 08:46:00 2003
    48.6 -@@ -0,0 +1,36 @@
    48.7 -+/* PR optimization/11587
    48.8 -+ * Reporter: Michael Eager <eager@mvista.com>
    48.9 -+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
   48.10 -+ * Keywords: ice-on-valid-code
   48.11 -+ *
   48.12 -+ * Note: a fix exists; see bugzilla
   48.13 -+ *
   48.14 -+ * Testcase tweaked by dank@kegel.com
   48.15 -+ * Not marked as xfail since it's a regression.
   48.16 -+ */
   48.17 -+
   48.18 -+/* { dg-do compile } */
   48.19 -+/* { dg-options "-O1" } */
   48.20 -+int foo1(void);
   48.21 -+int foo2();
   48.22 -+int foo3();
   48.23 -+
   48.24 -+static int goo()
   48.25 -+{
   48.26 -+	int i;
   48.27 -+
   48.28 -+	if (i <= 0)
   48.29 -+		return i;
   48.30 -+
   48.31 -+	if (foo1() > 1) {
   48.32 -+		i = foo2();
   48.33 -+		if (i < 0)
   48.34 -+			return i;
   48.35 -+		if (i) {
   48.36 -+			if (foo3())
   48.37 -+				return 1;
   48.38 -+			return 0;
   48.39 -+		}
   48.40 -+	}
   48.41 -+
   48.42 -+}
    49.1 --- a/patches/gcc/3.3.1/pr11736-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    49.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.3 @@ -1,48 +0,0 @@
    49.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    49.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c	Sun Sep 14 14:26:33 2003
    49.6 -@@ -0,0 +1,45 @@
    49.7 -+/* PR optimization/11736
    49.8 -+ * Reporter: marcus@mc.pp.se
    49.9 -+ * Summary:  Stackpointer messed up on SuperH
   49.10 -+ * Keywords: wrong-code
   49.11 -+ * Description:
   49.12 -+ * When a function with 5 arguments is called in both branches of a
   49.13 -+ * conditional, and only the last argument differs, the code to push that
   49.14 -+ * last argument on the stack gets confused. 
   49.15 -+ * Space for the fifth argument is reserved on the stack by the
   49.16 -+ * instruction I have marked as "A".  However, if the else-branch is
   49.17 -+ * taken the stackpointer is decremented _again_ at "B".  This
   49.18 -+ * decrementation is never restored, and it is only due to the
   49.19 -+ * restoration of r15 from r14 that the function works at all.  With
   49.20 -+ * -fomit-frame-pointer it will crash.
   49.21 -+ *
   49.22 -+ * Testcase tweaked by dank@kegel.com
   49.23 -+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97 
   49.24 -+ * and dodes gcc-3.0.2
   49.25 -+ */
   49.26 -+
   49.27 -+/* { dg-do run } */
   49.28 -+/* { dg-options "-O1 -fomit-frame-pointer" } */
   49.29 -+
   49.30 -+int expected_e;
   49.31 -+
   49.32 -+void bar(int a, int b, int c, int d, int e)
   49.33 -+{
   49.34 -+	if (e != expected_e)
   49.35 -+		abort();
   49.36 -+}
   49.37 -+
   49.38 -+void foo(int a)
   49.39 -+{
   49.40 -+	if (a)
   49.41 -+		bar(0, 0, 0, 0, 1);
   49.42 -+	else
   49.43 -+		bar(0, 0, 0, 0, 0);	/* stack pointer decremented extra time here, causing segfault */
   49.44 -+}
   49.45 -+
   49.46 -+int main(int argc, char **argv)
   49.47 -+{
   49.48 -+	for (expected_e = 0; expected_e < 2; expected_e++)
   49.49 -+		foo(expected_e);
   49.50 -+	return 0;
   49.51 -+}
    50.1 --- a/patches/gcc/3.3.1/pr11864-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    50.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.3 @@ -1,45 +0,0 @@
    50.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    50.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c	Sun Sep 14 14:32:24 2003
    50.6 -@@ -0,0 +1,42 @@
    50.7 -+/* PR optimization/11864
    50.8 -+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
    50.9 -+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
   50.10 -+ * Description:
   50.11 -+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
   50.12 -+ * and test if it's zero.
   50.13 -+ *
   50.14 -+ * Testcase tweaked by dank@kegel.com.  Not marked as xfail because it's a regression.
   50.15 -+ */
   50.16 -+/* { dg-do run } */
   50.17 -+/* { dg-options "-O2" } */
   50.18 -+
   50.19 -+extern void abort(void);
   50.20 -+
   50.21 -+int val = 0xff00;
   50.22 -+
   50.23 -+int f(void)
   50.24 -+{
   50.25 -+	return val;
   50.26 -+}
   50.27 -+
   50.28 -+unsigned char a[1];
   50.29 -+
   50.30 -+void foo(void)
   50.31 -+{
   50.32 -+	a[0] = f() & 255;
   50.33 -+
   50.34 -+	if (!a[0])
   50.35 -+		a[0] = f() & 255;
   50.36 -+
   50.37 -+	if (!a[0])
   50.38 -+		a[0] = 1 + (f() & 127);
   50.39 -+}
   50.40 -+
   50.41 -+int main(int argc, char **argv)
   50.42 -+{
   50.43 -+	foo();
   50.44 -+	if (!a[0])
   50.45 -+		abort();
   50.46 -+
   50.47 -+	return 0;
   50.48 -+}
    51.1 --- a/patches/gcc/3.3.1/pr11949-fix.patch	Tue Aug 14 19:32:22 2007 +0000
    51.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.3 @@ -1,61 +0,0 @@
    51.4 -Message-Id: 20030822160024.GA305@ftbfs.org
    51.5 -From: Matt Kraai kraai at alumni dot cmu dot edu
    51.6 -To: gcc-patches at gcc dot gnu dot org
    51.7 -Date: Fri, 22 Aug 2003 09:00:24 -0700
    51.8 -Subject: PR 11949
    51.9 -
   51.10 -Howdy,
   51.11 -
   51.12 -I've backported the following patch from the mainline to the 3.3
   51.13 -branch to fix PR 11949.
   51.14 -
   51.15 -Bootstrapped and regression tested on powerpc-unknown-linux-gnu.
   51.16 -
   51.17 -OK to commit?
   51.18 -
   51.19 -	PR c/11949
   51.20 -	Backport from mainline:
   51.21 -
   51.22 -	2003-05-05  Aldy Hernandez  aldyh@redhat.com
   51.23 -
   51.24 -	* testsuite/gcc.c-torture/compile/simd-6.c: New.
   51.25 -
   51.26 -	* c-typeck.c (digest_init): Handle arrays of vector constants.
   51.27 -
   51.28 -Index: gcc/c-typeck.c
   51.29 -===================================================================
   51.30 -RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
   51.31 -retrieving revision 1.213.2.8
   51.32 -diff -3 -c -p -r1.213.2.8 c-typeck.c
   51.33 -*** gcc/gcc/c-typeck.c	19 Aug 2003 01:42:35 -0000	1.213.2.8
   51.34 ---- gcc/gcc/c-typeck.c	22 Aug 2003 09:24:03 -0000
   51.35 -*************** digest_init (type, init, require_constan
   51.36 -*** 4765,4772 ****
   51.37 -    if (code == VECTOR_TYPE
   51.38 -        && comptypes (TREE_TYPE (inside_init), type)
   51.39 -        && TREE_CONSTANT (inside_init))
   51.40 -!     return build_vector (type, TREE_OPERAND (inside_init, 1));
   51.41 -! 
   51.42 -  
   51.43 -    /* Any type can be initialized
   51.44 -       from an expression of the same type, optionally with braces.  */
   51.45 ---- 4765,4778 ----
   51.46 -    if (code == VECTOR_TYPE
   51.47 -        && comptypes (TREE_TYPE (inside_init), type)
   51.48 -        && TREE_CONSTANT (inside_init))
   51.49 -!     {
   51.50 -!       if (TREE_CODE (inside_init) == VECTOR_CST
   51.51 -! 	  && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
   51.52 -! 			TYPE_MAIN_VARIANT (type)))
   51.53 -! 	return inside_init;
   51.54 -!       else
   51.55 -! 	return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
   51.56 -!     }
   51.57 -  
   51.58 -    /* Any type can be initialized
   51.59 -       from an expression of the same type, optionally with braces.  */
   51.60 -
   51.61 -typedef int __attribute__((mode(V2SI))) vec;
   51.62 -
   51.63 -vec a[] = {(vec) {1, 2}, {3, 4}};
   51.64 -
    52.1 --- a/patches/gcc/3.3.1/pr9365-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    52.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    52.3 @@ -1,43 +0,0 @@
    52.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    52.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c	Sun Sep 14 09:34:37 2003
    52.6 -@@ -0,0 +1,40 @@
    52.7 -+/* PR target/9365
    52.8 -+ * Origin: marcus@mc.pp.se
    52.9 -+ * Testcase tweaked by dank@kegel.com
   52.10 -+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
   52.11 -+ * ice-on-valid-code
   52.12 -+ * Not marked as xfail since it's a regression
   52.13 -+*/
   52.14 -+/* { dg-do compile } */
   52.15 -+/* { dg-options "-O2 -fomit-frame-pointer" } */
   52.16 -+
   52.17 -+
   52.18 -+void foo(int n, int *p)
   52.19 -+{
   52.20 -+	switch(n) {
   52.21 -+	case 100: case 110: case 120: case 130: case 140:
   52.22 -+	case 200: case 210: case 220: case 230: case 240:
   52.23 -+	case 300: case 310: case 320: case 330: case 340:
   52.24 -+	case 400: case 410: case 420: case 430: case 440:
   52.25 -+	case 500: case 510: case 520: case 530: case 540:
   52.26 -+	case 600: case 610: case 620: case 630: case 640:
   52.27 -+	case 700: case 710: case 720: case 730: case 740:
   52.28 -+	case 800: case 810: case 820: case 830: case 840:
   52.29 -+	case 900: case 910: case 920: case 930: case 940:
   52.30 -+		break;
   52.31 -+	default:
   52.32 -+		*p = n;
   52.33 -+		break;
   52.34 -+	}
   52.35 -+}
   52.36 -+
   52.37 -+int main(int argc, char **argv)
   52.38 -+{
   52.39 -+	int p;
   52.40 -+
   52.41 -+	(void) argv;
   52.42 -+
   52.43 -+	foo(argc, &p);
   52.44 -+
   52.45 -+	return p;
   52.46 -+}
    53.1 --- a/patches/gcc/3.3.1/sh-pic-set_fpscr.patch	Tue Aug 14 19:32:22 2007 +0000
    53.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    53.3 @@ -1,61 +0,0 @@
    53.4 -See http://gcc.gnu.org/PR11901
    53.5 -Should fix
    53.6 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1 
    53.7 -in glibc's "make tests".
    53.8 -
    53.9 --------------
   53.10 -
   53.11 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
   53.12 -To: dank@kegel.com
   53.13 -Cc: linux-sh@m17n.org
   53.14 -Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
   53.15 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
   53.16 -In-Reply-To: Your message of "Wed, 30 Jul 2003 11:20:49 +0900"
   53.17 -	<200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
   53.18 -References: <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
   53.19 -Date: Wed, 30 Jul 2003 12:03:01 +0900
   53.20 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   53.21 -
   53.22 -> I'll try to write the PIC version of it,
   53.23 -
   53.24 -Dan, does the attached patch work for you?
   53.25 -
   53.26 -[dank: original patch deleted; here's same thing rediffed against gcc-3.3 instead of HEAD]
   53.27 -
   53.28 ---- gcc-3.3/gcc/config/sh/lib1funcs.asm.old	Tue Jul 29 21:37:29 2003
   53.29 -+++ gcc-3.3/gcc/config/sh/lib1funcs.asm	Tue Jul 29 21:40:58 2003
   53.30 -@@ -1792,7 +1792,17 @@
   53.31 - 	.global GLOBAL(set_fpscr)
   53.32 - GLOBAL(set_fpscr):
   53.33 - 	lds r4,fpscr
   53.34 -+#ifdef __PIC__
   53.35 -+	mov.l	r12,@-r15
   53.36 -+	mova	LOCAL(set_fpscr_L0),r0
   53.37 -+	mov.l	LOCAL(set_fpscr_L0),r12
   53.38 -+	add	r0,r12
   53.39 -+	mov.l	LOCAL(set_fpscr_L1),r0
   53.40 -+	mov.l	@(r0,r12),r1
   53.41 -+	mov.l	@r15+,r12
   53.42 -+#else
   53.43 - 	mov.l LOCAL(set_fpscr_L1),r1
   53.44 -+#endif
   53.45 - 	swap.w r4,r0
   53.46 - 	or #24,r0
   53.47 - #ifndef FMOVD_WORKS
   53.48 -@@ -1820,8 +1830,16 @@
   53.49 - 	mov.l r3,@(4,r1)
   53.50 - #endif
   53.51 - 	.align 2
   53.52 -+#ifdef __PIC__
   53.53 -+LOCAL(set_fpscr_L0):
   53.54 -+	.long _GLOBAL_OFFSET_TABLE_
   53.55 -+LOCAL(set_fpscr_L1):
   53.56 -+	.long GLOBAL(fpscr_values@GOT)
   53.57 -+#else
   53.58 - LOCAL(set_fpscr_L1):
   53.59 - 	.long GLOBAL(fpscr_values)
   53.60 -+#endif
   53.61 -+
   53.62 - #ifdef __ELF__
   53.63 -         .comm   GLOBAL(fpscr_values),8,4
   53.64 - #else
    54.1 --- a/patches/gcc/3.3.1/sh-spec.patch	Tue Aug 14 19:32:22 2007 +0000
    54.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    54.3 @@ -1,52 +0,0 @@
    54.4 -See http://gcc.gnu.org/PR11902
    54.5 -
    54.6 -Part of fix for abort on line
    54.7 -  assert (info[DT_RPATH] == NULL);
    54.8 -in glibc-2.3.2's ld.so, which makes all dynamically-linked
    54.9 -programs crash.
   54.10 -
   54.11 -Message-Id: <200308020452.h724q0n01509@r-rr.iij4u.or.jp>
   54.12 -To: dank@kegel.com
   54.13 -Cc: kkojima@rr.iij4u.or.jp
   54.14 -Subject: Re: Writing PIC version of __udivsi3_i4?
   54.15 -In-Reply-To: Your message of "Fri, 01 Aug 2003 21:15:27 -0700"
   54.16 -	<3F2B3ADF.6030206@kegel.com>
   54.17 -References: <3F2B3ADF.6030206@kegel.com>
   54.18 -Date: Sat, 02 Aug 2003 13:58:05 +0900
   54.19 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   54.20 -
   54.21 -Dan Kegel <dank@kegel.com> wrote:
   54.22 -> It seems it might be from gcc's spec file:
   54.23 -> 
   54.24 -> *subtarget_link_spec:
   54.25 -> %{shared:-shared}    %{!static:      %{rdynamic:-export-dynamic}      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}      %{!rpath:-rpath /lib}}    %{static:-static}
   54.26 -> 
   54.27 -> as the only place -rpath showed up was in the output of gcc -v as it
   54.28 -> was linking libc.so.
   54.29 -> 
   54.30 -> Well, that's a clue, anyway!  Guess I'll dig through the spec files
   54.31 -> tomorrow to see if I can figure it out some more.
   54.32 -
   54.33 -I've grepped gcc/config/*/*.h and found only SH and old libc1 stuffs
   54.34 -of i386/alpha include %{!rpath:-rpath ... in 3.3 release and the
   54.35 -current CVS. And my sh-gcc's specs doesn't have this :-(
   54.36 -It would be the Right Thing to remove this stuff simply. How about
   54.37 -the gcc patch below?
   54.38 -
   54.39 -Regards,
   54.40 -	kaz
   54.41 ---
   54.42 ---- gcc-3.3/gcc/config/sh/linux.h.orig	Sat Aug  2 13:20:57 2003
   54.43 -+++ gcc-3.3/gcc/config/sh/linux.h	Sat Aug  2 13:22:42 2003
   54.44 -@@ -48,8 +48,7 @@ do { \
   54.45 -   "%{shared:-shared} \
   54.46 -    %{!static: \
   54.47 -      %{rdynamic:-export-dynamic} \
   54.48 --     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   54.49 --     %{!rpath:-rpath /lib}} \
   54.50 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
   54.51 -    %{static:-static}"
   54.52 - 
   54.53 - /* The GNU C++ standard library requires that these macros be defined.  */
   54.54 -
   54.55 -
    55.1 --- a/patches/gcc/3.3.1/sh4-pthread.patch	Tue Aug 14 19:32:22 2007 +0000
    55.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.3 @@ -1,44 +0,0 @@
    55.4 -See http://gcc.gnu.org/PR11903
    55.5 -
    55.6 -Patch to fix following test case failure:
    55.7 -
    55.8 -		=== libstdc++-v3 tests ===
    55.9 -FAIL: thread/pthread1.cc (test for excess errors)
   55.10 -Excess errors:
   55.11 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/sh4-unknown-linux-gnu/bin/ld: cannot find -lthread
   55.12 -collect2: ld returned 1 exit status
   55.13 -
   55.14 -Note that *any* program compiled with -pthread fails:
   55.15 -
   55.16 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/bin/sh4-unknown-linux-gnu-gcc hello.c  -pthread
   55.17 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/lib/gcc-lib/sh4-unknown-linux-gnu/3.3.1/../../../../sh4-unknown-linux-gnu/bin/ld: cannot find -lthread
   55.18 -collect2: ld returned 1 exit status
   55.19 -
   55.20 -Compiling with -lpthread on the other hand works fine:
   55.21 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/bin/sh4-unknown-linux-gnu-gcc hello.c  -lpthread
   55.22 -
   55.23 -So -pthread is broken in some trivial way; it should invoke -lpthread, not -lthread,
   55.24 -at least when targeting Linux. 
   55.25 -
   55.26 -http://www.sh-linux.org/rpm-2003/SRPMS/gcc-3.2.3-3.src.rpm contains a jumbo patch,
   55.27 -gcc-20030210-sh-linux-1.patch, that includes a fix for this.  Here's the
   55.28 -appropriate hunk (brings in a fix for the documented -mieee option).
   55.29 -No idea if this fix is completely right, but it works for me...
   55.30 -- dank@kegel.com  20 Jul 2003
   55.31 -
   55.32 -Index: linux.h
   55.33 -===================================================================
   55.34 -RCS file: /cvsroot/gcc/gcc/gcc/config/sh/linux.h,v
   55.35 -retrieving revision 1.9.20.1
   55.36 -diff -u -d -u -r1.9.20.1 linux.h
   55.37 ---- gcc-ss-3_3-20030714/gcc/config/sh/linux.h.old	6 Jun 2003 02:30:59 -0000	1.9.20.1
   55.38 -+++ gcc-ss-3_3-20030714/gcc/config/sh/linux.h	20 Jul 2003 23:36:50 -0000
   55.39 -@@ -59,7 +59,7 @@
   55.40 - #undef LIB_SPEC
   55.41 - #define LIB_SPEC \
   55.42 -   "%{shared: -lc} \
   55.43 --   %{!shared: %{pthread:-lthread} \
   55.44 -+   %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
   55.45 -      %{profile:-lc_p} %{!profile: -lc}}"
   55.46 - 
   55.47 - #undef STARTFILE_SPEC
    56.1 --- a/patches/gcc/3.3.1/thunk3.patch	Tue Aug 14 19:32:22 2007 +0000
    56.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.3 @@ -1,23 +0,0 @@
    56.4 -Fixes 
    56.5 -FAIL: g++.jason/thunk3.C (test for excess errors)
    56.6 -on sh4-unknown-linux-gnu.
    56.7 -
    56.8 -Does any sh variant *not* use the generic thunk support?  If so, the patch should be
    56.9 -more cautious.  As it is, it excludes all sh processors from this test.
   56.10 -
   56.11 -Index: thunk3.C
   56.12 -===================================================================
   56.13 -RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
   56.14 -retrieving revision 1.13
   56.15 -diff -u -d -u -r1.13 thunk3.C
   56.16 ---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old	25 Mar 2002 17:57:03 -0000	1.13
   56.17 -+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C	20 Jul 2003 16:57:38 -0000
   56.18 -@@ -2,7 +2,7 @@
   56.19 - // Note that this will break on any target that uses the generic thunk
   56.20 - //  support, because it doesn't support variadic functions.
   56.21 - 
   56.22 --// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3  mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
   56.23 -+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3  mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
   56.24 - 
   56.25 - #include <stdarg.h>
   56.26 - 
    57.1 --- a/patches/gcc/3.3.2/empty6.patch	Tue Aug 14 19:32:22 2007 +0000
    57.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.3 @@ -1,21 +0,0 @@
    57.4 -From 3.4 branch.  Fixes test failure
    57.5 -FAIL: g++.dg/abi/empty6.C  (test for warnings, line 6)
    57.6 -
    57.7 -===================================================================
    57.8 -RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
    57.9 -retrieving revision 1.1
   57.10 -retrieving revision 1.2
   57.11 -diff -u -r1.1 -r1.2
   57.12 ---- gcc/gcc/testsuite/g++.dg/abi/empty6.C	2002/09/25 19:07:35	1.1
   57.13 -+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C	2003/06/03 19:10:09	1.2
   57.14 -@@ -5,4 +5,9 @@
   57.15 - struct B {
   57.16 -   A a; // { dg-warning "empty" }
   57.17 -   virtual void f () {}
   57.18 --};
   57.19 -+} __attribute__((aligned(8)));
   57.20 -+/* The preceding attribute is necessary on targets with
   57.21 -+   BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
   57.22 -+   offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
   57.23 -+   and then there is no discrepancy between DECL_FIELD_OFFSET and
   57.24 -+   byte_position to warn about.  */
    58.1 --- a/patches/gcc/3.3.2/gcc-3.2.3-g++.exp.patch	Tue Aug 14 19:32:22 2007 +0000
    58.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.3 @@ -1,100 +0,0 @@
    58.4 -See http://gcc.gnu.org/PR12010
    58.5 -
    58.6 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
    58.7 -
    58.8 -The first hunk fixes the error
    58.9 -
   58.10 -/testsuite_flags: /testsuite_flags: No such file or directory
   58.11 -    while executing
   58.12 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
   58.13 -    (procedure "g++_include_flags" line 21)
   58.14 -    invoked from within
   58.15 -"g++_include_flags [get_multilibs] "
   58.16 -    (procedure "g++_init" line 63)
   58.17 -    invoked from within
   58.18 -"${tool}_init $test_file_name"
   58.19 -    (procedure "runtest" line 19)
   58.20 -    invoked from within
   58.21 -"runtest $test_name"
   58.22 -    ("foreach" body line 42)
   58.23 -    invoked from within
   58.24 -...
   58.25 -make[1]: [check-g++] Error 1 (ignored)
   58.26 -
   58.27 -The fix isn't especially pretty, but it worked for me, and can't hurt the
   58.28 -more common native compiler case.  Maybe someone who knows the code better 
   58.29 -can come up with a better fix.
   58.30 -
   58.31 -The second hunk fixes the error
   58.32 -
   58.33 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
   58.34 -
   58.35 -when trying to compile g++ testcases (!); setting up
   58.36 -the shared library environment when running crosstests of g++ 
   58.37 -should either be done by a special board file, or by
   58.38 -setting up a remote chroot environment (see http://kegel.com/crosstool),
   58.39 -not by blithely setting LD_LIBRARY_PATH on the local system.
   58.40 -
   58.41 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old	Fri Jul 11 15:42:47 2003
   58.42 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp	Sat Jul 12 12:57:07 2003
   58.43 -@@ -72,6 +72,8 @@
   58.44 - #
   58.45 - proc g++_include_flags { paths } {
   58.46 -     global srcdir
   58.47 -+    global objdir
   58.48 -+    global target_triplet
   58.49 -     global HAVE_LIBSTDCXX_V3
   58.50 -     global TESTING_IN_BUILD_TREE
   58.51 - 
   58.52 -@@ -90,6 +92,20 @@
   58.53 - 
   58.54 -     if { ${HAVE_LIBSTDCXX_V3} } {
   58.55 -       set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
   58.56 -+      if { $odir_v3 == "" } {
   58.57 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
   58.58 -+	  # first assume no multilibs
   58.59 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   58.60 -+      }
   58.61 -+      if { $odir_v3 == "" } {
   58.62 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
   58.63 -+	  # assume multilib only one level deep
   58.64 -+          set multisub [file tail $gccpath]
   58.65 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   58.66 -+      }
   58.67 -+      if { $odir_v3 == "" } {
   58.68 -+           error "Can't find libstdc++-v3"
   58.69 -+      }
   58.70 -       append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
   58.71 -     } else {
   58.72 -       set odir_v2 [lookfor_file ${gccpath} libstdc++]
   58.73 -@@ -192,16 +192,20 @@
   58.74 -       }
   58.75 -     }
   58.76 - 
   58.77 --    # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   58.78 --    # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   58.79 --    # (for the 64-bit ABI).  The right way to do this would be to modify
   58.80 --    # unix.exp -- but that's not an option since it's part of DejaGNU
   58.81 --    # proper, so we do it here.  We really only need to do 
   58.82 --    # this on IRIX, but it shouldn't hurt to do it anywhere else.
   58.83 --    setenv  LD_LIBRARY_PATH     $ld_library_path
   58.84 --    setenv  SHLIB_PATH          $ld_library_path
   58.85 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
   58.86 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
   58.87 -+    if {![is_remote target]} {
   58.88 -+      # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   58.89 -+      # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   58.90 -+      # (for the 64-bit ABI).  The right way to do this would be to modify
   58.91 -+      # unix.exp -- but that's not an option since it's part of DejaGNU
   58.92 -+      # proper, so we do it here.  We really only need to do 
   58.93 -+      # this on IRIX, but it shouldn't hurt to do it anywhere else.
   58.94 -+
   58.95 -+      # Doing this causes us to be unable to run cross-compilers.
   58.96 -+      setenv  LD_LIBRARY_PATH     $ld_library_path
   58.97 -+      setenv  SHLIB_PATH          $ld_library_path
   58.98 -+      setenv  LD_LIBRARYN32_PATH  $ld_library_path
   58.99 -+      setenv  LD_LIBRARY64_PATH   $ld_library_path
  58.100 -+    }
  58.101 - 
  58.102 -     return "$flags"
  58.103 - }
    59.1 --- a/patches/gcc/3.3.2/gcc-3.3-libstdc++-v3-dg.exp.patch	Tue Aug 14 19:32:22 2007 +0000
    59.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.3 @@ -1,54 +0,0 @@
    59.4 -Without this patch, the command
    59.5 -
    59.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
    59.7 -
    59.8 -fails in two ways:
    59.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
   59.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
   59.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
   59.12 -we just built.
   59.13 -
   59.14 -Here's an example log of the problem in action.  Every testcase fails, this shows just one:
   59.15 --------------
   59.16 -Invoking the compiler as g++ -ggdb3 -DDEBUG_ASSERT -I/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite /home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc   -g -O2 -DDEBUG_ASSERT  -L/testsuite -lv3test -lm  -o ./binders.exe
   59.17 -compiler exited with status 1
   59.18 -output is:
   59.19 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h: In method `void binder2nd<mem_fun1_ref_t<void,Elem,int> >::operator ()(const Elem &) const':^M
   59.20 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algo.h:83:   instantiated from `for_each<Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> > >(Elem *, Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> >)'^M
   59.21 -/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc:43:   instantiated from here^M
   59.22 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:224: conversion from `const Elem' to `Elem &' discards qualifiers^M
   59.23 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:622: in passing argument 1 of `mem_fun1_ref_t<void,Elem,int>::operator ()(Elem &, int) const'^M
   59.24 -...
   59.25 -FAIL: 20_util/binders.cc (test for excess errors)
   59.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
   59.27 --------------
   59.28 -
   59.29 -And here's the patch.  I'm not happy with it, and it probably gets some cases wrong,
   59.30 -but it seems to work for the common native case and for my cross-compiler case.
   59.31 -
   59.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
   59.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
   59.34 -@@ -46,8 +46,23 @@
   59.35 -     global gluefile wrap_flags
   59.36 -     global ld_library_path
   59.37 -     global tool_root_dir
   59.38 -+    global target_triplet
   59.39 - 
   59.40 -     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
   59.41 -+    if { $blddir == "" } {
   59.42 -+        set multilibs [get_multilibs]
   59.43 -+        # FIXME: assume multilib only one level deep
   59.44 -+        set multisub [file tail $multilibs]
   59.45 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
   59.46 -+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   59.47 -+    }
   59.48 -+    if { $blddir == "" } {
   59.49 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
   59.50 -+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   59.51 -+    }
   59.52 -+    if { $blddir == "" } {
   59.53 -+         error "Can't find libstdc++-v3"
   59.54 -+    }
   59.55 - 
   59.56 -     # By default, we assume we want to run program images.
   59.57 -     global dg-do-what-default
    60.1 --- a/patches/gcc/3.3.2/gcc-3.3.2-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
    60.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    60.3 @@ -1,65 +0,0 @@
    60.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
    60.5 -Adds support for arm*b-linux* big-endian ARM targets
    60.6 - 
    60.7 -See http://gcc.gnu.org/PR16350
    60.8 - 
    60.9 -diff -urN gcc-3.3.2.orig/gcc/config/arm/linux-elf.h gcc-3.3.2/gcc/config/arm/linux-elf.h
   60.10 ---- gcc-3.3.2.orig/gcc/config/arm/linux-elf.h	2003-09-16 17:39:23.000000000 +0200
   60.11 -+++ gcc-3.3.2/gcc/config/arm/linux-elf.h	2004-07-07 14:03:54.329839922 +0200
   60.12 -@@ -30,15 +30,29 @@
   60.13 - /* Do not assume anything about header files.  */
   60.14 - #define NO_IMPLICIT_EXTERN_C
   60.15 - 
   60.16 -+/*
   60.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
   60.18 -+ * (big endian) configurations.
   60.19 -+ */
   60.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
   60.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
   60.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
   60.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
   60.24 -+#else
   60.25 -+#define TARGET_ENDIAN_DEFAULT 0
   60.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
   60.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
   60.28 -+#endif
   60.29 -+
   60.30 - /* Default is to use APCS-32 mode.  */
   60.31 - #undef  TARGET_DEFAULT
   60.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
   60.33 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
   60.34 - 
   60.35 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
   60.36 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
   60.37 - 
   60.38 - #undef  MULTILIB_DEFAULTS
   60.39 - #define MULTILIB_DEFAULTS \
   60.40 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   60.41 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   60.42 - 
   60.43 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
   60.44 - 
   60.45 -@@ -86,7 +100,7 @@
   60.46 -    %{rdynamic:-export-dynamic} \
   60.47 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   60.48 -    -X \
   60.49 --   %{mbig-endian:-EB}" \
   60.50 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
   60.51 -    SUBTARGET_EXTRA_LINK_SPEC
   60.52 - 
   60.53 - #define TARGET_OS_CPP_BUILTINS()		\
   60.54 -diff -urN gcc-3.3.2.orig/gcc/config.gcc gcc-3.3.2/gcc/config.gcc
   60.55 ---- gcc-3.3.2.orig/gcc/config.gcc	2003-10-01 21:07:01.000000000 +0200
   60.56 -+++ gcc-3.3.2/gcc/config.gcc	2004-07-07 14:04:59.046716638 +0200
   60.57 -@@ -699,6 +699,11 @@
   60.58 - 	;;
   60.59 - arm*-*-linux*)			# ARM GNU/Linux with ELF
   60.60 - 	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
   60.61 -+	case $machine in
   60.62 -+	arm*b-*)
   60.63 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
   60.64 -+		;;
   60.65 -+	esac
   60.66 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
   60.67 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   60.68 - 	gnu_ld=yes
    61.1 --- a/patches/gcc/3.3.2/gcc-3.3.2-trap-posix.patch	Tue Aug 14 19:32:22 2007 +0000
    61.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    61.3 @@ -1,44 +0,0 @@
    61.4 -# 
    61.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
    61.6 -#
    61.7 -# Error:
    61.8 -#
    61.9 -# creating libintl.h
   61.10 -# Configuring etc...
   61.11 -# loading cache ../config.cache
   61.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
   61.13 -# creating ./config.status
   61.14 -# creating Makefile
   61.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
   61.16 -#
   61.17 -# Description:
   61.18 -#
   61.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
   61.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
   61.21 -#
   61.22 -# Status:
   61.23 -#
   61.24 -# fixed in gcc >= 3.3.5
   61.25 -# backport of gcc-3.3.5 fix
   61.26 -#
   61.27 -diff -ruN gcc-3.3.2-orig/configure gcc-3.3.2/configure
   61.28 ---- gcc-3.3.2-orig/configure	2002-09-29 18:11:24.000000000 +0200
   61.29 -+++ gcc-3.3.2/configure	2005-04-20 20:55:51.000000000 +0200
   61.30 -@@ -697,7 +697,7 @@
   61.31 - if test -f skip-this-dir; then
   61.32 - 	# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   61.33 - 	# and reset the trap handler.
   61.34 --	trap 0
   61.35 -+	trap '' 0
   61.36 - 	rm -rf Makefile* ${tmpdir}
   61.37 - 	# Execute the final clean-up actions
   61.38 - 	${config_shell} skip-this-dir
   61.39 -@@ -1596,7 +1596,7 @@
   61.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   61.41 - # and reset the trap handler.
   61.42 - rm -rf ${tmpdir}
   61.43 --trap 0
   61.44 -+trap '' 0
   61.45 - 
   61.46 - exit 0
   61.47 - 
    62.1 --- a/patches/gcc/3.3.2/pr10392-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    62.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    62.3 @@ -1,1 +0,0 @@
    62.4 -../3.3.1/pr10392-1-test.patch
    62.5 \ No newline at end of file
    63.1 --- a/patches/gcc/3.3.2/pr10412-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    63.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    63.3 @@ -1,1 +0,0 @@
    63.4 -../3.3.1/pr10412-1-test.patch
    63.5 \ No newline at end of file
    64.1 --- a/patches/gcc/3.3.2/pr10589-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    64.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    64.3 @@ -1,1 +0,0 @@
    64.4 -../3.3.1/pr10589-1-test.patch
    64.5 \ No newline at end of file
    65.1 --- a/patches/gcc/3.3.2/pr11162-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    65.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    65.3 @@ -1,1 +0,0 @@
    65.4 -../3.3.1/pr11162-1-test.patch
    65.5 \ No newline at end of file
    66.1 --- a/patches/gcc/3.3.2/pr11587-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    66.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    66.3 @@ -1,1 +0,0 @@
    66.4 -../3.3.1/pr11587-1-test.patch
    66.5 \ No newline at end of file
    67.1 --- a/patches/gcc/3.3.2/pr11608-fix.patch	Tue Aug 14 19:32:22 2007 +0000
    67.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.3 @@ -1,31 +0,0 @@
    67.4 -pr11608
    67.5 -
    67.6 -------------
    67.7 -I'm building and testing an x86->sh4 crosscompiler with http://kegel.com/crosstool
    67.8 -With either gcc-3.3 or gcc-ss-3_3-20030714 I get:
    67.9 -
   67.10 -Testing debug/20020327-1.c, -gstabs1
   67.11 -...
   67.12 -FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
   67.13 -Excess errors:
   67.14 -/tmp/cc8dFF7Y.s: Assembler messages:
   67.15 -/tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
   67.16 -
   67.17 -------------
   67.18 -
   67.19 -Index: elf.h
   67.20 -===================================================================
   67.21 -RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
   67.22 -retrieving revision 1.32
   67.23 -diff -u -p -r1.32 elf.h
   67.24 ---- gcc-orig/gcc/config/sh/elf.h	27 Sep 2003 04:48:28 -0000	1.32
   67.25 -+++ gcc-new/gcc/config/sh/elf.h	2 Jan 2004 07:23:23 -0000
   67.26 -@@ -95,7 +95,7 @@ while (0)
   67.27 - #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME)			\
   67.28 - do {									\
   67.29 -   text_section ();							\
   67.30 --  fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO);	\
   67.31 -+  asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
   67.32 - } while (0)
   67.33 - 
   67.34 - #undef STARTFILE_SPEC
    68.1 --- a/patches/gcc/3.3.2/pr11736-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    68.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    68.3 @@ -1,1 +0,0 @@
    68.4 -../3.3.1/pr11736-1-test.patch
    68.5 \ No newline at end of file
    69.1 --- a/patches/gcc/3.3.2/pr11864-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    69.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    69.3 @@ -1,1 +0,0 @@
    69.4 -../3.3.1/pr11864-1-test.patch
    69.5 \ No newline at end of file
    70.1 --- a/patches/gcc/3.3.2/pr13260-test.patch	Tue Aug 14 19:32:22 2007 +0000
    70.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    70.3 @@ -1,56 +0,0 @@
    70.4 -See http://gcc.gnu.org/PR13260
    70.5 -
    70.6 -/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v  -->  standard output
    70.7 -revision 1.1
    70.8 ---- -	1970-01-01 00:00:00.000000000 +0000
    70.9 -+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
   70.10 -@@ -0,0 +1,49 @@
   70.11 -+/* PR optimization/13260 */
   70.12 -+
   70.13 -+#include <string.h>
   70.14 -+
   70.15 -+typedef unsigned long u32;
   70.16 -+
   70.17 -+u32 in_aton(const char* x)
   70.18 -+{
   70.19 -+  return 0x0a0b0c0d;
   70.20 -+}
   70.21 -+
   70.22 -+u32 root_nfs_parse_addr(char *name)
   70.23 -+{
   70.24 -+ u32 addr;
   70.25 -+ int octets = 0;
   70.26 -+ char *cp, *cq;
   70.27 -+
   70.28 -+ cp = cq = name;
   70.29 -+ while (octets < 4) {
   70.30 -+  while (*cp >= '0' && *cp <= '9')
   70.31 -+   cp++;
   70.32 -+  if (cp == cq || cp - cq > 3)
   70.33 -+   break;
   70.34 -+  if (*cp == '.' || octets == 3)
   70.35 -+   octets++;
   70.36 -+  if (octets < 4)
   70.37 -+   cp++;
   70.38 -+  cq = cp;
   70.39 -+ }
   70.40 -+
   70.41 -+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
   70.42 -+  if (*cp == ':')
   70.43 -+   *cp++ = '\0';
   70.44 -+  addr = in_aton(name);
   70.45 -+  strcpy(name, cp);
   70.46 -+ } else
   70.47 -+  addr = (-1);
   70.48 -+
   70.49 -+ return addr;
   70.50 -+}
   70.51 -+
   70.52 -+int
   70.53 -+main()
   70.54 -+{
   70.55 -+  static char addr[] = "10.11.12.13:/hello";
   70.56 -+  u32 result = root_nfs_parse_addr(addr);
   70.57 -+  if (result != 0x0a0b0c0d) { abort(); }
   70.58 -+  return 0;
   70.59 -+}
    71.1 --- a/patches/gcc/3.3.2/pr9365-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    71.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.3 @@ -1,1 +0,0 @@
    71.4 -../3.3.1/pr9365-1-test.patch
    71.5 \ No newline at end of file
    72.1 --- a/patches/gcc/3.3.2/sh-lib1funcs_sizeAndType.patch	Tue Aug 14 19:32:22 2007 +0000
    72.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.3 @@ -1,610 +0,0 @@
    72.4 -Fixes the problem
    72.5 -	[ libdemo.so and main.o both use assignment on structures ]
    72.6 -	$ sh4-unknown-linux-gnu-gcc libdemo.so main.o
    72.7 -	sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
    72.8 -	[ resulting app links, but crashes at runtime ]
    72.9 -See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
   72.10 -
   72.11 -Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
   72.12 -and is in cvs as http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/lib1funcs.asm.diff?r1=1.29.4.1&r2=1.29.4.2
   72.13 -
   72.14 -but see also sh-libgcc-hidden.patch
   72.15 -
   72.16 -===================================================================
   72.17 -
   72.18 ---- gcc/gcc/config/sh/lib1funcs.asm	2002/09/20 01:29:21	1.29.4.1
   72.19 -+++ gcc/gcc/config/sh/lib1funcs.asm	2003/11/18 12:27:31
   72.20 -@@ -38,9 +38,14 @@
   72.21 -    amylaar@cygnus.com  */
   72.22 - 
   72.23 - #ifdef __ELF__
   72.24 --#define LOCAL(X) .L_##X
   72.25 --#else
   72.26 --#define LOCAL(X) L_##X
   72.27 -+#define LOCAL(X)	.L_##X
   72.28 -+#define FUNC(X)		.type X,@function
   72.29 -+#define ENDFUNC0(X)	.Lfe_##X: .size X,.Lfe_##X-X
   72.30 -+#define ENDFUNC(X)	ENDFUNC0(X)
   72.31 -+#else
   72.32 -+#define LOCAL(X)	L_##X
   72.33 -+#define FUNC(X)
   72.34 -+#define ENDFUNC(X)
   72.35 - #endif
   72.36 - 
   72.37 - #define	CONCAT(A,B)	A##B
   72.38 -@@ -87,6 +92,40 @@
   72.39 - 	.global	GLOBAL(ashiftrt_r4_31)
   72.40 - 	.global	GLOBAL(ashiftrt_r4_32)
   72.41 - 
   72.42 -+	FUNC(GLOBAL(ashiftrt_r4_0))
   72.43 -+	FUNC(GLOBAL(ashiftrt_r4_1))
   72.44 -+	FUNC(GLOBAL(ashiftrt_r4_2))
   72.45 -+	FUNC(GLOBAL(ashiftrt_r4_3))
   72.46 -+	FUNC(GLOBAL(ashiftrt_r4_4))
   72.47 -+	FUNC(GLOBAL(ashiftrt_r4_5))
   72.48 -+	FUNC(GLOBAL(ashiftrt_r4_6))
   72.49 -+	FUNC(GLOBAL(ashiftrt_r4_7))
   72.50 -+	FUNC(GLOBAL(ashiftrt_r4_8))
   72.51 -+	FUNC(GLOBAL(ashiftrt_r4_9))
   72.52 -+	FUNC(GLOBAL(ashiftrt_r4_10))
   72.53 -+	FUNC(GLOBAL(ashiftrt_r4_11))
   72.54 -+	FUNC(GLOBAL(ashiftrt_r4_12))
   72.55 -+	FUNC(GLOBAL(ashiftrt_r4_13))
   72.56 -+	FUNC(GLOBAL(ashiftrt_r4_14))
   72.57 -+	FUNC(GLOBAL(ashiftrt_r4_15))
   72.58 -+	FUNC(GLOBAL(ashiftrt_r4_16))
   72.59 -+	FUNC(GLOBAL(ashiftrt_r4_17))
   72.60 -+	FUNC(GLOBAL(ashiftrt_r4_18))
   72.61 -+	FUNC(GLOBAL(ashiftrt_r4_19))
   72.62 -+	FUNC(GLOBAL(ashiftrt_r4_20))
   72.63 -+	FUNC(GLOBAL(ashiftrt_r4_21))
   72.64 -+	FUNC(GLOBAL(ashiftrt_r4_22))
   72.65 -+	FUNC(GLOBAL(ashiftrt_r4_23))
   72.66 -+	FUNC(GLOBAL(ashiftrt_r4_24))
   72.67 -+	FUNC(GLOBAL(ashiftrt_r4_25))
   72.68 -+	FUNC(GLOBAL(ashiftrt_r4_26))
   72.69 -+	FUNC(GLOBAL(ashiftrt_r4_27))
   72.70 -+	FUNC(GLOBAL(ashiftrt_r4_28))
   72.71 -+	FUNC(GLOBAL(ashiftrt_r4_29))
   72.72 -+	FUNC(GLOBAL(ashiftrt_r4_30))
   72.73 -+	FUNC(GLOBAL(ashiftrt_r4_31))
   72.74 -+	FUNC(GLOBAL(ashiftrt_r4_32))
   72.75 -+
   72.76 - 	.align	1
   72.77 - GLOBAL(ashiftrt_r4_32):
   72.78 - GLOBAL(ashiftrt_r4_31):
   72.79 -@@ -166,6 +205,40 @@
   72.80 - GLOBAL(ashiftrt_r4_0):
   72.81 - 	rts
   72.82 - 	nop
   72.83 -+
   72.84 -+	ENDFUNC(GLOBAL(ashiftrt_r4_0))
   72.85 -+	ENDFUNC(GLOBAL(ashiftrt_r4_1))
   72.86 -+	ENDFUNC(GLOBAL(ashiftrt_r4_2))
   72.87 -+	ENDFUNC(GLOBAL(ashiftrt_r4_3))
   72.88 -+	ENDFUNC(GLOBAL(ashiftrt_r4_4))
   72.89 -+	ENDFUNC(GLOBAL(ashiftrt_r4_5))
   72.90 -+	ENDFUNC(GLOBAL(ashiftrt_r4_6))
   72.91 -+	ENDFUNC(GLOBAL(ashiftrt_r4_7))
   72.92 -+	ENDFUNC(GLOBAL(ashiftrt_r4_8))
   72.93 -+	ENDFUNC(GLOBAL(ashiftrt_r4_9))
   72.94 -+	ENDFUNC(GLOBAL(ashiftrt_r4_10))
   72.95 -+	ENDFUNC(GLOBAL(ashiftrt_r4_11))
   72.96 -+	ENDFUNC(GLOBAL(ashiftrt_r4_12))
   72.97 -+	ENDFUNC(GLOBAL(ashiftrt_r4_13))
   72.98 -+	ENDFUNC(GLOBAL(ashiftrt_r4_14))
   72.99 -+	ENDFUNC(GLOBAL(ashiftrt_r4_15))
  72.100 -+	ENDFUNC(GLOBAL(ashiftrt_r4_16))
  72.101 -+	ENDFUNC(GLOBAL(ashiftrt_r4_17))
  72.102 -+	ENDFUNC(GLOBAL(ashiftrt_r4_18))
  72.103 -+	ENDFUNC(GLOBAL(ashiftrt_r4_19))
  72.104 -+	ENDFUNC(GLOBAL(ashiftrt_r4_20))
  72.105 -+	ENDFUNC(GLOBAL(ashiftrt_r4_21))
  72.106 -+	ENDFUNC(GLOBAL(ashiftrt_r4_22))
  72.107 -+	ENDFUNC(GLOBAL(ashiftrt_r4_23))
  72.108 -+	ENDFUNC(GLOBAL(ashiftrt_r4_24))
  72.109 -+	ENDFUNC(GLOBAL(ashiftrt_r4_25))
  72.110 -+	ENDFUNC(GLOBAL(ashiftrt_r4_26))
  72.111 -+	ENDFUNC(GLOBAL(ashiftrt_r4_27))
  72.112 -+	ENDFUNC(GLOBAL(ashiftrt_r4_28))
  72.113 -+	ENDFUNC(GLOBAL(ashiftrt_r4_29))
  72.114 -+	ENDFUNC(GLOBAL(ashiftrt_r4_30))
  72.115 -+	ENDFUNC(GLOBAL(ashiftrt_r4_31))
  72.116 -+	ENDFUNC(GLOBAL(ashiftrt_r4_32))
  72.117 - #endif
  72.118 - 
  72.119 - #ifdef L_ashiftrt_n
  72.120 -@@ -188,6 +261,7 @@
  72.121 - !
  72.122 - 
  72.123 - 	.global	GLOBAL(ashrsi3)
  72.124 -+	FUNC(GLOBAL(ashrsi3))
  72.125 - 	.align	2
  72.126 - GLOBAL(ashrsi3):
  72.127 - 	mov	#31,r0
  72.128 -@@ -315,6 +389,7 @@
  72.129 - 	rts
  72.130 - 	nop
  72.131 - 
  72.132 -+	ENDFUNC(GLOBAL(ashrsi3))
  72.133 - #endif
  72.134 - 
  72.135 - #ifdef L_ashiftlt
  72.136 -@@ -336,6 +411,7 @@
  72.137 - ! (none)
  72.138 - !
  72.139 - 	.global	GLOBAL(ashlsi3)
  72.140 -+	FUNC(GLOBAL(ashlsi3))
  72.141 - 	.align	2
  72.142 - GLOBAL(ashlsi3):
  72.143 - 	mov	#31,r0
  72.144 -@@ -472,6 +548,7 @@
  72.145 - 	rts
  72.146 - 	nop
  72.147 - 
  72.148 -+	ENDFUNC(GLOBAL(ashlsi3))
  72.149 - #endif
  72.150 - 
  72.151 - #ifdef L_lshiftrt
  72.152 -@@ -493,6 +570,7 @@
  72.153 - ! (none)
  72.154 - !
  72.155 - 	.global	GLOBAL(lshrsi3)
  72.156 -+	FUNC(GLOBAL(lshrsi3))
  72.157 - 	.align	2
  72.158 - GLOBAL(lshrsi3):
  72.159 - 	mov	#31,r0
  72.160 -@@ -629,6 +707,7 @@
  72.161 - 	rts
  72.162 - 	nop
  72.163 - 
  72.164 -+	ENDFUNC(GLOBAL(lshrsi3))
  72.165 - #endif
  72.166 - 
  72.167 - #ifdef L_movstr
  72.168 -@@ -645,76 +724,113 @@
  72.169 - 	add	#64,r4
  72.170 - 	.align	4
  72.171 - 	.global	GLOBAL(movstrSI64)
  72.172 -+	FUNC(GLOBAL(movstrSI64))
  72.173 - GLOBAL(movstrSI64):
  72.174 - 	mov.l	@(60,r5),r0
  72.175 - 	mov.l	r0,@(60,r4)
  72.176 - 	.global	GLOBAL(movstrSI60)
  72.177 -+	FUNC(GLOBAL(movstrSI60))
  72.178 - GLOBAL(movstrSI60):
  72.179 - 	mov.l	@(56,r5),r0
  72.180 - 	mov.l	r0,@(56,r4)
  72.181 - 	.global	GLOBAL(movstrSI56)
  72.182 -+	FUNC(GLOBAL(movstrSI56))
  72.183 - GLOBAL(movstrSI56):
  72.184 - 	mov.l	@(52,r5),r0
  72.185 - 	mov.l	r0,@(52,r4)
  72.186 - 	.global	GLOBAL(movstrSI52)
  72.187 -+	FUNC(GLOBAL(movstrSI52))
  72.188 - GLOBAL(movstrSI52):
  72.189 - 	mov.l	@(48,r5),r0
  72.190 - 	mov.l	r0,@(48,r4)
  72.191 - 	.global	GLOBAL(movstrSI48)
  72.192 -+	FUNC(GLOBAL(movstrSI48))
  72.193 - GLOBAL(movstrSI48):
  72.194 - 	mov.l	@(44,r5),r0
  72.195 - 	mov.l	r0,@(44,r4)
  72.196 - 	.global	GLOBAL(movstrSI44)
  72.197 -+	FUNC(GLOBAL(movstrSI44))
  72.198 - GLOBAL(movstrSI44):
  72.199 - 	mov.l	@(40,r5),r0
  72.200 - 	mov.l	r0,@(40,r4)
  72.201 - 	.global	GLOBAL(movstrSI40)
  72.202 -+	FUNC(GLOBAL(movstrSI40))
  72.203 - GLOBAL(movstrSI40):
  72.204 - 	mov.l	@(36,r5),r0
  72.205 - 	mov.l	r0,@(36,r4)
  72.206 - 	.global	GLOBAL(movstrSI36)
  72.207 -+	FUNC(GLOBAL(movstrSI36))
  72.208 - GLOBAL(movstrSI36):
  72.209 - 	mov.l	@(32,r5),r0
  72.210 - 	mov.l	r0,@(32,r4)
  72.211 - 	.global	GLOBAL(movstrSI32)
  72.212 -+	FUNC(GLOBAL(movstrSI32))
  72.213 - GLOBAL(movstrSI32):
  72.214 - 	mov.l	@(28,r5),r0
  72.215 - 	mov.l	r0,@(28,r4)
  72.216 - 	.global	GLOBAL(movstrSI28)
  72.217 -+	FUNC(GLOBAL(movstrSI28))
  72.218 - GLOBAL(movstrSI28):
  72.219 - 	mov.l	@(24,r5),r0
  72.220 - 	mov.l	r0,@(24,r4)
  72.221 - 	.global	GLOBAL(movstrSI24)
  72.222 -+	FUNC(GLOBAL(movstrSI24))
  72.223 - GLOBAL(movstrSI24):
  72.224 - 	mov.l	@(20,r5),r0
  72.225 - 	mov.l	r0,@(20,r4)
  72.226 - 	.global	GLOBAL(movstrSI20)
  72.227 -+	FUNC(GLOBAL(movstrSI20))
  72.228 - GLOBAL(movstrSI20):
  72.229 - 	mov.l	@(16,r5),r0
  72.230 - 	mov.l	r0,@(16,r4)
  72.231 - 	.global	GLOBAL(movstrSI16)
  72.232 -+	FUNC(GLOBAL(movstrSI16))
  72.233 - GLOBAL(movstrSI16):
  72.234 - 	mov.l	@(12,r5),r0
  72.235 - 	mov.l	r0,@(12,r4)
  72.236 - 	.global	GLOBAL(movstrSI12)
  72.237 -+	FUNC(GLOBAL(movstrSI12))
  72.238 - GLOBAL(movstrSI12):
  72.239 - 	mov.l	@(8,r5),r0
  72.240 - 	mov.l	r0,@(8,r4)
  72.241 - 	.global	GLOBAL(movstrSI8)
  72.242 -+	FUNC(GLOBAL(movstrSI8))
  72.243 - GLOBAL(movstrSI8):
  72.244 - 	mov.l	@(4,r5),r0
  72.245 - 	mov.l	r0,@(4,r4)
  72.246 - 	.global	GLOBAL(movstrSI4)
  72.247 -+	FUNC(GLOBAL(movstrSI4))
  72.248 - GLOBAL(movstrSI4):
  72.249 - 	mov.l	@(0,r5),r0
  72.250 - 	mov.l	r0,@(0,r4)
  72.251 -+	.global	GLOBAL(movstrSI0)
  72.252 -+	FUNC(GLOBAL(movstrSI0))
  72.253 - GLOBAL(movstrSI0):
  72.254 - 	rts
  72.255 - 	nop
  72.256 - 
  72.257 -+	ENDFUNC(GLOBAL(movstrSI64))
  72.258 -+	ENDFUNC(GLOBAL(movstrSI60))
  72.259 -+	ENDFUNC(GLOBAL(movstrSI56))
  72.260 -+	ENDFUNC(GLOBAL(movstrSI52))
  72.261 -+	ENDFUNC(GLOBAL(movstrSI48))
  72.262 -+	ENDFUNC(GLOBAL(movstrSI44))
  72.263 -+	ENDFUNC(GLOBAL(movstrSI40))
  72.264 -+	ENDFUNC(GLOBAL(movstrSI36))
  72.265 -+	ENDFUNC(GLOBAL(movstrSI32))
  72.266 -+	ENDFUNC(GLOBAL(movstrSI28))
  72.267 -+	ENDFUNC(GLOBAL(movstrSI24))
  72.268 -+	ENDFUNC(GLOBAL(movstrSI20))
  72.269 -+	ENDFUNC(GLOBAL(movstrSI16))
  72.270 -+	ENDFUNC(GLOBAL(movstrSI12))
  72.271 -+	ENDFUNC(GLOBAL(movstrSI8))
  72.272 -+	ENDFUNC(GLOBAL(movstrSI4))
  72.273 -+	ENDFUNC(GLOBAL(movstrSI0))
  72.274 -+
  72.275 - 	.align	4
  72.276 - 
  72.277 - 	.global	GLOBAL(movstr)
  72.278 -+	FUNC(GLOBAL(movstr))
  72.279 - GLOBAL(movstr):
  72.280 - 	mov.l	@(60,r5),r0
  72.281 - 	mov.l	r0,@(60,r4)
  72.282 -@@ -771,6 +887,8 @@
  72.283 - 	add	#64,r5
  72.284 - 	bra	GLOBAL(movstr)
  72.285 - 	add	#64,r4
  72.286 -+
  72.287 -+	FUNC(GLOBAL(movstr))
  72.288 - #endif
  72.289 - 
  72.290 - #ifdef L_movstr_i4
  72.291 -@@ -779,6 +897,10 @@
  72.292 - 	.global	GLOBAL(movstr_i4_odd)
  72.293 - 	.global	GLOBAL(movstrSI12_i4)
  72.294 - 
  72.295 -+	FUNC(GLOBAL(movstr_i4_even))
  72.296 -+	FUNC(GLOBAL(movstr_i4_odd))
  72.297 -+	FUNC(GLOBAL(movstrSI12_i4))
  72.298 -+
  72.299 - 	.p2align	5
  72.300 - L_movstr_2mod4_end:
  72.301 - 	mov.l	r0,@(16,r4)
  72.302 -@@ -787,6 +909,11 @@
  72.303 - 
  72.304 - 	.p2align	2
  72.305 - 
  72.306 -+GLOBAL(movstr_i4_even):
  72.307 -+	mov.l	@r5+,r0
  72.308 -+	bra	L_movstr_start_even
  72.309 -+	mov.l	@r5+,r1
  72.310 -+
  72.311 - GLOBAL(movstr_i4_odd):
  72.312 - 	mov.l	@r5+,r1
  72.313 - 	add	#-4,r4
  72.314 -@@ -813,10 +940,8 @@
  72.315 - 	rts
  72.316 - 	mov.l	r3,@(12,r4)
  72.317 - 
  72.318 --GLOBAL(movstr_i4_even):
  72.319 --	mov.l	@r5+,r0
  72.320 --	bra	L_movstr_start_even
  72.321 --	mov.l	@r5+,r1
  72.322 -+	ENDFUNC(GLOBAL(movstr_i4_even))
  72.323 -+	ENDFUNC(GLOBAL(movstr_i4_odd))
  72.324 - 
  72.325 - 	.p2align	4
  72.326 - GLOBAL(movstrSI12_i4):
  72.327 -@@ -827,12 +952,15 @@
  72.328 - 	mov.l	r1,@(4,r4)
  72.329 - 	rts
  72.330 - 	mov.l	r2,@(8,r4)
  72.331 -+
  72.332 -+	ENDFUNC(GLOBAL(movstrSI12_i4))
  72.333 - #endif
  72.334 - 
  72.335 - #ifdef L_mulsi3
  72.336 - 
  72.337 - 
  72.338 - 	.global	GLOBAL(mulsi3)
  72.339 -+	FUNC(GLOBAL(mulsi3))
  72.340 - 
  72.341 - ! r4 =       aabb
  72.342 - ! r5 =       ccdd
  72.343 -@@ -865,7 +993,7 @@
  72.344 - 	rts
  72.345 - 	add	r2,r0
  72.346 - 
  72.347 --
  72.348 -+	FUNC(GLOBAL(mulsi3))
  72.349 - #endif
  72.350 - #endif /* ! __SH5__ */
  72.351 - #ifdef L_sdivsi3_i4
  72.352 -@@ -875,6 +1003,7 @@
  72.353 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
  72.354 - 
  72.355 - 	.global	GLOBAL(sdivsi3_i4)
  72.356 -+	FUNC(GLOBAL(sdivsi3_i4))
  72.357 - GLOBAL(sdivsi3_i4):
  72.358 - 	lds r4,fpul
  72.359 - 	float fpul,dr0
  72.360 -@@ -884,6 +1013,7 @@
  72.361 - 	rts
  72.362 - 	ftrc dr0,fpul
  72.363 - 
  72.364 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
  72.365 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
  72.366 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
  72.367 - 
  72.368 -@@ -892,6 +1022,7 @@
  72.369 - 	.mode	SHcompact
  72.370 - #endif
  72.371 - 	.global	GLOBAL(sdivsi3_i4)
  72.372 -+	FUNC(GLOBAL(sdivsi3_i4))
  72.373 - GLOBAL(sdivsi3_i4):
  72.374 - 	sts.l fpscr,@-r15
  72.375 - 	mov #8,r2
  72.376 -@@ -906,6 +1037,7 @@
  72.377 - 	rts
  72.378 - 	lds.l @r15+,fpscr
  72.379 - 
  72.380 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
  72.381 - #endif /* ! __SH5__ || __SH5__ == 32 */
  72.382 - #endif /* ! __SH4__ */
  72.383 - #endif
  72.384 -@@ -920,9 +1052,10 @@
  72.385 - !!
  72.386 - !!
  72.387 - 
  72.388 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
  72.389 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
  72.390 - 
  72.391 - 	.global	GLOBAL(sdivsi3)
  72.392 -+	FUNC(GLOBAL(sdivsi3))
  72.393 - #if __SHMEDIA__
  72.394 - #if __SH5__ == 32
  72.395 - 	.section	.text..SHmedia32,"ax"
  72.396 -@@ -1166,6 +1299,7 @@
  72.397 - div0:	rts
  72.398 - 	mov	#0,r0
  72.399 - 
  72.400 -+	ENDFUNC(GLOBAL(sdivsi3))
  72.401 - #endif /* ! __SHMEDIA__ */
  72.402 - #endif /* ! __SH4__ */
  72.403 - #endif
  72.404 -@@ -1174,9 +1308,11 @@
  72.405 - 	.title "SH DIVIDE"
  72.406 - !! 4 byte integer Divide code for the Hitachi SH
  72.407 - #ifdef __SH4__
  72.408 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
  72.409 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
  72.410 -+!! and t bit
  72.411 - 
  72.412 - 	.global	GLOBAL(udivsi3_i4)
  72.413 -+	FUNC(GLOBAL(udivsi3_i4))
  72.414 - GLOBAL(udivsi3_i4):
  72.415 - 	mov #1,r1
  72.416 - 	cmp/hi r1,r5
  72.417 -@@ -1217,11 +1353,13 @@
  72.418 - L1:
  72.419 - 	.double 2147483648
  72.420 - 
  72.421 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  72.422 - #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
  72.423 - #if ! __SH5__ || __SH5__ == 32
  72.424 - !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
  72.425 - 	.mode	SHmedia
  72.426 - 	.global	GLOBAL(udivsi3_i4)
  72.427 -+	FUNC(GLOBAL(udivsi3_i4))
  72.428 - GLOBAL(udivsi3_i4):
  72.429 - 	addz.l	r4,r63,r20
  72.430 - 	addz.l	r5,r63,r21
  72.431 -@@ -1234,6 +1372,8 @@
  72.432 - 	ftrc.dq dr0,dr32
  72.433 - 	fmov.s fr33,fr32
  72.434 - 	blink tr0,r63
  72.435 -+
  72.436 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  72.437 - #endif /* ! __SH5__ || __SH5__ == 32 */
  72.438 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
  72.439 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
  72.440 -@@ -1287,6 +1427,7 @@
  72.441 - #endif
  72.442 - 	.double 2147483648
  72.443 - 
  72.444 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  72.445 - #endif /* ! __SH4__ */
  72.446 - #endif
  72.447 - 
  72.448 -@@ -1297,6 +1438,7 @@
  72.449 - 
  72.450 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
  72.451 - 	.global	GLOBAL(udivsi3)
  72.452 -+	FUNC(GLOBAL(udivsi3))
  72.453 - 
  72.454 - #if __SHMEDIA__
  72.455 - #if __SH5__ == 32
  72.456 -@@ -1485,6 +1627,7 @@
  72.457 -  rts
  72.458 -  rotcl r0
  72.459 - 
  72.460 -+	ENDFUNC(GLOBAL(udivsi3))
  72.461 - #endif /* ! __SHMEDIA__ */
  72.462 - #endif /* __SH4__ */
  72.463 - #endif /* L_udivsi3 */
  72.464 -@@ -1790,6 +1933,7 @@
  72.465 - 	.mode	SHcompact
  72.466 - #endif
  72.467 - 	.global GLOBAL(set_fpscr)
  72.468 -+	FUNC(GLOBAL(set_fpscr))
  72.469 - GLOBAL(set_fpscr):
  72.470 - 	lds r4,fpscr
  72.471 - 	mov.l LOCAL(set_fpscr_L1),r1
  72.472 -@@ -1822,6 +1966,8 @@
  72.473 - 	.align 2
  72.474 - LOCAL(set_fpscr_L1):
  72.475 - 	.long GLOBAL(fpscr_values)
  72.476 -+
  72.477 -+	ENDFUNC(GLOBAL(set_fpscr))
  72.478 - #ifdef __ELF__
  72.479 -         .comm   GLOBAL(fpscr_values),8,4
  72.480 - #else
  72.481 -@@ -1860,6 +2006,7 @@
  72.482 - 	blink	tr0, r63
  72.483 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
  72.484 - 	.global GLOBAL(ic_invalidate)
  72.485 -+	FUNC(GLOBAL(ic_invalidate))
  72.486 - GLOBAL(ic_invalidate):
  72.487 - 	ocbwb	@r4
  72.488 - 	mova	0f,r0
  72.489 -@@ -1882,6 +2029,8 @@
  72.490 - 	nop
  72.491 - 	.endr
  72.492 - 	.endr
  72.493 -+
  72.494 -+	ENDFUNC(GLOBAL(ic_invalidate))
  72.495 - #endif /* SH4 */
  72.496 - #endif /* L_ic_invalidate */
  72.497 - 
  72.498 -@@ -1940,6 +2089,7 @@
  72.499 - 	will be expanded into r2/r3 upon return.  */
  72.500 - 	
  72.501 - 	.global	GLOBAL(GCC_shcompact_call_trampoline)
  72.502 -+	FUNC(GLOBAL(GCC_shcompact_call_trampoline))
  72.503 - GLOBAL(GCC_shcompact_call_trampoline):
  72.504 - 	ptabs/l	r0, tr0	/* Prepare to call the actual function.  */
  72.505 - 	movi	((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
  72.506 -@@ -2290,6 +2440,8 @@
  72.507 - 	shari	r2, 32, r2
  72.508 - #endif
  72.509 - 	blink	tr0, r63
  72.510 -+
  72.511 -+	ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
  72.512 - #endif /* L_shcompact_call_trampoline */
  72.513 - 
  72.514 - #ifdef L_shcompact_return_trampoline
  72.515 -@@ -2302,6 +2454,7 @@
  72.516 - 	.section	.text..SHmedia32, "ax"
  72.517 - 	.align	2
  72.518 - 	.global	GLOBAL(GCC_shcompact_return_trampoline)
  72.519 -+	FUNC(GLOBAL(GCC_shcompact_return_trampoline))
  72.520 - GLOBAL(GCC_shcompact_return_trampoline):
  72.521 - 	ptabs/l	r18, tr0
  72.522 - #if __LITTLE_ENDIAN__
  72.523 -@@ -2313,6 +2466,8 @@
  72.524 - #endif
  72.525 - 	or	r3, r2, r2
  72.526 - 	blink	tr0, r63
  72.527 -+
  72.528 -+	ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
  72.529 - #endif /* L_shcompact_return_trampoline */
  72.530 - 
  72.531 - #ifdef L_shcompact_incoming_args
  72.532 -@@ -2367,6 +2522,7 @@
  72.533 - 	actual bit pattern.  */
  72.534 - 	
  72.535 - 	.global	GLOBAL(GCC_shcompact_incoming_args)
  72.536 -+	FUNC(GLOBAL(GCC_shcompact_incoming_args))
  72.537 - GLOBAL(GCC_shcompact_incoming_args):
  72.538 - 	ptabs/l	r18, tr0	/* Prepare to return.  */
  72.539 - 	shlri	r17, 32, r0	/* Load the cookie.  */
  72.540 -@@ -2519,6 +2675,7 @@
  72.541 - LOCAL(ia_return):	/* Return.  */
  72.542 - 	blink	tr0, r63
  72.543 - LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction.  */
  72.544 -+	ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
  72.545 - #endif /* L_shcompact_incoming_args */
  72.546 - #endif
  72.547 - #if __SH5__
  72.548 -@@ -2530,6 +2687,7 @@
  72.549 - #endif
  72.550 - 	.align	3 /* It is copied in units of 8 bytes in SHmedia mode.  */
  72.551 - 	.global	GLOBAL(GCC_nested_trampoline)
  72.552 -+	FUNC(GLOBAL(GCC_nested_trampoline))
  72.553 - GLOBAL(GCC_nested_trampoline):
  72.554 - 	.mode	SHmedia
  72.555 - 	ptrel/u	r63, tr0
  72.556 -@@ -2546,6 +2704,8 @@
  72.557 - 	ld.l	r0, 28, r1
  72.558 - #endif
  72.559 - 	blink	tr1, r63
  72.560 -+
  72.561 -+	ENDFUNC(GLOBAL(GCC_nested_trampoline))
  72.562 - #endif /* L_nested_trampoline */
  72.563 - #endif /* __SH5__ */
  72.564 - #if __SH5__ == 32
  72.565 -@@ -2555,6 +2715,7 @@
  72.566 - 	.align	2
  72.567 - #ifndef __SH4_NOFPU__	
  72.568 - 	.global	GLOBAL(GCC_push_shmedia_regs)
  72.569 -+	FUNC(GLOBAL(GCC_push_shmedia_regs))
  72.570 - GLOBAL(GCC_push_shmedia_regs):
  72.571 - 	addi.l	r15, -14*8, r15
  72.572 - 	fst.d	r15, 13*8, dr62
  72.573 -@@ -2573,6 +2734,7 @@
  72.574 - 	fst.d	r15,  0*8, dr36
  72.575 - #endif
  72.576 - 	.global	GLOBAL(GCC_push_shmedia_regs_nofpu)
  72.577 -+	FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
  72.578 - GLOBAL(GCC_push_shmedia_regs_nofpu):
  72.579 - 	ptabs/l	r18, tr0
  72.580 - 	addi.l	r15, -27*8, r15
  72.581 -@@ -2608,8 +2770,13 @@
  72.582 - 	st.q	r15,  0*8, r28
  72.583 - 	blink	tr0, r63
  72.584 - 
  72.585 -+#ifndef __SH4_NOFPU__	
  72.586 -+	ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
  72.587 -+#endif
  72.588 -+	ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
  72.589 - #ifndef __SH4_NOFPU__
  72.590 - 	.global	GLOBAL(GCC_pop_shmedia_regs)
  72.591 -+	FUNC(GLOBAL(GCC_pop_shmedia_regs))
  72.592 - GLOBAL(GCC_pop_shmedia_regs):
  72.593 - 	pt	.L0, tr1
  72.594 - 	movi	41*8, r0
  72.595 -@@ -2630,6 +2797,7 @@
  72.596 - 	blink	tr1, r63
  72.597 - #endif
  72.598 - 	.global	GLOBAL(GCC_pop_shmedia_regs_nofpu)
  72.599 -+	FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
  72.600 - GLOBAL(GCC_pop_shmedia_regs_nofpu):
  72.601 - 	movi	27*8, r0
  72.602 - .L0:
  72.603 -@@ -2666,5 +2834,10 @@
  72.604 - 	ld.q	r15,  0*8, r28
  72.605 - 	add.l	r15, r0, r15
  72.606 - 	blink	tr0, r63
  72.607 -+
  72.608 -+#ifndef __SH4_NOFPU__
  72.609 -+	ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
  72.610 -+#endif
  72.611 -+	ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
  72.612 - #endif /* __SH5__ == 32 */
  72.613 - #endif /* L_push_pop_shmedia_regs */
    73.1 --- a/patches/gcc/3.3.2/sh-libgcc-hidden.patch	Tue Aug 14 19:32:22 2007 +0000
    73.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.3 @@ -1,122 +0,0 @@
    73.4 -[adjusted very slightly to apply to gcc-3.3.2 - dank]
    73.5 -
    73.6 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
    73.7 -
    73.8 -I've noticed one more problem about this issue.  In the testcase given
    73.9 -by ZhouChang, libdemo.so exports __movstr_i4_even which is a function
   73.10 -in libgcc.a. This itself is not a problem but it means that some functions
   73.11 -in libgcc.a which should not be exported from shared objects might be
   73.12 -exported from shared libs
   73.13 -
   73.14 -Date: Wed, 19 Nov 2003 09:04:12 +0900 (JST)
   73.15 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   73.16 -Subject: [linux-sh:03096] Re: [linux]  Re: About tool chain in
   73.17 - http://kegel.com/crosstool/
   73.18 -To: dank@kegel.com
   73.19 -Cc: zjuzhou@yahoo.com.cn, linux-sh@m17n.org, zhan_sh@yahoo.com.cn,
   73.20 -	crossgcc@sources.redhat.com
   73.21 -Message-Id: <20031119.090412.85413542.kkojima@rr.iij4u.or.jp>
   73.22 -
   73.23 -Hi,
   73.24 -
   73.25 -Dan Kegel <dank@kegel.com> wrote:
   73.26 -> I'll try that, thanks.  I notice that the '.hidden' isn't in cvs yet.
   73.27 -> I also notice you've been trying to get that into CVS for two years
   73.28 -> now (http://gcc.gnu.org/ml/gcc-patches/2001-10/msg00053.html).
   73.29 -> Time for another try?  It'd be nice if gcc-3.4 (and maybe even gcc-3.3.3)
   73.30 -> didn't need a patch for this.
   73.31 -
   73.32 -The situation is a bit complicated. sh-linux target doesn't make
   73.33 -shared libgcc in gcc-3.3.x.
   73.34 -OTOH, I withdrew that .hidden patch because gcc-3.3 has a general
   73.35 -mechanism to make all libgcc functions .hidden. But I missed that
   73.36 -that mechanism was conditionalized later so that it's done only
   73.37 -when the target creates the shared libgcc.
   73.38 -In 3.4, sh-linux target becomes to use the shared libgcc like as
   73.39 -all other linux targets, so there is no problem.
   73.40 -
   73.41 -I inclined to backport 3.4 shared libgcc stuff to 3.3.3 rather
   73.42 -than the old .hidden patch. How do you think about it?
   73.43 -I'm happy if you or ZhouChang create a PR on gcc bugzilla about
   73.44 -this issue.
   73.45 -
   73.46 -Regards,
   73.47 -	kaz
   73.48 ---
   73.49 -	This is a backport of 3.4 shared libgcc stuff to 3.3 branch.
   73.50 -	* config.gcc (sh*-*-linux*): Add t-slibgcc-elf-ver and t-linux.
   73.51 -        to tmake_file.	* config/sh/libgcc-glibc.ver: New file.
   73.52 -	* config/sh/t-linux (SHLIB_LINK): Override to use a linker script
   73.53 -	libgcc_s.so.
   73.54 -	(SHLIB_INSTALL): Likewise.
   73.55 -
   73.56 -diff -u3prN ORIG/gcc-3.3/gcc/config/sh/libgcc-glibc.ver gcc-3.3/gcc/config/sh/libgcc-glibc.ver
   73.57 ---- ORIG/gcc-3.3/gcc/config/sh/libgcc-glibc.ver	Thu Jan  1 09:00:00 1970
   73.58 -+++ gcc-3.3/gcc/config/sh/libgcc-glibc.ver	Wed Nov 19 08:15:16 2003
   73.59 -@@ -0,0 +1,21 @@
   73.60 -+# In order to work around the very problems that force us to now generally
   73.61 -+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
   73.62 -+# By now choosing the same version tags for these specific routines, we
   73.63 -+# maintain enough binary compatibility to allow future versions of glibc
   73.64 -+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
   73.65 -+
   73.66 -+# Note that we cannot use the default libgcc-glibc.ver file on sh,
   73.67 -+# because GLIBC_2.0 does not exist on this architecture, as the first 
   73.68 -+# ever glibc release on the platform was GLIBC_2.2.
   73.69 -+
   73.70 -+%inherit GCC_3.0 GLIBC_2.2
   73.71 -+GLIBC_2.2 {
   73.72 -+  __register_frame
   73.73 -+  __register_frame_table
   73.74 -+  __deregister_frame
   73.75 -+  __register_frame_info
   73.76 -+  __deregister_frame_info
   73.77 -+  __frame_state_for
   73.78 -+  __register_frame_info_table
   73.79 -+}
   73.80 -+
   73.81 -diff -u3prN ORIG/gcc-3.3/gcc/config/sh/t-linux gcc-3.3/gcc/config/sh/t-linux
   73.82 ---- ORIG/gcc-3.3/gcc/config/sh/t-linux	Fri Jun  6 11:07:14 2003
   73.83 -+++ gcc-3.3/gcc/config/sh/t-linux	Wed Nov 19 08:09:26 2003
   73.84 -@@ -12,3 +12,27 @@ MULTILIB_MATCHES = 
   73.85 - MULTILIB_EXCEPTIONS=
   73.86 - 
   73.87 - EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
   73.88 -+
   73.89 -+# Override t-slibgcc-elf-ver to export some libgcc symbols with
   73.90 -+# the symbol versions that glibc used.
   73.91 -+SHLIB_MAPFILES =  $(srcdir)/libgcc-std.ver $(srcdir)/config/sh/libgcc-glibc.ver
   73.92 -+
   73.93 -+# Override SHLIB_LINK and SHLIB_INSTALL to use linker script
   73.94 -+# libgcc_s.so.
   73.95 -+SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
   73.96 -+	-Wl,--soname=$(SHLIB_SONAME) \
   73.97 -+	-Wl,--version-script=$(SHLIB_MAP) \
   73.98 -+	-o $(SHLIB_NAME) @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
   73.99 -+	rm -f $(SHLIB_SOLINK) && \
  73.100 -+	(echo "/* GNU ld script"; \
  73.101 -+	 echo "   Use the shared library, but some functions are only in"; \
  73.102 -+	 echo "   the static library.  */"; \
  73.103 -+	 echo "GROUP ( $(SHLIB_SONAME) libgcc.a )" \
  73.104 -+	) > $(SHLIB_SOLINK)
  73.105 -+SHLIB_INSTALL = \
  73.106 -+	$$(SHELL) $$(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
  73.107 -+	$(INSTALL_DATA) $(SHLIB_NAME) \
  73.108 -+	  $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SONAME); \
  73.109 -+	rm -f $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \
  73.110 -+	$(INSTALL_DATA) $(SHLIB_SOLINK) \
  73.111 -+	  $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
  73.112 -diff -u3prN ORIG/gcc-3.3/gcc/config.gcc gcc-3.3/gcc/config.gcc
  73.113 ---- ORIG/gcc-3.3/gcc/config.gcc	Sat Aug  9 07:19:07 2003
  73.114 -+++ gcc-3.3/gcc/config.gcc	Wed Nov 19 08:07:53 2003
  73.115 -@@ -2308,7 +2308,7 @@ sh-*-rtems*)
  73.116 - 	fi
  73.117 - 	;;
  73.118 - sh-*-linux* | sh[2346lbe]*-*-linux*)
  73.119 --	tmake_file="sh/t-sh sh/t-elf"
  73.120 -+	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux"
  73.121 - 	case $machine in
  73.122 - 	sh*be-*-* | sh*eb-*-*) ;;
  73.123 - 	*)
  73.124 -
  73.125 -
    74.1 --- a/patches/gcc/3.3.2/sh-pic-set_fpscr-gcc-3.3.2.patch	Tue Aug 14 19:32:22 2007 +0000
    74.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.3 @@ -1,67 +0,0 @@
    74.4 -See http://gcc.gnu.org/PR11901
    74.5 -Should fix
    74.6 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1 
    74.7 -in glibc's "make tests".
    74.8 -
    74.9 -Note: this patch is named
   74.10 -sh-pic-set_fpscr-gcc-3.3.2.patch
   74.11 -and must be applied after 
   74.12 -sh-lib1funcs_sizeAndType.patch
   74.13 -but that'll happen naturally if you apply them in alphabetical order.
   74.14 -
   74.15 --------------
   74.16 -
   74.17 -Date: Wed, 30 Jul 2003 12:03:01 +0900
   74.18 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   74.19 -Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
   74.20 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
   74.21 -To: dank@kegel.com
   74.22 -Cc: linux-sh@m17n.org
   74.23 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
   74.24 -
   74.25 -> I'll try to write the PIC version of it,
   74.26 -
   74.27 -Dan, does the attached patch work for you?
   74.28 -
   74.29 -Regards,
   74.30 -	kaz
   74.31 ---
   74.32 -diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
   74.33 ---- ORIG/gcc/gcc/config/sh/lib1funcs.asm	Thu Jun 19 07:38:59 2003
   74.34 -+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm	Wed Jul 30 11:08:49 2003
   74.35 -@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
   74.36 - 	FUNC(GLOBAL(set_fpscr))
   74.37 - GLOBAL(set_fpscr):
   74.38 - 	lds r4,fpscr
   74.39 -+#ifdef __PIC__
   74.40 -+	mov.l	r12,@-r15
   74.41 -+	mova	LOCAL(set_fpscr_L0),r0
   74.42 -+	mov.l	LOCAL(set_fpscr_L0),r12
   74.43 -+	add	r0,r12
   74.44 -+	mov.l	LOCAL(set_fpscr_L1),r0
   74.45 -+	mov.l	@(r0,r12),r1
   74.46 -+	mov.l	@r15+,r12
   74.47 -+#else
   74.48 - 	mov.l LOCAL(set_fpscr_L1),r1
   74.49 -+#endif
   74.50 - 	swap.w r4,r0
   74.51 - 	or #24,r0
   74.52 - #ifndef FMOVD_WORKS
   74.53 -@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
   74.54 - 	mov.l r3,@(4,r1)
   74.55 - #endif
   74.56 - 	.align 2
   74.57 -+#ifdef __PIC__
   74.58 -+LOCAL(set_fpscr_L0):
   74.59 -+	.long _GLOBAL_OFFSET_TABLE_
   74.60 -+LOCAL(set_fpscr_L1):
   74.61 -+	.long GLOBAL(fpscr_values@GOT)
   74.62 -+#else
   74.63 - LOCAL(set_fpscr_L1):
   74.64 - 	.long GLOBAL(fpscr_values)
   74.65 -+#endif
   74.66 - 
   74.67 - 	ENDFUNC(GLOBAL(set_fpscr))
   74.68 - #ifndef NO_FPSCR_VALUES
   74.69 -
   74.70 -
    75.1 --- a/patches/gcc/3.3.2/thunk3.patch	Tue Aug 14 19:32:22 2007 +0000
    75.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.3 @@ -1,23 +0,0 @@
    75.4 -Fixes 
    75.5 -FAIL: g++.jason/thunk3.C (test for excess errors)
    75.6 -on sh4-unknown-linux-gnu.
    75.7 -
    75.8 -Does any sh variant *not* use the generic thunk support?  If so, the patch should be
    75.9 -more cautious.  As it is, it excludes all sh processors from this test.
   75.10 -
   75.11 -Index: thunk3.C
   75.12 -===================================================================
   75.13 -RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
   75.14 -retrieving revision 1.13
   75.15 -diff -u -d -u -r1.13 thunk3.C
   75.16 ---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old	25 Mar 2002 17:57:03 -0000	1.13
   75.17 -+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C	20 Jul 2003 16:57:38 -0000
   75.18 -@@ -2,7 +2,7 @@
   75.19 - // Note that this will break on any target that uses the generic thunk
   75.20 - //  support, because it doesn't support variadic functions.
   75.21 - 
   75.22 --// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3  mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
   75.23 -+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3  mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
   75.24 - 
   75.25 - #include <stdarg.h>
   75.26 - 
    76.1 --- a/patches/gcc/3.3.3/config.sub.patch	Tue Aug 14 19:32:22 2007 +0000
    76.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    76.3 @@ -1,72 +0,0 @@
    76.4 -When configuring a s390->s390 or cris->cris crosscompiler
    76.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
    76.6 -on an s390, and then I'll need this patch :-), you'll get the
    76.7 -following error:
    76.8 -
    76.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
   76.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
   76.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
   76.12 ---enable-languages=c
   76.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
   76.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
   76.15 ---disable-shared
   76.16 -...
   76.17 -*** --with-headers is only supported when cross compiling
   76.18 -
   76.19 -This error pops up only when you're using Daniel Jacobowitz's technique
   76.20 -of slightly changing the target and host tuples to make them different
   76.21 -enough to force gcc's build system to not try to pull in system libraries
   76.22 -or headers.  This technique is needed e.g. to build an x86 -> x86
   76.23 -cross-compiler.
   76.24 -(The LFS developers ran into the same bug that prompted me to use
   76.25 -this technique; they point people who run into it to
   76.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
   76.27 -way of avoiding this problem.  I think the tuple tweak is the way to go, though.)
   76.28 -
   76.29 -config-patches@gnu.org rejected this patch, on the grounds that there
   76.30 -is only one vendor of each of those two architectures, so the 
   76.31 -canonicalization is by definition correct.  When I pointed out the
   76.32 -difficulty this causes for people building s390 -> s390 or
   76.33 -cris -> cris compilers that are incompatible with the system
   76.34 -libraries and thus must be built like cross-compilers, he grumped and said 
   76.35 -"autoconf should let you specify a cross-compiler in some other way than
   76.36 -comparing tuple strings".
   76.37 -
   76.38 -
   76.39 -
   76.40 ---- gcc-3.3/config.sub.old	Sun Jun  8 20:38:47 2003
   76.41 -+++ gcc-3.3/config.sub	Sun Jun  8 20:40:34 2003
   76.42 -@@ -433,9 +433,12 @@
   76.43 - 	crds | unos)
   76.44 - 		basic_machine=m68k-crds
   76.45 - 		;;
   76.46 --	cris | cris-* | etrax*)
   76.47 -+	cris | etrax*)
   76.48 - 		basic_machine=cris-axis
   76.49 - 		;;
   76.50 -+	cris-*)
   76.51 -+		basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
   76.52 -+		;;
   76.53 - 	da30 | da30-*)
   76.54 - 		basic_machine=m68k-da30
   76.55 - 		;;
   76.56 -@@ -820,11 +823,17 @@
   76.57 - 	rtpc | rtpc-*)
   76.58 - 		basic_machine=romp-ibm
   76.59 - 		;;
   76.60 --	s390 | s390-*)
   76.61 -+	s390)
   76.62 - 		basic_machine=s390-ibm
   76.63 - 		;;
   76.64 --	s390x | s390x-*)
   76.65 -+	s390-*)
   76.66 -+		basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
   76.67 -+		;;
   76.68 -+	s390x)
   76.69 - 		basic_machine=s390x-ibm
   76.70 -+		;;
   76.71 -+	s390x-*)
   76.72 -+		basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
   76.73 - 		;;
   76.74 - 	sa29200)
   76.75 - 		basic_machine=a29k-amd
    77.1 --- a/patches/gcc/3.3.3/empty6.patch	Tue Aug 14 19:32:22 2007 +0000
    77.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    77.3 @@ -1,21 +0,0 @@
    77.4 -From 3.4 branch.  Fixes test failure
    77.5 -FAIL: g++.dg/abi/empty6.C  (test for warnings, line 6)
    77.6 -
    77.7 -===================================================================
    77.8 -RCS file: /cvs/gcc/gcc/gcc/testsuite/g++.dg/abi/empty6.C,v
    77.9 -retrieving revision 1.1
   77.10 -retrieving revision 1.2
   77.11 -diff -u -r1.1 -r1.2
   77.12 ---- gcc/gcc/testsuite/g++.dg/abi/empty6.C	2002/09/25 19:07:35	1.1
   77.13 -+++ gcc/gcc/testsuite/g++.dg/abi/empty6.C	2003/06/03 19:10:09	1.2
   77.14 -@@ -5,4 +5,9 @@
   77.15 - struct B {
   77.16 -   A a; // { dg-warning "empty" }
   77.17 -   virtual void f () {}
   77.18 --};
   77.19 -+} __attribute__((aligned(8)));
   77.20 -+/* The preceding attribute is necessary on targets with
   77.21 -+   BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
   77.22 -+   offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
   77.23 -+   and then there is no discrepancy between DECL_FIELD_OFFSET and
   77.24 -+   byte_position to warn about.  */
    78.1 --- a/patches/gcc/3.3.3/gcc-3.3.2-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
    78.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.3 @@ -1,65 +0,0 @@
    78.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
    78.5 -Adds support for arm*b-linux* big-endian ARM targets
    78.6 - 
    78.7 -See http://gcc.gnu.org/PR16350
    78.8 - 
    78.9 -diff -urN gcc-3.3.2.orig/gcc/config/arm/linux-elf.h gcc-3.3.2/gcc/config/arm/linux-elf.h
   78.10 ---- gcc-3.3.2.orig/gcc/config/arm/linux-elf.h	2003-09-16 17:39:23.000000000 +0200
   78.11 -+++ gcc-3.3.2/gcc/config/arm/linux-elf.h	2004-07-07 14:03:54.329839922 +0200
   78.12 -@@ -30,15 +30,29 @@
   78.13 - /* Do not assume anything about header files.  */
   78.14 - #define NO_IMPLICIT_EXTERN_C
   78.15 - 
   78.16 -+/*
   78.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
   78.18 -+ * (big endian) configurations.
   78.19 -+ */
   78.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
   78.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
   78.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
   78.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
   78.24 -+#else
   78.25 -+#define TARGET_ENDIAN_DEFAULT 0
   78.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
   78.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
   78.28 -+#endif
   78.29 -+
   78.30 - /* Default is to use APCS-32 mode.  */
   78.31 - #undef  TARGET_DEFAULT
   78.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
   78.33 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
   78.34 - 
   78.35 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
   78.36 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
   78.37 - 
   78.38 - #undef  MULTILIB_DEFAULTS
   78.39 - #define MULTILIB_DEFAULTS \
   78.40 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   78.41 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   78.42 - 
   78.43 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
   78.44 - 
   78.45 -@@ -86,7 +100,7 @@
   78.46 -    %{rdynamic:-export-dynamic} \
   78.47 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   78.48 -    -X \
   78.49 --   %{mbig-endian:-EB}" \
   78.50 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
   78.51 -    SUBTARGET_EXTRA_LINK_SPEC
   78.52 - 
   78.53 - #define TARGET_OS_CPP_BUILTINS()		\
   78.54 -diff -urN gcc-3.3.2.orig/gcc/config.gcc gcc-3.3.2/gcc/config.gcc
   78.55 ---- gcc-3.3.2.orig/gcc/config.gcc	2003-10-01 21:07:01.000000000 +0200
   78.56 -+++ gcc-3.3.2/gcc/config.gcc	2004-07-07 14:04:59.046716638 +0200
   78.57 -@@ -699,6 +699,11 @@
   78.58 - 	;;
   78.59 - arm*-*-linux*)			# ARM GNU/Linux with ELF
   78.60 - 	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h"
   78.61 -+	case $machine in
   78.62 -+	arm*b-*)
   78.63 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
   78.64 -+		;;
   78.65 -+	esac
   78.66 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
   78.67 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   78.68 - 	gnu_ld=yes
    79.1 --- a/patches/gcc/3.3.3/gcc-3.3.3-trap-posix.patch	Tue Aug 14 19:32:22 2007 +0000
    79.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    79.3 @@ -1,44 +0,0 @@
    79.4 -# 
    79.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
    79.6 -#
    79.7 -# Error:
    79.8 -#
    79.9 -# creating libintl.h
   79.10 -# Configuring etc...
   79.11 -# loading cache ../config.cache
   79.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
   79.13 -# creating ./config.status
   79.14 -# creating Makefile
   79.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
   79.16 -#
   79.17 -# Description:
   79.18 -#
   79.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
   79.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
   79.21 -#
   79.22 -# Status:
   79.23 -#
   79.24 -# fixed in gcc >= 3.3.5
   79.25 -# backport of gcc-3.3.5 fix
   79.26 -#
   79.27 -diff -ruN gcc-3.3.3-orig/configure gcc-3.3.3/configure
   79.28 ---- gcc-3.3.3-orig/configure	2002-09-29 18:11:24.000000000 +0200
   79.29 -+++ gcc-3.3.3/configure	2005-04-20 21:03:51.000000000 +0200
   79.30 -@@ -697,7 +697,7 @@
   79.31 - if test -f skip-this-dir; then
   79.32 - 	# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   79.33 - 	# and reset the trap handler.
   79.34 --	trap 0
   79.35 -+	trap '' 0
   79.36 - 	rm -rf Makefile* ${tmpdir}
   79.37 - 	# Execute the final clean-up actions
   79.38 - 	${config_shell} skip-this-dir
   79.39 -@@ -1596,7 +1596,7 @@
   79.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   79.41 - # and reset the trap handler.
   79.42 - rm -rf ${tmpdir}
   79.43 --trap 0
   79.44 -+trap '' 0
   79.45 - 
   79.46 - exit 0
   79.47 - 
    80.1 --- a/patches/gcc/3.3.3/pr10392-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    80.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    80.3 @@ -1,65 +0,0 @@
    80.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    80.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10392-1.c	Sun Sep 14 14:28:24 2003
    80.6 -@@ -0,0 +1,62 @@
    80.7 -+/* PR optimization/10392
    80.8 -+ * Reporter: marcus@mc.pp.se
    80.9 -+ * Summary: [3.3/3.4 regression] [SH] optimizer generates faulty array indexing
   80.10 -+ * Description:
   80.11 -+ * The address calculation of an index operation on an array on the stack 
   80.12 -+ * can _under some conditions_ get messed up completely
   80.13 -+ *
   80.14 -+ * Testcase tweaked by dank@kegel.com
   80.15 -+ * Problem only happens with -O2 -m4, so it should only happen on sh4,
   80.16 -+ * but what the heck, let's test other architectures, too.
   80.17 -+ * Not marked as xfail since it's a regression.
   80.18 -+*/
   80.19 -+/* { dg-do run } */
   80.20 -+/* { dg-options "-O2" } */
   80.21 -+/* { dg-options "-O2 -m4" { target sh4-*-* } } */
   80.22 -+const char *dont_optimize_function_away;
   80.23 -+
   80.24 -+const char *use(const char *str)
   80.25 -+{
   80.26 -+	dont_optimize_function_away = str;
   80.27 -+	if (str[0] != 'v')
   80.28 -+		abort();
   80.29 -+	if (str[1] < '1' || str[1] > '6')
   80.30 -+		abort();
   80.31 -+	if (str[2])
   80.32 -+		abort();
   80.33 -+	return str[2] ? "notused" : "v6";
   80.34 -+}
   80.35 -+
   80.36 -+const char *func(char *a, char *b)
   80.37 -+{
   80.38 -+	char buf[128];
   80.39 -+	unsigned char i;
   80.40 -+	const char *result;
   80.41 -+
   80.42 -+	char *item[] = {
   80.43 -+		"v1",
   80.44 -+		"v2",
   80.45 -+	};
   80.46 -+
   80.47 -+	buf[0] = 'v';
   80.48 -+	buf[1] = '3';
   80.49 -+	buf[2] = 0;
   80.50 -+
   80.51 -+	for (i = 0; i < 2; i++) {
   80.52 -+		/* bug is: following line passes wild pointer to use() on sh4 -O2 */
   80.53 -+		result = use(item[i]);
   80.54 -+
   80.55 -+		use(buf);
   80.56 -+		use(a);
   80.57 -+		use(b);
   80.58 -+		result = use(result);
   80.59 -+	}
   80.60 -+	return result;
   80.61 -+}
   80.62 -+
   80.63 -+int main()
   80.64 -+{
   80.65 -+	func("v4", "v5");
   80.66 -+	return 0;
   80.67 -+}
   80.68 -+
    81.1 --- a/patches/gcc/3.3.3/pr10412-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    81.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    81.3 @@ -1,46 +0,0 @@
    81.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    81.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10412-1.c	Sun Sep 14 16:15:21 2003
    81.6 -@@ -0,0 +1,43 @@
    81.7 -+/* PR target/10412
    81.8 -+ * Reporter: shrinivasa@kpitcummins.com 
    81.9 -+ * Summary: Renesas SH - Incorrect code generation
   81.10 -+ * Description:
   81.11 -+ * When following code is compiled  with
   81.12 -+ * sh-elf-gcc  -S -mhitachi -m2 -O2 bug1.c
   81.13 -+ * generates an incorrect code.
   81.14 -+ *
   81.15 -+ * Testcase tweaked by dank@kegel.com
   81.16 -+ * Problem only happens with -mhitachi -m2.  Not sure if I can give those
   81.17 -+ * options for all sh targets.  They work on sh4, though.
   81.18 -+ * Not marked as xfail as it's a regression relative to hardhat 2.0 gcc-2.97.
   81.19 -+*/
   81.20 -+/* { dg-do run } */
   81.21 -+/* { dg-options "-O2" } */
   81.22 -+int global_val;
   81.23 -+
   81.24 -+int func0(int x)
   81.25 -+{
   81.26 -+	global_val += x;
   81.27 -+	return (x != 99);
   81.28 -+}
   81.29 -+
   81.30 -+int func1(unsigned long addr)
   81.31 -+{
   81.32 -+	int err;
   81.33 -+
   81.34 -+	err = func0(addr);
   81.35 -+	if (err)
   81.36 -+		return (err);
   81.37 -+
   81.38 -+	err = func0(addr * 7);	/* address of func0 is lost during multiplication -> probable SIGSEGV */
   81.39 -+	return (err);
   81.40 -+}
   81.41 -+
   81.42 -+int main(int argc, char **argv)
   81.43 -+{
   81.44 -+	global_val = 0;
   81.45 -+	global_val += func1(99);
   81.46 -+	if (global_val != 99 * 8 + 1)
   81.47 -+		abort();
   81.48 -+	return 0;
   81.49 -+}
    82.1 --- a/patches/gcc/3.3.3/pr10589-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    82.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.3 @@ -1,17 +0,0 @@
    82.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    82.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr10589-1.c	Mon Sep 15 08:57:58 2003
    82.6 -@@ -0,0 +1,14 @@
    82.7 -+/* PR target/10589
    82.8 -+ * Reporter: mathieu@thenesis.com
    82.9 -+ * Summary: For Hitachi SH target, GCC crashes when both -fomit-frame-pointer and -mdalign options are specified
   82.10 -+ * Keywords: ice-on-valid-code
   82.11 -+ * Testcase by Kazu Hirata, tweaked by dank@kegel.com
   82.12 -+ * Did not fail in Hard Hat 2.0 gcc-2.97, nor in dodes gcc-3.0.2, so this is a regression, so I'm not marking it xfail
   82.13 -+ */
   82.14 -+/* { dg-do compile { target sh*-*-* } } */
   82.15 -+/* { dg-options "-fomit-frame-pointer -mdalign" } */
   82.16 -+
   82.17 -+int foo(int a, int b)
   82.18 -+{
   82.19 -+	return a / b;
   82.20 -+}
    83.1 --- a/patches/gcc/3.3.3/pr11162-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    83.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    83.3 @@ -1,25 +0,0 @@
    83.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    83.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11162-1.c	Sun Sep 14 16:24:41 2003
    83.6 -@@ -0,0 +1,22 @@
    83.7 -+/*
    83.8 -+ * PR optimization/11162
    83.9 -+ * Reporter: Toshiyasu Morita <tm@kloo.net>
   83.10 -+ * Summary: [3.4 Regression] [-fnew-ra] ICE compiling channel.i on sh
   83.11 -+ * Keywords: ice-on-valid-code
   83.12 -+ * Description:
   83.13 -+ * [ICE] when channel.i from stress-1.17 is compiled with options:
   83.14 -+ * -O2 -m4 -fnew-ra
   83.15 -+ * ...
   83.16 -+ * The CFG code gets confused by the addition of a USE insn after a sibcall.
   83.17 -+ * Sibcalls are supposed to end the block (and the function!), so the fact
   83.18 -+ * that we have an instruction following one (even if its fake) is confusing.
   83.19 -+ *
   83.20 -+ * testcase tweaked by dank@kegel.com
   83.21 -+ */
   83.22 -+/* { dg-do compile } */
   83.23 -+/* { dg-options "-O2 -fnew-ra" } */
   83.24 -+
   83.25 -+int foo(char *p1)
   83.26 -+{
   83.27 -+	return bar(p1);
   83.28 -+}
    84.1 --- a/patches/gcc/3.3.3/pr11587-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    84.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    84.3 @@ -1,39 +0,0 @@
    84.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    84.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11587-1.c	Mon Sep 15 08:46:00 2003
    84.6 -@@ -0,0 +1,36 @@
    84.7 -+/* PR optimization/11587
    84.8 -+ * Reporter: Michael Eager <eager@mvista.com>
    84.9 -+ * Summary: [3.3/3.4 Regression] SH ICE in reload_cse_simplify_operand, postreload.c
   84.10 -+ * Keywords: ice-on-valid-code
   84.11 -+ *
   84.12 -+ * Note: a fix exists; see bugzilla
   84.13 -+ *
   84.14 -+ * Testcase tweaked by dank@kegel.com
   84.15 -+ * Not marked as xfail since it's a regression.
   84.16 -+ */
   84.17 -+
   84.18 -+/* { dg-do compile } */
   84.19 -+/* { dg-options "-O1" } */
   84.20 -+int foo1(void);
   84.21 -+int foo2();
   84.22 -+int foo3();
   84.23 -+
   84.24 -+static int goo()
   84.25 -+{
   84.26 -+	int i;
   84.27 -+
   84.28 -+	if (i <= 0)
   84.29 -+		return i;
   84.30 -+
   84.31 -+	if (foo1() > 1) {
   84.32 -+		i = foo2();
   84.33 -+		if (i < 0)
   84.34 -+			return i;
   84.35 -+		if (i) {
   84.36 -+			if (foo3())
   84.37 -+				return 1;
   84.38 -+			return 0;
   84.39 -+		}
   84.40 -+	}
   84.41 -+
   84.42 -+}
    85.1 --- a/patches/gcc/3.3.3/pr11608.patch	Tue Aug 14 19:32:22 2007 +0000
    85.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    85.3 @@ -1,26 +0,0 @@
    85.4 -# See http://gcc.gnu.org/PR11608
    85.5 -# Fixes following error when testing sh4 toolchain:
    85.6 -# 
    85.7 -# Testing debug/20020327-1.c, -gstabs1
    85.8 -# ...
    85.9 -# FAIL: gcc.dg/debug/20020327-1.c (test for excess errors)
   85.10 -# Excess errors:
   85.11 -# /tmp/cc8dFF7Y.s: Assembler messages:
   85.12 -# /tmp/cc8dFF7Y.s:66: Error: symbol `Letext' is already defined
   85.13 -
   85.14 -Index: elf.h
   85.15 -===================================================================
   85.16 -RCS file: /cvs/gcc/gcc/gcc/config/sh/elf.h,v
   85.17 -retrieving revision 1.32
   85.18 -diff -u -p -r1.32 elf.h
   85.19 ---- gcc/gcc/config/sh/elf.h.old	27 Sep 2003 04:48:28 -0000	1.32
   85.20 -+++ gcc/gcc/config/sh/elf.h	2 Jan 2004 07:23:23 -0000
   85.21 -@@ -95,7 +95,7 @@ while (0)
   85.22 - #define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME)			\
   85.23 - do {									\
   85.24 -   text_section ();							\
   85.25 --  fprintf ((FILE), "\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO);	\
   85.26 -+  asm_fprintf ((FILE), "\t.stabs \"\",%d,0,0,%LLetext\n%LLetext:\n", N_SO); \
   85.27 - } while (0)
   85.28 - 
   85.29 - #undef STARTFILE_SPEC
    86.1 --- a/patches/gcc/3.3.3/pr11736-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    86.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    86.3 @@ -1,48 +0,0 @@
    86.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    86.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11736-1.c	Sun Sep 14 14:26:33 2003
    86.6 -@@ -0,0 +1,45 @@
    86.7 -+/* PR optimization/11736
    86.8 -+ * Reporter: marcus@mc.pp.se
    86.9 -+ * Summary:  Stackpointer messed up on SuperH
   86.10 -+ * Keywords: wrong-code
   86.11 -+ * Description:
   86.12 -+ * When a function with 5 arguments is called in both branches of a
   86.13 -+ * conditional, and only the last argument differs, the code to push that
   86.14 -+ * last argument on the stack gets confused. 
   86.15 -+ * Space for the fifth argument is reserved on the stack by the
   86.16 -+ * instruction I have marked as "A".  However, if the else-branch is
   86.17 -+ * taken the stackpointer is decremented _again_ at "B".  This
   86.18 -+ * decrementation is never restored, and it is only due to the
   86.19 -+ * restoration of r15 from r14 that the function works at all.  With
   86.20 -+ * -fomit-frame-pointer it will crash.
   86.21 -+ *
   86.22 -+ * Testcase tweaked by dank@kegel.com
   86.23 -+ * Not marked as xfail since it's a regression from hardhat 2.0 gcc-2.97 
   86.24 -+ * and dodes gcc-3.0.2
   86.25 -+ */
   86.26 -+
   86.27 -+/* { dg-do run } */
   86.28 -+/* { dg-options "-O1 -fomit-frame-pointer" } */
   86.29 -+
   86.30 -+int expected_e;
   86.31 -+
   86.32 -+void bar(int a, int b, int c, int d, int e)
   86.33 -+{
   86.34 -+	if (e != expected_e)
   86.35 -+		abort();
   86.36 -+}
   86.37 -+
   86.38 -+void foo(int a)
   86.39 -+{
   86.40 -+	if (a)
   86.41 -+		bar(0, 0, 0, 0, 1);
   86.42 -+	else
   86.43 -+		bar(0, 0, 0, 0, 0);	/* stack pointer decremented extra time here, causing segfault */
   86.44 -+}
   86.45 -+
   86.46 -+int main(int argc, char **argv)
   86.47 -+{
   86.48 -+	for (expected_e = 0; expected_e < 2; expected_e++)
   86.49 -+		foo(expected_e);
   86.50 -+	return 0;
   86.51 -+}
    87.1 --- a/patches/gcc/3.3.3/pr11864-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    87.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    87.3 @@ -1,45 +0,0 @@
    87.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    87.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr11864-1.c	Sun Sep 14 14:32:24 2003
    87.6 -@@ -0,0 +1,42 @@
    87.7 -+/* PR optimization/11864
    87.8 -+ * Reporter: Kazumoto Kojima <kkojima@gcc.gnu.org>
    87.9 -+ * Summary: [3.3/3.4 regression] miscompiles zero extension and test
   87.10 -+ * Description:
   87.11 -+ * gcc-3.3/3.4 -O2 for sh target may miscompile the combination of zero extension
   87.12 -+ * and test if it's zero.
   87.13 -+ *
   87.14 -+ * Testcase tweaked by dank@kegel.com.  Not marked as xfail because it's a regression.
   87.15 -+ */
   87.16 -+/* { dg-do run } */
   87.17 -+/* { dg-options "-O2" } */
   87.18 -+
   87.19 -+extern void abort(void);
   87.20 -+
   87.21 -+int val = 0xff00;
   87.22 -+
   87.23 -+int f(void)
   87.24 -+{
   87.25 -+	return val;
   87.26 -+}
   87.27 -+
   87.28 -+unsigned char a[1];
   87.29 -+
   87.30 -+void foo(void)
   87.31 -+{
   87.32 -+	a[0] = f() & 255;
   87.33 -+
   87.34 -+	if (!a[0])
   87.35 -+		a[0] = f() & 255;
   87.36 -+
   87.37 -+	if (!a[0])
   87.38 -+		a[0] = 1 + (f() & 127);
   87.39 -+}
   87.40 -+
   87.41 -+int main(int argc, char **argv)
   87.42 -+{
   87.43 -+	foo();
   87.44 -+	if (!a[0])
   87.45 -+		abort();
   87.46 -+
   87.47 -+	return 0;
   87.48 -+}
    88.1 --- a/patches/gcc/3.3.3/pr12009.patch	Tue Aug 14 19:32:22 2007 +0000
    88.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    88.3 @@ -1,85 +0,0 @@
    88.4 -See http://gcc.gnu.org/PR12009
    88.5 -
    88.6 -Fixes the following problems when testing a cross-compiler:
    88.7 -
    88.8 -============================================
    88.9 -Testing g++.dg/compat/abi/bitfield1,
   88.10 -...
   88.11 -Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-gli
   88.12 -bc-2.2.5/build-gcc/gcc/testsuite/../g++  ...
   88.13 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/test
   88.14 -suite/g++.dg/compat/abi/bitfield1_main.C
   88.15 -pid is 16028 -16028
   88.16 -compiler exited with status 1
   88.17 -output is:
   88.18 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gc
   88.19 -c-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding
   88.20 - not little-endian
   88.21 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/te
   88.22 -stsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-
   88.23 -linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file da
   88.24 -ta encoding not little-endian
   88.25 -
   88.26 -FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
   88.27 -============================================
   88.28 -
   88.29 -and
   88.30 -
   88.31 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
   88.32 -
   88.33 -
   88.34 -
   88.35 ---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old	Thu Oct 17 17:22:57 2002
   88.36 -+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp	Mon Jul 14 10:59:19 2003
   88.37 -@@ -42,11 +42,13 @@
   88.38 - proc compat-fix-library-path { } {
   88.39 -     global ld_library_path
   88.40 - 
   88.41 --    # See comments in lib/g++.exp for why this is needed.
   88.42 --    setenv  LD_LIBRARY_PATH     $ld_library_path
   88.43 --    setenv  SHLIB_PATH          $ld_library_path
   88.44 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
   88.45 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
   88.46 -+    if {![is_remote target]} {
   88.47 -+	# See comments in lib/g++.exp for why this is needed.
   88.48 -+	setenv  LD_LIBRARY_PATH     $ld_library_path
   88.49 -+	setenv  SHLIB_PATH          $ld_library_path
   88.50 -+	setenv  LD_LIBRARYN32_PATH  $ld_library_path
   88.51 -+	setenv  LD_LIBRARY64_PATH   $ld_library_path
   88.52 -+    }
   88.53 - }
   88.54 - 
   88.55 - #
   88.56 ---- gcc-3.4-20030813/gcc/testsuite/lib/g++.exp.orig	Tue Jun 17 18:56:45 2003
   88.57 -+++ gcc-3.4-20030813/gcc/testsuite/lib/g++.exp	Sun Aug 17 18:35:38 2003
   88.58 -@@ -166,16 +182,20 @@
   88.59 -       }
   88.60 -     }
   88.61 - 
   88.62 --    # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   88.63 --    # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   88.64 --    # (for the 64-bit ABI).  The right way to do this would be to modify
   88.65 --    # unix.exp -- but that's not an option since it's part of DejaGNU
   88.66 --    # proper, so we do it here.  We really only need to do 
   88.67 --    # this on IRIX, but it shouldn't hurt to do it anywhere else.
   88.68 --    setenv  LD_LIBRARY_PATH     $ld_library_path
   88.69 --    setenv  SHLIB_PATH          $ld_library_path
   88.70 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
   88.71 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
   88.72 -+    if {![is_remote target]} {
   88.73 -+      # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   88.74 -+      # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   88.75 -+      # (for the 64-bit ABI).  The right way to do this would be to modify
   88.76 -+      # unix.exp -- but that's not an option since it's part of DejaGNU
   88.77 -+      # proper, so we do it here.  We really only need to do 
   88.78 -+      # this on IRIX, but it shouldn't hurt to do it anywhere else.
   88.79 -+
   88.80 -+      # Doing this causes us to be unable to run cross-compilers.
   88.81 -+      setenv  LD_LIBRARY_PATH     $ld_library_path
   88.82 -+      setenv  SHLIB_PATH          $ld_library_path
   88.83 -+      setenv  LD_LIBRARYN32_PATH  $ld_library_path
   88.84 -+      setenv  LD_LIBRARY64_PATH   $ld_library_path
   88.85 -+    }
   88.86 - 
   88.87 -     return "$flags"
   88.88 - }
    89.1 --- a/patches/gcc/3.3.3/pr12010.patch	Tue Aug 14 19:32:22 2007 +0000
    89.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    89.3 @@ -1,81 +0,0 @@
    89.4 -Adjusted for gcc-3.3-20040119
    89.5 -
    89.6 -See http://gcc.gnu.org/PR12010
    89.7 -
    89.8 -Without this patch, one gets both compile and link time errors in
    89.9 -'make check' when configured for cross-compiling.
   89.10 -
   89.11 -In particular, 'make check' on a cross-compiler fails with
   89.12 -
   89.13 -/testsuite_flags: /testsuite_flags: No such file or directory
   89.14 -    while executing
   89.15 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
   89.16 -    (procedure "g++_include_flags" line 21)
   89.17 -    invoked from within
   89.18 -"g++_include_flags [get_multilibs] "
   89.19 -    (procedure "g++_init" line 63)
   89.20 -    invoked from within
   89.21 -"${tool}_init $test_file_name"
   89.22 -    (procedure "runtest" line 19)
   89.23 -...
   89.24 -make[1]: [check-g++] Error 1 (ignored)
   89.25 -
   89.26 ---- gcc-3.3-20040119/gcc/testsuite/lib/g++.exp.orig	2004-01-25 17:56:24.000000000 -0800
   89.27 -+++ gcc-3.3-20040119/gcc/testsuite/lib/g++.exp	2004-01-25 18:29:44.000000000 -0800
   89.28 -@@ -72,6 +72,8 @@ proc g++_version { } {
   89.29 - #
   89.30 - proc g++_include_flags { paths } {
   89.31 -     global srcdir
   89.32 -+    global objdir
   89.33 -+    global target_triplet
   89.34 -     global HAVE_LIBSTDCXX_V3
   89.35 -     global TESTING_IN_BUILD_TREE
   89.36 - 
   89.37 -@@ -90,6 +92,20 @@ proc g++_include_flags { paths } {
   89.38 - 
   89.39 -     if { ${HAVE_LIBSTDCXX_V3} } {
   89.40 -       set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
   89.41 -+      if { $odir_v3 == "" } {
   89.42 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
   89.43 -+          # first assume no multilibs
   89.44 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   89.45 -+      }
   89.46 -+      if { $odir_v3 == "" } {
   89.47 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
   89.48 -+          # assume multilib only one level deep
   89.49 -+          set multisub [file tail $gccpath]
   89.50 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   89.51 -+      }
   89.52 -+      if { $odir_v3 == "" } {
   89.53 -+           error "Can't find libstdc++-v3"
   89.54 -+      }
   89.55 -       append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
   89.56 -     } else {
   89.57 -       set odir_v2 [lookfor_file ${gccpath} libstdc++]
   89.58 -
   89.59 ---- gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
   89.60 -+++ gcc-3.3-20040119/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
   89.61 -@@ -48,8 +48,23 @@
   89.62 -     global ld_library_path
   89.63 -     global original_ld_library_path
   89.64 -     global tool_root_dir
   89.65 -+    global target_triplet
   89.66 - 
   89.67 -     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
   89.68 -+    if { $blddir == "" } {
   89.69 -+        set multilibs [get_multilibs]
   89.70 -+        # FIXME: assume multilib only one level deep
   89.71 -+        set multisub [file tail $multilibs]
   89.72 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
   89.73 -+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   89.74 -+    }
   89.75 -+    if { $blddir == "" } {
   89.76 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
   89.77 -+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   89.78 -+    }
   89.79 -+    if { $blddir == "" } {
   89.80 -+         error "Can't find libstdc++-v3"
   89.81 -+    }
   89.82 - 
   89.83 -     # By default, we assume we want to run program images.
   89.84 -     global dg-do-what-default
    90.1 --- a/patches/gcc/3.3.3/pr13250-fix.patch	Tue Aug 14 19:32:22 2007 +0000
    90.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    90.3 @@ -1,19 +0,0 @@
    90.4 -See http://gcc.gnu.org/PR13250
    90.5 -Fixes bad code generated when compiling SHA256 for SH processor
    90.6 -
    90.7 -===================================================================
    90.8 -RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
    90.9 -retrieving revision 1.171
   90.10 -retrieving revision 1.172
   90.11 -diff -u -r1.171 -r1.172
   90.12 ---- gcc/gcc/config/sh/sh.md	2004/05/10 23:25:13	1.171
   90.13 -+++ gcc/gcc/config/sh/sh.md	2004/05/28 05:47:36	1.172
   90.14 -@@ -2194,7 +2194,7 @@
   90.15 - 	parts[0] = gen_reg_rtx (SImode);
   90.16 - 	parts[1] = gen_reg_rtx (SImode);
   90.17 - 	emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
   90.18 --	parts[choice-1] = operands[1];
   90.19 -+	emit_move_insn (parts[choice-1], operands[1]);
   90.20 - 	emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
   90.21 - 	emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
   90.22 - 	emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
    91.1 --- a/patches/gcc/3.3.3/pr13260-fix-3.3.3.patch	Tue Aug 14 19:32:22 2007 +0000
    91.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    91.3 @@ -1,246 +0,0 @@
    91.4 -Date: Fri, 06 Feb 2004 12:35:58 +0900
    91.5 -From: SUGIOKA Toshinobu <sugioka@itonet.co.jp>
    91.6 -Subject: [linux-sh:03150] Re: gcc 3.3 optimisation problem
    91.7 -To: linux-sh@m17n.org
    91.8 -Message-Id: <4.2.0.58.J.20040206122503.04fe3058@router.itonet.co.jp>
    91.9 -List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
   91.10 -List-Id: linux-sh.m17n.org
   91.11 -
   91.12 -At 19:40 03/12/01 +0000, Stuart Menefy <stuart.menefy@st.com> wrote:
   91.13 ->On Sat, 29 Nov 2003 20:19:08 +0900 kkojima@rr.iij4u.or.jp wrote:
   91.14 ->
   91.15 ->> Dan Kegel <dank@kegel.com> wrote:
   91.16 ->> > Stuart Menefy wrote:
   91.17 ->> >> I've just been trying to put together a gcc 3.3.2 based toolchain, and
   91.18 ->> >> appear to be hitting a gcc optimisation bug. I was just wondering if
   91.19 ->> >> anyone else had seen anything similar.
   91.20 ->> >> 
   91.21 ->> >> The problem is seen when building the kernel, in the function
   91.22 ->> >> root_nfs_parse_addr(). I've extracted this into a small stand alone
   91.23 ->> >> program which demonstrates the problem.
   91.24 ->> > 
   91.25 ->> > Excellent work.  I haven't seen anything like this (doesn't mean much)
   91.26 ->> > and the sh-specific optimization bugs in the gcc bug database don't look
   91.27 ->> > similar.  I think you should submit this as a bug report at
   91.28 ->> > http://gcc.gnu.org/bugzilla/
   91.29 ->> > It would be good if you could make your test case call abort() if
   91.30 ->> > the problem is present, so the test case can be automated.
   91.31 ->> 
   91.32 ->> Indeed.  It'd be very nice to create a gcc PR for this issue.
   91.33 ->
   91.34 ->OK, I've done that. PR 13260.
   91.35 -
   91.36 -PR 13260 was fixed by amylaar@gcc.gnu.org at 2003-12-04 20:10:29 on mainline(gcc-3.4).
   91.37 -I have back-ported that patch to gcc-3.3.3 and seems fine for me.
   91.38 -
   91.39 -	* sh-protos.h (sh_expand_t_scc): Declare.
   91.40 -	* sh.h (PREDICATE_CODES): Add cmpsi_operand.
   91.41 -	* sh.c (cmpsi_operand, sh_expand_t_scc): New functions.
   91.42 -	* sh.md (cmpsi): Use cmpsi_operand.  If T_REG is compared to
   91.43 -	something that is not a CONST_INT, copy it into a pseudo register.
   91.44 -	(subc): Fix description of new T value.
   91.45 -	(slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over.
   91.46 -	(sltu, sleu, sgeu): Likewise.
   91.47 -	(seq, sne): Likewise. Use sh_expand_t_scc.
   91.48 -
   91.49 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh-protos.h gcc-3.3-20040126/gcc/config/sh/sh-protos.h
   91.50 ---- gcc-3.3-20040126-1/gcc/config/sh/sh-protos.h	Tue Jan 13 02:03:24 2004
   91.51 -+++ gcc-3.3-20040126/gcc/config/sh/sh-protos.h	Fri Jan 30 17:54:04 2004
   91.52 -@@ -102,6 +102,7 @@
   91.53 - extern int sh_can_redirect_branch PARAMS ((rtx, rtx));
   91.54 - extern void sh_expand_unop_v2sf PARAMS ((enum rtx_code, rtx, rtx));
   91.55 - extern void sh_expand_binop_v2sf PARAMS ((enum rtx_code, rtx, rtx, rtx));
   91.56 -+extern int sh_expand_t_scc (enum rtx_code code, rtx target);
   91.57 - #ifdef TREE_CODE
   91.58 - extern void sh_va_start PARAMS ((tree, rtx));
   91.59 - extern rtx sh_va_arg PARAMS ((tree, tree));
   91.60 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.c gcc-3.3-20040126/gcc/config/sh/sh.c
   91.61 ---- gcc-3.3-20040126-1/gcc/config/sh/sh.c	Thu Jan 15 03:11:36 2004
   91.62 -+++ gcc-3.3-20040126/gcc/config/sh/sh.c	Fri Jan 30 17:53:58 2004
   91.63 -@@ -7870,6 +7870,15 @@
   91.64 -   return register_operand (op, mode);
   91.65 - }
   91.66 - 
   91.67 -+int
   91.68 -+cmpsi_operand (rtx op, enum machine_mode mode)
   91.69 -+{
   91.70 -+  if (GET_CODE (op) == REG && REGNO (op) == T_REG
   91.71 -+      && GET_MODE (op) == SImode)
   91.72 -+    return 1;
   91.73 -+  return arith_operand (op, mode);
   91.74 -+}
   91.75 -+
   91.76 - /* INSN is an sfunc; return the rtx that describes the address used.  */
   91.77 - static rtx
   91.78 - extract_sfunc_addr (rtx insn)
   91.79 -@@ -7917,4 +7926,33 @@
   91.80 -   abort ();
   91.81 - }
   91.82 - 
   91.83 -+int
   91.84 -+sh_expand_t_scc (enum rtx_code code, rtx target)
   91.85 -+{
   91.86 -+  rtx result = target;
   91.87 -+  HOST_WIDE_INT val;
   91.88 -+
   91.89 -+  if (GET_CODE (sh_compare_op0) != REG || REGNO (sh_compare_op0) != T_REG
   91.90 -+      || GET_CODE (sh_compare_op1) != CONST_INT)
   91.91 -+    return 0;
   91.92 -+  if (GET_CODE (result) != REG)
   91.93 -+    result = gen_reg_rtx (SImode);
   91.94 -+  val = INTVAL (sh_compare_op1);
   91.95 -+  if ((code == EQ && val == 1) || (code == NE && val == 0))
   91.96 -+    emit_insn (gen_movt (result));
   91.97 -+  else if ((code == EQ && val == 0) || (code == NE && val == 1))
   91.98 -+    {
   91.99 -+      emit_insn (gen_rtx_CLOBBER (VOIDmode, result));
  91.100 -+      emit_insn (gen_subc (result, result, result));
  91.101 -+      emit_insn (gen_addsi3 (result, result, GEN_INT (1)));
  91.102 -+    }
  91.103 -+  else if (code == EQ || code == NE)
  91.104 -+    emit_insn (gen_move_insn (result, GEN_INT (code == NE)));
  91.105 -+  else
  91.106 -+    return 0;
  91.107 -+  if (result != target)
  91.108 -+    emit_move_insn (target, result);
  91.109 -+  return 1;
  91.110 -+}
  91.111 -+
  91.112 - #include "gt-sh.h"
  91.113 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.h gcc-3.3-20040126/gcc/config/sh/sh.h
  91.114 ---- gcc-3.3-20040126-1/gcc/config/sh/sh.h	Wed Apr 16 02:06:09 2003
  91.115 -+++ gcc-3.3-20040126/gcc/config/sh/sh.h	Fri Jan 30 17:53:51 2004
  91.116 -@@ -3231,6 +3231,7 @@
  91.117 -   {"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_VECTOR}},	\
  91.118 -   {"binary_float_operator", {PLUS, MINUS, MULT, DIV}},			\
  91.119 -   {"binary_logical_operator", {AND, IOR, XOR}},				\
  91.120 -+  {"cmpsi_operand", {SUBREG, REG, CONST_INT}},				\
  91.121 -   {"commutative_float_operator", {PLUS, MULT}},				\
  91.122 -   {"equality_comparison_operator", {EQ,NE}},				\
  91.123 -   {"extend_reg_operand", {SUBREG, REG, TRUNCATE}},			\
  91.124 -diff -ru gcc-3.3-20040126-1/gcc/config/sh/sh.md gcc-3.3-20040126/gcc/config/sh/sh.md
  91.125 ---- gcc-3.3-20040126-1/gcc/config/sh/sh.md	Tue Jan 13 02:03:25 2004
  91.126 -+++ gcc-3.3-20040126/gcc/config/sh/sh.md	Fri Jan 30 17:54:20 2004
  91.127 -@@ -685,11 +685,14 @@
  91.128 - 
  91.129 - (define_expand "cmpsi"
  91.130 -   [(set (reg:SI T_REG)
  91.131 --	(compare (match_operand:SI 0 "arith_operand" "")
  91.132 -+	(compare (match_operand:SI 0 "cmpsi_operand" "")
  91.133 - 		 (match_operand:SI 1 "arith_operand" "")))]
  91.134 -   "TARGET_SH1"
  91.135 -   "
  91.136 - {
  91.137 -+  if (GET_CODE (operands[0]) == REG && REGNO (operands[0]) == T_REG
  91.138 -+      && GET_CODE (operands[1]) != CONST_INT)
  91.139 -+    operands[0] = copy_to_mode_reg (SImode, operands[0]);
  91.140 -   sh_compare_op0 = operands[0];
  91.141 -   sh_compare_op1 = operands[1];
  91.142 -   DONE;
  91.143 -@@ -1147,7 +1150,9 @@
  91.144 - 			    (match_operand:SI 2 "arith_reg_operand" "r"))
  91.145 - 		  (reg:SI T_REG)))
  91.146 -    (set (reg:SI T_REG)
  91.147 --	(gtu:SI (minus:SI (match_dup 1) (match_dup 2)) (match_dup 1)))]
  91.148 -+	(gtu:SI (minus:SI (minus:SI (match_dup 1) (match_dup 2))
  91.149 -+			  (reg:SI T_REG))
  91.150 -+		(match_dup 1)))]
  91.151 -   "TARGET_SH1"
  91.152 -   "subc	%2,%0"
  91.153 -   [(set_attr "type" "arith")])
  91.154 -@@ -7223,6 +7228,10 @@
  91.155 - 	}
  91.156 -       DONE;
  91.157 -     }
  91.158 -+  if (sh_expand_t_scc (EQ, operands[0]))
  91.159 -+    DONE;
  91.160 -+  if (! rtx_equal_function_value_matters)
  91.161 -+    FAIL;
  91.162 -   operands[1] = prepare_scc_operands (EQ);
  91.163 - }")
  91.164 - 
  91.165 -@@ -7269,6 +7278,8 @@
  91.166 - 	}
  91.167 -       DONE;
  91.168 -     }
  91.169 -+  if (! rtx_equal_function_value_matters)
  91.170 -+    FAIL;
  91.171 -   operands[1] = prepare_scc_operands (LT);
  91.172 - }")
  91.173 - 
  91.174 -@@ -7371,6 +7382,8 @@
  91.175 - 	}
  91.176 -       DONE;
  91.177 -     }
  91.178 -+  if (! rtx_equal_function_value_matters)
  91.179 -+    FAIL;
  91.180 -   operands[1] = prepare_scc_operands (GT);
  91.181 - }")
  91.182 - 
  91.183 -@@ -7423,6 +7436,8 @@
  91.184 -       DONE;
  91.185 -     }
  91.186 - 
  91.187 -+  if (! rtx_equal_function_value_matters)
  91.188 -+    FAIL;
  91.189 -   if (GET_MODE_CLASS (GET_MODE (sh_compare_op0)) == MODE_FLOAT)
  91.190 -     {
  91.191 -       if (TARGET_IEEE)
  91.192 -@@ -7462,6 +7477,8 @@
  91.193 - 				     sh_compare_op0, sh_compare_op1));
  91.194 -       DONE;
  91.195 -     }
  91.196 -+  if (! rtx_equal_function_value_matters)
  91.197 -+    FAIL;
  91.198 -   operands[1] = prepare_scc_operands (GTU);
  91.199 - }")
  91.200 - 
  91.201 -@@ -7486,6 +7503,8 @@
  91.202 - 				     sh_compare_op1, sh_compare_op0));
  91.203 -       DONE;
  91.204 -     }
  91.205 -+  if (! rtx_equal_function_value_matters)
  91.206 -+    FAIL;
  91.207 -   operands[1] = prepare_scc_operands (LTU);
  91.208 - }")
  91.209 - 
  91.210 -@@ -7515,6 +7534,8 @@
  91.211 - 
  91.212 -       DONE;
  91.213 -     }
  91.214 -+  if (! rtx_equal_function_value_matters)
  91.215 -+    FAIL;
  91.216 -   operands[1] = prepare_scc_operands (LEU);
  91.217 - }")
  91.218 - 
  91.219 -@@ -7545,6 +7566,8 @@
  91.220 -       DONE;
  91.221 -     }
  91.222 - 
  91.223 -+  if (! rtx_equal_function_value_matters)
  91.224 -+    FAIL;
  91.225 -   operands[1] = prepare_scc_operands (GEU);
  91.226 - }")
  91.227 - 
  91.228 -@@ -7592,8 +7615,12 @@
  91.229 -       DONE;
  91.230 -     }
  91.231 - 
  91.232 --   operands[1] = prepare_scc_operands (EQ);
  91.233 --   operands[2] = gen_reg_rtx (SImode);
  91.234 -+  if (sh_expand_t_scc (NE, operands[0]))
  91.235 -+    DONE;
  91.236 -+  if (! rtx_equal_function_value_matters)
  91.237 -+    FAIL;
  91.238 -+  operands[1] = prepare_scc_operands (EQ);
  91.239 -+  operands[2] = gen_reg_rtx (SImode);
  91.240 - }")
  91.241 - 
  91.242 - (define_expand "sunordered"
  91.243 -
  91.244 -----
  91.245 -SUGIOKA Toshinobu
  91.246 -
  91.247 -
  91.248 -
  91.249 -
    92.1 --- a/patches/gcc/3.3.3/pr13260-test.patch	Tue Aug 14 19:32:22 2007 +0000
    92.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    92.3 @@ -1,56 +0,0 @@
    92.4 -See http://gcc.gnu.org/PR13260
    92.5 -
    92.6 -/cvs/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c,v  -->  standard output
    92.7 -revision 1.1
    92.8 ---- -	1970-01-01 00:00:00.000000000 +0000
    92.9 -+++ gcc/gcc/testsuite/gcc.c-torture/execute/20031204-1.c
   92.10 -@@ -0,0 +1,49 @@
   92.11 -+/* PR optimization/13260 */
   92.12 -+
   92.13 -+#include <string.h>
   92.14 -+
   92.15 -+typedef unsigned long u32;
   92.16 -+
   92.17 -+u32 in_aton(const char* x)
   92.18 -+{
   92.19 -+  return 0x0a0b0c0d;
   92.20 -+}
   92.21 -+
   92.22 -+u32 root_nfs_parse_addr(char *name)
   92.23 -+{
   92.24 -+ u32 addr;
   92.25 -+ int octets = 0;
   92.26 -+ char *cp, *cq;
   92.27 -+
   92.28 -+ cp = cq = name;
   92.29 -+ while (octets < 4) {
   92.30 -+  while (*cp >= '0' && *cp <= '9')
   92.31 -+   cp++;
   92.32 -+  if (cp == cq || cp - cq > 3)
   92.33 -+   break;
   92.34 -+  if (*cp == '.' || octets == 3)
   92.35 -+   octets++;
   92.36 -+  if (octets < 4)
   92.37 -+   cp++;
   92.38 -+  cq = cp;
   92.39 -+ }
   92.40 -+
   92.41 -+ if (octets == 4 && (*cp == ':' || *cp == '\0')) {
   92.42 -+  if (*cp == ':')
   92.43 -+   *cp++ = '\0';
   92.44 -+  addr = in_aton(name);
   92.45 -+  strcpy(name, cp);
   92.46 -+ } else
   92.47 -+  addr = (-1);
   92.48 -+
   92.49 -+ return addr;
   92.50 -+}
   92.51 -+
   92.52 -+int
   92.53 -+main()
   92.54 -+{
   92.55 -+  static char addr[] = "10.11.12.13:/hello";
   92.56 -+  u32 result = root_nfs_parse_addr(addr);
   92.57 -+  if (result != 0x0a0b0c0d) { abort(); }
   92.58 -+  return 0;
   92.59 -+}
    93.1 --- a/patches/gcc/3.3.3/pr15089-fix.patch	Tue Aug 14 19:32:22 2007 +0000
    93.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    93.3 @@ -1,25 +0,0 @@
    93.4 -See http://gcc.gnu.org/PR15089
    93.5 -"In some cases the specified register for a local variable meant to be
    93.6 -used with inline assembly code is not respected.  This breaks code 
    93.7 -relying on this feature to implement non-standard calling convension."
    93.8 -
    93.9 -This fix is probably needed to properly implement linux syscalls in some architectures.
   93.10 -
   93.11 -First added to crosstool by Jamie Hicks, see
   93.12 -http://www.handhelds.org/hypermail/kernel-discuss/current/0066.html
   93.13 -
   93.14 -Index: gcc/loop.c
   93.15 -===================================================================
   93.16 -RCS file: /cvs/gcc/gcc/gcc/loop.c,v
   93.17 -retrieving revision 1.488.2.3
   93.18 -diff -u -r1.488.2.3 loop.c
   93.19 ---- gcc-old/gcc/loop.c	14 Feb 2004 14:46:03 -0000	1.488.2.3
   93.20 -+++ gcc-new/gcc/loop.c	28 Apr 2004 22:02:53 -0000
   93.21 -@@ -929,6 +929,7 @@
   93.22 - 			  || (! (GET_CODE (SET_SRC (set)) == REG
   93.23 - 				 && (REGNO (SET_SRC (set))
   93.24 - 				     < FIRST_PSEUDO_REGISTER))))
   93.25 -+		      && regno >= FIRST_PSEUDO_REGISTER 
   93.26 - 		      /* This test is not redundant; SET_SRC (set) might be
   93.27 - 			 a call-clobbered register and the life of REGNO
   93.28 - 			 might span a call.  */
    94.1 --- a/patches/gcc/3.3.3/pr9365-1-test.patch	Tue Aug 14 19:32:22 2007 +0000
    94.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    94.3 @@ -1,43 +0,0 @@
    94.4 ---- /dev/null	Sat Dec 14 13:56:51 2002
    94.5 -+++ gcc-3.3.1/gcc/testsuite/gcc.dg/pr9365-1.c	Sun Sep 14 09:34:37 2003
    94.6 -@@ -0,0 +1,40 @@
    94.7 -+/* PR target/9365
    94.8 -+ * Origin: marcus@mc.pp.se
    94.9 -+ * Testcase tweaked by dank@kegel.com
   94.10 -+ * [3.3 regression] [SH] segfault in gen_far_branch (config/sh/sh.c)
   94.11 -+ * ice-on-valid-code
   94.12 -+ * Not marked as xfail since it's a regression
   94.13 -+*/
   94.14 -+/* { dg-do compile } */
   94.15 -+/* { dg-options "-O2 -fomit-frame-pointer" } */
   94.16 -+
   94.17 -+
   94.18 -+void foo(int n, int *p)
   94.19 -+{
   94.20 -+	switch(n) {
   94.21 -+	case 100: case 110: case 120: case 130: case 140:
   94.22 -+	case 200: case 210: case 220: case 230: case 240:
   94.23 -+	case 300: case 310: case 320: case 330: case 340:
   94.24 -+	case 400: case 410: case 420: case 430: case 440:
   94.25 -+	case 500: case 510: case 520: case 530: case 540:
   94.26 -+	case 600: case 610: case 620: case 630: case 640:
   94.27 -+	case 700: case 710: case 720: case 730: case 740:
   94.28 -+	case 800: case 810: case 820: case 830: case 840:
   94.29 -+	case 900: case 910: case 920: case 930: case 940:
   94.30 -+		break;
   94.31 -+	default:
   94.32 -+		*p = n;
   94.33 -+		break;
   94.34 -+	}
   94.35 -+}
   94.36 -+
   94.37 -+int main(int argc, char **argv)
   94.38 -+{
   94.39 -+	int p;
   94.40 -+
   94.41 -+	(void) argv;
   94.42 -+
   94.43 -+	foo(argc, &p);
   94.44 -+
   94.45 -+	return p;
   94.46 -+}
    95.1 --- a/patches/gcc/3.3.3/sh-lib1funcs_sizeAndType.patch	Tue Aug 14 19:32:22 2007 +0000
    95.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    95.3 @@ -1,610 +0,0 @@
    95.4 -Fixes the problem
    95.5 -	[ libdemo.so and main.o both use assignment on structures ]
    95.6 -	$ sh4-unknown-linux-gnu-gcc libdemo.so main.o
    95.7 -	sh4-unknown-linux-gnu/bin/ld: warning: type and size of dynamic symbol `__movstr_i4_even' are not defined
    95.8 -	[ resulting app links, but crashes at runtime ]
    95.9 -See testcase at http://tsukuba.m17n.org/linux-sh/ml/linux-sh/2003-11/msg00016.html
   95.10 -
   95.11 -Patch was posted as http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01641.html
   95.12 -and is in cvs as http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/lib1funcs.asm.diff?r1=1.29.4.1&r2=1.29.4.2
   95.13 -
   95.14 -but see also sh-libgcc-hidden.patch (part of gcc-3.3.3 as of 20040119 or so)
   95.15 -
   95.16 -===================================================================
   95.17 -
   95.18 ---- gcc/gcc/config/sh/lib1funcs.asm	2002/09/20 01:29:21	1.29.4.1
   95.19 -+++ gcc/gcc/config/sh/lib1funcs.asm	2003/11/18 12:27:31
   95.20 -@@ -38,9 +38,14 @@
   95.21 -    amylaar@cygnus.com  */
   95.22 - 
   95.23 - #ifdef __ELF__
   95.24 --#define LOCAL(X) .L_##X
   95.25 --#else
   95.26 --#define LOCAL(X) L_##X
   95.27 -+#define LOCAL(X)	.L_##X
   95.28 -+#define FUNC(X)		.type X,@function
   95.29 -+#define ENDFUNC0(X)	.Lfe_##X: .size X,.Lfe_##X-X
   95.30 -+#define ENDFUNC(X)	ENDFUNC0(X)
   95.31 -+#else
   95.32 -+#define LOCAL(X)	L_##X
   95.33 -+#define FUNC(X)
   95.34 -+#define ENDFUNC(X)
   95.35 - #endif
   95.36 - 
   95.37 - #define	CONCAT(A,B)	A##B
   95.38 -@@ -87,6 +92,40 @@
   95.39 - 	.global	GLOBAL(ashiftrt_r4_31)
   95.40 - 	.global	GLOBAL(ashiftrt_r4_32)
   95.41 - 
   95.42 -+	FUNC(GLOBAL(ashiftrt_r4_0))
   95.43 -+	FUNC(GLOBAL(ashiftrt_r4_1))
   95.44 -+	FUNC(GLOBAL(ashiftrt_r4_2))
   95.45 -+	FUNC(GLOBAL(ashiftrt_r4_3))
   95.46 -+	FUNC(GLOBAL(ashiftrt_r4_4))
   95.47 -+	FUNC(GLOBAL(ashiftrt_r4_5))
   95.48 -+	FUNC(GLOBAL(ashiftrt_r4_6))
   95.49 -+	FUNC(GLOBAL(ashiftrt_r4_7))
   95.50 -+	FUNC(GLOBAL(ashiftrt_r4_8))
   95.51 -+	FUNC(GLOBAL(ashiftrt_r4_9))
   95.52 -+	FUNC(GLOBAL(ashiftrt_r4_10))
   95.53 -+	FUNC(GLOBAL(ashiftrt_r4_11))
   95.54 -+	FUNC(GLOBAL(ashiftrt_r4_12))
   95.55 -+	FUNC(GLOBAL(ashiftrt_r4_13))
   95.56 -+	FUNC(GLOBAL(ashiftrt_r4_14))
   95.57 -+	FUNC(GLOBAL(ashiftrt_r4_15))
   95.58 -+	FUNC(GLOBAL(ashiftrt_r4_16))
   95.59 -+	FUNC(GLOBAL(ashiftrt_r4_17))
   95.60 -+	FUNC(GLOBAL(ashiftrt_r4_18))
   95.61 -+	FUNC(GLOBAL(ashiftrt_r4_19))
   95.62 -+	FUNC(GLOBAL(ashiftrt_r4_20))
   95.63 -+	FUNC(GLOBAL(ashiftrt_r4_21))
   95.64 -+	FUNC(GLOBAL(ashiftrt_r4_22))
   95.65 -+	FUNC(GLOBAL(ashiftrt_r4_23))
   95.66 -+	FUNC(GLOBAL(ashiftrt_r4_24))
   95.67 -+	FUNC(GLOBAL(ashiftrt_r4_25))
   95.68 -+	FUNC(GLOBAL(ashiftrt_r4_26))
   95.69 -+	FUNC(GLOBAL(ashiftrt_r4_27))
   95.70 -+	FUNC(GLOBAL(ashiftrt_r4_28))
   95.71 -+	FUNC(GLOBAL(ashiftrt_r4_29))
   95.72 -+	FUNC(GLOBAL(ashiftrt_r4_30))
   95.73 -+	FUNC(GLOBAL(ashiftrt_r4_31))
   95.74 -+	FUNC(GLOBAL(ashiftrt_r4_32))
   95.75 -+
   95.76 - 	.align	1
   95.77 - GLOBAL(ashiftrt_r4_32):
   95.78 - GLOBAL(ashiftrt_r4_31):
   95.79 -@@ -166,6 +205,40 @@
   95.80 - GLOBAL(ashiftrt_r4_0):
   95.81 - 	rts
   95.82 - 	nop
   95.83 -+
   95.84 -+	ENDFUNC(GLOBAL(ashiftrt_r4_0))
   95.85 -+	ENDFUNC(GLOBAL(ashiftrt_r4_1))
   95.86 -+	ENDFUNC(GLOBAL(ashiftrt_r4_2))
   95.87 -+	ENDFUNC(GLOBAL(ashiftrt_r4_3))
   95.88 -+	ENDFUNC(GLOBAL(ashiftrt_r4_4))
   95.89 -+	ENDFUNC(GLOBAL(ashiftrt_r4_5))
   95.90 -+	ENDFUNC(GLOBAL(ashiftrt_r4_6))
   95.91 -+	ENDFUNC(GLOBAL(ashiftrt_r4_7))
   95.92 -+	ENDFUNC(GLOBAL(ashiftrt_r4_8))
   95.93 -+	ENDFUNC(GLOBAL(ashiftrt_r4_9))
   95.94 -+	ENDFUNC(GLOBAL(ashiftrt_r4_10))
   95.95 -+	ENDFUNC(GLOBAL(ashiftrt_r4_11))
   95.96 -+	ENDFUNC(GLOBAL(ashiftrt_r4_12))
   95.97 -+	ENDFUNC(GLOBAL(ashiftrt_r4_13))
   95.98 -+	ENDFUNC(GLOBAL(ashiftrt_r4_14))
   95.99 -+	ENDFUNC(GLOBAL(ashiftrt_r4_15))
  95.100 -+	ENDFUNC(GLOBAL(ashiftrt_r4_16))
  95.101 -+	ENDFUNC(GLOBAL(ashiftrt_r4_17))
  95.102 -+	ENDFUNC(GLOBAL(ashiftrt_r4_18))
  95.103 -+	ENDFUNC(GLOBAL(ashiftrt_r4_19))
  95.104 -+	ENDFUNC(GLOBAL(ashiftrt_r4_20))
  95.105 -+	ENDFUNC(GLOBAL(ashiftrt_r4_21))
  95.106 -+	ENDFUNC(GLOBAL(ashiftrt_r4_22))
  95.107 -+	ENDFUNC(GLOBAL(ashiftrt_r4_23))
  95.108 -+	ENDFUNC(GLOBAL(ashiftrt_r4_24))
  95.109 -+	ENDFUNC(GLOBAL(ashiftrt_r4_25))
  95.110 -+	ENDFUNC(GLOBAL(ashiftrt_r4_26))
  95.111 -+	ENDFUNC(GLOBAL(ashiftrt_r4_27))
  95.112 -+	ENDFUNC(GLOBAL(ashiftrt_r4_28))
  95.113 -+	ENDFUNC(GLOBAL(ashiftrt_r4_29))
  95.114 -+	ENDFUNC(GLOBAL(ashiftrt_r4_30))
  95.115 -+	ENDFUNC(GLOBAL(ashiftrt_r4_31))
  95.116 -+	ENDFUNC(GLOBAL(ashiftrt_r4_32))
  95.117 - #endif
  95.118 - 
  95.119 - #ifdef L_ashiftrt_n
  95.120 -@@ -188,6 +261,7 @@
  95.121 - !
  95.122 - 
  95.123 - 	.global	GLOBAL(ashrsi3)
  95.124 -+	FUNC(GLOBAL(ashrsi3))
  95.125 - 	.align	2
  95.126 - GLOBAL(ashrsi3):
  95.127 - 	mov	#31,r0
  95.128 -@@ -315,6 +389,7 @@
  95.129 - 	rts
  95.130 - 	nop
  95.131 - 
  95.132 -+	ENDFUNC(GLOBAL(ashrsi3))
  95.133 - #endif
  95.134 - 
  95.135 - #ifdef L_ashiftlt
  95.136 -@@ -336,6 +411,7 @@
  95.137 - ! (none)
  95.138 - !
  95.139 - 	.global	GLOBAL(ashlsi3)
  95.140 -+	FUNC(GLOBAL(ashlsi3))
  95.141 - 	.align	2
  95.142 - GLOBAL(ashlsi3):
  95.143 - 	mov	#31,r0
  95.144 -@@ -472,6 +548,7 @@
  95.145 - 	rts
  95.146 - 	nop
  95.147 - 
  95.148 -+	ENDFUNC(GLOBAL(ashlsi3))
  95.149 - #endif
  95.150 - 
  95.151 - #ifdef L_lshiftrt
  95.152 -@@ -493,6 +570,7 @@
  95.153 - ! (none)
  95.154 - !
  95.155 - 	.global	GLOBAL(lshrsi3)
  95.156 -+	FUNC(GLOBAL(lshrsi3))
  95.157 - 	.align	2
  95.158 - GLOBAL(lshrsi3):
  95.159 - 	mov	#31,r0
  95.160 -@@ -629,6 +707,7 @@
  95.161 - 	rts
  95.162 - 	nop
  95.163 - 
  95.164 -+	ENDFUNC(GLOBAL(lshrsi3))
  95.165 - #endif
  95.166 - 
  95.167 - #ifdef L_movstr
  95.168 -@@ -645,76 +724,113 @@
  95.169 - 	add	#64,r4
  95.170 - 	.align	4
  95.171 - 	.global	GLOBAL(movstrSI64)
  95.172 -+	FUNC(GLOBAL(movstrSI64))
  95.173 - GLOBAL(movstrSI64):
  95.174 - 	mov.l	@(60,r5),r0
  95.175 - 	mov.l	r0,@(60,r4)
  95.176 - 	.global	GLOBAL(movstrSI60)
  95.177 -+	FUNC(GLOBAL(movstrSI60))
  95.178 - GLOBAL(movstrSI60):
  95.179 - 	mov.l	@(56,r5),r0
  95.180 - 	mov.l	r0,@(56,r4)
  95.181 - 	.global	GLOBAL(movstrSI56)
  95.182 -+	FUNC(GLOBAL(movstrSI56))
  95.183 - GLOBAL(movstrSI56):
  95.184 - 	mov.l	@(52,r5),r0
  95.185 - 	mov.l	r0,@(52,r4)
  95.186 - 	.global	GLOBAL(movstrSI52)
  95.187 -+	FUNC(GLOBAL(movstrSI52))
  95.188 - GLOBAL(movstrSI52):
  95.189 - 	mov.l	@(48,r5),r0
  95.190 - 	mov.l	r0,@(48,r4)
  95.191 - 	.global	GLOBAL(movstrSI48)
  95.192 -+	FUNC(GLOBAL(movstrSI48))
  95.193 - GLOBAL(movstrSI48):
  95.194 - 	mov.l	@(44,r5),r0
  95.195 - 	mov.l	r0,@(44,r4)
  95.196 - 	.global	GLOBAL(movstrSI44)
  95.197 -+	FUNC(GLOBAL(movstrSI44))
  95.198 - GLOBAL(movstrSI44):
  95.199 - 	mov.l	@(40,r5),r0
  95.200 - 	mov.l	r0,@(40,r4)
  95.201 - 	.global	GLOBAL(movstrSI40)
  95.202 -+	FUNC(GLOBAL(movstrSI40))
  95.203 - GLOBAL(movstrSI40):
  95.204 - 	mov.l	@(36,r5),r0
  95.205 - 	mov.l	r0,@(36,r4)
  95.206 - 	.global	GLOBAL(movstrSI36)
  95.207 -+	FUNC(GLOBAL(movstrSI36))
  95.208 - GLOBAL(movstrSI36):
  95.209 - 	mov.l	@(32,r5),r0
  95.210 - 	mov.l	r0,@(32,r4)
  95.211 - 	.global	GLOBAL(movstrSI32)
  95.212 -+	FUNC(GLOBAL(movstrSI32))
  95.213 - GLOBAL(movstrSI32):
  95.214 - 	mov.l	@(28,r5),r0
  95.215 - 	mov.l	r0,@(28,r4)
  95.216 - 	.global	GLOBAL(movstrSI28)
  95.217 -+	FUNC(GLOBAL(movstrSI28))
  95.218 - GLOBAL(movstrSI28):
  95.219 - 	mov.l	@(24,r5),r0
  95.220 - 	mov.l	r0,@(24,r4)
  95.221 - 	.global	GLOBAL(movstrSI24)
  95.222 -+	FUNC(GLOBAL(movstrSI24))
  95.223 - GLOBAL(movstrSI24):
  95.224 - 	mov.l	@(20,r5),r0
  95.225 - 	mov.l	r0,@(20,r4)
  95.226 - 	.global	GLOBAL(movstrSI20)
  95.227 -+	FUNC(GLOBAL(movstrSI20))
  95.228 - GLOBAL(movstrSI20):
  95.229 - 	mov.l	@(16,r5),r0
  95.230 - 	mov.l	r0,@(16,r4)
  95.231 - 	.global	GLOBAL(movstrSI16)
  95.232 -+	FUNC(GLOBAL(movstrSI16))
  95.233 - GLOBAL(movstrSI16):
  95.234 - 	mov.l	@(12,r5),r0
  95.235 - 	mov.l	r0,@(12,r4)
  95.236 - 	.global	GLOBAL(movstrSI12)
  95.237 -+	FUNC(GLOBAL(movstrSI12))
  95.238 - GLOBAL(movstrSI12):
  95.239 - 	mov.l	@(8,r5),r0
  95.240 - 	mov.l	r0,@(8,r4)
  95.241 - 	.global	GLOBAL(movstrSI8)
  95.242 -+	FUNC(GLOBAL(movstrSI8))
  95.243 - GLOBAL(movstrSI8):
  95.244 - 	mov.l	@(4,r5),r0
  95.245 - 	mov.l	r0,@(4,r4)
  95.246 - 	.global	GLOBAL(movstrSI4)
  95.247 -+	FUNC(GLOBAL(movstrSI4))
  95.248 - GLOBAL(movstrSI4):
  95.249 - 	mov.l	@(0,r5),r0
  95.250 - 	mov.l	r0,@(0,r4)
  95.251 -+	.global	GLOBAL(movstrSI0)
  95.252 -+	FUNC(GLOBAL(movstrSI0))
  95.253 - GLOBAL(movstrSI0):
  95.254 - 	rts
  95.255 - 	nop
  95.256 - 
  95.257 -+	ENDFUNC(GLOBAL(movstrSI64))
  95.258 -+	ENDFUNC(GLOBAL(movstrSI60))
  95.259 -+	ENDFUNC(GLOBAL(movstrSI56))
  95.260 -+	ENDFUNC(GLOBAL(movstrSI52))
  95.261 -+	ENDFUNC(GLOBAL(movstrSI48))
  95.262 -+	ENDFUNC(GLOBAL(movstrSI44))
  95.263 -+	ENDFUNC(GLOBAL(movstrSI40))
  95.264 -+	ENDFUNC(GLOBAL(movstrSI36))
  95.265 -+	ENDFUNC(GLOBAL(movstrSI32))
  95.266 -+	ENDFUNC(GLOBAL(movstrSI28))
  95.267 -+	ENDFUNC(GLOBAL(movstrSI24))
  95.268 -+	ENDFUNC(GLOBAL(movstrSI20))
  95.269 -+	ENDFUNC(GLOBAL(movstrSI16))
  95.270 -+	ENDFUNC(GLOBAL(movstrSI12))
  95.271 -+	ENDFUNC(GLOBAL(movstrSI8))
  95.272 -+	ENDFUNC(GLOBAL(movstrSI4))
  95.273 -+	ENDFUNC(GLOBAL(movstrSI0))
  95.274 -+
  95.275 - 	.align	4
  95.276 - 
  95.277 - 	.global	GLOBAL(movstr)
  95.278 -+	FUNC(GLOBAL(movstr))
  95.279 - GLOBAL(movstr):
  95.280 - 	mov.l	@(60,r5),r0
  95.281 - 	mov.l	r0,@(60,r4)
  95.282 -@@ -771,6 +887,8 @@
  95.283 - 	add	#64,r5
  95.284 - 	bra	GLOBAL(movstr)
  95.285 - 	add	#64,r4
  95.286 -+
  95.287 -+	FUNC(GLOBAL(movstr))
  95.288 - #endif
  95.289 - 
  95.290 - #ifdef L_movstr_i4
  95.291 -@@ -779,6 +897,10 @@
  95.292 - 	.global	GLOBAL(movstr_i4_odd)
  95.293 - 	.global	GLOBAL(movstrSI12_i4)
  95.294 - 
  95.295 -+	FUNC(GLOBAL(movstr_i4_even))
  95.296 -+	FUNC(GLOBAL(movstr_i4_odd))
  95.297 -+	FUNC(GLOBAL(movstrSI12_i4))
  95.298 -+
  95.299 - 	.p2align	5
  95.300 - L_movstr_2mod4_end:
  95.301 - 	mov.l	r0,@(16,r4)
  95.302 -@@ -787,6 +909,11 @@
  95.303 - 
  95.304 - 	.p2align	2
  95.305 - 
  95.306 -+GLOBAL(movstr_i4_even):
  95.307 -+	mov.l	@r5+,r0
  95.308 -+	bra	L_movstr_start_even
  95.309 -+	mov.l	@r5+,r1
  95.310 -+
  95.311 - GLOBAL(movstr_i4_odd):
  95.312 - 	mov.l	@r5+,r1
  95.313 - 	add	#-4,r4
  95.314 -@@ -813,10 +940,8 @@
  95.315 - 	rts
  95.316 - 	mov.l	r3,@(12,r4)
  95.317 - 
  95.318 --GLOBAL(movstr_i4_even):
  95.319 --	mov.l	@r5+,r0
  95.320 --	bra	L_movstr_start_even
  95.321 --	mov.l	@r5+,r1
  95.322 -+	ENDFUNC(GLOBAL(movstr_i4_even))
  95.323 -+	ENDFUNC(GLOBAL(movstr_i4_odd))
  95.324 - 
  95.325 - 	.p2align	4
  95.326 - GLOBAL(movstrSI12_i4):
  95.327 -@@ -827,12 +952,15 @@
  95.328 - 	mov.l	r1,@(4,r4)
  95.329 - 	rts
  95.330 - 	mov.l	r2,@(8,r4)
  95.331 -+
  95.332 -+	ENDFUNC(GLOBAL(movstrSI12_i4))
  95.333 - #endif
  95.334 - 
  95.335 - #ifdef L_mulsi3
  95.336 - 
  95.337 - 
  95.338 - 	.global	GLOBAL(mulsi3)
  95.339 -+	FUNC(GLOBAL(mulsi3))
  95.340 - 
  95.341 - ! r4 =       aabb
  95.342 - ! r5 =       ccdd
  95.343 -@@ -865,7 +993,7 @@
  95.344 - 	rts
  95.345 - 	add	r2,r0
  95.346 - 
  95.347 --
  95.348 -+	FUNC(GLOBAL(mulsi3))
  95.349 - #endif
  95.350 - #endif /* ! __SH5__ */
  95.351 - #ifdef L_sdivsi3_i4
  95.352 -@@ -875,6 +1003,7 @@
  95.353 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
  95.354 - 
  95.355 - 	.global	GLOBAL(sdivsi3_i4)
  95.356 -+	FUNC(GLOBAL(sdivsi3_i4))
  95.357 - GLOBAL(sdivsi3_i4):
  95.358 - 	lds r4,fpul
  95.359 - 	float fpul,dr0
  95.360 -@@ -884,6 +1013,7 @@
  95.361 - 	rts
  95.362 - 	ftrc dr0,fpul
  95.363 - 
  95.364 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
  95.365 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
  95.366 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
  95.367 - 
  95.368 -@@ -892,6 +1022,7 @@
  95.369 - 	.mode	SHcompact
  95.370 - #endif
  95.371 - 	.global	GLOBAL(sdivsi3_i4)
  95.372 -+	FUNC(GLOBAL(sdivsi3_i4))
  95.373 - GLOBAL(sdivsi3_i4):
  95.374 - 	sts.l fpscr,@-r15
  95.375 - 	mov #8,r2
  95.376 -@@ -906,6 +1037,7 @@
  95.377 - 	rts
  95.378 - 	lds.l @r15+,fpscr
  95.379 - 
  95.380 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
  95.381 - #endif /* ! __SH5__ || __SH5__ == 32 */
  95.382 - #endif /* ! __SH4__ */
  95.383 - #endif
  95.384 -@@ -920,9 +1052,10 @@
  95.385 - !!
  95.386 - !!
  95.387 - 
  95.388 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
  95.389 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
  95.390 - 
  95.391 - 	.global	GLOBAL(sdivsi3)
  95.392 -+	FUNC(GLOBAL(sdivsi3))
  95.393 - #if __SHMEDIA__
  95.394 - #if __SH5__ == 32
  95.395 - 	.section	.text..SHmedia32,"ax"
  95.396 -@@ -1166,6 +1299,7 @@
  95.397 - div0:	rts
  95.398 - 	mov	#0,r0
  95.399 - 
  95.400 -+	ENDFUNC(GLOBAL(sdivsi3))
  95.401 - #endif /* ! __SHMEDIA__ */
  95.402 - #endif /* ! __SH4__ */
  95.403 - #endif
  95.404 -@@ -1174,9 +1308,11 @@
  95.405 - 	.title "SH DIVIDE"
  95.406 - !! 4 byte integer Divide code for the Hitachi SH
  95.407 - #ifdef __SH4__
  95.408 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
  95.409 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
  95.410 -+!! and t bit
  95.411 - 
  95.412 - 	.global	GLOBAL(udivsi3_i4)
  95.413 -+	FUNC(GLOBAL(udivsi3_i4))
  95.414 - GLOBAL(udivsi3_i4):
  95.415 - 	mov #1,r1
  95.416 - 	cmp/hi r1,r5
  95.417 -@@ -1217,11 +1353,13 @@
  95.418 - L1:
  95.419 - 	.double 2147483648
  95.420 - 
  95.421 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  95.422 - #elif defined (__SH5__) && ! defined (__SH4_NOFPU__)
  95.423 - #if ! __SH5__ || __SH5__ == 32
  95.424 - !! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33
  95.425 - 	.mode	SHmedia
  95.426 - 	.global	GLOBAL(udivsi3_i4)
  95.427 -+	FUNC(GLOBAL(udivsi3_i4))
  95.428 - GLOBAL(udivsi3_i4):
  95.429 - 	addz.l	r4,r63,r20
  95.430 - 	addz.l	r5,r63,r21
  95.431 -@@ -1234,6 +1372,8 @@
  95.432 - 	ftrc.dq dr0,dr32
  95.433 - 	fmov.s fr33,fr32
  95.434 - 	blink tr0,r63
  95.435 -+
  95.436 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  95.437 - #endif /* ! __SH5__ || __SH5__ == 32 */
  95.438 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__)
  95.439 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
  95.440 -@@ -1287,6 +1427,7 @@
  95.441 - #endif
  95.442 - 	.double 2147483648
  95.443 - 
  95.444 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  95.445 - #endif /* ! __SH4__ */
  95.446 - #endif
  95.447 - 
  95.448 -@@ -1297,6 +1438,7 @@
  95.449 - 
  95.450 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
  95.451 - 	.global	GLOBAL(udivsi3)
  95.452 -+	FUNC(GLOBAL(udivsi3))
  95.453 - 
  95.454 - #if __SHMEDIA__
  95.455 - #if __SH5__ == 32
  95.456 -@@ -1485,6 +1627,7 @@
  95.457 -  rts
  95.458 -  rotcl r0
  95.459 - 
  95.460 -+	ENDFUNC(GLOBAL(udivsi3))
  95.461 - #endif /* ! __SHMEDIA__ */
  95.462 - #endif /* __SH4__ */
  95.463 - #endif /* L_udivsi3 */
  95.464 -@@ -1790,6 +1933,7 @@
  95.465 - 	.mode	SHcompact
  95.466 - #endif
  95.467 - 	.global GLOBAL(set_fpscr)
  95.468 -+	FUNC(GLOBAL(set_fpscr))
  95.469 - GLOBAL(set_fpscr):
  95.470 - 	lds r4,fpscr
  95.471 - 	mov.l LOCAL(set_fpscr_L1),r1
  95.472 -@@ -1822,6 +1966,8 @@
  95.473 - 	.align 2
  95.474 - LOCAL(set_fpscr_L1):
  95.475 - 	.long GLOBAL(fpscr_values)
  95.476 -+
  95.477 -+	ENDFUNC(GLOBAL(set_fpscr))
  95.478 - #ifdef __ELF__
  95.479 -         .comm   GLOBAL(fpscr_values),8,4
  95.480 - #else
  95.481 -@@ -1860,6 +2006,7 @@
  95.482 - 	blink	tr0, r63
  95.483 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
  95.484 - 	.global GLOBAL(ic_invalidate)
  95.485 -+	FUNC(GLOBAL(ic_invalidate))
  95.486 - GLOBAL(ic_invalidate):
  95.487 - 	ocbwb	@r4
  95.488 - 	mova	0f,r0
  95.489 -@@ -1882,6 +2029,8 @@
  95.490 - 	nop
  95.491 - 	.endr
  95.492 - 	.endr
  95.493 -+
  95.494 -+	ENDFUNC(GLOBAL(ic_invalidate))
  95.495 - #endif /* SH4 */
  95.496 - #endif /* L_ic_invalidate */
  95.497 - 
  95.498 -@@ -1940,6 +2089,7 @@
  95.499 - 	will be expanded into r2/r3 upon return.  */
  95.500 - 	
  95.501 - 	.global	GLOBAL(GCC_shcompact_call_trampoline)
  95.502 -+	FUNC(GLOBAL(GCC_shcompact_call_trampoline))
  95.503 - GLOBAL(GCC_shcompact_call_trampoline):
  95.504 - 	ptabs/l	r0, tr0	/* Prepare to call the actual function.  */
  95.505 - 	movi	((datalabel LOCAL(ct_main_table) - 31 * 2) >> 16) & 65535, r0
  95.506 -@@ -2290,6 +2440,8 @@
  95.507 - 	shari	r2, 32, r2
  95.508 - #endif
  95.509 - 	blink	tr0, r63
  95.510 -+
  95.511 -+	ENDFUNC(GLOBAL(GCC_shcompact_call_trampoline))
  95.512 - #endif /* L_shcompact_call_trampoline */
  95.513 - 
  95.514 - #ifdef L_shcompact_return_trampoline
  95.515 -@@ -2302,6 +2454,7 @@
  95.516 - 	.section	.text..SHmedia32, "ax"
  95.517 - 	.align	2
  95.518 - 	.global	GLOBAL(GCC_shcompact_return_trampoline)
  95.519 -+	FUNC(GLOBAL(GCC_shcompact_return_trampoline))
  95.520 - GLOBAL(GCC_shcompact_return_trampoline):
  95.521 - 	ptabs/l	r18, tr0
  95.522 - #if __LITTLE_ENDIAN__
  95.523 -@@ -2313,6 +2466,8 @@
  95.524 - #endif
  95.525 - 	or	r3, r2, r2
  95.526 - 	blink	tr0, r63
  95.527 -+
  95.528 -+	ENDFUNC(GLOBAL(GCC_shcompact_return_trampoline))
  95.529 - #endif /* L_shcompact_return_trampoline */
  95.530 - 
  95.531 - #ifdef L_shcompact_incoming_args
  95.532 -@@ -2367,6 +2522,7 @@
  95.533 - 	actual bit pattern.  */
  95.534 - 	
  95.535 - 	.global	GLOBAL(GCC_shcompact_incoming_args)
  95.536 -+	FUNC(GLOBAL(GCC_shcompact_incoming_args))
  95.537 - GLOBAL(GCC_shcompact_incoming_args):
  95.538 - 	ptabs/l	r18, tr0	/* Prepare to return.  */
  95.539 - 	shlri	r17, 32, r0	/* Load the cookie.  */
  95.540 -@@ -2519,6 +2675,7 @@
  95.541 - LOCAL(ia_return):	/* Return.  */
  95.542 - 	blink	tr0, r63
  95.543 - LOCAL(ia_end_of_push_seq): /* Label used to compute the first push instruction.  */
  95.544 -+	ENDFUNC(GLOBAL(GCC_shcompact_incoming_args))
  95.545 - #endif /* L_shcompact_incoming_args */
  95.546 - #endif
  95.547 - #if __SH5__
  95.548 -@@ -2530,6 +2687,7 @@
  95.549 - #endif
  95.550 - 	.align	3 /* It is copied in units of 8 bytes in SHmedia mode.  */
  95.551 - 	.global	GLOBAL(GCC_nested_trampoline)
  95.552 -+	FUNC(GLOBAL(GCC_nested_trampoline))
  95.553 - GLOBAL(GCC_nested_trampoline):
  95.554 - 	.mode	SHmedia
  95.555 - 	ptrel/u	r63, tr0
  95.556 -@@ -2546,6 +2704,8 @@
  95.557 - 	ld.l	r0, 28, r1
  95.558 - #endif
  95.559 - 	blink	tr1, r63
  95.560 -+
  95.561 -+	ENDFUNC(GLOBAL(GCC_nested_trampoline))
  95.562 - #endif /* L_nested_trampoline */
  95.563 - #endif /* __SH5__ */
  95.564 - #if __SH5__ == 32
  95.565 -@@ -2555,6 +2715,7 @@
  95.566 - 	.align	2
  95.567 - #ifndef __SH4_NOFPU__	
  95.568 - 	.global	GLOBAL(GCC_push_shmedia_regs)
  95.569 -+	FUNC(GLOBAL(GCC_push_shmedia_regs))
  95.570 - GLOBAL(GCC_push_shmedia_regs):
  95.571 - 	addi.l	r15, -14*8, r15
  95.572 - 	fst.d	r15, 13*8, dr62
  95.573 -@@ -2573,6 +2734,7 @@
  95.574 - 	fst.d	r15,  0*8, dr36
  95.575 - #endif
  95.576 - 	.global	GLOBAL(GCC_push_shmedia_regs_nofpu)
  95.577 -+	FUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
  95.578 - GLOBAL(GCC_push_shmedia_regs_nofpu):
  95.579 - 	ptabs/l	r18, tr0
  95.580 - 	addi.l	r15, -27*8, r15
  95.581 -@@ -2608,8 +2770,13 @@
  95.582 - 	st.q	r15,  0*8, r28
  95.583 - 	blink	tr0, r63
  95.584 - 
  95.585 -+#ifndef __SH4_NOFPU__	
  95.586 -+	ENDFUNC(GLOBAL(GCC_push_shmedia_regs))
  95.587 -+#endif
  95.588 -+	ENDFUNC(GLOBAL(GCC_push_shmedia_regs_nofpu))
  95.589 - #ifndef __SH4_NOFPU__
  95.590 - 	.global	GLOBAL(GCC_pop_shmedia_regs)
  95.591 -+	FUNC(GLOBAL(GCC_pop_shmedia_regs))
  95.592 - GLOBAL(GCC_pop_shmedia_regs):
  95.593 - 	pt	.L0, tr1
  95.594 - 	movi	41*8, r0
  95.595 -@@ -2630,6 +2797,7 @@
  95.596 - 	blink	tr1, r63
  95.597 - #endif
  95.598 - 	.global	GLOBAL(GCC_pop_shmedia_regs_nofpu)
  95.599 -+	FUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
  95.600 - GLOBAL(GCC_pop_shmedia_regs_nofpu):
  95.601 - 	movi	27*8, r0
  95.602 - .L0:
  95.603 -@@ -2666,5 +2834,10 @@
  95.604 - 	ld.q	r15,  0*8, r28
  95.605 - 	add.l	r15, r0, r15
  95.606 - 	blink	tr0, r63
  95.607 -+
  95.608 -+#ifndef __SH4_NOFPU__
  95.609 -+	ENDFUNC(GLOBAL(GCC_pop_shmedia_regs))
  95.610 -+#endif
  95.611 -+	ENDFUNC(GLOBAL(GCC_pop_shmedia_regs_nofpu))
  95.612 - #endif /* __SH5__ == 32 */
  95.613 - #endif /* L_push_pop_shmedia_regs */
    96.1 --- a/patches/gcc/3.3.3/sh-pic-set_fpscr-gcc-3.3.2.patch	Tue Aug 14 19:32:22 2007 +0000
    96.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    96.3 @@ -1,67 +0,0 @@
    96.4 -See http://gcc.gnu.org/PR11901
    96.5 -Should fix
    96.6 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1 
    96.7 -in glibc's "make tests".
    96.8 -
    96.9 -Note: this patch is named
   96.10 -sh-pic-set_fpscr-gcc-3.3.2.patch
   96.11 -and must be applied after 
   96.12 -sh-lib1funcs_sizeAndType.patch
   96.13 -but that'll happen naturally if you apply them in alphabetical order.
   96.14 -
   96.15 --------------
   96.16 -
   96.17 -Date: Wed, 30 Jul 2003 12:03:01 +0900
   96.18 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   96.19 -Subject: [linux-sh:02916] Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
   96.20 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
   96.21 -To: dank@kegel.com
   96.22 -Cc: linux-sh@m17n.org
   96.23 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
   96.24 -
   96.25 -> I'll try to write the PIC version of it,
   96.26 -
   96.27 -Dan, does the attached patch work for you?
   96.28 -
   96.29 -Regards,
   96.30 -	kaz
   96.31 ---
   96.32 -diff -u3prN ORIG/gcc/gcc/config/sh/lib1funcs.asm LOCAL/gcc/gcc/config/sh/lib1funcs.asm
   96.33 ---- ORIG/gcc/gcc/config/sh/lib1funcs.asm	Thu Jun 19 07:38:59 2003
   96.34 -+++ gcc-3.3.2/gcc/config/sh/lib1funcs.asm	Wed Jul 30 11:08:49 2003
   96.35 -@@ -1936,7 +1944,17 @@ GLOBAL(moddi3):
   96.36 - 	FUNC(GLOBAL(set_fpscr))
   96.37 - GLOBAL(set_fpscr):
   96.38 - 	lds r4,fpscr
   96.39 -+#ifdef __PIC__
   96.40 -+	mov.l	r12,@-r15
   96.41 -+	mova	LOCAL(set_fpscr_L0),r0
   96.42 -+	mov.l	LOCAL(set_fpscr_L0),r12
   96.43 -+	add	r0,r12
   96.44 -+	mov.l	LOCAL(set_fpscr_L1),r0
   96.45 -+	mov.l	@(r0,r12),r1
   96.46 -+	mov.l	@r15+,r12
   96.47 -+#else
   96.48 - 	mov.l LOCAL(set_fpscr_L1),r1
   96.49 -+#endif
   96.50 - 	swap.w r4,r0
   96.51 - 	or #24,r0
   96.52 - #ifndef FMOVD_WORKS
   96.53 -@@ -1964,8 +1982,15 @@ GLOBAL(set_fpscr):
   96.54 - 	mov.l r3,@(4,r1)
   96.55 - #endif
   96.56 - 	.align 2
   96.57 -+#ifdef __PIC__
   96.58 -+LOCAL(set_fpscr_L0):
   96.59 -+	.long _GLOBAL_OFFSET_TABLE_
   96.60 -+LOCAL(set_fpscr_L1):
   96.61 -+	.long GLOBAL(fpscr_values@GOT)
   96.62 -+#else
   96.63 - LOCAL(set_fpscr_L1):
   96.64 - 	.long GLOBAL(fpscr_values)
   96.65 -+#endif
   96.66 - 
   96.67 - 	ENDFUNC(GLOBAL(set_fpscr))
   96.68 - #ifndef NO_FPSCR_VALUES
   96.69 -
   96.70 -
    97.1 --- a/patches/gcc/3.3.3/thunk3.patch	Tue Aug 14 19:32:22 2007 +0000
    97.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    97.3 @@ -1,23 +0,0 @@
    97.4 -Fixes 
    97.5 -FAIL: g++.jason/thunk3.C (test for excess errors)
    97.6 -on sh4-unknown-linux-gnu.
    97.7 -
    97.8 -Does any sh variant *not* use the generic thunk support?  If so, the patch should be
    97.9 -more cautious.  As it is, it excludes all sh processors from this test.
   97.10 -
   97.11 -Index: thunk3.C
   97.12 -===================================================================
   97.13 -RCS file: /cvsroot/gcc/gcc/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C,v
   97.14 -retrieving revision 1.13
   97.15 -diff -u -d -u -r1.13 thunk3.C
   97.16 ---- gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C.old	25 Mar 2002 17:57:03 -0000	1.13
   97.17 -+++ gcc-ss-3_3-20030714/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C	20 Jul 2003 16:57:38 -0000
   97.18 -@@ -2,7 +2,7 @@
   97.19 - // Note that this will break on any target that uses the generic thunk
   97.20 - //  support, because it doesn't support variadic functions.
   97.21 - 
   97.22 --// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3  mn10300-*-* mn10200-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-*
   97.23 -+// excess errors test - XFAIL mips*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3  mn10300-*-* mn10200-*-* v850-*-* sh*-*-* h8*-*-* xtensa-*-*
   97.24 - 
   97.25 - #include <stdarg.h>
   97.26 - 
    98.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
    98.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    98.3 @@ -1,62 +0,0 @@
    98.4 -diff -urN gcc-3.3.4.orig/gcc/config/arm/linux-elf.h gcc-3.3.4/gcc/config/arm/linux-elf.h
    98.5 ---- gcc-3.3.4.orig/gcc/config/arm/linux-elf.h	2004-03-30 22:43:45.000000000 +0200
    98.6 -+++ gcc-3.3.4/gcc/config/arm/linux-elf.h	2004-08-20 02:13:02.969084177 +0200
    98.7 -@@ -30,17 +30,31 @@
    98.8 - /* Do not assume anything about header files.  */
    98.9 - #define NO_IMPLICIT_EXTERN_C
   98.10 - 
   98.11 -+/*
   98.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
   98.13 -+ * (big endian) configurations.
   98.14 -+ */
   98.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
   98.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
   98.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
   98.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
   98.19 -+#else
   98.20 -+#define TARGET_ENDIAN_DEFAULT 0
   98.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
   98.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
   98.23 -+#endif
   98.24 -+
   98.25 - /* Default is to use APCS-32 mode.  */
   98.26 - #undef  TARGET_DEFAULT
   98.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
   98.28 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
   98.29 - 
   98.30 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
   98.31 - 
   98.32 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
   98.33 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
   98.34 - 
   98.35 - #undef  MULTILIB_DEFAULTS
   98.36 - #define MULTILIB_DEFAULTS \
   98.37 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   98.38 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   98.39 - 
   98.40 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
   98.41 - 
   98.42 -@@ -88,7 +102,7 @@
   98.43 -    %{rdynamic:-export-dynamic} \
   98.44 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   98.45 -    -X \
   98.46 --   %{mbig-endian:-EB}" \
   98.47 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
   98.48 -    SUBTARGET_EXTRA_LINK_SPEC
   98.49 - 
   98.50 - #define TARGET_OS_CPP_BUILTINS()		\
   98.51 -diff -urN gcc-3.3.4.orig/gcc/config.gcc gcc-3.3.4/gcc/config.gcc
   98.52 ---- gcc-3.3.4.orig/gcc/config.gcc	2004-04-29 06:42:47.000000000 +0200
   98.53 -+++ gcc-3.3.4/gcc/config.gcc	2004-08-20 02:11:04.326143343 +0200
   98.54 -@@ -699,6 +699,11 @@
   98.55 - 	;;
   98.56 - arm*-*-linux*)			# ARM GNU/Linux with ELF
   98.57 - 	tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
   98.58 -+	case $machine in
   98.59 -+	arm*b-*)
   98.60 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
   98.61 -+		;;
   98.62 -+	esac
   98.63 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
   98.64 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   98.65 - 	gnu_ld=yes
    99.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-arm-pr22528.patch	Tue Aug 14 19:32:22 2007 +0000
    99.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    99.3 @@ -1,71 +0,0 @@
    99.4 -From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
    99.5 -Richard Earnshaw.  Fixes http://gcc.gnu.org/PR22528
    99.6 -
    99.7 ---- gcc-3.3.4/gcc/config/arm/arm.md.orig	2004-03-30 22:43:44.000000000 +0200
    99.8 -+++ gcc-3.3.4/gcc/config/arm/arm.md	2005-08-15 12:21:55.000000000 +0200
    99.9 -@@ -4275,7 +4275,7 @@
   99.10 -    (set (match_dup 2)
   99.11 - 	(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
   99.12 -    ;; store the high byte
   99.13 --   (set (match_dup 4) (subreg:QI (match_dup 2) 0))]	;explicit subreg safe
   99.14 -+   (set (match_dup 4) (match_dup 5))]
   99.15 -   "TARGET_ARM"
   99.16 -   "
   99.17 -   {
   99.18 -@@ -4291,7 +4291,8 @@
   99.19 -     operands[1] = adjust_address (operands[1], QImode, 0);
   99.20 -     operands[3] = gen_lowpart (QImode, operands[0]);
   99.21 -     operands[0] = gen_lowpart (SImode, operands[0]);
   99.22 --    operands[2] = gen_reg_rtx (SImode); 
   99.23 -+    operands[2] = gen_reg_rtx (SImode);
   99.24 -+    operands[5] = gen_lowpart (QImode, operands[2]);
   99.25 -   }"
   99.26 - )
   99.27 - 
   99.28 -@@ -4299,7 +4300,7 @@
   99.29 -   [(set (match_dup 4) (match_dup 3))
   99.30 -    (set (match_dup 2)
   99.31 - 	(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
   99.32 --   (set (match_operand 1 "" "")	(subreg:QI (match_dup 2) 3))]
   99.33 -+   (set (match_operand 1 "" "")	(match_dup 5))]
   99.34 -   "TARGET_ARM"
   99.35 -   "
   99.36 -   {
   99.37 -@@ -4316,13 +4317,14 @@
   99.38 -     operands[3] = gen_lowpart (QImode, operands[0]);
   99.39 -     operands[0] = gen_lowpart (SImode, operands[0]);
   99.40 -     operands[2] = gen_reg_rtx (SImode);
   99.41 -+    operands[5] = gen_lowpart (QImode, operands[2]);
   99.42 -   }"
   99.43 - )
   99.44 - 
   99.45 - ;; Subroutine to store a half word integer constant into memory.
   99.46 - (define_expand "storeinthi"
   99.47 -   [(set (match_operand 0 "" "")
   99.48 --	(subreg:QI (match_operand 1 "" "") 0))
   99.49 -+	(match_operand 1 "" ""))
   99.50 -    (set (match_dup 3) (match_dup 2))]
   99.51 -   "TARGET_ARM"
   99.52 -   "
   99.53 -@@ -4363,6 +4365,7 @@
   99.54 -     operands[3] = adjust_address (op0, QImode, 1);
   99.55 -     operands[0] = adjust_address (operands[0], QImode, 0);
   99.56 -     operands[2] = gen_lowpart (QImode, operands[2]);
   99.57 -+    operands[1] = gen_lowpart (QImode, operands[1]);
   99.58 -   }"
   99.59 - )
   99.60 - 
   99.61 -@@ -4682,11 +4685,12 @@
   99.62 -    (set (match_dup 3)
   99.63 - 	(ashiftrt:SI (match_dup 2) (const_int 16)))
   99.64 -    (set (match_operand:HI 0 "s_register_operand" "")
   99.65 --	(subreg:HI (match_dup 3) 0))]
   99.66 -+	(match_dup 4))]
   99.67 -   "TARGET_ARM"
   99.68 -   "
   99.69 -   operands[2] = gen_reg_rtx (SImode);
   99.70 -   operands[3] = gen_reg_rtx (SImode);
   99.71 -+  operands[4] = gen_lowpart (HImode, operands[3]);
   99.72 -   "
   99.73 - )
   99.74 - 
   100.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-libstdcxx-sh.patch	Tue Aug 14 19:32:22 2007 +0000
   100.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   100.3 @@ -1,38 +0,0 @@
   100.4 -Date: Tue, 06 Jul 2004 10:40:57 +0900 (JST)
   100.5 -Message-Id: <20040706.104057.48529182.kkojima@rr.iij4u.or.jp>
   100.6 -To: dank@kegel.com
   100.7 -Cc: linux-sh@m17n.org, linuxsh-dev@lists.sourceforge.net
   100.8 -Subject: gcc-3.4.1 (Was: The current kernel for a Jornada 680 SH3)
   100.9 -From: Kaz Kojima <kkojima@rr.iij4u.or.jp>
  100.10 -In-Reply-To: <20040529.175014.48668611.kkojima@rr.iij4u.or.jp>
  100.11 -References: <20040528.125858.50336810.kkojima@rr.iij4u.or.jp>
  100.12 -	<40B8205D.8030200@kegel.com>
  100.13 -	<20040529.175014.48668611.kkojima@rr.iij4u.or.jp>
  100.14 -
  100.15 -Hi,
  100.16 -
  100.17 -...
  100.18 -
  100.19 -BTW, gcc-3.3.4 was also released and there is a bad news :-(  Someone
  100.20 -reverted wrongly a configury patch against libstdc++ for sh-linux at
  100.21 -the last moment.  We have to regenerate gcc-3.3.4/libstdc++-v3/configure
  100.22 -with autoconf 2.13 or apply the one-line patch below manually:
  100.23 -
  100.24 ---- gcc-3.3.4-orig/libstdc++-v3/configure	2004-06-01 09:45:44.000000000 +0900
  100.25 -+++ gcc-3.3.4/libstdc++-v3/configure	2004-06-29 22:38:05.000000000 +0900
  100.26 -@@ -2009,7 +2009,7 @@ irix5* | irix6*)
  100.27 - # This must be Linux ELF.
  100.28 - linux-gnu*)
  100.29 -   case $host_cpu in
  100.30 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
  100.31 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
  100.32 -     lt_cv_deplibs_check_method=pass_all ;;
  100.33 -   *)
  100.34 -     # glibc up to 2.1.1 does not perform some relocations on ARM
  100.35 -
  100.36 -
  100.37 -Regards,
  100.38 -	kaz
  100.39 -
  100.40 -
  100.41 -
   101.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-ppc-asm-spec.patch	Tue Aug 14 19:32:22 2007 +0000
   101.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   101.3 @@ -1,86 +0,0 @@
   101.4 -Based on gcc-3.4.0/gcc-3.3.3h-ppc-asm-spec.patch
   101.5 -
   101.6 -Fixes the following errors when building gcc for ppc7450:
   101.7 -
   101.8 -/tmp/ccj38uQs.s: Assembler messages:
   101.9 -/tmp/ccj38uQs.s:4370: Error: Unrecognized opcode: `mfvrsave'
  101.10 -/tmp/ccj38uQs.s:4404: Error: Unrecognized opcode: `stvx'
  101.11 -/tmp/ccj38uQs.s:4571: Error: Unrecognized opcode: `lvx'
  101.12 -/tmp/ccj38uQs.s:4572: Error: Unrecognized opcode: `mtvrsave'
  101.13 -make[2]: *** [libgcc/./unwind-dw2.o] Error 1
  101.14 -make[2]: Leaving directory `/opt/crosstool-0.28-rc35/build/powerpc-7450-linux-gnu/gcc-3.3.4-glibc-2.3.2/build-gcc-core/gcc'
  101.15 -make[1]: *** [stmp-multilib] Error 2
  101.16 -make[1]: Leaving directory `/opt/crosstool-0.28-rc35/build/powerpc-7450-linux-gnu/gcc-3.3.4-glibc-2.3.2/build-gcc-core/gcc'
  101.17 -make: *** [all-gcc] Error 2
  101.18 -
  101.19 -Note that the "-mcpu=7450" option must appear on the "gcc" command line in
  101.20 -order for "-maltivec" to be passed to the assembler.  Or, "-maltivec" itself
  101.21 -may be passed to the "gcc" command.
  101.22 -
  101.23 -Contributed by Tom Warzeka <waz@quahog.npt.nuwc.navy.mil>
  101.24 -
  101.25 -===================================================================
  101.26 ---- gcc-3.3.4/gcc/config/rs6000/rs6000.h~	2004-02-01 23:40:49.000000000 -0500
  101.27 -+++ gcc-3.3.4/gcc/config/rs6000/rs6000.h	2004-08-18 14:15:57.000000000 -0400
  101.28 -@@ -52,23 +52,29 @@
  101.29 - "%{!mcpu*: \
  101.30 -   %{mpower: %{!mpower2: -mpwr}} \
  101.31 -   %{mpower2: -mpwrx} \
  101.32 --  %{mpowerpc*: -mppc} \
  101.33 -+  %{mpowerpc64*: -mppc64} \
  101.34 -+  %{!mpowerpc64*: %{mpowerpc*: -mppc}} \
  101.35 -   %{mno-power: %{!mpowerpc*: -mcom}} \
  101.36 --  %{!mno-power: %{!mpower2: %(asm_default)}}} \
  101.37 -+  %{!mno-power: %{!mpower*: %(asm_default)}}} \
  101.38 - %{mcpu=common: -mcom} \
  101.39 - %{mcpu=power: -mpwr} \
  101.40 - %{mcpu=power2: -mpwrx} \
  101.41 --%{mcpu=power3: -m604} \
  101.42 -+%{mcpu=power3: -mppc64} \
  101.43 - %{mcpu=power4: -mpower4} \
  101.44 -+%{mcpu=power5: -mpower4} \
  101.45 - %{mcpu=powerpc: -mppc} \
  101.46 - %{mcpu=rios: -mpwr} \
  101.47 - %{mcpu=rios1: -mpwr} \
  101.48 - %{mcpu=rios2: -mpwrx} \
  101.49 - %{mcpu=rsc: -mpwr} \
  101.50 - %{mcpu=rsc1: -mpwr} \
  101.51 -+%{mcpu=rs64a: -mppc64} \
  101.52 - %{mcpu=401: -mppc} \
  101.53 - %{mcpu=403: -m403} \
  101.54 - %{mcpu=405: -m405} \
  101.55 -+%{mcpu=405fp: -m405} \
  101.56 -+%{mcpu=440: -m440} \
  101.57 -+%{mcpu=440fp: -m440} \
  101.58 - %{mcpu=505: -mppc} \
  101.59 - %{mcpu=601: -m601} \
  101.60 - %{mcpu=602: -mppc} \
  101.61 -@@ -77,18 +83,23 @@
  101.62 - %{mcpu=ec603e: -mppc} \
  101.63 - %{mcpu=604: -mppc} \
  101.64 - %{mcpu=604e: -mppc} \
  101.65 --%{mcpu=620: -mppc} \
  101.66 --%{mcpu=630: -m604} \
  101.67 -+%{mcpu=620: -mppc64} \
  101.68 -+%{mcpu=630: -mppc64} \
  101.69 - %{mcpu=740: -mppc} \
  101.70 --%{mcpu=7400: -mppc} \
  101.71 --%{mcpu=7450: -mppc} \
  101.72 - %{mcpu=750: -mppc} \
  101.73 -+%{mcpu=G3: -mppc} \
  101.74 -+%{mcpu=7400: -mppc -maltivec} \
  101.75 -+%{mcpu=7450: -mppc -maltivec} \
  101.76 -+%{mcpu=G4: -mppc -maltivec} \
  101.77 - %{mcpu=801: -mppc} \
  101.78 - %{mcpu=821: -mppc} \
  101.79 - %{mcpu=823: -mppc} \
  101.80 - %{mcpu=860: -mppc} \
  101.81 -+%{mcpu=970: -mpower4 -maltivec} \
  101.82 -+%{mcpu=G5: -mpower4 -maltivec} \
  101.83 - %{mcpu=8540: -me500} \
  101.84 --%{maltivec: -maltivec}"
  101.85 -+%{maltivec: -maltivec} \
  101.86 -+-many"
  101.87 - 
  101.88 - #define CPP_DEFAULT_SPEC ""
  101.89 - 
   102.1 --- a/patches/gcc/3.3.4/gcc-3.3.4-trap-posix.patch	Tue Aug 14 19:32:22 2007 +0000
   102.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   102.3 @@ -1,44 +0,0 @@
   102.4 -# 
   102.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
   102.6 -#
   102.7 -# Error:
   102.8 -#
   102.9 -# creating libintl.h
  102.10 -# Configuring etc...
  102.11 -# loading cache ../config.cache
  102.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
  102.13 -# creating ./config.status
  102.14 -# creating Makefile
  102.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
  102.16 -#
  102.17 -# Description:
  102.18 -#
  102.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
  102.20 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
  102.21 -#
  102.22 -# Status:
  102.23 -#
  102.24 -# fixed in gcc >= 3.3.5
  102.25 -# backport of gcc-3.3.5 fix
  102.26 -#
  102.27 -diff -ruN gcc-3.3.4-orig/configure gcc-3.3.4/configure
  102.28 ---- gcc-3.3.4-orig/configure	2002-09-29 18:11:24.000000000 +0200
  102.29 -+++ gcc-3.3.4/configure	2005-04-20 21:11:30.000000000 +0200
  102.30 -@@ -697,7 +697,7 @@
  102.31 - if test -f skip-this-dir; then
  102.32 - 	# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
  102.33 - 	# and reset the trap handler.
  102.34 --	trap 0
  102.35 -+	trap '' 0
  102.36 - 	rm -rf Makefile* ${tmpdir}
  102.37 - 	# Execute the final clean-up actions
  102.38 - 	${config_shell} skip-this-dir
  102.39 -@@ -1596,7 +1596,7 @@
  102.40 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
  102.41 - # and reset the trap handler.
  102.42 - rm -rf ${tmpdir}
  102.43 --trap 0
  102.44 -+trap '' 0
  102.45 - 
  102.46 - exit 0
  102.47 - 
   103.1 --- a/patches/gcc/3.3.5/gcc-3.3.4-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   103.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   103.3 @@ -1,62 +0,0 @@
   103.4 -diff -urN gcc-3.3.4.orig/gcc/config/arm/linux-elf.h gcc-3.3.4/gcc/config/arm/linux-elf.h
   103.5 ---- gcc-3.3.4.orig/gcc/config/arm/linux-elf.h	2004-03-30 22:43:45.000000000 +0200
   103.6 -+++ gcc-3.3.4/gcc/config/arm/linux-elf.h	2004-08-20 02:13:02.969084177 +0200
   103.7 -@@ -30,17 +30,31 @@
   103.8 - /* Do not assume anything about header files.  */
   103.9 - #define NO_IMPLICIT_EXTERN_C
  103.10 - 
  103.11 -+/*
  103.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  103.13 -+ * (big endian) configurations.
  103.14 -+ */
  103.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
  103.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  103.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  103.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  103.19 -+#else
  103.20 -+#define TARGET_ENDIAN_DEFAULT 0
  103.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  103.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  103.23 -+#endif
  103.24 -+
  103.25 - /* Default is to use APCS-32 mode.  */
  103.26 - #undef  TARGET_DEFAULT
  103.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  103.28 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
  103.29 - 
  103.30 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  103.31 - 
  103.32 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  103.33 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  103.34 - 
  103.35 - #undef  MULTILIB_DEFAULTS
  103.36 - #define MULTILIB_DEFAULTS \
  103.37 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  103.38 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  103.39 - 
  103.40 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  103.41 - 
  103.42 -@@ -88,7 +102,7 @@
  103.43 -    %{rdynamic:-export-dynamic} \
  103.44 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  103.45 -    -X \
  103.46 --   %{mbig-endian:-EB}" \
  103.47 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  103.48 -    SUBTARGET_EXTRA_LINK_SPEC
  103.49 - 
  103.50 - #define TARGET_OS_CPP_BUILTINS()		\
  103.51 -diff -urN gcc-3.3.4.orig/gcc/config.gcc gcc-3.3.4/gcc/config.gcc
  103.52 ---- gcc-3.3.4.orig/gcc/config.gcc	2004-04-29 06:42:47.000000000 +0200
  103.53 -+++ gcc-3.3.4/gcc/config.gcc	2004-08-20 02:11:04.326143343 +0200
  103.54 -@@ -699,6 +699,11 @@
  103.55 - 	;;
  103.56 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  103.57 - 	tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  103.58 -+	case $machine in
  103.59 -+	arm*b-*)
  103.60 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  103.61 -+		;;
  103.62 -+	esac
  103.63 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  103.64 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  103.65 - 	gnu_ld=yes
   104.1 --- a/patches/gcc/3.3.5/gcc-3.3.4-arm-pr22528.patch	Tue Aug 14 19:32:22 2007 +0000
   104.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   104.3 @@ -1,71 +0,0 @@
   104.4 -From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
   104.5 -Richard Earnshaw.  Fixes http://gcc.gnu.org/PR22528
   104.6 -
   104.7 ---- gcc-3.3.4/gcc/config/arm/arm.md.orig	2004-03-30 22:43:44.000000000 +0200
   104.8 -+++ gcc-3.3.4/gcc/config/arm/arm.md	2005-08-15 12:21:55.000000000 +0200
   104.9 -@@ -4275,7 +4275,7 @@
  104.10 -    (set (match_dup 2)
  104.11 - 	(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
  104.12 -    ;; store the high byte
  104.13 --   (set (match_dup 4) (subreg:QI (match_dup 2) 0))]	;explicit subreg safe
  104.14 -+   (set (match_dup 4) (match_dup 5))]
  104.15 -   "TARGET_ARM"
  104.16 -   "
  104.17 -   {
  104.18 -@@ -4291,7 +4291,8 @@
  104.19 -     operands[1] = adjust_address (operands[1], QImode, 0);
  104.20 -     operands[3] = gen_lowpart (QImode, operands[0]);
  104.21 -     operands[0] = gen_lowpart (SImode, operands[0]);
  104.22 --    operands[2] = gen_reg_rtx (SImode); 
  104.23 -+    operands[2] = gen_reg_rtx (SImode);
  104.24 -+    operands[5] = gen_lowpart (QImode, operands[2]);
  104.25 -   }"
  104.26 - )
  104.27 - 
  104.28 -@@ -4299,7 +4300,7 @@
  104.29 -   [(set (match_dup 4) (match_dup 3))
  104.30 -    (set (match_dup 2)
  104.31 - 	(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
  104.32 --   (set (match_operand 1 "" "")	(subreg:QI (match_dup 2) 3))]
  104.33 -+   (set (match_operand 1 "" "")	(match_dup 5))]
  104.34 -   "TARGET_ARM"
  104.35 -   "
  104.36 -   {
  104.37 -@@ -4316,13 +4317,14 @@
  104.38 -     operands[3] = gen_lowpart (QImode, operands[0]);
  104.39 -     operands[0] = gen_lowpart (SImode, operands[0]);
  104.40 -     operands[2] = gen_reg_rtx (SImode);
  104.41 -+    operands[5] = gen_lowpart (QImode, operands[2]);
  104.42 -   }"
  104.43 - )
  104.44 - 
  104.45 - ;; Subroutine to store a half word integer constant into memory.
  104.46 - (define_expand "storeinthi"
  104.47 -   [(set (match_operand 0 "" "")
  104.48 --	(subreg:QI (match_operand 1 "" "") 0))
  104.49 -+	(match_operand 1 "" ""))
  104.50 -    (set (match_dup 3) (match_dup 2))]
  104.51 -   "TARGET_ARM"
  104.52 -   "
  104.53 -@@ -4363,6 +4365,7 @@
  104.54 -     operands[3] = adjust_address (op0, QImode, 1);
  104.55 -     operands[0] = adjust_address (operands[0], QImode, 0);
  104.56 -     operands[2] = gen_lowpart (QImode, operands[2]);
  104.57 -+    operands[1] = gen_lowpart (QImode, operands[1]);
  104.58 -   }"
  104.59 - )
  104.60 - 
  104.61 -@@ -4682,11 +4685,12 @@
  104.62 -    (set (match_dup 3)
  104.63 - 	(ashiftrt:SI (match_dup 2) (const_int 16)))
  104.64 -    (set (match_operand:HI 0 "s_register_operand" "")
  104.65 --	(subreg:HI (match_dup 3) 0))]
  104.66 -+	(match_dup 4))]
  104.67 -   "TARGET_ARM"
  104.68 -   "
  104.69 -   operands[2] = gen_reg_rtx (SImode);
  104.70 -   operands[3] = gen_reg_rtx (SImode);
  104.71 -+  operands[4] = gen_lowpart (HImode, operands[3]);
  104.72 -   "
  104.73 - )
  104.74 - 
   105.1 --- a/patches/gcc/3.3/compat.exp.patch	Tue Aug 14 19:32:22 2007 +0000
   105.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   105.3 @@ -1,37 +0,0 @@
   105.4 -Fixes the following problem when testing a cross-compiler:
   105.5 -
   105.6 -============================================
   105.7 -Testing g++.dg/compat/abi/bitfield1,
   105.8 -...
   105.9 -Invoking the compiler as /crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++  ...
  105.10 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/gcc/testsuite/g++.dg/compat/abi/bitfield1_main.C
  105.11 -pid is 16028 -16028
  105.12 -compiler exited with status 1
  105.13 -output is:
  105.14 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
  105.15 -/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/build-gcc/gcc/testsuite/../g++: error while loading shared libraries: /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/powerpc-750-linux-gnu/./lib/libc.so.6: ELF file data encoding not little-endian
  105.16 -
  105.17 -FAIL: g++.dg/compat/abi/bitfield1 main_tst.o compile
  105.18 -============================================
  105.19 -
  105.20 ---- gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp.old	Thu Oct 17 17:22:57 2002
  105.21 -+++ gcc-3.3/gcc/testsuite/g++.dg/compat/compat.exp	Mon Jul 14 10:59:19 2003
  105.22 -@@ -42,11 +42,13 @@
  105.23 - proc compat-fix-library-path { } {
  105.24 -     global ld_library_path
  105.25 - 
  105.26 --    # See comments in lib/g++.exp for why this is needed.
  105.27 --    setenv  LD_LIBRARY_PATH     $ld_library_path
  105.28 --    setenv  SHLIB_PATH          $ld_library_path
  105.29 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
  105.30 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
  105.31 -+    if {![is_remote target]} {
  105.32 -+	# See comments in lib/g++.exp for why this is needed.
  105.33 -+	setenv  LD_LIBRARY_PATH     $ld_library_path
  105.34 -+	setenv  SHLIB_PATH          $ld_library_path
  105.35 -+	setenv  LD_LIBRARYN32_PATH  $ld_library_path
  105.36 -+	setenv  LD_LIBRARY64_PATH   $ld_library_path
  105.37 -+    }
  105.38 - }
  105.39 - 
  105.40 - #
   106.1 --- a/patches/gcc/3.3/config.sub.patch	Tue Aug 14 19:32:22 2007 +0000
   106.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   106.3 @@ -1,72 +0,0 @@
   106.4 -When configuring a s390->s390 or cris->cris crosscompiler
   106.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
   106.6 -on an s390, and then I'll need this patch :-), you'll get the
   106.7 -following error:
   106.8 -
   106.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
  106.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
  106.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
  106.12 ---enable-languages=c
  106.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
  106.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
  106.15 ---disable-shared
  106.16 -...
  106.17 -*** --with-headers is only supported when cross compiling
  106.18 -
  106.19 -This error pops up only when you're using Daniel Jacobowitz's technique
  106.20 -of slightly changing the target and host tuples to make them different
  106.21 -enough to force gcc's build system to not try to pull in system libraries
  106.22 -or headers.  This technique is needed e.g. to build an x86 -> x86
  106.23 -cross-compiler.
  106.24 -(The LFS developers ran into the same bug that prompted me to use
  106.25 -this technique; they point people who run into it to
  106.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
  106.27 -way of avoiding this problem.  I think the tuple tweak is the way to go, though.)
  106.28 -
  106.29 -config-patches@gnu.org rejected this patch, on the grounds that there
  106.30 -is only one vendor of each of those two architectures, so the 
  106.31 -canonicalization is by definition correct.  When I pointed out the
  106.32 -difficulty this causes for people building s390 -> s390 or
  106.33 -cris -> cris compilers that are incompatible with the system
  106.34 -libraries and thus must be built like cross-compilers, he grumped and said 
  106.35 -"autoconf should let you specify a cross-compiler in some other way than
  106.36 -comparing tuple strings".
  106.37 -
  106.38 -
  106.39 -
  106.40 ---- gcc-3.3/config.sub.old	Sun Jun  8 20:38:47 2003
  106.41 -+++ gcc-3.3/config.sub	Sun Jun  8 20:40:34 2003
  106.42 -@@ -433,9 +433,12 @@
  106.43 - 	crds | unos)
  106.44 - 		basic_machine=m68k-crds
  106.45 - 		;;
  106.46 --	cris | cris-* | etrax*)
  106.47 -+	cris | etrax*)
  106.48 - 		basic_machine=cris-axis
  106.49 - 		;;
  106.50 -+	cris-*)
  106.51 -+		basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
  106.52 -+		;;
  106.53 - 	da30 | da30-*)
  106.54 - 		basic_machine=m68k-da30
  106.55 - 		;;
  106.56 -@@ -820,11 +823,17 @@
  106.57 - 	rtpc | rtpc-*)
  106.58 - 		basic_machine=romp-ibm
  106.59 - 		;;
  106.60 --	s390 | s390-*)
  106.61 -+	s390)
  106.62 - 		basic_machine=s390-ibm
  106.63 - 		;;
  106.64 --	s390x | s390x-*)
  106.65 -+	s390-*)
  106.66 -+		basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
  106.67 -+		;;
  106.68 -+	s390x)
  106.69 - 		basic_machine=s390x-ibm
  106.70 -+		;;
  106.71 -+	s390x-*)
  106.72 -+		basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
  106.73 - 		;;
  106.74 - 	sa29200)
  106.75 - 		basic_machine=a29k-amd
   107.1 --- a/patches/gcc/3.3/gcc-3.2.3-g++.exp.patch	Tue Aug 14 19:32:22 2007 +0000
   107.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   107.3 @@ -1,98 +0,0 @@
   107.4 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
   107.5 -
   107.6 -The first hunk fixes the error
   107.7 -
   107.8 -/testsuite_flags: /testsuite_flags: No such file or directory
   107.9 -    while executing
  107.10 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
  107.11 -    (procedure "g++_include_flags" line 21)
  107.12 -    invoked from within
  107.13 -"g++_include_flags [get_multilibs] "
  107.14 -    (procedure "g++_init" line 63)
  107.15 -    invoked from within
  107.16 -"${tool}_init $test_file_name"
  107.17 -    (procedure "runtest" line 19)
  107.18 -    invoked from within
  107.19 -"runtest $test_name"
  107.20 -    ("foreach" body line 42)
  107.21 -    invoked from within
  107.22 -...
  107.23 -make[1]: [check-g++] Error 1 (ignored)
  107.24 -
  107.25 -The fix isn't especially pretty, but it worked for me, and can't hurt the
  107.26 -more common native compiler case.  Maybe someone who knows the code better 
  107.27 -can come up with a better fix.
  107.28 -
  107.29 -The second hunk fixes the error
  107.30 -
  107.31 -sh: error while loading shared libraries: /opt/cegl-2.0/powerpc-405-linux-gnu/gcc-3.2.3-glibc-2.2.5/powerpc-405-linux-gnu/./lib/libdl.so.2: ELF file data encoding not little-endian
  107.32 -
  107.33 -when trying to compile g++ testcases (!); setting up
  107.34 -the shared library environment when running crosstests of g++ 
  107.35 -should either be done by a special board file, or by
  107.36 -setting up a remote chroot environment (see http://kegel.com/crosstool),
  107.37 -not by blithely setting LD_LIBRARY_PATH on the local system.
  107.38 -
  107.39 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old	Fri Jul 11 15:42:47 2003
  107.40 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp	Sat Jul 12 12:57:07 2003
  107.41 -@@ -72,6 +72,8 @@
  107.42 - #
  107.43 - proc g++_include_flags { paths } {
  107.44 -     global srcdir
  107.45 -+    global objdir
  107.46 -+    global target_triplet
  107.47 -     global HAVE_LIBSTDCXX_V3
  107.48 -     global TESTING_IN_BUILD_TREE
  107.49 - 
  107.50 -@@ -90,6 +92,20 @@
  107.51 - 
  107.52 -     if { ${HAVE_LIBSTDCXX_V3} } {
  107.53 -       set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
  107.54 -+      if { $odir_v3 == "" } {
  107.55 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
  107.56 -+	  # first assume no multilibs
  107.57 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
  107.58 -+      }
  107.59 -+      if { $odir_v3 == "" } {
  107.60 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
  107.61 -+	  # assume multilib only one level deep
  107.62 -+          set multisub [file tail $gccpath]
  107.63 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
  107.64 -+      }
  107.65 -+      if { $odir_v3 == "" } {
  107.66 -+           error "Can't find libstdc++-v3"
  107.67 -+      }
  107.68 -       append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
  107.69 -     } else {
  107.70 -       set odir_v2 [lookfor_file ${gccpath} libstdc++]
  107.71 -@@ -192,16 +192,20 @@
  107.72 -       }
  107.73 -     }
  107.74 - 
  107.75 --    # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
  107.76 --    # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
  107.77 --    # (for the 64-bit ABI).  The right way to do this would be to modify
  107.78 --    # unix.exp -- but that's not an option since it's part of DejaGNU
  107.79 --    # proper, so we do it here.  We really only need to do 
  107.80 --    # this on IRIX, but it shouldn't hurt to do it anywhere else.
  107.81 --    setenv  LD_LIBRARY_PATH     $ld_library_path
  107.82 --    setenv  SHLIB_PATH          $ld_library_path
  107.83 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
  107.84 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
  107.85 -+    if {![is_remote target]} {
  107.86 -+      # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
  107.87 -+      # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
  107.88 -+      # (for the 64-bit ABI).  The right way to do this would be to modify
  107.89 -+      # unix.exp -- but that's not an option since it's part of DejaGNU
  107.90 -+      # proper, so we do it here.  We really only need to do 
  107.91 -+      # this on IRIX, but it shouldn't hurt to do it anywhere else.
  107.92 -+
  107.93 -+      # Doing this causes us to be unable to run cross-compilers.
  107.94 -+      setenv  LD_LIBRARY_PATH     $ld_library_path
  107.95 -+      setenv  SHLIB_PATH          $ld_library_path
  107.96 -+      setenv  LD_LIBRARYN32_PATH  $ld_library_path
  107.97 -+      setenv  LD_LIBRARY64_PATH   $ld_library_path
  107.98 -+    }
  107.99 - 
 107.100 -     return "$flags"
 107.101 - }
   108.1 --- a/patches/gcc/3.3/gcc-3.3-libstdc++-v3-dg.exp.patch	Tue Aug 14 19:32:22 2007 +0000
   108.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   108.3 @@ -1,54 +0,0 @@
   108.4 -Without this patch, the command
   108.5 -
   108.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
   108.7 -
   108.8 -fails in two ways:
   108.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
  108.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
  108.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
  108.12 -we just built.
  108.13 -
  108.14 -Here's an example log of the problem in action.  Every testcase fails, this shows just one:
  108.15 --------------
  108.16 -Invoking the compiler as g++ -ggdb3 -DDEBUG_ASSERT -I/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite /home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc   -g -O2 -DDEBUG_ASSERT  -L/testsuite -lv3test -lm  -o ./binders.exe
  108.17 -compiler exited with status 1
  108.18 -output is:
  108.19 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h: In method `void binder2nd<mem_fun1_ref_t<void,Elem,int> >::operator ()(const Elem &) const':^M
  108.20 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algo.h:83:   instantiated from `for_each<Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> > >(Elem *, Elem *, binder2nd<mem_fun1_ref_t<void,Elem,int> >)'^M
  108.21 -/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.12/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.2.5/gcc-3.3/libstdc++-v3/testsuite/20_util/binders.cc:43:   instantiated from here^M
  108.22 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:224: conversion from `const Elem' to `Elem &' discards qualifiers^M
  108.23 -/usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_function.h:622: in passing argument 1 of `mem_fun1_ref_t<void,Elem,int>::operator ()(Elem &, int) const'^M
  108.24 -...
  108.25 -FAIL: 20_util/binders.cc (test for excess errors)
  108.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
  108.27 --------------
  108.28 -
  108.29 -And here's the patch.  I'm not happy with it, and it probably gets some cases wrong,
  108.30 -but it seems to work for the common native case and for my cross-compiler case.
  108.31 -
  108.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
  108.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
  108.34 -@@ -46,8 +46,23 @@
  108.35 -     global gluefile wrap_flags
  108.36 -     global ld_library_path
  108.37 -     global tool_root_dir
  108.38 -+    global target_triplet
  108.39 - 
  108.40 -     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
  108.41 -+    if { $blddir == "" } {
  108.42 -+        set multilibs [get_multilibs]
  108.43 -+        # FIXME: assume multilib only one level deep
  108.44 -+        set multisub [file tail $multilibs]
  108.45 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
  108.46 -+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
  108.47 -+    }
  108.48 -+    if { $blddir == "" } {
  108.49 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
  108.50 -+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
  108.51 -+    }
  108.52 -+    if { $blddir == "" } {
  108.53 -+         error "Can't find libstdc++-v3"
  108.54 -+    }
  108.55 - 
  108.56 -     # By default, we assume we want to run program images.
  108.57 -     global dg-do-what-default
   109.1 --- a/patches/gcc/3.3/sh-pic-set_fpscr.patch	Tue Aug 14 19:32:22 2007 +0000
   109.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   109.3 @@ -1,60 +0,0 @@
   109.4 -Should fix
   109.5 -make[2]: *** [/gcc-3.3-glibc-2.3.2/build-glibc/elf/check-textrel.out] Error 1 
   109.6 -in glibc's "make tests".
   109.7 -
   109.8 --------------
   109.9 -
  109.10 -Message-Id: <200307300255.h6U2tB906928@r-rr.iij4u.or.jp>
  109.11 -To: dank@kegel.com
  109.12 -Cc: linux-sh@m17n.org
  109.13 -Subject: Re: Writing PIC version of __udivsi3_i4? (was: Re: "make tests" fails
  109.14 - with "libc.so: text relocations used" in glibc-2.3.2 for sh4)
  109.15 -In-Reply-To: Your message of "Wed, 30 Jul 2003 11:20:49 +0900"
  109.16 -	<200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
  109.17 -References: <200307300212.h6U2CH901209@r-rr.iij4u.or.jp>
  109.18 -Date: Wed, 30 Jul 2003 12:03:01 +0900
  109.19 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
  109.20 -
  109.21 -> I'll try to write the PIC version of it,
  109.22 -
  109.23 -Dan, does the attached patch work for you?
  109.24 -
  109.25 -[dank: original patch deleted; here's same thing rediffed against gcc-3.3 instead of HEAD]
  109.26 -
  109.27 ---- gcc-3.3/gcc/config/sh/lib1funcs.asm.old	Tue Jul 29 21:37:29 2003
  109.28 -+++ gcc-3.3/gcc/config/sh/lib1funcs.asm	Tue Jul 29 21:40:58 2003
  109.29 -@@ -1792,7 +1792,17 @@
  109.30 - 	.global GLOBAL(set_fpscr)
  109.31 - GLOBAL(set_fpscr):
  109.32 - 	lds r4,fpscr
  109.33 -+#ifdef __PIC__
  109.34 -+	mov.l	r12,@-r15
  109.35 -+	mova	LOCAL(set_fpscr_L0),r0
  109.36 -+	mov.l	LOCAL(set_fpscr_L0),r12
  109.37 -+	add	r0,r12
  109.38 -+	mov.l	LOCAL(set_fpscr_L1),r0
  109.39 -+	mov.l	@(r0,r12),r1
  109.40 -+	mov.l	@r15+,r12
  109.41 -+#else
  109.42 - 	mov.l LOCAL(set_fpscr_L1),r1
  109.43 -+#endif
  109.44 - 	swap.w r4,r0
  109.45 - 	or #24,r0
  109.46 - #ifndef FMOVD_WORKS
  109.47 -@@ -1820,8 +1830,16 @@
  109.48 - 	mov.l r3,@(4,r1)
  109.49 - #endif
  109.50 - 	.align 2
  109.51 -+#ifdef __PIC__
  109.52 -+LOCAL(set_fpscr_L0):
  109.53 -+	.long _GLOBAL_OFFSET_TABLE_
  109.54 -+LOCAL(set_fpscr_L1):
  109.55 -+	.long GLOBAL(fpscr_values@GOT)
  109.56 -+#else
  109.57 - LOCAL(set_fpscr_L1):
  109.58 - 	.long GLOBAL(fpscr_values)
  109.59 -+#endif
  109.60 -+
  109.61 - #ifdef __ELF__
  109.62 -         .comm   GLOBAL(fpscr_values),8,4
  109.63 - #else
   110.1 --- a/patches/gcc/3.3/sh-predef-gnu_source.patch	Tue Aug 14 19:32:22 2007 +0000
   110.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   110.3 @@ -1,15 +0,0 @@
   110.4 -See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11096
   110.5 -and http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00424.html
   110.6 -
   110.7 ---- gcc-3.3/gcc/config/sh/linux.h.old	Wed Jun  4 17:37:40 2003
   110.8 -+++ gcc-3.3/gcc/config/sh/linux.h	Wed Jun  4 17:38:16 2003
   110.9 -@@ -53,5 +53,9 @@
  110.10 -    %{static:-static}"
  110.11 - 
  110.12 -+/* The GNU C++ standard library requires that these macros be defined.  */
  110.13 -+#undef CPLUSPLUS_CPP_SPEC
  110.14 -+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
  110.15 -+
  110.16 - #undef LIB_SPEC
  110.17 - #define LIB_SPEC \
  110.18 -   "%{shared: -lc} \
   111.1 --- a/patches/gcc/3.3/sh-spec.patch	Tue Aug 14 19:32:22 2007 +0000
   111.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   111.3 @@ -1,45 +0,0 @@
   111.4 -Message-Id: <200308020452.h724q0n01509@r-rr.iij4u.or.jp>
   111.5 -To: dank@kegel.com
   111.6 -Cc: kkojima@rr.iij4u.or.jp
   111.7 -Subject: Re: Writing PIC version of __udivsi3_i4?
   111.8 -In-Reply-To: Your message of "Fri, 01 Aug 2003 21:15:27 -0700"
   111.9 -	<3F2B3ADF.6030206@kegel.com>
  111.10 -References: <3F2B3ADF.6030206@kegel.com>
  111.11 -Date: Sat, 02 Aug 2003 13:58:05 +0900
  111.12 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
  111.13 -
  111.14 -Dan Kegel <dank@kegel.com> wrote:
  111.15 -> It seems it might be from gcc's spec file:
  111.16 -> 
  111.17 -> *subtarget_link_spec:
  111.18 -> %{shared:-shared}    %{!static:      %{rdynamic:-export-dynamic}      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}      %{!rpath:-rpath /lib}}    %{static:-static}
  111.19 -> 
  111.20 -> as the only place -rpath showed up was in the output of gcc -v as it
  111.21 -> was linking libc.so.
  111.22 -> 
  111.23 -> Well, that's a clue, anyway!  Guess I'll dig through the spec files
  111.24 -> tomorrow to see if I can figure it out some more.
  111.25 -
  111.26 -I've grepped gcc/config/*/*.h and found only SH and old libc1 stuffs
  111.27 -of i386/alpha include %{!rpath:-rpath ... in 3.3 release and the
  111.28 -current CVS. And my sh-gcc's specs doesn't have this :-(
  111.29 -It would be the Right Thing to remove this stuff simply. How about
  111.30 -the gcc patch below?
  111.31 -
  111.32 -Regards,
  111.33 -	kaz
  111.34 ---
  111.35 ---- gcc-3.3/gcc/config/sh/linux.h.orig	Sat Aug  2 13:20:57 2003
  111.36 -+++ gcc-3.3/gcc/config/sh/linux.h	Sat Aug  2 13:22:42 2003
  111.37 -@@ -48,8 +48,7 @@ do { \
  111.38 -   "%{shared:-shared} \
  111.39 -    %{!static: \
  111.40 -      %{rdynamic:-export-dynamic} \
  111.41 --     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  111.42 --     %{!rpath:-rpath /lib}} \
  111.43 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
  111.44 -    %{static:-static}"
  111.45 - 
  111.46 - /* The GNU C++ standard library requires that these macros be defined.  */
  111.47 -
  111.48 -
   112.1 --- a/patches/gcc/3.3/sh4-kaz-workaround.patch	Tue Aug 14 19:32:22 2007 +0000
   112.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   112.3 @@ -1,145 +0,0 @@
   112.4 -[lightly edited to fit my patch directory - dank]
   112.5 -
   112.6 -From: kaz Kojima <kkojima@rr.iij4u.or.jp>
   112.7 -Date: Sat, 09 Aug 2003 09:46:21 +0900
   112.8 -To: dank@kegel.com
   112.9 -
  112.10 -Hi Dan,
  112.11 -
  112.12 -I've come back from the vacation and looked glibc string test
  112.13 -failures on sh4. This looks a gcc problem. gcc-3.3/3.4 doesn't
  112.14 -compile these tests correctly. The attached testcase aborts on
  112.15 -gcc-3.3/3.4 -O2 but exits normally gcc-3.2 and gcc-3.0.
  112.16 -The option -O2 is not essential but it makes the testcase small.
  112.17 -The failed string tests include the same pattern of the code with
  112.18 -f=random to generate ramdom strings but they get strings with
  112.19 -embedded NULL characters :-(
  112.20 -
  112.21 -...
  112.22 -I've got a workaround below for this bug, though it might merely
  112.23 -paper over the real bug. Anyway, I'd like to send a PR for this.
  112.24 -
  112.25 -Regards,
  112.26 -	kaz
  112.27 ---
  112.28 -int val = 0xff00;
  112.29 -
  112.30 -int f (void) { return val; }
  112.31 -
  112.32 -unsigned char a[1];
  112.33 -
  112.34 -void
  112.35 -foo (void)
  112.36 -{
  112.37 -  a[0] = f () & 255;
  112.38 -
  112.39 -  if (!a[0])
  112.40 -    a[0] = f () & 255;
  112.41 -
  112.42 -  if (!a[0])
  112.43 -    a[0] = 1 + (f () & 127);
  112.44 -}
  112.45 -
  112.46 -int
  112.47 -main (int argc, char **argv)
  112.48 -{
  112.49 -  foo ();
  112.50 -  if (!a[0])
  112.51 -    abort ();
  112.52 -
  112.53 -  return 0;
  112.54 -}
  112.55 -
  112.56 ---
  112.57 -
  112.58 -diff -u3prN ORIG/gcc/gcc/config/sh/sh.c LOCAL/gcc/gcc/config/sh/sh.c
  112.59 ---- gcc/gcc/config/sh/sh.c.old	Fri Aug  8 18:39:02 2003
  112.60 -+++ gcc/gcc/config/sh/sh.c	Fri Aug  8 22:31:02 2003
  112.61 -@@ -6657,6 +6657,19 @@ arith_reg_dest (op, mode)
  112.62 -   return arith_reg_operand (op, mode);
  112.63 - }
  112.64 - 
  112.65 -+/* Like above, but for SImode compare destinations: forbid paradoxical
  112.66 -+   subregs, because it would get the combiner confused.  */
  112.67 -+int
  112.68 -+arith_reg_cmp_dest (op, mode)
  112.69 -+     rtx op;
  112.70 -+     enum machine_mode mode;
  112.71 -+{
  112.72 -+  if (mode == SImode && GET_CODE (op) == SUBREG
  112.73 -+      && GET_MODE_SIZE (GET_MODE (SUBREG_REG (op))) < 4)
  112.74 -+    return 0;
  112.75 -+  return arith_reg_operand (op, mode);
  112.76 -+}
  112.77 -+
  112.78 - int
  112.79 - int_gpr_dest (op, mode)
  112.80 -      rtx op;
  112.81 -diff -u3prN ORIG/gcc/gcc/config/sh/sh.h LOCAL/gcc/gcc/config/sh/sh.h
  112.82 ---- gcc/gcc/config/sh/sh.h.old	Fri Aug  8 18:39:02 2003
  112.83 -+++ gcc/gcc/config/sh/sh.h	Fri Aug  8 22:31:02 2003
  112.84 -@@ -3365,6 +3365,7 @@ extern int rtx_equal_function_value_matt
  112.85 -   {"and_operand", {SUBREG, REG, CONST_INT}},				\
  112.86 -   {"any_register_operand", {SUBREG, REG}},				\
  112.87 -   {"arith_operand", {SUBREG, REG, CONST_INT}},				\
  112.88 -+  {"arith_reg_cmp_dest", {SUBREG, REG}},				\
  112.89 -   {"arith_reg_dest", {SUBREG, REG}},					\
  112.90 -   {"arith_reg_operand", {SUBREG, REG}},					\
  112.91 -   {"arith_reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_VECTOR}},	\
  112.92 -
  112.93 ---- gcc-3.3/gcc/config/sh/sh.md.orig	Tue Apr 15 10:06:10 2003
  112.94 -+++ gcc-3.3/gcc/config/sh/sh.md	Sat Aug  9 22:31:13 2003
  112.95 -@@ -616,7 +616,7 @@
  112.96 - 
  112.97 - (define_insn ""
  112.98 -   [(set (reg:SI T_REG)
  112.99 --	(eq:SI (and:SI (match_operand:SI 0 "arith_reg_operand" "z,r")
 112.100 -+	(eq:SI (and:SI (match_operand:SI 0 "arith_reg_cmp_dest" "z,r")
 112.101 - 		       (match_operand:SI 1 "arith_operand" "L,r"))
 112.102 - 	       (const_int 0)))]
 112.103 -   "TARGET_SH1"
 112.104 -@@ -631,7 +631,7 @@
 112.105 - 
 112.106 - (define_insn "cmpeqsi_t"
 112.107 -   [(set (reg:SI T_REG)
 112.108 --	(eq:SI (match_operand:SI 0 "arith_reg_operand" "r,z,r")
 112.109 -+	(eq:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r,z,r")
 112.110 - 	       (match_operand:SI 1 "arith_operand" "N,rI,r")))]
 112.111 -   "TARGET_SH1"
 112.112 -   "@
 112.113 -@@ -642,7 +642,7 @@
 112.114 - 
 112.115 - (define_insn "cmpgtsi_t"
 112.116 -   [(set (reg:SI T_REG)
 112.117 --	(gt:SI (match_operand:SI 0 "arith_reg_operand" "r,r")
 112.118 -+	(gt:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r,r")
 112.119 - 	       (match_operand:SI 1 "arith_reg_or_0_operand" "r,N")))]
 112.120 -   "TARGET_SH1"
 112.121 -   "@
 112.122 -@@ -652,7 +652,7 @@
 112.123 - 
 112.124 - (define_insn "cmpgesi_t"
 112.125 -   [(set (reg:SI T_REG)
 112.126 --	(ge:SI (match_operand:SI 0 "arith_reg_operand" "r,r")
 112.127 -+	(ge:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r,r")
 112.128 - 	       (match_operand:SI 1 "arith_reg_or_0_operand" "r,N")))]
 112.129 -   "TARGET_SH1"
 112.130 -   "@
 112.131 -@@ -666,7 +666,7 @@
 112.132 - 
 112.133 - (define_insn "cmpgeusi_t"
 112.134 -   [(set (reg:SI T_REG)
 112.135 --	(geu:SI (match_operand:SI 0 "arith_reg_operand" "r")
 112.136 -+	(geu:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r")
 112.137 - 		(match_operand:SI 1 "arith_reg_operand" "r")))]
 112.138 -   "TARGET_SH1"
 112.139 -   "cmp/hs	%1,%0"
 112.140 -@@ -674,7 +674,7 @@
 112.141 - 
 112.142 - (define_insn "cmpgtusi_t"
 112.143 -   [(set (reg:SI T_REG)
 112.144 --	(gtu:SI (match_operand:SI 0 "arith_reg_operand" "r")
 112.145 -+	(gtu:SI (match_operand:SI 0 "arith_reg_cmp_dest" "r")
 112.146 - 		(match_operand:SI 1 "arith_reg_operand" "r")))]
 112.147 -   "TARGET_SH1"
 112.148 -   "cmp/hi	%1,%0"
   113.1 --- a/patches/gcc/3.3/sh4-no-fix-protos.patch	Tue Aug 14 19:32:22 2007 +0000
   113.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   113.3 @@ -1,12 +0,0 @@
   113.4 -See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10331
   113.5 -and http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00423.html
   113.6 -
   113.7 ---- gcc-3.3/gcc/config/sh/t-linux.old	Wed Jun  4 13:01:39 2003
   113.8 -+++ gcc-3.3/gcc/config/sh/t-linux	Wed Jun  4 13:02:12 2003
   113.9 -@@ -1,3 +1,6 @@
  113.10 -+# Don't run fixproto
  113.11 -+STMP_FIXPROTO =
  113.12 -+
  113.13 - TARGET_LIBGCC2_CFLAGS = -fpic
  113.14 - LIB1ASMFUNCS_CACHE = _ic_invalidate
  113.15 - 
   114.1 --- a/patches/gcc/3.3/sh4-pthread.patch	Tue Aug 14 19:32:22 2007 +0000
   114.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   114.3 @@ -1,42 +0,0 @@
   114.4 -Patch to fix following test case failure:
   114.5 -
   114.6 -		=== libstdc++-v3 tests ===
   114.7 -FAIL: thread/pthread1.cc (test for excess errors)
   114.8 -Excess errors:
   114.9 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/sh4-unknown-linux-gnu/bin/ld: cannot find -lthread
  114.10 -collect2: ld returned 1 exit status
  114.11 -
  114.12 -Note that *any* program compiled with -pthread fails:
  114.13 -
  114.14 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/bin/sh4-unknown-linux-gnu-gcc hello.c  -pthread
  114.15 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/lib/gcc-lib/sh4-unknown-linux-gnu/3.3.1/../../../../sh4-unknown-linux-gnu/bin/ld: cannot find -lthread
  114.16 -collect2: ld returned 1 exit status
  114.17 -
  114.18 -Compiling with -lpthread on the other hand works fine:
  114.19 -/opt/cegl-2.0/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/bin/sh4-unknown-linux-gnu-gcc hello.c  -lpthread
  114.20 -
  114.21 -So -pthread is broken in some trivial way; it should invoke -lpthread, not -lthread,
  114.22 -at least when targeting Linux. 
  114.23 -
  114.24 -http://www.sh-linux.org/rpm-2003/SRPMS/gcc-3.2.3-3.src.rpm contains a jumbo patch,
  114.25 -gcc-20030210-sh-linux-1.patch, that includes a fix for this.  Here's the
  114.26 -appropriate hunk (brings in a fix for the documented -mieee option).
  114.27 -No idea if this fix is completely right, but it works for me...
  114.28 -- dank@kegel.com  20 Jul 2003
  114.29 -
  114.30 -Index: linux.h
  114.31 -===================================================================
  114.32 -RCS file: /cvsroot/gcc/gcc/gcc/config/sh/linux.h,v
  114.33 -retrieving revision 1.9.20.1
  114.34 -diff -u -d -u -r1.9.20.1 linux.h
  114.35 ---- gcc-ss-3_3-20030714/gcc/config/sh/linux.h.old	6 Jun 2003 02:30:59 -0000	1.9.20.1
  114.36 -+++ gcc-ss-3_3-20030714/gcc/config/sh/linux.h	20 Jul 2003 23:36:50 -0000
  114.37 -@@ -59,7 +59,7 @@
  114.38 - #undef LIB_SPEC
  114.39 - #define LIB_SPEC \
  114.40 -   "%{shared: -lc} \
  114.41 --   %{!shared: %{pthread:-lthread} \
  114.42 -+   %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
  114.43 -      %{profile:-lc_p} %{!profile: -lc}}"
  114.44 - 
  114.45 - #undef STARTFILE_SPEC
   115.1 --- a/patches/gcc/3.4.0/gcc-3.3.3h-ppc-asm-spec.patch	Tue Aug 14 19:32:22 2007 +0000
   115.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   115.3 @@ -1,88 +0,0 @@
   115.4 -Retrieved from http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/rs6000.h.diff?r1=1.234.2.28&r2=1.234.2.29
   115.5 -
   115.6 -Should fix following error building gcc for ppc7450:
   115.7 -
   115.8 -/tmp/ccmfQBT9.s:5197: Error: Unrecognized opcode: `lvx'
   115.9 -make[2]: *** [libgcc/./unwind-dw2.o] Error 1
  115.10 -make[2]: Leaving directory `build-gcc-core/gcc'
  115.11 -make[1]: *** [stmp-multilib] Error 2
  115.12 -make[1]: Leaving directory `build-gcc-core/gcc'
  115.13 -make: *** [all-gcc] Error 2
  115.14 -
  115.15 -(I'm not so sure about the unconditional -many it sends to binutils;
  115.16 -that seems redundant?)
  115.17 -
  115.18 -Revision 1.234.2.29, Tue May 25 06:08:57 2004 UTC (6 days, 11 hours ago) by amodra
  115.19 -Branch: hammer-3_3-branch
  115.20 -Changes since 1.234.2.28: +15 -11 lines
  115.21 -
  115.22 -	* config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
  115.23 -	for power5 and rs64a.  Correct condition for default.  Correct power3,
  115.24 -	620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
  115.25 -
  115.26 -===================================================================
  115.27 -RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.h,v
  115.28 -retrieving revision 1.234.2.28
  115.29 -retrieving revision 1.234.2.29
  115.30 -diff -u -r1.234.2.28 -r1.234.2.29
  115.31 ---- gcc/gcc/config/rs6000/rs6000.h	2004/05/18 14:26:57	1.234.2.28
  115.32 -+++ gcc/gcc/config/rs6000/rs6000.h	2004/05/25 06:08:57	1.234.2.29
  115.33 -@@ -51,20 +51,23 @@
  115.34 - "%{!mcpu*: \
  115.35 -   %{mpower: %{!mpower2: -mpwr}} \
  115.36 -   %{mpower2: -mpwrx} \
  115.37 --  %{mpowerpc*: -mppc} \
  115.38 -+  %{mpowerpc64*: -mppc64} \
  115.39 -+  %{!mpowerpc64*: %{mpowerpc*: -mppc}} \
  115.40 -   %{mno-power: %{!mpowerpc*: -mcom}} \
  115.41 --  %{!mno-power: %{!mpower2: %(asm_default)}}} \
  115.42 -+  %{!mno-power: %{!mpower*: %(asm_default)}}} \
  115.43 - %{mcpu=common: -mcom} \
  115.44 - %{mcpu=power: -mpwr} \
  115.45 - %{mcpu=power2: -mpwrx} \
  115.46 --%{mcpu=power3: -m604} \
  115.47 -+%{mcpu=power3: -mppc64} \
  115.48 - %{mcpu=power4: -mpower4} \
  115.49 -+%{mcpu=power5: -mpower4} \
  115.50 - %{mcpu=powerpc: -mppc} \
  115.51 - %{mcpu=rios: -mpwr} \
  115.52 - %{mcpu=rios1: -mpwr} \
  115.53 - %{mcpu=rios2: -mpwrx} \
  115.54 - %{mcpu=rsc: -mpwr} \
  115.55 - %{mcpu=rsc1: -mpwr} \
  115.56 -+%{mcpu=rs64a: -mppc64} \
  115.57 - %{mcpu=401: -mppc} \
  115.58 - %{mcpu=403: -m403} \
  115.59 - %{mcpu=405: -m405} \
  115.60 -@@ -79,22 +82,23 @@
  115.61 - %{mcpu=ec603e: -mppc} \
  115.62 - %{mcpu=604: -mppc} \
  115.63 - %{mcpu=604e: -mppc} \
  115.64 --%{mcpu=620: -mppc} \
  115.65 --%{mcpu=630: -m604} \
  115.66 -+%{mcpu=620: -mppc64} \
  115.67 -+%{mcpu=630: -mppc64} \
  115.68 - %{mcpu=740: -mppc} \
  115.69 --%{mcpu=7400: -mppc} \
  115.70 --%{mcpu=7450: -mppc} \
  115.71 --%{mcpu=G4: -mppc} \
  115.72 - %{mcpu=750: -mppc} \
  115.73 - %{mcpu=G3: -mppc} \
  115.74 -+%{mcpu=7400: -mppc -maltivec} \
  115.75 -+%{mcpu=7450: -mppc -maltivec} \
  115.76 -+%{mcpu=G4: -mppc -maltivec} \
  115.77 - %{mcpu=801: -mppc} \
  115.78 - %{mcpu=821: -mppc} \
  115.79 - %{mcpu=823: -mppc} \
  115.80 - %{mcpu=860: -mppc} \
  115.81 --%{mcpu=970: -mpower4} \
  115.82 --%{mcpu=G5: -mpower4} \
  115.83 -+%{mcpu=970: -mpower4 -maltivec} \
  115.84 -+%{mcpu=G5: -mpower4 -maltivec} \
  115.85 - %{mcpu=8540: -me500} \
  115.86 --%{maltivec: -maltivec}"
  115.87 -+%{maltivec: -maltivec} \
  115.88 -+-many"
  115.89 - 
  115.90 - #define CPP_DEFAULT_SPEC ""
  115.91 - 
   116.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   116.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   116.3 @@ -1,70 +0,0 @@
   116.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
   116.5 -Adds support for arm*b-linux* big-endian ARM targets
   116.6 -
   116.7 -See http://gcc.gnu.org/PR16350
   116.8 -
   116.9 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  116.10 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  116.11 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-07-02 14:46:29.225443757 +0200
  116.12 -@@ -30,17 +30,34 @@
  116.13 - /* Do not assume anything about header files.  */
  116.14 - #define NO_IMPLICIT_EXTERN_C
  116.15 - 
  116.16 -+/*
  116.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  116.18 -+ * (big endian) configurations.
  116.19 -+ */
  116.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
  116.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  116.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  116.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  116.24 -+#else
  116.25 -+#define TARGET_ENDIAN_DEFAULT 0
  116.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  116.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  116.28 -+#endif
  116.29 -+
  116.30 - /* Default is to use APCS-32 mode.  */
  116.31 - #undef  TARGET_DEFAULT
  116.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  116.33 -+#define TARGET_DEFAULT \
  116.34 -+		( ARM_FLAG_APCS_32 | \
  116.35 -+		  ARM_FLAG_MMU_TRAPS | \
  116.36 -+		  TARGET_ENDIAN_DEFAULT )
  116.37 - 
  116.38 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  116.39 - 
  116.40 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  116.41 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  116.42 - 
  116.43 - #undef  MULTILIB_DEFAULTS
  116.44 - #define MULTILIB_DEFAULTS \
  116.45 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  116.46 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  116.47 - 
  116.48 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  116.49 - 
  116.50 -@@ -89,7 +106,7 @@
  116.51 -    %{rdynamic:-export-dynamic} \
  116.52 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  116.53 -    -X \
  116.54 --   %{mbig-endian:-EB}" \
  116.55 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  116.56 -    SUBTARGET_EXTRA_LINK_SPEC
  116.57 - 
  116.58 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
  116.59 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
  116.60 ---- gcc-3.4.0.orig/gcc/config.gcc	2004-04-17 04:28:24.000000000 +0200
  116.61 -+++ gcc-3.4.0/gcc/config.gcc	2004-07-02 14:44:40.045822542 +0200
  116.62 -@@ -666,6 +666,11 @@
  116.63 - 	;;
  116.64 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  116.65 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  116.66 -+	case $target in
  116.67 -+	arm*b-*)
  116.68 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  116.69 -+		;;
  116.70 -+	esac
  116.71 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  116.72 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  116.73 - 	gnu_ld=yes
   117.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-arm-lib1asm.patch	Tue Aug 14 19:32:22 2007 +0000
   117.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   117.3 @@ -1,27 +0,0 @@
   117.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
   117.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
   117.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
   117.7 -# Fixes errors like the following when building glibc (or any other executable
   117.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
   117.9 -#
  117.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
  117.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
  117.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
  117.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
  117.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
  117.15 -
  117.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
  117.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux	2003-09-20 23:09:07.000000000 +0200
  117.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux	2004-05-01 20:31:59.102846400 +0200
  117.19 -@@ -4,7 +4,10 @@
  117.20 - LIBGCC2_DEBUG_CFLAGS = -g0
  117.21 - 
  117.22 - LIB1ASMSRC = arm/lib1funcs.asm
  117.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
  117.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
  117.25 -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
  117.26 -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
  117.27 -+	_fixsfsi _fixunssfsi
  117.28 - 
  117.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
  117.30 - # MULTILIB_DIRNAMES = hard-float soft-float
   118.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-arm-nolibfloat.patch	Tue Aug 14 19:32:22 2007 +0000
   118.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   118.3 @@ -1,24 +0,0 @@
   118.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
   118.5 -#
   118.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
   118.7 -#   anymore.  (The required functions are now in libgcc.)
   118.8 -# 
   118.9 -# Fixes errors like
  118.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
  118.11 -# collect2: ld returned 1 exit status
  118.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
  118.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
  118.14 -
  118.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  118.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  118.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-05-01 19:19:06.935979200 +0200
  118.18 -@@ -55,7 +73,7 @@
  118.19 -    %{shared:-lc} \
  118.20 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
  118.21 - 
  118.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
  118.23 -+#define LIBGCC_SPEC "-lgcc"
  118.24 - 
  118.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
  118.26 -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
  118.27 -
   119.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-pr14808-refix.patch	Tue Aug 14 19:32:22 2007 +0000
   119.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   119.3 @@ -1,46 +0,0 @@
   119.4 -See http://gcc.gnu.org/ml/gcc/2004-06/msg00394.html
   119.5 -This might fix the error
   119.6 -
   119.7 -strstream.s: Assembler messages:
   119.8 -strstream.s:8390: Error: junk `(%ecx)' after expression
   119.9 -strstream.s:8402: Error: junk `(%ecx)' after expression
  119.10 -strstream.s:8551: Error: junk `(%ecx)' after expression
  119.11 -strstream.s:8563: Error: junk `(%ecx)' after expression
  119.12 -make[3]: *** [strstream.lo] Error 1
  119.13 -make[3]: Leaving directory `i686-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-gcc/i686-unknown-linux-gnu/libstdc++-v3/src'
  119.14 -
  119.15 -when building a cygwin->linux cross-compiler with gcc-3.4.0,
  119.16 -probably caused by patch to fix http://gcc.gnu.org/PR14808
  119.17 -
  119.18 -
  119.19 ---- gcc-3.4.0/gcc/cp/method.c.old	Sun Jun  6 22:46:04 2004
  119.20 -+++ gcc-3.4.0/gcc/cp/method.c	Sun Jun  6 22:48:13 2004
  119.21 -@@ -286,7 +286,7 @@
  119.22 -   tree alias;
  119.23 -   char buf[256];
  119.24 - 
  119.25 --#if defined (__CYGWIN__) || defined (__MINGW32__)
  119.26 -+#if defined (TARGET_IS_PE_COFF)
  119.27 -   if (DECL_ONE_ONLY (function))
  119.28 -     return function;
  119.29 - #endif
  119.30 -@@ -404,7 +404,7 @@
  119.31 -   push_to_top_level ();
  119.32 - 
  119.33 - #if defined (ASM_OUTPUT_DEF) \
  119.34 --  && !(defined (__CYGWIN__) || defined (__MINGW32__))
  119.35 -+  && !defined (TARGET_IS_PE_COFF)
  119.36 -   if (targetm.have_named_sections)
  119.37 -     {
  119.38 -       resolve_unique_section (function, 0, flag_function_sections);
  119.39 ---- gcc-3.4.0/gcc/config/i386/cygming.h.old	Sun Jun  6 22:50:46 2004
  119.40 -+++ gcc-3.4.0/gcc/config/i386/cygming.h	Sun Jun  6 22:52:10 2004
  119.41 -@@ -27,6 +27,8 @@
  119.42 - 
  119.43 - #define TARGET_EXECUTABLE_SUFFIX ".exe"
  119.44 - 
  119.45 -+#define TARGET_IS_PE_COFF 1
  119.46 -+
  119.47 - #include <stdio.h>
  119.48 - 
  119.49 - /* Masks for subtarget switches used by other files.  */
   120.1 --- a/patches/gcc/3.4.0/gcc-3.4.0-ultrasparc3-default64.patch	Tue Aug 14 19:32:22 2007 +0000
   120.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   120.3 @@ -1,52 +0,0 @@
   120.4 -Date: Sat, 1 May 2004 21:08:10 +0200
   120.5 -From: Jakub Jelinek <jakub@redhat.com>
   120.6 -To: Dan Kegel <dank@kegel.com>, mark@codesourcery.com
   120.7 -Cc: gcc-patches@gcc.gnu.org
   120.8 -Subject: [PATCH] sparc64-linux --with-cpu=ultrasparc fix
   120.9 -Message-ID: <20040501190810.GD5191@sunsite.ms.mff.cuni.cz>
  120.10 -Reply-To: Jakub Jelinek <jakub@redhat.com>
  120.11 -References: <40940B11.9080907@kegel.com>
  120.12 -In-Reply-To: <40940B11.9080907@kegel.com>
  120.13 -
  120.14 -On Sat, May 01, 2004 at 01:39:45PM -0700, Dan Kegel wrote:
  120.15 -> I'm having a bit of trouble configuring gcc-3.4.0  for sparc64-linux.
  120.16 -> The resulting compiler defaults to sparc32, which is a problem
  120.17 -> because it means having to figure out how to add
  120.18 -> -mcpu=ultrasparc3 -Wa,-Av9a -m64 to CFLAGS for everything I build.
  120.19 -> The worst part is that this even affects libgcc.a, which makes it
  120.20 -> pretty hard to link any sparc64 executables.  I could figure out
  120.21 -> how mklibgcc and multilibbing work, and maybe thereby get a good 64 bit 
  120.22 -> libgcc.a,
  120.23 -> but I'd kind of like to avoid that for the moment, and just really get
  120.24 -> gcc to default to 64 bit output.
  120.25 -> 
  120.26 -> What's the right way to get gcc to default to building 64 bit executables
  120.27 -> when targeting sparc64-linux?
  120.28 -
  120.29 -There was TARGET_CPU_ultrasparc3 missing in linux64.h.
  120.30 -I've commited the following fix to the trunk, but as it is not a regression,
  120.31 -I'm not sure if Mark is ok with this for gcc-3_4-branch.
  120.32 -
  120.33 -2004-05-01  Jakub Jelinek  <jakub@redhat.com>
  120.34 -
  120.35 -	* config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
  120.36 -	also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
  120.37 -
  120.38 ---- gcc-3.4.0/gcc/config/sparc/linux64.h.jj	2004-05-01 22:59:52.000000000 +0200
  120.39 -+++ gcc-3.4.0/gcc/config/sparc/linux64.h	2004-05-01 23:00:41.126176529 +0200
  120.40 -@@ -39,7 +39,9 @@ Boston, MA 02111-1307, USA.  */
  120.41 - #undef MD_EXEC_PREFIX
  120.42 - #undef MD_STARTFILE_PREFIX
  120.43 - 
  120.44 --#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
  120.45 -+#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
  120.46 -+    || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
  120.47 -+    || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
  120.48 - /* A 64 bit v9 compiler with stack-bias,
  120.49 -    in a Medium/Low code model environment.  */
  120.50 - 
  120.51 -
  120.52 -	Jakub
  120.53 -
  120.54 -
  120.55 -
   121.1 --- a/patches/gcc/3.4.0/pr13250-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   121.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   121.3 @@ -1,19 +0,0 @@
   121.4 -See http://gcc.gnu.org/PR13250
   121.5 -Fixes bad code generated when compiling SHA256 for SH processor
   121.6 -
   121.7 -===================================================================
   121.8 -RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
   121.9 -retrieving revision 1.171
  121.10 -retrieving revision 1.172
  121.11 -diff -u -r1.171 -r1.172
  121.12 ---- gcc/gcc/config/sh/sh.md	2004/05/10 23:25:13	1.171
  121.13 -+++ gcc/gcc/config/sh/sh.md	2004/05/28 05:47:36	1.172
  121.14 -@@ -2194,7 +2194,7 @@
  121.15 - 	parts[0] = gen_reg_rtx (SImode);
  121.16 - 	parts[1] = gen_reg_rtx (SImode);
  121.17 - 	emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
  121.18 --	parts[choice-1] = operands[1];
  121.19 -+	emit_move_insn (parts[choice-1], operands[1]);
  121.20 - 	emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
  121.21 - 	emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
  121.22 - 	emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));
   122.1 --- a/patches/gcc/3.4.0/pr15647-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   122.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   122.3 @@ -1,288 +0,0 @@
   122.4 -Received: (qmail 11693 invoked from network); 26 May 2004 03:17:41 -0000
   122.5 -Received: from unknown (HELO r-rr.iij4u.or.jp) (210.130.0.76)
   122.6 -  by sourceware dot org with SMTP; 26 May 2004 03:17:41 -0000
   122.7 -Received: from localhost (frgw.3in.ne.jp [210.251.121.226])
   122.8 -	by r-rr dot iij4u dot or dot jp (8 dot 11 dot 6+IIJ/8 dot 11 dot 6) with ESMTP id i4Q3HbJ21421;
   122.9 -	Wed, 26 May 2004 12:17:37 +0900 (JST)
  122.10 -Date: Wed, 26 May 2004 12:13:58 +0900 (JST)
  122.11 -Message-Id: <20040526.121358.39460214.kkojima@rr.iij4u.or.jp>
  122.12 -To: gcc-patches at gcc dot gnu dot org
  122.13 -Cc: Mark Mitchell <mark at codesourcery dot com>
  122.14 -Subject: [PATCH] Fix PR target/15647 for sh-linux
  122.15 -From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
  122.16 -Mime-Version: 1.0
  122.17 -Content-Type: Text/Plain; charset=us-ascii
  122.18 -Content-Transfer-Encoding: 7bit
  122.19 -
  122.20 -Hi,
  122.21 -
  122.22 -The appended patch is to fix PR target/15647
  122.23 -  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15647
  122.24 -for linux.
  122.25 -__udivsi3 is exported from libgcc_s.so.1 and gcc generates the code
  122.26 -which assumes r1 will be not clobbered when calling __udivsi3 in SH3
  122.27 -case.  This is bad because r1 is clobbered by PLT.
  122.28 -The another functions listed in the standard libgcc-std.ver which
  122.29 -possively have similar problem are __ashlsi3, __ashrsi3 and __lshrsi3,
  122.30 -though these are used only by SH1/2.
  122.31 -The patch below simply uses an SH specific libgcc-std.ver which drops
  122.32 -these functions.  SH linux uses a linker script libgcc_s.so having
  122.33 -libgcc.a as a suppementary library, so these functions given by
  122.34 -libgcc.a when needed in the link time.
  122.35 -Although mainline has one failure in bulding zlib which can be avoided
  122.36 -with -fno-reorder-blocks for sh3-unknown-linux-gnu target, x86 cross
  122.37 -to sh3-unknown-linux-gnu can be build successfully on mainline with
  122.38 -this patch except the above failure.  3.4-branch successfully bootstraps
  122.39 -with it and there are no new failures on the native sh4-unknown-linux-gnu.
  122.40 -The patch is highly sh-linux specific and seems to be safe.  I'll check
  122.41 -it into mainline.
  122.42 -The original PR is also for sh3 netbsd.  I'd like to leave it for the
  122.43 -netbsd experts.
  122.44 -
  122.45 -I think that it's too late for 3.3.4.  Mark, is it also late for
  122.46 -3.4.1?
  122.47 -
  122.48 -Regards,
  122.49 -	kaz
  122.50 ---
  122.51 -2004-05-26  Kaz Kojima  <kkojima@gcc.gnu.org>
  122.52 -
  122.53 -	* config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
  122.54 -	libgcc-std.ver.
  122.55 -	* config/sh/libgcc-std.ver: New file.
  122.56 -
  122.57 -diff -u3prN ORIG-gcc/gcc/config/sh/t-linux LOCAL-gcc/gcc/config/sh/t-linux
  122.58 ---- ORIG-gcc/gcc/config/sh/t-linux	Mon Feb 16 20:13:25 2004
  122.59 -+++ LOCAL-gcc/gcc/config/sh/t-linux	Tue May 25 18:25:48 2004
  122.60 -@@ -11,8 +11,11 @@ MULTILIB_EXCEPTIONS=
  122.61 - EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
  122.62 - 
  122.63 - # Override t-slibgcc-elf-ver to export some libgcc symbols with
  122.64 --# the symbol versions that glibc used.
  122.65 --SHLIB_MAPFILES =  $(srcdir)/libgcc-std.ver $(srcdir)/config/sh/libgcc-glibc.ver
  122.66 -+# the symbol versions that glibc used.  Also use an sh specific
  122.67 -+# libgcc-std.ver to avoid to export some lib1func routines which
  122.68 -+# should not be called via PLT.
  122.69 -+SHLIB_MAPFILES =  $(srcdir)/config/sh/libgcc-std.ver \
  122.70 -+	$(srcdir)/config/sh/libgcc-glibc.ver
  122.71 - 
  122.72 - # Override SHLIB_LINK and SHLIB_INSTALL to use linker script
  122.73 - # libgcc_s.so.
  122.74 -diff -u3prN ORIG-gcc/gcc/config/sh/libgcc-std.ver LOCAL-gcc/gcc/config/sh/libgcc-std.ver
  122.75 ---- ORIG-gcc/gcc/config/sh/libgcc-std.ver	Thu Jan  1 09:00:00 1970
  122.76 -+++ LOCAL-gcc/gcc/config/sh/libgcc-std.ver	Tue May 25 18:50:54 2004
  122.77 -@@ -0,0 +1,213 @@
  122.78 -+GCC_3.0 {
  122.79 -+  # libgcc1 integer symbols
  122.80 -+  __absvsi2
  122.81 -+  __addvsi3
  122.82 -+  # __ashlsi3
  122.83 -+  # __ashrsi3
  122.84 -+  __divsi3
  122.85 -+  # __lshrsi3
  122.86 -+  __modsi3
  122.87 -+  __mulsi3
  122.88 -+  __mulvsi3
  122.89 -+  __negvsi2
  122.90 -+  __subvsi3
  122.91 -+  # __udivsi3
  122.92 -+  __umodsi3
  122.93 -+
  122.94 -+  # libgcc1 floating point symbols
  122.95 -+  __addsf3
  122.96 -+  __adddf3
  122.97 -+  __addxf3
  122.98 -+  __addtf3
  122.99 -+  __divsf3
 122.100 -+  __divdf3
 122.101 -+  __divxf3
 122.102 -+  __divtf3
 122.103 -+  __eqsf2
 122.104 -+  __eqdf2
 122.105 -+  __eqxf2
 122.106 -+  __eqtf2
 122.107 -+  __extenddfxf2
 122.108 -+  __extenddftf2
 122.109 -+  __extendsfdf2
 122.110 -+  __extendsfxf2
 122.111 -+  __extendsftf2
 122.112 -+  __fixsfsi
 122.113 -+  __fixdfsi
 122.114 -+  __fixxfsi
 122.115 -+  __fixtfsi
 122.116 -+  __floatsisf
 122.117 -+  __floatsidf
 122.118 -+  __floatsixf
 122.119 -+  __floatsitf
 122.120 -+  __gesf2
 122.121 -+  __gedf2
 122.122 -+  __gexf2
 122.123 -+  __getf2
 122.124 -+  __gtsf2
 122.125 -+  __gtdf2
 122.126 -+  __gtxf2
 122.127 -+  __gttf2
 122.128 -+  __lesf2
 122.129 -+  __ledf2
 122.130 -+  __lexf2
 122.131 -+  __letf2
 122.132 -+  __ltsf2
 122.133 -+  __ltdf2
 122.134 -+  __ltxf2
 122.135 -+  __lttf2
 122.136 -+  __mulsf3
 122.137 -+  __muldf3
 122.138 -+  __mulxf3
 122.139 -+  __multf3
 122.140 -+  __negsf2
 122.141 -+  __negdf2
 122.142 -+  __negxf2
 122.143 -+  __negtf2
 122.144 -+  __nesf2
 122.145 -+  __nedf2
 122.146 -+  __nexf2
 122.147 -+  __netf2
 122.148 -+  __subsf3
 122.149 -+  __subdf3
 122.150 -+  __subxf3
 122.151 -+  __subtf3
 122.152 -+  __truncdfsf2
 122.153 -+  __truncxfsf2
 122.154 -+  __trunctfsf2
 122.155 -+  __truncxfdf2
 122.156 -+  __trunctfdf2
 122.157 -+
 122.158 -+  # libgcc2 DImode arithmetic (for 32-bit targets).
 122.159 -+  __absvdi2
 122.160 -+  __addvdi3
 122.161 -+  __ashldi3
 122.162 -+  __ashrdi3
 122.163 -+  __cmpdi2
 122.164 -+  __divdi3
 122.165 -+  __ffsdi2
 122.166 -+  __fixdfdi
 122.167 -+  __fixsfdi
 122.168 -+  __fixtfdi
 122.169 -+  __fixxfdi
 122.170 -+  __fixunsdfdi
 122.171 -+  __fixunsdfsi
 122.172 -+  __fixunssfsi
 122.173 -+  __fixunssfdi
 122.174 -+  __fixunstfdi
 122.175 -+  __fixunstfsi
 122.176 -+  __fixunsxfdi
 122.177 -+  __fixunsxfsi
 122.178 -+  __floatdidf
 122.179 -+  __floatdisf
 122.180 -+  __floatdixf
 122.181 -+  __floatditf
 122.182 -+  __lshrdi3
 122.183 -+  __moddi3
 122.184 -+  __muldi3
 122.185 -+  __mulvdi3
 122.186 -+  __negdi2
 122.187 -+  __negvdi2
 122.188 -+  __subvdi3
 122.189 -+  __ucmpdi2
 122.190 -+  __udivdi3
 122.191 -+  __udivmoddi4
 122.192 -+  __umoddi3
 122.193 -+
 122.194 -+  # libgcc2 TImode arithmetic (for 64-bit targets).
 122.195 -+  __ashlti3
 122.196 -+  __ashrti3
 122.197 -+  __cmpti2
 122.198 -+  __divti3
 122.199 -+  __ffsti2
 122.200 -+  __fixdfti
 122.201 -+  __fixsfti
 122.202 -+  __fixtfti
 122.203 -+  __fixxfti
 122.204 -+  __lshrti3
 122.205 -+  __modti3
 122.206 -+  __multi3
 122.207 -+  __negti2
 122.208 -+  __ucmpti2
 122.209 -+  __udivmodti4
 122.210 -+  __udivti3
 122.211 -+  __umodti3
 122.212 -+  __fixunsdfti
 122.213 -+  __fixunssfti
 122.214 -+  __fixunstfti
 122.215 -+  __fixunsxfti
 122.216 -+  __floattidf
 122.217 -+  __floattisf
 122.218 -+  __floattixf
 122.219 -+  __floattitf
 122.220 -+
 122.221 -+  # Used to deal with trampoline initialization on some platforms
 122.222 -+  __clear_cache
 122.223 -+
 122.224 -+  # EH symbols
 122.225 -+  _Unwind_DeleteException
 122.226 -+  _Unwind_Find_FDE
 122.227 -+  _Unwind_ForcedUnwind
 122.228 -+  _Unwind_GetGR
 122.229 -+  _Unwind_GetIP
 122.230 -+  _Unwind_GetLanguageSpecificData
 122.231 -+  _Unwind_GetRegionStart
 122.232 -+  _Unwind_GetTextRelBase
 122.233 -+  _Unwind_GetDataRelBase
 122.234 -+  _Unwind_RaiseException
 122.235 -+  _Unwind_Resume
 122.236 -+  _Unwind_SetGR
 122.237 -+  _Unwind_SetIP
 122.238 -+  __deregister_frame
 122.239 -+  __deregister_frame_info
 122.240 -+  __deregister_frame_info_bases
 122.241 -+  __register_frame
 122.242 -+  __register_frame_info
 122.243 -+  __register_frame_info_bases
 122.244 -+  __register_frame_info_table
 122.245 -+  __register_frame_info_table_bases
 122.246 -+  __register_frame_table
 122.247 -+
 122.248 -+  # SjLj EH symbols
 122.249 -+  _Unwind_SjLj_Register
 122.250 -+  _Unwind_SjLj_Unregister
 122.251 -+  _Unwind_SjLj_RaiseException
 122.252 -+  _Unwind_SjLj_ForcedUnwind
 122.253 -+  _Unwind_SjLj_Resume
 122.254 -+}
 122.255 -+
 122.256 -+%inherit GCC_3.3 GCC_3.0
 122.257 -+GCC_3.3 {
 122.258 -+  _Unwind_FindEnclosingFunction
 122.259 -+  _Unwind_GetCFA
 122.260 -+  _Unwind_Backtrace
 122.261 -+  _Unwind_Resume_or_Rethrow
 122.262 -+  _Unwind_SjLj_Resume_or_Rethrow
 122.263 -+}
 122.264 -+
 122.265 -+%inherit GCC_3.3.1 GCC_3.3
 122.266 -+GCC_3.3.1 {
 122.267 -+  __gcc_personality_sj0
 122.268 -+  __gcc_personality_v0
 122.269 -+}
 122.270 -+
 122.271 -+%inherit GCC_3.3.2 GCC_3.3.1
 122.272 -+GCC_3.3.2 {
 122.273 -+}
 122.274 -+
 122.275 -+%inherit GCC_3.4 GCC_3.3.2
 122.276 -+GCC_3.4 {
 122.277 -+  # bit scanning and counting built-ins
 122.278 -+  __clzsi2
 122.279 -+  __clzdi2
 122.280 -+  __clzti2
 122.281 -+  __ctzsi2
 122.282 -+  __ctzdi2
 122.283 -+  __ctzti2
 122.284 -+  __popcountsi2
 122.285 -+  __popcountdi2
 122.286 -+  __popcountti2
 122.287 -+  __paritysi2
 122.288 -+  __paritydi2
 122.289 -+  __parityti2
 122.290 -+}
 122.291 -
   123.1 --- a/patches/gcc/3.4.1/fix-fixincl.patch	Tue Aug 14 19:32:22 2007 +0000
   123.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   123.3 @@ -1,70 +0,0 @@
   123.4 -See http://gcc.gnu.org/PR22541
   123.5 -
   123.6 -From: Dan Kegel
   123.7 -
   123.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
   123.9 -(the only two I've tried like this), the configure script happily copies
  123.10 -the glibc include files from include to sys-include; here's the line
  123.11 -from the log file (with $PREFIX instead of the real prefix):
  123.12 -
  123.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  123.14 -
  123.15 -But later, when running fixincludes, it gives the error message
  123.16 - The directory that should contain system headers does not exist:
  123.17 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  123.18 -
  123.19 -Nevertheless, it continues building; the header files it installs in
  123.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  123.21 -do not include the boilerplate that would cause it to #include_next the
  123.22 -glibc headers in the system header directory.
  123.23 -Thus the resulting toolchain can't compile the following program:
  123.24 -#include <limits.h>
  123.25 -int x = PATH_MAX;
  123.26 -because its limits.h doesn't include the glibc header.
  123.27 -
  123.28 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
  123.29 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
  123.30 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  123.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  123.32 -it is only created later, during 'make install'.  (Which makes this problem
  123.33 -confusing, since one only notices the breakage well after 'make install',
  123.34 -at which point the path configure complained about does exist, and has the
  123.35 -right stuff in it.)
  123.36 -
  123.37 -A possible fix is to replace the line in gcc/Makefile.in that says
  123.38 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  123.39 -with a version that gets rid of extra ..'s, e.g.
  123.40 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
  123.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  123.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  123.43 -
  123.44 -
  123.45 ---- gcc-3.4.3/gcc/Makefile.in.foo	2005-05-20 11:41:39.000000000 -0700
  123.46 -+++ gcc-3.4.3/gcc/Makefile.in	2005-05-20 12:08:46.000000000 -0700
  123.47 -@@ -350,7 +350,10 @@
  123.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  123.49 - 
  123.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  123.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  123.52 -+# Purge it of unneccessary internal relative paths
  123.53 -+# to directories that might not exist yet.
  123.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  123.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  123.56 - 
  123.57 - # Control whether to run fixproto and fixincludes.
  123.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
  123.59 -@@ -2532,11 +2535,13 @@
  123.60 - 	$(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
  123.61 - 
  123.62 - # Build fixed copies of system files.
  123.63 -+# Abort if no system headers available, unless building a crosscompiler.
  123.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
  123.65 - stmp-fixinc: fixinc.sh gsyslimits.h
  123.66 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
  123.67 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  123.68 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  123.69 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  123.70 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  123.71 - 	  then sleep 1; else exit 1; fi; \
  123.72 - 	fi
  123.73 - 	rm -rf include; mkdir include
   124.1 --- a/patches/gcc/3.4.1/gcc-3.4-sparc-pr16430-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   124.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   124.3 @@ -1,42 +0,0 @@
   124.4 -Message-ID: <33159.207.230.144.240.1093980498.squirrel@207.230.144.240>
   124.5 -Date: Tue, 31 Aug 2004 14:28:18 -0500 (CDT)
   124.6 -Subject: Crosstool 0.28-rc35
   124.7 -From: "Jason Rothstein" <fdragon@fdragon.org>
   124.8 -To: dank@kegel.com
   124.9 -
  124.10 -Could you please add the patches in GCC PR 16430 to GCC 3.4.1?
  124.11 -
  124.12 -http://gcc.gnu.org/PR16430
  124.13 -
  124.14 -These fix one of 2 current ICE conditions when building a sparc64 ada
  124.15 -compilers.
  124.16 -
  124.17 -
  124.18 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.271.4.16&r2=1.271.4.17
  124.19 -
  124.20 -===================================================================
  124.21 -RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
  124.22 -retrieving revision 1.271.4.16
  124.23 -retrieving revision 1.271.4.17
  124.24 -diff -u -r1.271.4.16 -r1.271.4.17
  124.25 ---- gcc/gcc/config/sparc/sparc.c	2004/07/08 13:00:56	1.271.4.16
  124.26 -+++ gcc/gcc/config/sparc/sparc.c	2004/07/08 14:36:51	1.271.4.17
  124.27 -@@ -5808,6 +5808,18 @@
  124.28 - 	    abort ();
  124.29 - 
  124.30 - 	  mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 0);
  124.31 -+
  124.32 -+	  /* ??? We probably should have made the same ABI change in
  124.33 -+	     3.4.0 as the one we made for unions.   The latter was
  124.34 -+	     required by the SCD though, while the former is not
  124.35 -+	     specified, so we favored compatibility and efficiency.
  124.36 -+
  124.37 -+	     Now we're stuck for aggregates larger than 16 bytes,
  124.38 -+	     because OImode vanished in the meantime.  Let's not
  124.39 -+	     try to be unduly clever, and simply follow the ABI
  124.40 -+	     for unions in that case.  */
  124.41 -+	  if (mode == BLKmode)
  124.42 -+	    return function_arg_union_value (bytes, mode, regbase);
  124.43 - 	}
  124.44 -       else if (GET_MODE_CLASS (mode) == MODE_INT
  124.45 - 	       && GET_MODE_SIZE (mode) < UNITS_PER_WORD)
   125.1 --- a/patches/gcc/3.4.1/gcc-3.4.0-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   125.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   125.3 @@ -1,70 +0,0 @@
   125.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
   125.5 -Adds support for arm*b-linux* big-endian ARM targets
   125.6 -
   125.7 -See http://gcc.gnu.org/PR16350
   125.8 -
   125.9 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  125.10 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  125.11 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-07-02 14:46:29.225443757 +0200
  125.12 -@@ -30,17 +30,34 @@
  125.13 - /* Do not assume anything about header files.  */
  125.14 - #define NO_IMPLICIT_EXTERN_C
  125.15 - 
  125.16 -+/*
  125.17 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  125.18 -+ * (big endian) configurations.
  125.19 -+ */
  125.20 -+#if TARGET_BIG_ENDIAN_DEFAULT
  125.21 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  125.22 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  125.23 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  125.24 -+#else
  125.25 -+#define TARGET_ENDIAN_DEFAULT 0
  125.26 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  125.27 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  125.28 -+#endif
  125.29 -+
  125.30 - /* Default is to use APCS-32 mode.  */
  125.31 - #undef  TARGET_DEFAULT
  125.32 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  125.33 -+#define TARGET_DEFAULT \
  125.34 -+		( ARM_FLAG_APCS_32 | \
  125.35 -+		  ARM_FLAG_MMU_TRAPS | \
  125.36 -+		  TARGET_ENDIAN_DEFAULT )
  125.37 - 
  125.38 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  125.39 - 
  125.40 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  125.41 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  125.42 - 
  125.43 - #undef  MULTILIB_DEFAULTS
  125.44 - #define MULTILIB_DEFAULTS \
  125.45 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  125.46 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  125.47 - 
  125.48 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  125.49 - 
  125.50 -@@ -89,7 +106,7 @@
  125.51 -    %{rdynamic:-export-dynamic} \
  125.52 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  125.53 -    -X \
  125.54 --   %{mbig-endian:-EB}" \
  125.55 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  125.56 -    SUBTARGET_EXTRA_LINK_SPEC
  125.57 - 
  125.58 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
  125.59 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
  125.60 ---- gcc-3.4.0.orig/gcc/config.gcc	2004-04-17 04:28:24.000000000 +0200
  125.61 -+++ gcc-3.4.0/gcc/config.gcc	2004-07-02 14:44:40.045822542 +0200
  125.62 -@@ -666,6 +666,11 @@
  125.63 - 	;;
  125.64 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  125.65 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  125.66 -+	case $target in
  125.67 -+	arm*b-*)
  125.68 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  125.69 -+		;;
  125.70 -+	esac
  125.71 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  125.72 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  125.73 - 	gnu_ld=yes
   126.1 --- a/patches/gcc/3.4.1/gcc-3.4.0-arm-lib1asm.patch	Tue Aug 14 19:32:22 2007 +0000
   126.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   126.3 @@ -1,27 +0,0 @@
   126.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
   126.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
   126.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
   126.7 -# Fixes errors like the following when building glibc (or any other executable
   126.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
   126.9 -#
  126.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
  126.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
  126.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
  126.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
  126.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
  126.15 -
  126.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
  126.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux	2003-09-20 23:09:07.000000000 +0200
  126.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux	2004-05-01 20:31:59.102846400 +0200
  126.19 -@@ -4,7 +4,10 @@
  126.20 - LIBGCC2_DEBUG_CFLAGS = -g0
  126.21 - 
  126.22 - LIB1ASMSRC = arm/lib1funcs.asm
  126.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
  126.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
  126.25 -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
  126.26 -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
  126.27 -+	_fixsfsi _fixunssfsi
  126.28 - 
  126.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
  126.30 - # MULTILIB_DIRNAMES = hard-float soft-float
   127.1 --- a/patches/gcc/3.4.1/gcc-3.4.0-arm-nolibfloat.patch	Tue Aug 14 19:32:22 2007 +0000
   127.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   127.3 @@ -1,24 +0,0 @@
   127.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
   127.5 -#
   127.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
   127.7 -#   anymore.  (The required functions are now in libgcc.)
   127.8 -# 
   127.9 -# Fixes errors like
  127.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
  127.11 -# collect2: ld returned 1 exit status
  127.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
  127.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
  127.14 -
  127.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  127.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  127.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-05-01 19:19:06.935979200 +0200
  127.18 -@@ -55,7 +73,7 @@
  127.19 -    %{shared:-lc} \
  127.20 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
  127.21 - 
  127.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
  127.23 -+#define LIBGCC_SPEC "-lgcc"
  127.24 - 
  127.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
  127.26 -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
  127.27 -
   128.1 --- a/patches/gcc/3.4.1/pr15068-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   128.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   128.3 @@ -1,44 +0,0 @@
   128.4 -See http://gcc.gnu.org/PR15068
   128.5 -
   128.6 -Fixes error
   128.7 -
   128.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
   128.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
  128.10 -Please submit a full bug report,
  128.11 -with preprocessed source if appropriate.
  128.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
  128.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
  128.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
  128.15 -make[1]: *** [math/others] Error 2
  128.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
  128.17 -make: *** [all] Error 2
  128.18 -
  128.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
  128.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
  128.21 -
  128.22 ---- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
  128.23 -+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
  128.24 -@@ -1878,6 +1878,7 @@
  128.25 - 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
  128.26 - 	  rtx cond_true = XEXP (set_src, 0);
  128.27 - 	  rtx reg = XEXP (cond_true, 0);
  128.28 -+ 	  enum rtx_code inv_cond;
  128.29 - 
  128.30 - 	  if (GET_CODE (reg) == SUBREG)
  128.31 - 	    reg = SUBREG_REG (reg);
  128.32 -@@ -1886,11 +1887,13 @@
  128.33 - 	     in the form of a comparison of a register against zero.  
  128.34 - 	     If the condition is more complex than that, then it is safe
  128.35 - 	     not to record any information.  */
  128.36 --	  if (GET_CODE (reg) == REG
  128.37 -+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
  128.38 -+ 	  if (inv_cond != UNKNOWN
  128.39 -+	      && GET_CODE (reg) == REG
  128.40 - 	      && XEXP (cond_true, 1) == const0_rtx)
  128.41 - 	    {
  128.42 - 	      rtx cond_false
  128.43 --		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
  128.44 -+		= gen_rtx_fmt_ee (inv_cond,
  128.45 - 				  GET_MODE (cond_true), XEXP (cond_true, 0),
  128.46 - 				  XEXP (cond_true, 1));
  128.47 - 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
   129.1 --- a/patches/gcc/3.4.2/gcc-3.4.0-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   129.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   129.3 @@ -1,82 +0,0 @@
   129.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
   129.5 -Adds support for arm*b-linux* big-endian ARM targets
   129.6 -
   129.7 -Fixes build error
   129.8 -
   129.9 -/opt/crosstool/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
  129.10 -Supported emulations: armelfb_linux armelfb
  129.11 -collect2: ld returned 1 exit status
  129.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/build-glibc/csu/crt1.o] Error 1
  129.13 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3/csu'
  129.14 -make[1]: *** [csu/subdir_lib] Error 2
  129.15 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3'
  129.16 -make: *** [all] Error 2
  129.17 -
  129.18 -
  129.19 -See http://gcc.gnu.org/PR16350
  129.20 -
  129.21 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  129.22 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  129.23 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-07-02 14:46:29.225443757 +0200
  129.24 -@@ -30,17 +30,34 @@
  129.25 - /* Do not assume anything about header files.  */
  129.26 - #define NO_IMPLICIT_EXTERN_C
  129.27 - 
  129.28 -+/*
  129.29 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  129.30 -+ * (big endian) configurations.
  129.31 -+ */
  129.32 -+#if TARGET_BIG_ENDIAN_DEFAULT
  129.33 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  129.34 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  129.35 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  129.36 -+#else
  129.37 -+#define TARGET_ENDIAN_DEFAULT 0
  129.38 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  129.39 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  129.40 -+#endif
  129.41 -+
  129.42 - /* Default is to use APCS-32 mode.  */
  129.43 - #undef  TARGET_DEFAULT
  129.44 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  129.45 -+#define TARGET_DEFAULT \
  129.46 -+		( ARM_FLAG_APCS_32 | \
  129.47 -+		  ARM_FLAG_MMU_TRAPS | \
  129.48 -+		  TARGET_ENDIAN_DEFAULT )
  129.49 - 
  129.50 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  129.51 - 
  129.52 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  129.53 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  129.54 - 
  129.55 - #undef  MULTILIB_DEFAULTS
  129.56 - #define MULTILIB_DEFAULTS \
  129.57 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  129.58 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  129.59 - 
  129.60 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  129.61 - 
  129.62 -@@ -89,7 +106,7 @@
  129.63 -    %{rdynamic:-export-dynamic} \
  129.64 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  129.65 -    -X \
  129.66 --   %{mbig-endian:-EB}" \
  129.67 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  129.68 -    SUBTARGET_EXTRA_LINK_SPEC
  129.69 - 
  129.70 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
  129.71 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
  129.72 ---- gcc-3.4.0.orig/gcc/config.gcc	2004-04-17 04:28:24.000000000 +0200
  129.73 -+++ gcc-3.4.0/gcc/config.gcc	2004-07-02 14:44:40.045822542 +0200
  129.74 -@@ -666,6 +666,11 @@
  129.75 - 	;;
  129.76 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  129.77 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  129.78 -+	case $target in
  129.79 -+	arm*b-*)
  129.80 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  129.81 -+		;;
  129.82 -+	esac
  129.83 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  129.84 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  129.85 - 	gnu_ld=yes
   130.1 --- a/patches/gcc/3.4.2/gcc-3.4.0-arm-lib1asm.patch	Tue Aug 14 19:32:22 2007 +0000
   130.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   130.3 @@ -1,27 +0,0 @@
   130.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
   130.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
   130.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
   130.7 -# Fixes errors like the following when building glibc (or any other executable
   130.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
   130.9 -#
  130.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
  130.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
  130.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
  130.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
  130.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
  130.15 -
  130.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
  130.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux	2003-09-20 23:09:07.000000000 +0200
  130.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux	2004-05-01 20:31:59.102846400 +0200
  130.19 -@@ -4,7 +4,10 @@
  130.20 - LIBGCC2_DEBUG_CFLAGS = -g0
  130.21 - 
  130.22 - LIB1ASMSRC = arm/lib1funcs.asm
  130.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
  130.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
  130.25 -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
  130.26 -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
  130.27 -+	_fixsfsi _fixunssfsi
  130.28 - 
  130.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
  130.30 - # MULTILIB_DIRNAMES = hard-float soft-float
   131.1 --- a/patches/gcc/3.4.2/gcc-3.4.0-arm-nolibfloat.patch	Tue Aug 14 19:32:22 2007 +0000
   131.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   131.3 @@ -1,24 +0,0 @@
   131.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
   131.5 -#
   131.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
   131.7 -#   anymore.  (The required functions are now in libgcc.)
   131.8 -# 
   131.9 -# Fixes errors like
  131.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
  131.11 -# collect2: ld returned 1 exit status
  131.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
  131.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
  131.14 -
  131.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  131.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  131.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-05-01 19:19:06.935979200 +0200
  131.18 -@@ -55,7 +73,7 @@
  131.19 -    %{shared:-lc} \
  131.20 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
  131.21 - 
  131.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
  131.23 -+#define LIBGCC_SPEC "-lgcc"
  131.24 - 
  131.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
  131.26 -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
  131.27 -
   132.1 --- a/patches/gcc/3.4.3/fix-fixincl.patch	Tue Aug 14 19:32:22 2007 +0000
   132.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   132.3 @@ -1,70 +0,0 @@
   132.4 -See http://gcc.gnu.org/PR22541
   132.5 -
   132.6 -From: Dan Kegel
   132.7 -
   132.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
   132.9 -(the only two I've tried like this), the configure script happily copies
  132.10 -the glibc include files from include to sys-include; here's the line
  132.11 -from the log file (with $PREFIX instead of the real prefix):
  132.12 -
  132.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  132.14 -
  132.15 -But later, when running fixincludes, it gives the error message
  132.16 - The directory that should contain system headers does not exist:
  132.17 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  132.18 -
  132.19 -Nevertheless, it continues building; the header files it installs in
  132.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  132.21 -do not include the boilerplate that would cause it to #include_next the
  132.22 -glibc headers in the system header directory.
  132.23 -Thus the resulting toolchain can't compile the following program:
  132.24 -#include <limits.h>
  132.25 -int x = PATH_MAX;
  132.26 -because its limits.h doesn't include the glibc header.
  132.27 -
  132.28 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
  132.29 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
  132.30 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  132.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  132.32 -it is only created later, during 'make install'.  (Which makes this problem
  132.33 -confusing, since one only notices the breakage well after 'make install',
  132.34 -at which point the path configure complained about does exist, and has the
  132.35 -right stuff in it.)
  132.36 -
  132.37 -A possible fix is to replace the line in gcc/Makefile.in that says
  132.38 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  132.39 -with a version that gets rid of extra ..'s, e.g.
  132.40 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
  132.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  132.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  132.43 -
  132.44 -
  132.45 ---- gcc-3.4.3/gcc/Makefile.in.foo	2005-05-20 11:41:39.000000000 -0700
  132.46 -+++ gcc-3.4.3/gcc/Makefile.in	2005-05-20 12:08:46.000000000 -0700
  132.47 -@@ -350,7 +350,10 @@
  132.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  132.49 - 
  132.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  132.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  132.52 -+# Purge it of unneccessary internal relative paths
  132.53 -+# to directories that might not exist yet.
  132.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  132.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  132.56 - 
  132.57 - # Control whether to run fixproto and fixincludes.
  132.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
  132.59 -@@ -2532,11 +2535,13 @@
  132.60 - 	$(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
  132.61 - 
  132.62 - # Build fixed copies of system files.
  132.63 -+# Abort if no system headers available, unless building a crosscompiler.
  132.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
  132.65 - stmp-fixinc: fixinc.sh gsyslimits.h
  132.66 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
  132.67 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  132.68 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  132.69 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  132.70 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  132.71 - 	  then sleep 1; else exit 1; fi; \
  132.72 - 	fi
  132.73 - 	rm -rf include; mkdir include
   133.1 --- a/patches/gcc/3.4.3/gcc-3.4.0-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   133.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   133.3 @@ -1,82 +0,0 @@
   133.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
   133.5 -Adds support for arm*b-linux* big-endian ARM targets
   133.6 -
   133.7 -Fixes build error
   133.8 -
   133.9 -/opt/crosstool/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
  133.10 -Supported emulations: armelfb_linux armelfb
  133.11 -collect2: ld returned 1 exit status
  133.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/build-glibc/csu/crt1.o] Error 1
  133.13 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3/csu'
  133.14 -make[1]: *** [csu/subdir_lib] Error 2
  133.15 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3'
  133.16 -make: *** [all] Error 2
  133.17 -
  133.18 -
  133.19 -See http://gcc.gnu.org/PR16350
  133.20 -
  133.21 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  133.22 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  133.23 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-07-02 14:46:29.225443757 +0200
  133.24 -@@ -30,17 +30,34 @@
  133.25 - /* Do not assume anything about header files.  */
  133.26 - #define NO_IMPLICIT_EXTERN_C
  133.27 - 
  133.28 -+/*
  133.29 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  133.30 -+ * (big endian) configurations.
  133.31 -+ */
  133.32 -+#if TARGET_BIG_ENDIAN_DEFAULT
  133.33 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  133.34 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  133.35 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  133.36 -+#else
  133.37 -+#define TARGET_ENDIAN_DEFAULT 0
  133.38 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  133.39 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  133.40 -+#endif
  133.41 -+
  133.42 - /* Default is to use APCS-32 mode.  */
  133.43 - #undef  TARGET_DEFAULT
  133.44 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  133.45 -+#define TARGET_DEFAULT \
  133.46 -+		( ARM_FLAG_APCS_32 | \
  133.47 -+		  ARM_FLAG_MMU_TRAPS | \
  133.48 -+		  TARGET_ENDIAN_DEFAULT )
  133.49 - 
  133.50 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  133.51 - 
  133.52 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  133.53 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  133.54 - 
  133.55 - #undef  MULTILIB_DEFAULTS
  133.56 - #define MULTILIB_DEFAULTS \
  133.57 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  133.58 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  133.59 - 
  133.60 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  133.61 - 
  133.62 -@@ -89,7 +106,7 @@
  133.63 -    %{rdynamic:-export-dynamic} \
  133.64 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  133.65 -    -X \
  133.66 --   %{mbig-endian:-EB}" \
  133.67 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  133.68 -    SUBTARGET_EXTRA_LINK_SPEC
  133.69 - 
  133.70 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
  133.71 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
  133.72 ---- gcc-3.4.0.orig/gcc/config.gcc	2004-04-17 04:28:24.000000000 +0200
  133.73 -+++ gcc-3.4.0/gcc/config.gcc	2004-07-02 14:44:40.045822542 +0200
  133.74 -@@ -666,6 +666,11 @@
  133.75 - 	;;
  133.76 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  133.77 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  133.78 -+	case $target in
  133.79 -+	arm*b-*)
  133.80 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  133.81 -+		;;
  133.82 -+	esac
  133.83 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  133.84 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  133.85 - 	gnu_ld=yes
   134.1 --- a/patches/gcc/3.4.3/gcc-3.4.0-arm-lib1asm.patch	Tue Aug 14 19:32:22 2007 +0000
   134.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   134.3 @@ -1,27 +0,0 @@
   134.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
   134.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
   134.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
   134.7 -# Fixes errors like the following when building glibc (or any other executable
   134.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
   134.9 -#
  134.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
  134.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
  134.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
  134.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
  134.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
  134.15 -
  134.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
  134.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux	2003-09-20 23:09:07.000000000 +0200
  134.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux	2004-05-01 20:31:59.102846400 +0200
  134.19 -@@ -4,7 +4,10 @@
  134.20 - LIBGCC2_DEBUG_CFLAGS = -g0
  134.21 - 
  134.22 - LIB1ASMSRC = arm/lib1funcs.asm
  134.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
  134.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
  134.25 -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
  134.26 -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
  134.27 -+	_fixsfsi _fixunssfsi
  134.28 - 
  134.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
  134.30 - # MULTILIB_DIRNAMES = hard-float soft-float
   135.1 --- a/patches/gcc/3.4.3/gcc-3.4.0-arm-nolibfloat.patch	Tue Aug 14 19:32:22 2007 +0000
   135.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   135.3 @@ -1,24 +0,0 @@
   135.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
   135.5 -#
   135.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
   135.7 -#   anymore.  (The required functions are now in libgcc.)
   135.8 -# 
   135.9 -# Fixes errors like
  135.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
  135.11 -# collect2: ld returned 1 exit status
  135.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
  135.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
  135.14 -
  135.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  135.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  135.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-05-01 19:19:06.935979200 +0200
  135.18 -@@ -55,7 +73,7 @@
  135.19 -    %{shared:-lc} \
  135.20 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
  135.21 - 
  135.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
  135.23 -+#define LIBGCC_SPEC "-lgcc"
  135.24 - 
  135.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
  135.26 -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
  135.27 -
   136.1 --- a/patches/gcc/3.4.3/pr15068-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   136.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   136.3 @@ -1,44 +0,0 @@
   136.4 -See http://gcc.gnu.org/PR15068
   136.5 -
   136.6 -Fixes error
   136.7 -
   136.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
   136.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
  136.10 -Please submit a full bug report,
  136.11 -with preprocessed source if appropriate.
  136.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
  136.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
  136.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
  136.15 -make[1]: *** [math/others] Error 2
  136.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
  136.17 -make: *** [all] Error 2
  136.18 -
  136.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
  136.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
  136.21 -
  136.22 ---- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
  136.23 -+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
  136.24 -@@ -1878,6 +1878,7 @@
  136.25 - 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
  136.26 - 	  rtx cond_true = XEXP (set_src, 0);
  136.27 - 	  rtx reg = XEXP (cond_true, 0);
  136.28 -+ 	  enum rtx_code inv_cond;
  136.29 - 
  136.30 - 	  if (GET_CODE (reg) == SUBREG)
  136.31 - 	    reg = SUBREG_REG (reg);
  136.32 -@@ -1886,11 +1887,13 @@
  136.33 - 	     in the form of a comparison of a register against zero.  
  136.34 - 	     If the condition is more complex than that, then it is safe
  136.35 - 	     not to record any information.  */
  136.36 --	  if (GET_CODE (reg) == REG
  136.37 -+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
  136.38 -+ 	  if (inv_cond != UNKNOWN
  136.39 -+	      && GET_CODE (reg) == REG
  136.40 - 	      && XEXP (cond_true, 1) == const0_rtx)
  136.41 - 	    {
  136.42 - 	      rtx cond_false
  136.43 --		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
  136.44 -+		= gen_rtx_fmt_ee (inv_cond,
  136.45 - 				  GET_MODE (cond_true), XEXP (cond_true, 0),
  136.46 - 				  XEXP (cond_true, 1));
  136.47 - 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
   137.1 --- a/patches/gcc/3.4.3/pr16201-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   137.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   137.3 @@ -1,149 +0,0 @@
   137.4 -See http://gcc.gnu.org/PR16201
   137.5 -
   137.6 -Should fix "bad immediate value for offset" errors for several flavors of arm, e.g.
   137.7 -
   137.8 -/tmp/ccmdoQyg.s: Assembler messages:
   137.9 -/tmp/ccmdoQyg.s:6235: Error: bad immediate value for offset (4096)
  137.10 -make[2]: *** [crosstool-0.32/build/arm-xscale-linux-gnu/gcc-3.4.3-glibc-2.3.3/build-glibc/locale/ld-collate.o] Error 1
  137.11 -
  137.12 -/tmp/cc0c7qop.s: Assembler messages:
  137.13 -/tmp/cc0c7qop.s:6234: Error: bad immediate value for offset (4104)
  137.14 -make[2]: *** [crosstool-0.32/build/armv5b-softfloat-linux/gcc-3.4.3-glibc-2.3.3/build-glibc/locale/ld-collate.o] Error 1
  137.15 -
  137.16 -
  137.17 -CVSROOT:        /cvs/gcc
  137.18 -Module name:    gcc
  137.19 -Branch:         gcc-3_4-branch
  137.20 -Changes by:     rearnsha@gcc.gnu.org    2005-02-01 15:07:05
  137.21 -
  137.22 -Modified files:
  137.23 -        gcc            : ChangeLog 
  137.24 -        gcc/config/arm : arm-protos.h arm.c 
  137.25 -
  137.26 -Log message:
  137.27 -        PR target/16201
  137.28 -        * arm.c (arm_eliminable_register): New function.
  137.29 -        (adjacent_mem_locations): Don't allow eliminable registers.  Use
  137.30 -        HOST_WIDE_INT for address offsets.
  137.31 -        * arm-protos.h (arm_eliminable_register): Add prototype.
  137.32 -
  137.33 -Patches:
  137.34 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.790&r2=2.2326.2.791
  137.35 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm-protos.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.61&r2=1.61.4.1
  137.36 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.317.4.8&r2=1.317.4.9
  137.37 -
  137.38 -===================================================================
  137.39 -RCS file: /cvs/gcc/gcc/gcc/config/arm/arm-protos.h,v
  137.40 -retrieving revision 1.61
  137.41 -retrieving revision 1.61.4.1
  137.42 -diff -u -r1.61 -r1.61.4.1
  137.43 ---- gcc/gcc/config/arm/arm-protos.h	2003/11/20 11:44:18	1.61
  137.44 -+++ gcc/gcc/config/arm/arm-protos.h	2005/02/01 15:07:02	1.61.4.1
  137.45 -@@ -1,5 +1,6 @@
  137.46 - /* Prototypes for exported functions defined in arm.c and pe.c
  137.47 --   Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
  137.48 -+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005
  137.49 -+   Free Software Foundation, Inc.
  137.50 -    Contributed by Richard Earnshaw (rearnsha@arm.com)
  137.51 -    Minor hacks by Nick Clifton (nickc@cygnus.com)
  137.52 - 
  137.53 -@@ -138,6 +139,7 @@
  137.54 - extern int arm_is_longcall_p (rtx, int, int);
  137.55 - extern int    arm_emit_vector_const (FILE *, rtx);
  137.56 - extern const char * arm_output_load_gr (rtx *);
  137.57 -+extern int arm_eliminable_register (rtx);
  137.58 - 
  137.59 - #if defined TREE_CODE
  137.60 - extern rtx arm_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
  137.61 -===================================================================
  137.62 -RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
  137.63 -retrieving revision 1.317.4.8
  137.64 -retrieving revision 1.317.4.9
  137.65 -diff -u -r1.317.4.8 -r1.317.4.9
  137.66 ---- gcc/gcc/config/arm/arm.c	2004/04/29 19:52:41	1.317.4.8
  137.67 -+++ gcc/gcc/config/arm/arm.c	2005/02/01 15:07:02	1.317.4.9
  137.68 -@@ -1,6 +1,6 @@
  137.69 - /* Output routines for GCC for ARM.
  137.70 -    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
  137.71 --   2002, 2003, 2004  Free Software Foundation, Inc.
  137.72 -+   2002, 2003, 2004, 2005  Free Software Foundation, Inc.
  137.73 -    Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
  137.74 -    and Martin Simmons (@harleqn.co.uk).
  137.75 -    More major hacks by Richard Earnshaw (rearnsha@arm.com).
  137.76 -@@ -4056,6 +4056,16 @@
  137.77 - 	  && INTVAL (op) < 64);
  137.78 - }
  137.79 - 
  137.80 -+/* Return true if X is a register that will be eliminated later on.  */
  137.81 -+int
  137.82 -+arm_eliminable_register (rtx x)
  137.83 -+{
  137.84 -+  return REG_P (x) && (REGNO (x) == FRAME_POINTER_REGNUM
  137.85 -+		       || REGNO (x) == ARG_POINTER_REGNUM
  137.86 -+		       || (REGNO (x) >= FIRST_VIRTUAL_REGISTER
  137.87 -+			   && REGNO (x) <= LAST_VIRTUAL_REGISTER));
  137.88 -+}
  137.89 -+
  137.90 - /* Returns TRUE if INSN is an "LDR REG, ADDR" instruction.
  137.91 -    Use by the Cirrus Maverick code which has to workaround
  137.92 -    a hardware bug triggered by such instructions.  */
  137.93 -@@ -4569,33 +4579,42 @@
  137.94 - 	  || (GET_CODE (XEXP (b, 0)) == PLUS
  137.95 - 	      && GET_CODE (XEXP (XEXP (b, 0), 1)) == CONST_INT)))
  137.96 -     {
  137.97 --      int val0 = 0, val1 = 0;
  137.98 --      int reg0, reg1;
  137.99 --  
 137.100 -+      HOST_WIDE_INT val0 = 0, val1 = 0;
 137.101 -+      rtx reg0, reg1;
 137.102 -+      int val_diff;
 137.103 -+
 137.104 -       if (GET_CODE (XEXP (a, 0)) == PLUS)
 137.105 -         {
 137.106 --	  reg0 = REGNO  (XEXP (XEXP (a, 0), 0));
 137.107 -+	  reg0 = XEXP (XEXP (a, 0), 0);
 137.108 - 	  val0 = INTVAL (XEXP (XEXP (a, 0), 1));
 137.109 -         }
 137.110 -       else
 137.111 --	reg0 = REGNO (XEXP (a, 0));
 137.112 -+	reg0 = XEXP (a, 0);
 137.113 - 
 137.114 -       if (GET_CODE (XEXP (b, 0)) == PLUS)
 137.115 -         {
 137.116 --	  reg1 = REGNO  (XEXP (XEXP (b, 0), 0));
 137.117 -+	  reg1 = XEXP (XEXP (b, 0), 0);
 137.118 - 	  val1 = INTVAL (XEXP (XEXP (b, 0), 1));
 137.119 -         }
 137.120 -       else
 137.121 --	reg1 = REGNO (XEXP (b, 0));
 137.122 -+	reg1 = XEXP (b, 0);
 137.123 - 
 137.124 -       /* Don't accept any offset that will require multiple
 137.125 - 	 instructions to handle, since this would cause the
 137.126 - 	 arith_adjacentmem pattern to output an overlong sequence.  */
 137.127 -       if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
 137.128 - 	return 0;
 137.129 --      
 137.130 --      return (reg0 == reg1) && ((val1 - val0) == 4 || (val0 - val1) == 4);
 137.131 -+
 137.132 -+      /* Don't allow an eliminable register: register elimination can make
 137.133 -+	 the offset too large.  */
 137.134 -+      if (arm_eliminable_register (reg0))
 137.135 -+	return 0;
 137.136 -+
 137.137 -+      val_diff = val1 - val0;
 137.138 -+      return ((REGNO (reg0) == REGNO (reg1))
 137.139 -+	      && (val_diff == 4 || val_diff == -4));
 137.140 -     }
 137.141 -+
 137.142 -   return 0;
 137.143 - }
 137.144 - 
 137.145 -@@ -7301,7 +7320,6 @@
 137.146 -   return "";
 137.147 - }
 137.148 - 
 137.149 --
 137.150 - /* Output a move from arm registers to an fpa registers.
 137.151 -    OPERANDS[0] is an fpa register.
 137.152 -    OPERANDS[1] is the first registers of an arm register pair.  */
   138.1 --- a/patches/gcc/3.4.3/pr18508-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   138.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   138.3 @@ -1,143 +0,0 @@
   138.4 -See http://gcc.gnu.org/PR18508
   138.5 -
   138.6 -This should fix cygwin errors like:
   138.7 -
   138.8 -basename: missing operand
   138.9 -Try `basename --help' for more information.
  138.10 -mv: `libgcc_s_nof.so.1' and `libgcc_s_nof.so.1.' are the same file
  138.11 -make[2]: *** [nof/libgcc_s_nof.so] Error 1
  138.12 -make[2]: Leaving directory `/home/cvachoucek/crosstool-0.32/build/powerpc-750-linux-gnu/gcc-3.4.3-glibc-2.3.5/build-gcc/gcc'
  138.13 -make[1]: *** [stmp-multilib] Error 2
  138.14 -make[1]: Leaving directory `/home/cvachoucek/crosstool-0.32/build/powerpc-750-linux-gnu/gcc-3.4.3-glibc-2.3.5/build-gcc/gcc'
  138.15 -make: *** [install-gcc] Error 2
  138.16 -
  138.17 -From gcc-patches-return-133821-listarch-gcc-patches=gcc dot gnu dot org at gcc dot gnu dot org Wed Nov 17 00:15:28 2004
  138.18 -Return-Path: <gcc-patches-return-133821-listarch-gcc-patches=gcc dot gnu dot org at gcc dot gnu dot org>
  138.19 -Delivered-To: listarch-gcc-patches at gcc dot gnu dot org
  138.20 -Received: (qmail 12823 invoked by alias); 17 Nov 2004 00:15:19 -0000
  138.21 -Mailing-List: contact gcc-patches-help at gcc dot gnu dot org; run by ezmlm
  138.22 -List-Archive: <http://gcc.gnu.org/ml/gcc-patches/>
  138.23 -List-Post: <mailto:gcc-patches at gcc dot gnu dot org>
  138.24 -List-Help: <mailto:gcc-patches-help at gcc dot gnu dot org>
  138.25 -Sender: gcc-patches-owner at gcc dot gnu dot org
  138.26 -Date: Tue, 16 Nov 2004 16:14:57 -0800
  138.27 -From: "H dot  J dot  Lu" <hjl at lucon dot org>
  138.28 -To: gcc-patches at gcc dot gnu dot org
  138.29 -Subject: PATCH: PR other/18508: "basename: too few arguments" when building without bootstrap
  138.30 -Message-ID: <20041117001457.GA13610@lucon.org>
  138.31 -
  138.32 -I think it is safe to use `.backup' to backup the existing shared
  138.33 -library. No processes should be using the old shared library when
  138.34 -we get there.
  138.35 -
  138.36 -
  138.37 -H.J.
  138.38 ----
  138.39 -2004-11-16  H.J. Lu  <hongjiu.lu@intel.com>
  138.40 -
  138.41 -	PR other/18508
  138.42 -	* config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
  138.43 -	to back up the existing shared library.
  138.44 -	* config/arm/t-netbsd (SHLIB_LINK): Likewise.
  138.45 -	* config/i386/t-nwld (SHLIB_LINK): Likewise. [deleted]
  138.46 -	* config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. [deleted]
  138.47 -	* config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
  138.48 -	* config/sh/t-linux (SHLIB_LINK): Likewise.
  138.49 -	* config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
  138.50 -	* config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
  138.51 -	* config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
  138.52 -	* config/t-slibgcc-sld (SHLIB_LINK): Likewise.
  138.53 -
  138.54 -[ paths adjusted for patch -p1, rediffed agaainst gcc-3.4.3. 
  138.55 -  Looks like the t-iris5-6 hunk in cvs is missing here; this must
  138.56 -  have been the mainline patch. ]
  138.57 -
  138.58 ---- gcc-3.4.3/gcc/config/alpha/t-osf4.stage	2004-10-18 09:14:39.000000000 -0700
  138.59 -+++ gcc-3.4.3/gcc/config/alpha/t-osf4	2004-11-16 16:06:41.686905479 -0800
  138.60 -@@ -19,7 +19,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
  138.61 - 	-o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
  138.62 - 	rm -f $(SHLIB_SONAME) && \
  138.63 - 	if [ -f $(SHLIB_NAME) ]; then \
  138.64 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
  138.65 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
  138.66 - 	else true; fi && \
  138.67 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
  138.68 - 	$(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
  138.69 ---- gcc-3.4.3/gcc/config/arm/t-netbsd.stage	2004-10-18 09:14:40.000000000 -0700
  138.70 -+++ gcc-3.4.3/gcc/config/arm/t-netbsd	2004-11-16 16:06:46.016348194 -0800
  138.71 -@@ -14,7 +14,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
  138.72 - 	-o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
  138.73 - 	rm -f $(SHLIB_SONAME) && \
  138.74 - 	if [ -f $(SHLIB_NAME) ]; then \
  138.75 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
  138.76 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
  138.77 - 	else true; fi && \
  138.78 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
  138.79 - 	$(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
  138.80 ---- gcc-3.4.3/gcc/config/pa/t-hpux-shlib.stage	2004-10-18 09:14:46.000000000 -0700
  138.81 -+++ gcc-3.4.3/gcc/config/pa/t-hpux-shlib	2004-11-16 16:06:57.982807875 -0800
  138.82 -@@ -8,7 +8,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
  138.83 - 	-o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) -lc && \
  138.84 -         rm -f $(SHLIB_SONAME) && \
  138.85 - 	if [ -f $(SHLIB_NAME) ]; then \
  138.86 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
  138.87 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
  138.88 - 	else true; fi && \
  138.89 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
  138.90 -         $(LN_S) $(SHLIB_NAME) $(SHLIB_SONAME)
  138.91 ---- gcc-3.4.3/gcc/config/sh/t-linux.stage	2004-10-18 09:14:48.000000000 -0700
  138.92 -+++ gcc-3.4.3/gcc/config/sh/t-linux	2004-11-16 16:07:00.787446863 -0800
  138.93 -@@ -24,7 +24,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
  138.94 - 	-o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
  138.95 - 	rm -f $(SHLIB_SOLINK) && \
  138.96 - 	if [ -f $(SHLIB_NAME) ]; then \
  138.97 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
  138.98 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
  138.99 - 	else true; fi && \
 138.100 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
 138.101 - 	(echo "/* GNU ld script"; \
 138.102 ---- gcc-3.4.3/gcc/config/t-libunwind-elf.stage	2004-10-18 09:14:39.000000000 -0700
 138.103 -+++ gcc-3.4.3/gcc/config/t-libunwind-elf	2004-11-16 16:07:08.133501281 -0800
 138.104 -@@ -14,8 +14,7 @@ SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(L
 138.105 - 	@multilib_flags@ $(SHLIB_OBJS) -lc && \
 138.106 - 	rm -f $(SHLIB_SOLINK) && \
 138.107 - 	if [ -f $(SHLIBUNWIND_NAME) ]; then \
 138.108 --	  mv -f $(SHLIBUNWIND_NAME) \
 138.109 --	     $(SHLIBUNWIND_NAME).`basename $(STAGE_PREFIX)`; \
 138.110 -+	  mv -f $(SHLIBUNWIND_NAME) $(SHLIBUNWIND_NAME).backup; \
 138.111 - 	else true; fi && \
 138.112 - 	mv $(SHLIBUNWIND_NAME).tmp $(SHLIBUNWIND_NAME) && \
 138.113 - 	$(LN_S) $(SHLIBUNWIND_NAME) $(SHLIB_SOLINK)
 138.114 ---- gcc-3.4.3/gcc/config/t-slibgcc-darwin.stage	2004-10-18 09:14:39.000000000 -0700
 138.115 -+++ gcc-3.4.3/gcc/config/t-slibgcc-darwin	2004-11-16 16:07:13.777774752 -0800
 138.116 -@@ -17,7 +17,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
 138.117 - 	@multilib_flags@ $(SHLIB_OBJS) -lc && \
 138.118 - 	rm -f $(SHLIB_SOLINK) && \
 138.119 - 	if [ -f $(SHLIB_NAME) ]; then \
 138.120 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
 138.121 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
 138.122 - 	else true; fi && \
 138.123 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
 138.124 - 	$(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
 138.125 ---- gcc-3.4.3/gcc/config/t-slibgcc-elf-ver.stage	2004-10-18 09:14:39.000000000 -0700
 138.126 -+++ gcc-3.4.3/gcc/config/t-slibgcc-elf-ver	2004-11-16 16:04:40.961445223 -0800
 138.127 -@@ -17,7 +17,7 @@ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2
 138.128 - 	-o $(SHLIB_NAME).tmp @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC) && \
 138.129 - 	rm -f $(SHLIB_SOLINK) && \
 138.130 - 	if [ -f $(SHLIB_NAME) ]; then \
 138.131 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
 138.132 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
 138.133 - 	else true; fi && \
 138.134 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
 138.135 - 	$(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
 138.136 ---- gcc-3.4.3/gcc/config/t-slibgcc-sld.old	2004-10-18 09:00:47.000000000 -0700
 138.137 -+++ gcc-3.4.3/gcc/config/t-slibgcc-sld	2005-05-14 13:44:48.000000000 -0700
 138.138 -@@ -14,7 +14,7 @@
 138.139 - 	@multilib_flags@ $(SHLIB_OBJS) -lc && \
 138.140 - 	rm -f $(SHLIB_SOLINK) && \
 138.141 - 	if [ -f $(SHLIB_NAME) ]; then \
 138.142 --	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).`basename $(STAGE_PREFIX)`; \
 138.143 -+	  mv -f $(SHLIB_NAME) $(SHLIB_NAME).backup; \
 138.144 - 	else true; fi && \
 138.145 - 	mv $(SHLIB_NAME).tmp $(SHLIB_NAME) && \
 138.146 - 	$(LN_S) $(SHLIB_NAME) $(SHLIB_SOLINK)
   139.1 --- a/patches/gcc/3.4.4/100-uclibc-conf.patch	Tue Aug 14 19:32:22 2007 +0000
   139.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   139.3 @@ -1,470 +0,0 @@
   139.4 ---- gcc-3.4.1/gcc/config/t-linux-uclibc
   139.5 -+++ gcc-3.4.1/gcc/config/t-linux-uclibc
   139.6 -@@ -0,0 +1,5 @@
   139.7 -+# Remove glibc specific files added in t-linux
   139.8 -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
   139.9 -+
  139.10 -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
  139.11 -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
  139.12 ---- gcc-3.4.1/gcc/config.gcc
  139.13 -+++ gcc-3.4.1/gcc/config.gcc
  139.14 -@@ -2310,10 +2310,16 @@
  139.15 - *)
  139.16 - 	echo "*** Configuration ${target} not supported" 1>&2
  139.17 - 	exit 1
  139.18 - 	;;
  139.19 - esac
  139.20 -+
  139.21 -+# Rather than hook into each target, just do it after all the linux
  139.22 -+# targets have been processed
  139.23 -+case ${target} in
  139.24 -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
  139.25 -+esac
  139.26 - 
  139.27 - # Support for --with-cpu and related options (and a few unrelated options,
  139.28 - # too).
  139.29 - case ${with_cpu} in
  139.30 -   yes | no)
  139.31 ---- gcc-3.4.4/gcc/config/alpha/linux-elf.h
  139.32 -+++ gcc-3.4.4/gcc/config/alpha/linux-elf.h
  139.33 -@@ -27,7 +27,11 @@
  139.34 - #define SUBTARGET_EXTRA_SPECS \
  139.35 - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
  139.36 - 
  139.37 -+#ifdef USE_UCLIBC
  139.38 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
  139.39 -+#else
  139.40 - #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
  139.41 -+#endif
  139.42 - 
  139.43 - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
  139.44 -   %{O*:-O3} %{!O*:-O1}						\
  139.45 ---- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-01-31 00:18:11.000000000 -0600
  139.46 -+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-12 15:54:42.000000000 -0500
  139.47 -@@ -80,14 +80,19 @@
  139.48 - #define ENDFILE_SPEC \
  139.49 -   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
  139.50 - 
  139.51 -+#ifdef USE_UCLIBC
  139.52 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
  139.53 -+#else
  139.54 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  139.55 -+#endif
  139.56 - #undef  LINK_SPEC
  139.57 - #define LINK_SPEC "%{h*} %{version:-v} \
  139.58 -    %{b} %{Wl,*:%*} \
  139.59 -    %{static:-Bstatic} \
  139.60 -    %{shared:-shared} \
  139.61 -    %{symbolic:-Bsymbolic} \
  139.62 -    %{rdynamic:-export-dynamic} \
  139.63 --   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  139.64 -+   %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
  139.65 -    -X \
  139.66 -    %{mbig-endian:-EB}" \
  139.67 -    SUBTARGET_EXTRA_LINK_SPEC
  139.68 ---- gcc-3.4.1-dist/gcc/config/cris/linux.h	2003-11-28 21:08:09.000000000 -0600
  139.69 -+++ gcc-3.4.1/gcc/config/cris/linux.h	2004-08-12 15:54:43.000000000 -0500
  139.70 -@@ -79,6 +79,25 @@
  139.71 - #undef CRIS_DEFAULT_CPU_VERSION
  139.72 - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
  139.73 - 
  139.74 -+#ifdef USE_UCLIBC
  139.75 -+
  139.76 -+#undef CRIS_SUBTARGET_VERSION
  139.77 -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
  139.78 -+
  139.79 -+#undef CRIS_LINK_SUBTARGET_SPEC
  139.80 -+#define CRIS_LINK_SUBTARGET_SPEC \
  139.81 -+ "-mcrislinux\
  139.82 -+  -rpath-link include/asm/../..%s\
  139.83 -+  %{shared} %{static}\
  139.84 -+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
  139.85 -+  %{!shared: \
  139.86 -+    %{!static: \
  139.87 -+      %{rdynamic:-export-dynamic} \
  139.88 -+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
  139.89 -+  %{!r:%{O2|O3: --gc-sections}}"
  139.90 -+
  139.91 -+#else  /* USE_UCLIBC */
  139.92 -+
  139.93 - #undef CRIS_SUBTARGET_VERSION
  139.94 - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
  139.95 - 
  139.96 -@@ -93,6 +112,8 @@
  139.97 -   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
  139.98 -   %{!r:%{O2|O3: --gc-sections}}"
  139.99 - 
 139.100 -+#endif  /* USE_UCLIBC */
 139.101 -+
 139.102 - 
 139.103 - /* Node: Run-time Target */
 139.104 - 
 139.105 ---- gcc-3.4.1-dist/gcc/config/i386/linux.h	2003-11-28 21:08:10.000000000 -0600
 139.106 -+++ gcc-3.4.1/gcc/config/i386/linux.h	2004-08-12 15:54:43.000000000 -0500
 139.107 -@@ -110,22 +110,21 @@
 139.108 - 
 139.109 - #undef	LINK_SPEC
 139.110 - #ifdef USE_GNULIBC_1
 139.111 --#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 139.112 --  %{!shared: \
 139.113 --    %{!ibcs: \
 139.114 --      %{!static: \
 139.115 --	%{rdynamic:-export-dynamic} \
 139.116 --	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
 139.117 --	%{static:-static}}}"
 139.118 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.1"
 139.119 -+#else
 139.120 -+#ifdef USE_UCLIBC
 139.121 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.122 - #else
 139.123 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 139.124 -+#endif
 139.125 -+#endif
 139.126 - #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 139.127 -   %{!shared: \
 139.128 -     %{!ibcs: \
 139.129 -       %{!static: \
 139.130 - 	%{rdynamic:-export-dynamic} \
 139.131 --	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 139.132 -+	%{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.133 - 	%{static:-static}}}"
 139.134 --#endif
 139.135 - 
 139.136 - /* A C statement (sans semicolon) to output to the stdio stream
 139.137 -    FILE the assembler definition of uninitialized global DECL named
 139.138 ---- gcc-3.4.4/gcc/config/i386/linux64.h
 139.139 -+++ gcc-3.4.4/gcc/config/i386/linux64.h
 139.140 -@@ -54,14 +54,21 @@
 139.141 -    When the -shared link option is used a final link is not being
 139.142 -    done.  */
 139.143 - 
 139.144 -+#ifdef USE_UCLIBC
 139.145 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.146 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 139.147 -+#else
 139.148 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 139.149 -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 139.150 -+#endif
 139.151 - #undef	LINK_SPEC
 139.152 - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 139.153 -   %{shared:-shared} \
 139.154 -   %{!shared: \
 139.155 -     %{!static: \
 139.156 -       %{rdynamic:-export-dynamic} \
 139.157 --      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 139.158 --      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 139.159 -+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 139.160 -+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 139.161 -     %{static:-static}}"
 139.162 - 
 139.163 - #define MULTILIB_DEFAULTS { "m64" }
 139.164 ---- gcc-3.4.4/gcc/config/ia64/linux.h
 139.165 -+++ gcc-3.4.4/gcc/config/ia64/linux.h
 139.166 -@@ -37,13 +37,18 @@
 139.167 - /* Define this for shared library support because it isn't in the main
 139.168 -    linux.h file.  */
 139.169 - 
 139.170 -+#ifdef USE_UCLIBC
 139.171 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 139.172 -+#else
 139.173 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 139.174 -+#endif
 139.175 - #undef LINK_SPEC
 139.176 - #define LINK_SPEC "\
 139.177 -   %{shared:-shared} \
 139.178 -   %{!shared: \
 139.179 -     %{!static: \
 139.180 -       %{rdynamic:-export-dynamic} \
 139.181 --      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 139.182 -+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.183 -       %{static:-static}}"
 139.184 - 
 139.185 - 
 139.186 ---- gcc-3.4.4/gcc/config/m68k/linux.h
 139.187 -+++ gcc-3.4.4/gcc/config/m68k/linux.h
 139.188 -@@ -131,12 +131,17 @@
 139.189 - 
 139.190 - /* If ELF is the default format, we should not use /lib/elf.  */
 139.191 - 
 139.192 -+#ifdef USE_UCLIBC
 139.193 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.194 -+#else
 139.195 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 139.196 -+#endif
 139.197 - #undef	LINK_SPEC
 139.198 - #define LINK_SPEC "-m m68kelf %{shared} \
 139.199 -   %{!shared: \
 139.200 -     %{!static: \
 139.201 -       %{rdynamic:-export-dynamic} \
 139.202 --      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 139.203 -+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.204 -     %{static}}"
 139.205 - 
 139.206 - /* For compatibility with linux/a.out */
 139.207 ---- gcc-3.4.1-dist/gcc/config/mips/linux.h	2004-06-15 20:42:24.000000000 -0500
 139.208 -+++ gcc-3.4.1/gcc/config/mips/linux.h	2004-08-12 15:54:43.000000000 -0500
 139.209 -@@ -109,14 +109,19 @@
 139.210 - 
 139.211 - /* Borrowed from sparc/linux.h */
 139.212 - #undef LINK_SPEC
 139.213 -+#ifdef USE_UCLIBC
 139.214 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.215 -+#else
 139.216 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 139.217 -+#endif
 139.218 - #define LINK_SPEC \
 139.219 -  "%(endian_spec) \
 139.220 -   %{shared:-shared} \
 139.221 -   %{!shared: \
 139.222 -     %{!ibcs: \
 139.223 -       %{!static: \
 139.224 -         %{rdynamic:-export-dynamic} \
 139.225 --        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 139.226 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.227 -         %{static:-static}}}"
 139.228 - 
 139.229 - #undef SUBTARGET_ASM_SPEC
 139.230 ---- gcc-3.4.4/gcc/config/pa/pa-linux.h
 139.231 -+++ gcc-3.4.4/gcc/config/pa/pa-linux.h
 139.232 -@@ -77,13 +77,18 @@
 139.233 - /* Define this for shared library support because it isn't in the main
 139.234 -    linux.h file.  */
 139.235 - 
 139.236 -+#ifdef USE_UCLIBC
 139.237 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.238 -+#else
 139.239 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 139.240 -+#endif
 139.241 - #undef LINK_SPEC
 139.242 - #define LINK_SPEC "\
 139.243 -   %{shared:-shared} \
 139.244 -   %{!shared: \
 139.245 -     %{!static: \
 139.246 -       %{rdynamic:-export-dynamic} \
 139.247 --      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 139.248 -+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.249 -       %{static:-static}}"
 139.250 - 
 139.251 - /* glibc's profiling functions don't need gcc to allocate counters.  */
 139.252 ---- gcc-3.4.1-dist/gcc/config/rs6000/linux.h	2004-02-25 09:11:19.000000000 -0600
 139.253 -+++ gcc-3.4.1/gcc/config/rs6000/linux.h	2004-08-12 15:54:43.000000000 -0500
 139.254 -@@ -69,7 +69,11 @@
 139.255 - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 139.256 - 
 139.257 - #undef	LINK_OS_DEFAULT_SPEC
 139.258 -+#ifdef USE_UCLIBC
 139.259 -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 139.260 -+#else
 139.261 - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 139.262 -+#endif
 139.263 - 
 139.264 - #define LINK_GCC_C_SEQUENCE_SPEC \
 139.265 -   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 139.266 ---- gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h	2004-06-10 01:39:50.000000000 -0500
 139.267 -+++ gcc-3.4.1/gcc/config/rs6000/sysv4.h	2004-08-12 15:54:43.000000000 -0500
 139.268 -@@ -947,6 +947,7 @@
 139.269 -   mcall-linux  : %(link_os_linux)       ; \
 139.270 -   mcall-gnu    : %(link_os_gnu)         ; \
 139.271 -   mcall-netbsd : %(link_os_netbsd)      ; \
 139.272 -+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 139.273 -   mcall-openbsd: %(link_os_openbsd)     ; \
 139.274 -                : %(link_os_default)     }"
 139.275 - 
 139.276 -@@ -1125,6 +1126,10 @@
 139.277 -   %{rdynamic:-export-dynamic} \
 139.278 -   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 139.279 - 
 139.280 -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 139.281 -+  %{rdynamic:-export-dynamic} \
 139.282 -+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 139.283 -+
 139.284 - #if defined(HAVE_LD_EH_FRAME_HDR)
 139.285 - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 139.286 - #endif
 139.287 -@@ -1291,6 +1296,7 @@
 139.288 -   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 139.289 -   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 139.290 -   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 139.291 -+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 139.292 -   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 139.293 -   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 139.294 -   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 139.295 ---- gcc-3.4.4/gcc/config/s390/linux.h
 139.296 -+++ gcc-3.4.4/gcc/config/s390/linux.h
 139.297 -@@ -77,6 +77,13 @@
 139.298 - #define MULTILIB_DEFAULTS { "m31" }
 139.299 - #endif
 139.300 - 
 139.301 -+#ifdef USE_UCLIBC
 139.302 -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.303 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 139.304 -+#else
 139.305 -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 139.306 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 139.307 -+#endif
 139.308 - #undef  LINK_SPEC
 139.309 - #define LINK_SPEC \
 139.310 -   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 139.311 -@@ -86,8 +93,8 @@
 139.312 -       %{!static: \
 139.313 - 	%{rdynamic:-export-dynamic} \
 139.314 - 	%{!dynamic-linker: \
 139.315 --          %{m31:-dynamic-linker /lib/ld.so.1} \
 139.316 --          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 139.317 -+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 139.318 -+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 139.319 - 
 139.320 - 
 139.321 - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 139.322 ---- gcc-3.4.1-dist/gcc/config/sh/linux.h	2004-01-11 20:29:13.000000000 -0600
 139.323 -+++ gcc-3.4.1/gcc/config/sh/linux.h	2004-08-12 15:54:43.000000000 -0500
 139.324 -@@ -73,11 +73,16 @@
 139.325 - #undef SUBTARGET_LINK_EMUL_SUFFIX
 139.326 - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 139.327 - #undef SUBTARGET_LINK_SPEC
 139.328 -+#ifdef USE_UCLIBC
 139.329 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.330 -+#else
 139.331 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 139.332 -+#endif
 139.333 - #define SUBTARGET_LINK_SPEC \
 139.334 -   "%{shared:-shared} \
 139.335 -    %{!static: \
 139.336 -      %{rdynamic:-export-dynamic} \
 139.337 --     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 139.338 -+     %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.339 -    %{static:-static}"
 139.340 - 
 139.341 - #undef LIB_SPEC
 139.342 ---- gcc-3.4.4/gcc/config/sparc/linux.h
 139.343 -+++ gcc-3.4.4/gcc/config/sparc/linux.h
 139.344 -@@ -162,13 +162,18 @@
 139.345 -         %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
 139.346 -         %{static:-static}}}"
 139.347 - #else
 139.348 -+#ifdef USE_UCLIBC
 139.349 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 139.350 -+#else
 139.351 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 139.352 -+#endif
 139.353 - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 139.354 -   %{!mno-relax:%{!r:-relax}} \
 139.355 -   %{!shared: \
 139.356 -     %{!ibcs: \
 139.357 -       %{!static: \
 139.358 -         %{rdynamic:-export-dynamic} \
 139.359 --        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 139.360 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.361 -         %{static:-static}}}"
 139.362 - #endif
 139.363 - 
 139.364 ---- gcc-3.4.4/gcc/config/sparc/linux64.h
 139.365 -+++ gcc-3.4.4/gcc/config/sparc/linux64.h
 139.366 -@@ -167,12 +166,17 @@
 139.367 -   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 139.368 -   { "link_arch",	 LINK_ARCH_SPEC },
 139.369 -     
 139.370 -+#ifdef USE_UCLIBC
 139.371 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 139.372 -+#else
 139.373 -+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 139.374 -+#endif
 139.375 - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 139.376 -   %{!shared: \
 139.377 -     %{!ibcs: \
 139.378 -       %{!static: \
 139.379 -         %{rdynamic:-export-dynamic} \
 139.380 --        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 139.381 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 139.382 -         %{static:-static}}} \
 139.383 - "
 139.384 - 
 139.385 ---- gcc-3.4.1-dist/libtool.m4	2004-05-18 04:08:37.000000000 -0500
 139.386 -+++ gcc-3.4.1/libtool.m4	2004-08-12 15:54:43.000000000 -0500
 139.387 -@@ -689,6 +689,11 @@
 139.388 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
 139.389 -   ;;
 139.390 - 
 139.391 -+linux-uclibc*)
 139.392 -+  lt_cv_deplibs_check_method=pass_all
 139.393 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 139.394 -+  ;;
 139.395 -+
 139.396 - netbsd*)
 139.397 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 139.398 -     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 139.399 ---- gcc-3.4.1-dist/ltconfig	2004-03-05 15:05:41.000000000 -0600
 139.400 -+++ gcc-3.4.1/ltconfig	2004-08-12 15:55:48.000000000 -0500
 139.401 -@@ -602,6 +602,7 @@
 139.402 - 
 139.403 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 139.404 - case $host_os in
 139.405 -+linux-uclibc*) ;;
 139.406 - linux-gnu*) ;;
 139.407 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 139.408 - esac
 139.409 -@@ -1262,6 +1263,24 @@
 139.410 -   dynamic_linker='GNU/Linux ld.so'
 139.411 -   ;;
 139.412 - 
 139.413 -+linux-uclibc*)
 139.414 -+  version_type=linux
 139.415 -+  need_lib_prefix=no
 139.416 -+  need_version=no
 139.417 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
 139.418 -+  soname_spec='${libname}${release}.so$major'
 139.419 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 139.420 -+  shlibpath_var=LD_LIBRARY_PATH
 139.421 -+  shlibpath_overrides_runpath=no
 139.422 -+  # This implies no fast_install, which is unacceptable.
 139.423 -+  # Some rework will be needed to allow for fast_install
 139.424 -+  # before this can be enabled.
 139.425 -+  # Note: copied from linux-gnu, and may not be appropriate.
 139.426 -+  hardcode_into_libs=yes
 139.427 -+  # Assume using the uClibc dynamic linker.
 139.428 -+  dynamic_linker="uClibc ld.so"
 139.429 -+  ;;
 139.430 -+
 139.431 - netbsd*)
 139.432 -   need_lib_prefix=no
 139.433 -   need_version=no
 139.434 ---- gcc-3.4.1-dist/boehm-gc/configure	2004-07-01 14:14:03.000000000 -0500
 139.435 -+++ gcc-3.4.1/boehm-gc/configure	2004-08-12 16:22:57.000000000 -0500
 139.436 -@@ -1947,6 +1947,11 @@
 139.437 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
 139.438 -   ;;
 139.439 - 
 139.440 -+linux-uclibc*)
 139.441 -+  lt_cv_deplibs_check_method=pass_all
 139.442 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 139.443 -+  ;;
 139.444 -+
 139.445 - netbsd*)
 139.446 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 139.447 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 139.448 ---- gcc-3.4.1-dist/boehm-gc/ltconfig	2002-11-20 09:59:06.000000000 -0600
 139.449 -+++ gcc-3.4.1/boehm-gc/ltconfig	2004-08-12 15:54:42.000000000 -0500
 139.450 -@@ -1981,6 +1981,23 @@
 139.451 -   fi
 139.452 -   ;;
 139.453 - 
 139.454 -+linux-uclibc*)
 139.455 -+  version_type=linux
 139.456 -+  need_lib_prefix=no
 139.457 -+  need_version=no
 139.458 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
 139.459 -+  soname_spec='${libname}${release}.so$major'
 139.460 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 139.461 -+  shlibpath_var=LD_LIBRARY_PATH
 139.462 -+  shlibpath_overrides_runpath=no
 139.463 -+  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
 139.464 -+  file_magic_cmd=/usr/bin/file
 139.465 -+  file_magic_test_file=`echo /lib/libuClibc-*.so`
 139.466 -+
 139.467 -+  # Assume using the uClibc dynamic linker.
 139.468 -+  dynamic_linker="uClibc ld.so"
 139.469 -+  ;;
 139.470 -+
 139.471 - netbsd*)
 139.472 -   version_type=sunos
 139.473 -   if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
   140.1 --- a/patches/gcc/3.4.4/200-uclibc-locale.patch	Tue Aug 14 19:32:22 2007 +0000
   140.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.3 @@ -1,3255 +0,0 @@
   140.4 -diff -urN gcc-3.4.2-dist/libstdc++-v3/acinclude.m4 gcc-3.4.2/libstdc++-v3/acinclude.m4
   140.5 ---- gcc-3.4.2-dist/libstdc++-v3/acinclude.m4	2004-07-15 12:42:45.000000000 -0500
   140.6 -+++ gcc-3.4.2/libstdc++-v3/acinclude.m4	2004-09-10 10:47:40.000000000 -0500
   140.7 -@@ -996,7 +996,7 @@
   140.8 -   AC_MSG_CHECKING([for C locale to use])
   140.9 -   GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
  140.10 -     [use MODEL for target locale package],
  140.11 --    [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
  140.12 -+    [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
  140.13 -   
  140.14 -   # If they didn't use this option switch, or if they specified --enable
  140.15 -   # with no specific model, we'll have to look for one.  If they
  140.16 -@@ -1012,6 +1012,9 @@
  140.17 -   # Default to "generic".
  140.18 -   if test $enable_clocale_flag = auto; then
  140.19 -     case x${target_os} in
  140.20 -+      x*-uclibc*)
  140.21 -+        enable_clocale_flag=uclibc
  140.22 -+        ;;
  140.23 -       xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu)
  140.24 -         AC_EGREP_CPP([_GLIBCXX_ok], [
  140.25 -         #include <features.h>
  140.26 -@@ -1138,6 +1141,41 @@
  140.27 -       CTIME_CC=config/locale/generic/time_members.cc
  140.28 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
  140.29 -       ;;
  140.30 -+    uclibc)
  140.31 -+      AC_MSG_RESULT(uclibc)
  140.32 -+
  140.33 -+      # Declare intention to use gettext, and add support for specific
  140.34 -+      # languages.
  140.35 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
  140.36 -+      ALL_LINGUAS="de fr"
  140.37 -+
  140.38 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
  140.39 -+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
  140.40 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
  140.41 -+        USE_NLS=yes
  140.42 -+      fi
  140.43 -+      # Export the build objects.
  140.44 -+      for ling in $ALL_LINGUAS; do \
  140.45 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
  140.46 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
  140.47 -+      done
  140.48 -+      AC_SUBST(glibcxx_MOFILES)
  140.49 -+      AC_SUBST(glibcxx_POFILES)
  140.50 -+
  140.51 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
  140.52 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
  140.53 -+      CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
  140.54 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
  140.55 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
  140.56 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
  140.57 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
  140.58 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
  140.59 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
  140.60 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
  140.61 -+      CTIME_H=config/locale/uclibc/time_members.h
  140.62 -+      CTIME_CC=config/locale/uclibc/time_members.cc
  140.63 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
  140.64 -+      ;;
  140.65 -   esac
  140.66 - 
  140.67 -   # This is where the testsuite looks for locale catalogs, using the
  140.68 -diff -urN gcc-3.4.2-dist/libstdc++-v3/aclocal.m4 gcc-3.4.2/libstdc++-v3/aclocal.m4
  140.69 ---- gcc-3.4.2-dist/libstdc++-v3/aclocal.m4	2004-08-13 15:44:03.000000000 -0500
  140.70 -+++ gcc-3.4.2/libstdc++-v3/aclocal.m4	2004-09-10 10:47:40.000000000 -0500
  140.71 -@@ -1025,6 +1025,9 @@
  140.72 -   # Default to "generic".
  140.73 -   if test $enable_clocale_flag = auto; then
  140.74 -     case x${target_os} in
  140.75 -+      x*-uclibc*)
  140.76 -+	enable_clocale_flag=uclibc
  140.77 -+	;;
  140.78 -       xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu)
  140.79 -         AC_EGREP_CPP([_GLIBCXX_ok], [
  140.80 -         #include <features.h>
  140.81 -@@ -1151,6 +1154,41 @@
  140.82 -       CTIME_CC=config/locale/generic/time_members.cc
  140.83 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
  140.84 -       ;;
  140.85 -+    uclibc)
  140.86 -+      AC_MSG_RESULT(uclibc)
  140.87 -+
  140.88 -+      # Declare intention to use gettext, and add support for specific
  140.89 -+      # languages.
  140.90 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
  140.91 -+      ALL_LINGUAS="de fr"
  140.92 -+
  140.93 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
  140.94 -+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
  140.95 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
  140.96 -+        USE_NLS=yes
  140.97 -+      fi
  140.98 -+      # Export the build objects.
  140.99 -+      for ling in $ALL_LINGUAS; do \
 140.100 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
 140.101 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
 140.102 -+      done
 140.103 -+      AC_SUBST(glibcxx_MOFILES)
 140.104 -+      AC_SUBST(glibcxx_POFILES)
 140.105 -+
 140.106 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
 140.107 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
 140.108 -+      CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
 140.109 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
 140.110 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
 140.111 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
 140.112 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
 140.113 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
 140.114 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
 140.115 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
 140.116 -+      CTIME_H=config/locale/uclibc/time_members.h
 140.117 -+      CTIME_CC=config/locale/uclibc/time_members.cc
 140.118 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
 140.119 -+      ;;
 140.120 -   esac
 140.121 - 
 140.122 -   # This is where the testsuite looks for locale catalogs, using the
 140.123 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
 140.124 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	1969-12-31 18:00:00.000000000 -0600
 140.125 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2004-09-10 10:47:40.000000000 -0500
 140.126 -@@ -0,0 +1,59 @@
 140.127 -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
 140.128 -+
 140.129 -+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 140.130 -+//
 140.131 -+// This file is part of the GNU ISO C++ Library.  This library is free
 140.132 -+// software; you can redistribute it and/or modify it under the
 140.133 -+// terms of the GNU General Public License as published by the
 140.134 -+// Free Software Foundation; either version 2, or (at your option)
 140.135 -+// any later version.
 140.136 -+
 140.137 -+// This library is distributed in the hope that it will be useful,
 140.138 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 140.139 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 140.140 -+// GNU General Public License for more details.
 140.141 -+
 140.142 -+// You should have received a copy of the GNU General Public License along
 140.143 -+// with this library; see the file COPYING.  If not, write to the Free
 140.144 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 140.145 -+// USA.
 140.146 -+
 140.147 -+// As a special exception, you may use this file as part of a free software
 140.148 -+// library without restriction.  Specifically, if other files instantiate
 140.149 -+// templates or use macros or inline functions from this file, or you compile
 140.150 -+// this file and link it with other files to produce an executable, this
 140.151 -+// file does not by itself cause the resulting executable to be covered by
 140.152 -+// the GNU General Public License.  This exception does not however
 140.153 -+// invalidate any other reasons why the executable file might be covered by
 140.154 -+// the GNU General Public License.
 140.155 -+
 140.156 -+// Written by Jakub Jelinek <jakub@redhat.com>
 140.157 -+
 140.158 -+#include <clocale>
 140.159 -+
 140.160 -+#ifdef __UCLIBC_MJN3_ONLY__
 140.161 -+#warning clean this up
 140.162 -+#endif
 140.163 -+
 140.164 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.165 -+                                                  
 140.166 -+extern "C" __typeof(iswctype_l) __iswctype_l;
 140.167 -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
 140.168 -+extern "C" __typeof(strcoll_l) __strcoll_l;
 140.169 -+extern "C" __typeof(strftime_l) __strftime_l;
 140.170 -+extern "C" __typeof(strtod_l) __strtod_l;
 140.171 -+extern "C" __typeof(strtof_l) __strtof_l;
 140.172 -+extern "C" __typeof(strtold_l) __strtold_l;
 140.173 -+extern "C" __typeof(strxfrm_l) __strxfrm_l;
 140.174 -+extern "C" __typeof(towlower_l) __towlower_l;
 140.175 -+extern "C" __typeof(towupper_l) __towupper_l;
 140.176 -+extern "C" __typeof(wcscoll_l) __wcscoll_l;
 140.177 -+extern "C" __typeof(wcsftime_l) __wcsftime_l;
 140.178 -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
 140.179 -+extern "C" __typeof(wctype_l) __wctype_l;
 140.180 -+extern "C" __typeof(newlocale) __newlocale;
 140.181 -+extern "C" __typeof(freelocale) __freelocale;
 140.182 -+extern "C" __typeof(duplocale) __duplocale;
 140.183 -+extern "C" __typeof(uselocale) __uselocale;
 140.184 -+
 140.185 -+#endif // GLIBC 2.3 and later
 140.186 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.cc
 140.187 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.cc	1969-12-31 18:00:00.000000000 -0600
 140.188 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.cc	2004-09-10 10:47:40.000000000 -0500
 140.189 -@@ -0,0 +1,160 @@
 140.190 -+// Wrapper for underlying C-language localization -*- C++ -*-
 140.191 -+
 140.192 -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 140.193 -+//
 140.194 -+// This file is part of the GNU ISO C++ Library.  This library is free
 140.195 -+// software; you can redistribute it and/or modify it under the
 140.196 -+// terms of the GNU General Public License as published by the
 140.197 -+// Free Software Foundation; either version 2, or (at your option)
 140.198 -+// any later version.
 140.199 -+
 140.200 -+// This library is distributed in the hope that it will be useful,
 140.201 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 140.202 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 140.203 -+// GNU General Public License for more details.
 140.204 -+
 140.205 -+// You should have received a copy of the GNU General Public License along
 140.206 -+// with this library; see the file COPYING.  If not, write to the Free
 140.207 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 140.208 -+// USA.
 140.209 -+
 140.210 -+// As a special exception, you may use this file as part of a free software
 140.211 -+// library without restriction.  Specifically, if other files instantiate
 140.212 -+// templates or use macros or inline functions from this file, or you compile
 140.213 -+// this file and link it with other files to produce an executable, this
 140.214 -+// file does not by itself cause the resulting executable to be covered by
 140.215 -+// the GNU General Public License.  This exception does not however
 140.216 -+// invalidate any other reasons why the executable file might be covered by
 140.217 -+// the GNU General Public License.
 140.218 -+
 140.219 -+//
 140.220 -+// ISO C++ 14882: 22.8  Standard locale categories.
 140.221 -+//
 140.222 -+
 140.223 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 140.224 -+
 140.225 -+#include <cerrno>  // For errno
 140.226 -+#include <locale>
 140.227 -+#include <stdexcept>
 140.228 -+#include <langinfo.h>
 140.229 -+#include <bits/c++locale_internal.h>
 140.230 -+
 140.231 -+#ifndef __UCLIBC_HAS_XLOCALE__
 140.232 -+#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
 140.233 -+#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
 140.234 -+#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
 140.235 -+#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
 140.236 -+#define __strtof_l(S, E, L)         strtof((S), (E))
 140.237 -+#define __strtod_l(S, E, L)         strtod((S), (E))
 140.238 -+#define __strtold_l(S, E, L)        strtold((S), (E))
 140.239 -+#warning should dummy __newlocale check for C|POSIX ?
 140.240 -+#define __newlocale(a, b, c)        NULL
 140.241 -+#define __freelocale(a)             ((void)0)
 140.242 -+#define __duplocale(a)              __c_locale()
 140.243 -+#endif
 140.244 -+
 140.245 -+namespace std 
 140.246 -+{
 140.247 -+  template<>
 140.248 -+    void
 140.249 -+    __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 
 140.250 -+		   const __c_locale& __cloc)
 140.251 -+    {
 140.252 -+      if (!(__err & ios_base::failbit))
 140.253 -+	{
 140.254 -+	  char* __sanity;
 140.255 -+	  errno = 0;
 140.256 -+	  float __f = __strtof_l(__s, &__sanity, __cloc);
 140.257 -+          if (__sanity != __s && errno != ERANGE)
 140.258 -+	    __v = __f;
 140.259 -+	  else
 140.260 -+	    __err |= ios_base::failbit;
 140.261 -+	}
 140.262 -+    }
 140.263 -+
 140.264 -+  template<>
 140.265 -+    void
 140.266 -+    __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 
 140.267 -+		   const __c_locale& __cloc)
 140.268 -+    {
 140.269 -+      if (!(__err & ios_base::failbit))
 140.270 -+	{
 140.271 -+	  char* __sanity;
 140.272 -+	  errno = 0;
 140.273 -+	  double __d = __strtod_l(__s, &__sanity, __cloc);
 140.274 -+          if (__sanity != __s && errno != ERANGE)
 140.275 -+	    __v = __d;
 140.276 -+	  else
 140.277 -+	    __err |= ios_base::failbit;
 140.278 -+	}
 140.279 -+    }
 140.280 -+
 140.281 -+  template<>
 140.282 -+    void
 140.283 -+    __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
 140.284 -+		   const __c_locale& __cloc)
 140.285 -+    {
 140.286 -+      if (!(__err & ios_base::failbit))
 140.287 -+	{
 140.288 -+	  char* __sanity;
 140.289 -+	  errno = 0;
 140.290 -+	  long double __ld = __strtold_l(__s, &__sanity, __cloc);
 140.291 -+          if (__sanity != __s && errno != ERANGE)
 140.292 -+	    __v = __ld;
 140.293 -+	  else
 140.294 -+	    __err |= ios_base::failbit;
 140.295 -+	}
 140.296 -+    }
 140.297 -+
 140.298 -+  void
 140.299 -+  locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, 
 140.300 -+				    __c_locale __old)
 140.301 -+  {
 140.302 -+    __cloc = __newlocale(1 << LC_ALL, __s, __old);
 140.303 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.304 -+    if (!__cloc)
 140.305 -+      {
 140.306 -+	// This named locale is not supported by the underlying OS.
 140.307 -+	__throw_runtime_error(__N("locale::facet::_S_create_c_locale "
 140.308 -+			      "name not valid"));
 140.309 -+      }
 140.310 -+#endif
 140.311 -+  }
 140.312 -+  
 140.313 -+  void
 140.314 -+  locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
 140.315 -+  {
 140.316 -+    if (_S_get_c_locale() != __cloc)
 140.317 -+      __freelocale(__cloc); 
 140.318 -+  }
 140.319 -+
 140.320 -+  __c_locale
 140.321 -+  locale::facet::_S_clone_c_locale(__c_locale& __cloc)
 140.322 -+  { return __duplocale(__cloc); }
 140.323 -+} // namespace std
 140.324 -+
 140.325 -+namespace __gnu_cxx
 140.326 -+{
 140.327 -+  const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
 140.328 -+    {
 140.329 -+      "LC_CTYPE", 
 140.330 -+      "LC_NUMERIC",
 140.331 -+      "LC_TIME", 
 140.332 -+      "LC_COLLATE", 
 140.333 -+      "LC_MONETARY",
 140.334 -+      "LC_MESSAGES", 
 140.335 -+#if _GLIBCXX_NUM_CATEGORIES != 0
 140.336 -+      "LC_PAPER", 
 140.337 -+      "LC_NAME", 
 140.338 -+      "LC_ADDRESS",
 140.339 -+      "LC_TELEPHONE", 
 140.340 -+      "LC_MEASUREMENT", 
 140.341 -+      "LC_IDENTIFICATION" 
 140.342 -+#endif
 140.343 -+    };
 140.344 -+}
 140.345 -+
 140.346 -+namespace std
 140.347 -+{
 140.348 -+  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
 140.349 -+}  // namespace std
 140.350 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.h
 140.351 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/c_locale.h	1969-12-31 18:00:00.000000000 -0600
 140.352 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/c_locale.h	2004-09-10 10:48:08.000000000 -0500
 140.353 -@@ -0,0 +1,115 @@
 140.354 -+// Wrapper for underlying C-language localization -*- C++ -*-
 140.355 -+
 140.356 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 140.357 -+//
 140.358 -+// This file is part of the GNU ISO C++ Library.  This library is free
 140.359 -+// software; you can redistribute it and/or modify it under the
 140.360 -+// terms of the GNU General Public License as published by the
 140.361 -+// Free Software Foundation; either version 2, or (at your option)
 140.362 -+// any later version.
 140.363 -+
 140.364 -+// This library is distributed in the hope that it will be useful,
 140.365 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 140.366 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 140.367 -+// GNU General Public License for more details.
 140.368 -+
 140.369 -+// You should have received a copy of the GNU General Public License along
 140.370 -+// with this library; see the file COPYING.  If not, write to the Free
 140.371 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 140.372 -+// USA.
 140.373 -+
 140.374 -+// As a special exception, you may use this file as part of a free software
 140.375 -+// library without restriction.  Specifically, if other files instantiate
 140.376 -+// templates or use macros or inline functions from this file, or you compile
 140.377 -+// this file and link it with other files to produce an executable, this
 140.378 -+// file does not by itself cause the resulting executable to be covered by
 140.379 -+// the GNU General Public License.  This exception does not however
 140.380 -+// invalidate any other reasons why the executable file might be covered by
 140.381 -+// the GNU General Public License.
 140.382 -+
 140.383 -+//
 140.384 -+// ISO C++ 14882: 22.8  Standard locale categories.
 140.385 -+//
 140.386 -+
 140.387 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 140.388 -+
 140.389 -+#ifndef _C_LOCALE_H
 140.390 -+#define _C_LOCALE_H 1
 140.391 -+
 140.392 -+#pragma GCC system_header
 140.393 -+
 140.394 -+#include <cstring>              // get std::strlen
 140.395 -+#include <cstdio>               // get std::snprintf or std::sprintf
 140.396 -+#include <clocale>
 140.397 -+#include <langinfo.h>		// For codecvt
 140.398 -+#ifdef __UCLIBC_MJN3_ONLY__
 140.399 -+#warning fix this
 140.400 -+#endif
 140.401 -+#ifdef __UCLIBC_HAS_LOCALE__
 140.402 -+#include <iconv.h>		// For codecvt using iconv, iconv_t
 140.403 -+#endif
 140.404 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
 140.405 -+#include <libintl.h> 		// For messages
 140.406 -+#endif
 140.407 -+
 140.408 -+#ifdef __UCLIBC_MJN3_ONLY__
 140.409 -+#warning what is _GLIBCXX_C_LOCALE_GNU for
 140.410 -+#endif
 140.411 -+#define _GLIBCXX_C_LOCALE_GNU 1
 140.412 -+
 140.413 -+#ifdef __UCLIBC_MJN3_ONLY__
 140.414 -+#warning fix categories
 140.415 -+#endif
 140.416 -+// #define _GLIBCXX_NUM_CATEGORIES 6
 140.417 -+#define _GLIBCXX_NUM_CATEGORIES 0
 140.418 -+ 
 140.419 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.420 -+namespace __gnu_cxx
 140.421 -+{
 140.422 -+  extern "C" __typeof(uselocale) __uselocale;
 140.423 -+}
 140.424 -+#endif
 140.425 -+
 140.426 -+namespace std
 140.427 -+{
 140.428 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.429 -+  typedef __locale_t		__c_locale;
 140.430 -+#else
 140.431 -+  typedef int*			__c_locale;
 140.432 -+#endif
 140.433 -+
 140.434 -+  // Convert numeric value of type _Tv to string and return length of
 140.435 -+  // string.  If snprintf is available use it, otherwise fall back to
 140.436 -+  // the unsafe sprintf which, in general, can be dangerous and should
 140.437 -+  // be avoided.
 140.438 -+  template<typename _Tv>
 140.439 -+    int
 140.440 -+    __convert_from_v(char* __out, const int __size, const char* __fmt,
 140.441 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.442 -+		     _Tv __v, const __c_locale& __cloc, int __prec)
 140.443 -+    {
 140.444 -+      __c_locale __old = __gnu_cxx::__uselocale(__cloc);
 140.445 -+#else
 140.446 -+		     _Tv __v, const __c_locale&, int __prec)
 140.447 -+    {
 140.448 -+# ifdef __UCLIBC_HAS_LOCALE__
 140.449 -+      char* __old = std::setlocale(LC_ALL, NULL);
 140.450 -+      char* __sav = new char[std::strlen(__old) + 1];
 140.451 -+      std::strcpy(__sav, __old);
 140.452 -+      std::setlocale(LC_ALL, "C");
 140.453 -+# endif
 140.454 -+#endif
 140.455 -+
 140.456 -+      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
 140.457 -+
 140.458 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.459 -+      __gnu_cxx::__uselocale(__old);
 140.460 -+#elif defined __UCLIBC_HAS_LOCALE__
 140.461 -+      std::setlocale(LC_ALL, __sav);
 140.462 -+      delete [] __sav;
 140.463 -+#endif
 140.464 -+      return __ret;
 140.465 -+    }
 140.466 -+}
 140.467 -+
 140.468 -+#endif
 140.469 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
 140.470 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/codecvt_members.cc	1969-12-31 18:00:00.000000000 -0600
 140.471 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc	2004-09-10 10:47:40.000000000 -0500
 140.472 -@@ -0,0 +1,306 @@
 140.473 -+// std::codecvt implementation details, GNU version -*- C++ -*-
 140.474 -+
 140.475 -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 140.476 -+//
 140.477 -+// This file is part of the GNU ISO C++ Library.  This library is free
 140.478 -+// software; you can redistribute it and/or modify it under the
 140.479 -+// terms of the GNU General Public License as published by the
 140.480 -+// Free Software Foundation; either version 2, or (at your option)
 140.481 -+// any later version.
 140.482 -+
 140.483 -+// This library is distributed in the hope that it will be useful,
 140.484 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 140.485 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 140.486 -+// GNU General Public License for more details.
 140.487 -+
 140.488 -+// You should have received a copy of the GNU General Public License along
 140.489 -+// with this library; see the file COPYING.  If not, write to the Free
 140.490 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 140.491 -+// USA.
 140.492 -+
 140.493 -+// As a special exception, you may use this file as part of a free software
 140.494 -+// library without restriction.  Specifically, if other files instantiate
 140.495 -+// templates or use macros or inline functions from this file, or you compile
 140.496 -+// this file and link it with other files to produce an executable, this
 140.497 -+// file does not by itself cause the resulting executable to be covered by
 140.498 -+// the GNU General Public License.  This exception does not however
 140.499 -+// invalidate any other reasons why the executable file might be covered by
 140.500 -+// the GNU General Public License.
 140.501 -+
 140.502 -+//
 140.503 -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
 140.504 -+//
 140.505 -+
 140.506 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 140.507 -+
 140.508 -+#include <locale>
 140.509 -+#include <bits/c++locale_internal.h>
 140.510 -+
 140.511 -+namespace std
 140.512 -+{
 140.513 -+  // Specializations.
 140.514 -+#ifdef _GLIBCXX_USE_WCHAR_T
 140.515 -+  codecvt_base::result
 140.516 -+  codecvt<wchar_t, char, mbstate_t>::
 140.517 -+  do_out(state_type& __state, const intern_type* __from, 
 140.518 -+	 const intern_type* __from_end, const intern_type*& __from_next,
 140.519 -+	 extern_type* __to, extern_type* __to_end,
 140.520 -+	 extern_type*& __to_next) const
 140.521 -+  {
 140.522 -+    result __ret = ok;
 140.523 -+    state_type __tmp_state(__state);
 140.524 -+
 140.525 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.526 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 140.527 -+#endif
 140.528 -+
 140.529 -+    // wcsnrtombs is *very* fast but stops if encounters NUL characters:
 140.530 -+    // in case we fall back to wcrtomb and then continue, in a loop.
 140.531 -+    // NB: wcsnrtombs is a GNU extension
 140.532 -+    for (__from_next = __from, __to_next = __to;
 140.533 -+	 __from_next < __from_end && __to_next < __to_end
 140.534 -+	 && __ret == ok;)
 140.535 -+      {
 140.536 -+	const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
 140.537 -+						      __from_end - __from_next);
 140.538 -+	if (!__from_chunk_end)
 140.539 -+	  __from_chunk_end = __from_end;
 140.540 -+
 140.541 -+	__from = __from_next;
 140.542 -+	const size_t __conv = wcsnrtombs(__to_next, &__from_next,
 140.543 -+					 __from_chunk_end - __from_next,
 140.544 -+					 __to_end - __to_next, &__state);
 140.545 -+	if (__conv == static_cast<size_t>(-1))
 140.546 -+	  {
 140.547 -+	    // In case of error, in order to stop at the exact place we
 140.548 -+	    // have to start again from the beginning with a series of
 140.549 -+	    // wcrtomb.
 140.550 -+	    for (; __from < __from_next; ++__from)
 140.551 -+	      __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
 140.552 -+	    __state = __tmp_state;
 140.553 -+	    __ret = error;
 140.554 -+	  }
 140.555 -+	else if (__from_next && __from_next < __from_chunk_end)
 140.556 -+	  {
 140.557 -+	    __to_next += __conv;
 140.558 -+	    __ret = partial;
 140.559 -+	  }
 140.560 -+	else
 140.561 -+	  {
 140.562 -+	    __from_next = __from_chunk_end;
 140.563 -+	    __to_next += __conv;
 140.564 -+	  }
 140.565 -+
 140.566 -+	if (__from_next < __from_end && __ret == ok)
 140.567 -+	  {
 140.568 -+	    extern_type __buf[MB_LEN_MAX];
 140.569 -+	    __tmp_state = __state;
 140.570 -+	    const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
 140.571 -+	    if (__conv > static_cast<size_t>(__to_end - __to_next))
 140.572 -+	      __ret = partial;
 140.573 -+	    else
 140.574 -+	      {
 140.575 -+		memcpy(__to_next, __buf, __conv);
 140.576 -+		__state = __tmp_state;
 140.577 -+		__to_next += __conv;
 140.578 -+		++__from_next;
 140.579 -+	      }
 140.580 -+	  }
 140.581 -+      }
 140.582 -+
 140.583 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.584 -+    __uselocale(__old);
 140.585 -+#endif
 140.586 -+
 140.587 -+    return __ret; 
 140.588 -+  }
 140.589 -+  
 140.590 -+  codecvt_base::result
 140.591 -+  codecvt<wchar_t, char, mbstate_t>::
 140.592 -+  do_in(state_type& __state, const extern_type* __from, 
 140.593 -+	const extern_type* __from_end, const extern_type*& __from_next,
 140.594 -+	intern_type* __to, intern_type* __to_end,
 140.595 -+	intern_type*& __to_next) const
 140.596 -+  {
 140.597 -+    result __ret = ok;
 140.598 -+    state_type __tmp_state(__state);
 140.599 -+
 140.600 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.601 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 140.602 -+#endif
 140.603 -+
 140.604 -+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
 140.605 -+    // in case we store a L'\0' and then continue, in a loop.
 140.606 -+    // NB: mbsnrtowcs is a GNU extension
 140.607 -+    for (__from_next = __from, __to_next = __to;
 140.608 -+	 __from_next < __from_end && __to_next < __to_end
 140.609 -+	 && __ret == ok;)
 140.610 -+      {
 140.611 -+	const extern_type* __from_chunk_end;
 140.612 -+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
 140.613 -+								  __from_end
 140.614 -+								  - __from_next));
 140.615 -+	if (!__from_chunk_end)
 140.616 -+	  __from_chunk_end = __from_end;
 140.617 -+
 140.618 -+	__from = __from_next;
 140.619 -+	size_t __conv = mbsnrtowcs(__to_next, &__from_next,
 140.620 -+				   __from_chunk_end - __from_next,
 140.621 -+				   __to_end - __to_next, &__state);
 140.622 -+	if (__conv == static_cast<size_t>(-1))
 140.623 -+	  {
 140.624 -+	    // In case of error, in order to stop at the exact place we
 140.625 -+	    // have to start again from the beginning with a series of
 140.626 -+	    // mbrtowc.
 140.627 -+	    for (;; ++__to_next, __from += __conv)
 140.628 -+	      {
 140.629 -+		__conv = mbrtowc(__to_next, __from, __from_end - __from,
 140.630 -+				 &__tmp_state);
 140.631 -+		if (__conv == static_cast<size_t>(-1)
 140.632 -+		    || __conv == static_cast<size_t>(-2))
 140.633 -+		  break;
 140.634 -+	      }
 140.635 -+	    __from_next = __from;
 140.636 -+	    __state = __tmp_state;	    
 140.637 -+	    __ret = error;
 140.638 -+	  }
 140.639 -+	else if (__from_next && __from_next < __from_chunk_end)
 140.640 -+	  {
 140.641 -+	    // It is unclear what to return in this case (see DR 382). 
 140.642 -+	    __to_next += __conv;
 140.643 -+	    __ret = partial;
 140.644 -+	  }
 140.645 -+	else
 140.646 -+	  {
 140.647 -+	    __from_next = __from_chunk_end;
 140.648 -+	    __to_next += __conv;
 140.649 -+	  }
 140.650 -+
 140.651 -+	if (__from_next < __from_end && __ret == ok)
 140.652 -+	  {
 140.653 -+	    if (__to_next < __to_end)
 140.654 -+	      {
 140.655 -+		// XXX Probably wrong for stateful encodings
 140.656 -+		__tmp_state = __state;		
 140.657 -+		++__from_next;
 140.658 -+		*__to_next++ = L'\0';
 140.659 -+	      }
 140.660 -+	    else
 140.661 -+	      __ret = partial;
 140.662 -+	  }
 140.663 -+      }
 140.664 -+
 140.665 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.666 -+    __uselocale(__old);
 140.667 -+#endif
 140.668 -+
 140.669 -+    return __ret; 
 140.670 -+  }
 140.671 -+
 140.672 -+  int 
 140.673 -+  codecvt<wchar_t, char, mbstate_t>::
 140.674 -+  do_encoding() const throw()
 140.675 -+  {
 140.676 -+    // XXX This implementation assumes that the encoding is
 140.677 -+    // stateless and is either single-byte or variable-width.
 140.678 -+    int __ret = 0;
 140.679 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.680 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 140.681 -+#endif
 140.682 -+    if (MB_CUR_MAX == 1)
 140.683 -+      __ret = 1;
 140.684 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.685 -+    __uselocale(__old);
 140.686 -+#endif
 140.687 -+    return __ret;
 140.688 -+  }  
 140.689 -+
 140.690 -+  int 
 140.691 -+  codecvt<wchar_t, char, mbstate_t>::
 140.692 -+  do_max_length() const throw()
 140.693 -+  {
 140.694 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.695 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 140.696 -+#endif
 140.697 -+    // XXX Probably wrong for stateful encodings.
 140.698 -+    int __ret = MB_CUR_MAX;
 140.699 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.700 -+    __uselocale(__old);
 140.701 -+#endif
 140.702 -+    return __ret;
 140.703 -+  }
 140.704 -+  
 140.705 -+  int 
 140.706 -+  codecvt<wchar_t, char, mbstate_t>::
 140.707 -+  do_length(state_type& __state, const extern_type* __from,
 140.708 -+	    const extern_type* __end, size_t __max) const
 140.709 -+  {
 140.710 -+    int __ret = 0;
 140.711 -+    state_type __tmp_state(__state);
 140.712 -+
 140.713 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.714 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 140.715 -+#endif
 140.716 -+
 140.717 -+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
 140.718 -+    // in case we advance past it and then continue, in a loop.
 140.719 -+    // NB: mbsnrtowcs is a GNU extension
 140.720 -+  
 140.721 -+    // A dummy internal buffer is needed in order for mbsnrtocws to consider
 140.722 -+    // its fourth parameter (it wouldn't with NULL as first parameter).
 140.723 -+    wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) 
 140.724 -+							   * __max));
 140.725 -+    while (__from < __end && __max)
 140.726 -+      {
 140.727 -+	const extern_type* __from_chunk_end;
 140.728 -+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
 140.729 -+								  __end
 140.730 -+								  - __from));
 140.731 -+	if (!__from_chunk_end)
 140.732 -+	  __from_chunk_end = __end;
 140.733 -+
 140.734 -+	const extern_type* __tmp_from = __from;
 140.735 -+	size_t __conv = mbsnrtowcs(__to, &__from,
 140.736 -+				   __from_chunk_end - __from,
 140.737 -+				   __max, &__state);
 140.738 -+	if (__conv == static_cast<size_t>(-1))
 140.739 -+	  {
 140.740 -+	    // In case of error, in order to stop at the exact place we
 140.741 -+	    // have to start again from the beginning with a series of
 140.742 -+	    // mbrtowc.
 140.743 -+	    for (__from = __tmp_from;; __from += __conv)
 140.744 -+	      {
 140.745 -+		__conv = mbrtowc(NULL, __from, __end - __from,
 140.746 -+				 &__tmp_state);
 140.747 -+		if (__conv == static_cast<size_t>(-1)
 140.748 -+		    || __conv == static_cast<size_t>(-2))
 140.749 -+		  break;
 140.750 -+	      }
 140.751 -+	    __state = __tmp_state;
 140.752 -+	    __ret += __from - __tmp_from;
 140.753 -+	    break;
 140.754 -+	  }
 140.755 -+	if (!__from)
 140.756 -+	  __from = __from_chunk_end;
 140.757 -+	
 140.758 -+	__ret += __from - __tmp_from;
 140.759 -+	__max -= __conv;
 140.760 -+
 140.761 -+	if (__from < __end && __max)
 140.762 -+	  {
 140.763 -+	    // XXX Probably wrong for stateful encodings
 140.764 -+	    __tmp_state = __state;
 140.765 -+	    ++__from;
 140.766 -+	    ++__ret;
 140.767 -+	    --__max;
 140.768 -+	  }
 140.769 -+      }
 140.770 -+
 140.771 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.772 -+    __uselocale(__old);
 140.773 -+#endif
 140.774 -+
 140.775 -+    return __ret; 
 140.776 -+  }
 140.777 -+#endif
 140.778 -+}
 140.779 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/collate_members.cc
 140.780 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/collate_members.cc	1969-12-31 18:00:00.000000000 -0600
 140.781 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/collate_members.cc	2004-09-10 10:47:40.000000000 -0500
 140.782 -@@ -0,0 +1,80 @@
 140.783 -+// std::collate implementation details, GNU version -*- C++ -*-
 140.784 -+
 140.785 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 140.786 -+//
 140.787 -+// This file is part of the GNU ISO C++ Library.  This library is free
 140.788 -+// software; you can redistribute it and/or modify it under the
 140.789 -+// terms of the GNU General Public License as published by the
 140.790 -+// Free Software Foundation; either version 2, or (at your option)
 140.791 -+// any later version.
 140.792 -+
 140.793 -+// This library is distributed in the hope that it will be useful,
 140.794 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 140.795 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 140.796 -+// GNU General Public License for more details.
 140.797 -+
 140.798 -+// You should have received a copy of the GNU General Public License along
 140.799 -+// with this library; see the file COPYING.  If not, write to the Free
 140.800 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 140.801 -+// USA.
 140.802 -+
 140.803 -+// As a special exception, you may use this file as part of a free software
 140.804 -+// library without restriction.  Specifically, if other files instantiate
 140.805 -+// templates or use macros or inline functions from this file, or you compile
 140.806 -+// this file and link it with other files to produce an executable, this
 140.807 -+// file does not by itself cause the resulting executable to be covered by
 140.808 -+// the GNU General Public License.  This exception does not however
 140.809 -+// invalidate any other reasons why the executable file might be covered by
 140.810 -+// the GNU General Public License.
 140.811 -+
 140.812 -+//
 140.813 -+// ISO C++ 14882: 22.2.4.1.2  collate virtual functions
 140.814 -+//
 140.815 -+
 140.816 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 140.817 -+
 140.818 -+#include <locale>
 140.819 -+#include <bits/c++locale_internal.h>
 140.820 -+
 140.821 -+#ifndef __UCLIBC_HAS_XLOCALE__
 140.822 -+#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
 140.823 -+#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
 140.824 -+#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
 140.825 -+#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
 140.826 -+#endif
 140.827 -+
 140.828 -+namespace std
 140.829 -+{
 140.830 -+  // These are basically extensions to char_traits, and perhaps should
 140.831 -+  // be put there instead of here.
 140.832 -+  template<>
 140.833 -+    int 
 140.834 -+    collate<char>::_M_compare(const char* __one, const char* __two) const
 140.835 -+    { 
 140.836 -+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
 140.837 -+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
 140.838 -+    }
 140.839 -+  
 140.840 -+  template<>
 140.841 -+    size_t
 140.842 -+    collate<char>::_M_transform(char* __to, const char* __from, 
 140.843 -+				size_t __n) const 
 140.844 -+    { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 140.845 -+
 140.846 -+#ifdef _GLIBCXX_USE_WCHAR_T
 140.847 -+  template<>
 140.848 -+    int 
 140.849 -+    collate<wchar_t>::_M_compare(const wchar_t* __one, 
 140.850 -+				 const wchar_t* __two) const
 140.851 -+    {
 140.852 -+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
 140.853 -+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
 140.854 -+    }
 140.855 -+  
 140.856 -+  template<>
 140.857 -+    size_t
 140.858 -+    collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
 140.859 -+				   size_t __n) const
 140.860 -+    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 140.861 -+#endif
 140.862 -+}
 140.863 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc
 140.864 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/ctype_members.cc	1969-12-31 18:00:00.000000000 -0600
 140.865 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2004-09-10 10:47:40.000000000 -0500
 140.866 -@@ -0,0 +1,300 @@
 140.867 -+// std::ctype implementation details, GNU version -*- C++ -*-
 140.868 -+
 140.869 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 140.870 -+//
 140.871 -+// This file is part of the GNU ISO C++ Library.  This library is free
 140.872 -+// software; you can redistribute it and/or modify it under the
 140.873 -+// terms of the GNU General Public License as published by the
 140.874 -+// Free Software Foundation; either version 2, or (at your option)
 140.875 -+// any later version.
 140.876 -+
 140.877 -+// This library is distributed in the hope that it will be useful,
 140.878 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 140.879 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 140.880 -+// GNU General Public License for more details.
 140.881 -+
 140.882 -+// You should have received a copy of the GNU General Public License along
 140.883 -+// with this library; see the file COPYING.  If not, write to the Free
 140.884 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 140.885 -+// USA.
 140.886 -+
 140.887 -+// As a special exception, you may use this file as part of a free software
 140.888 -+// library without restriction.  Specifically, if other files instantiate
 140.889 -+// templates or use macros or inline functions from this file, or you compile
 140.890 -+// this file and link it with other files to produce an executable, this
 140.891 -+// file does not by itself cause the resulting executable to be covered by
 140.892 -+// the GNU General Public License.  This exception does not however
 140.893 -+// invalidate any other reasons why the executable file might be covered by
 140.894 -+// the GNU General Public License.
 140.895 -+
 140.896 -+//
 140.897 -+// ISO C++ 14882: 22.2.1.1.2  ctype virtual functions.
 140.898 -+//
 140.899 -+
 140.900 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 140.901 -+
 140.902 -+#define _LIBC
 140.903 -+#include <locale>
 140.904 -+#undef _LIBC
 140.905 -+#include <bits/c++locale_internal.h>
 140.906 -+
 140.907 -+#ifndef __UCLIBC_HAS_XLOCALE__
 140.908 -+#define __wctype_l(S, L)           wctype((S))
 140.909 -+#define __towupper_l(C, L)         towupper((C))
 140.910 -+#define __towlower_l(C, L)         towlower((C))
 140.911 -+#define __iswctype_l(C, M, L)      iswctype((C), (M))
 140.912 -+#endif
 140.913 -+
 140.914 -+namespace std
 140.915 -+{
 140.916 -+  // NB: The other ctype<char> specializations are in src/locale.cc and
 140.917 -+  // various /config/os/* files.
 140.918 -+  template<>
 140.919 -+    ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
 140.920 -+    : ctype<char>(0, false, __refs) 
 140.921 -+    { 		
 140.922 -+      if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
 140.923 -+	{
 140.924 -+	  this->_S_destroy_c_locale(this->_M_c_locale_ctype);
 140.925 -+	  this->_S_create_c_locale(this->_M_c_locale_ctype, __s); 
 140.926 -+#ifdef __UCLIBC_HAS_XLOCALE__
 140.927 -+	  this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
 140.928 -+	  this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
 140.929 -+	  this->_M_table = this->_M_c_locale_ctype->__ctype_b;
 140.930 -+#endif
 140.931 -+	}
 140.932 -+    }
 140.933 -+
 140.934 -+#ifdef _GLIBCXX_USE_WCHAR_T  
 140.935 -+  ctype<wchar_t>::__wmask_type
 140.936 -+  ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
 140.937 -+  {
 140.938 -+    __wmask_type __ret;
 140.939 -+    switch (__m)
 140.940 -+      {
 140.941 -+      case space:
 140.942 -+	__ret = __wctype_l("space", _M_c_locale_ctype);
 140.943 -+	break;
 140.944 -+      case print:
 140.945 -+	__ret = __wctype_l("print", _M_c_locale_ctype);
 140.946 -+	break;
 140.947 -+      case cntrl:
 140.948 -+	__ret = __wctype_l("cntrl", _M_c_locale_ctype);
 140.949 -+	break;
 140.950 -+      case upper:
 140.951 -+	__ret = __wctype_l("upper", _M_c_locale_ctype);
 140.952 -+	break;
 140.953 -+      case lower:
 140.954 -+	__ret = __wctype_l("lower", _M_c_locale_ctype);
 140.955 -+	break;
 140.956 -+      case alpha:
 140.957 -+	__ret = __wctype_l("alpha", _M_c_locale_ctype);
 140.958 -+	break;
 140.959 -+      case digit:
 140.960 -+	__ret = __wctype_l("digit", _M_c_locale_ctype);
 140.961 -+	break;
 140.962 -+      case punct:
 140.963 -+	__ret = __wctype_l("punct", _M_c_locale_ctype);
 140.964 -+	break;
 140.965 -+      case xdigit:
 140.966 -+	__ret = __wctype_l("xdigit", _M_c_locale_ctype);
 140.967 -+	break;
 140.968 -+      case alnum:
 140.969 -+	__ret = __wctype_l("alnum", _M_c_locale_ctype);
 140.970 -+	break;
 140.971 -+      case graph:
 140.972 -+	__ret = __wctype_l("graph", _M_c_locale_ctype);
 140.973 -+	break;
 140.974 -+      default:
 140.975 -+	__ret = 0;
 140.976 -+      }
 140.977 -+    return __ret;
 140.978 -+  }
 140.979 -+  
 140.980 -+  wchar_t
 140.981 -+  ctype<wchar_t>::do_toupper(wchar_t __c) const
 140.982 -+  { return __towupper_l(__c, _M_c_locale_ctype); }
 140.983 -+
 140.984 -+  const wchar_t*
 140.985 -+  ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
 140.986 -+  {
 140.987 -+    while (__lo < __hi)
 140.988 -+      {
 140.989 -+        *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
 140.990 -+        ++__lo;
 140.991 -+      }
 140.992 -+    return __hi;
 140.993 -+  }
 140.994 -+  
 140.995 -+  wchar_t
 140.996 -+  ctype<wchar_t>::do_tolower(wchar_t __c) const
 140.997 -+  { return __towlower_l(__c, _M_c_locale_ctype); }
 140.998 -+  
 140.999 -+  const wchar_t*
140.1000 -+  ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
140.1001 -+  {
140.1002 -+    while (__lo < __hi)
140.1003 -+      {
140.1004 -+        *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
140.1005 -+        ++__lo;
140.1006 -+      }
140.1007 -+    return __hi;
140.1008 -+  }
140.1009 -+
140.1010 -+  bool
140.1011 -+  ctype<wchar_t>::
140.1012 -+  do_is(mask __m, wchar_t __c) const
140.1013 -+  { 
140.1014 -+    // Highest bitmask in ctype_base == 10, but extra in "C"
140.1015 -+    // library for blank.
140.1016 -+    bool __ret = false;
140.1017 -+    const size_t __bitmasksize = 11; 
140.1018 -+    for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
140.1019 -+      if (__m & _M_bit[__bitcur]
140.1020 -+	  && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
140.1021 -+	{
140.1022 -+	  __ret = true;
140.1023 -+	  break;
140.1024 -+	}
140.1025 -+    return __ret;    
140.1026 -+  }
140.1027 -+  
140.1028 -+  const wchar_t* 
140.1029 -+  ctype<wchar_t>::
140.1030 -+  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
140.1031 -+  {
140.1032 -+    for (; __lo < __hi; ++__vec, ++__lo)
140.1033 -+      {
140.1034 -+	// Highest bitmask in ctype_base == 10, but extra in "C"
140.1035 -+	// library for blank.
140.1036 -+	const size_t __bitmasksize = 11; 
140.1037 -+	mask __m = 0;
140.1038 -+	for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
140.1039 -+	  if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
140.1040 -+	    __m |= _M_bit[__bitcur];
140.1041 -+	*__vec = __m;
140.1042 -+      }
140.1043 -+    return __hi;
140.1044 -+  }
140.1045 -+  
140.1046 -+  const wchar_t* 
140.1047 -+  ctype<wchar_t>::
140.1048 -+  do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
140.1049 -+  {
140.1050 -+    while (__lo < __hi && !this->do_is(__m, *__lo))
140.1051 -+      ++__lo;
140.1052 -+    return __lo;
140.1053 -+  }
140.1054 -+
140.1055 -+  const wchar_t*
140.1056 -+  ctype<wchar_t>::
140.1057 -+  do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
140.1058 -+  {
140.1059 -+    while (__lo < __hi && this->do_is(__m, *__lo) != 0)
140.1060 -+      ++__lo;
140.1061 -+    return __lo;
140.1062 -+  }
140.1063 -+
140.1064 -+  wchar_t
140.1065 -+  ctype<wchar_t>::
140.1066 -+  do_widen(char __c) const
140.1067 -+  { return _M_widen[static_cast<unsigned char>(__c)]; }
140.1068 -+
140.1069 -+  const char* 
140.1070 -+  ctype<wchar_t>::
140.1071 -+  do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
140.1072 -+  {
140.1073 -+    while (__lo < __hi)
140.1074 -+      {
140.1075 -+	*__dest = _M_widen[static_cast<unsigned char>(*__lo)];
140.1076 -+	++__lo;
140.1077 -+	++__dest;
140.1078 -+      }
140.1079 -+    return __hi;
140.1080 -+  }
140.1081 -+
140.1082 -+  char
140.1083 -+  ctype<wchar_t>::
140.1084 -+  do_narrow(wchar_t __wc, char __dfault) const
140.1085 -+  {
140.1086 -+    if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
140.1087 -+      return _M_narrow[__wc];
140.1088 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1089 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
140.1090 -+#endif
140.1091 -+    const int __c = wctob(__wc);
140.1092 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1093 -+    __uselocale(__old);
140.1094 -+#endif
140.1095 -+    return (__c == EOF ? __dfault : static_cast<char>(__c)); 
140.1096 -+  }
140.1097 -+
140.1098 -+  const wchar_t*
140.1099 -+  ctype<wchar_t>::
140.1100 -+  do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, 
140.1101 -+	    char* __dest) const
140.1102 -+  {
140.1103 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1104 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
140.1105 -+#endif
140.1106 -+    if (_M_narrow_ok)
140.1107 -+      while (__lo < __hi)
140.1108 -+	{
140.1109 -+	  if (*__lo >= 0 && *__lo < 128)
140.1110 -+	    *__dest = _M_narrow[*__lo];
140.1111 -+	  else
140.1112 -+	    {
140.1113 -+	      const int __c = wctob(*__lo);
140.1114 -+	      *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
140.1115 -+	    }
140.1116 -+	  ++__lo;
140.1117 -+	  ++__dest;
140.1118 -+	}
140.1119 -+    else
140.1120 -+      while (__lo < __hi)
140.1121 -+	{
140.1122 -+	  const int __c = wctob(*__lo);
140.1123 -+	  *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
140.1124 -+	  ++__lo;
140.1125 -+	  ++__dest;
140.1126 -+	}
140.1127 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1128 -+    __uselocale(__old);
140.1129 -+#endif
140.1130 -+    return __hi;
140.1131 -+  }
140.1132 -+
140.1133 -+  void
140.1134 -+  ctype<wchar_t>::_M_initialize_ctype()
140.1135 -+  {
140.1136 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1137 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
140.1138 -+#endif
140.1139 -+    wint_t __i;
140.1140 -+    for (__i = 0; __i < 128; ++__i)
140.1141 -+      {
140.1142 -+	const int __c = wctob(__i);
140.1143 -+	if (__c == EOF)
140.1144 -+	  break;
140.1145 -+	else
140.1146 -+	  _M_narrow[__i] = static_cast<char>(__c);
140.1147 -+      }
140.1148 -+    if (__i == 128)
140.1149 -+      _M_narrow_ok = true;
140.1150 -+    else
140.1151 -+      _M_narrow_ok = false;
140.1152 -+    for (size_t __j = 0;
140.1153 -+	 __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
140.1154 -+      _M_widen[__j] = btowc(__j);
140.1155 -+
140.1156 -+    for (size_t __k = 0; __k <= 11; ++__k)
140.1157 -+      { 
140.1158 -+	_M_bit[__k] = static_cast<mask>(_ISbit(__k));
140.1159 -+	_M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
140.1160 -+      }
140.1161 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1162 -+    __uselocale(__old);
140.1163 -+#endif
140.1164 -+  }
140.1165 -+#endif //  _GLIBCXX_USE_WCHAR_T
140.1166 -+}
140.1167 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.cc
140.1168 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.cc	1969-12-31 18:00:00.000000000 -0600
140.1169 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.cc	2004-09-10 10:47:40.000000000 -0500
140.1170 -@@ -0,0 +1,100 @@
140.1171 -+// std::messages implementation details, GNU version -*- C++ -*-
140.1172 -+
140.1173 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
140.1174 -+//
140.1175 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.1176 -+// software; you can redistribute it and/or modify it under the
140.1177 -+// terms of the GNU General Public License as published by the
140.1178 -+// Free Software Foundation; either version 2, or (at your option)
140.1179 -+// any later version.
140.1180 -+
140.1181 -+// This library is distributed in the hope that it will be useful,
140.1182 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.1183 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.1184 -+// GNU General Public License for more details.
140.1185 -+
140.1186 -+// You should have received a copy of the GNU General Public License along
140.1187 -+// with this library; see the file COPYING.  If not, write to the Free
140.1188 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.1189 -+// USA.
140.1190 -+
140.1191 -+// As a special exception, you may use this file as part of a free software
140.1192 -+// library without restriction.  Specifically, if other files instantiate
140.1193 -+// templates or use macros or inline functions from this file, or you compile
140.1194 -+// this file and link it with other files to produce an executable, this
140.1195 -+// file does not by itself cause the resulting executable to be covered by
140.1196 -+// the GNU General Public License.  This exception does not however
140.1197 -+// invalidate any other reasons why the executable file might be covered by
140.1198 -+// the GNU General Public License.
140.1199 -+
140.1200 -+//
140.1201 -+// ISO C++ 14882: 22.2.7.1.2  messages virtual functions
140.1202 -+//
140.1203 -+
140.1204 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.1205 -+
140.1206 -+#include <locale>
140.1207 -+#include <bits/c++locale_internal.h>
140.1208 -+
140.1209 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1210 -+#warning fix gettext stuff
140.1211 -+#endif
140.1212 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
140.1213 -+extern "C" char *__dcgettext(const char *domainname,
140.1214 -+			     const char *msgid, int category);
140.1215 -+#undef gettext
140.1216 -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
140.1217 -+#else
140.1218 -+#undef gettext
140.1219 -+#define gettext(msgid) (msgid)
140.1220 -+#endif
140.1221 -+
140.1222 -+namespace std
140.1223 -+{
140.1224 -+  // Specializations.
140.1225 -+  template<>
140.1226 -+    string
140.1227 -+    messages<char>::do_get(catalog, int, int, const string& __dfault) const
140.1228 -+    {
140.1229 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1230 -+      __c_locale __old = __uselocale(_M_c_locale_messages);
140.1231 -+      const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
140.1232 -+      __uselocale(__old);
140.1233 -+      return string(__msg);
140.1234 -+#elif defined __UCLIBC_HAS_LOCALE__
140.1235 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
140.1236 -+      setlocale(LC_ALL, _M_name_messages);
140.1237 -+      const char* __msg = gettext(__dfault.c_str());
140.1238 -+      setlocale(LC_ALL, __old);
140.1239 -+      free(__old);
140.1240 -+      return string(__msg);
140.1241 -+#else
140.1242 -+      const char* __msg = gettext(__dfault.c_str());
140.1243 -+      return string(__msg);
140.1244 -+#endif
140.1245 -+    }
140.1246 -+
140.1247 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.1248 -+  template<>
140.1249 -+    wstring
140.1250 -+    messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
140.1251 -+    {
140.1252 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.1253 -+      __c_locale __old = __uselocale(_M_c_locale_messages);
140.1254 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
140.1255 -+      __uselocale(__old);
140.1256 -+      return _M_convert_from_char(__msg);
140.1257 -+# elif defined __UCLIBC_HAS_LOCALE__
140.1258 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
140.1259 -+      setlocale(LC_ALL, _M_name_messages);
140.1260 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
140.1261 -+      setlocale(LC_ALL, __old);
140.1262 -+      free(__old);
140.1263 -+      return _M_convert_from_char(__msg);
140.1264 -+# else
140.1265 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
140.1266 -+      return _M_convert_from_char(__msg);
140.1267 -+# endif
140.1268 -+    }
140.1269 -+#endif
140.1270 -+}
140.1271 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.h
140.1272 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/messages_members.h	1969-12-31 18:00:00.000000000 -0600
140.1273 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/messages_members.h	2004-09-10 10:47:40.000000000 -0500
140.1274 -@@ -0,0 +1,118 @@
140.1275 -+// std::messages implementation details, GNU version -*- C++ -*-
140.1276 -+
140.1277 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.1278 -+//
140.1279 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.1280 -+// software; you can redistribute it and/or modify it under the
140.1281 -+// terms of the GNU General Public License as published by the
140.1282 -+// Free Software Foundation; either version 2, or (at your option)
140.1283 -+// any later version.
140.1284 -+
140.1285 -+// This library is distributed in the hope that it will be useful,
140.1286 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.1287 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.1288 -+// GNU General Public License for more details.
140.1289 -+
140.1290 -+// You should have received a copy of the GNU General Public License along
140.1291 -+// with this library; see the file COPYING.  If not, write to the Free
140.1292 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.1293 -+// USA.
140.1294 -+
140.1295 -+// As a special exception, you may use this file as part of a free software
140.1296 -+// library without restriction.  Specifically, if other files instantiate
140.1297 -+// templates or use macros or inline functions from this file, or you compile
140.1298 -+// this file and link it with other files to produce an executable, this
140.1299 -+// file does not by itself cause the resulting executable to be covered by
140.1300 -+// the GNU General Public License.  This exception does not however
140.1301 -+// invalidate any other reasons why the executable file might be covered by
140.1302 -+// the GNU General Public License.
140.1303 -+
140.1304 -+//
140.1305 -+// ISO C++ 14882: 22.2.7.1.2  messages functions
140.1306 -+//
140.1307 -+
140.1308 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.1309 -+
140.1310 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1311 -+#warning fix prototypes for *textdomain funcs
140.1312 -+#endif
140.1313 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
140.1314 -+extern "C" char *__textdomain(const char *domainname);
140.1315 -+extern "C" char *__bindtextdomain(const char *domainname,
140.1316 -+				  const char *dirname);
140.1317 -+#else
140.1318 -+#undef __textdomain
140.1319 -+#undef __bindtextdomain
140.1320 -+#define __textdomain(D)           ((void)0)
140.1321 -+#define __bindtextdomain(D,P)     ((void)0)
140.1322 -+#endif
140.1323 -+
140.1324 -+  // Non-virtual member functions.
140.1325 -+  template<typename _CharT>
140.1326 -+     messages<_CharT>::messages(size_t __refs)
140.1327 -+     : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 
140.1328 -+     _M_name_messages(_S_get_c_name())
140.1329 -+     { }
140.1330 -+
140.1331 -+  template<typename _CharT>
140.1332 -+     messages<_CharT>::messages(__c_locale __cloc, const char* __s, 
140.1333 -+				size_t __refs) 
140.1334 -+     : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
140.1335 -+     _M_name_messages(__s)
140.1336 -+     {
140.1337 -+       char* __tmp = new char[std::strlen(__s) + 1];
140.1338 -+       std::strcpy(__tmp, __s);
140.1339 -+       _M_name_messages = __tmp;
140.1340 -+     }
140.1341 -+
140.1342 -+  template<typename _CharT>
140.1343 -+    typename messages<_CharT>::catalog 
140.1344 -+    messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
140.1345 -+			   const char* __dir) const
140.1346 -+    { 
140.1347 -+      __bindtextdomain(__s.c_str(), __dir);
140.1348 -+      return this->do_open(__s, __loc); 
140.1349 -+    }
140.1350 -+
140.1351 -+  // Virtual member functions.
140.1352 -+  template<typename _CharT>
140.1353 -+    messages<_CharT>::~messages()
140.1354 -+    { 
140.1355 -+      if (_M_name_messages != _S_get_c_name())
140.1356 -+	delete [] _M_name_messages;
140.1357 -+      _S_destroy_c_locale(_M_c_locale_messages); 
140.1358 -+    }
140.1359 -+
140.1360 -+  template<typename _CharT>
140.1361 -+    typename messages<_CharT>::catalog 
140.1362 -+    messages<_CharT>::do_open(const basic_string<char>& __s, 
140.1363 -+			      const locale&) const
140.1364 -+    { 
140.1365 -+      // No error checking is done, assume the catalog exists and can
140.1366 -+      // be used.
140.1367 -+      __textdomain(__s.c_str());
140.1368 -+      return 0;
140.1369 -+    }
140.1370 -+
140.1371 -+  template<typename _CharT>
140.1372 -+    void    
140.1373 -+    messages<_CharT>::do_close(catalog) const 
140.1374 -+    { }
140.1375 -+
140.1376 -+   // messages_byname
140.1377 -+   template<typename _CharT>
140.1378 -+     messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
140.1379 -+     : messages<_CharT>(__refs) 
140.1380 -+     { 
140.1381 -+       if (this->_M_name_messages != locale::facet::_S_get_c_name())
140.1382 -+	 delete [] this->_M_name_messages;
140.1383 -+       char* __tmp = new char[std::strlen(__s) + 1];
140.1384 -+       std::strcpy(__tmp, __s);
140.1385 -+       this->_M_name_messages = __tmp;
140.1386 -+
140.1387 -+       if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
140.1388 -+	 {
140.1389 -+	   this->_S_destroy_c_locale(this->_M_c_locale_messages);
140.1390 -+	   this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
140.1391 -+	 }
140.1392 -+     }
140.1393 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc
140.1394 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/monetary_members.cc	1969-12-31 18:00:00.000000000 -0600
140.1395 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2004-09-10 10:47:40.000000000 -0500
140.1396 -@@ -0,0 +1,698 @@
140.1397 -+// std::moneypunct implementation details, GNU version -*- C++ -*-
140.1398 -+
140.1399 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.1400 -+//
140.1401 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.1402 -+// software; you can redistribute it and/or modify it under the
140.1403 -+// terms of the GNU General Public License as published by the
140.1404 -+// Free Software Foundation; either version 2, or (at your option)
140.1405 -+// any later version.
140.1406 -+
140.1407 -+// This library is distributed in the hope that it will be useful,
140.1408 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.1409 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.1410 -+// GNU General Public License for more details.
140.1411 -+
140.1412 -+// You should have received a copy of the GNU General Public License along
140.1413 -+// with this library; see the file COPYING.  If not, write to the Free
140.1414 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.1415 -+// USA.
140.1416 -+
140.1417 -+// As a special exception, you may use this file as part of a free software
140.1418 -+// library without restriction.  Specifically, if other files instantiate
140.1419 -+// templates or use macros or inline functions from this file, or you compile
140.1420 -+// this file and link it with other files to produce an executable, this
140.1421 -+// file does not by itself cause the resulting executable to be covered by
140.1422 -+// the GNU General Public License.  This exception does not however
140.1423 -+// invalidate any other reasons why the executable file might be covered by
140.1424 -+// the GNU General Public License.
140.1425 -+
140.1426 -+//
140.1427 -+// ISO C++ 14882: 22.2.6.3.2  moneypunct virtual functions
140.1428 -+//
140.1429 -+
140.1430 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.1431 -+
140.1432 -+#define _LIBC
140.1433 -+#include <locale>
140.1434 -+#undef _LIBC
140.1435 -+#include <bits/c++locale_internal.h>
140.1436 -+
140.1437 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1438 -+#warning optimize this for uclibc
140.1439 -+#warning tailor for stub locale support
140.1440 -+#endif
140.1441 -+
140.1442 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.1443 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
140.1444 -+#endif
140.1445 -+
140.1446 -+namespace std
140.1447 -+{
140.1448 -+  // Construct and return valid pattern consisting of some combination of:
140.1449 -+  // space none symbol sign value
140.1450 -+  money_base::pattern
140.1451 -+  money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
140.1452 -+  { 
140.1453 -+    pattern __ret;
140.1454 -+
140.1455 -+    // This insanely complicated routine attempts to construct a valid
140.1456 -+    // pattern for use with monyepunct. A couple of invariants:
140.1457 -+
140.1458 -+    // if (__precedes) symbol -> value
140.1459 -+    // else value -> symbol
140.1460 -+    
140.1461 -+    // if (__space) space
140.1462 -+    // else none
140.1463 -+
140.1464 -+    // none == never first
140.1465 -+    // space never first or last
140.1466 -+
140.1467 -+    // Any elegant implementations of this are welcome.
140.1468 -+    switch (__posn)
140.1469 -+      {
140.1470 -+      case 0:
140.1471 -+      case 1:
140.1472 -+	// 1 The sign precedes the value and symbol.
140.1473 -+	__ret.field[0] = sign;
140.1474 -+	if (__space)
140.1475 -+	  {
140.1476 -+	    // Pattern starts with sign.
140.1477 -+	    if (__precedes)
140.1478 -+	      {
140.1479 -+		__ret.field[1] = symbol;
140.1480 -+		__ret.field[3] = value;
140.1481 -+	      }
140.1482 -+	    else
140.1483 -+	      {
140.1484 -+		__ret.field[1] = value;
140.1485 -+		__ret.field[3] = symbol;
140.1486 -+	      }
140.1487 -+	    __ret.field[2] = space;
140.1488 -+	  }
140.1489 -+	else
140.1490 -+	  {
140.1491 -+	    // Pattern starts with sign and ends with none.
140.1492 -+	    if (__precedes)
140.1493 -+	      {
140.1494 -+		__ret.field[1] = symbol;
140.1495 -+		__ret.field[2] = value;
140.1496 -+	      }
140.1497 -+	    else
140.1498 -+	      {
140.1499 -+		__ret.field[1] = value;
140.1500 -+		__ret.field[2] = symbol;
140.1501 -+	      }
140.1502 -+	    __ret.field[3] = none;
140.1503 -+	  }
140.1504 -+	break;
140.1505 -+      case 2:
140.1506 -+	// 2 The sign follows the value and symbol.
140.1507 -+	if (__space)
140.1508 -+	  {
140.1509 -+	    // Pattern either ends with sign.
140.1510 -+	    if (__precedes)
140.1511 -+	      {
140.1512 -+		__ret.field[0] = symbol;
140.1513 -+		__ret.field[2] = value;
140.1514 -+	      }
140.1515 -+	    else
140.1516 -+	      {
140.1517 -+		__ret.field[0] = value;
140.1518 -+		__ret.field[2] = symbol;
140.1519 -+	      }
140.1520 -+	    __ret.field[1] = space;
140.1521 -+	    __ret.field[3] = sign;
140.1522 -+	  }
140.1523 -+	else
140.1524 -+	  {
140.1525 -+	    // Pattern ends with sign then none.
140.1526 -+	    if (__precedes)
140.1527 -+	      {
140.1528 -+		__ret.field[0] = symbol;
140.1529 -+		__ret.field[1] = value;
140.1530 -+	      }
140.1531 -+	    else
140.1532 -+	      {
140.1533 -+		__ret.field[0] = value;
140.1534 -+		__ret.field[1] = symbol;
140.1535 -+	      }
140.1536 -+	    __ret.field[2] = sign;
140.1537 -+	    __ret.field[3] = none;
140.1538 -+	  }
140.1539 -+	break;
140.1540 -+      case 3:
140.1541 -+	// 3 The sign immediately precedes the symbol.
140.1542 -+	if (__precedes)
140.1543 -+	  {
140.1544 -+	    __ret.field[0] = sign;
140.1545 -+	    __ret.field[1] = symbol;	    
140.1546 -+	    if (__space)
140.1547 -+	      {
140.1548 -+		__ret.field[2] = space;
140.1549 -+		__ret.field[3] = value;
140.1550 -+	      }
140.1551 -+	    else
140.1552 -+	      {
140.1553 -+		__ret.field[2] = value;		
140.1554 -+		__ret.field[3] = none;
140.1555 -+	      }
140.1556 -+	  }
140.1557 -+	else
140.1558 -+	  {
140.1559 -+	    __ret.field[0] = value;
140.1560 -+	    if (__space)
140.1561 -+	      {
140.1562 -+		__ret.field[1] = space;
140.1563 -+		__ret.field[2] = sign;
140.1564 -+		__ret.field[3] = symbol;
140.1565 -+	      }
140.1566 -+	    else
140.1567 -+	      {
140.1568 -+		__ret.field[1] = sign;
140.1569 -+		__ret.field[2] = symbol;
140.1570 -+		__ret.field[3] = none;
140.1571 -+	      }
140.1572 -+	  }
140.1573 -+	break;
140.1574 -+      case 4:
140.1575 -+	// 4 The sign immediately follows the symbol.
140.1576 -+	if (__precedes)
140.1577 -+	  {
140.1578 -+	    __ret.field[0] = symbol;
140.1579 -+	    __ret.field[1] = sign;
140.1580 -+	    if (__space)
140.1581 -+	      {
140.1582 -+		__ret.field[2] = space;
140.1583 -+		__ret.field[3] = value;
140.1584 -+	      }
140.1585 -+	    else
140.1586 -+	      {
140.1587 -+		__ret.field[2] = value;
140.1588 -+		__ret.field[3] = none;
140.1589 -+	      }
140.1590 -+	  }
140.1591 -+	else
140.1592 -+	  {
140.1593 -+	    __ret.field[0] = value;
140.1594 -+	    if (__space)
140.1595 -+	      {
140.1596 -+		__ret.field[1] = space;
140.1597 -+		__ret.field[2] = symbol;
140.1598 -+		__ret.field[3] = sign;
140.1599 -+	      }
140.1600 -+	    else
140.1601 -+	      {
140.1602 -+		__ret.field[1] = symbol;
140.1603 -+		__ret.field[2] = sign;
140.1604 -+		__ret.field[3] = none;
140.1605 -+	      }
140.1606 -+	  }
140.1607 -+	break;
140.1608 -+      default:
140.1609 -+	;
140.1610 -+      }
140.1611 -+    return __ret;
140.1612 -+  }
140.1613 -+
140.1614 -+  template<> 
140.1615 -+    void
140.1616 -+    moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, 
140.1617 -+						     const char*)
140.1618 -+    {
140.1619 -+      if (!_M_data)
140.1620 -+	_M_data = new __moneypunct_cache<char, true>;
140.1621 -+
140.1622 -+      if (!__cloc)
140.1623 -+	{
140.1624 -+	  // "C" locale
140.1625 -+	  _M_data->_M_decimal_point = '.';
140.1626 -+	  _M_data->_M_thousands_sep = ',';
140.1627 -+	  _M_data->_M_grouping = "";
140.1628 -+	  _M_data->_M_grouping_size = 0;
140.1629 -+	  _M_data->_M_curr_symbol = "";
140.1630 -+	  _M_data->_M_curr_symbol_size = 0;
140.1631 -+	  _M_data->_M_positive_sign = "";
140.1632 -+	  _M_data->_M_positive_sign_size = 0;
140.1633 -+	  _M_data->_M_negative_sign = "";
140.1634 -+	  _M_data->_M_negative_sign_size = 0;
140.1635 -+	  _M_data->_M_frac_digits = 0;
140.1636 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1637 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1638 -+
140.1639 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1640 -+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
140.1641 -+	}
140.1642 -+      else
140.1643 -+	{
140.1644 -+	  // Named locale.
140.1645 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
140.1646 -+							__cloc));
140.1647 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
140.1648 -+							__cloc));
140.1649 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1650 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1651 -+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1652 -+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
140.1653 -+
140.1654 -+	  char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
140.1655 -+	  if (!__nposn)
140.1656 -+	    _M_data->_M_negative_sign = "()";
140.1657 -+	  else
140.1658 -+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, 
140.1659 -+							__cloc);
140.1660 -+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
140.1661 -+
140.1662 -+	  // _Intl == true
140.1663 -+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
140.1664 -+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
140.1665 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
140.1666 -+						      __cloc));
140.1667 -+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
140.1668 -+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
140.1669 -+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
140.1670 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
140.1671 -+							__pposn);
140.1672 -+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
140.1673 -+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
140.1674 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
140.1675 -+							__nposn);
140.1676 -+	}
140.1677 -+    }
140.1678 -+
140.1679 -+  template<> 
140.1680 -+    void
140.1681 -+    moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, 
140.1682 -+						      const char*)
140.1683 -+    {
140.1684 -+      if (!_M_data)
140.1685 -+	_M_data = new __moneypunct_cache<char, false>;
140.1686 -+
140.1687 -+      if (!__cloc)
140.1688 -+	{
140.1689 -+	  // "C" locale
140.1690 -+	  _M_data->_M_decimal_point = '.';
140.1691 -+	  _M_data->_M_thousands_sep = ',';
140.1692 -+	  _M_data->_M_grouping = "";
140.1693 -+	  _M_data->_M_grouping_size = 0;
140.1694 -+	  _M_data->_M_curr_symbol = "";
140.1695 -+	  _M_data->_M_curr_symbol_size = 0;
140.1696 -+	  _M_data->_M_positive_sign = "";
140.1697 -+	  _M_data->_M_positive_sign_size = 0;
140.1698 -+	  _M_data->_M_negative_sign = "";
140.1699 -+	  _M_data->_M_negative_sign_size = 0;
140.1700 -+	  _M_data->_M_frac_digits = 0;
140.1701 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1702 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1703 -+
140.1704 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1705 -+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
140.1706 -+	}
140.1707 -+      else
140.1708 -+	{
140.1709 -+	  // Named locale.
140.1710 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
140.1711 -+							__cloc));
140.1712 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
140.1713 -+							__cloc));
140.1714 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1715 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1716 -+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1717 -+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
140.1718 -+
140.1719 -+	  char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
140.1720 -+	  if (!__nposn)
140.1721 -+	    _M_data->_M_negative_sign = "()";
140.1722 -+	  else
140.1723 -+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
140.1724 -+							__cloc);
140.1725 -+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
140.1726 -+
140.1727 -+	  // _Intl == false
140.1728 -+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
140.1729 -+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
140.1730 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
140.1731 -+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
140.1732 -+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
140.1733 -+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
140.1734 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
140.1735 -+							__pposn);
140.1736 -+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
140.1737 -+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
140.1738 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
140.1739 -+							__nposn);
140.1740 -+	}
140.1741 -+    }
140.1742 -+
140.1743 -+  template<> 
140.1744 -+    moneypunct<char, true>::~moneypunct()
140.1745 -+    { delete _M_data; }
140.1746 -+
140.1747 -+  template<> 
140.1748 -+    moneypunct<char, false>::~moneypunct()
140.1749 -+    { delete _M_data; }
140.1750 -+
140.1751 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.1752 -+  template<> 
140.1753 -+    void
140.1754 -+    moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, 
140.1755 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1756 -+							const char*)
140.1757 -+#else
140.1758 -+							const char* __name)
140.1759 -+#endif
140.1760 -+    {
140.1761 -+      if (!_M_data)
140.1762 -+	_M_data = new __moneypunct_cache<wchar_t, true>;
140.1763 -+
140.1764 -+      if (!__cloc)
140.1765 -+	{
140.1766 -+	  // "C" locale
140.1767 -+	  _M_data->_M_decimal_point = L'.';
140.1768 -+	  _M_data->_M_thousands_sep = L',';
140.1769 -+	  _M_data->_M_grouping = "";
140.1770 -+	  _M_data->_M_grouping_size = 0;
140.1771 -+	  _M_data->_M_curr_symbol = L"";
140.1772 -+	  _M_data->_M_curr_symbol_size = 0;
140.1773 -+	  _M_data->_M_positive_sign = L"";
140.1774 -+	  _M_data->_M_positive_sign_size = 0;
140.1775 -+	  _M_data->_M_negative_sign = L"";
140.1776 -+	  _M_data->_M_negative_sign_size = 0;
140.1777 -+	  _M_data->_M_frac_digits = 0;
140.1778 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1779 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1780 -+
140.1781 -+	  // Use ctype::widen code without the facet...
140.1782 -+	  unsigned char uc;
140.1783 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1784 -+	    {
140.1785 -+	      uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
140.1786 -+	      _M_data->_M_atoms[__i] = btowc(uc);
140.1787 -+	    }
140.1788 -+	}
140.1789 -+      else
140.1790 -+	{
140.1791 -+	  // Named locale.
140.1792 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1793 -+	  __c_locale __old = __uselocale(__cloc);
140.1794 -+#else
140.1795 -+	  // Switch to named locale so that mbsrtowcs will work.
140.1796 -+	  char* __old = strdup(setlocale(LC_ALL, NULL));
140.1797 -+	  setlocale(LC_ALL, __name);
140.1798 -+#endif
140.1799 -+
140.1800 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1801 -+#warning fix this... should be monetary
140.1802 -+#endif
140.1803 -+#ifdef __UCLIBC__
140.1804 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.1805 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
140.1806 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
140.1807 -+# else
140.1808 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
140.1809 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
140.1810 -+# endif
140.1811 -+#else
140.1812 -+	  union __s_and_w { const char *__s; unsigned int __w; } __u;
140.1813 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
140.1814 -+	  _M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
140.1815 -+
140.1816 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
140.1817 -+	  _M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
140.1818 -+#endif
140.1819 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1820 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1821 -+
140.1822 -+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1823 -+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
140.1824 -+	  const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
140.1825 -+
140.1826 -+	  wchar_t* __wcs_ps = 0;
140.1827 -+	  wchar_t* __wcs_ns = 0;
140.1828 -+	  const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
140.1829 -+	  try
140.1830 -+	    {
140.1831 -+	      mbstate_t __state;
140.1832 -+	      size_t __len = strlen(__cpossign);
140.1833 -+	      if (__len)
140.1834 -+		{
140.1835 -+		  ++__len;
140.1836 -+		  memset(&__state, 0, sizeof(mbstate_t));
140.1837 -+		  __wcs_ps = new wchar_t[__len];
140.1838 -+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
140.1839 -+		  _M_data->_M_positive_sign = __wcs_ps;
140.1840 -+		}
140.1841 -+	      else
140.1842 -+		_M_data->_M_positive_sign = L"";
140.1843 -+	      _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
140.1844 -+	      
140.1845 -+	      __len = strlen(__cnegsign);
140.1846 -+	      if (!__nposn)
140.1847 -+		_M_data->_M_negative_sign = L"()";
140.1848 -+	      else if (__len)
140.1849 -+		{ 
140.1850 -+		  ++__len;
140.1851 -+		  memset(&__state, 0, sizeof(mbstate_t));
140.1852 -+		  __wcs_ns = new wchar_t[__len];
140.1853 -+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
140.1854 -+		  _M_data->_M_negative_sign = __wcs_ns;
140.1855 -+		}
140.1856 -+	      else
140.1857 -+		_M_data->_M_negative_sign = L"";
140.1858 -+	      _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
140.1859 -+	      
140.1860 -+	      // _Intl == true.
140.1861 -+	      __len = strlen(__ccurr);
140.1862 -+	      if (__len)
140.1863 -+		{
140.1864 -+		  ++__len;
140.1865 -+		  memset(&__state, 0, sizeof(mbstate_t));
140.1866 -+		  wchar_t* __wcs = new wchar_t[__len];
140.1867 -+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
140.1868 -+		  _M_data->_M_curr_symbol = __wcs;
140.1869 -+		}
140.1870 -+	      else
140.1871 -+		_M_data->_M_curr_symbol = L"";
140.1872 -+	      _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
140.1873 -+	    }
140.1874 -+	  catch (...)
140.1875 -+	    {
140.1876 -+	      delete _M_data;
140.1877 -+	      _M_data = 0;
140.1878 -+	      delete __wcs_ps;
140.1879 -+	      delete __wcs_ns;	      
140.1880 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1881 -+	      __uselocale(__old);
140.1882 -+#else
140.1883 -+	      setlocale(LC_ALL, __old);
140.1884 -+	      free(__old);
140.1885 -+#endif
140.1886 -+	      __throw_exception_again;
140.1887 -+	    } 
140.1888 -+	  
140.1889 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
140.1890 -+						      __cloc));
140.1891 -+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
140.1892 -+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
140.1893 -+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
140.1894 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
140.1895 -+							__pposn);
140.1896 -+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
140.1897 -+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
140.1898 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
140.1899 -+							__nposn);
140.1900 -+
140.1901 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1902 -+	  __uselocale(__old);
140.1903 -+#else
140.1904 -+	  setlocale(LC_ALL, __old);
140.1905 -+	  free(__old);
140.1906 -+#endif
140.1907 -+	}
140.1908 -+    }
140.1909 -+
140.1910 -+  template<> 
140.1911 -+  void
140.1912 -+  moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
140.1913 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1914 -+						       const char*)
140.1915 -+#else
140.1916 -+                                                       const char* __name)
140.1917 -+#endif
140.1918 -+  {
140.1919 -+    if (!_M_data)
140.1920 -+      _M_data = new __moneypunct_cache<wchar_t, false>;
140.1921 -+
140.1922 -+    if (!__cloc)
140.1923 -+	{
140.1924 -+	  // "C" locale
140.1925 -+	  _M_data->_M_decimal_point = L'.';
140.1926 -+	  _M_data->_M_thousands_sep = L',';
140.1927 -+	  _M_data->_M_grouping = "";
140.1928 -+          _M_data->_M_grouping_size = 0;
140.1929 -+	  _M_data->_M_curr_symbol = L"";
140.1930 -+	  _M_data->_M_curr_symbol_size = 0;
140.1931 -+	  _M_data->_M_positive_sign = L"";
140.1932 -+	  _M_data->_M_positive_sign_size = 0;
140.1933 -+	  _M_data->_M_negative_sign = L"";
140.1934 -+	  _M_data->_M_negative_sign_size = 0;
140.1935 -+	  _M_data->_M_frac_digits = 0;
140.1936 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
140.1937 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
140.1938 -+
140.1939 -+	  // Use ctype::widen code without the facet...
140.1940 -+	  unsigned char uc;
140.1941 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
140.1942 -+	    {
140.1943 -+	      uc = static_cast<unsigned char>(money_base::_S_atoms[__i]);
140.1944 -+	      _M_data->_M_atoms[__i] = btowc(uc);
140.1945 -+	    }
140.1946 -+	}
140.1947 -+      else
140.1948 -+	{
140.1949 -+	  // Named locale.
140.1950 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.1951 -+	  __c_locale __old = __uselocale(__cloc);
140.1952 -+#else
140.1953 -+	  // Switch to named locale so that mbsrtowcs will work.
140.1954 -+	  char* __old = strdup(setlocale(LC_ALL, NULL));
140.1955 -+	  setlocale(LC_ALL, __name);
140.1956 -+#endif
140.1957 -+
140.1958 -+#ifdef __UCLIBC_MJN3_ONLY__
140.1959 -+#warning fix this... should be monetary
140.1960 -+#endif
140.1961 -+#ifdef __UCLIBC__
140.1962 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.1963 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
140.1964 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
140.1965 -+# else
140.1966 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
140.1967 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
140.1968 -+# endif
140.1969 -+#else
140.1970 -+	  union __s_and_w { const char *__s; unsigned int __w; } __u;
140.1971 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
140.1972 -+	  _M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
140.1973 -+
140.1974 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
140.1975 -+	  _M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
140.1976 -+#endif
140.1977 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
140.1978 -+          _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.1979 -+
140.1980 -+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
140.1981 -+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
140.1982 -+	  const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
140.1983 -+
140.1984 -+	  wchar_t* __wcs_ps = 0;
140.1985 -+	  wchar_t* __wcs_ns = 0;
140.1986 -+	  const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
140.1987 -+	  try
140.1988 -+            {
140.1989 -+              mbstate_t __state;
140.1990 -+              size_t __len;
140.1991 -+              __len = strlen(__cpossign);
140.1992 -+              if (__len)
140.1993 -+                {
140.1994 -+		  ++__len;
140.1995 -+		  memset(&__state, 0, sizeof(mbstate_t));
140.1996 -+		  __wcs_ps = new wchar_t[__len];
140.1997 -+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
140.1998 -+		  _M_data->_M_positive_sign = __wcs_ps;
140.1999 -+		}
140.2000 -+	      else
140.2001 -+		_M_data->_M_positive_sign = L"";
140.2002 -+              _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
140.2003 -+	      
140.2004 -+	      __len = strlen(__cnegsign);
140.2005 -+	      if (!__nposn)
140.2006 -+		_M_data->_M_negative_sign = L"()";
140.2007 -+	      else if (__len)
140.2008 -+		{ 
140.2009 -+		  ++__len;
140.2010 -+		  memset(&__state, 0, sizeof(mbstate_t));
140.2011 -+		  __wcs_ns = new wchar_t[__len];
140.2012 -+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
140.2013 -+		  _M_data->_M_negative_sign = __wcs_ns;
140.2014 -+		}
140.2015 -+	      else
140.2016 -+		_M_data->_M_negative_sign = L"";
140.2017 -+              _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
140.2018 -+
140.2019 -+	      // _Intl == true.
140.2020 -+	      __len = strlen(__ccurr);
140.2021 -+	      if (__len)
140.2022 -+		{
140.2023 -+		  ++__len;
140.2024 -+		  memset(&__state, 0, sizeof(mbstate_t));
140.2025 -+		  wchar_t* __wcs = new wchar_t[__len];
140.2026 -+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
140.2027 -+		  _M_data->_M_curr_symbol = __wcs;
140.2028 -+		}
140.2029 -+	      else
140.2030 -+		_M_data->_M_curr_symbol = L"";
140.2031 -+              _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
140.2032 -+	    }
140.2033 -+          catch (...)
140.2034 -+	    {
140.2035 -+	      delete _M_data;
140.2036 -+              _M_data = 0;
140.2037 -+	      delete __wcs_ps;
140.2038 -+	      delete __wcs_ns;	      
140.2039 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2040 -+	      __uselocale(__old);
140.2041 -+#else
140.2042 -+	      setlocale(LC_ALL, __old);
140.2043 -+	      free(__old);
140.2044 -+#endif
140.2045 -+              __throw_exception_again;
140.2046 -+	    }
140.2047 -+
140.2048 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
140.2049 -+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
140.2050 -+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
140.2051 -+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
140.2052 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
140.2053 -+	                                                __pposn);
140.2054 -+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
140.2055 -+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
140.2056 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
140.2057 -+	                                                __nposn);
140.2058 -+
140.2059 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2060 -+	  __uselocale(__old);
140.2061 -+#else
140.2062 -+	  setlocale(LC_ALL, __old);
140.2063 -+	  free(__old);
140.2064 -+#endif
140.2065 -+	}
140.2066 -+    }
140.2067 -+
140.2068 -+  template<> 
140.2069 -+    moneypunct<wchar_t, true>::~moneypunct()
140.2070 -+    {
140.2071 -+      if (_M_data->_M_positive_sign_size)
140.2072 -+	delete [] _M_data->_M_positive_sign;
140.2073 -+      if (_M_data->_M_negative_sign_size
140.2074 -+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
140.2075 -+	delete [] _M_data->_M_negative_sign;
140.2076 -+      if (_M_data->_M_curr_symbol_size)
140.2077 -+	delete [] _M_data->_M_curr_symbol;
140.2078 -+      delete _M_data;
140.2079 -+    }
140.2080 -+
140.2081 -+  template<> 
140.2082 -+    moneypunct<wchar_t, false>::~moneypunct()
140.2083 -+    {
140.2084 -+      if (_M_data->_M_positive_sign_size)
140.2085 -+	delete [] _M_data->_M_positive_sign;
140.2086 -+      if (_M_data->_M_negative_sign_size
140.2087 -+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
140.2088 -+	delete [] _M_data->_M_negative_sign;
140.2089 -+      if (_M_data->_M_curr_symbol_size)
140.2090 -+	delete [] _M_data->_M_curr_symbol;
140.2091 -+      delete _M_data;
140.2092 -+    }
140.2093 -+#endif
140.2094 -+}
140.2095 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc
140.2096 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/numeric_members.cc	1969-12-31 18:00:00.000000000 -0600
140.2097 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2004-09-10 10:47:40.000000000 -0500
140.2098 -@@ -0,0 +1,183 @@
140.2099 -+// std::numpunct implementation details, GNU version -*- C++ -*-
140.2100 -+
140.2101 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.2102 -+//
140.2103 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2104 -+// software; you can redistribute it and/or modify it under the
140.2105 -+// terms of the GNU General Public License as published by the
140.2106 -+// Free Software Foundation; either version 2, or (at your option)
140.2107 -+// any later version.
140.2108 -+
140.2109 -+// This library is distributed in the hope that it will be useful,
140.2110 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2111 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2112 -+// GNU General Public License for more details.
140.2113 -+
140.2114 -+// You should have received a copy of the GNU General Public License along
140.2115 -+// with this library; see the file COPYING.  If not, write to the Free
140.2116 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2117 -+// USA.
140.2118 -+
140.2119 -+// As a special exception, you may use this file as part of a free software
140.2120 -+// library without restriction.  Specifically, if other files instantiate
140.2121 -+// templates or use macros or inline functions from this file, or you compile
140.2122 -+// this file and link it with other files to produce an executable, this
140.2123 -+// file does not by itself cause the resulting executable to be covered by
140.2124 -+// the GNU General Public License.  This exception does not however
140.2125 -+// invalidate any other reasons why the executable file might be covered by
140.2126 -+// the GNU General Public License.
140.2127 -+
140.2128 -+//
140.2129 -+// ISO C++ 14882: 22.2.3.1.2  numpunct virtual functions
140.2130 -+//
140.2131 -+
140.2132 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.2133 -+
140.2134 -+#define _LIBC
140.2135 -+#include <locale>
140.2136 -+#undef _LIBC
140.2137 -+#include <bits/c++locale_internal.h>
140.2138 -+
140.2139 -+#ifdef __UCLIBC_MJN3_ONLY__
140.2140 -+#warning tailor for stub locale support
140.2141 -+#endif
140.2142 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.2143 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
140.2144 -+#endif
140.2145 -+
140.2146 -+namespace std
140.2147 -+{
140.2148 -+  template<> 
140.2149 -+    void
140.2150 -+    numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
140.2151 -+    {
140.2152 -+      if (!_M_data)
140.2153 -+	_M_data = new __numpunct_cache<char>;
140.2154 -+
140.2155 -+      if (!__cloc)
140.2156 -+	{
140.2157 -+	  // "C" locale
140.2158 -+	  _M_data->_M_grouping = "";
140.2159 -+	  _M_data->_M_grouping_size = 0;
140.2160 -+	  _M_data->_M_use_grouping = false;
140.2161 -+
140.2162 -+	  _M_data->_M_decimal_point = '.';
140.2163 -+	  _M_data->_M_thousands_sep = ',';
140.2164 -+
140.2165 -+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
140.2166 -+	    _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
140.2167 -+
140.2168 -+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
140.2169 -+	    _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
140.2170 -+	}
140.2171 -+      else
140.2172 -+	{
140.2173 -+	  // Named locale.
140.2174 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, 
140.2175 -+							__cloc));
140.2176 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, 
140.2177 -+							__cloc));
140.2178 -+
140.2179 -+	  // Check for NULL, which implies no grouping.
140.2180 -+	  if (_M_data->_M_thousands_sep == '\0')
140.2181 -+	    _M_data->_M_grouping = "";
140.2182 -+	  else
140.2183 -+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
140.2184 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.2185 -+	}
140.2186 -+
140.2187 -+      // NB: There is no way to extact this info from posix locales.
140.2188 -+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
140.2189 -+      _M_data->_M_truename = "true";
140.2190 -+      _M_data->_M_truename_size = strlen(_M_data->_M_truename);
140.2191 -+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
140.2192 -+      _M_data->_M_falsename = "false";
140.2193 -+      _M_data->_M_falsename_size = strlen(_M_data->_M_falsename);
140.2194 -+    }
140.2195 -+ 
140.2196 -+  template<> 
140.2197 -+    numpunct<char>::~numpunct()
140.2198 -+    { delete _M_data; }
140.2199 -+   
140.2200 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.2201 -+  template<> 
140.2202 -+    void
140.2203 -+    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
140.2204 -+    {
140.2205 -+      if (!_M_data)
140.2206 -+	_M_data = new __numpunct_cache<wchar_t>;
140.2207 -+
140.2208 -+      if (!__cloc)
140.2209 -+	{
140.2210 -+	  // "C" locale
140.2211 -+	  _M_data->_M_grouping = "";
140.2212 -+	  _M_data->_M_grouping_size = 0;
140.2213 -+	  _M_data->_M_use_grouping = false;
140.2214 -+
140.2215 -+	  _M_data->_M_decimal_point = L'.';
140.2216 -+	  _M_data->_M_thousands_sep = L',';
140.2217 -+
140.2218 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2219 -+	  __c_locale __old = __uselocale(_S_get_c_locale());
140.2220 -+#endif
140.2221 -+	  // Use ctype::widen code without the facet...
140.2222 -+	  unsigned char uc;
140.2223 -+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
140.2224 -+	    {
140.2225 -+	      uc = static_cast<unsigned char>(__num_base::_S_atoms_out[__i]);
140.2226 -+	      _M_data->_M_atoms_out[__i] = btowc(uc);
140.2227 -+	    }
140.2228 -+
140.2229 -+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
140.2230 -+	    {
140.2231 -+	      uc = static_cast<unsigned char>(__num_base::_S_atoms_in[__j]);
140.2232 -+	      _M_data->_M_atoms_in[__j] = btowc(uc);
140.2233 -+	    }
140.2234 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2235 -+	  __uselocale(__old);
140.2236 -+#endif
140.2237 -+	}
140.2238 -+      else
140.2239 -+	{
140.2240 -+	  // Named locale.
140.2241 -+#ifdef __UCLIBC_MJN3_ONLY__
140.2242 -+#warning fix this
140.2243 -+#endif
140.2244 -+#ifdef __UCLIBC__
140.2245 -+# ifdef __UCLIBC_HAS_XLOCALE__
140.2246 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
140.2247 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
140.2248 -+# else
140.2249 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
140.2250 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
140.2251 -+# endif
140.2252 -+#else
140.2253 -+	  union __s_and_w { const char *__s; unsigned int __w; } __u;
140.2254 -+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
140.2255 -+	  _M_data->_M_decimal_point = static_cast<wchar_t>(__u.__w);
140.2256 -+
140.2257 -+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
140.2258 -+	  _M_data->_M_thousands_sep = static_cast<wchar_t>(__u.__w);
140.2259 -+#endif
140.2260 -+
140.2261 -+	  if (_M_data->_M_thousands_sep == L'\0')
140.2262 -+	    _M_data->_M_grouping = "";
140.2263 -+	  else
140.2264 -+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
140.2265 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
140.2266 -+	}
140.2267 -+
140.2268 -+      // NB: There is no way to extact this info from posix locales.
140.2269 -+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
140.2270 -+      _M_data->_M_truename = L"true";
140.2271 -+      _M_data->_M_truename_size = wcslen(_M_data->_M_truename);
140.2272 -+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
140.2273 -+      _M_data->_M_falsename = L"false";
140.2274 -+      _M_data->_M_falsename_size = wcslen(_M_data->_M_falsename);
140.2275 -+    }
140.2276 -+
140.2277 -+  template<> 
140.2278 -+    numpunct<wchar_t>::~numpunct()
140.2279 -+    { delete _M_data; }
140.2280 -+ #endif
140.2281 -+}
140.2282 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.cc
140.2283 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.cc	1969-12-31 18:00:00.000000000 -0600
140.2284 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.cc	2004-09-10 10:48:00.000000000 -0500
140.2285 -@@ -0,0 +1,356 @@
140.2286 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
140.2287 -+
140.2288 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.2289 -+//
140.2290 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2291 -+// software; you can redistribute it and/or modify it under the
140.2292 -+// terms of the GNU General Public License as published by the
140.2293 -+// Free Software Foundation; either version 2, or (at your option)
140.2294 -+// any later version.
140.2295 -+
140.2296 -+// This library is distributed in the hope that it will be useful,
140.2297 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2298 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2299 -+// GNU General Public License for more details.
140.2300 -+
140.2301 -+// You should have received a copy of the GNU General Public License along
140.2302 -+// with this library; see the file COPYING.  If not, write to the Free
140.2303 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2304 -+// USA.
140.2305 -+
140.2306 -+// As a special exception, you may use this file as part of a free software
140.2307 -+// library without restriction.  Specifically, if other files instantiate
140.2308 -+// templates or use macros or inline functions from this file, or you compile
140.2309 -+// this file and link it with other files to produce an executable, this
140.2310 -+// file does not by itself cause the resulting executable to be covered by
140.2311 -+// the GNU General Public License.  This exception does not however
140.2312 -+// invalidate any other reasons why the executable file might be covered by
140.2313 -+// the GNU General Public License.
140.2314 -+
140.2315 -+//
140.2316 -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
140.2317 -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
140.2318 -+//
140.2319 -+
140.2320 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.2321 -+
140.2322 -+#include <locale>
140.2323 -+#include <bits/c++locale_internal.h>
140.2324 -+
140.2325 -+#ifdef __UCLIBC_MJN3_ONLY__
140.2326 -+#warning tailor for stub locale support
140.2327 -+#endif
140.2328 -+#ifndef __UCLIBC_HAS_XLOCALE__
140.2329 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
140.2330 -+#endif
140.2331 -+
140.2332 -+namespace std
140.2333 -+{
140.2334 -+  template<>
140.2335 -+    void
140.2336 -+    __timepunct<char>::
140.2337 -+    _M_put(char* __s, size_t __maxlen, const char* __format, 
140.2338 -+	   const tm* __tm) const
140.2339 -+    {
140.2340 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2341 -+      const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
140.2342 -+					_M_c_locale_timepunct);
140.2343 -+#else
140.2344 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
140.2345 -+      setlocale(LC_ALL, _M_name_timepunct);
140.2346 -+      const size_t __len = strftime(__s, __maxlen, __format, __tm);
140.2347 -+      setlocale(LC_ALL, __old);
140.2348 -+      free(__old);
140.2349 -+#endif
140.2350 -+      // Make sure __s is null terminated.
140.2351 -+      if (__len == 0)
140.2352 -+	__s[0] = '\0';
140.2353 -+    }
140.2354 -+
140.2355 -+  template<> 
140.2356 -+    void
140.2357 -+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
140.2358 -+    {
140.2359 -+      if (!_M_data)
140.2360 -+	_M_data = new __timepunct_cache<char>;
140.2361 -+
140.2362 -+      if (!__cloc)
140.2363 -+	{
140.2364 -+	  // "C" locale
140.2365 -+	  _M_c_locale_timepunct = _S_get_c_locale();
140.2366 -+
140.2367 -+	  _M_data->_M_date_format = "%m/%d/%y";
140.2368 -+	  _M_data->_M_date_era_format = "%m/%d/%y";
140.2369 -+	  _M_data->_M_time_format = "%H:%M:%S";
140.2370 -+	  _M_data->_M_time_era_format = "%H:%M:%S";
140.2371 -+	  _M_data->_M_date_time_format = "";
140.2372 -+	  _M_data->_M_date_time_era_format = "";
140.2373 -+	  _M_data->_M_am = "AM";
140.2374 -+	  _M_data->_M_pm = "PM";
140.2375 -+	  _M_data->_M_am_pm_format = "";
140.2376 -+
140.2377 -+	  // Day names, starting with "C"'s Sunday.
140.2378 -+	  _M_data->_M_day1 = "Sunday";
140.2379 -+	  _M_data->_M_day2 = "Monday";
140.2380 -+	  _M_data->_M_day3 = "Tuesday";
140.2381 -+	  _M_data->_M_day4 = "Wednesday";
140.2382 -+	  _M_data->_M_day5 = "Thursday";
140.2383 -+	  _M_data->_M_day6 = "Friday";
140.2384 -+	  _M_data->_M_day7 = "Saturday";
140.2385 -+
140.2386 -+	  // Abbreviated day names, starting with "C"'s Sun.
140.2387 -+	  _M_data->_M_aday1 = "Sun";
140.2388 -+	  _M_data->_M_aday2 = "Mon";
140.2389 -+	  _M_data->_M_aday3 = "Tue";
140.2390 -+	  _M_data->_M_aday4 = "Wed";
140.2391 -+	  _M_data->_M_aday5 = "Thu";
140.2392 -+	  _M_data->_M_aday6 = "Fri";
140.2393 -+	  _M_data->_M_aday7 = "Sat";
140.2394 -+
140.2395 -+	  // Month names, starting with "C"'s January.
140.2396 -+	  _M_data->_M_month01 = "January";
140.2397 -+	  _M_data->_M_month02 = "February";
140.2398 -+	  _M_data->_M_month03 = "March";
140.2399 -+	  _M_data->_M_month04 = "April";
140.2400 -+	  _M_data->_M_month05 = "May";
140.2401 -+	  _M_data->_M_month06 = "June";
140.2402 -+	  _M_data->_M_month07 = "July";
140.2403 -+	  _M_data->_M_month08 = "August";
140.2404 -+	  _M_data->_M_month09 = "September";
140.2405 -+	  _M_data->_M_month10 = "October";
140.2406 -+	  _M_data->_M_month11 = "November";
140.2407 -+	  _M_data->_M_month12 = "December";
140.2408 -+
140.2409 -+	  // Abbreviated month names, starting with "C"'s Jan.
140.2410 -+	  _M_data->_M_amonth01 = "Jan";
140.2411 -+	  _M_data->_M_amonth02 = "Feb";
140.2412 -+	  _M_data->_M_amonth03 = "Mar";
140.2413 -+	  _M_data->_M_amonth04 = "Apr";
140.2414 -+	  _M_data->_M_amonth05 = "May";
140.2415 -+	  _M_data->_M_amonth06 = "Jun";
140.2416 -+	  _M_data->_M_amonth07 = "Jul";
140.2417 -+	  _M_data->_M_amonth08 = "Aug";
140.2418 -+	  _M_data->_M_amonth09 = "Sep";
140.2419 -+	  _M_data->_M_amonth10 = "Oct";
140.2420 -+	  _M_data->_M_amonth11 = "Nov";
140.2421 -+	  _M_data->_M_amonth12 = "Dec";
140.2422 -+	}
140.2423 -+      else
140.2424 -+	{
140.2425 -+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
140.2426 -+
140.2427 -+	  _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
140.2428 -+	  _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
140.2429 -+	  _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
140.2430 -+	  _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
140.2431 -+	  _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
140.2432 -+	  _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, __cloc);
140.2433 -+	  _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
140.2434 -+	  _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
140.2435 -+	  _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
140.2436 -+
140.2437 -+	  // Day names, starting with "C"'s Sunday.
140.2438 -+	  _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
140.2439 -+	  _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
140.2440 -+	  _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
140.2441 -+	  _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
140.2442 -+	  _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
140.2443 -+	  _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
140.2444 -+	  _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
140.2445 -+
140.2446 -+	  // Abbreviated day names, starting with "C"'s Sun.
140.2447 -+	  _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
140.2448 -+	  _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
140.2449 -+	  _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
140.2450 -+	  _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
140.2451 -+	  _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
140.2452 -+	  _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
140.2453 -+	  _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
140.2454 -+
140.2455 -+	  // Month names, starting with "C"'s January.
140.2456 -+	  _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
140.2457 -+	  _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
140.2458 -+	  _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
140.2459 -+	  _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
140.2460 -+	  _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
140.2461 -+	  _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
140.2462 -+	  _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
140.2463 -+	  _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
140.2464 -+	  _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
140.2465 -+	  _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
140.2466 -+	  _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
140.2467 -+	  _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
140.2468 -+
140.2469 -+	  // Abbreviated month names, starting with "C"'s Jan.
140.2470 -+	  _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
140.2471 -+	  _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
140.2472 -+	  _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
140.2473 -+	  _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
140.2474 -+	  _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
140.2475 -+	  _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
140.2476 -+	  _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
140.2477 -+	  _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
140.2478 -+	  _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
140.2479 -+	  _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
140.2480 -+	  _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
140.2481 -+	  _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
140.2482 -+	}
140.2483 -+    }
140.2484 -+
140.2485 -+#ifdef _GLIBCXX_USE_WCHAR_T
140.2486 -+  template<>
140.2487 -+    void
140.2488 -+    __timepunct<wchar_t>::
140.2489 -+    _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 
140.2490 -+	   const tm* __tm) const
140.2491 -+    {
140.2492 -+#ifdef __UCLIBC_HAS_XLOCALE__
140.2493 -+      __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
140.2494 -+      const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
140.2495 -+					_M_c_locale_timepunct);
140.2496 -+#else
140.2497 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
140.2498 -+      setlocale(LC_ALL, _M_name_timepunct);
140.2499 -+      const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
140.2500 -+      setlocale(LC_ALL, __old);
140.2501 -+      free(__old);
140.2502 -+#endif
140.2503 -+      // Make sure __s is null terminated.
140.2504 -+      if (__len == 0)
140.2505 -+	__s[0] = L'\0';
140.2506 -+    }
140.2507 -+
140.2508 -+  template<> 
140.2509 -+    void
140.2510 -+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
140.2511 -+    {
140.2512 -+      if (!_M_data)
140.2513 -+	_M_data = new __timepunct_cache<wchar_t>;
140.2514 -+
140.2515 -+#warning wide time stuff
140.2516 -+//       if (!__cloc)
140.2517 -+	{
140.2518 -+	  // "C" locale
140.2519 -+	  _M_c_locale_timepunct = _S_get_c_locale();
140.2520 -+
140.2521 -+	  _M_data->_M_date_format = L"%m/%d/%y";
140.2522 -+	  _M_data->_M_date_era_format = L"%m/%d/%y";
140.2523 -+	  _M_data->_M_time_format = L"%H:%M:%S";
140.2524 -+	  _M_data->_M_time_era_format = L"%H:%M:%S";
140.2525 -+	  _M_data->_M_date_time_format = L"";
140.2526 -+	  _M_data->_M_date_time_era_format = L"";
140.2527 -+	  _M_data->_M_am = L"AM";
140.2528 -+	  _M_data->_M_pm = L"PM";
140.2529 -+	  _M_data->_M_am_pm_format = L"";
140.2530 -+
140.2531 -+	  // Day names, starting with "C"'s Sunday.
140.2532 -+	  _M_data->_M_day1 = L"Sunday";
140.2533 -+	  _M_data->_M_day2 = L"Monday";
140.2534 -+	  _M_data->_M_day3 = L"Tuesday";
140.2535 -+	  _M_data->_M_day4 = L"Wednesday";
140.2536 -+	  _M_data->_M_day5 = L"Thursday";
140.2537 -+	  _M_data->_M_day6 = L"Friday";
140.2538 -+	  _M_data->_M_day7 = L"Saturday";
140.2539 -+
140.2540 -+	  // Abbreviated day names, starting with "C"'s Sun.
140.2541 -+	  _M_data->_M_aday1 = L"Sun";
140.2542 -+	  _M_data->_M_aday2 = L"Mon";
140.2543 -+	  _M_data->_M_aday3 = L"Tue";
140.2544 -+	  _M_data->_M_aday4 = L"Wed";
140.2545 -+	  _M_data->_M_aday5 = L"Thu";
140.2546 -+	  _M_data->_M_aday6 = L"Fri";
140.2547 -+	  _M_data->_M_aday7 = L"Sat";
140.2548 -+
140.2549 -+	  // Month names, starting with "C"'s January.
140.2550 -+	  _M_data->_M_month01 = L"January";
140.2551 -+	  _M_data->_M_month02 = L"February";
140.2552 -+	  _M_data->_M_month03 = L"March";
140.2553 -+	  _M_data->_M_month04 = L"April";
140.2554 -+	  _M_data->_M_month05 = L"May";
140.2555 -+	  _M_data->_M_month06 = L"June";
140.2556 -+	  _M_data->_M_month07 = L"July";
140.2557 -+	  _M_data->_M_month08 = L"August";
140.2558 -+	  _M_data->_M_month09 = L"September";
140.2559 -+	  _M_data->_M_month10 = L"October";
140.2560 -+	  _M_data->_M_month11 = L"November";
140.2561 -+	  _M_data->_M_month12 = L"December";
140.2562 -+
140.2563 -+	  // Abbreviated month names, starting with "C"'s Jan.
140.2564 -+	  _M_data->_M_amonth01 = L"Jan";
140.2565 -+	  _M_data->_M_amonth02 = L"Feb";
140.2566 -+	  _M_data->_M_amonth03 = L"Mar";
140.2567 -+	  _M_data->_M_amonth04 = L"Apr";
140.2568 -+	  _M_data->_M_amonth05 = L"May";
140.2569 -+	  _M_data->_M_amonth06 = L"Jun";
140.2570 -+	  _M_data->_M_amonth07 = L"Jul";
140.2571 -+	  _M_data->_M_amonth08 = L"Aug";
140.2572 -+	  _M_data->_M_amonth09 = L"Sep";
140.2573 -+	  _M_data->_M_amonth10 = L"Oct";
140.2574 -+	  _M_data->_M_amonth11 = L"Nov";
140.2575 -+	  _M_data->_M_amonth12 = L"Dec";
140.2576 -+	}
140.2577 -+#if 0
140.2578 -+      else
140.2579 -+	{
140.2580 -+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
140.2581 -+
140.2582 -+	  _M_data->_M_date_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_FMT, __cloc));
140.2583 -+	  _M_data->_M_date_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_FMT, __cloc));
140.2584 -+	  _M_data->_M_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT, __cloc));
140.2585 -+	  _M_data->_M_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_T_FMT, __cloc));
140.2586 -+	  _M_data->_M_date_time_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WD_T_FMT, __cloc));
140.2587 -+	  _M_data->_M_date_time_era_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc));
140.2588 -+	  _M_data->_M_am = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WAM_STR, __cloc));
140.2589 -+	  _M_data->_M_pm = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WPM_STR, __cloc));
140.2590 -+	  _M_data->_M_am_pm_format = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc));
140.2591 -+
140.2592 -+	  // Day names, starting with "C"'s Sunday.
140.2593 -+	  _M_data->_M_day1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_1, __cloc));
140.2594 -+	  _M_data->_M_day2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_2, __cloc));
140.2595 -+	  _M_data->_M_day3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_3, __cloc));
140.2596 -+	  _M_data->_M_day4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_4, __cloc));
140.2597 -+	  _M_data->_M_day5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_5, __cloc));
140.2598 -+	  _M_data->_M_day6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_6, __cloc));
140.2599 -+	  _M_data->_M_day7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WDAY_7, __cloc));
140.2600 -+
140.2601 -+	  // Abbreviated day names, starting with "C"'s Sun.
140.2602 -+	  _M_data->_M_aday1 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_1, __cloc));
140.2603 -+	  _M_data->_M_aday2 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_2, __cloc));
140.2604 -+	  _M_data->_M_aday3 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_3, __cloc));
140.2605 -+	  _M_data->_M_aday4 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_4, __cloc));
140.2606 -+	  _M_data->_M_aday5 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_5, __cloc));
140.2607 -+	  _M_data->_M_aday6 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_6, __cloc));
140.2608 -+	  _M_data->_M_aday7 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABDAY_7, __cloc));
140.2609 -+
140.2610 -+	  // Month names, starting with "C"'s January.
140.2611 -+	  _M_data->_M_month01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_1, __cloc));
140.2612 -+	  _M_data->_M_month02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_2, __cloc));
140.2613 -+	  _M_data->_M_month03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_3, __cloc));
140.2614 -+	  _M_data->_M_month04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_4, __cloc));
140.2615 -+	  _M_data->_M_month05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_5, __cloc));
140.2616 -+	  _M_data->_M_month06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_6, __cloc));
140.2617 -+	  _M_data->_M_month07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_7, __cloc));
140.2618 -+	  _M_data->_M_month08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_8, __cloc));
140.2619 -+	  _M_data->_M_month09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_9, __cloc));
140.2620 -+	  _M_data->_M_month10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_10, __cloc));
140.2621 -+	  _M_data->_M_month11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_11, __cloc));
140.2622 -+	  _M_data->_M_month12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WMON_12, __cloc));
140.2623 -+
140.2624 -+	  // Abbreviated month names, starting with "C"'s Jan.
140.2625 -+	  _M_data->_M_amonth01 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_1, __cloc));
140.2626 -+	  _M_data->_M_amonth02 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_2, __cloc));
140.2627 -+	  _M_data->_M_amonth03 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_3, __cloc));
140.2628 -+	  _M_data->_M_amonth04 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_4, __cloc));
140.2629 -+	  _M_data->_M_amonth05 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_5, __cloc));
140.2630 -+	  _M_data->_M_amonth06 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_6, __cloc));
140.2631 -+	  _M_data->_M_amonth07 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_7, __cloc));
140.2632 -+	  _M_data->_M_amonth08 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_8, __cloc));
140.2633 -+	  _M_data->_M_amonth09 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_9, __cloc));
140.2634 -+	  _M_data->_M_amonth10 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_10, __cloc));
140.2635 -+	  _M_data->_M_amonth11 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_11, __cloc));
140.2636 -+	  _M_data->_M_amonth12 = reinterpret_cast<wchar_t*>(__nl_langinfo_l(_NL_WABMON_12, __cloc));
140.2637 -+	}
140.2638 -+#endif // 0
140.2639 -+    }
140.2640 -+#endif
140.2641 -+}
140.2642 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.h gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.h
140.2643 ---- gcc-3.4.2-dist/libstdc++-v3/config/locale/uclibc/time_members.h	1969-12-31 18:00:00.000000000 -0600
140.2644 -+++ gcc-3.4.2/libstdc++-v3/config/locale/uclibc/time_members.h	2004-09-10 10:47:40.000000000 -0500
140.2645 -@@ -0,0 +1,68 @@
140.2646 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
140.2647 -+
140.2648 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
140.2649 -+//
140.2650 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2651 -+// software; you can redistribute it and/or modify it under the
140.2652 -+// terms of the GNU General Public License as published by the
140.2653 -+// Free Software Foundation; either version 2, or (at your option)
140.2654 -+// any later version.
140.2655 -+
140.2656 -+// This library is distributed in the hope that it will be useful,
140.2657 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2658 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2659 -+// GNU General Public License for more details.
140.2660 -+
140.2661 -+// You should have received a copy of the GNU General Public License along
140.2662 -+// with this library; see the file COPYING.  If not, write to the Free
140.2663 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2664 -+// USA.
140.2665 -+
140.2666 -+// As a special exception, you may use this file as part of a free software
140.2667 -+// library without restriction.  Specifically, if other files instantiate
140.2668 -+// templates or use macros or inline functions from this file, or you compile
140.2669 -+// this file and link it with other files to produce an executable, this
140.2670 -+// file does not by itself cause the resulting executable to be covered by
140.2671 -+// the GNU General Public License.  This exception does not however
140.2672 -+// invalidate any other reasons why the executable file might be covered by
140.2673 -+// the GNU General Public License.
140.2674 -+
140.2675 -+//
140.2676 -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
140.2677 -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
140.2678 -+//
140.2679 -+
140.2680 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
140.2681 -+
140.2682 -+  template<typename _CharT>
140.2683 -+    __timepunct<_CharT>::__timepunct(size_t __refs) 
140.2684 -+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
140.2685 -+    _M_name_timepunct(_S_get_c_name())
140.2686 -+    { _M_initialize_timepunct(); }
140.2687 -+
140.2688 -+  template<typename _CharT>
140.2689 -+    __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 
140.2690 -+    : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), 
140.2691 -+    _M_name_timepunct(_S_get_c_name())
140.2692 -+    { _M_initialize_timepunct(); }
140.2693 -+
140.2694 -+  template<typename _CharT>
140.2695 -+    __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
140.2696 -+				     size_t __refs) 
140.2697 -+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
140.2698 -+    _M_name_timepunct(__s)
140.2699 -+    { 
140.2700 -+      char* __tmp = new char[std::strlen(__s) + 1];
140.2701 -+      std::strcpy(__tmp, __s);
140.2702 -+      _M_name_timepunct = __tmp;
140.2703 -+      _M_initialize_timepunct(__cloc); 
140.2704 -+    }
140.2705 -+
140.2706 -+  template<typename _CharT>
140.2707 -+    __timepunct<_CharT>::~__timepunct()
140.2708 -+    { 
140.2709 -+      if (_M_name_timepunct != _S_get_c_name())
140.2710 -+	delete [] _M_name_timepunct;
140.2711 -+      delete _M_data; 
140.2712 -+      _S_destroy_c_locale(_M_c_locale_timepunct); 
140.2713 -+    }
140.2714 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_base.h
140.2715 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_base.h	1969-12-31 18:00:00.000000000 -0600
140.2716 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_base.h	2004-09-10 10:47:40.000000000 -0500
140.2717 -@@ -0,0 +1,58 @@
140.2718 -+// Locale support -*- C++ -*-
140.2719 -+
140.2720 -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003
140.2721 -+// Free Software Foundation, Inc.
140.2722 -+//
140.2723 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2724 -+// software; you can redistribute it and/or modify it under the
140.2725 -+// terms of the GNU General Public License as published by the
140.2726 -+// Free Software Foundation; either version 2, or (at your option)
140.2727 -+// any later version.
140.2728 -+
140.2729 -+// This library is distributed in the hope that it will be useful,
140.2730 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2731 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2732 -+// GNU General Public License for more details.
140.2733 -+
140.2734 -+// You should have received a copy of the GNU General Public License along
140.2735 -+// with this library; see the file COPYING.  If not, write to the Free
140.2736 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2737 -+// USA.
140.2738 -+
140.2739 -+// As a special exception, you may use this file as part of a free software
140.2740 -+// library without restriction.  Specifically, if other files instantiate
140.2741 -+// templates or use macros or inline functions from this file, or you compile
140.2742 -+// this file and link it with other files to produce an executable, this
140.2743 -+// file does not by itself cause the resulting executable to be covered by
140.2744 -+// the GNU General Public License.  This exception does not however
140.2745 -+// invalidate any other reasons why the executable file might be covered by
140.2746 -+// the GNU General Public License.
140.2747 -+
140.2748 -+//
140.2749 -+// ISO C++ 14882: 22.1  Locales
140.2750 -+//
140.2751 -+  
140.2752 -+// Information as gleaned from /usr/include/ctype.h
140.2753 -+  
140.2754 -+  struct ctype_base
140.2755 -+  {
140.2756 -+    // Note: In uClibc, the following two types depend on configuration.
140.2757 -+ 
140.2758 -+    // Non-standard typedefs.
140.2759 -+    typedef const __ctype_touplow_t* __to_type;
140.2760 -+
140.2761 -+    // NB: Offsets into ctype<char>::_M_table force a particular size
140.2762 -+    // on the mask type. Because of this, we don't use an enum.
140.2763 -+    typedef __ctype_mask_t	mask;   
140.2764 -+    static const mask upper    	= _ISupper;
140.2765 -+    static const mask lower 	= _ISlower;
140.2766 -+    static const mask alpha 	= _ISalpha;
140.2767 -+    static const mask digit 	= _ISdigit;
140.2768 -+    static const mask xdigit 	= _ISxdigit;
140.2769 -+    static const mask space 	= _ISspace;
140.2770 -+    static const mask print 	= _ISprint;
140.2771 -+    static const mask graph 	= _ISalpha | _ISdigit | _ISpunct;
140.2772 -+    static const mask cntrl 	= _IScntrl;
140.2773 -+    static const mask punct 	= _ISpunct;
140.2774 -+    static const mask alnum 	= _ISalpha | _ISdigit;
140.2775 -+  };
140.2776 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_inline.h
140.2777 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_inline.h	1969-12-31 18:00:00.000000000 -0600
140.2778 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_inline.h	2004-09-10 10:47:40.000000000 -0500
140.2779 -@@ -0,0 +1,69 @@
140.2780 -+// Locale support -*- C++ -*-
140.2781 -+
140.2782 -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
140.2783 -+//
140.2784 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2785 -+// software; you can redistribute it and/or modify it under the
140.2786 -+// terms of the GNU General Public License as published by the
140.2787 -+// Free Software Foundation; either version 2, or (at your option)
140.2788 -+// any later version.
140.2789 -+
140.2790 -+// This library is distributed in the hope that it will be useful,
140.2791 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2792 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2793 -+// GNU General Public License for more details.
140.2794 -+
140.2795 -+// You should have received a copy of the GNU General Public License along
140.2796 -+// with this library; see the file COPYING.  If not, write to the Free
140.2797 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2798 -+// USA.
140.2799 -+
140.2800 -+// As a special exception, you may use this file as part of a free software
140.2801 -+// library without restriction.  Specifically, if other files instantiate
140.2802 -+// templates or use macros or inline functions from this file, or you compile
140.2803 -+// this file and link it with other files to produce an executable, this
140.2804 -+// file does not by itself cause the resulting executable to be covered by
140.2805 -+// the GNU General Public License.  This exception does not however
140.2806 -+// invalidate any other reasons why the executable file might be covered by
140.2807 -+// the GNU General Public License.
140.2808 -+
140.2809 -+//
140.2810 -+// ISO C++ 14882: 22.1  Locales
140.2811 -+//
140.2812 -+  
140.2813 -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
140.2814 -+// functions go in ctype.cc
140.2815 -+  
140.2816 -+  bool
140.2817 -+  ctype<char>::
140.2818 -+  is(mask __m, char __c) const
140.2819 -+  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
140.2820 -+
140.2821 -+  const char*
140.2822 -+  ctype<char>::
140.2823 -+  is(const char* __low, const char* __high, mask* __vec) const
140.2824 -+  {
140.2825 -+    while (__low < __high)
140.2826 -+      *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
140.2827 -+    return __high;
140.2828 -+  }
140.2829 -+
140.2830 -+  const char*
140.2831 -+  ctype<char>::
140.2832 -+  scan_is(mask __m, const char* __low, const char* __high) const
140.2833 -+  {
140.2834 -+    while (__low < __high 
140.2835 -+	   && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
140.2836 -+      ++__low;
140.2837 -+    return __low;
140.2838 -+  }
140.2839 -+
140.2840 -+  const char*
140.2841 -+  ctype<char>::
140.2842 -+  scan_not(mask __m, const char* __low, const char* __high) const
140.2843 -+  {
140.2844 -+    while (__low < __high 
140.2845 -+	   && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
140.2846 -+      ++__low;
140.2847 -+    return __low;
140.2848 -+  }
140.2849 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h
140.2850 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/ctype_noninline.h	1969-12-31 18:00:00.000000000 -0600
140.2851 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h	2004-09-10 10:47:40.000000000 -0500
140.2852 -@@ -0,0 +1,92 @@
140.2853 -+// Locale support -*- C++ -*-
140.2854 -+
140.2855 -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
140.2856 -+// Free Software Foundation, Inc.
140.2857 -+//
140.2858 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2859 -+// software; you can redistribute it and/or modify it under the
140.2860 -+// terms of the GNU General Public License as published by the
140.2861 -+// Free Software Foundation; either version 2, or (at your option)
140.2862 -+// any later version.
140.2863 -+
140.2864 -+// This library is distributed in the hope that it will be useful,
140.2865 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2866 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2867 -+// GNU General Public License for more details.
140.2868 -+
140.2869 -+// You should have received a copy of the GNU General Public License along
140.2870 -+// with this library; see the file COPYING.  If not, write to the Free
140.2871 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2872 -+// USA.
140.2873 -+
140.2874 -+// As a special exception, you may use this file as part of a free software
140.2875 -+// library without restriction.  Specifically, if other files instantiate
140.2876 -+// templates or use macros or inline functions from this file, or you compile
140.2877 -+// this file and link it with other files to produce an executable, this
140.2878 -+// file does not by itself cause the resulting executable to be covered by
140.2879 -+// the GNU General Public License.  This exception does not however
140.2880 -+// invalidate any other reasons why the executable file might be covered by
140.2881 -+// the GNU General Public License.
140.2882 -+
140.2883 -+//
140.2884 -+// ISO C++ 14882: 22.1  Locales
140.2885 -+//
140.2886 -+  
140.2887 -+// Information as gleaned from /usr/include/ctype.h
140.2888 -+
140.2889 -+  const ctype_base::mask*
140.2890 -+  ctype<char>::classic_table() throw()
140.2891 -+  { return __C_ctype_b; }
140.2892 -+
140.2893 -+  ctype<char>::ctype(__c_locale, const mask* __table, bool __del, 
140.2894 -+		     size_t __refs) 
140.2895 -+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
140.2896 -+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
140.2897 -+  {
140.2898 -+    _M_toupper = __C_ctype_toupper;
140.2899 -+    _M_tolower = __C_ctype_tolower;
140.2900 -+    _M_table = __table ? __table : __C_ctype_b;
140.2901 -+    memset(_M_widen, 0, sizeof(_M_widen));
140.2902 -+    memset(_M_narrow, 0, sizeof(_M_narrow));
140.2903 -+  }
140.2904 -+
140.2905 -+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
140.2906 -+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
140.2907 -+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
140.2908 -+  {
140.2909 -+    _M_toupper = __C_ctype_toupper;
140.2910 -+    _M_tolower = __C_ctype_tolower;
140.2911 -+    _M_table = __table ? __table : __C_ctype_b;
140.2912 -+    memset(_M_widen, 0, sizeof(_M_widen));
140.2913 -+    memset(_M_narrow, 0, sizeof(_M_narrow));
140.2914 -+  }
140.2915 -+
140.2916 -+  char
140.2917 -+  ctype<char>::do_toupper(char __c) const
140.2918 -+  { return _M_toupper[static_cast<unsigned char>(__c)]; }
140.2919 -+
140.2920 -+  const char*
140.2921 -+  ctype<char>::do_toupper(char* __low, const char* __high) const
140.2922 -+  {
140.2923 -+    while (__low < __high)
140.2924 -+      {
140.2925 -+	*__low = _M_toupper[static_cast<unsigned char>(*__low)];
140.2926 -+	++__low;
140.2927 -+      }
140.2928 -+    return __high;
140.2929 -+  }
140.2930 -+
140.2931 -+  char
140.2932 -+  ctype<char>::do_tolower(char __c) const
140.2933 -+  { return _M_tolower[static_cast<unsigned char>(__c)]; }
140.2934 -+
140.2935 -+  const char* 
140.2936 -+  ctype<char>::do_tolower(char* __low, const char* __high) const
140.2937 -+  {
140.2938 -+    while (__low < __high)
140.2939 -+      {
140.2940 -+	*__low = _M_tolower[static_cast<unsigned char>(*__low)];
140.2941 -+	++__low;
140.2942 -+      }
140.2943 -+    return __high;
140.2944 -+  }
140.2945 -diff -urN gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/os_defines.h gcc-3.4.2/libstdc++-v3/config/os/uclibc/os_defines.h
140.2946 ---- gcc-3.4.2-dist/libstdc++-v3/config/os/uclibc/os_defines.h	1969-12-31 18:00:00.000000000 -0600
140.2947 -+++ gcc-3.4.2/libstdc++-v3/config/os/uclibc/os_defines.h	2004-09-10 10:47:40.000000000 -0500
140.2948 -@@ -0,0 +1,44 @@
140.2949 -+// Specific definitions for GNU/Linux  -*- C++ -*-
140.2950 -+
140.2951 -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
140.2952 -+//
140.2953 -+// This file is part of the GNU ISO C++ Library.  This library is free
140.2954 -+// software; you can redistribute it and/or modify it under the
140.2955 -+// terms of the GNU General Public License as published by the
140.2956 -+// Free Software Foundation; either version 2, or (at your option)
140.2957 -+// any later version.
140.2958 -+
140.2959 -+// This library is distributed in the hope that it will be useful,
140.2960 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
140.2961 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140.2962 -+// GNU General Public License for more details.
140.2963 -+
140.2964 -+// You should have received a copy of the GNU General Public License along
140.2965 -+// with this library; see the file COPYING.  If not, write to the Free
140.2966 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
140.2967 -+// USA.
140.2968 -+
140.2969 -+// As a special exception, you may use this file as part of a free software
140.2970 -+// library without restriction.  Specifically, if other files instantiate
140.2971 -+// templates or use macros or inline functions from this file, or you compile
140.2972 -+// this file and link it with other files to produce an executable, this
140.2973 -+// file does not by itself cause the resulting executable to be covered by
140.2974 -+// the GNU General Public License.  This exception does not however
140.2975 -+// invalidate any other reasons why the executable file might be covered by
140.2976 -+// the GNU General Public License.
140.2977 -+
140.2978 -+#ifndef _GLIBCXX_OS_DEFINES
140.2979 -+#define _GLIBCXX_OS_DEFINES 1
140.2980 -+
140.2981 -+// System-specific #define, typedefs, corrections, etc, go here.  This
140.2982 -+// file will come before all others.
140.2983 -+
140.2984 -+// This keeps isanum, et al from being propagated as macros.
140.2985 -+#define __NO_CTYPE 1
140.2986 -+
140.2987 -+#include <features.h>
140.2988 -+
140.2989 -+// We must not see the optimized string functions GNU libc defines.
140.2990 -+#define __NO_STRING_INLINES
140.2991 -+
140.2992 -+#endif
140.2993 -diff -urN gcc-3.4.2-dist/libstdc++-v3/configure gcc-3.4.2/libstdc++-v3/configure
140.2994 ---- gcc-3.4.2-dist/libstdc++-v3/configure	2004-08-13 15:44:04.000000000 -0500
140.2995 -+++ gcc-3.4.2/libstdc++-v3/configure	2004-09-10 10:47:40.000000000 -0500
140.2996 -@@ -3878,6 +3878,11 @@
140.2997 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
140.2998 -   ;;
140.2999 - 
140.3000 -+linux-uclibc*)
140.3001 -+  lt_cv_deplibs_check_method=pass_all
140.3002 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
140.3003 -+  ;;
140.3004 -+
140.3005 - netbsd*)
140.3006 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
140.3007 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
140.3008 -@@ -5479,7 +5479,7 @@
140.3009 -   enableval="$enable_clocale"
140.3010 - 
140.3011 -       case "$enableval" in
140.3012 --       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
140.3013 -+       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
140.3014 -        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
140.3015 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
140.3016 -    { (exit 1); exit 1; }; } ;;
140.3017 -@@ -5545,6 +5550,9 @@
140.3018 -   # Default to "generic".
140.3019 -   if test $enable_clocale_flag = auto; then
140.3020 -     case x${target_os} in
140.3021 -+      xlinux-uclibc*)
140.3022 -+	enable_clocale_flag=uclibc
140.3023 -+	;;
140.3024 -       xlinux* | xgnu* | xkfreebsd*-gnu | xknetbsd*-gnu)
140.3025 -         cat >conftest.$ac_ext <<_ACEOF
140.3026 - #line $LINENO "configure"
140.3027 -@@ -5759,6 +5767,77 @@
140.3028 -       CTIME_CC=config/locale/generic/time_members.cc
140.3029 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
140.3030 -       ;;
140.3031 -+    uclibc)
140.3032 -+      echo "$as_me:$LINENO: result: uclibc" >&5
140.3033 -+echo "${ECHO_T}uclibc" >&6
140.3034 -+
140.3035 -+      # Declare intention to use gettext, and add support for specific
140.3036 -+      # languages.
140.3037 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
140.3038 -+      ALL_LINGUAS="de fr"
140.3039 -+
140.3040 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
140.3041 -+      # Extract the first word of "msgfmt", so it can be a program name with args.
140.3042 -+set dummy msgfmt; ac_word=$2
140.3043 -+echo "$as_me:$LINENO: checking for $ac_word" >&5
140.3044 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
140.3045 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
140.3046 -+  echo $ECHO_N "(cached) $ECHO_C" >&6
140.3047 -+else
140.3048 -+  if test -n "$check_msgfmt"; then
140.3049 -+  ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
140.3050 -+else
140.3051 -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
140.3052 -+for as_dir in $PATH
140.3053 -+do
140.3054 -+  IFS=$as_save_IFS
140.3055 -+  test -z "$as_dir" && as_dir=.
140.3056 -+  for ac_exec_ext in '' $ac_executable_extensions; do
140.3057 -+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
140.3058 -+    ac_cv_prog_check_msgfmt="yes"
140.3059 -+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
140.3060 -+    break 2
140.3061 -+  fi
140.3062 -+done
140.3063 -+done
140.3064 -+
140.3065 -+  test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
140.3066 -+fi
140.3067 -+fi
140.3068 -+check_msgfmt=$ac_cv_prog_check_msgfmt
140.3069 -+if test -n "$check_msgfmt"; then
140.3070 -+  echo "$as_me:$LINENO: result: $check_msgfmt" >&5
140.3071 -+echo "${ECHO_T}$check_msgfmt" >&6
140.3072 -+else
140.3073 -+  echo "$as_me:$LINENO: result: no" >&5
140.3074 -+echo "${ECHO_T}no" >&6
140.3075 -+fi
140.3076 -+
140.3077 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
140.3078 -+        USE_NLS=yes
140.3079 -+      fi
140.3080 -+      # Export the build objects.
140.3081 -+      for ling in $ALL_LINGUAS; do \
140.3082 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
140.3083 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
140.3084 -+      done
140.3085 -+
140.3086 -+
140.3087 -+
140.3088 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
140.3089 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
140.3090 -+      CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
140.3091 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
140.3092 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
140.3093 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
140.3094 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
140.3095 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
140.3096 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
140.3097 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
140.3098 -+      CTIME_H=config/locale/uclibc/time_members.h
140.3099 -+      CTIME_CC=config/locale/uclibc/time_members.cc
140.3100 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
140.3101 -+      ;;
140.3102 -   esac
140.3103 - 
140.3104 -   # This is where the testsuite looks for locale catalogs, using the
140.3105 -diff -urN gcc-3.4.2-dist/libstdc++-v3/configure.host gcc-3.4.2/libstdc++-v3/configure.host
140.3106 ---- gcc-3.4.2-dist/libstdc++-v3/configure.host	2004-08-27 14:52:30.000000000 -0500
140.3107 -+++ gcc-3.4.2/libstdc++-v3/configure.host	2004-09-10 10:47:40.000000000 -0500
140.3108 -@@ -217,6 +217,12 @@
140.3109 -     ;;
140.3110 - esac
140.3111 - 
140.3112 -+# Override for uClibc since linux-uclibc gets mishandled above.
140.3113 -+case "${host_os}" in
140.3114 -+  *-uclibc*)
140.3115 -+    os_include_dir="os/uclibc"
140.3116 -+    ;;
140.3117 -+esac
140.3118 - 
140.3119 - # Set any OS-dependent and CPU-dependent bits.
140.3120 - # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
140.3121 -diff -urN gcc-3.4.2-dist/libstdc++-v3/crossconfig.m4 gcc-3.4.2/libstdc++-v3/crossconfig.m4
140.3122 ---- gcc-3.4.2-dist/libstdc++-v3/crossconfig.m4	2004-07-06 20:23:49.000000000 -0500
140.3123 -+++ gcc-3.4.2/libstdc++-v3/crossconfig.m4	2004-09-10 10:47:40.000000000 -0500
140.3124 -@@ -138,6 +138,99 @@
140.3125 - 	;;
140.3126 -     esac
140.3127 -     ;;
140.3128 -+  *-uclibc*)
140.3129 -+# Temporary hack until we implement the float versions of the libm funcs
140.3130 -+    AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
140.3131 -+      machine/endian.h machine/param.h sys/machine.h sys/types.h \
140.3132 -+      fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
140.3133 -+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
140.3134 -+    AC_SUBST(SECTION_FLAGS)
140.3135 -+    GLIBCXX_CHECK_LINKER_FEATURES
140.3136 -+    GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
140.3137 -+    GLIBCXX_CHECK_WCHAR_T_SUPPORT
140.3138 -+
140.3139 -+    # For LFS.
140.3140 -+    AC_DEFINE(HAVE_INT64_T)
140.3141 -+    case "$target" in
140.3142 -+      *-uclinux*)
140.3143 -+        # Don't enable LFS with uClinux
140.3144 -+        ;;
140.3145 -+      *)
140.3146 -+        AC_DEFINE(_GLIBCXX_USE_LFS)
140.3147 -+    esac
140.3148 -+
140.3149 -+    # For showmanyc_helper().
140.3150 -+    AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
140.3151 -+    GLIBCXX_CHECK_POLL
140.3152 -+    GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
140.3153 -+
140.3154 -+    # For xsputn_2().
140.3155 -+    AC_CHECK_HEADERS(sys/uio.h)
140.3156 -+    GLIBCXX_CHECK_WRITEV
140.3157 -+
140.3158 -+#     AC_DEFINE(HAVE_ACOSF)
140.3159 -+#     AC_DEFINE(HAVE_ASINF)
140.3160 -+#     AC_DEFINE(HAVE_ATANF)
140.3161 -+#     AC_DEFINE(HAVE_ATAN2F)
140.3162 -+    AC_DEFINE(HAVE_CEILF)
140.3163 -+    AC_DEFINE(HAVE_COPYSIGN)
140.3164 -+#     AC_DEFINE(HAVE_COPYSIGNF)
140.3165 -+#     AC_DEFINE(HAVE_COSF)
140.3166 -+#     AC_DEFINE(HAVE_COSHF)
140.3167 -+#     AC_DEFINE(HAVE_EXPF)
140.3168 -+#     AC_DEFINE(HAVE_FABSF)
140.3169 -+    AC_DEFINE(HAVE_FINITE)
140.3170 -+    AC_DEFINE(HAVE_FINITEF)
140.3171 -+    AC_DEFINE(HAVE_FLOORF)
140.3172 -+#     AC_DEFINE(HAVE_FMODF)
140.3173 -+#     AC_DEFINE(HAVE_FREXPF)
140.3174 -+    AC_DEFINE(HAVE_HYPOT)
140.3175 -+#     AC_DEFINE(HAVE_HYPOTF)
140.3176 -+    AC_DEFINE(HAVE_ISINF)
140.3177 -+    AC_DEFINE(HAVE_ISINFF)
140.3178 -+    AC_DEFINE(HAVE_ISNAN)
140.3179 -+    AC_DEFINE(HAVE_ISNANF)
140.3180 -+#     AC_DEFINE(HAVE_LOGF)
140.3181 -+#     AC_DEFINE(HAVE_LOG10F)
140.3182 -+#     AC_DEFINE(HAVE_MODFF)
140.3183 -+#     AC_DEFINE(HAVE_SINF)
140.3184 -+#     AC_DEFINE(HAVE_SINHF)
140.3185 -+#     AC_DEFINE(HAVE_SINCOS)
140.3186 -+#     AC_DEFINE(HAVE_SINCOSF)
140.3187 -+    AC_DEFINE(HAVE_SQRTF)
140.3188 -+#     AC_DEFINE(HAVE_TANF)
140.3189 -+#     AC_DEFINE(HAVE_TANHF)
140.3190 -+    if test x"long_double_math_on_this_cpu" = x"yes"; then
140.3191 -+      AC_MSG_ERROR([long_double_math_on_this_cpu is yes!])
140.3192 -+#       AC_DEFINE(HAVE_ACOSL)
140.3193 -+#       AC_DEFINE(HAVE_ASINL)
140.3194 -+#       AC_DEFINE(HAVE_ATANL)
140.3195 -+#       AC_DEFINE(HAVE_ATAN2L)
140.3196 -+#       AC_DEFINE(HAVE_CEILL)
140.3197 -+#       AC_DEFINE(HAVE_COPYSIGNL)
140.3198 -+#       AC_DEFINE(HAVE_COSL)
140.3199 -+#       AC_DEFINE(HAVE_COSHL)
140.3200 -+#       AC_DEFINE(HAVE_EXPL)
140.3201 -+#       AC_DEFINE(HAVE_FABSL)
140.3202 -+#       AC_DEFINE(HAVE_FINITEL)
140.3203 -+#       AC_DEFINE(HAVE_FLOORL)
140.3204 -+#       AC_DEFINE(HAVE_FMODL)
140.3205 -+#       AC_DEFINE(HAVE_FREXPL)
140.3206 -+#       AC_DEFINE(HAVE_HYPOTL)
140.3207 -+#       AC_DEFINE(HAVE_ISINFL)
140.3208 -+#       AC_DEFINE(HAVE_ISNANL)
140.3209 -+#       AC_DEFINE(HAVE_LOGL)
140.3210 -+#       AC_DEFINE(HAVE_LOG10L)
140.3211 -+#       AC_DEFINE(HAVE_MODFL)
140.3212 -+#       AC_DEFINE(HAVE_POWL)
140.3213 -+#       AC_DEFINE(HAVE_SINL)
140.3214 -+#       AC_DEFINE(HAVE_SINHL)
140.3215 -+#       AC_DEFINE(HAVE_SINCOSL)
140.3216 -+#       AC_DEFINE(HAVE_SQRTL)
140.3217 -+#       AC_DEFINE(HAVE_TANL)
140.3218 -+#       AC_DEFINE(HAVE_TANHL)
140.3219 -+    fi
140.3220 -+    ;;
140.3221 -   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
140.3222 -     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
140.3223 -       machine/endian.h machine/param.h sys/machine.h sys/types.h \
140.3224 -@@ -152,7 +245,7 @@
140.3225 -     AC_DEFINE(HAVE_INT64_T)
140.3226 -     case "$target" in
140.3227 -       *-uclinux*)
140.3228 --        # Don't enable LFS with uClibc
140.3229 -+        # Don't enable LFS with uClinux
140.3230 -         ;;
140.3231 -       *)
140.3232 -         AC_DEFINE(_GLIBCXX_USE_LFS)
140.3233 -diff -urN gcc-3.4.2-dist/libstdc++-v3/include/c_compatibility/wchar.h gcc-3.4.2/libstdc++-v3/include/c_compatibility/wchar.h
140.3234 ---- gcc-3.4.2-dist/libstdc++-v3/include/c_compatibility/wchar.h	2003-12-08 21:51:45.000000000 -0600
140.3235 -+++ gcc-3.4.2/libstdc++-v3/include/c_compatibility/wchar.h	2004-09-10 10:47:40.000000000 -0500
140.3236 -@@ -101,7 +101,9 @@
140.3237 - using std::wmemcpy;
140.3238 - using std::wmemmove;
140.3239 - using std::wmemset;
140.3240 -+#if _GLIBCXX_HAVE_WCSFTIME
140.3241 - using std::wcsftime;
140.3242 -+#endif
140.3243 - 
140.3244 - #if _GLIBCXX_USE_C99
140.3245 - using std::wcstold;
140.3246 -diff -urN gcc-3.4.2-dist/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.4.2/libstdc++-v3/include/c_std/std_cwchar.h
140.3247 ---- gcc-3.4.2-dist/libstdc++-v3/include/c_std/std_cwchar.h	2004-07-20 03:52:12.000000000 -0500
140.3248 -+++ gcc-3.4.2/libstdc++-v3/include/c_std/std_cwchar.h	2004-09-10 10:47:40.000000000 -0500
140.3249 -@@ -179,7 +179,9 @@
140.3250 -   using ::wcscoll;
140.3251 -   using ::wcscpy;
140.3252 -   using ::wcscspn;
140.3253 -+#if _GLIBCXX_HAVE_WCSFTIME
140.3254 -   using ::wcsftime;
140.3255 -+#endif
140.3256 -   using ::wcslen;
140.3257 -   using ::wcsncat;
140.3258 -   using ::wcsncmp;
   141.1 --- a/patches/gcc/3.4.4/300-libstdc++-pic.patch	Tue Aug 14 19:32:22 2007 +0000
   141.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.3 @@ -1,46 +0,0 @@
   141.4 -diff -dur gcc-3.4.4.orig/libstdc++-v3/src/Makefile.am gcc-3.4.4/libstdc++-v3/src/Makefile.am
   141.5 ---- gcc-3.4.4.orig/libstdc++-v3/src/Makefile.am	2004-04-16 21:08:35.000000000 +0200
   141.6 -+++ gcc-3.4.4/libstdc++-v3/src/Makefile.am	2007-02-14 17:24:53.000000000 +0100
   141.7 -@@ -209,6 +209,9 @@
   141.8 - CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
   141.9 - 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
  141.10 - 
  141.11 -+install-exec-local:
  141.12 -+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
  141.13 -+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
  141.14 - 
  141.15 - # Added bits to build debug library.
  141.16 - if GLIBCXX_BUILD_DEBUG
  141.17 -diff -dur gcc-3.4.4.orig/libstdc++-v3/src/Makefile.in gcc-3.4.4/libstdc++-v3/src/Makefile.in
  141.18 ---- gcc-3.4.4.orig/libstdc++-v3/src/Makefile.in	2004-04-16 21:08:35.000000000 +0200
  141.19 -+++ gcc-3.4.4/libstdc++-v3/src/Makefile.in	2007-02-14 17:25:18.000000000 +0100
  141.20 -@@ -592,7 +592,7 @@
  141.21 - 
  141.22 - install-data-am: install-data-local
  141.23 - 
  141.24 --install-exec-am: install-toolexeclibLTLIBRARIES
  141.25 -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
  141.26 - 
  141.27 - install-info: install-info-am
  141.28 - 
  141.29 -@@ -625,6 +625,7 @@
  141.30 - 	distclean-tags distdir dvi dvi-am info info-am install \
  141.31 - 	install-am install-data install-data-am install-data-local \
  141.32 - 	install-exec install-exec-am install-info install-info-am \
  141.33 -+	install-exec-local \
  141.34 - 	install-man install-strip install-toolexeclibLTLIBRARIES \
  141.35 - 	installcheck installcheck-am installdirs maintainer-clean \
  141.36 - 	maintainer-clean-generic mostlyclean mostlyclean-compile \
  141.37 -@@ -709,6 +710,11 @@
  141.38 - install_debug:
  141.39 - 	(cd ${debugdir} && $(MAKE) \
  141.40 - 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
  141.41 -+
  141.42 -+install-exec-local:
  141.43 -+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
  141.44 -+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
  141.45 -+
  141.46 - # Tell versions [3.59,3.63) of GNU make to not export all variables.
  141.47 - # Otherwise a system limit (for SysV at least) may be exceeded.
  141.48 - .NOEXPORT:
  141.49 -Only in gcc-3.4.4/libstdc++-v3/src: Makefile.in.orig
   142.1 --- a/patches/gcc/3.4.4/600-gcc34-arm-ldm-peephole.patch	Tue Aug 14 19:32:22 2007 +0000
   142.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   142.3 @@ -1,65 +0,0 @@
   142.4 ---- gcc-3.4.0/gcc/config/arm/arm.md.arm-ldm-peephole	2004-01-13 08:24:37.000000000 -0500
   142.5 -+++ gcc-3.4.0/gcc/config/arm/arm.md	2004-04-24 18:18:04.000000000 -0400
   142.6 -@@ -8810,13 +8810,16 @@
   142.7 -    (set_attr "length" "4,8,8")]
   142.8 - )
   142.9 - 
  142.10 -+; Try to convert LDR+LDR+arith into [add+]LDM+arith
  142.11 -+; On XScale, LDM is always slower than two LDRs, so only do this if
  142.12 -+; optimising for size.
  142.13 - (define_insn "*arith_adjacentmem"
  142.14 -   [(set (match_operand:SI 0 "s_register_operand" "=r")
  142.15 - 	(match_operator:SI 1 "shiftable_operator"
  142.16 - 	 [(match_operand:SI 2 "memory_operand" "m")
  142.17 - 	  (match_operand:SI 3 "memory_operand" "m")]))
  142.18 -    (clobber (match_scratch:SI 4 "=r"))]
  142.19 --  "TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])"
  142.20 -+  "TARGET_ARM && (!arm_tune_xscale || optimize_size) && adjacent_mem_locations (operands[2], operands[3])"
  142.21 -   "*
  142.22 -   {
  142.23 -     rtx ldm[3];
  142.24 -@@ -8851,6 +8854,8 @@
  142.25 -       }
  142.26 -    if (val1 && val2)
  142.27 -       {
  142.28 -+	/* This would be a loss on a Harvard core, but adjacent_mem_locations()
  142.29 -+	   will prevent it from happening.  */
  142.30 - 	rtx ops[3];
  142.31 - 	ldm[0] = ops[0] = operands[4];
  142.32 - 	ops[1] = XEXP (XEXP (operands[2], 0), 0);
  142.33 ---- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm-peephole	2004-04-24 18:16:25.000000000 -0400
  142.34 -+++ gcc-3.4.0/gcc/config/arm/arm.c	2004-04-24 18:18:04.000000000 -0400
  142.35 -@@ -4838,6 +4841,11 @@
  142.36 -       *load_offset = unsorted_offsets[order[0]];
  142.37 -     }
  142.38 - 
  142.39 -+  /* For XScale a two-word LDM is a performance loss, so only do this if
  142.40 -+     size is more important.  See comments in arm_gen_load_multiple.  */
  142.41 -+  if (nops == 2 && arm_tune_xscale && !optimize_size)
  142.42 -+    return 0;
  142.43 -+
  142.44 -   if (unsorted_offsets[order[0]] == 0)
  142.45 -     return 1; /* ldmia */
  142.46 - 
  142.47 -@@ -5064,6 +5072,11 @@
  142.48 -       *load_offset = unsorted_offsets[order[0]];
  142.49 -     }
  142.50 - 
  142.51 -+  /* For XScale a two-word LDM is a performance loss, so only do this if
  142.52 -+     size is more important.  See comments in arm_gen_load_multiple.  */
  142.53 -+  if (nops == 2 && arm_tune_xscale && !optimize_size)
  142.54 -+    return 0;
  142.55 -+
  142.56 -   if (unsorted_offsets[order[0]] == 0)
  142.57 -     return 1; /* stmia */
  142.58 - 
  142.59 ---- gcc-3.4.0/gcc/genpeep.c.arm-ldm-peephole	2003-07-05 01:27:22.000000000 -0400
  142.60 -+++ gcc-3.4.0/gcc/genpeep.c	2004-04-24 18:18:04.000000000 -0400
  142.61 -@@ -381,6 +381,7 @@
  142.62 -   printf ("#include \"recog.h\"\n");
  142.63 -   printf ("#include \"except.h\"\n\n");
  142.64 -   printf ("#include \"function.h\"\n\n");
  142.65 -+  printf ("#include \"flags.h\"\n\n");
  142.66 - 
  142.67 -   printf ("#ifdef HAVE_peephole\n");
  142.68 -   printf ("extern rtx peep_operand[];\n\n");
   143.1 --- a/patches/gcc/3.4.4/601-gcc34-arm-ldm-peephole2.patch	Tue Aug 14 19:32:22 2007 +0000
   143.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   143.3 @@ -1,42 +0,0 @@
   143.4 -The 30_all_gcc34-arm-ldm-peephole.patch from Debian was conflicting 
   143.5 -with the newer 36_all_pr16201-fix.patch, so i cut out the hunk from 
   143.6 -it that was causing problems and grabbed an updated version from 
   143.7 -upstream cvs.
   143.8 -
   143.9 -Index: gcc/config/arm/arm.c
  143.10 -===================================================================
  143.11 -RCS file: /cvsroot/gcc/gcc/gcc/config/arm/arm.c,v
  143.12 -retrieving revision 1.432
  143.13 -retrieving revision 1.433
  143.14 -diff -u -r1.432 -r1.433
  143.15 ---- gcc-3.4.4/gcc/config/arm/arm.c	29 Mar 2005 03:00:23 -0000	1.432
  143.16 -+++ gcc-3.4.4/gcc/config/arm/arm.c	1 Apr 2005 11:02:22 -0000	1.433
  143.17 -@@ -5139,6 +5139,10 @@
  143.18 - int
  143.19 - adjacent_mem_locations (rtx a, rtx b)
  143.20 - {
  143.21 -+  /* We don't guarantee to preserve the order of these memory refs.  */
  143.22 -+  if (volatile_refs_p (a) || volatile_refs_p (b))
  143.23 -+    return 0;
  143.24 -+
  143.25 -   if ((GET_CODE (XEXP (a, 0)) == REG
  143.26 -        || (GET_CODE (XEXP (a, 0)) == PLUS
  143.27 - 	   && GET_CODE (XEXP (XEXP (a, 0), 1)) == CONST_INT))
  143.28 -@@ -5178,6 +5182,17 @@
  143.29 - 	return 0;
  143.30 - 
  143.31 -       val_diff = val1 - val0;
  143.32 -+
  143.33 -+      if (arm_ld_sched)
  143.34 -+	{
  143.35 -+	  /* If the target has load delay slots, then there's no benefit
  143.36 -+	     to using an ldm instruction unless the offset is zero and
  143.37 -+	     we are optimizing for size.  */
  143.38 -+	  return (optimize_size && (REGNO (reg0) == REGNO (reg1))
  143.39 -+		  && (val0 == 0 || val1 == 0 || val0 == 4 || val1 == 4)
  143.40 -+		  && (val_diff == 4 || val_diff == -4));
  143.41 -+	}
  143.42 -+
  143.43 -       return ((REGNO (reg0) == REGNO (reg1))
  143.44 - 	      && (val_diff == 4 || val_diff == -4));
  143.45 -     }
   144.1 --- a/patches/gcc/3.4.4/601-gcc34-arm-ldm.patch	Tue Aug 14 19:32:22 2007 +0000
   144.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.3 @@ -1,119 +0,0 @@
   144.4 ---- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm	2004-02-27 09:51:05.000000000 -0500
   144.5 -+++ gcc-3.4.0/gcc/config/arm/arm.c	2004-04-24 18:16:25.000000000 -0400
   144.6 -@@ -8520,6 +8520,26 @@
   144.7 -   return_used_this_function = 0;  
   144.8 - }
   144.9 - 
  144.10 -+/* Return the number (counting from 0) of
  144.11 -+   the least significant set bit in MASK.  */
  144.12 -+
  144.13 -+#ifdef __GNUC__
  144.14 -+inline
  144.15 -+#endif
  144.16 -+static int
  144.17 -+number_of_first_bit_set (mask)
  144.18 -+     int mask;
  144.19 -+{
  144.20 -+  int bit;
  144.21 -+
  144.22 -+  for (bit = 0;
  144.23 -+       (mask & (1 << bit)) == 0;
  144.24 -+       ++bit)
  144.25 -+    continue;
  144.26 -+
  144.27 -+  return bit;
  144.28 -+}
  144.29 -+
  144.30 - const char *
  144.31 - arm_output_epilogue (rtx sibling)
  144.32 - {
  144.33 -@@ -8753,27 +8773,47 @@
  144.34 - 	  saved_regs_mask |=   (1 << PC_REGNUM);
  144.35 - 	}
  144.36 - 
  144.37 --      /* Load the registers off the stack.  If we only have one register
  144.38 --	 to load use the LDR instruction - it is faster.  */
  144.39 --      if (saved_regs_mask == (1 << LR_REGNUM))
  144.40 --	{
  144.41 --	  /* The exception handler ignores the LR, so we do
  144.42 --	     not really need to load it off the stack.  */
  144.43 --	  if (eh_ofs)
  144.44 --	    asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
  144.45 --	  else
  144.46 --	    asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
  144.47 --	}
  144.48 --      else if (saved_regs_mask)
  144.49 -+      if (saved_regs_mask)
  144.50 - 	{
  144.51 --	  if (saved_regs_mask & (1 << SP_REGNUM))
  144.52 --	    /* Note - write back to the stack register is not enabled
  144.53 --	       (ie "ldmfd sp!...").  We know that the stack pointer is
  144.54 --	       in the list of registers and if we add writeback the
  144.55 --	       instruction becomes UNPREDICTABLE.  */
  144.56 --	    print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
  144.57 -+	  /* Load the registers off the stack.  If we only have one register
  144.58 -+	     to load use the LDR instruction - it is faster.  */
  144.59 -+	  if (bit_count (saved_regs_mask) == 1)
  144.60 -+	    {
  144.61 -+	      int reg = number_of_first_bit_set (saved_regs_mask);
  144.62 -+
  144.63 -+	      switch (reg)
  144.64 -+		{
  144.65 -+		case SP_REGNUM:
  144.66 -+		  /* Mustn't use base writeback when loading SP.  */
  144.67 -+		  asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM);
  144.68 -+		  break;
  144.69 -+		  
  144.70 -+		case LR_REGNUM:
  144.71 -+		  if (eh_ofs)
  144.72 -+		    {
  144.73 -+		      /* The exception handler ignores the LR, so we do
  144.74 -+			 not really need to load it off the stack.  */
  144.75 -+		      asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
  144.76 -+		      break;
  144.77 -+		    }
  144.78 -+		  /* else fall through */
  144.79 -+		  
  144.80 -+		default:
  144.81 -+		  asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM);
  144.82 -+		  break;
  144.83 -+		}
  144.84 -+	    }
  144.85 - 	  else
  144.86 --	    print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
  144.87 -+	    {
  144.88 -+	      if (saved_regs_mask & (1 << SP_REGNUM))
  144.89 -+		/* Note - write back to the stack register is not enabled
  144.90 -+		   (ie "ldmfd sp!...").  We know that the stack pointer is
  144.91 -+		   in the list of registers and if we add writeback the
  144.92 -+		   instruction becomes UNPREDICTABLE.  */
  144.93 -+		print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
  144.94 -+	      else
  144.95 -+		print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
  144.96 -+	    }
  144.97 - 	}
  144.98 - 
  144.99 -       if (current_function_pretend_args_size)
 144.100 -@@ -11401,22 +11441,6 @@
 144.101 -     }
 144.102 - }
 144.103 - 
 144.104 --/* Return the number (counting from 0) of
 144.105 --   the least significant set bit in MASK.  */
 144.106 --
 144.107 --inline static int
 144.108 --number_of_first_bit_set (int mask)
 144.109 --{
 144.110 --  int bit;
 144.111 --
 144.112 --  for (bit = 0;
 144.113 --       (mask & (1 << bit)) == 0;
 144.114 --       ++bit)
 144.115 --    continue;
 144.116 --
 144.117 --  return bit;
 144.118 --}
 144.119 --
 144.120 - /* Generate code to return from a thumb function.
 144.121 -    If 'reg_containing_return_addr' is -1, then the return address is
 144.122 -    actually on the stack, at the stack pointer.  */
   145.1 --- a/patches/gcc/3.4.4/602-sdk-libstdc++-includes.patch	Tue Aug 14 19:32:22 2007 +0000
   145.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.3 @@ -1,22 +0,0 @@
   145.4 ---- gcc-3.4.1/libstdc++-v3/libmath/Makefile.am~	2003-08-27 22:29:42.000000000 +0100
   145.5 -+++ gcc-3.4.1/libstdc++-v3/libmath/Makefile.am	2004-07-22 16:41:45.152130128 +0100
   145.6 -@@ -32,7 +32,7 @@
   145.7 - 
   145.8 - libmath_la_SOURCES = stubs.c
   145.9 - 
  145.10 --AM_CPPFLAGS = $(CANADIAN_INCLUDES)
  145.11 -+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
  145.12 - 
  145.13 - # Only compiling "C" sources in this directory.
  145.14 - LIBTOOL = @LIBTOOL@ --tag CC
  145.15 ---- gcc-3.4.1/libstdc++-v3/fragment.am.old	2004-07-22 18:24:58.024083656 +0100
  145.16 -+++ gcc-3.4.1/libstdc++-v3/fragment.am	2004-07-22 18:24:59.019932264 +0100
  145.17 -@@ -18,7 +18,7 @@
  145.18 - 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
  145.19 - 
  145.20 - # -I/-D flags to pass when compiling.
  145.21 --AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
  145.22 -+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
  145.23 - 
  145.24 - 
  145.25 - 
   146.1 --- a/patches/gcc/3.4.4/700-pr15068-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   146.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.3 @@ -1,44 +0,0 @@
   146.4 -See http://gcc.gnu.org/PR15068
   146.5 -
   146.6 -Fixes error
   146.7 -
   146.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
   146.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
  146.10 -Please submit a full bug report,
  146.11 -with preprocessed source if appropriate.
  146.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
  146.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
  146.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
  146.15 -make[1]: *** [math/others] Error 2
  146.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
  146.17 -make: *** [all] Error 2
  146.18 -
  146.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
  146.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
  146.21 -
  146.22 ---- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
  146.23 -+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
  146.24 -@@ -1878,6 +1878,7 @@
  146.25 - 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
  146.26 - 	  rtx cond_true = XEXP (set_src, 0);
  146.27 - 	  rtx reg = XEXP (cond_true, 0);
  146.28 -+ 	  enum rtx_code inv_cond;
  146.29 - 
  146.30 - 	  if (GET_CODE (reg) == SUBREG)
  146.31 - 	    reg = SUBREG_REG (reg);
  146.32 -@@ -1886,11 +1887,13 @@
  146.33 - 	     in the form of a comparison of a register against zero.  
  146.34 - 	     If the condition is more complex than that, then it is safe
  146.35 - 	     not to record any information.  */
  146.36 --	  if (GET_CODE (reg) == REG
  146.37 -+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
  146.38 -+ 	  if (inv_cond != UNKNOWN
  146.39 -+	      && GET_CODE (reg) == REG
  146.40 - 	      && XEXP (cond_true, 1) == const0_rtx)
  146.41 - 	    {
  146.42 - 	      rtx cond_false
  146.43 --		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
  146.44 -+		= gen_rtx_fmt_ee (inv_cond,
  146.45 - 				  GET_MODE (cond_true), XEXP (cond_true, 0),
  146.46 - 				  XEXP (cond_true, 1));
  146.47 - 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
   147.1 --- a/patches/gcc/3.4.4/71_all_sh-pr16665-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   147.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   147.3 @@ -1,43 +0,0 @@
   147.4 ---- gcc/gcc/config/sh/sh.c
   147.5 -+++ gcc/gcc/config/sh/sh.c
   147.6 -@@ -9106,6 +9106,15 @@ sh_output_mi_thunk (FILE *file, tree thu
   147.7 -     }
   147.8 -   this = FUNCTION_ARG (cum, Pmode, ptr_type_node, 1);
   147.9 - 
  147.10 -+  /* In PIC case, we set PIC register to compute the target address.  We
  147.11 -+     can use a scratch register to save and restore the original value  
  147.12 -+     except for SHcompact.  For SHcompact, use stack.  */
  147.13 -+  if (flag_pic && TARGET_SHCOMPACT)
  147.14 -+    {
  147.15 -+      push (PIC_OFFSET_TABLE_REGNUM);
  147.16 -+      emit_insn (gen_GOTaddr2picreg ());
  147.17 -+    }
  147.18 -+
  147.19 -   /* For SHcompact, we only have r0 for a scratch register: r1 is the
  147.20 -      static chain pointer (even if you can't have nested virtual functions
  147.21 -      right now, someone might implement them sometime), and the rest of the
  147.22 -@@ -9188,8 +9197,24 @@ sh_output_mi_thunk (FILE *file, tree thu
  147.23 -       assemble_external (function);
  147.24 -       TREE_USED (function) = 1;
  147.25 -     }
  147.26 -+  /* We can use scratch1 to save and restore the original value of
  147.27 -+     PIC register except for SHcompact.  */
  147.28 -+  if (flag_pic && ! TARGET_SHCOMPACT)
  147.29 -+    {
  147.30 -+      emit_move_insn (scratch1,
  147.31 -+		      gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));
  147.32 -+      emit_insn (gen_GOTaddr2picreg ());
  147.33 -+    }
  147.34 -   funexp = XEXP (DECL_RTL (function), 0);
  147.35 -   emit_move_insn (scratch2, funexp);
  147.36 -+  if (flag_pic)
  147.37 -+    {
  147.38 -+      if (! TARGET_SHCOMPACT)
  147.39 -+	emit_move_insn (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM),
  147.40 -+			scratch1);
  147.41 -+      else
  147.42 -+	pop (PIC_OFFSET_TABLE_REGNUM);
  147.43 -+    }
  147.44 -   funexp = gen_rtx_MEM (FUNCTION_MODE, scratch2);
  147.45 -   sibcall = emit_call_insn (gen_sibcall (funexp, const0_rtx, NULL_RTX));
  147.46 -   SIBLING_CALL_P (sibcall) = 1;
   148.1 --- a/patches/gcc/3.4.4/72_all_sh-no-reorder-blocks.patch	Tue Aug 14 19:32:22 2007 +0000
   148.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.3 @@ -1,13 +0,0 @@
   148.4 ---- g/gcc/config/sh/sh.h
   148.5 -+++ g/gcc/config/sh/sh.h
   148.6 -@@ -422,6 +422,10 @@
   148.7 - do {									\
   148.8 -   if (LEVEL)								\
   148.9 -     flag_omit_frame_pointer = -1;					\
  148.10 -+  if (LEVEL <= 2)							\
  148.11 -+    {									\
  148.12 -+      flag_reorder_blocks = 0;						\
  148.13 -+    }									\
  148.14 -   if (SIZE)								\
  148.15 -     target_flags |= SPACE_BIT;						\
  148.16 -   if (TARGET_SHMEDIA && LEVEL > 1)					\
   149.1 --- a/patches/gcc/3.4.4/73_all_sh-pr20617.patch	Tue Aug 14 19:32:22 2007 +0000
   149.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.3 @@ -1,28 +0,0 @@
   149.4 -2005-03-24  J"orn Rennecke <joern.rennecke@st.com>
   149.5 -
   149.6 -	Band aid for PR target/20617:
   149.7 -	* config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.
   149.8 -
   149.9 ---- g/gcc/config/sh/lib1funcs.asm
  149.10 -+++ g/gcc/config/sh/lib1funcs.asm
  149.11 -@@ -37,9 +37,19 @@ Boston, MA 02111-1307, USA.  */
  149.12 -    ELF local label prefixes by J"orn Rennecke
  149.13 -    amylaar@cygnus.com  */
  149.14 - 
  149.15 -+#define ALIAS(X,Y)	.global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
  149.16 -+
  149.17 - #ifdef __ELF__
  149.18 - #define LOCAL(X)	.L_##X
  149.19 --#define FUNC(X)		.type X,@function
  149.20 -+
  149.21 -+#if 1 /* ??? The export list mechanism is broken, everything that is not
  149.22 -+	 hidden is exported.  */
  149.23 -+#undef FUNC
  149.24 -+#define FUNC(X)		.type X,@function; .hidden X
  149.25 -+#undef ALIAS
  149.26 -+#define ALIAS(X,Y)	.global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y); .hidden GLOBAL(X)
  149.27 -+#endif
  149.28 -+
  149.29 - #define ENDFUNC0(X)	.Lfe_##X: .size X,.Lfe_##X-X
  149.30 - #define ENDFUNC(X)	ENDFUNC0(X)
  149.31 - #else
   150.1 --- a/patches/gcc/3.4.4/800-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   150.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.3 @@ -1,66 +0,0 @@
   150.4 -diff -dur gcc-3.4.4.orig/gcc/config/arm/linux-elf.h gcc-3.4.4/gcc/config/arm/linux-elf.h
   150.5 ---- gcc-3.4.4.orig/gcc/config/arm/linux-elf.h	2007-02-14 17:44:27.000000000 +0100
   150.6 -+++ gcc-3.4.4/gcc/config/arm/linux-elf.h	2007-02-14 17:47:32.000000000 +0100
   150.7 -@@ -30,17 +30,34 @@
   150.8 - /* Do not assume anything about header files.  */
   150.9 - #define NO_IMPLICIT_EXTERN_C
  150.10 - 
  150.11 -+/*
  150.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  150.13 -+ * (big endian) configurations.
  150.14 -+ */
  150.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
  150.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  150.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  150.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  150.19 -+#else
  150.20 -+#define TARGET_ENDIAN_DEFAULT 0
  150.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  150.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  150.23 -+#endif
  150.24 -+
  150.25 - /* Default is to use APCS-32 mode.  */
  150.26 - #undef  TARGET_DEFAULT
  150.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  150.28 -+#define TARGET_DEFAULT \
  150.29 -+		( ARM_FLAG_APCS_32 | \
  150.30 -+		  ARM_FLAG_MMU_TRAPS | \
  150.31 -+		  TARGET_ENDIAN_DEFAULT )
  150.32 - 
  150.33 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  150.34 - 
  150.35 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  150.36 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  150.37 - 
  150.38 - #undef  MULTILIB_DEFAULTS
  150.39 - #define MULTILIB_DEFAULTS \
  150.40 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  150.41 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  150.42 - 
  150.43 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  150.44 - 
  150.45 -@@ -94,7 +111,7 @@
  150.46 -    %{rdynamic:-export-dynamic} \
  150.47 -    %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
  150.48 -    -X \
  150.49 --   %{mbig-endian:-EB}" \
  150.50 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  150.51 -    SUBTARGET_EXTRA_LINK_SPEC
  150.52 - 
  150.53 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
  150.54 -Only in gcc-3.4.4/gcc/config/arm: linux-elf.h.orig
  150.55 -diff -dur gcc-3.4.4.orig/gcc/config.gcc gcc-3.4.4/gcc/config.gcc
  150.56 ---- gcc-3.4.4.orig/gcc/config.gcc	2007-02-14 17:44:27.000000000 +0100
  150.57 -+++ gcc-3.4.4/gcc/config.gcc	2007-02-14 17:47:32.000000000 +0100
  150.58 -@@ -672,6 +672,11 @@
  150.59 - 	;;
  150.60 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  150.61 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  150.62 -+	case $target in
  150.63 -+	arm*b-*)
  150.64 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  150.65 -+		;;
  150.66 -+	esac
  150.67 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  150.68 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  150.69 - 	gnu_ld=yes
   151.1 --- a/patches/gcc/3.4.4/800-powerpc-libc_stack_end-uclibc.patch	Tue Aug 14 19:32:22 2007 +0000
   151.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.3 @@ -1,15 +0,0 @@
   151.4 ---- gcc-3.4.4/gcc/config/rs6000/linux-unwind.h.org	2005-06-23 17:50:34.000000000 -0600
   151.5 -+++ gcc-3.4.4/gcc/config/rs6000/linux-unwind.h	2005-06-23 17:52:02.000000000 -0600
   151.6 -@@ -32,6 +32,7 @@
   151.7 -    these structs elsewhere;  Many fields are missing, particularly
   151.8 -    from the end of the structures.  */
   151.9 - 
  151.10 -+#ifndef inhibit_libc
  151.11 - struct gcc_vregs
  151.12 - {
  151.13 -   __attribute__ ((vector_size (16))) int vr[32];
  151.14 -@@ -320,3 +321,4 @@
  151.15 - 									\
  151.16 -     goto SUCCESS;							\
  151.17 -   } while (0)
  151.18 -+#endif
   152.1 --- a/patches/gcc/3.4.4/830-gcc-bug-num-22167.patch	Tue Aug 14 19:32:22 2007 +0000
   152.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.3 @@ -1,16 +0,0 @@
   152.4 -Index: gcc/gcse.c
   152.5 -===================================================================
   152.6 -RCS file: /cvs/gcc/gcc/gcc/gcse.c,v
   152.7 -retrieving revision 1.288.2.9
   152.8 -diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.288.2.9 gcse.c
   152.9 ---- gcc/gcc/gcse.c	30 Oct 2004 18:02:53 -0000	1.288.2.9
  152.10 -+++ gcc/gcc/gcse.c	14 Jul 2005 13:19:57 -0000
  152.11 -@@ -6445,7 +6445,7 @@ hoist_code (void)
  152.12 - 	  insn_inserted_p = 0;
  152.13 - 
  152.14 - 	  /* These tests should be the same as the tests above.  */
  152.15 --	  if (TEST_BIT (hoist_vbeout[bb->index], i))
  152.16 -+	  if (TEST_BIT (hoist_exprs[bb->index], i))
  152.17 - 	    {
  152.18 - 	      /* We've found a potentially hoistable expression, now
  152.19 - 		 we look at every block BB dominates to see if it
   153.1 --- a/patches/gcc/3.4.4/900-nios2.patch	Tue Aug 14 19:32:22 2007 +0000
   153.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.3 @@ -1,10211 +0,0 @@
   153.4 ---- gcc-3.4.3/gcc/Makefile.in
   153.5 -+++ gcc-3.4.3-nios2/gcc/Makefile.in
   153.6 -@@ -3085,7 +3085,7 @@ install-mkheaders: stmp-int-hdrs $(STMP_
   153.7 - 	  $(INSTALL_DATA) $(srcdir)/README-fixinc \
   153.8 - 	    $(DESTDIR)$(itoolsdatadir)/include/README ; \
   153.9 - 	  $(INSTALL_SCRIPT) fixinc.sh $(DESTDIR)$(itoolsdir)/fixinc.sh ; \
  153.10 --	  $(INSTALL_PROGRAM) fixinc/fixincl $(DESTDIR)$(itoolsdir)/fixincl ; \
  153.11 -+	  $(INSTALL_PROGRAM) fixinc/fixincl$(build_exeext) $(DESTDIR)$(itoolsdir)/fixincl$(build_exeext) ; \
  153.12 - 	  $(INSTALL_DATA) $(srcdir)/gsyslimits.h \
  153.13 - 	    $(DESTDIR)$(itoolsdatadir)/gsyslimits.h ; \
  153.14 - 	else :; fi
  153.15 ---- gcc-3.4.3/gcc/combine.c
  153.16 -+++ gcc-3.4.3-nios2/gcc/combine.c
  153.17 -@@ -4380,6 +4380,14 @@ combine_simplify_rtx (rtx x, enum machin
  153.18 - 					 mode);
  153.19 - 	    }
  153.20 - 
  153.21 -+#ifndef __nios2__
  153.22 -+/* This screws up Nios II in this test case:
  153.23 -+
  153.24 -+if (x & 1)
  153.25 -+  return 2;
  153.26 -+else
  153.27 -+  return 3;
  153.28 -+*/
  153.29 - 	  else if (STORE_FLAG_VALUE == 1
  153.30 - 		   && new_code == EQ && GET_MODE_CLASS (mode) == MODE_INT
  153.31 - 		   && op1 == const0_rtx
  153.32 -@@ -4391,6 +4399,7 @@ combine_simplify_rtx (rtx x, enum machin
  153.33 - 				 gen_lowpart_for_combine (mode, op0),
  153.34 - 				 const1_rtx);
  153.35 - 	    }
  153.36 -+#endif
  153.37 - 
  153.38 - 	  else if (STORE_FLAG_VALUE == 1
  153.39 - 		   && new_code == EQ && GET_MODE_CLASS (mode) == MODE_INT
  153.40 ---- gcc-3.4.3/gcc/config/nios2/crti.asm
  153.41 -+++ gcc-3.4.3-nios2/gcc/config/nios2/crti.asm
  153.42 -@@ -0,0 +1,88 @@
  153.43 -+/*
  153.44 -+  Copyright (C) 2003 
  153.45 -+ by Jonah Graham (jgraham@altera.com)
  153.46 -+
  153.47 -+This file is free software; you can redistribute it and/or modify it
  153.48 -+under the terms of the GNU General Public License as published by the
  153.49 -+Free Software Foundation; either version 2, or (at your option) any
  153.50 -+later version.
  153.51 -+
  153.52 -+In addition to the permissions in the GNU General Public License, the
  153.53 -+Free Software Foundation gives you unlimited permission to link the
  153.54 -+compiled version of this file with other programs, and to distribute
  153.55 -+those programs without any restriction coming from the use of this
  153.56 -+file.  (The General Public License restrictions do apply in other
  153.57 -+respects; for example, they cover modification of the file, and
  153.58 -+distribution when not linked into another program.)
  153.59 -+
  153.60 -+This file is distributed in the hope that it will be useful, but
  153.61 -+WITHOUT ANY WARRANTY; without even the implied warranty of
  153.62 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  153.63 -+General Public License for more details.
  153.64 -+
  153.65 -+You should have received a copy of the GNU General Public License
  153.66 -+along with this program; see the file COPYING.  If not, write to
  153.67 -+the Free Software Foundation, 59 Temple Place - Suite 330,
  153.68 -+Boston, MA 02111-1307, USA.
  153.69 -+
  153.70 -+   As a special exception, if you link this library with files
  153.71 -+   compiled with GCC to produce an executable, this does not cause
  153.72 -+   the resulting executable to be covered by the GNU General Public License.
  153.73 -+   This exception does not however invalidate any other reasons why
  153.74 -+   the executable file might be covered by the GNU General Public License.
  153.75 -+
  153.76 -+
  153.77 -+This file just make a stack frame for the contents of the .fini and
  153.78 -+.init sections.  Users may put any desired instructions in those
  153.79 -+sections.
  153.80 -+
  153.81 -+
  153.82 -+While technically any code can be put in the init and fini sections
  153.83 -+most stuff will not work other than stuff which obeys the call frame
  153.84 -+and ABI. All the call-preserved registers are saved, the call clobbered
  153.85 -+registers should have been saved by the code calling init and fini.
  153.86 -+
  153.87 -+See crtstuff.c for an example of code that inserts itself in the 
  153.88 -+init and fini sections. 
  153.89 -+
  153.90 -+See crt0.s for the code that calls init and fini.
  153.91 -+*/
  153.92 -+
  153.93 -+	.file	"crti.asm"
  153.94 -+
  153.95 -+	.section	".init"
  153.96 -+	.align 2
  153.97 -+	.global	_init
  153.98 -+_init:
  153.99 -+	addi	sp, sp, -48
 153.100 -+	stw	ra, 44(sp)
 153.101 -+	stw	r23, 40(sp)
 153.102 -+	stw	r22, 36(sp)
 153.103 -+	stw	r21, 32(sp)
 153.104 -+	stw	r20, 28(sp)
 153.105 -+	stw	r19, 24(sp)
 153.106 -+	stw	r18, 20(sp)
 153.107 -+	stw	r17, 16(sp)
 153.108 -+	stw	r16, 12(sp)
 153.109 -+	stw	fp, 8(sp)
 153.110 -+	mov	fp, sp
 153.111 -+	
 153.112 -+	
 153.113 -+	.section	".fini"
 153.114 -+	.align	2
 153.115 -+	.global	_fini
 153.116 -+_fini:
 153.117 -+	addi	sp, sp, -48
 153.118 -+	stw	ra, 44(sp)
 153.119 -+	stw	r23, 40(sp)
 153.120 -+	stw	r22, 36(sp)
 153.121 -+	stw	r21, 32(sp)
 153.122 -+	stw	r20, 28(sp)
 153.123 -+	stw	r19, 24(sp)
 153.124 -+	stw	r18, 20(sp)
 153.125 -+	stw	r17, 16(sp)
 153.126 -+	stw	r16, 12(sp)
 153.127 -+	stw	fp, 8(sp)
 153.128 -+	mov	fp, sp
 153.129 -+	
 153.130 -+
 153.131 ---- gcc-3.4.3/gcc/config/nios2/crtn.asm
 153.132 -+++ gcc-3.4.3-nios2/gcc/config/nios2/crtn.asm
 153.133 -@@ -0,0 +1,70 @@
 153.134 -+/*
 153.135 -+  Copyright (C) 2003 
 153.136 -+ by Jonah Graham (jgraham@altera.com)
 153.137 -+
 153.138 -+This file is free software; you can redistribute it and/or modify it
 153.139 -+under the terms of the GNU General Public License as published by the
 153.140 -+Free Software Foundation; either version 2, or (at your option) any
 153.141 -+later version.
 153.142 -+
 153.143 -+In addition to the permissions in the GNU General Public License, the
 153.144 -+Free Software Foundation gives you unlimited permission to link the
 153.145 -+compiled version of this file with other programs, and to distribute
 153.146 -+those programs without any restriction coming from the use of this
 153.147 -+file.  (The General Public License restrictions do apply in other
 153.148 -+respects; for example, they cover modification of the file, and
 153.149 -+distribution when not linked into another program.)
 153.150 -+
 153.151 -+This file is distributed in the hope that it will be useful, but
 153.152 -+WITHOUT ANY WARRANTY; without even the implied warranty of
 153.153 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 153.154 -+General Public License for more details.
 153.155 -+
 153.156 -+You should have received a copy of the GNU General Public License
 153.157 -+along with this program; see the file COPYING.  If not, write to
 153.158 -+the Free Software Foundation, 59 Temple Place - Suite 330,
 153.159 -+Boston, MA 02111-1307, USA.
 153.160 -+
 153.161 -+   As a special exception, if you link this library with files
 153.162 -+   compiled with GCC to produce an executable, this does not cause
 153.163 -+   the resulting executable to be covered by the GNU General Public License.
 153.164 -+   This exception does not however invalidate any other reasons why
 153.165 -+   the executable file might be covered by the GNU General Public License.
 153.166 -+
 153.167 -+
 153.168 -+This file just makes sure that the .fini and .init sections do in
 153.169 -+fact return.  Users may put any desired instructions in those sections.
 153.170 -+This file is the last thing linked into any executable.
 153.171 -+*/	
 153.172 -+	.file	"crtn.asm"
 153.173 -+
 153.174 -+
 153.175 -+
 153.176 -+	.section	".init"
 153.177 -+	ldw	ra, 44(sp)
 153.178 -+	ldw	r23, 40(sp)
 153.179 -+	ldw	r22, 36(sp)
 153.180 -+	ldw	r21, 32(sp)
 153.181 -+	ldw	r20, 28(sp)
 153.182 -+	ldw	r19, 24(sp)
 153.183 -+	ldw	r18, 20(sp)
 153.184 -+	ldw	r17, 16(sp)
 153.185 -+	ldw	r16, 12(sp)
 153.186 -+	ldw	fp, 8(sp)
 153.187 -+	addi	sp, sp, -48
 153.188 -+	ret
 153.189 -+	
 153.190 -+	.section	".fini"
 153.191 -+	ldw	ra, 44(sp)
 153.192 -+	ldw	r23, 40(sp)
 153.193 -+	ldw	r22, 36(sp)
 153.194 -+	ldw	r21, 32(sp)
 153.195 -+	ldw	r20, 28(sp)
 153.196 -+	ldw	r19, 24(sp)
 153.197 -+	ldw	r18, 20(sp)
 153.198 -+	ldw	r17, 16(sp)
 153.199 -+	ldw	r16, 12(sp)
 153.200 -+	ldw	fp, 8(sp)
 153.201 -+	addi	sp, sp, -48
 153.202 -+	ret
 153.203 -+	
 153.204 ---- gcc-3.4.3/gcc/config/nios2/lib2-divmod-hi.c
 153.205 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-divmod-hi.c
 153.206 -@@ -0,0 +1,123 @@
 153.207 -+
 153.208 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN.  This is
 153.209 -+   supposedly valid even though this is a "target" file.  */
 153.210 -+#include "auto-host.h"
 153.211 -+
 153.212 -+
 153.213 -+#include "tconfig.h"
 153.214 -+#include "tsystem.h"
 153.215 -+#include "coretypes.h"
 153.216 -+#include "tm.h"
 153.217 -+
 153.218 -+
 153.219 -+/* Don't use `fancy_abort' here even if config.h says to use it.  */
 153.220 -+#ifdef abort
 153.221 -+#undef abort
 153.222 -+#endif
 153.223 -+
 153.224 -+
 153.225 -+#ifdef HAVE_GAS_HIDDEN
 153.226 -+#define ATTRIBUTE_HIDDEN  __attribute__ ((__visibility__ ("hidden")))
 153.227 -+#else
 153.228 -+#define ATTRIBUTE_HIDDEN
 153.229 -+#endif
 153.230 -+
 153.231 -+#include "libgcc2.h"
 153.232 -+
 153.233 -+extern HItype __modhi3 (HItype, HItype);
 153.234 -+extern HItype __divhi3 (HItype, HItype);
 153.235 -+extern HItype __umodhi3 (HItype, HItype);
 153.236 -+extern HItype __udivhi3 (HItype, HItype);
 153.237 -+
 153.238 -+static UHItype udivmodhi4(UHItype, UHItype, word_type);
 153.239 -+
 153.240 -+static UHItype
 153.241 -+udivmodhi4(UHItype num, UHItype den, word_type modwanted)
 153.242 -+{
 153.243 -+  UHItype bit = 1;
 153.244 -+  UHItype res = 0;
 153.245 -+
 153.246 -+  while (den < num && bit && !(den & (1L<<15)))
 153.247 -+    {
 153.248 -+      den <<=1;
 153.249 -+      bit <<=1;
 153.250 -+    }
 153.251 -+  while (bit)
 153.252 -+    {
 153.253 -+      if (num >= den)
 153.254 -+	{
 153.255 -+	  num -= den;
 153.256 -+	  res |= bit;
 153.257 -+	}
 153.258 -+      bit >>=1;
 153.259 -+      den >>=1;
 153.260 -+    }
 153.261 -+  if (modwanted) return num;
 153.262 -+  return res;
 153.263 -+}
 153.264 -+
 153.265 -+
 153.266 -+HItype
 153.267 -+__divhi3 (HItype a, HItype b)
 153.268 -+{
 153.269 -+  word_type neg = 0;
 153.270 -+  HItype res;
 153.271 -+
 153.272 -+  if (a < 0)
 153.273 -+    {
 153.274 -+      a = -a;
 153.275 -+      neg = !neg;
 153.276 -+    }
 153.277 -+
 153.278 -+  if (b < 0)
 153.279 -+    {
 153.280 -+      b = -b;
 153.281 -+      neg = !neg;
 153.282 -+    }
 153.283 -+
 153.284 -+  res = udivmodhi4 (a, b, 0);
 153.285 -+
 153.286 -+  if (neg)
 153.287 -+    res = -res;
 153.288 -+
 153.289 -+  return res;
 153.290 -+}
 153.291 -+
 153.292 -+
 153.293 -+HItype
 153.294 -+__modhi3 (HItype a, HItype b)
 153.295 -+{
 153.296 -+  word_type neg = 0;
 153.297 -+  HItype res;
 153.298 -+
 153.299 -+  if (a < 0)
 153.300 -+    {
 153.301 -+      a = -a;
 153.302 -+      neg = 1;
 153.303 -+    }
 153.304 -+
 153.305 -+  if (b < 0)
 153.306 -+    b = -b;
 153.307 -+
 153.308 -+  res = udivmodhi4 (a, b, 1);
 153.309 -+
 153.310 -+  if (neg)
 153.311 -+    res = -res;
 153.312 -+
 153.313 -+  return res;
 153.314 -+}
 153.315 -+
 153.316 -+
 153.317 -+HItype
 153.318 -+__udivhi3 (HItype a, HItype b)
 153.319 -+{
 153.320 -+  return udivmodhi4 (a, b, 0);
 153.321 -+}
 153.322 -+
 153.323 -+
 153.324 -+HItype
 153.325 -+__umodhi3 (HItype a, HItype b)
 153.326 -+{
 153.327 -+  return udivmodhi4 (a, b, 1);
 153.328 -+}
 153.329 -+
 153.330 ---- gcc-3.4.3/gcc/config/nios2/lib2-divmod.c
 153.331 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-divmod.c
 153.332 -@@ -0,0 +1,126 @@
 153.333 -+
 153.334 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN.  This is
 153.335 -+   supposedly valid even though this is a "target" file.  */
 153.336 -+#include "auto-host.h"
 153.337 -+
 153.338 -+
 153.339 -+#include "tconfig.h"
 153.340 -+#include "tsystem.h"
 153.341 -+#include "coretypes.h"
 153.342 -+#include "tm.h"
 153.343 -+
 153.344 -+
 153.345 -+/* Don't use `fancy_abort' here even if config.h says to use it.  */
 153.346 -+#ifdef abort
 153.347 -+#undef abort
 153.348 -+#endif
 153.349 -+
 153.350 -+
 153.351 -+#ifdef HAVE_GAS_HIDDEN
 153.352 -+#define ATTRIBUTE_HIDDEN  __attribute__ ((__visibility__ ("hidden")))
 153.353 -+#else
 153.354 -+#define ATTRIBUTE_HIDDEN
 153.355 -+#endif
 153.356 -+
 153.357 -+#include "libgcc2.h"
 153.358 -+
 153.359 -+extern SItype __modsi3 (SItype, SItype);
 153.360 -+extern SItype __divsi3 (SItype, SItype);
 153.361 -+extern SItype __umodsi3 (SItype, SItype);
 153.362 -+extern SItype __udivsi3 (SItype, SItype);
 153.363 -+
 153.364 -+static USItype udivmodsi4(USItype, USItype, word_type);
 153.365 -+
 153.366 -+/* 16-bit SI divide and modulo as used in NIOS */
 153.367 -+
 153.368 -+
 153.369 -+static USItype
 153.370 -+udivmodsi4(USItype num, USItype den, word_type modwanted)
 153.371 -+{
 153.372 -+  USItype bit = 1;
 153.373 -+  USItype res = 0;
 153.374 -+
 153.375 -+  while (den < num && bit && !(den & (1L<<31)))
 153.376 -+    {
 153.377 -+      den <<=1;
 153.378 -+      bit <<=1;
 153.379 -+    }
 153.380 -+  while (bit)
 153.381 -+    {
 153.382 -+      if (num >= den)
 153.383 -+	{
 153.384 -+	  num -= den;
 153.385 -+	  res |= bit;
 153.386 -+	}
 153.387 -+      bit >>=1;
 153.388 -+      den >>=1;
 153.389 -+    }
 153.390 -+  if (modwanted) return num;
 153.391 -+  return res;
 153.392 -+}
 153.393 -+
 153.394 -+
 153.395 -+SItype
 153.396 -+__divsi3 (SItype a, SItype b)
 153.397 -+{
 153.398 -+  word_type neg = 0;
 153.399 -+  SItype res;
 153.400 -+
 153.401 -+  if (a < 0)
 153.402 -+    {
 153.403 -+      a = -a;
 153.404 -+      neg = !neg;
 153.405 -+    }
 153.406 -+
 153.407 -+  if (b < 0)
 153.408 -+    {
 153.409 -+      b = -b;
 153.410 -+      neg = !neg;
 153.411 -+    }
 153.412 -+
 153.413 -+  res = udivmodsi4 (a, b, 0);
 153.414 -+
 153.415 -+  if (neg)
 153.416 -+    res = -res;
 153.417 -+
 153.418 -+  return res;
 153.419 -+}
 153.420 -+
 153.421 -+
 153.422 -+SItype
 153.423 -+__modsi3 (SItype a, SItype b)
 153.424 -+{
 153.425 -+  word_type neg = 0;
 153.426 -+  SItype res;
 153.427 -+
 153.428 -+  if (a < 0)
 153.429 -+    {
 153.430 -+      a = -a;
 153.431 -+      neg = 1;
 153.432 -+    }
 153.433 -+
 153.434 -+  if (b < 0)
 153.435 -+    b = -b;
 153.436 -+
 153.437 -+  res = udivmodsi4 (a, b, 1);
 153.438 -+
 153.439 -+  if (neg)
 153.440 -+    res = -res;
 153.441 -+
 153.442 -+  return res;
 153.443 -+}
 153.444 -+
 153.445 -+
 153.446 -+SItype
 153.447 -+__udivsi3 (SItype a, SItype b)
 153.448 -+{
 153.449 -+  return udivmodsi4 (a, b, 0);
 153.450 -+}
 153.451 -+
 153.452 -+
 153.453 -+SItype
 153.454 -+__umodsi3 (SItype a, SItype b)
 153.455 -+{
 153.456 -+  return udivmodsi4 (a, b, 1);
 153.457 -+}
 153.458 -+
 153.459 ---- gcc-3.4.3/gcc/config/nios2/lib2-divtable.c
 153.460 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-divtable.c
 153.461 -@@ -0,0 +1,46 @@
 153.462 -+
 153.463 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN.  This is
 153.464 -+   supposedly valid even though this is a "target" file.  */
 153.465 -+#include "auto-host.h"
 153.466 -+
 153.467 -+
 153.468 -+#include "tconfig.h"
 153.469 -+#include "tsystem.h"
 153.470 -+#include "coretypes.h"
 153.471 -+#include "tm.h"
 153.472 -+
 153.473 -+
 153.474 -+/* Don't use `fancy_abort' here even if config.h says to use it.  */
 153.475 -+#ifdef abort
 153.476 -+#undef abort
 153.477 -+#endif
 153.478 -+
 153.479 -+
 153.480 -+#ifdef HAVE_GAS_HIDDEN
 153.481 -+#define ATTRIBUTE_HIDDEN  __attribute__ ((__visibility__ ("hidden")))
 153.482 -+#else
 153.483 -+#define ATTRIBUTE_HIDDEN
 153.484 -+#endif
 153.485 -+
 153.486 -+#include "libgcc2.h"
 153.487 -+
 153.488 -+UQItype __divsi3_table[] =
 153.489 -+{
 153.490 -+  0, 0/1, 0/2, 0/3, 0/4, 0/5, 0/6, 0/7, 0/8, 0/9, 0/10, 0/11, 0/12, 0/13, 0/14, 0/15,
 153.491 -+  0, 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13, 1/14, 1/15,
 153.492 -+  0, 2/1, 2/2, 2/3, 2/4, 2/5, 2/6, 2/7, 2/8, 2/9, 2/10, 2/11, 2/12, 2/13, 2/14, 2/15,
 153.493 -+  0, 3/1, 3/2, 3/3, 3/4, 3/5, 3/6, 3/7, 3/8, 3/9, 3/10, 3/11, 3/12, 3/13, 3/14, 3/15,
 153.494 -+  0, 4/1, 4/2, 4/3, 4/4, 4/5, 4/6, 4/7, 4/8, 4/9, 4/10, 4/11, 4/12, 4/13, 4/14, 4/15,
 153.495 -+  0, 5/1, 5/2, 5/3, 5/4, 5/5, 5/6, 5/7, 5/8, 5/9, 5/10, 5/11, 5/12, 5/13, 5/14, 5/15,
 153.496 -+  0, 6/1, 6/2, 6/3, 6/4, 6/5, 6/6, 6/7, 6/8, 6/9, 6/10, 6/11, 6/12, 6/13, 6/14, 6/15,
 153.497 -+  0, 7/1, 7/2, 7/3, 7/4, 7/5, 7/6, 7/7, 7/8, 7/9, 7/10, 7/11, 7/12, 7/13, 7/14, 7/15,
 153.498 -+  0, 8/1, 8/2, 8/3, 8/4, 8/5, 8/6, 8/7, 8/8, 8/9, 8/10, 8/11, 8/12, 8/13, 8/14, 8/15,
 153.499 -+  0, 9/1, 9/2, 9/3, 9/4, 9/5, 9/6, 9/7, 9/8, 9/9, 9/10, 9/11, 9/12, 9/13, 9/14, 9/15,
 153.500 -+  0, 10/1, 10/2, 10/3, 10/4, 10/5, 10/6, 10/7, 10/8, 10/9, 10/10, 10/11, 10/12, 10/13, 10/14, 10/15,
 153.501 -+  0, 11/1, 11/2, 11/3, 11/4, 11/5, 11/6, 11/7, 11/8, 11/9, 11/10, 11/11, 11/12, 11/13, 11/14, 11/15,
 153.502 -+  0, 12/1, 12/2, 12/3, 12/4, 12/5, 12/6, 12/7, 12/8, 12/9, 12/10, 12/11, 12/12, 12/13, 12/14, 12/15,
 153.503 -+  0, 13/1, 13/2, 13/3, 13/4, 13/5, 13/6, 13/7, 13/8, 13/9, 13/10, 13/11, 13/12, 13/13, 13/14, 13/15,
 153.504 -+  0, 14/1, 14/2, 14/3, 14/4, 14/5, 14/6, 14/7, 14/8, 14/9, 14/10, 14/11, 14/12, 14/13, 14/14, 14/15,
 153.505 -+  0, 15/1, 15/2, 15/3, 15/4, 15/5, 15/6, 15/7, 15/8, 15/9, 15/10, 15/11, 15/12, 15/13, 15/14, 15/15,
 153.506 -+};
 153.507 -+
 153.508 ---- gcc-3.4.3/gcc/config/nios2/lib2-mul.c
 153.509 -+++ gcc-3.4.3-nios2/gcc/config/nios2/lib2-mul.c
 153.510 -@@ -0,0 +1,103 @@
 153.511 -+/* while we are debugging (ie compile outside of gcc build) 
 153.512 -+   disable gcc specific headers */
 153.513 -+#ifndef DEBUG_MULSI3
 153.514 -+
 153.515 -+
 153.516 -+/* We include auto-host.h here to get HAVE_GAS_HIDDEN.  This is
 153.517 -+   supposedly valid even though this is a "target" file.  */
 153.518 -+#include "auto-host.h"
 153.519 -+
 153.520 -+
 153.521 -+#include "tconfig.h"
 153.522 -+#include "tsystem.h"
 153.523 -+#include "coretypes.h"
 153.524 -+#include "tm.h"
 153.525 -+
 153.526 -+
 153.527 -+/* Don't use `fancy_abort' here even if config.h says to use it.  */
 153.528 -+#ifdef abort
 153.529 -+#undef abort
 153.530 -+#endif
 153.531 -+
 153.532 -+
 153.533 -+#ifdef HAVE_GAS_HIDDEN
 153.534 -+#define ATTRIBUTE_HIDDEN  __attribute__ ((__visibility__ ("hidden")))
 153.535 -+#else
 153.536 -+#define ATTRIBUTE_HIDDEN
 153.537 -+#endif
 153.538 -+
 153.539 -+#include "libgcc2.h"
 153.540 -+
 153.541 -+#else
 153.542 -+#define SItype int
 153.543 -+#define USItype unsigned int
 153.544 -+#endif
 153.545 -+
 153.546 -+
 153.547 -+extern SItype __mulsi3 (SItype, SItype);
 153.548 -+
 153.549 -+SItype
 153.550 -+__mulsi3 (SItype a, SItype b)
 153.551 -+{
 153.552 -+  SItype res = 0;
 153.553 -+  USItype cnt = a;
 153.554 -+  
 153.555 -+  while (cnt)
 153.556 -+    {
 153.557 -+      if (cnt & 1)
 153.558 -+        {
 153.559 -+	  res += b;	  
 153.560 -+	}
 153.561 -+      b <<= 1;
 153.562 -+      cnt >>= 1;
 153.563 -+    }
 153.564 -+    
 153.565 -+  return res;
 153.566 -+}
 153.567 -+/*
 153.568 -+TODO: Choose best alternative implementation.
 153.569 -+
 153.570 -+SItype
 153.571 -+__divsi3 (SItype a, SItype b)
 153.572 -+{
 153.573 -+  SItype res = 0;
 153.574 -+  USItype cnt = 0;
 153.575 -+  
 153.576 -+  while (cnt < 32)
 153.577 -+    {
 153.578 -+      if (a & (1L << cnt))
 153.579 -+        {
 153.580 -+	  res += b;	  
 153.581 -+	}
 153.582 -+      b <<= 1;
 153.583 -+      cnt++;
 153.584 -+    }
 153.585 -+    
 153.586 -+  return res;
 153.587 -+}
 153.588 -+*/
 153.589 -+
 153.590 -+
 153.591 -+#ifdef DEBUG_MULSI3
 153.592 -+
 153.593 -+int
 153.594 -+main ()
 153.595 -+{
 153.596 -+  int i, j;
 153.597 -+  int error = 0;
 153.598 -+  
 153.599 -+  for (i = -1000; i < 1000; i++)
 153.600 -+    for (j = -1000; j < 1000; j++)
 153.601 -+      {
 153.602 -+	int expect = i * j;
 153.603 -+	int actual = A__divsi3 (i, j);
 153.604 -+	if (expect != actual)
 153.605 -+	  {
 153.606 -+	    printf ("error: %d * %d = %d not %d\n", i, j, expect, actual);
 153.607 -+	    error = 1;
 153.608 -+	  }
 153.609 -+      }
 153.610 -+
 153.611 -+  return error;
 153.612 -+}
 153.613 -+#endif
 153.614 ---- gcc-3.4.3/gcc/config/nios2/nios2-dp-bit.c
 153.615 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2-dp-bit.c
 153.616 -@@ -0,0 +1,1652 @@
 153.617 -+
 153.618 -+/* This is a software floating point library which can be used
 153.619 -+   for targets without hardware floating point. 
 153.620 -+   Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
 153.621 -+   Free Software Foundation, Inc.
 153.622 -+
 153.623 -+This file is free software; you can redistribute it and/or modify it
 153.624 -+under the terms of the GNU General Public License as published by the
 153.625 -+Free Software Foundation; either version 2, or (at your option) any
 153.626 -+later version.
 153.627 -+
 153.628 -+In addition to the permissions in the GNU General Public License, the
 153.629 -+Free Software Foundation gives you unlimited permission to link the
 153.630 -+compiled version of this file with other programs, and to distribute
 153.631 -+those programs without any restriction coming from the use of this
 153.632 -+file.  (The General Public License restrictions do apply in other
 153.633 -+respects; for example, they cover modification of the file, and
 153.634 -+distribution when not linked into another program.)
 153.635 -+
 153.636 -+This file is distributed in the hope that it will be useful, but
 153.637 -+WITHOUT ANY WARRANTY; without even the implied warranty of
 153.638 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 153.639 -+General Public License for more details.
 153.640 -+
 153.641 -+You should have received a copy of the GNU General Public License
 153.642 -+along with this program; see the file COPYING.  If not, write to
 153.643 -+the Free Software Foundation, 59 Temple Place - Suite 330,
 153.644 -+Boston, MA 02111-1307, USA.  */
 153.645 -+
 153.646 -+/* As a special exception, if you link this library with other files,
 153.647 -+   some of which are compiled with GCC, to produce an executable,
 153.648 -+   this library does not by itself cause the resulting executable
 153.649 -+   to be covered by the GNU General Public License.
 153.650 -+   This exception does not however invalidate any other reasons why
 153.651 -+   the executable file might be covered by the GNU General Public License.  */
 153.652 -+
 153.653 -+/* This implements IEEE 754 format arithmetic, but does not provide a
 153.654 -+   mechanism for setting the rounding mode, or for generating or handling
 153.655 -+   exceptions.
 153.656 -+
 153.657 -+   The original code by Steve Chamberlain, hacked by Mark Eichin and Jim
 153.658 -+   Wilson, all of Cygnus Support.  */
 153.659 -+
 153.660 -+/* The intended way to use this file is to make two copies, add `#define FLOAT'
 153.661 -+   to one copy, then compile both copies and add them to libgcc.a.  */
 153.662 -+
 153.663 -+#include "tconfig.h"
 153.664 -+#include "coretypes.h"
 153.665 -+#include "tm.h"
 153.666 -+#include "config/fp-bit.h"
 153.667 -+
 153.668 -+/* The following macros can be defined to change the behavior of this file:
 153.669 -+   FLOAT: Implement a `float', aka SFmode, fp library.  If this is not
 153.670 -+     defined, then this file implements a `double', aka DFmode, fp library.
 153.671 -+   FLOAT_ONLY: Used with FLOAT, to implement a `float' only library, i.e.
 153.672 -+     don't include float->double conversion which requires the double library.
 153.673 -+     This is useful only for machines which can't support doubles, e.g. some
 153.674 -+     8-bit processors.
 153.675 -+   CMPtype: Specify the type that floating point compares should return.
 153.676 -+     This defaults to SItype, aka int.
 153.677 -+   US_SOFTWARE_GOFAST: This makes all entry points use the same names as the
 153.678 -+     US Software goFast library.
 153.679 -+   _DEBUG_BITFLOAT: This makes debugging the code a little easier, by adding
 153.680 -+     two integers to the FLO_union_type.
 153.681 -+   NO_DENORMALS: Disable handling of denormals.
 153.682 -+   NO_NANS: Disable nan and infinity handling
 153.683 -+   SMALL_MACHINE: Useful when operations on QIs and HIs are faster
 153.684 -+     than on an SI */
 153.685 -+
 153.686 -+/* We don't currently support extended floats (long doubles) on machines
 153.687 -+   without hardware to deal with them.
 153.688 -+
 153.689 -+   These stubs are just to keep the linker from complaining about unresolved
 153.690 -+   references which can be pulled in from libio & libstdc++, even if the
 153.691 -+   user isn't using long doubles.  However, they may generate an unresolved
 153.692 -+   external to abort if abort is not used by the function, and the stubs
 153.693 -+   are referenced from within libc, since libgcc goes before and after the
 153.694 -+   system library.  */
 153.695 -+
 153.696 -+#ifdef DECLARE_LIBRARY_RENAMES
 153.697 -+  DECLARE_LIBRARY_RENAMES
 153.698 -+#endif
 153.699 -+
 153.700 -+#ifdef EXTENDED_FLOAT_STUBS
 153.701 -+extern void abort (void);
 153.702 -+void __extendsfxf2 (void) { abort(); }
 153.703 -+void __extenddfxf2 (void) { abort(); }
 153.704 -+void __truncxfdf2 (void) { abort(); }
 153.705 -+void __truncxfsf2 (void) { abort(); }
 153.706 -+void __fixxfsi (void) { abort(); }
 153.707 -+void __floatsixf (void) { abort(); }
 153.708 -+void __addxf3 (void) { abort(); }
 153.709 -+void __subxf3 (void) { abort(); }
 153.710 -+void __mulxf3 (void) { abort(); }
 153.711 -+void __divxf3 (void) { abort(); }
 153.712 -+void __negxf2 (void) { abort(); }
 153.713 -+void __eqxf2 (void) { abort(); }
 153.714 -+void __nexf2 (void) { abort(); }
 153.715 -+void __gtxf2 (void) { abort(); }
 153.716 -+void __gexf2 (void) { abort(); }
 153.717 -+void __lexf2 (void) { abort(); }
 153.718 -+void __ltxf2 (void) { abort(); }
 153.719 -+
 153.720 -+void __extendsftf2 (void) { abort(); }
 153.721 -+void __extenddftf2 (void) { abort(); }
 153.722 -+void __trunctfdf2 (void) { abort(); }
 153.723 -+void __trunctfsf2 (void) { abort(); }
 153.724 -+void __fixtfsi (void) { abort(); }
 153.725 -+void __floatsitf (void) { abort(); }
 153.726 -+void __addtf3 (void) { abort(); }
 153.727 -+void __subtf3 (void) { abort(); }
 153.728 -+void __multf3 (void) { abort(); }
 153.729 -+void __divtf3 (void) { abort(); }
 153.730 -+void __negtf2 (void) { abort(); }
 153.731 -+void __eqtf2 (void) { abort(); }
 153.732 -+void __netf2 (void) { abort(); }
 153.733 -+void __gttf2 (void) { abort(); }
 153.734 -+void __getf2 (void) { abort(); }
 153.735 -+void __letf2 (void) { abort(); }
 153.736 -+void __lttf2 (void) { abort(); }
 153.737 -+#else	/* !EXTENDED_FLOAT_STUBS, rest of file */
 153.738 -+
 153.739 -+/* IEEE "special" number predicates */
 153.740 -+
 153.741 -+#ifdef NO_NANS
 153.742 -+
 153.743 -+#define nan() 0
 153.744 -+#define isnan(x) 0
 153.745 -+#define isinf(x) 0
 153.746 -+#else
 153.747 -+
 153.748 -+#if   defined L_thenan_sf
 153.749 -+const fp_number_type __thenan_sf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
 153.750 -+#elif defined L_thenan_df
 153.751 -+const fp_number_type __thenan_df = { CLASS_SNAN, 0, 0, {(fractype) 0} };
 153.752 -+#elif defined L_thenan_tf
 153.753 -+const fp_number_type __thenan_tf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
 153.754 -+#elif defined TFLOAT
 153.755 -+extern const fp_number_type __thenan_tf;
 153.756 -+#elif defined FLOAT
 153.757 -+extern const fp_number_type __thenan_sf;
 153.758 -+#else
 153.759 -+extern const fp_number_type __thenan_df;
 153.760 -+#endif
 153.761 -+
 153.762 -+INLINE
 153.763 -+static fp_number_type *
 153.764 -+nan (void)
 153.765 -+{
 153.766 -+  /* Discard the const qualifier...  */
 153.767 -+#ifdef TFLOAT
 153.768 -+  return (fp_number_type *) (& __thenan_tf);
 153.769 -+#elif defined FLOAT  
 153.770 -+  return (fp_number_type *) (& __thenan_sf);
 153.771 -+#else
 153.772 -+  return (fp_number_type *) (& __thenan_df);
 153.773 -+#endif
 153.774 -+}
 153.775 -+
 153.776 -+INLINE
 153.777 -+static int
 153.778 -+isnan ( fp_number_type *  x)
 153.779 -+{
 153.780 -+  return x->class == CLASS_SNAN || x->class == CLASS_QNAN;
 153.781 -+}
 153.782 -+
 153.783 -+INLINE
 153.784 -+static int
 153.785 -+isinf ( fp_number_type *  x)
 153.786 -+{
 153.787 -+  return x->class == CLASS_INFINITY;
 153.788 -+}
 153.789 -+
 153.790 -+#endif /* NO_NANS */
 153.791 -+
 153.792 -+INLINE
 153.793 -+static int
 153.794 -+iszero ( fp_number_type *  x)
 153.795 -+{
 153.796 -+  return x->class == CLASS_ZERO;
 153.797 -+}
 153.798 -+
 153.799 -+INLINE 
 153.800 -+static void
 153.801 -+flip_sign ( fp_number_type *  x)
 153.802 -+{
 153.803 -+  x->sign = !x->sign;
 153.804 -+}
 153.805 -+
 153.806 -+extern FLO_type pack_d ( fp_number_type * );
 153.807 -+
 153.808 -+#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
 153.809 -+FLO_type
 153.810 -+pack_d ( fp_number_type *  src)
 153.811 -+{
 153.812 -+  FLO_union_type dst;
 153.813 -+  fractype fraction = src->fraction.ll;	/* wasn't unsigned before? */
 153.814 -+  int sign = src->sign;
 153.815 -+  int exp = 0;
 153.816 -+
 153.817 -+  if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && (isnan (src) || isinf (src)))
 153.818 -+    {
 153.819 -+      /* We can't represent these values accurately.  By using the
 153.820 -+	 largest possible magnitude, we guarantee that the conversion
 153.821 -+	 of infinity is at least as big as any finite number.  */
 153.822 -+      exp = EXPMAX;
 153.823 -+      fraction = ((fractype) 1 << FRACBITS) - 1;
 153.824 -+    }
 153.825 -+  else if (isnan (src))
 153.826 -+    {
 153.827 -+      exp = EXPMAX;
 153.828 -+      if (src->class == CLASS_QNAN || 1)
 153.829 -+	{
 153.830 -+#ifdef QUIET_NAN_NEGATED
 153.831 -+	  fraction |= QUIET_NAN - 1;
 153.832 -+#else
 153.833 -+	  fraction |= QUIET_NAN;
 153.834 -+#endif
 153.835 -+	}
 153.836 -+    }
 153.837 -+  else if (isinf (src))
 153.838 -+    {
 153.839 -+      exp = EXPMAX;
 153.840 -+      fraction = 0;
 153.841 -+    }
 153.842 -+  else if (iszero (src))
 153.843 -+    {
 153.844 -+      exp = 0;
 153.845 -+      fraction = 0;
 153.846 -+    }
 153.847 -+  else if (fraction == 0)
 153.848 -+    {
 153.849 -+      exp = 0;
 153.850 -+    }
 153.851 -+  else
 153.852 -+    {
 153.853 -+      if (src->normal_exp < NORMAL_EXPMIN)
 153.854 -+	{
 153.855 -+#ifdef NO_DENORMALS
 153.856 -+	  /* Go straight to a zero representation if denormals are not
 153.857 -+ 	     supported.  The denormal handling would be harmless but
 153.858 -+ 	     isn't unnecessary.  */
 153.859 -+	  exp = 0;
 153.860 -+	  fraction = 0;
 153.861 -+#else /* NO_DENORMALS */
 153.862 -+	  /* This number's exponent is too low to fit into the bits
 153.863 -+	     available in the number, so we'll store 0 in the exponent and
 153.864 -+	     shift the fraction to the right to make up for it.  */
 153.865 -+
 153.866 -+	  int shift = NORMAL_EXPMIN - src->normal_exp;
 153.867 -+
 153.868 -+	  exp = 0;
 153.869 -+
 153.870 -+	  if (shift > FRAC_NBITS - NGARDS)
 153.871 -+	    {
 153.872 -+	      /* No point shifting, since it's more that 64 out.  */
 153.873 -+	      fraction = 0;
 153.874 -+	    }
 153.875 -+	  else
 153.876 -+	    {
 153.877 -+	      int lowbit = (fraction & (((fractype)1 << shift) - 1)) ? 1 : 0;
 153.878 -+	      fraction = (fraction >> shift) | lowbit;
 153.879 -+	    }
 153.880 -+	  if ((fraction & GARDMASK) == GARDMSB)
 153.881 -+	    {
 153.882 -+	      if ((fraction & (1 << NGARDS)))
 153.883 -+		fraction += GARDROUND + 1;
 153.884 -+	    }
 153.885 -+	  else
 153.886 -+	    {
 153.887 -+	      /* Add to the guards to round up.  */
 153.888 -+	      fraction += GARDROUND;
 153.889 -+	    }
 153.890 -+	  /* Perhaps the rounding means we now need to change the
 153.891 -+             exponent, because the fraction is no longer denormal.  */
 153.892 -+	  if (fraction >= IMPLICIT_1)
 153.893 -+	    {
 153.894 -+	      exp += 1;
 153.895 -+	    }
 153.896 -+	  fraction >>= NGARDS;
 153.897 -+#endif /* NO_DENORMALS */
 153.898 -+	}
 153.899 -+      else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS)
 153.900 -+	       && src->normal_exp > EXPBIAS)
 153.901 -+	{
 153.902 -+	  exp = EXPMAX;
 153.903 -+	  fraction = 0;
 153.904 -+	}
 153.905 -+      else
 153.906 -+	{
 153.907 -+	  exp = src->normal_exp + EXPBIAS;
 153.908 -+	  if (!ROUND_TOWARDS_ZERO)
 153.909 -+	    {
 153.910 -+	      /* IF the gard bits are the all zero, but the first, then we're
 153.911 -+		 half way between two numbers, choose the one which makes the
 153.912 -+		 lsb of the answer 0.  */
 153.913 -+	      if ((fraction & GARDMASK) == GARDMSB)
 153.914 -+		{
 153.915 -+		  if (fraction & (1 << NGARDS))
 153.916 -+		    fraction += GARDROUND + 1;
 153.917 -+		}
 153.918 -+	      else
 153.919 -+		{
 153.920 -+		  /* Add a one to the guards to round up */
 153.921 -+		  fraction += GARDROUND;
 153.922 -+		}
 153.923 -+	      if (fraction >= IMPLICIT_2)
 153.924 -+		{
 153.925 -+		  fraction >>= 1;
 153.926 -+		  exp += 1;
 153.927 -+		}
 153.928 -+	    }
 153.929 -+	  fraction >>= NGARDS;
 153.930 -+
 153.931 -+	  if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp > EXPMAX)
 153.932 -+	    {
 153.933 -+	      /* Saturate on overflow.  */
 153.934 -+	      exp = EXPMAX;
 153.935 -+	      fraction = ((fractype) 1 << FRACBITS) - 1;
 153.936 -+	    }
 153.937 -+	}
 153.938 -+    }
 153.939 -+
 153.940 -+  /* We previously used bitfields to store the number, but this doesn't
 153.941 -+     handle little/big endian systems conveniently, so use shifts and
 153.942 -+     masks */
 153.943 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
 153.944 -+  dst.bits.fraction = fraction;
 153.945 -+  dst.bits.exp = exp;
 153.946 -+  dst.bits.sign = sign;
 153.947 -+#else
 153.948 -+# if defined TFLOAT && defined HALFFRACBITS
 153.949 -+ {
 153.950 -+   halffractype high, low, unity;
 153.951 -+   int lowsign, lowexp;
 153.952 -+
 153.953 -+   unity = (halffractype) 1 << HALFFRACBITS;
 153.954 -+
 153.955 -+   /* Set HIGH to the high double's significand, masking out the implicit 1.
 153.956 -+      Set LOW to the low double's full significand.  */
 153.957 -+   high = (fraction >> (FRACBITS - HALFFRACBITS)) & (unity - 1);
 153.958 -+   low = fraction & (unity * 2 - 1);
 153.959 -+
 153.960 -+   /* Get the initial sign and exponent of the low double.  */
 153.961 -+   lowexp = exp - HALFFRACBITS - 1;
 153.962 -+   lowsign = sign;
 153.963 -+
 153.964 -+   /* HIGH should be rounded like a normal double, making |LOW| <=
 153.965 -+      0.5 ULP of HIGH.  Assume round-to-nearest.  */
 153.966 -+   if (exp < EXPMAX)
 153.967 -+     if (low > unity || (low == unity && (high & 1) == 1))
 153.968 -+       {
 153.969 -+	 /* Round HIGH up and adjust LOW to match.  */
 153.970 -+	 high++;
 153.971 -+	 if (high == unity)
 153.972 -+	   {
 153.973 -+	     /* May make it infinite, but that's OK.  */
 153.974 -+	     high = 0;
 153.975 -+	     exp++;
 153.976 -+	   }
 153.977 -+	 low = unity * 2 - low;
 153.978 -+	 lowsign ^= 1;
 153.979 -+       }
 153.980 -+
 153.981 -+   high |= (halffractype) exp << HALFFRACBITS;
 153.982 -+   high |= (halffractype) sign << (HALFFRACBITS + EXPBITS);
 153.983 -+
 153.984 -+   if (exp == EXPMAX || exp == 0 || low == 0)
 153.985 -+     low = 0;
 153.986 -+   else
 153.987 -+     {
 153.988 -+       while (lowexp > 0 && low < unity)
 153.989 -+	 {
 153.990 -+	   low <<= 1;
 153.991 -+	   lowexp--;
 153.992 -+	 }
 153.993 -+
 153.994 -+       if (lowexp <= 0)
 153.995 -+	 {
 153.996 -+	   halffractype roundmsb, round;
 153.997 -+	   int shift;
 153.998 -+
 153.999 -+	   shift = 1 - lowexp;
153.1000 -+	   roundmsb = (1 << (shift - 1));
153.1001 -+	   round = low & ((roundmsb << 1) - 1);
153.1002 -+
153.1003 -+	   low >>= shift;
153.1004 -+	   lowexp = 0;
153.1005 -+
153.1006 -+	   if (round > roundmsb || (round == roundmsb && (low & 1) == 1))
153.1007 -+	     {
153.1008 -+	       low++;
153.1009 -+	       if (low == unity)
153.1010 -+		 /* LOW rounds up to the smallest normal number.  */
153.1011 -+		 lowexp++;
153.1012 -+	     }
153.1013 -+	 }
153.1014 -+
153.1015 -+       low &= unity - 1;
153.1016 -+       low |= (halffractype) lowexp << HALFFRACBITS;
153.1017 -+       low |= (halffractype) lowsign << (HALFFRACBITS + EXPBITS);
153.1018 -+     }
153.1019 -+   dst.value_raw = ((fractype) high << HALFSHIFT) | low;
153.1020 -+ }
153.1021 -+# else
153.1022 -+  dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
153.1023 -+  dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
153.1024 -+  dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
153.1025 -+# endif
153.1026 -+#endif
153.1027 -+
153.1028 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.1029 -+#ifdef TFLOAT
153.1030 -+  {
153.1031 -+    qrtrfractype tmp1 = dst.words[0];
153.1032 -+    qrtrfractype tmp2 = dst.words[1];
153.1033 -+    dst.words[0] = dst.words[3];
153.1034 -+    dst.words[1] = dst.words[2];
153.1035 -+    dst.words[2] = tmp2;
153.1036 -+    dst.words[3] = tmp1;
153.1037 -+  }
153.1038 -+#else
153.1039 -+  {
153.1040 -+    halffractype tmp = dst.words[0];
153.1041 -+    dst.words[0] = dst.words[1];
153.1042 -+    dst.words[1] = tmp;
153.1043 -+  }
153.1044 -+#endif
153.1045 -+#endif
153.1046 -+
153.1047 -+  return dst.value;
153.1048 -+}
153.1049 -+#endif
153.1050 -+
153.1051 -+#if defined(L_unpack_df) || defined(L_unpack_sf) || defined(L_unpack_tf)
153.1052 -+void
153.1053 -+unpack_d (FLO_union_type * src, fp_number_type * dst)
153.1054 -+{
153.1055 -+  /* We previously used bitfields to store the number, but this doesn't
153.1056 -+     handle little/big endian systems conveniently, so use shifts and
153.1057 -+     masks */
153.1058 -+  fractype fraction;
153.1059 -+  int exp;
153.1060 -+  int sign;
153.1061 -+
153.1062 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.1063 -+  FLO_union_type swapped;
153.1064 -+
153.1065 -+#ifdef TFLOAT
153.1066 -+  swapped.words[0] = src->words[3];
153.1067 -+  swapped.words[1] = src->words[2];
153.1068 -+  swapped.words[2] = src->words[1];
153.1069 -+  swapped.words[3] = src->words[0];
153.1070 -+#else
153.1071 -+  swapped.words[0] = src->words[1];
153.1072 -+  swapped.words[1] = src->words[0];
153.1073 -+#endif
153.1074 -+  src = &swapped;
153.1075 -+#endif
153.1076 -+  
153.1077 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.1078 -+  fraction = src->bits.fraction;
153.1079 -+  exp = src->bits.exp;
153.1080 -+  sign = src->bits.sign;
153.1081 -+#else
153.1082 -+# if defined TFLOAT && defined HALFFRACBITS
153.1083 -+ {
153.1084 -+   halffractype high, low;
153.1085 -+   
153.1086 -+   high = src->value_raw >> HALFSHIFT;
153.1087 -+   low = src->value_raw & (((fractype)1 << HALFSHIFT) - 1);
153.1088 -+
153.1089 -+   fraction = high & ((((fractype)1) << HALFFRACBITS) - 1);
153.1090 -+   fraction <<= FRACBITS - HALFFRACBITS;
153.1091 -+   exp = ((int)(high >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.1092 -+   sign = ((int)(high >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.1093 -+
153.1094 -+   if (exp != EXPMAX && exp != 0 && low != 0)
153.1095 -+     {
153.1096 -+       int lowexp = ((int)(low >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.1097 -+       int lowsign = ((int)(low >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.1098 -+       int shift;
153.1099 -+       fractype xlow;
153.1100 -+
153.1101 -+       xlow = low & ((((fractype)1) << HALFFRACBITS) - 1);
153.1102 -+       if (lowexp)
153.1103 -+	 xlow |= (((halffractype)1) << HALFFRACBITS);
153.1104 -+       else
153.1105 -+	 lowexp = 1;
153.1106 -+       shift = (FRACBITS - HALFFRACBITS) - (exp - lowexp);
153.1107 -+       if (shift > 0)
153.1108 -+	 xlow <<= shift;
153.1109 -+       else if (shift < 0)
153.1110 -+	 xlow >>= -shift;
153.1111 -+       if (sign == lowsign)
153.1112 -+	 fraction += xlow;
153.1113 -+       else if (fraction >= xlow)
153.1114 -+	 fraction -= xlow;
153.1115 -+       else
153.1116 -+	 {
153.1117 -+	   /* The high part is a power of two but the full number is lower.
153.1118 -+	      This code will leave the implicit 1 in FRACTION, but we'd
153.1119 -+	      have added that below anyway.  */
153.1120 -+	   fraction = (((fractype) 1 << FRACBITS) - xlow) << 1;
153.1121 -+	   exp--;
153.1122 -+	 }
153.1123 -+     }
153.1124 -+ }
153.1125 -+# else
153.1126 -+  fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
153.1127 -+  exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
153.1128 -+  sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
153.1129 -+# endif
153.1130 -+#endif
153.1131 -+
153.1132 -+  dst->sign = sign;
153.1133 -+  if (exp == 0)
153.1134 -+    {
153.1135 -+      /* Hmm.  Looks like 0 */
153.1136 -+      if (fraction == 0
153.1137 -+#ifdef NO_DENORMALS
153.1138 -+	  || 1
153.1139 -+#endif
153.1140 -+	  )
153.1141 -+	{
153.1142 -+	  /* tastes like zero */
153.1143 -+	  dst->class = CLASS_ZERO;
153.1144 -+	}
153.1145 -+      else
153.1146 -+	{
153.1147 -+	  /* Zero exponent with nonzero fraction - it's denormalized,
153.1148 -+	     so there isn't a leading implicit one - we'll shift it so
153.1149 -+	     it gets one.  */
153.1150 -+	  dst->normal_exp = exp - EXPBIAS + 1;
153.1151 -+	  fraction <<= NGARDS;
153.1152 -+
153.1153 -+	  dst->class = CLASS_NUMBER;
153.1154 -+#if 1
153.1155 -+	  while (fraction < IMPLICIT_1)
153.1156 -+	    {
153.1157 -+	      fraction <<= 1;
153.1158 -+	      dst->normal_exp--;
153.1159 -+	    }
153.1160 -+#endif
153.1161 -+	  dst->fraction.ll = fraction;
153.1162 -+	}
153.1163 -+    }
153.1164 -+  else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp == EXPMAX)
153.1165 -+    {
153.1166 -+      /* Huge exponent*/
153.1167 -+      if (fraction == 0)
153.1168 -+	{
153.1169 -+	  /* Attached to a zero fraction - means infinity */
153.1170 -+	  dst->class = CLASS_INFINITY;
153.1171 -+	}
153.1172 -+      else
153.1173 -+	{
153.1174 -+	  /* Nonzero fraction, means nan */
153.1175 -+#ifdef QUIET_NAN_NEGATED
153.1176 -+	  if ((fraction & QUIET_NAN) == 0)
153.1177 -+#else
153.1178 -+	  if (fraction & QUIET_NAN)
153.1179 -+#endif
153.1180 -+	    {
153.1181 -+	      dst->class = CLASS_QNAN;
153.1182 -+	    }
153.1183 -+	  else
153.1184 -+	    {
153.1185 -+	      dst->class = CLASS_SNAN;
153.1186 -+	    }
153.1187 -+	  /* Keep the fraction part as the nan number */
153.1188 -+	  dst->fraction.ll = fraction;
153.1189 -+	}
153.1190 -+    }
153.1191 -+  else
153.1192 -+    {
153.1193 -+      /* Nothing strange about this number */
153.1194 -+      dst->normal_exp = exp - EXPBIAS;
153.1195 -+      dst->class = CLASS_NUMBER;
153.1196 -+      dst->fraction.ll = (fraction << NGARDS) | IMPLICIT_1;
153.1197 -+    }
153.1198 -+}
153.1199 -+#endif /* L_unpack_df || L_unpack_sf */
153.1200 -+
153.1201 -+#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
153.1202 -+static fp_number_type *
153.1203 -+_fpadd_parts (fp_number_type * a,
153.1204 -+	      fp_number_type * b,
153.1205 -+	      fp_number_type * tmp)
153.1206 -+{
153.1207 -+  intfrac tfraction;
153.1208 -+
153.1209 -+  /* Put commonly used fields in local variables.  */
153.1210 -+  int a_normal_exp;
153.1211 -+  int b_normal_exp;
153.1212 -+  fractype a_fraction;
153.1213 -+  fractype b_fraction;
153.1214 -+
153.1215 -+  if (isnan (a))
153.1216 -+    {
153.1217 -+      return a;
153.1218 -+    }
153.1219 -+  if (isnan (b))
153.1220 -+    {
153.1221 -+      return b;
153.1222 -+    }
153.1223 -+  if (isinf (a))
153.1224 -+    {
153.1225 -+      /* Adding infinities with opposite signs yields a NaN.  */
153.1226 -+      if (isinf (b) && a->sign != b->sign)
153.1227 -+	return nan ();
153.1228 -+      return a;
153.1229 -+    }
153.1230 -+  if (isinf (b))
153.1231 -+    {
153.1232 -+      return b;
153.1233 -+    }
153.1234 -+  if (iszero (b))
153.1235 -+    {
153.1236 -+      if (iszero (a))
153.1237 -+	{
153.1238 -+	  *tmp = *a;
153.1239 -+	  tmp->sign = a->sign & b->sign;
153.1240 -+	  return tmp;
153.1241 -+	}
153.1242 -+      return a;
153.1243 -+    }
153.1244 -+  if (iszero (a))
153.1245 -+    {
153.1246 -+      return b;
153.1247 -+    }
153.1248 -+
153.1249 -+  /* Got two numbers. shift the smaller and increment the exponent till
153.1250 -+     they're the same */
153.1251 -+  {
153.1252 -+    int diff;
153.1253 -+
153.1254 -+    a_normal_exp = a->normal_exp;
153.1255 -+    b_normal_exp = b->normal_exp;
153.1256 -+    a_fraction = a->fraction.ll;
153.1257 -+    b_fraction = b->fraction.ll;
153.1258 -+
153.1259 -+    diff = a_normal_exp - b_normal_exp;
153.1260 -+
153.1261 -+    if (diff < 0)
153.1262 -+      diff = -diff;
153.1263 -+    if (diff < FRAC_NBITS)
153.1264 -+      {
153.1265 -+	/* ??? This does shifts one bit at a time.  Optimize.  */
153.1266 -+	while (a_normal_exp > b_normal_exp)
153.1267 -+	  {
153.1268 -+	    b_normal_exp++;
153.1269 -+	    LSHIFT (b_fraction);
153.1270 -+	  }
153.1271 -+	while (b_normal_exp > a_normal_exp)
153.1272 -+	  {
153.1273 -+	    a_normal_exp++;
153.1274 -+	    LSHIFT (a_fraction);
153.1275 -+	  }
153.1276 -+      }
153.1277 -+    else
153.1278 -+      {
153.1279 -+	/* Somethings's up.. choose the biggest */
153.1280 -+	if (a_normal_exp > b_normal_exp)
153.1281 -+	  {
153.1282 -+	    b_normal_exp = a_normal_exp;
153.1283 -+	    b_fraction = 0;
153.1284 -+	  }
153.1285 -+	else
153.1286 -+	  {
153.1287 -+	    a_normal_exp = b_normal_exp;
153.1288 -+	    a_fraction = 0;
153.1289 -+	  }
153.1290 -+      }
153.1291 -+  }
153.1292 -+
153.1293 -+  if (a->sign != b->sign)
153.1294 -+    {
153.1295 -+      if (a->sign)
153.1296 -+	{
153.1297 -+	  tfraction = -a_fraction + b_fraction;
153.1298 -+	}
153.1299 -+      else
153.1300 -+	{
153.1301 -+	  tfraction = a_fraction - b_fraction;
153.1302 -+	}
153.1303 -+      if (tfraction >= 0)
153.1304 -+	{
153.1305 -+	  tmp->sign = 0;
153.1306 -+	  tmp->normal_exp = a_normal_exp;
153.1307 -+	  tmp->fraction.ll = tfraction;
153.1308 -+	}
153.1309 -+      else
153.1310 -+	{
153.1311 -+	  tmp->sign = 1;
153.1312 -+	  tmp->normal_exp = a_normal_exp;
153.1313 -+	  tmp->fraction.ll = -tfraction;
153.1314 -+	}
153.1315 -+      /* and renormalize it */
153.1316 -+
153.1317 -+      while (tmp->fraction.ll < IMPLICIT_1 && tmp->fraction.ll)
153.1318 -+	{
153.1319 -+	  tmp->fraction.ll <<= 1;
153.1320 -+	  tmp->normal_exp--;
153.1321 -+	}
153.1322 -+    }
153.1323 -+  else
153.1324 -+    {
153.1325 -+      tmp->sign = a->sign;
153.1326 -+      tmp->normal_exp = a_normal_exp;
153.1327 -+      tmp->fraction.ll = a_fraction + b_fraction;
153.1328 -+    }
153.1329 -+  tmp->class = CLASS_NUMBER;
153.1330 -+  /* Now the fraction is added, we have to shift down to renormalize the
153.1331 -+     number */
153.1332 -+
153.1333 -+  if (tmp->fraction.ll >= IMPLICIT_2)
153.1334 -+    {
153.1335 -+      LSHIFT (tmp->fraction.ll);
153.1336 -+      tmp->normal_exp++;
153.1337 -+    }
153.1338 -+  return tmp;
153.1339 -+
153.1340 -+}
153.1341 -+
153.1342 -+FLO_type
153.1343 -+add (FLO_type arg_a, FLO_type arg_b)
153.1344 -+{
153.1345 -+  fp_number_type a;
153.1346 -+  fp_number_type b;
153.1347 -+  fp_number_type tmp;
153.1348 -+  fp_number_type *res;
153.1349 -+  FLO_union_type au, bu;
153.1350 -+
153.1351 -+  au.value = arg_a;
153.1352 -+  bu.value = arg_b;
153.1353 -+
153.1354 -+  unpack_d (&au, &a);
153.1355 -+  unpack_d (&bu, &b);
153.1356 -+
153.1357 -+  res = _fpadd_parts (&a, &b, &tmp);
153.1358 -+
153.1359 -+  return pack_d (res);
153.1360 -+}
153.1361 -+
153.1362 -+FLO_type
153.1363 -+sub (FLO_type arg_a, FLO_type arg_b)
153.1364 -+{
153.1365 -+  fp_number_type a;
153.1366 -+  fp_number_type b;
153.1367 -+  fp_number_type tmp;
153.1368 -+  fp_number_type *res;
153.1369 -+  FLO_union_type au, bu;
153.1370 -+
153.1371 -+  au.value = arg_a;
153.1372 -+  bu.value = arg_b;
153.1373 -+
153.1374 -+  unpack_d (&au, &a);
153.1375 -+  unpack_d (&bu, &b);
153.1376 -+
153.1377 -+  b.sign ^= 1;
153.1378 -+
153.1379 -+  res = _fpadd_parts (&a, &b, &tmp);
153.1380 -+
153.1381 -+  return pack_d (res);
153.1382 -+}
153.1383 -+#endif /* L_addsub_sf || L_addsub_df */
153.1384 -+
153.1385 -+#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
153.1386 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.1387 -+_fpmul_parts ( fp_number_type *  a,
153.1388 -+	       fp_number_type *  b,
153.1389 -+	       fp_number_type * tmp)
153.1390 -+{
153.1391 -+  fractype low = 0;
153.1392 -+  fractype high = 0;
153.1393 -+
153.1394 -+  if (isnan (a))
153.1395 -+    {
153.1396 -+      a->sign = a->sign != b->sign;
153.1397 -+      return a;
153.1398 -+    }
153.1399 -+  if (isnan (b))
153.1400 -+    {
153.1401 -+      b->sign = a->sign != b->sign;
153.1402 -+      return b;
153.1403 -+    }
153.1404 -+  if (isinf (a))
153.1405 -+    {
153.1406 -+      if (iszero (b))
153.1407 -+	return nan ();
153.1408 -+      a->sign = a->sign != b->sign;
153.1409 -+      return a;
153.1410 -+    }
153.1411 -+  if (isinf (b))
153.1412 -+    {
153.1413 -+      if (iszero (a))
153.1414 -+	{
153.1415 -+	  return nan ();
153.1416 -+	}
153.1417 -+      b->sign = a->sign != b->sign;
153.1418 -+      return b;
153.1419 -+    }
153.1420 -+  if (iszero (a))
153.1421 -+    {
153.1422 -+      a->sign = a->sign != b->sign;
153.1423 -+      return a;
153.1424 -+    }
153.1425 -+  if (iszero (b))
153.1426 -+    {
153.1427 -+      b->sign = a->sign != b->sign;
153.1428 -+      return b;
153.1429 -+    }
153.1430 -+
153.1431 -+  /* Calculate the mantissa by multiplying both numbers to get a
153.1432 -+     twice-as-wide number.  */
153.1433 -+  {
153.1434 -+#if defined(NO_DI_MODE) || defined(TFLOAT)
153.1435 -+    {
153.1436 -+      fractype x = a->fraction.ll;
153.1437 -+      fractype ylow = b->fraction.ll;
153.1438 -+      fractype yhigh = 0;
153.1439 -+      int bit;
153.1440 -+
153.1441 -+      /* ??? This does multiplies one bit at a time.  Optimize.  */
153.1442 -+      for (bit = 0; bit < FRAC_NBITS; bit++)
153.1443 -+	{
153.1444 -+	  int carry;
153.1445 -+
153.1446 -+	  if (x & 1)
153.1447 -+	    {
153.1448 -+	      carry = (low += ylow) < ylow;
153.1449 -+	      high += yhigh + carry;
153.1450 -+	    }
153.1451 -+	  yhigh <<= 1;
153.1452 -+	  if (ylow & FRACHIGH)
153.1453 -+	    {
153.1454 -+	      yhigh |= 1;
153.1455 -+	    }
153.1456 -+	  ylow <<= 1;
153.1457 -+	  x >>= 1;
153.1458 -+	}
153.1459 -+    }
153.1460 -+#elif defined(FLOAT) 
153.1461 -+    /* Multiplying two USIs to get a UDI, we're safe.  */
153.1462 -+    {
153.1463 -+      UDItype answer = (UDItype)a->fraction.ll * (UDItype)b->fraction.ll;
153.1464 -+      
153.1465 -+      high = answer >> BITS_PER_SI;
153.1466 -+      low = answer;
153.1467 -+    }
153.1468 -+#else
153.1469 -+    /* fractype is DImode, but we need the result to be twice as wide.
153.1470 -+       Assuming a widening multiply from DImode to TImode is not
153.1471 -+       available, build one by hand.  */
153.1472 -+    {
153.1473 -+      USItype nl = a->fraction.ll;
153.1474 -+      USItype nh = a->fraction.ll >> BITS_PER_SI;
153.1475 -+      USItype ml = b->fraction.ll;
153.1476 -+      USItype mh = b->fraction.ll >> BITS_PER_SI;
153.1477 -+      UDItype pp_ll = (UDItype) ml * nl;
153.1478 -+      UDItype pp_hl = (UDItype) mh * nl;
153.1479 -+      UDItype pp_lh = (UDItype) ml * nh;
153.1480 -+      UDItype pp_hh = (UDItype) mh * nh;
153.1481 -+      UDItype res2 = 0;
153.1482 -+      UDItype res0 = 0;
153.1483 -+      UDItype ps_hh__ = pp_hl + pp_lh;
153.1484 -+      if (ps_hh__ < pp_hl)
153.1485 -+	res2 += (UDItype)1 << BITS_PER_SI;
153.1486 -+      pp_hl = (UDItype)(USItype)ps_hh__ << BITS_PER_SI;
153.1487 -+      res0 = pp_ll + pp_hl;
153.1488 -+      if (res0 < pp_ll)
153.1489 -+	res2++;
153.1490 -+      res2 += (ps_hh__ >> BITS_PER_SI) + pp_hh;
153.1491 -+      high = res2;
153.1492 -+      low = res0;
153.1493 -+    }
153.1494 -+#endif
153.1495 -+  }
153.1496 -+
153.1497 -+  tmp->normal_exp = a->normal_exp + b->normal_exp
153.1498 -+    + FRAC_NBITS - (FRACBITS + NGARDS);
153.1499 -+  tmp->sign = a->sign != b->sign;
153.1500 -+  while (high >= IMPLICIT_2)
153.1501 -+    {
153.1502 -+      tmp->normal_exp++;
153.1503 -+      if (high & 1)
153.1504 -+	{
153.1505 -+	  low >>= 1;
153.1506 -+	  low |= FRACHIGH;
153.1507 -+	}
153.1508 -+      high >>= 1;
153.1509 -+    }
153.1510 -+  while (high < IMPLICIT_1)
153.1511 -+    {
153.1512 -+      tmp->normal_exp--;
153.1513 -+
153.1514 -+      high <<= 1;
153.1515 -+      if (low & FRACHIGH)
153.1516 -+	high |= 1;
153.1517 -+      low <<= 1;
153.1518 -+    }
153.1519 -+  /* rounding is tricky. if we only round if it won't make us round later.  */
153.1520 -+#if 0
153.1521 -+  if (low & FRACHIGH2)
153.1522 -+    {
153.1523 -+      if (((high & GARDMASK) != GARDMSB)
153.1524 -+	  && (((high + 1) & GARDMASK) == GARDMSB))
153.1525 -+	{
153.1526 -+	  /* don't round, it gets done again later.  */
153.1527 -+	}
153.1528 -+      else
153.1529 -+	{
153.1530 -+	  high++;
153.1531 -+	}
153.1532 -+    }
153.1533 -+#endif
153.1534 -+  if (!ROUND_TOWARDS_ZERO && (high & GARDMASK) == GARDMSB)
153.1535 -+    {
153.1536 -+      if (high & (1 << NGARDS))
153.1537 -+	{
153.1538 -+	  /* half way, so round to even */
153.1539 -+	  high += GARDROUND + 1;
153.1540 -+	}
153.1541 -+      else if (low)
153.1542 -+	{
153.1543 -+	  /* but we really weren't half way */
153.1544 -+	  high += GARDROUND + 1;
153.1545 -+	}
153.1546 -+    }
153.1547 -+  tmp->fraction.ll = high;
153.1548 -+  tmp->class = CLASS_NUMBER;
153.1549 -+  return tmp;
153.1550 -+}
153.1551 -+
153.1552 -+FLO_type
153.1553 -+multiply (FLO_type arg_a, FLO_type arg_b)
153.1554 -+{
153.1555 -+  fp_number_type a;
153.1556 -+  fp_number_type b;
153.1557 -+  fp_number_type tmp;
153.1558 -+  fp_number_type *res;
153.1559 -+  FLO_union_type au, bu;
153.1560 -+
153.1561 -+  au.value = arg_a;
153.1562 -+  bu.value = arg_b;
153.1563 -+
153.1564 -+  unpack_d (&au, &a);
153.1565 -+  unpack_d (&bu, &b);
153.1566 -+
153.1567 -+  res = _fpmul_parts (&a, &b, &tmp);
153.1568 -+
153.1569 -+  return pack_d (res);
153.1570 -+}
153.1571 -+#endif /* L_mul_sf || L_mul_df */
153.1572 -+
153.1573 -+#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
153.1574 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.1575 -+_fpdiv_parts (fp_number_type * a,
153.1576 -+	      fp_number_type * b)
153.1577 -+{
153.1578 -+  fractype bit;
153.1579 -+  fractype numerator;
153.1580 -+  fractype denominator;
153.1581 -+  fractype quotient;
153.1582 -+
153.1583 -+  if (isnan (a))
153.1584 -+    {
153.1585 -+      return a;
153.1586 -+    }
153.1587 -+  if (isnan (b))
153.1588 -+    {
153.1589 -+      return b;
153.1590 -+    }
153.1591 -+
153.1592 -+  a->sign = a->sign ^ b->sign;
153.1593 -+
153.1594 -+  if (isinf (a) || iszero (a))
153.1595 -+    {
153.1596 -+      if (a->class == b->class)
153.1597 -+	return nan ();
153.1598 -+      return a;
153.1599 -+    }
153.1600 -+
153.1601 -+  if (isinf (b))
153.1602 -+    {
153.1603 -+      a->fraction.ll = 0;
153.1604 -+      a->normal_exp = 0;
153.1605 -+      return a;
153.1606 -+    }
153.1607 -+  if (iszero (b))
153.1608 -+    {
153.1609 -+      a->class = CLASS_INFINITY;
153.1610 -+      return a;
153.1611 -+    }
153.1612 -+
153.1613 -+  /* Calculate the mantissa by multiplying both 64bit numbers to get a
153.1614 -+     128 bit number */
153.1615 -+  {
153.1616 -+    /* quotient =
153.1617 -+       ( numerator / denominator) * 2^(numerator exponent -  denominator exponent)
153.1618 -+     */
153.1619 -+
153.1620 -+    a->normal_exp = a->normal_exp - b->normal_exp;
153.1621 -+    numerator = a->fraction.ll;
153.1622 -+    denominator = b->fraction.ll;
153.1623 -+
153.1624 -+    if (numerator < denominator)
153.1625 -+      {
153.1626 -+	/* Fraction will be less than 1.0 */
153.1627 -+	numerator *= 2;
153.1628 -+	a->normal_exp--;
153.1629 -+      }
153.1630 -+    bit = IMPLICIT_1;
153.1631 -+    quotient = 0;
153.1632 -+    /* ??? Does divide one bit at a time.  Optimize.  */
153.1633 -+    while (bit)
153.1634 -+      {
153.1635 -+	if (numerator >= denominator)
153.1636 -+	  {
153.1637 -+	    quotient |= bit;
153.1638 -+	    numerator -= denominator;
153.1639 -+	  }
153.1640 -+	bit >>= 1;
153.1641 -+	numerator *= 2;
153.1642 -+      }
153.1643 -+
153.1644 -+    if (!ROUND_TOWARDS_ZERO && (quotient & GARDMASK) == GARDMSB)
153.1645 -+      {
153.1646 -+	if (quotient & (1 << NGARDS))
153.1647 -+	  {
153.1648 -+	    /* half way, so round to even */
153.1649 -+	    quotient += GARDROUND + 1;
153.1650 -+	  }
153.1651 -+	else if (numerator)
153.1652 -+	  {
153.1653 -+	    /* but we really weren't half way, more bits exist */
153.1654 -+	    quotient += GARDROUND + 1;
153.1655 -+	  }
153.1656 -+      }
153.1657 -+
153.1658 -+    a->fraction.ll = quotient;
153.1659 -+    return (a);
153.1660 -+  }
153.1661 -+}
153.1662 -+
153.1663 -+FLO_type
153.1664 -+divide (FLO_type arg_a, FLO_type arg_b)
153.1665 -+{
153.1666 -+  fp_number_type a;
153.1667 -+  fp_number_type b;
153.1668 -+  fp_number_type *res;
153.1669 -+  FLO_union_type au, bu;
153.1670 -+
153.1671 -+  au.value = arg_a;
153.1672 -+  bu.value = arg_b;
153.1673 -+
153.1674 -+  unpack_d (&au, &a);
153.1675 -+  unpack_d (&bu, &b);
153.1676 -+
153.1677 -+  res = _fpdiv_parts (&a, &b);
153.1678 -+
153.1679 -+  return pack_d (res);
153.1680 -+}
153.1681 -+#endif /* L_div_sf || L_div_df */
153.1682 -+
153.1683 -+#if defined(L_fpcmp_parts_sf) || defined(L_fpcmp_parts_df) \
153.1684 -+    || defined(L_fpcmp_parts_tf)
153.1685 -+/* according to the demo, fpcmp returns a comparison with 0... thus
153.1686 -+   a<b -> -1
153.1687 -+   a==b -> 0
153.1688 -+   a>b -> +1
153.1689 -+ */
153.1690 -+
153.1691 -+int
153.1692 -+__fpcmp_parts (fp_number_type * a, fp_number_type * b)
153.1693 -+{
153.1694 -+#if 0
153.1695 -+  /* either nan -> unordered. Must be checked outside of this routine.  */
153.1696 -+  if (isnan (a) && isnan (b))
153.1697 -+    {
153.1698 -+      return 1;			/* still unordered! */
153.1699 -+    }
153.1700 -+#endif
153.1701 -+
153.1702 -+  if (isnan (a) || isnan (b))
153.1703 -+    {
153.1704 -+      return 1;			/* how to indicate unordered compare? */
153.1705 -+    }
153.1706 -+  if (isinf (a) && isinf (b))
153.1707 -+    {
153.1708 -+      /* +inf > -inf, but +inf != +inf */
153.1709 -+      /* b    \a| +inf(0)| -inf(1)
153.1710 -+       ______\+--------+--------
153.1711 -+       +inf(0)| a==b(0)| a<b(-1)
153.1712 -+       -------+--------+--------
153.1713 -+       -inf(1)| a>b(1) | a==b(0)
153.1714 -+       -------+--------+--------
153.1715 -+       So since unordered must be nonzero, just line up the columns...
153.1716 -+       */
153.1717 -+      return b->sign - a->sign;
153.1718 -+    }
153.1719 -+  /* but not both...  */
153.1720 -+  if (isinf (a))
153.1721 -+    {
153.1722 -+      return a->sign ? -1 : 1;
153.1723 -+    }
153.1724 -+  if (isinf (b))
153.1725 -+    {
153.1726 -+      return b->sign ? 1 : -1;
153.1727 -+    }
153.1728 -+  if (iszero (a) && iszero (b))
153.1729 -+    {
153.1730 -+      return 0;
153.1731 -+    }
153.1732 -+  if (iszero (a))
153.1733 -+    {
153.1734 -+      return b->sign ? 1 : -1;
153.1735 -+    }
153.1736 -+  if (iszero (b))
153.1737 -+    {
153.1738 -+      return a->sign ? -1 : 1;
153.1739 -+    }
153.1740 -+  /* now both are "normal".  */
153.1741 -+  if (a->sign != b->sign)
153.1742 -+    {
153.1743 -+      /* opposite signs */
153.1744 -+      return a->sign ? -1 : 1;
153.1745 -+    }
153.1746 -+  /* same sign; exponents? */
153.1747 -+  if (a->normal_exp > b->normal_exp)
153.1748 -+    {
153.1749 -+      return a->sign ? -1 : 1;
153.1750 -+    }
153.1751 -+  if (a->normal_exp < b->normal_exp)
153.1752 -+    {
153.1753 -+      return a->sign ? 1 : -1;
153.1754 -+    }
153.1755 -+  /* same exponents; check size.  */
153.1756 -+  if (a->fraction.ll > b->fraction.ll)
153.1757 -+    {
153.1758 -+      return a->sign ? -1 : 1;
153.1759 -+    }
153.1760 -+  if (a->fraction.ll < b->fraction.ll)
153.1761 -+    {
153.1762 -+      return a->sign ? 1 : -1;
153.1763 -+    }
153.1764 -+  /* after all that, they're equal.  */
153.1765 -+  return 0;
153.1766 -+}
153.1767 -+#endif
153.1768 -+
153.1769 -+#if defined(L_compare_sf) || defined(L_compare_df) || defined(L_compoare_tf)
153.1770 -+CMPtype
153.1771 -+compare (FLO_type arg_a, FLO_type arg_b)
153.1772 -+{
153.1773 -+  fp_number_type a;
153.1774 -+  fp_number_type b;
153.1775 -+  FLO_union_type au, bu;
153.1776 -+
153.1777 -+  au.value = arg_a;
153.1778 -+  bu.value = arg_b;
153.1779 -+
153.1780 -+  unpack_d (&au, &a);
153.1781 -+  unpack_d (&bu, &b);
153.1782 -+
153.1783 -+  return __fpcmp_parts (&a, &b);
153.1784 -+}
153.1785 -+#endif /* L_compare_sf || L_compare_df */
153.1786 -+
153.1787 -+#ifndef US_SOFTWARE_GOFAST
153.1788 -+
153.1789 -+/* These should be optimized for their specific tasks someday.  */
153.1790 -+
153.1791 -+#if defined(L_eq_sf) || defined(L_eq_df) || defined(L_eq_tf)
153.1792 -+CMPtype
153.1793 -+_eq_f2 (FLO_type arg_a, FLO_type arg_b)
153.1794 -+{
153.1795 -+  fp_number_type a;
153.1796 -+  fp_number_type b;
153.1797 -+  FLO_union_type au, bu;
153.1798 -+
153.1799 -+  au.value = arg_a;
153.1800 -+  bu.value = arg_b;
153.1801 -+
153.1802 -+  unpack_d (&au, &a);
153.1803 -+  unpack_d (&bu, &b);
153.1804 -+
153.1805 -+  if (isnan (&a) || isnan (&b))
153.1806 -+    return 1;			/* false, truth == 0 */
153.1807 -+
153.1808 -+  return __fpcmp_parts (&a, &b) ;
153.1809 -+}
153.1810 -+#endif /* L_eq_sf || L_eq_df */
153.1811 -+
153.1812 -+#if defined(L_ne_sf) || defined(L_ne_df) || defined(L_ne_tf)
153.1813 -+CMPtype
153.1814 -+_ne_f2 (FLO_type arg_a, FLO_type arg_b)
153.1815 -+{
153.1816 -+  fp_number_type a;
153.1817 -+  fp_number_type b;
153.1818 -+  FLO_union_type au, bu;
153.1819 -+
153.1820 -+  au.value = arg_a;
153.1821 -+  bu.value = arg_b;
153.1822 -+
153.1823 -+  unpack_d (&au, &a);
153.1824 -+  unpack_d (&bu, &b);
153.1825 -+
153.1826 -+  if (isnan (&a) || isnan (&b))
153.1827 -+    return 1;			/* true, truth != 0 */
153.1828 -+
153.1829 -+  return  __fpcmp_parts (&a, &b) ;
153.1830 -+}
153.1831 -+#endif /* L_ne_sf || L_ne_df */
153.1832 -+
153.1833 -+#if defined(L_gt_sf) || defined(L_gt_df) || defined(L_gt_tf)
153.1834 -+CMPtype
153.1835 -+_gt_f2 (FLO_type arg_a, FLO_type arg_b)
153.1836 -+{
153.1837 -+  fp_number_type a;
153.1838 -+  fp_number_type b;
153.1839 -+  FLO_union_type au, bu;
153.1840 -+
153.1841 -+  au.value = arg_a;
153.1842 -+  bu.value = arg_b;
153.1843 -+
153.1844 -+  unpack_d (&au, &a);
153.1845 -+  unpack_d (&bu, &b);
153.1846 -+
153.1847 -+  if (isnan (&a) || isnan (&b))
153.1848 -+    return -1;			/* false, truth > 0 */
153.1849 -+
153.1850 -+  return __fpcmp_parts (&a, &b);
153.1851 -+}
153.1852 -+#endif /* L_gt_sf || L_gt_df */
153.1853 -+
153.1854 -+#if defined(L_ge_sf) || defined(L_ge_df) || defined(L_ge_tf)
153.1855 -+CMPtype
153.1856 -+_ge_f2 (FLO_type arg_a, FLO_type arg_b)
153.1857 -+{
153.1858 -+  fp_number_type a;
153.1859 -+  fp_number_type b;
153.1860 -+  FLO_union_type au, bu;
153.1861 -+
153.1862 -+  au.value = arg_a;
153.1863 -+  bu.value = arg_b;
153.1864 -+
153.1865 -+  unpack_d (&au, &a);
153.1866 -+  unpack_d (&bu, &b);
153.1867 -+
153.1868 -+  if (isnan (&a) || isnan (&b))
153.1869 -+    return -1;			/* false, truth >= 0 */
153.1870 -+  return __fpcmp_parts (&a, &b) ;
153.1871 -+}
153.1872 -+#endif /* L_ge_sf || L_ge_df */
153.1873 -+
153.1874 -+#if defined(L_lt_sf) || defined(L_lt_df) || defined(L_lt_tf)
153.1875 -+CMPtype
153.1876 -+_lt_f2 (FLO_type arg_a, FLO_type arg_b)
153.1877 -+{
153.1878 -+  fp_number_type a;
153.1879 -+  fp_number_type b;
153.1880 -+  FLO_union_type au, bu;
153.1881 -+
153.1882 -+  au.value = arg_a;
153.1883 -+  bu.value = arg_b;
153.1884 -+
153.1885 -+  unpack_d (&au, &a);
153.1886 -+  unpack_d (&bu, &b);
153.1887 -+
153.1888 -+  if (isnan (&a) || isnan (&b))
153.1889 -+    return 1;			/* false, truth < 0 */
153.1890 -+
153.1891 -+  return __fpcmp_parts (&a, &b);
153.1892 -+}
153.1893 -+#endif /* L_lt_sf || L_lt_df */
153.1894 -+
153.1895 -+#if defined(L_le_sf) || defined(L_le_df) || defined(L_le_tf)
153.1896 -+CMPtype
153.1897 -+_le_f2 (FLO_type arg_a, FLO_type arg_b)
153.1898 -+{
153.1899 -+  fp_number_type a;
153.1900 -+  fp_number_type b;
153.1901 -+  FLO_union_type au, bu;
153.1902 -+
153.1903 -+  au.value = arg_a;
153.1904 -+  bu.value = arg_b;
153.1905 -+
153.1906 -+  unpack_d (&au, &a);
153.1907 -+  unpack_d (&bu, &b);
153.1908 -+
153.1909 -+  if (isnan (&a) || isnan (&b))
153.1910 -+    return 1;			/* false, truth <= 0 */
153.1911 -+
153.1912 -+  return __fpcmp_parts (&a, &b) ;
153.1913 -+}
153.1914 -+#endif /* L_le_sf || L_le_df */
153.1915 -+
153.1916 -+#endif /* ! US_SOFTWARE_GOFAST */
153.1917 -+
153.1918 -+#if defined(L_unord_sf) || defined(L_unord_df) || defined(L_unord_tf)
153.1919 -+CMPtype
153.1920 -+_unord_f2 (FLO_type arg_a, FLO_type arg_b)
153.1921 -+{
153.1922 -+  fp_number_type a;
153.1923 -+  fp_number_type b;
153.1924 -+  FLO_union_type au, bu;
153.1925 -+
153.1926 -+  au.value = arg_a;
153.1927 -+  bu.value = arg_b;
153.1928 -+
153.1929 -+  unpack_d (&au, &a);
153.1930 -+  unpack_d (&bu, &b);
153.1931 -+
153.1932 -+  return (isnan (&a) || isnan (&b));
153.1933 -+}
153.1934 -+#endif /* L_unord_sf || L_unord_df */
153.1935 -+
153.1936 -+#if defined(L_si_to_sf) || defined(L_si_to_df) || defined(L_si_to_tf)
153.1937 -+FLO_type
153.1938 -+si_to_float (SItype arg_a)
153.1939 -+{
153.1940 -+  fp_number_type in;
153.1941 -+
153.1942 -+  in.class = CLASS_NUMBER;
153.1943 -+  in.sign = arg_a < 0;
153.1944 -+  if (!arg_a)
153.1945 -+    {
153.1946 -+      in.class = CLASS_ZERO;
153.1947 -+    }
153.1948 -+  else
153.1949 -+    {
153.1950 -+      in.normal_exp = FRACBITS + NGARDS;
153.1951 -+      if (in.sign) 
153.1952 -+	{
153.1953 -+	  /* Special case for minint, since there is no +ve integer
153.1954 -+	     representation for it */
153.1955 -+	  if (arg_a == (- MAX_SI_INT - 1))
153.1956 -+	    {
153.1957 -+	      return (FLO_type)(- MAX_SI_INT - 1);
153.1958 -+	    }
153.1959 -+	  in.fraction.ll = (-arg_a);
153.1960 -+	}
153.1961 -+      else
153.1962 -+	in.fraction.ll = arg_a;
153.1963 -+
153.1964 -+      while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.1965 -+	{
153.1966 -+	  in.fraction.ll <<= 1;
153.1967 -+	  in.normal_exp -= 1;
153.1968 -+	}
153.1969 -+    }
153.1970 -+  return pack_d (&in);
153.1971 -+}
153.1972 -+#endif /* L_si_to_sf || L_si_to_df */
153.1973 -+
153.1974 -+#if defined(L_usi_to_sf) || defined(L_usi_to_df) || defined(L_usi_to_tf)
153.1975 -+FLO_type
153.1976 -+usi_to_float (USItype arg_a)
153.1977 -+{
153.1978 -+  fp_number_type in;
153.1979 -+
153.1980 -+  in.sign = 0;
153.1981 -+  if (!arg_a)
153.1982 -+    {
153.1983 -+      in.class = CLASS_ZERO;
153.1984 -+    }
153.1985 -+  else
153.1986 -+    {
153.1987 -+      in.class = CLASS_NUMBER;
153.1988 -+      in.normal_exp = FRACBITS + NGARDS;
153.1989 -+      in.fraction.ll = arg_a;
153.1990 -+
153.1991 -+      while (in.fraction.ll > ((fractype)1 << (FRACBITS + NGARDS)))
153.1992 -+        {
153.1993 -+          in.fraction.ll >>= 1;
153.1994 -+          in.normal_exp += 1;
153.1995 -+        }
153.1996 -+      while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.1997 -+	{
153.1998 -+	  in.fraction.ll <<= 1;
153.1999 -+	  in.normal_exp -= 1;
153.2000 -+	}
153.2001 -+    }
153.2002 -+  return pack_d (&in);
153.2003 -+}
153.2004 -+#endif
153.2005 -+
153.2006 -+#if defined(L_sf_to_si) || defined(L_df_to_si) || defined(L_tf_to_si)
153.2007 -+SItype
153.2008 -+float_to_si (FLO_type arg_a)
153.2009 -+{
153.2010 -+  fp_number_type a;
153.2011 -+  SItype tmp;
153.2012 -+  FLO_union_type au;
153.2013 -+
153.2014 -+  au.value = arg_a;
153.2015 -+  unpack_d (&au, &a);
153.2016 -+
153.2017 -+  if (iszero (&a))
153.2018 -+    return 0;
153.2019 -+  if (isnan (&a))
153.2020 -+    return 0;
153.2021 -+  /* get reasonable MAX_SI_INT...  */
153.2022 -+  if (isinf (&a))
153.2023 -+    return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.2024 -+  /* it is a number, but a small one */
153.2025 -+  if (a.normal_exp < 0)
153.2026 -+    return 0;
153.2027 -+  if (a.normal_exp > BITS_PER_SI - 2)
153.2028 -+    return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.2029 -+  tmp = a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.2030 -+  return a.sign ? (-tmp) : (tmp);
153.2031 -+}
153.2032 -+#endif /* L_sf_to_si || L_df_to_si */
153.2033 -+
153.2034 -+#if defined(L_sf_to_usi) || defined(L_df_to_usi) || defined(L_tf_to_usi)
153.2035 -+#if defined US_SOFTWARE_GOFAST || defined(L_tf_to_usi)
153.2036 -+/* While libgcc2.c defines its own __fixunssfsi and __fixunsdfsi routines,
153.2037 -+   we also define them for GOFAST because the ones in libgcc2.c have the
153.2038 -+   wrong names and I'd rather define these here and keep GOFAST CYG-LOC's
153.2039 -+   out of libgcc2.c.  We can't define these here if not GOFAST because then
153.2040 -+   there'd be duplicate copies.  */
153.2041 -+
153.2042 -+USItype
153.2043 -+float_to_usi (FLO_type arg_a)
153.2044 -+{
153.2045 -+  fp_number_type a;
153.2046 -+  FLO_union_type au;
153.2047 -+
153.2048 -+  au.value = arg_a;
153.2049 -+  unpack_d (&au, &a);
153.2050 -+
153.2051 -+  if (iszero (&a))
153.2052 -+    return 0;
153.2053 -+  if (isnan (&a))
153.2054 -+    return 0;
153.2055 -+  /* it is a negative number */
153.2056 -+  if (a.sign)
153.2057 -+    return 0;
153.2058 -+  /* get reasonable MAX_USI_INT...  */
153.2059 -+  if (isinf (&a))
153.2060 -+    return MAX_USI_INT;
153.2061 -+  /* it is a number, but a small one */
153.2062 -+  if (a.normal_exp < 0)
153.2063 -+    return 0;
153.2064 -+  if (a.normal_exp > BITS_PER_SI - 1)
153.2065 -+    return MAX_USI_INT;
153.2066 -+  else if (a.normal_exp > (FRACBITS + NGARDS))
153.2067 -+    return a.fraction.ll << (a.normal_exp - (FRACBITS + NGARDS));
153.2068 -+  else
153.2069 -+    return a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.2070 -+}
153.2071 -+#endif /* US_SOFTWARE_GOFAST */
153.2072 -+#endif /* L_sf_to_usi || L_df_to_usi */
153.2073 -+
153.2074 -+#if defined(L_negate_sf) || defined(L_negate_df) || defined(L_negate_tf)
153.2075 -+FLO_type
153.2076 -+negate (FLO_type arg_a)
153.2077 -+{
153.2078 -+  fp_number_type a;
153.2079 -+  FLO_union_type au;
153.2080 -+
153.2081 -+  au.value = arg_a;
153.2082 -+  unpack_d (&au, &a);
153.2083 -+
153.2084 -+  flip_sign (&a);
153.2085 -+  return pack_d (&a);
153.2086 -+}
153.2087 -+#endif /* L_negate_sf || L_negate_df */
153.2088 -+
153.2089 -+#ifdef FLOAT
153.2090 -+
153.2091 -+#if defined(L_make_sf)
153.2092 -+SFtype
153.2093 -+__make_fp(fp_class_type class,
153.2094 -+	     unsigned int sign,
153.2095 -+	     int exp, 
153.2096 -+	     USItype frac)
153.2097 -+{
153.2098 -+  fp_number_type in;
153.2099 -+
153.2100 -+  in.class = class;
153.2101 -+  in.sign = sign;
153.2102 -+  in.normal_exp = exp;
153.2103 -+  in.fraction.ll = frac;
153.2104 -+  return pack_d (&in);
153.2105 -+}
153.2106 -+#endif /* L_make_sf */
153.2107 -+
153.2108 -+#ifndef FLOAT_ONLY
153.2109 -+
153.2110 -+/* This enables one to build an fp library that supports float but not double.
153.2111 -+   Otherwise, we would get an undefined reference to __make_dp.
153.2112 -+   This is needed for some 8-bit ports that can't handle well values that
153.2113 -+   are 8-bytes in size, so we just don't support double for them at all.  */
153.2114 -+
153.2115 -+#if defined(L_sf_to_df)
153.2116 -+DFtype
153.2117 -+sf_to_df (SFtype arg_a)
153.2118 -+{
153.2119 -+  fp_number_type in;
153.2120 -+  FLO_union_type au;
153.2121 -+
153.2122 -+  au.value = arg_a;
153.2123 -+  unpack_d (&au, &in);
153.2124 -+
153.2125 -+  return __make_dp (in.class, in.sign, in.normal_exp,
153.2126 -+		    ((UDItype) in.fraction.ll) << F_D_BITOFF);
153.2127 -+}
153.2128 -+#endif /* L_sf_to_df */
153.2129 -+
153.2130 -+#if defined(L_sf_to_tf) && defined(TMODES)
153.2131 -+TFtype
153.2132 -+sf_to_tf (SFtype arg_a)
153.2133 -+{
153.2134 -+  fp_number_type in;
153.2135 -+  FLO_union_type au;
153.2136 -+
153.2137 -+  au.value = arg_a;
153.2138 -+  unpack_d (&au, &in);
153.2139 -+
153.2140 -+  return __make_tp (in.class, in.sign, in.normal_exp,
153.2141 -+		    ((UTItype) in.fraction.ll) << F_T_BITOFF);
153.2142 -+}
153.2143 -+#endif /* L_sf_to_df */
153.2144 -+
153.2145 -+#endif /* ! FLOAT_ONLY */
153.2146 -+#endif /* FLOAT */
153.2147 -+
153.2148 -+#ifndef FLOAT
153.2149 -+
153.2150 -+extern SFtype __make_fp (fp_class_type, unsigned int, int, USItype);
153.2151 -+
153.2152 -+#if defined(L_make_df)
153.2153 -+DFtype
153.2154 -+__make_dp (fp_class_type class, unsigned int sign, int exp, UDItype frac)
153.2155 -+{
153.2156 -+  fp_number_type in;
153.2157 -+
153.2158 -+  in.class = class;
153.2159 -+  in.sign = sign;
153.2160 -+  in.normal_exp = exp;
153.2161 -+  in.fraction.ll = frac;
153.2162 -+  return pack_d (&in);
153.2163 -+}
153.2164 -+#endif /* L_make_df */
153.2165 -+
153.2166 -+#if defined(L_df_to_sf)
153.2167 -+SFtype
153.2168 -+df_to_sf (DFtype arg_a)
153.2169 -+{
153.2170 -+  fp_number_type in;
153.2171 -+  USItype sffrac;
153.2172 -+  FLO_union_type au;
153.2173 -+
153.2174 -+  au.value = arg_a;
153.2175 -+  unpack_d (&au, &in);
153.2176 -+
153.2177 -+  sffrac = in.fraction.ll >> F_D_BITOFF;
153.2178 -+
153.2179 -+  /* We set the lowest guard bit in SFFRAC if we discarded any non
153.2180 -+     zero bits.  */
153.2181 -+  if ((in.fraction.ll & (((USItype) 1 << F_D_BITOFF) - 1)) != 0)
153.2182 -+    sffrac |= 1;
153.2183 -+
153.2184 -+  return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.2185 -+}
153.2186 -+#endif /* L_df_to_sf */
153.2187 -+
153.2188 -+#if defined(L_df_to_tf) && defined(TMODES) \
153.2189 -+    && !defined(FLOAT) && !defined(TFLOAT)
153.2190 -+TFtype
153.2191 -+df_to_tf (DFtype arg_a)
153.2192 -+{
153.2193 -+  fp_number_type in;
153.2194 -+  FLO_union_type au;
153.2195 -+
153.2196 -+  au.value = arg_a;
153.2197 -+  unpack_d (&au, &in);
153.2198 -+
153.2199 -+  return __make_tp (in.class, in.sign, in.normal_exp,
153.2200 -+		    ((UTItype) in.fraction.ll) << D_T_BITOFF);
153.2201 -+}
153.2202 -+#endif /* L_sf_to_df */
153.2203 -+
153.2204 -+#ifdef TFLOAT
153.2205 -+#if defined(L_make_tf)
153.2206 -+TFtype
153.2207 -+__make_tp(fp_class_type class,
153.2208 -+	     unsigned int sign,
153.2209 -+	     int exp, 
153.2210 -+	     UTItype frac)
153.2211 -+{
153.2212 -+  fp_number_type in;
153.2213 -+
153.2214 -+  in.class = class;
153.2215 -+  in.sign = sign;
153.2216 -+  in.normal_exp = exp;
153.2217 -+  in.fraction.ll = frac;
153.2218 -+  return pack_d (&in);
153.2219 -+}
153.2220 -+#endif /* L_make_tf */
153.2221 -+
153.2222 -+#if defined(L_tf_to_df)
153.2223 -+DFtype
153.2224 -+tf_to_df (TFtype arg_a)
153.2225 -+{
153.2226 -+  fp_number_type in;
153.2227 -+  UDItype sffrac;
153.2228 -+  FLO_union_type au;
153.2229 -+
153.2230 -+  au.value = arg_a;
153.2231 -+  unpack_d (&au, &in);
153.2232 -+
153.2233 -+  sffrac = in.fraction.ll >> D_T_BITOFF;
153.2234 -+
153.2235 -+  /* We set the lowest guard bit in SFFRAC if we discarded any non
153.2236 -+     zero bits.  */
153.2237 -+  if ((in.fraction.ll & (((UTItype) 1 << D_T_BITOFF) - 1)) != 0)
153.2238 -+    sffrac |= 1;
153.2239 -+
153.2240 -+  return __make_dp (in.class, in.sign, in.normal_exp, sffrac);
153.2241 -+}
153.2242 -+#endif /* L_tf_to_df */
153.2243 -+
153.2244 -+#if defined(L_tf_to_sf)
153.2245 -+SFtype
153.2246 -+tf_to_sf (TFtype arg_a)
153.2247 -+{
153.2248 -+  fp_number_type in;
153.2249 -+  USItype sffrac;
153.2250 -+  FLO_union_type au;
153.2251 -+
153.2252 -+  au.value = arg_a;
153.2253 -+  unpack_d (&au, &in);
153.2254 -+
153.2255 -+  sffrac = in.fraction.ll >> F_T_BITOFF;
153.2256 -+
153.2257 -+  /* We set the lowest guard bit in SFFRAC if we discarded any non
153.2258 -+     zero bits.  */
153.2259 -+  if ((in.fraction.ll & (((UTItype) 1 << F_T_BITOFF) - 1)) != 0)
153.2260 -+    sffrac |= 1;
153.2261 -+
153.2262 -+  return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.2263 -+}
153.2264 -+#endif /* L_tf_to_sf */
153.2265 -+#endif /* TFLOAT */
153.2266 -+
153.2267 -+#endif /* ! FLOAT */
153.2268 -+#endif /* !EXTENDED_FLOAT_STUBS */
153.2269 ---- gcc-3.4.3/gcc/config/nios2/nios2-fp-bit.c
153.2270 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2-fp-bit.c
153.2271 -@@ -0,0 +1,1652 @@
153.2272 -+#define FLOAT
153.2273 -+/* This is a software floating point library which can be used
153.2274 -+   for targets without hardware floating point. 
153.2275 -+   Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004
153.2276 -+   Free Software Foundation, Inc.
153.2277 -+
153.2278 -+This file is free software; you can redistribute it and/or modify it
153.2279 -+under the terms of the GNU General Public License as published by the
153.2280 -+Free Software Foundation; either version 2, or (at your option) any
153.2281 -+later version.
153.2282 -+
153.2283 -+In addition to the permissions in the GNU General Public License, the
153.2284 -+Free Software Foundation gives you unlimited permission to link the
153.2285 -+compiled version of this file with other programs, and to distribute
153.2286 -+those programs without any restriction coming from the use of this
153.2287 -+file.  (The General Public License restrictions do apply in other
153.2288 -+respects; for example, they cover modification of the file, and
153.2289 -+distribution when not linked into another program.)
153.2290 -+
153.2291 -+This file is distributed in the hope that it will be useful, but
153.2292 -+WITHOUT ANY WARRANTY; without even the implied warranty of
153.2293 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
153.2294 -+General Public License for more details.
153.2295 -+
153.2296 -+You should have received a copy of the GNU General Public License
153.2297 -+along with this program; see the file COPYING.  If not, write to
153.2298 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.2299 -+Boston, MA 02111-1307, USA.  */
153.2300 -+
153.2301 -+/* As a special exception, if you link this library with other files,
153.2302 -+   some of which are compiled with GCC, to produce an executable,
153.2303 -+   this library does not by itself cause the resulting executable
153.2304 -+   to be covered by the GNU General Public License.
153.2305 -+   This exception does not however invalidate any other reasons why
153.2306 -+   the executable file might be covered by the GNU General Public License.  */
153.2307 -+
153.2308 -+/* This implements IEEE 754 format arithmetic, but does not provide a
153.2309 -+   mechanism for setting the rounding mode, or for generating or handling
153.2310 -+   exceptions.
153.2311 -+
153.2312 -+   The original code by Steve Chamberlain, hacked by Mark Eichin and Jim
153.2313 -+   Wilson, all of Cygnus Support.  */
153.2314 -+
153.2315 -+/* The intended way to use this file is to make two copies, add `#define FLOAT'
153.2316 -+   to one copy, then compile both copies and add them to libgcc.a.  */
153.2317 -+
153.2318 -+#include "tconfig.h"
153.2319 -+#include "coretypes.h"
153.2320 -+#include "tm.h"
153.2321 -+#include "config/fp-bit.h"
153.2322 -+
153.2323 -+/* The following macros can be defined to change the behavior of this file:
153.2324 -+   FLOAT: Implement a `float', aka SFmode, fp library.  If this is not
153.2325 -+     defined, then this file implements a `double', aka DFmode, fp library.
153.2326 -+   FLOAT_ONLY: Used with FLOAT, to implement a `float' only library, i.e.
153.2327 -+     don't include float->double conversion which requires the double library.
153.2328 -+     This is useful only for machines which can't support doubles, e.g. some
153.2329 -+     8-bit processors.
153.2330 -+   CMPtype: Specify the type that floating point compares should return.
153.2331 -+     This defaults to SItype, aka int.
153.2332 -+   US_SOFTWARE_GOFAST: This makes all entry points use the same names as the
153.2333 -+     US Software goFast library.
153.2334 -+   _DEBUG_BITFLOAT: This makes debugging the code a little easier, by adding
153.2335 -+     two integers to the FLO_union_type.
153.2336 -+   NO_DENORMALS: Disable handling of denormals.
153.2337 -+   NO_NANS: Disable nan and infinity handling
153.2338 -+   SMALL_MACHINE: Useful when operations on QIs and HIs are faster
153.2339 -+     than on an SI */
153.2340 -+
153.2341 -+/* We don't currently support extended floats (long doubles) on machines
153.2342 -+   without hardware to deal with them.
153.2343 -+
153.2344 -+   These stubs are just to keep the linker from complaining about unresolved
153.2345 -+   references which can be pulled in from libio & libstdc++, even if the
153.2346 -+   user isn't using long doubles.  However, they may generate an unresolved
153.2347 -+   external to abort if abort is not used by the function, and the stubs
153.2348 -+   are referenced from within libc, since libgcc goes before and after the
153.2349 -+   system library.  */
153.2350 -+
153.2351 -+#ifdef DECLARE_LIBRARY_RENAMES
153.2352 -+  DECLARE_LIBRARY_RENAMES
153.2353 -+#endif
153.2354 -+
153.2355 -+#ifdef EXTENDED_FLOAT_STUBS
153.2356 -+extern void abort (void);
153.2357 -+void __extendsfxf2 (void) { abort(); }
153.2358 -+void __extenddfxf2 (void) { abort(); }
153.2359 -+void __truncxfdf2 (void) { abort(); }
153.2360 -+void __truncxfsf2 (void) { abort(); }
153.2361 -+void __fixxfsi (void) { abort(); }
153.2362 -+void __floatsixf (void) { abort(); }
153.2363 -+void __addxf3 (void) { abort(); }
153.2364 -+void __subxf3 (void) { abort(); }
153.2365 -+void __mulxf3 (void) { abort(); }
153.2366 -+void __divxf3 (void) { abort(); }
153.2367 -+void __negxf2 (void) { abort(); }
153.2368 -+void __eqxf2 (void) { abort(); }
153.2369 -+void __nexf2 (void) { abort(); }
153.2370 -+void __gtxf2 (void) { abort(); }
153.2371 -+void __gexf2 (void) { abort(); }
153.2372 -+void __lexf2 (void) { abort(); }
153.2373 -+void __ltxf2 (void) { abort(); }
153.2374 -+
153.2375 -+void __extendsftf2 (void) { abort(); }
153.2376 -+void __extenddftf2 (void) { abort(); }
153.2377 -+void __trunctfdf2 (void) { abort(); }
153.2378 -+void __trunctfsf2 (void) { abort(); }
153.2379 -+void __fixtfsi (void) { abort(); }
153.2380 -+void __floatsitf (void) { abort(); }
153.2381 -+void __addtf3 (void) { abort(); }
153.2382 -+void __subtf3 (void) { abort(); }
153.2383 -+void __multf3 (void) { abort(); }
153.2384 -+void __divtf3 (void) { abort(); }
153.2385 -+void __negtf2 (void) { abort(); }
153.2386 -+void __eqtf2 (void) { abort(); }
153.2387 -+void __netf2 (void) { abort(); }
153.2388 -+void __gttf2 (void) { abort(); }
153.2389 -+void __getf2 (void) { abort(); }
153.2390 -+void __letf2 (void) { abort(); }
153.2391 -+void __lttf2 (void) { abort(); }
153.2392 -+#else	/* !EXTENDED_FLOAT_STUBS, rest of file */
153.2393 -+
153.2394 -+/* IEEE "special" number predicates */
153.2395 -+
153.2396 -+#ifdef NO_NANS
153.2397 -+
153.2398 -+#define nan() 0
153.2399 -+#define isnan(x) 0
153.2400 -+#define isinf(x) 0
153.2401 -+#else
153.2402 -+
153.2403 -+#if   defined L_thenan_sf
153.2404 -+const fp_number_type __thenan_sf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.2405 -+#elif defined L_thenan_df
153.2406 -+const fp_number_type __thenan_df = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.2407 -+#elif defined L_thenan_tf
153.2408 -+const fp_number_type __thenan_tf = { CLASS_SNAN, 0, 0, {(fractype) 0} };
153.2409 -+#elif defined TFLOAT
153.2410 -+extern const fp_number_type __thenan_tf;
153.2411 -+#elif defined FLOAT
153.2412 -+extern const fp_number_type __thenan_sf;
153.2413 -+#else
153.2414 -+extern const fp_number_type __thenan_df;
153.2415 -+#endif
153.2416 -+
153.2417 -+INLINE
153.2418 -+static fp_number_type *
153.2419 -+nan (void)
153.2420 -+{
153.2421 -+  /* Discard the const qualifier...  */
153.2422 -+#ifdef TFLOAT
153.2423 -+  return (fp_number_type *) (& __thenan_tf);
153.2424 -+#elif defined FLOAT  
153.2425 -+  return (fp_number_type *) (& __thenan_sf);
153.2426 -+#else
153.2427 -+  return (fp_number_type *) (& __thenan_df);
153.2428 -+#endif
153.2429 -+}
153.2430 -+
153.2431 -+INLINE
153.2432 -+static int
153.2433 -+isnan ( fp_number_type *  x)
153.2434 -+{
153.2435 -+  return x->class == CLASS_SNAN || x->class == CLASS_QNAN;
153.2436 -+}
153.2437 -+
153.2438 -+INLINE
153.2439 -+static int
153.2440 -+isinf ( fp_number_type *  x)
153.2441 -+{
153.2442 -+  return x->class == CLASS_INFINITY;
153.2443 -+}
153.2444 -+
153.2445 -+#endif /* NO_NANS */
153.2446 -+
153.2447 -+INLINE
153.2448 -+static int
153.2449 -+iszero ( fp_number_type *  x)
153.2450 -+{
153.2451 -+  return x->class == CLASS_ZERO;
153.2452 -+}
153.2453 -+
153.2454 -+INLINE 
153.2455 -+static void
153.2456 -+flip_sign ( fp_number_type *  x)
153.2457 -+{
153.2458 -+  x->sign = !x->sign;
153.2459 -+}
153.2460 -+
153.2461 -+extern FLO_type pack_d ( fp_number_type * );
153.2462 -+
153.2463 -+#if defined(L_pack_df) || defined(L_pack_sf) || defined(L_pack_tf)
153.2464 -+FLO_type
153.2465 -+pack_d ( fp_number_type *  src)
153.2466 -+{
153.2467 -+  FLO_union_type dst;
153.2468 -+  fractype fraction = src->fraction.ll;	/* wasn't unsigned before? */
153.2469 -+  int sign = src->sign;
153.2470 -+  int exp = 0;
153.2471 -+
153.2472 -+  if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && (isnan (src) || isinf (src)))
153.2473 -+    {
153.2474 -+      /* We can't represent these values accurately.  By using the
153.2475 -+	 largest possible magnitude, we guarantee that the conversion
153.2476 -+	 of infinity is at least as big as any finite number.  */
153.2477 -+      exp = EXPMAX;
153.2478 -+      fraction = ((fractype) 1 << FRACBITS) - 1;
153.2479 -+    }
153.2480 -+  else if (isnan (src))
153.2481 -+    {
153.2482 -+      exp = EXPMAX;
153.2483 -+      if (src->class == CLASS_QNAN || 1)
153.2484 -+	{
153.2485 -+#ifdef QUIET_NAN_NEGATED
153.2486 -+	  fraction |= QUIET_NAN - 1;
153.2487 -+#else
153.2488 -+	  fraction |= QUIET_NAN;
153.2489 -+#endif
153.2490 -+	}
153.2491 -+    }
153.2492 -+  else if (isinf (src))
153.2493 -+    {
153.2494 -+      exp = EXPMAX;
153.2495 -+      fraction = 0;
153.2496 -+    }
153.2497 -+  else if (iszero (src))
153.2498 -+    {
153.2499 -+      exp = 0;
153.2500 -+      fraction = 0;
153.2501 -+    }
153.2502 -+  else if (fraction == 0)
153.2503 -+    {
153.2504 -+      exp = 0;
153.2505 -+    }
153.2506 -+  else
153.2507 -+    {
153.2508 -+      if (src->normal_exp < NORMAL_EXPMIN)
153.2509 -+	{
153.2510 -+#ifdef NO_DENORMALS
153.2511 -+	  /* Go straight to a zero representation if denormals are not
153.2512 -+ 	     supported.  The denormal handling would be harmless but
153.2513 -+ 	     isn't unnecessary.  */
153.2514 -+	  exp = 0;
153.2515 -+	  fraction = 0;
153.2516 -+#else /* NO_DENORMALS */
153.2517 -+	  /* This number's exponent is too low to fit into the bits
153.2518 -+	     available in the number, so we'll store 0 in the exponent and
153.2519 -+	     shift the fraction to the right to make up for it.  */
153.2520 -+
153.2521 -+	  int shift = NORMAL_EXPMIN - src->normal_exp;
153.2522 -+
153.2523 -+	  exp = 0;
153.2524 -+
153.2525 -+	  if (shift > FRAC_NBITS - NGARDS)
153.2526 -+	    {
153.2527 -+	      /* No point shifting, since it's more that 64 out.  */
153.2528 -+	      fraction = 0;
153.2529 -+	    }
153.2530 -+	  else
153.2531 -+	    {
153.2532 -+	      int lowbit = (fraction & (((fractype)1 << shift) - 1)) ? 1 : 0;
153.2533 -+	      fraction = (fraction >> shift) | lowbit;
153.2534 -+	    }
153.2535 -+	  if ((fraction & GARDMASK) == GARDMSB)
153.2536 -+	    {
153.2537 -+	      if ((fraction & (1 << NGARDS)))
153.2538 -+		fraction += GARDROUND + 1;
153.2539 -+	    }
153.2540 -+	  else
153.2541 -+	    {
153.2542 -+	      /* Add to the guards to round up.  */
153.2543 -+	      fraction += GARDROUND;
153.2544 -+	    }
153.2545 -+	  /* Perhaps the rounding means we now need to change the
153.2546 -+             exponent, because the fraction is no longer denormal.  */
153.2547 -+	  if (fraction >= IMPLICIT_1)
153.2548 -+	    {
153.2549 -+	      exp += 1;
153.2550 -+	    }
153.2551 -+	  fraction >>= NGARDS;
153.2552 -+#endif /* NO_DENORMALS */
153.2553 -+	}
153.2554 -+      else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS)
153.2555 -+	       && src->normal_exp > EXPBIAS)
153.2556 -+	{
153.2557 -+	  exp = EXPMAX;
153.2558 -+	  fraction = 0;
153.2559 -+	}
153.2560 -+      else
153.2561 -+	{
153.2562 -+	  exp = src->normal_exp + EXPBIAS;
153.2563 -+	  if (!ROUND_TOWARDS_ZERO)
153.2564 -+	    {
153.2565 -+	      /* IF the gard bits are the all zero, but the first, then we're
153.2566 -+		 half way between two numbers, choose the one which makes the
153.2567 -+		 lsb of the answer 0.  */
153.2568 -+	      if ((fraction & GARDMASK) == GARDMSB)
153.2569 -+		{
153.2570 -+		  if (fraction & (1 << NGARDS))
153.2571 -+		    fraction += GARDROUND + 1;
153.2572 -+		}
153.2573 -+	      else
153.2574 -+		{
153.2575 -+		  /* Add a one to the guards to round up */
153.2576 -+		  fraction += GARDROUND;
153.2577 -+		}
153.2578 -+	      if (fraction >= IMPLICIT_2)
153.2579 -+		{
153.2580 -+		  fraction >>= 1;
153.2581 -+		  exp += 1;
153.2582 -+		}
153.2583 -+	    }
153.2584 -+	  fraction >>= NGARDS;
153.2585 -+
153.2586 -+	  if (LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp > EXPMAX)
153.2587 -+	    {
153.2588 -+	      /* Saturate on overflow.  */
153.2589 -+	      exp = EXPMAX;
153.2590 -+	      fraction = ((fractype) 1 << FRACBITS) - 1;
153.2591 -+	    }
153.2592 -+	}
153.2593 -+    }
153.2594 -+
153.2595 -+  /* We previously used bitfields to store the number, but this doesn't
153.2596 -+     handle little/big endian systems conveniently, so use shifts and
153.2597 -+     masks */
153.2598 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.2599 -+  dst.bits.fraction = fraction;
153.2600 -+  dst.bits.exp = exp;
153.2601 -+  dst.bits.sign = sign;
153.2602 -+#else
153.2603 -+# if defined TFLOAT && defined HALFFRACBITS
153.2604 -+ {
153.2605 -+   halffractype high, low, unity;
153.2606 -+   int lowsign, lowexp;
153.2607 -+
153.2608 -+   unity = (halffractype) 1 << HALFFRACBITS;
153.2609 -+
153.2610 -+   /* Set HIGH to the high double's significand, masking out the implicit 1.
153.2611 -+      Set LOW to the low double's full significand.  */
153.2612 -+   high = (fraction >> (FRACBITS - HALFFRACBITS)) & (unity - 1);
153.2613 -+   low = fraction & (unity * 2 - 1);
153.2614 -+
153.2615 -+   /* Get the initial sign and exponent of the low double.  */
153.2616 -+   lowexp = exp - HALFFRACBITS - 1;
153.2617 -+   lowsign = sign;
153.2618 -+
153.2619 -+   /* HIGH should be rounded like a normal double, making |LOW| <=
153.2620 -+      0.5 ULP of HIGH.  Assume round-to-nearest.  */
153.2621 -+   if (exp < EXPMAX)
153.2622 -+     if (low > unity || (low == unity && (high & 1) == 1))
153.2623 -+       {
153.2624 -+	 /* Round HIGH up and adjust LOW to match.  */
153.2625 -+	 high++;
153.2626 -+	 if (high == unity)
153.2627 -+	   {
153.2628 -+	     /* May make it infinite, but that's OK.  */
153.2629 -+	     high = 0;
153.2630 -+	     exp++;
153.2631 -+	   }
153.2632 -+	 low = unity * 2 - low;
153.2633 -+	 lowsign ^= 1;
153.2634 -+       }
153.2635 -+
153.2636 -+   high |= (halffractype) exp << HALFFRACBITS;
153.2637 -+   high |= (halffractype) sign << (HALFFRACBITS + EXPBITS);
153.2638 -+
153.2639 -+   if (exp == EXPMAX || exp == 0 || low == 0)
153.2640 -+     low = 0;
153.2641 -+   else
153.2642 -+     {
153.2643 -+       while (lowexp > 0 && low < unity)
153.2644 -+	 {
153.2645 -+	   low <<= 1;
153.2646 -+	   lowexp--;
153.2647 -+	 }
153.2648 -+
153.2649 -+       if (lowexp <= 0)
153.2650 -+	 {
153.2651 -+	   halffractype roundmsb, round;
153.2652 -+	   int shift;
153.2653 -+
153.2654 -+	   shift = 1 - lowexp;
153.2655 -+	   roundmsb = (1 << (shift - 1));
153.2656 -+	   round = low & ((roundmsb << 1) - 1);
153.2657 -+
153.2658 -+	   low >>= shift;
153.2659 -+	   lowexp = 0;
153.2660 -+
153.2661 -+	   if (round > roundmsb || (round == roundmsb && (low & 1) == 1))
153.2662 -+	     {
153.2663 -+	       low++;
153.2664 -+	       if (low == unity)
153.2665 -+		 /* LOW rounds up to the smallest normal number.  */
153.2666 -+		 lowexp++;
153.2667 -+	     }
153.2668 -+	 }
153.2669 -+
153.2670 -+       low &= unity - 1;
153.2671 -+       low |= (halffractype) lowexp << HALFFRACBITS;
153.2672 -+       low |= (halffractype) lowsign << (HALFFRACBITS + EXPBITS);
153.2673 -+     }
153.2674 -+   dst.value_raw = ((fractype) high << HALFSHIFT) | low;
153.2675 -+ }
153.2676 -+# else
153.2677 -+  dst.value_raw = fraction & ((((fractype)1) << FRACBITS) - (fractype)1);
153.2678 -+  dst.value_raw |= ((fractype) (exp & ((1 << EXPBITS) - 1))) << FRACBITS;
153.2679 -+  dst.value_raw |= ((fractype) (sign & 1)) << (FRACBITS | EXPBITS);
153.2680 -+# endif
153.2681 -+#endif
153.2682 -+
153.2683 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.2684 -+#ifdef TFLOAT
153.2685 -+  {
153.2686 -+    qrtrfractype tmp1 = dst.words[0];
153.2687 -+    qrtrfractype tmp2 = dst.words[1];
153.2688 -+    dst.words[0] = dst.words[3];
153.2689 -+    dst.words[1] = dst.words[2];
153.2690 -+    dst.words[2] = tmp2;
153.2691 -+    dst.words[3] = tmp1;
153.2692 -+  }
153.2693 -+#else
153.2694 -+  {
153.2695 -+    halffractype tmp = dst.words[0];
153.2696 -+    dst.words[0] = dst.words[1];
153.2697 -+    dst.words[1] = tmp;
153.2698 -+  }
153.2699 -+#endif
153.2700 -+#endif
153.2701 -+
153.2702 -+  return dst.value;
153.2703 -+}
153.2704 -+#endif
153.2705 -+
153.2706 -+#if defined(L_unpack_df) || defined(L_unpack_sf) || defined(L_unpack_tf)
153.2707 -+void
153.2708 -+unpack_d (FLO_union_type * src, fp_number_type * dst)
153.2709 -+{
153.2710 -+  /* We previously used bitfields to store the number, but this doesn't
153.2711 -+     handle little/big endian systems conveniently, so use shifts and
153.2712 -+     masks */
153.2713 -+  fractype fraction;
153.2714 -+  int exp;
153.2715 -+  int sign;
153.2716 -+
153.2717 -+#if defined(FLOAT_WORD_ORDER_MISMATCH) && !defined(FLOAT)
153.2718 -+  FLO_union_type swapped;
153.2719 -+
153.2720 -+#ifdef TFLOAT
153.2721 -+  swapped.words[0] = src->words[3];
153.2722 -+  swapped.words[1] = src->words[2];
153.2723 -+  swapped.words[2] = src->words[1];
153.2724 -+  swapped.words[3] = src->words[0];
153.2725 -+#else
153.2726 -+  swapped.words[0] = src->words[1];
153.2727 -+  swapped.words[1] = src->words[0];
153.2728 -+#endif
153.2729 -+  src = &swapped;
153.2730 -+#endif
153.2731 -+  
153.2732 -+#ifdef FLOAT_BIT_ORDER_MISMATCH
153.2733 -+  fraction = src->bits.fraction;
153.2734 -+  exp = src->bits.exp;
153.2735 -+  sign = src->bits.sign;
153.2736 -+#else
153.2737 -+# if defined TFLOAT && defined HALFFRACBITS
153.2738 -+ {
153.2739 -+   halffractype high, low;
153.2740 -+   
153.2741 -+   high = src->value_raw >> HALFSHIFT;
153.2742 -+   low = src->value_raw & (((fractype)1 << HALFSHIFT) - 1);
153.2743 -+
153.2744 -+   fraction = high & ((((fractype)1) << HALFFRACBITS) - 1);
153.2745 -+   fraction <<= FRACBITS - HALFFRACBITS;
153.2746 -+   exp = ((int)(high >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.2747 -+   sign = ((int)(high >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.2748 -+
153.2749 -+   if (exp != EXPMAX && exp != 0 && low != 0)
153.2750 -+     {
153.2751 -+       int lowexp = ((int)(low >> HALFFRACBITS)) & ((1 << EXPBITS) - 1);
153.2752 -+       int lowsign = ((int)(low >> (((HALFFRACBITS + EXPBITS))))) & 1;
153.2753 -+       int shift;
153.2754 -+       fractype xlow;
153.2755 -+
153.2756 -+       xlow = low & ((((fractype)1) << HALFFRACBITS) - 1);
153.2757 -+       if (lowexp)
153.2758 -+	 xlow |= (((halffractype)1) << HALFFRACBITS);
153.2759 -+       else
153.2760 -+	 lowexp = 1;
153.2761 -+       shift = (FRACBITS - HALFFRACBITS) - (exp - lowexp);
153.2762 -+       if (shift > 0)
153.2763 -+	 xlow <<= shift;
153.2764 -+       else if (shift < 0)
153.2765 -+	 xlow >>= -shift;
153.2766 -+       if (sign == lowsign)
153.2767 -+	 fraction += xlow;
153.2768 -+       else if (fraction >= xlow)
153.2769 -+	 fraction -= xlow;
153.2770 -+       else
153.2771 -+	 {
153.2772 -+	   /* The high part is a power of two but the full number is lower.
153.2773 -+	      This code will leave the implicit 1 in FRACTION, but we'd
153.2774 -+	      have added that below anyway.  */
153.2775 -+	   fraction = (((fractype) 1 << FRACBITS) - xlow) << 1;
153.2776 -+	   exp--;
153.2777 -+	 }
153.2778 -+     }
153.2779 -+ }
153.2780 -+# else
153.2781 -+  fraction = src->value_raw & ((((fractype)1) << FRACBITS) - 1);
153.2782 -+  exp = ((int)(src->value_raw >> FRACBITS)) & ((1 << EXPBITS) - 1);
153.2783 -+  sign = ((int)(src->value_raw >> (FRACBITS + EXPBITS))) & 1;
153.2784 -+# endif
153.2785 -+#endif
153.2786 -+
153.2787 -+  dst->sign = sign;
153.2788 -+  if (exp == 0)
153.2789 -+    {
153.2790 -+      /* Hmm.  Looks like 0 */
153.2791 -+      if (fraction == 0
153.2792 -+#ifdef NO_DENORMALS
153.2793 -+	  || 1
153.2794 -+#endif
153.2795 -+	  )
153.2796 -+	{
153.2797 -+	  /* tastes like zero */
153.2798 -+	  dst->class = CLASS_ZERO;
153.2799 -+	}
153.2800 -+      else
153.2801 -+	{
153.2802 -+	  /* Zero exponent with nonzero fraction - it's denormalized,
153.2803 -+	     so there isn't a leading implicit one - we'll shift it so
153.2804 -+	     it gets one.  */
153.2805 -+	  dst->normal_exp = exp - EXPBIAS + 1;
153.2806 -+	  fraction <<= NGARDS;
153.2807 -+
153.2808 -+	  dst->class = CLASS_NUMBER;
153.2809 -+#if 1
153.2810 -+	  while (fraction < IMPLICIT_1)
153.2811 -+	    {
153.2812 -+	      fraction <<= 1;
153.2813 -+	      dst->normal_exp--;
153.2814 -+	    }
153.2815 -+#endif
153.2816 -+	  dst->fraction.ll = fraction;
153.2817 -+	}
153.2818 -+    }
153.2819 -+  else if (!LARGEST_EXPONENT_IS_NORMAL (FRAC_NBITS) && exp == EXPMAX)
153.2820 -+    {
153.2821 -+      /* Huge exponent*/
153.2822 -+      if (fraction == 0)
153.2823 -+	{
153.2824 -+	  /* Attached to a zero fraction - means infinity */
153.2825 -+	  dst->class = CLASS_INFINITY;
153.2826 -+	}
153.2827 -+      else
153.2828 -+	{
153.2829 -+	  /* Nonzero fraction, means nan */
153.2830 -+#ifdef QUIET_NAN_NEGATED
153.2831 -+	  if ((fraction & QUIET_NAN) == 0)
153.2832 -+#else
153.2833 -+	  if (fraction & QUIET_NAN)
153.2834 -+#endif
153.2835 -+	    {
153.2836 -+	      dst->class = CLASS_QNAN;
153.2837 -+	    }
153.2838 -+	  else
153.2839 -+	    {
153.2840 -+	      dst->class = CLASS_SNAN;
153.2841 -+	    }
153.2842 -+	  /* Keep the fraction part as the nan number */
153.2843 -+	  dst->fraction.ll = fraction;
153.2844 -+	}
153.2845 -+    }
153.2846 -+  else
153.2847 -+    {
153.2848 -+      /* Nothing strange about this number */
153.2849 -+      dst->normal_exp = exp - EXPBIAS;
153.2850 -+      dst->class = CLASS_NUMBER;
153.2851 -+      dst->fraction.ll = (fraction << NGARDS) | IMPLICIT_1;
153.2852 -+    }
153.2853 -+}
153.2854 -+#endif /* L_unpack_df || L_unpack_sf */
153.2855 -+
153.2856 -+#if defined(L_addsub_sf) || defined(L_addsub_df) || defined(L_addsub_tf)
153.2857 -+static fp_number_type *
153.2858 -+_fpadd_parts (fp_number_type * a,
153.2859 -+	      fp_number_type * b,
153.2860 -+	      fp_number_type * tmp)
153.2861 -+{
153.2862 -+  intfrac tfraction;
153.2863 -+
153.2864 -+  /* Put commonly used fields in local variables.  */
153.2865 -+  int a_normal_exp;
153.2866 -+  int b_normal_exp;
153.2867 -+  fractype a_fraction;
153.2868 -+  fractype b_fraction;
153.2869 -+
153.2870 -+  if (isnan (a))
153.2871 -+    {
153.2872 -+      return a;
153.2873 -+    }
153.2874 -+  if (isnan (b))
153.2875 -+    {
153.2876 -+      return b;
153.2877 -+    }
153.2878 -+  if (isinf (a))
153.2879 -+    {
153.2880 -+      /* Adding infinities with opposite signs yields a NaN.  */
153.2881 -+      if (isinf (b) && a->sign != b->sign)
153.2882 -+	return nan ();
153.2883 -+      return a;
153.2884 -+    }
153.2885 -+  if (isinf (b))
153.2886 -+    {
153.2887 -+      return b;
153.2888 -+    }
153.2889 -+  if (iszero (b))
153.2890 -+    {
153.2891 -+      if (iszero (a))
153.2892 -+	{
153.2893 -+	  *tmp = *a;
153.2894 -+	  tmp->sign = a->sign & b->sign;
153.2895 -+	  return tmp;
153.2896 -+	}
153.2897 -+      return a;
153.2898 -+    }
153.2899 -+  if (iszero (a))
153.2900 -+    {
153.2901 -+      return b;
153.2902 -+    }
153.2903 -+
153.2904 -+  /* Got two numbers. shift the smaller and increment the exponent till
153.2905 -+     they're the same */
153.2906 -+  {
153.2907 -+    int diff;
153.2908 -+
153.2909 -+    a_normal_exp = a->normal_exp;
153.2910 -+    b_normal_exp = b->normal_exp;
153.2911 -+    a_fraction = a->fraction.ll;
153.2912 -+    b_fraction = b->fraction.ll;
153.2913 -+
153.2914 -+    diff = a_normal_exp - b_normal_exp;
153.2915 -+
153.2916 -+    if (diff < 0)
153.2917 -+      diff = -diff;
153.2918 -+    if (diff < FRAC_NBITS)
153.2919 -+      {
153.2920 -+	/* ??? This does shifts one bit at a time.  Optimize.  */
153.2921 -+	while (a_normal_exp > b_normal_exp)
153.2922 -+	  {
153.2923 -+	    b_normal_exp++;
153.2924 -+	    LSHIFT (b_fraction);
153.2925 -+	  }
153.2926 -+	while (b_normal_exp > a_normal_exp)
153.2927 -+	  {
153.2928 -+	    a_normal_exp++;
153.2929 -+	    LSHIFT (a_fraction);
153.2930 -+	  }
153.2931 -+      }
153.2932 -+    else
153.2933 -+      {
153.2934 -+	/* Somethings's up.. choose the biggest */
153.2935 -+	if (a_normal_exp > b_normal_exp)
153.2936 -+	  {
153.2937 -+	    b_normal_exp = a_normal_exp;
153.2938 -+	    b_fraction = 0;
153.2939 -+	  }
153.2940 -+	else
153.2941 -+	  {
153.2942 -+	    a_normal_exp = b_normal_exp;
153.2943 -+	    a_fraction = 0;
153.2944 -+	  }
153.2945 -+      }
153.2946 -+  }
153.2947 -+
153.2948 -+  if (a->sign != b->sign)
153.2949 -+    {
153.2950 -+      if (a->sign)
153.2951 -+	{
153.2952 -+	  tfraction = -a_fraction + b_fraction;
153.2953 -+	}
153.2954 -+      else
153.2955 -+	{
153.2956 -+	  tfraction = a_fraction - b_fraction;
153.2957 -+	}
153.2958 -+      if (tfraction >= 0)
153.2959 -+	{
153.2960 -+	  tmp->sign = 0;
153.2961 -+	  tmp->normal_exp = a_normal_exp;
153.2962 -+	  tmp->fraction.ll = tfraction;
153.2963 -+	}
153.2964 -+      else
153.2965 -+	{
153.2966 -+	  tmp->sign = 1;
153.2967 -+	  tmp->normal_exp = a_normal_exp;
153.2968 -+	  tmp->fraction.ll = -tfraction;
153.2969 -+	}
153.2970 -+      /* and renormalize it */
153.2971 -+
153.2972 -+      while (tmp->fraction.ll < IMPLICIT_1 && tmp->fraction.ll)
153.2973 -+	{
153.2974 -+	  tmp->fraction.ll <<= 1;
153.2975 -+	  tmp->normal_exp--;
153.2976 -+	}
153.2977 -+    }
153.2978 -+  else
153.2979 -+    {
153.2980 -+      tmp->sign = a->sign;
153.2981 -+      tmp->normal_exp = a_normal_exp;
153.2982 -+      tmp->fraction.ll = a_fraction + b_fraction;
153.2983 -+    }
153.2984 -+  tmp->class = CLASS_NUMBER;
153.2985 -+  /* Now the fraction is added, we have to shift down to renormalize the
153.2986 -+     number */
153.2987 -+
153.2988 -+  if (tmp->fraction.ll >= IMPLICIT_2)
153.2989 -+    {
153.2990 -+      LSHIFT (tmp->fraction.ll);
153.2991 -+      tmp->normal_exp++;
153.2992 -+    }
153.2993 -+  return tmp;
153.2994 -+
153.2995 -+}
153.2996 -+
153.2997 -+FLO_type
153.2998 -+add (FLO_type arg_a, FLO_type arg_b)
153.2999 -+{
153.3000 -+  fp_number_type a;
153.3001 -+  fp_number_type b;
153.3002 -+  fp_number_type tmp;
153.3003 -+  fp_number_type *res;
153.3004 -+  FLO_union_type au, bu;
153.3005 -+
153.3006 -+  au.value = arg_a;
153.3007 -+  bu.value = arg_b;
153.3008 -+
153.3009 -+  unpack_d (&au, &a);
153.3010 -+  unpack_d (&bu, &b);
153.3011 -+
153.3012 -+  res = _fpadd_parts (&a, &b, &tmp);
153.3013 -+
153.3014 -+  return pack_d (res);
153.3015 -+}
153.3016 -+
153.3017 -+FLO_type
153.3018 -+sub (FLO_type arg_a, FLO_type arg_b)
153.3019 -+{
153.3020 -+  fp_number_type a;
153.3021 -+  fp_number_type b;
153.3022 -+  fp_number_type tmp;
153.3023 -+  fp_number_type *res;
153.3024 -+  FLO_union_type au, bu;
153.3025 -+
153.3026 -+  au.value = arg_a;
153.3027 -+  bu.value = arg_b;
153.3028 -+
153.3029 -+  unpack_d (&au, &a);
153.3030 -+  unpack_d (&bu, &b);
153.3031 -+
153.3032 -+  b.sign ^= 1;
153.3033 -+
153.3034 -+  res = _fpadd_parts (&a, &b, &tmp);
153.3035 -+
153.3036 -+  return pack_d (res);
153.3037 -+}
153.3038 -+#endif /* L_addsub_sf || L_addsub_df */
153.3039 -+
153.3040 -+#if defined(L_mul_sf) || defined(L_mul_df) || defined(L_mul_tf)
153.3041 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.3042 -+_fpmul_parts ( fp_number_type *  a,
153.3043 -+	       fp_number_type *  b,
153.3044 -+	       fp_number_type * tmp)
153.3045 -+{
153.3046 -+  fractype low = 0;
153.3047 -+  fractype high = 0;
153.3048 -+
153.3049 -+  if (isnan (a))
153.3050 -+    {
153.3051 -+      a->sign = a->sign != b->sign;
153.3052 -+      return a;
153.3053 -+    }
153.3054 -+  if (isnan (b))
153.3055 -+    {
153.3056 -+      b->sign = a->sign != b->sign;
153.3057 -+      return b;
153.3058 -+    }
153.3059 -+  if (isinf (a))
153.3060 -+    {
153.3061 -+      if (iszero (b))
153.3062 -+	return nan ();
153.3063 -+      a->sign = a->sign != b->sign;
153.3064 -+      return a;
153.3065 -+    }
153.3066 -+  if (isinf (b))
153.3067 -+    {
153.3068 -+      if (iszero (a))
153.3069 -+	{
153.3070 -+	  return nan ();
153.3071 -+	}
153.3072 -+      b->sign = a->sign != b->sign;
153.3073 -+      return b;
153.3074 -+    }
153.3075 -+  if (iszero (a))
153.3076 -+    {
153.3077 -+      a->sign = a->sign != b->sign;
153.3078 -+      return a;
153.3079 -+    }
153.3080 -+  if (iszero (b))
153.3081 -+    {
153.3082 -+      b->sign = a->sign != b->sign;
153.3083 -+      return b;
153.3084 -+    }
153.3085 -+
153.3086 -+  /* Calculate the mantissa by multiplying both numbers to get a
153.3087 -+     twice-as-wide number.  */
153.3088 -+  {
153.3089 -+#if defined(NO_DI_MODE) || defined(TFLOAT)
153.3090 -+    {
153.3091 -+      fractype x = a->fraction.ll;
153.3092 -+      fractype ylow = b->fraction.ll;
153.3093 -+      fractype yhigh = 0;
153.3094 -+      int bit;
153.3095 -+
153.3096 -+      /* ??? This does multiplies one bit at a time.  Optimize.  */
153.3097 -+      for (bit = 0; bit < FRAC_NBITS; bit++)
153.3098 -+	{
153.3099 -+	  int carry;
153.3100 -+
153.3101 -+	  if (x & 1)
153.3102 -+	    {
153.3103 -+	      carry = (low += ylow) < ylow;
153.3104 -+	      high += yhigh + carry;
153.3105 -+	    }
153.3106 -+	  yhigh <<= 1;
153.3107 -+	  if (ylow & FRACHIGH)
153.3108 -+	    {
153.3109 -+	      yhigh |= 1;
153.3110 -+	    }
153.3111 -+	  ylow <<= 1;
153.3112 -+	  x >>= 1;
153.3113 -+	}
153.3114 -+    }
153.3115 -+#elif defined(FLOAT) 
153.3116 -+    /* Multiplying two USIs to get a UDI, we're safe.  */
153.3117 -+    {
153.3118 -+      UDItype answer = (UDItype)a->fraction.ll * (UDItype)b->fraction.ll;
153.3119 -+      
153.3120 -+      high = answer >> BITS_PER_SI;
153.3121 -+      low = answer;
153.3122 -+    }
153.3123 -+#else
153.3124 -+    /* fractype is DImode, but we need the result to be twice as wide.
153.3125 -+       Assuming a widening multiply from DImode to TImode is not
153.3126 -+       available, build one by hand.  */
153.3127 -+    {
153.3128 -+      USItype nl = a->fraction.ll;
153.3129 -+      USItype nh = a->fraction.ll >> BITS_PER_SI;
153.3130 -+      USItype ml = b->fraction.ll;
153.3131 -+      USItype mh = b->fraction.ll >> BITS_PER_SI;
153.3132 -+      UDItype pp_ll = (UDItype) ml * nl;
153.3133 -+      UDItype pp_hl = (UDItype) mh * nl;
153.3134 -+      UDItype pp_lh = (UDItype) ml * nh;
153.3135 -+      UDItype pp_hh = (UDItype) mh * nh;
153.3136 -+      UDItype res2 = 0;
153.3137 -+      UDItype res0 = 0;
153.3138 -+      UDItype ps_hh__ = pp_hl + pp_lh;
153.3139 -+      if (ps_hh__ < pp_hl)
153.3140 -+	res2 += (UDItype)1 << BITS_PER_SI;
153.3141 -+      pp_hl = (UDItype)(USItype)ps_hh__ << BITS_PER_SI;
153.3142 -+      res0 = pp_ll + pp_hl;
153.3143 -+      if (res0 < pp_ll)
153.3144 -+	res2++;
153.3145 -+      res2 += (ps_hh__ >> BITS_PER_SI) + pp_hh;
153.3146 -+      high = res2;
153.3147 -+      low = res0;
153.3148 -+    }
153.3149 -+#endif
153.3150 -+  }
153.3151 -+
153.3152 -+  tmp->normal_exp = a->normal_exp + b->normal_exp
153.3153 -+    + FRAC_NBITS - (FRACBITS + NGARDS);
153.3154 -+  tmp->sign = a->sign != b->sign;
153.3155 -+  while (high >= IMPLICIT_2)
153.3156 -+    {
153.3157 -+      tmp->normal_exp++;
153.3158 -+      if (high & 1)
153.3159 -+	{
153.3160 -+	  low >>= 1;
153.3161 -+	  low |= FRACHIGH;
153.3162 -+	}
153.3163 -+      high >>= 1;
153.3164 -+    }
153.3165 -+  while (high < IMPLICIT_1)
153.3166 -+    {
153.3167 -+      tmp->normal_exp--;
153.3168 -+
153.3169 -+      high <<= 1;
153.3170 -+      if (low & FRACHIGH)
153.3171 -+	high |= 1;
153.3172 -+      low <<= 1;
153.3173 -+    }
153.3174 -+  /* rounding is tricky. if we only round if it won't make us round later.  */
153.3175 -+#if 0
153.3176 -+  if (low & FRACHIGH2)
153.3177 -+    {
153.3178 -+      if (((high & GARDMASK) != GARDMSB)
153.3179 -+	  && (((high + 1) & GARDMASK) == GARDMSB))
153.3180 -+	{
153.3181 -+	  /* don't round, it gets done again later.  */
153.3182 -+	}
153.3183 -+      else
153.3184 -+	{
153.3185 -+	  high++;
153.3186 -+	}
153.3187 -+    }
153.3188 -+#endif
153.3189 -+  if (!ROUND_TOWARDS_ZERO && (high & GARDMASK) == GARDMSB)
153.3190 -+    {
153.3191 -+      if (high & (1 << NGARDS))
153.3192 -+	{
153.3193 -+	  /* half way, so round to even */
153.3194 -+	  high += GARDROUND + 1;
153.3195 -+	}
153.3196 -+      else if (low)
153.3197 -+	{
153.3198 -+	  /* but we really weren't half way */
153.3199 -+	  high += GARDROUND + 1;
153.3200 -+	}
153.3201 -+    }
153.3202 -+  tmp->fraction.ll = high;
153.3203 -+  tmp->class = CLASS_NUMBER;
153.3204 -+  return tmp;
153.3205 -+}
153.3206 -+
153.3207 -+FLO_type
153.3208 -+multiply (FLO_type arg_a, FLO_type arg_b)
153.3209 -+{
153.3210 -+  fp_number_type a;
153.3211 -+  fp_number_type b;
153.3212 -+  fp_number_type tmp;
153.3213 -+  fp_number_type *res;
153.3214 -+  FLO_union_type au, bu;
153.3215 -+
153.3216 -+  au.value = arg_a;
153.3217 -+  bu.value = arg_b;
153.3218 -+
153.3219 -+  unpack_d (&au, &a);
153.3220 -+  unpack_d (&bu, &b);
153.3221 -+
153.3222 -+  res = _fpmul_parts (&a, &b, &tmp);
153.3223 -+
153.3224 -+  return pack_d (res);
153.3225 -+}
153.3226 -+#endif /* L_mul_sf || L_mul_df */
153.3227 -+
153.3228 -+#if defined(L_div_sf) || defined(L_div_df) || defined(L_div_tf)
153.3229 -+static inline __attribute__ ((__always_inline__)) fp_number_type *
153.3230 -+_fpdiv_parts (fp_number_type * a,
153.3231 -+	      fp_number_type * b)
153.3232 -+{
153.3233 -+  fractype bit;
153.3234 -+  fractype numerator;
153.3235 -+  fractype denominator;
153.3236 -+  fractype quotient;
153.3237 -+
153.3238 -+  if (isnan (a))
153.3239 -+    {
153.3240 -+      return a;
153.3241 -+    }
153.3242 -+  if (isnan (b))
153.3243 -+    {
153.3244 -+      return b;
153.3245 -+    }
153.3246 -+
153.3247 -+  a->sign = a->sign ^ b->sign;
153.3248 -+
153.3249 -+  if (isinf (a) || iszero (a))
153.3250 -+    {
153.3251 -+      if (a->class == b->class)
153.3252 -+	return nan ();
153.3253 -+      return a;
153.3254 -+    }
153.3255 -+
153.3256 -+  if (isinf (b))
153.3257 -+    {
153.3258 -+      a->fraction.ll = 0;
153.3259 -+      a->normal_exp = 0;
153.3260 -+      return a;
153.3261 -+    }
153.3262 -+  if (iszero (b))
153.3263 -+    {
153.3264 -+      a->class = CLASS_INFINITY;
153.3265 -+      return a;
153.3266 -+    }
153.3267 -+
153.3268 -+  /* Calculate the mantissa by multiplying both 64bit numbers to get a
153.3269 -+     128 bit number */
153.3270 -+  {
153.3271 -+    /* quotient =
153.3272 -+       ( numerator / denominator) * 2^(numerator exponent -  denominator exponent)
153.3273 -+     */
153.3274 -+
153.3275 -+    a->normal_exp = a->normal_exp - b->normal_exp;
153.3276 -+    numerator = a->fraction.ll;
153.3277 -+    denominator = b->fraction.ll;
153.3278 -+
153.3279 -+    if (numerator < denominator)
153.3280 -+      {
153.3281 -+	/* Fraction will be less than 1.0 */
153.3282 -+	numerator *= 2;
153.3283 -+	a->normal_exp--;
153.3284 -+      }
153.3285 -+    bit = IMPLICIT_1;
153.3286 -+    quotient = 0;
153.3287 -+    /* ??? Does divide one bit at a time.  Optimize.  */
153.3288 -+    while (bit)
153.3289 -+      {
153.3290 -+	if (numerator >= denominator)
153.3291 -+	  {
153.3292 -+	    quotient |= bit;
153.3293 -+	    numerator -= denominator;
153.3294 -+	  }
153.3295 -+	bit >>= 1;
153.3296 -+	numerator *= 2;
153.3297 -+      }
153.3298 -+
153.3299 -+    if (!ROUND_TOWARDS_ZERO && (quotient & GARDMASK) == GARDMSB)
153.3300 -+      {
153.3301 -+	if (quotient & (1 << NGARDS))
153.3302 -+	  {
153.3303 -+	    /* half way, so round to even */
153.3304 -+	    quotient += GARDROUND + 1;
153.3305 -+	  }
153.3306 -+	else if (numerator)
153.3307 -+	  {
153.3308 -+	    /* but we really weren't half way, more bits exist */
153.3309 -+	    quotient += GARDROUND + 1;
153.3310 -+	  }
153.3311 -+      }
153.3312 -+
153.3313 -+    a->fraction.ll = quotient;
153.3314 -+    return (a);
153.3315 -+  }
153.3316 -+}
153.3317 -+
153.3318 -+FLO_type
153.3319 -+divide (FLO_type arg_a, FLO_type arg_b)
153.3320 -+{
153.3321 -+  fp_number_type a;
153.3322 -+  fp_number_type b;
153.3323 -+  fp_number_type *res;
153.3324 -+  FLO_union_type au, bu;
153.3325 -+
153.3326 -+  au.value = arg_a;
153.3327 -+  bu.value = arg_b;
153.3328 -+
153.3329 -+  unpack_d (&au, &a);
153.3330 -+  unpack_d (&bu, &b);
153.3331 -+
153.3332 -+  res = _fpdiv_parts (&a, &b);
153.3333 -+
153.3334 -+  return pack_d (res);
153.3335 -+}
153.3336 -+#endif /* L_div_sf || L_div_df */
153.3337 -+
153.3338 -+#if defined(L_fpcmp_parts_sf) || defined(L_fpcmp_parts_df) \
153.3339 -+    || defined(L_fpcmp_parts_tf)
153.3340 -+/* according to the demo, fpcmp returns a comparison with 0... thus
153.3341 -+   a<b -> -1
153.3342 -+   a==b -> 0
153.3343 -+   a>b -> +1
153.3344 -+ */
153.3345 -+
153.3346 -+int
153.3347 -+__fpcmp_parts (fp_number_type * a, fp_number_type * b)
153.3348 -+{
153.3349 -+#if 0
153.3350 -+  /* either nan -> unordered. Must be checked outside of this routine.  */
153.3351 -+  if (isnan (a) && isnan (b))
153.3352 -+    {
153.3353 -+      return 1;			/* still unordered! */
153.3354 -+    }
153.3355 -+#endif
153.3356 -+
153.3357 -+  if (isnan (a) || isnan (b))
153.3358 -+    {
153.3359 -+      return 1;			/* how to indicate unordered compare? */
153.3360 -+    }
153.3361 -+  if (isinf (a) && isinf (b))
153.3362 -+    {
153.3363 -+      /* +inf > -inf, but +inf != +inf */
153.3364 -+      /* b    \a| +inf(0)| -inf(1)
153.3365 -+       ______\+--------+--------
153.3366 -+       +inf(0)| a==b(0)| a<b(-1)
153.3367 -+       -------+--------+--------
153.3368 -+       -inf(1)| a>b(1) | a==b(0)
153.3369 -+       -------+--------+--------
153.3370 -+       So since unordered must be nonzero, just line up the columns...
153.3371 -+       */
153.3372 -+      return b->sign - a->sign;
153.3373 -+    }
153.3374 -+  /* but not both...  */
153.3375 -+  if (isinf (a))
153.3376 -+    {
153.3377 -+      return a->sign ? -1 : 1;
153.3378 -+    }
153.3379 -+  if (isinf (b))
153.3380 -+    {
153.3381 -+      return b->sign ? 1 : -1;
153.3382 -+    }
153.3383 -+  if (iszero (a) && iszero (b))
153.3384 -+    {
153.3385 -+      return 0;
153.3386 -+    }
153.3387 -+  if (iszero (a))
153.3388 -+    {
153.3389 -+      return b->sign ? 1 : -1;
153.3390 -+    }
153.3391 -+  if (iszero (b))
153.3392 -+    {
153.3393 -+      return a->sign ? -1 : 1;
153.3394 -+    }
153.3395 -+  /* now both are "normal".  */
153.3396 -+  if (a->sign != b->sign)
153.3397 -+    {
153.3398 -+      /* opposite signs */
153.3399 -+      return a->sign ? -1 : 1;
153.3400 -+    }
153.3401 -+  /* same sign; exponents? */
153.3402 -+  if (a->normal_exp > b->normal_exp)
153.3403 -+    {
153.3404 -+      return a->sign ? -1 : 1;
153.3405 -+    }
153.3406 -+  if (a->normal_exp < b->normal_exp)
153.3407 -+    {
153.3408 -+      return a->sign ? 1 : -1;
153.3409 -+    }
153.3410 -+  /* same exponents; check size.  */
153.3411 -+  if (a->fraction.ll > b->fraction.ll)
153.3412 -+    {
153.3413 -+      return a->sign ? -1 : 1;
153.3414 -+    }
153.3415 -+  if (a->fraction.ll < b->fraction.ll)
153.3416 -+    {
153.3417 -+      return a->sign ? 1 : -1;
153.3418 -+    }
153.3419 -+  /* after all that, they're equal.  */
153.3420 -+  return 0;
153.3421 -+}
153.3422 -+#endif
153.3423 -+
153.3424 -+#if defined(L_compare_sf) || defined(L_compare_df) || defined(L_compoare_tf)
153.3425 -+CMPtype
153.3426 -+compare (FLO_type arg_a, FLO_type arg_b)
153.3427 -+{
153.3428 -+  fp_number_type a;
153.3429 -+  fp_number_type b;
153.3430 -+  FLO_union_type au, bu;
153.3431 -+
153.3432 -+  au.value = arg_a;
153.3433 -+  bu.value = arg_b;
153.3434 -+
153.3435 -+  unpack_d (&au, &a);
153.3436 -+  unpack_d (&bu, &b);
153.3437 -+
153.3438 -+  return __fpcmp_parts (&a, &b);
153.3439 -+}
153.3440 -+#endif /* L_compare_sf || L_compare_df */
153.3441 -+
153.3442 -+#ifndef US_SOFTWARE_GOFAST
153.3443 -+
153.3444 -+/* These should be optimized for their specific tasks someday.  */
153.3445 -+
153.3446 -+#if defined(L_eq_sf) || defined(L_eq_df) || defined(L_eq_tf)
153.3447 -+CMPtype
153.3448 -+_eq_f2 (FLO_type arg_a, FLO_type arg_b)
153.3449 -+{
153.3450 -+  fp_number_type a;
153.3451 -+  fp_number_type b;
153.3452 -+  FLO_union_type au, bu;
153.3453 -+
153.3454 -+  au.value = arg_a;
153.3455 -+  bu.value = arg_b;
153.3456 -+
153.3457 -+  unpack_d (&au, &a);
153.3458 -+  unpack_d (&bu, &b);
153.3459 -+
153.3460 -+  if (isnan (&a) || isnan (&b))
153.3461 -+    return 1;			/* false, truth == 0 */
153.3462 -+
153.3463 -+  return __fpcmp_parts (&a, &b) ;
153.3464 -+}
153.3465 -+#endif /* L_eq_sf || L_eq_df */
153.3466 -+
153.3467 -+#if defined(L_ne_sf) || defined(L_ne_df) || defined(L_ne_tf)
153.3468 -+CMPtype
153.3469 -+_ne_f2 (FLO_type arg_a, FLO_type arg_b)
153.3470 -+{
153.3471 -+  fp_number_type a;
153.3472 -+  fp_number_type b;
153.3473 -+  FLO_union_type au, bu;
153.3474 -+
153.3475 -+  au.value = arg_a;
153.3476 -+  bu.value = arg_b;
153.3477 -+
153.3478 -+  unpack_d (&au, &a);
153.3479 -+  unpack_d (&bu, &b);
153.3480 -+
153.3481 -+  if (isnan (&a) || isnan (&b))
153.3482 -+    return 1;			/* true, truth != 0 */
153.3483 -+
153.3484 -+  return  __fpcmp_parts (&a, &b) ;
153.3485 -+}
153.3486 -+#endif /* L_ne_sf || L_ne_df */
153.3487 -+
153.3488 -+#if defined(L_gt_sf) || defined(L_gt_df) || defined(L_gt_tf)
153.3489 -+CMPtype
153.3490 -+_gt_f2 (FLO_type arg_a, FLO_type arg_b)
153.3491 -+{
153.3492 -+  fp_number_type a;
153.3493 -+  fp_number_type b;
153.3494 -+  FLO_union_type au, bu;
153.3495 -+
153.3496 -+  au.value = arg_a;
153.3497 -+  bu.value = arg_b;
153.3498 -+
153.3499 -+  unpack_d (&au, &a);
153.3500 -+  unpack_d (&bu, &b);
153.3501 -+
153.3502 -+  if (isnan (&a) || isnan (&b))
153.3503 -+    return -1;			/* false, truth > 0 */
153.3504 -+
153.3505 -+  return __fpcmp_parts (&a, &b);
153.3506 -+}
153.3507 -+#endif /* L_gt_sf || L_gt_df */
153.3508 -+
153.3509 -+#if defined(L_ge_sf) || defined(L_ge_df) || defined(L_ge_tf)
153.3510 -+CMPtype
153.3511 -+_ge_f2 (FLO_type arg_a, FLO_type arg_b)
153.3512 -+{
153.3513 -+  fp_number_type a;
153.3514 -+  fp_number_type b;
153.3515 -+  FLO_union_type au, bu;
153.3516 -+
153.3517 -+  au.value = arg_a;
153.3518 -+  bu.value = arg_b;
153.3519 -+
153.3520 -+  unpack_d (&au, &a);
153.3521 -+  unpack_d (&bu, &b);
153.3522 -+
153.3523 -+  if (isnan (&a) || isnan (&b))
153.3524 -+    return -1;			/* false, truth >= 0 */
153.3525 -+  return __fpcmp_parts (&a, &b) ;
153.3526 -+}
153.3527 -+#endif /* L_ge_sf || L_ge_df */
153.3528 -+
153.3529 -+#if defined(L_lt_sf) || defined(L_lt_df) || defined(L_lt_tf)
153.3530 -+CMPtype
153.3531 -+_lt_f2 (FLO_type arg_a, FLO_type arg_b)
153.3532 -+{
153.3533 -+  fp_number_type a;
153.3534 -+  fp_number_type b;
153.3535 -+  FLO_union_type au, bu;
153.3536 -+
153.3537 -+  au.value = arg_a;
153.3538 -+  bu.value = arg_b;
153.3539 -+
153.3540 -+  unpack_d (&au, &a);
153.3541 -+  unpack_d (&bu, &b);
153.3542 -+
153.3543 -+  if (isnan (&a) || isnan (&b))
153.3544 -+    return 1;			/* false, truth < 0 */
153.3545 -+
153.3546 -+  return __fpcmp_parts (&a, &b);
153.3547 -+}
153.3548 -+#endif /* L_lt_sf || L_lt_df */
153.3549 -+
153.3550 -+#if defined(L_le_sf) || defined(L_le_df) || defined(L_le_tf)
153.3551 -+CMPtype
153.3552 -+_le_f2 (FLO_type arg_a, FLO_type arg_b)
153.3553 -+{
153.3554 -+  fp_number_type a;
153.3555 -+  fp_number_type b;
153.3556 -+  FLO_union_type au, bu;
153.3557 -+
153.3558 -+  au.value = arg_a;
153.3559 -+  bu.value = arg_b;
153.3560 -+
153.3561 -+  unpack_d (&au, &a);
153.3562 -+  unpack_d (&bu, &b);
153.3563 -+
153.3564 -+  if (isnan (&a) || isnan (&b))
153.3565 -+    return 1;			/* false, truth <= 0 */
153.3566 -+
153.3567 -+  return __fpcmp_parts (&a, &b) ;
153.3568 -+}
153.3569 -+#endif /* L_le_sf || L_le_df */
153.3570 -+
153.3571 -+#endif /* ! US_SOFTWARE_GOFAST */
153.3572 -+
153.3573 -+#if defined(L_unord_sf) || defined(L_unord_df) || defined(L_unord_tf)
153.3574 -+CMPtype
153.3575 -+_unord_f2 (FLO_type arg_a, FLO_type arg_b)
153.3576 -+{
153.3577 -+  fp_number_type a;
153.3578 -+  fp_number_type b;
153.3579 -+  FLO_union_type au, bu;
153.3580 -+
153.3581 -+  au.value = arg_a;
153.3582 -+  bu.value = arg_b;
153.3583 -+
153.3584 -+  unpack_d (&au, &a);
153.3585 -+  unpack_d (&bu, &b);
153.3586 -+
153.3587 -+  return (isnan (&a) || isnan (&b));
153.3588 -+}
153.3589 -+#endif /* L_unord_sf || L_unord_df */
153.3590 -+
153.3591 -+#if defined(L_si_to_sf) || defined(L_si_to_df) || defined(L_si_to_tf)
153.3592 -+FLO_type
153.3593 -+si_to_float (SItype arg_a)
153.3594 -+{
153.3595 -+  fp_number_type in;
153.3596 -+
153.3597 -+  in.class = CLASS_NUMBER;
153.3598 -+  in.sign = arg_a < 0;
153.3599 -+  if (!arg_a)
153.3600 -+    {
153.3601 -+      in.class = CLASS_ZERO;
153.3602 -+    }
153.3603 -+  else
153.3604 -+    {
153.3605 -+      in.normal_exp = FRACBITS + NGARDS;
153.3606 -+      if (in.sign) 
153.3607 -+	{
153.3608 -+	  /* Special case for minint, since there is no +ve integer
153.3609 -+	     representation for it */
153.3610 -+	  if (arg_a == (- MAX_SI_INT - 1))
153.3611 -+	    {
153.3612 -+	      return (FLO_type)(- MAX_SI_INT - 1);
153.3613 -+	    }
153.3614 -+	  in.fraction.ll = (-arg_a);
153.3615 -+	}
153.3616 -+      else
153.3617 -+	in.fraction.ll = arg_a;
153.3618 -+
153.3619 -+      while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.3620 -+	{
153.3621 -+	  in.fraction.ll <<= 1;
153.3622 -+	  in.normal_exp -= 1;
153.3623 -+	}
153.3624 -+    }
153.3625 -+  return pack_d (&in);
153.3626 -+}
153.3627 -+#endif /* L_si_to_sf || L_si_to_df */
153.3628 -+
153.3629 -+#if defined(L_usi_to_sf) || defined(L_usi_to_df) || defined(L_usi_to_tf)
153.3630 -+FLO_type
153.3631 -+usi_to_float (USItype arg_a)
153.3632 -+{
153.3633 -+  fp_number_type in;
153.3634 -+
153.3635 -+  in.sign = 0;
153.3636 -+  if (!arg_a)
153.3637 -+    {
153.3638 -+      in.class = CLASS_ZERO;
153.3639 -+    }
153.3640 -+  else
153.3641 -+    {
153.3642 -+      in.class = CLASS_NUMBER;
153.3643 -+      in.normal_exp = FRACBITS + NGARDS;
153.3644 -+      in.fraction.ll = arg_a;
153.3645 -+
153.3646 -+      while (in.fraction.ll > ((fractype)1 << (FRACBITS + NGARDS)))
153.3647 -+        {
153.3648 -+          in.fraction.ll >>= 1;
153.3649 -+          in.normal_exp += 1;
153.3650 -+        }
153.3651 -+      while (in.fraction.ll < ((fractype)1 << (FRACBITS + NGARDS)))
153.3652 -+	{
153.3653 -+	  in.fraction.ll <<= 1;
153.3654 -+	  in.normal_exp -= 1;
153.3655 -+	}
153.3656 -+    }
153.3657 -+  return pack_d (&in);
153.3658 -+}
153.3659 -+#endif
153.3660 -+
153.3661 -+#if defined(L_sf_to_si) || defined(L_df_to_si) || defined(L_tf_to_si)
153.3662 -+SItype
153.3663 -+float_to_si (FLO_type arg_a)
153.3664 -+{
153.3665 -+  fp_number_type a;
153.3666 -+  SItype tmp;
153.3667 -+  FLO_union_type au;
153.3668 -+
153.3669 -+  au.value = arg_a;
153.3670 -+  unpack_d (&au, &a);
153.3671 -+
153.3672 -+  if (iszero (&a))
153.3673 -+    return 0;
153.3674 -+  if (isnan (&a))
153.3675 -+    return 0;
153.3676 -+  /* get reasonable MAX_SI_INT...  */
153.3677 -+  if (isinf (&a))
153.3678 -+    return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.3679 -+  /* it is a number, but a small one */
153.3680 -+  if (a.normal_exp < 0)
153.3681 -+    return 0;
153.3682 -+  if (a.normal_exp > BITS_PER_SI - 2)
153.3683 -+    return a.sign ? (-MAX_SI_INT)-1 : MAX_SI_INT;
153.3684 -+  tmp = a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.3685 -+  return a.sign ? (-tmp) : (tmp);
153.3686 -+}
153.3687 -+#endif /* L_sf_to_si || L_df_to_si */
153.3688 -+
153.3689 -+#if defined(L_sf_to_usi) || defined(L_df_to_usi) || defined(L_tf_to_usi)
153.3690 -+#if defined US_SOFTWARE_GOFAST || defined(L_tf_to_usi)
153.3691 -+/* While libgcc2.c defines its own __fixunssfsi and __fixunsdfsi routines,
153.3692 -+   we also define them for GOFAST because the ones in libgcc2.c have the
153.3693 -+   wrong names and I'd rather define these here and keep GOFAST CYG-LOC's
153.3694 -+   out of libgcc2.c.  We can't define these here if not GOFAST because then
153.3695 -+   there'd be duplicate copies.  */
153.3696 -+
153.3697 -+USItype
153.3698 -+float_to_usi (FLO_type arg_a)
153.3699 -+{
153.3700 -+  fp_number_type a;
153.3701 -+  FLO_union_type au;
153.3702 -+
153.3703 -+  au.value = arg_a;
153.3704 -+  unpack_d (&au, &a);
153.3705 -+
153.3706 -+  if (iszero (&a))
153.3707 -+    return 0;
153.3708 -+  if (isnan (&a))
153.3709 -+    return 0;
153.3710 -+  /* it is a negative number */
153.3711 -+  if (a.sign)
153.3712 -+    return 0;
153.3713 -+  /* get reasonable MAX_USI_INT...  */
153.3714 -+  if (isinf (&a))
153.3715 -+    return MAX_USI_INT;
153.3716 -+  /* it is a number, but a small one */
153.3717 -+  if (a.normal_exp < 0)
153.3718 -+    return 0;
153.3719 -+  if (a.normal_exp > BITS_PER_SI - 1)
153.3720 -+    return MAX_USI_INT;
153.3721 -+  else if (a.normal_exp > (FRACBITS + NGARDS))
153.3722 -+    return a.fraction.ll << (a.normal_exp - (FRACBITS + NGARDS));
153.3723 -+  else
153.3724 -+    return a.fraction.ll >> ((FRACBITS + NGARDS) - a.normal_exp);
153.3725 -+}
153.3726 -+#endif /* US_SOFTWARE_GOFAST */
153.3727 -+#endif /* L_sf_to_usi || L_df_to_usi */
153.3728 -+
153.3729 -+#if defined(L_negate_sf) || defined(L_negate_df) || defined(L_negate_tf)
153.3730 -+FLO_type
153.3731 -+negate (FLO_type arg_a)
153.3732 -+{
153.3733 -+  fp_number_type a;
153.3734 -+  FLO_union_type au;
153.3735 -+
153.3736 -+  au.value = arg_a;
153.3737 -+  unpack_d (&au, &a);
153.3738 -+
153.3739 -+  flip_sign (&a);
153.3740 -+  return pack_d (&a);
153.3741 -+}
153.3742 -+#endif /* L_negate_sf || L_negate_df */
153.3743 -+
153.3744 -+#ifdef FLOAT
153.3745 -+
153.3746 -+#if defined(L_make_sf)
153.3747 -+SFtype
153.3748 -+__make_fp(fp_class_type class,
153.3749 -+	     unsigned int sign,
153.3750 -+	     int exp, 
153.3751 -+	     USItype frac)
153.3752 -+{
153.3753 -+  fp_number_type in;
153.3754 -+
153.3755 -+  in.class = class;
153.3756 -+  in.sign = sign;
153.3757 -+  in.normal_exp = exp;
153.3758 -+  in.fraction.ll = frac;
153.3759 -+  return pack_d (&in);
153.3760 -+}
153.3761 -+#endif /* L_make_sf */
153.3762 -+
153.3763 -+#ifndef FLOAT_ONLY
153.3764 -+
153.3765 -+/* This enables one to build an fp library that supports float but not double.
153.3766 -+   Otherwise, we would get an undefined reference to __make_dp.
153.3767 -+   This is needed for some 8-bit ports that can't handle well values that
153.3768 -+   are 8-bytes in size, so we just don't support double for them at all.  */
153.3769 -+
153.3770 -+#if defined(L_sf_to_df)
153.3771 -+DFtype
153.3772 -+sf_to_df (SFtype arg_a)
153.3773 -+{
153.3774 -+  fp_number_type in;
153.3775 -+  FLO_union_type au;
153.3776 -+
153.3777 -+  au.value = arg_a;
153.3778 -+  unpack_d (&au, &in);
153.3779 -+
153.3780 -+  return __make_dp (in.class, in.sign, in.normal_exp,
153.3781 -+		    ((UDItype) in.fraction.ll) << F_D_BITOFF);
153.3782 -+}
153.3783 -+#endif /* L_sf_to_df */
153.3784 -+
153.3785 -+#if defined(L_sf_to_tf) && defined(TMODES)
153.3786 -+TFtype
153.3787 -+sf_to_tf (SFtype arg_a)
153.3788 -+{
153.3789 -+  fp_number_type in;
153.3790 -+  FLO_union_type au;
153.3791 -+
153.3792 -+  au.value = arg_a;
153.3793 -+  unpack_d (&au, &in);
153.3794 -+
153.3795 -+  return __make_tp (in.class, in.sign, in.normal_exp,
153.3796 -+		    ((UTItype) in.fraction.ll) << F_T_BITOFF);
153.3797 -+}
153.3798 -+#endif /* L_sf_to_df */
153.3799 -+
153.3800 -+#endif /* ! FLOAT_ONLY */
153.3801 -+#endif /* FLOAT */
153.3802 -+
153.3803 -+#ifndef FLOAT
153.3804 -+
153.3805 -+extern SFtype __make_fp (fp_class_type, unsigned int, int, USItype);
153.3806 -+
153.3807 -+#if defined(L_make_df)
153.3808 -+DFtype
153.3809 -+__make_dp (fp_class_type class, unsigned int sign, int exp, UDItype frac)
153.3810 -+{
153.3811 -+  fp_number_type in;
153.3812 -+
153.3813 -+  in.class = class;
153.3814 -+  in.sign = sign;
153.3815 -+  in.normal_exp = exp;
153.3816 -+  in.fraction.ll = frac;
153.3817 -+  return pack_d (&in);
153.3818 -+}
153.3819 -+#endif /* L_make_df */
153.3820 -+
153.3821 -+#if defined(L_df_to_sf)
153.3822 -+SFtype
153.3823 -+df_to_sf (DFtype arg_a)
153.3824 -+{
153.3825 -+  fp_number_type in;
153.3826 -+  USItype sffrac;
153.3827 -+  FLO_union_type au;
153.3828 -+
153.3829 -+  au.value = arg_a;
153.3830 -+  unpack_d (&au, &in);
153.3831 -+
153.3832 -+  sffrac = in.fraction.ll >> F_D_BITOFF;
153.3833 -+
153.3834 -+  /* We set the lowest guard bit in SFFRAC if we discarded any non
153.3835 -+     zero bits.  */
153.3836 -+  if ((in.fraction.ll & (((USItype) 1 << F_D_BITOFF) - 1)) != 0)
153.3837 -+    sffrac |= 1;
153.3838 -+
153.3839 -+  return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.3840 -+}
153.3841 -+#endif /* L_df_to_sf */
153.3842 -+
153.3843 -+#if defined(L_df_to_tf) && defined(TMODES) \
153.3844 -+    && !defined(FLOAT) && !defined(TFLOAT)
153.3845 -+TFtype
153.3846 -+df_to_tf (DFtype arg_a)
153.3847 -+{
153.3848 -+  fp_number_type in;
153.3849 -+  FLO_union_type au;
153.3850 -+
153.3851 -+  au.value = arg_a;
153.3852 -+  unpack_d (&au, &in);
153.3853 -+
153.3854 -+  return __make_tp (in.class, in.sign, in.normal_exp,
153.3855 -+		    ((UTItype) in.fraction.ll) << D_T_BITOFF);
153.3856 -+}
153.3857 -+#endif /* L_sf_to_df */
153.3858 -+
153.3859 -+#ifdef TFLOAT
153.3860 -+#if defined(L_make_tf)
153.3861 -+TFtype
153.3862 -+__make_tp(fp_class_type class,
153.3863 -+	     unsigned int sign,
153.3864 -+	     int exp, 
153.3865 -+	     UTItype frac)
153.3866 -+{
153.3867 -+  fp_number_type in;
153.3868 -+
153.3869 -+  in.class = class;
153.3870 -+  in.sign = sign;
153.3871 -+  in.normal_exp = exp;
153.3872 -+  in.fraction.ll = frac;
153.3873 -+  return pack_d (&in);
153.3874 -+}
153.3875 -+#endif /* L_make_tf */
153.3876 -+
153.3877 -+#if defined(L_tf_to_df)
153.3878 -+DFtype
153.3879 -+tf_to_df (TFtype arg_a)
153.3880 -+{
153.3881 -+  fp_number_type in;
153.3882 -+  UDItype sffrac;
153.3883 -+  FLO_union_type au;
153.3884 -+
153.3885 -+  au.value = arg_a;
153.3886 -+  unpack_d (&au, &in);
153.3887 -+
153.3888 -+  sffrac = in.fraction.ll >> D_T_BITOFF;
153.3889 -+
153.3890 -+  /* We set the lowest guard bit in SFFRAC if we discarded any non
153.3891 -+     zero bits.  */
153.3892 -+  if ((in.fraction.ll & (((UTItype) 1 << D_T_BITOFF) - 1)) != 0)
153.3893 -+    sffrac |= 1;
153.3894 -+
153.3895 -+  return __make_dp (in.class, in.sign, in.normal_exp, sffrac);
153.3896 -+}
153.3897 -+#endif /* L_tf_to_df */
153.3898 -+
153.3899 -+#if defined(L_tf_to_sf)
153.3900 -+SFtype
153.3901 -+tf_to_sf (TFtype arg_a)
153.3902 -+{
153.3903 -+  fp_number_type in;
153.3904 -+  USItype sffrac;
153.3905 -+  FLO_union_type au;
153.3906 -+
153.3907 -+  au.value = arg_a;
153.3908 -+  unpack_d (&au, &in);
153.3909 -+
153.3910 -+  sffrac = in.fraction.ll >> F_T_BITOFF;
153.3911 -+
153.3912 -+  /* We set the lowest guard bit in SFFRAC if we discarded any non
153.3913 -+     zero bits.  */
153.3914 -+  if ((in.fraction.ll & (((UTItype) 1 << F_T_BITOFF) - 1)) != 0)
153.3915 -+    sffrac |= 1;
153.3916 -+
153.3917 -+  return __make_fp (in.class, in.sign, in.normal_exp, sffrac);
153.3918 -+}
153.3919 -+#endif /* L_tf_to_sf */
153.3920 -+#endif /* TFLOAT */
153.3921 -+
153.3922 -+#endif /* ! FLOAT */
153.3923 -+#endif /* !EXTENDED_FLOAT_STUBS */
153.3924 ---- gcc-3.4.3/gcc/config/nios2/nios2-protos.h
153.3925 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2-protos.h
153.3926 -@@ -0,0 +1,70 @@
153.3927 -+/* Subroutines for assembler code output for Altera NIOS 2G NIOS2 version.
153.3928 -+   Copyright (C) 2003 Altera 
153.3929 -+   Contributed by Jonah Graham (jgraham@altera.com).
153.3930 -+
153.3931 -+This file is part of GNU CC.
153.3932 -+
153.3933 -+GNU CC is free software; you can redistribute it and/or modify
153.3934 -+it under the terms of the GNU General Public License as published by
153.3935 -+the Free Software Foundation; either version 2, or (at your option)
153.3936 -+any later version.
153.3937 -+
153.3938 -+GNU CC is distributed in the hope that it will be useful,
153.3939 -+but WITHOUT ANY WARRANTY; without even the implied warranty of
153.3940 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
153.3941 -+GNU General Public License for more details.
153.3942 -+
153.3943 -+You should have received a copy of the GNU General Public License
153.3944 -+along with GNU CC; see the file COPYING.  If not, write to
153.3945 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.3946 -+Boston, MA 02111-1307, USA.  */
153.3947 -+
153.3948 -+extern void dump_frame_size (FILE *);
153.3949 -+extern HOST_WIDE_INT compute_frame_size (void);
153.3950 -+extern int nios2_initial_elimination_offset (int, int);
153.3951 -+extern void override_options (void);
153.3952 -+extern void optimization_options (int, int);
153.3953 -+extern int nios2_can_use_return_insn (void);
153.3954 -+extern void expand_prologue (void);
153.3955 -+extern void expand_epilogue (bool);
153.3956 -+extern void function_profiler (FILE *, int);
153.3957 -+
153.3958 -+
153.3959 -+#ifdef RTX_CODE
153.3960 -+extern int nios2_legitimate_address (rtx, enum machine_mode, int);
153.3961 -+extern void nios2_print_operand (FILE *, rtx, int);
153.3962 -+extern void nios2_print_operand_address (FILE *, rtx);
153.3963 -+
153.3964 -+extern int nios2_emit_move_sequence (rtx *, enum machine_mode);
153.3965 -+extern int nios2_emit_expensive_div (rtx *, enum machine_mode);
153.3966 -+
153.3967 -+extern void gen_int_relational (enum rtx_code, rtx, rtx, rtx, rtx);
153.3968 -+extern void gen_conditional_move (rtx *, enum machine_mode);
153.3969 -+extern const char *asm_output_opcode (FILE *, const char *);
153.3970 -+
153.3971 -+/* predicates */
153.3972 -+extern int arith_operand (rtx, enum machine_mode);
153.3973 -+extern int uns_arith_operand (rtx, enum machine_mode);
153.3974 -+extern int logical_operand (rtx, enum machine_mode);
153.3975 -+extern int shift_operand (rtx, enum machine_mode);
153.3976 -+extern int reg_or_0_operand (rtx, enum machine_mode);
153.3977 -+extern int equality_op (rtx, enum machine_mode);
153.3978 -+extern int custom_insn_opcode (rtx, enum machine_mode);
153.3979 -+extern int rdwrctl_operand (rtx, enum machine_mode);
153.3980 -+
153.3981 -+# ifdef HAVE_MACHINE_MODES
153.3982 -+#  if defined TREE_CODE
153.3983 -+extern void function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3984 -+extern rtx function_arg (const CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3985 -+extern int function_arg_partial_nregs (const CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3986 -+extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
153.3987 -+extern int nios2_setup_incoming_varargs (const CUMULATIVE_ARGS *, enum machine_mode, tree, int);
153.3988 -+
153.3989 -+#  endif /* TREE_CODE */
153.3990 -+# endif	/* HAVE_MACHINE_MODES */
153.3991 -+#endif
153.3992 -+
153.3993 -+#ifdef TREE_CODE
153.3994 -+extern int nios2_return_in_memory (tree);
153.3995 -+
153.3996 -+#endif /* TREE_CODE */
153.3997 ---- gcc-3.4.3/gcc/config/nios2/nios2.c
153.3998 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2.c
153.3999 -@@ -0,0 +1,2853 @@
153.4000 -+/* Subroutines for assembler code output for Altera NIOS 2G NIOS2 version.
153.4001 -+   Copyright (C) 2003 Altera
153.4002 -+   Contributed by Jonah Graham (jgraham@altera.com).
153.4003 -+
153.4004 -+This file is part of GNU CC.
153.4005 -+
153.4006 -+GNU CC is free software; you can redistribute it and/or modify
153.4007 -+it under the terms of the GNU General Public License as published by
153.4008 -+the Free Software Foundation; either version 2, or (at your option)
153.4009 -+any later version.
153.4010 -+
153.4011 -+GNU CC is distributed in the hope that it will be useful,
153.4012 -+but WITHOUT ANY WARRANTY; without even the implied warranty of
153.4013 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
153.4014 -+GNU General Public License for more details.
153.4015 -+
153.4016 -+You should have received a copy of the GNU General Public License
153.4017 -+along with GNU CC; see the file COPYING.  If not, write to
153.4018 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.4019 -+Boston, MA 02111-1307, USA.  */
153.4020 -+
153.4021 -+
153.4022 -+#include <stdio.h>
153.4023 -+#include "config.h"
153.4024 -+#include "system.h"
153.4025 -+#include "coretypes.h"
153.4026 -+#include "tm.h"
153.4027 -+#include "rtl.h"
153.4028 -+#include "tree.h"
153.4029 -+#include "tm_p.h"
153.4030 -+#include "regs.h"
153.4031 -+#include "hard-reg-set.h"
153.4032 -+#include "real.h"
153.4033 -+#include "insn-config.h"
153.4034 -+#include "conditions.h"
153.4035 -+#include "output.h"
153.4036 -+#include "insn-attr.h"
153.4037 -+#include "flags.h"
153.4038 -+#include "recog.h"
153.4039 -+#include "expr.h"
153.4040 -+#include "toplev.h"
153.4041 -+#include "basic-block.h"
153.4042 -+#include "function.h"
153.4043 -+#include "ggc.h"
153.4044 -+#include "reload.h"
153.4045 -+#include "debug.h"
153.4046 -+#include "optabs.h"
153.4047 -+#include "target.h"
153.4048 -+#include "target-def.h"
153.4049 -+
153.4050 -+/* local prototypes */
153.4051 -+static bool nios2_rtx_costs (rtx, int, int, int *);
153.4052 -+
153.4053 -+static void nios2_asm_function_prologue (FILE *, HOST_WIDE_INT);
153.4054 -+static int nios2_use_dfa_pipeline_interface (void);
153.4055 -+static int nios2_issue_rate (void);
153.4056 -+static struct machine_function *nios2_init_machine_status (void);
153.4057 -+static bool nios2_in_small_data_p (tree);
153.4058 -+static rtx save_reg (int, HOST_WIDE_INT, rtx);
153.4059 -+static rtx restore_reg (int, HOST_WIDE_INT);
153.4060 -+static unsigned int nios2_section_type_flags (tree, const char *, int);
153.4061 -+static void nios2_init_builtins (void);
153.4062 -+static rtx nios2_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
153.4063 -+static bool nios2_function_ok_for_sibcall (tree, tree);
153.4064 -+static void nios2_encode_section_info (tree, rtx, int);
153.4065 -+
153.4066 -+/* Initialize the GCC target structure.  */
153.4067 -+#undef TARGET_ASM_FUNCTION_PROLOGUE
153.4068 -+#define TARGET_ASM_FUNCTION_PROLOGUE nios2_asm_function_prologue
153.4069 -+
153.4070 -+#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
153.4071 -+#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE \
153.4072 -+ nios2_use_dfa_pipeline_interface
153.4073 -+#undef TARGET_SCHED_ISSUE_RATE
153.4074 -+#define TARGET_SCHED_ISSUE_RATE nios2_issue_rate
153.4075 -+#undef TARGET_IN_SMALL_DATA_P
153.4076 -+#define TARGET_IN_SMALL_DATA_P nios2_in_small_data_p
153.4077 -+#undef  TARGET_ENCODE_SECTION_INFO
153.4078 -+#define TARGET_ENCODE_SECTION_INFO nios2_encode_section_info
153.4079 -+#undef  TARGET_SECTION_TYPE_FLAGS
153.4080 -+#define TARGET_SECTION_TYPE_FLAGS  nios2_section_type_flags
153.4081 -+
153.4082 -+#undef TARGET_INIT_BUILTINS
153.4083 -+#define TARGET_INIT_BUILTINS nios2_init_builtins
153.4084 -+#undef TARGET_EXPAND_BUILTIN
153.4085 -+#define TARGET_EXPAND_BUILTIN nios2_expand_builtin
153.4086 -+
153.4087 -+#undef TARGET_FUNCTION_OK_FOR_SIBCALL
153.4088 -+#define TARGET_FUNCTION_OK_FOR_SIBCALL nios2_function_ok_for_sibcall
153.4089 -+
153.4090 -+#undef TARGET_RTX_COSTS
153.4091 -+#define TARGET_RTX_COSTS nios2_rtx_costs
153.4092 -+
153.4093 -+
153.4094 -+struct gcc_target targetm = TARGET_INITIALIZER;
153.4095 -+
153.4096 -+
153.4097 -+
153.4098 -+/* Threshold for data being put into the small data/bss area, instead
153.4099 -+   of the normal data area (references to the small data/bss area take
153.4100 -+   1 instruction, and use the global pointer, references to the normal
153.4101 -+   data area takes 2 instructions).  */
153.4102 -+unsigned HOST_WIDE_INT nios2_section_threshold = NIOS2_DEFAULT_GVALUE;
153.4103 -+
153.4104 -+
153.4105 -+/* Structure to be filled in by compute_frame_size with register
153.4106 -+   save masks, and offsets for the current function.  */
153.4107 -+
153.4108 -+struct nios2_frame_info
153.4109 -+GTY (())
153.4110 -+{
153.4111 -+  long total_size;		/* # bytes that the entire frame takes up */
153.4112 -+  long var_size;		/* # bytes that variables take up */
153.4113 -+  long args_size;		/* # bytes that outgoing arguments take up */
153.4114 -+  int save_reg_size;		/* # bytes needed to store gp regs */
153.4115 -+  int save_reg_rounded;		/* # bytes needed to store gp regs */
153.4116 -+  long save_regs_offset;	/* offset from new sp to store gp registers */
153.4117 -+  int initialized;		/* != 0 if frame size already calculated */
153.4118 -+  int num_regs;			/* number of gp registers saved */
153.4119 -+};
153.4120 -+
153.4121 -+struct machine_function
153.4122 -+GTY (())
153.4123 -+{
153.4124 -+
153.4125 -+  /* Current frame information, calculated by compute_frame_size.  */
153.4126 -+  struct nios2_frame_info frame;
153.4127 -+};
153.4128 -+
153.4129 -+
153.4130 -+/***************************************
153.4131 -+ * Section encodings
153.4132 -+ ***************************************/
153.4133 -+
153.4134 -+
153.4135 -+
153.4136 -+
153.4137 -+
153.4138 -+/***************************************
153.4139 -+ * Stack Layout and Calling Conventions
153.4140 -+ ***************************************/
153.4141 -+
153.4142 -+
153.4143 -+#define TOO_BIG_OFFSET(X) ((X) > ((1 << 15) - 1))
153.4144 -+#define TEMP_REG_NUM 8
153.4145 -+
153.4146 -+static void
153.4147 -+nios2_asm_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
153.4148 -+{
153.4149 -+  if (flag_verbose_asm || flag_debug_asm)
153.4150 -+    {
153.4151 -+      compute_frame_size ();
153.4152 -+      dump_frame_size (file);
153.4153 -+    }
153.4154 -+}
153.4155 -+
153.4156 -+static rtx
153.4157 -+save_reg (int regno, HOST_WIDE_INT offset, rtx cfa_store_reg)
153.4158 -+{
153.4159 -+  rtx insn, stack_slot;
153.4160 -+
153.4161 -+  stack_slot = gen_rtx_PLUS (SImode,
153.4162 -+			     cfa_store_reg,
153.4163 -+			     GEN_INT (offset));
153.4164 -+
153.4165 -+  insn = emit_insn (gen_rtx_SET (SImode,
153.4166 -+				 gen_rtx_MEM (SImode, stack_slot),
153.4167 -+				 gen_rtx_REG (SImode, regno)));
153.4168 -+
153.4169 -+  RTX_FRAME_RELATED_P (insn) = 1;
153.4170 -+
153.4171 -+  return insn;
153.4172 -+}
153.4173 -+
153.4174 -+static rtx
153.4175 -+restore_reg (int regno, HOST_WIDE_INT offset)
153.4176 -+{
153.4177 -+  rtx insn, stack_slot;
153.4178 -+
153.4179 -+  if (TOO_BIG_OFFSET (offset))
153.4180 -+    {
153.4181 -+      stack_slot = gen_rtx_REG (SImode, TEMP_REG_NUM);
153.4182 -+      insn = emit_insn (gen_rtx_SET (SImode,
153.4183 -+				     stack_slot,
153.4184 -+				     GEN_INT (offset)));
153.4185 -+
153.4186 -+      insn = emit_insn (gen_rtx_SET (SImode,
153.4187 -+				     stack_slot,
153.4188 -+                                     gen_rtx_PLUS (SImode,
153.4189 -+				                   stack_slot,
153.4190 -+				                   stack_pointer_rtx)));
153.4191 -+    }
153.4192 -+  else
153.4193 -+    {
153.4194 -+      stack_slot = gen_rtx_PLUS (SImode,
153.4195 -+			         stack_pointer_rtx,
153.4196 -+				 GEN_INT (offset));
153.4197 -+    }
153.4198 -+
153.4199 -+  stack_slot = gen_rtx_MEM (SImode, stack_slot);
153.4200 -+
153.4201 -+  insn = emit_move_insn (gen_rtx_REG (SImode, regno), stack_slot);
153.4202 -+
153.4203 -+  return insn;
153.4204 -+}
153.4205 -+
153.4206 -+
153.4207 -+/* There are two possible paths for prologue expansion,
153.4208 -+- the first is if the total frame size is < 2^15-1. In that
153.4209 -+case all the immediates will fit into the 16-bit immediate
153.4210 -+fields.
153.4211 -+- the second is when the frame size is too big, in that
153.4212 -+case an additional temporary register is used, first 
153.4213 -+as a cfa_temp to offset the sp, second as the cfa_store
153.4214 -+register.
153.4215 -+
153.4216 -+See the comment above dwarf2out_frame_debug_expr in 
153.4217 -+dwarf2out.c for more explanation of the "rules."
153.4218 -+
153.4219 -+
153.4220 -+Case 1:
153.4221 -+Rule #  Example Insn                       Effect
153.4222 -+2  	addi	sp, sp, -total_frame_size  cfa.reg=sp, cfa.offset=total_frame_size
153.4223 -+                                           cfa_store.reg=sp, cfa_store.offset=total_frame_size
153.4224 -+12  	stw	ra, offset(sp)		   
153.4225 -+12  	stw	r16, offset(sp)
153.4226 -+1  	mov	fp, sp
153.4227 -+  
153.4228 -+Case 2: 
153.4229 -+Rule #  Example Insn                       Effect
153.4230 -+6 	movi	r8, total_frame_size       cfa_temp.reg=r8, cfa_temp.offset=total_frame_size
153.4231 -+2  	sub	sp, sp, r8                 cfa.reg=sp, cfa.offset=total_frame_size
153.4232 -+                                           cfa_store.reg=sp, cfa_store.offset=total_frame_size
153.4233 -+5   	add	r8, r8, sp                 cfa_store.reg=r8, cfa_store.offset=0
153.4234 -+12  	stw	ra, offset(r8)
153.4235 -+12  	stw	r16, offset(r8)
153.4236 -+1  	mov	fp, sp
153.4237 -+
153.4238 -+*/
153.4239 -+
153.4240 -+void
153.4241 -+expand_prologue ()
153.4242 -+{
153.4243 -+  int i;
153.4244 -+  HOST_WIDE_INT total_frame_size;
153.4245 -+  int cfa_store_offset;
153.4246 -+  rtx insn;
153.4247 -+  rtx cfa_store_reg = 0;
153.4248 -+
153.4249 -+  total_frame_size = compute_frame_size ();
153.4250 -+
153.4251 -+  if (total_frame_size)
153.4252 -+    {
153.4253 -+
153.4254 -+      if (TOO_BIG_OFFSET (total_frame_size)) 
153.4255 -+	{
153.4256 -+	    /* cfa_temp and cfa_store_reg are the same register,
153.4257 -+	       cfa_store_reg overwrites cfa_temp */
153.4258 -+	    cfa_store_reg = gen_rtx_REG (SImode, TEMP_REG_NUM);
153.4259 -+	    insn = emit_insn (gen_rtx_SET (SImode,
153.4260 -+					   cfa_store_reg,
153.4261 -+					   GEN_INT (total_frame_size)));
153.4262 -+
153.4263 -+	    RTX_FRAME_RELATED_P (insn) = 1;
153.4264 -+
153.4265 -+
153.4266 -+	    insn = gen_rtx_SET (SImode,
153.4267 -+				stack_pointer_rtx,
153.4268 -+				gen_rtx_MINUS (SImode,
153.4269 -+					       stack_pointer_rtx,
153.4270 -+					       cfa_store_reg));
153.4271 -+
153.4272 -+	    insn = emit_insn (insn);
153.4273 -+	    RTX_FRAME_RELATED_P (insn) = 1;
153.4274 -+
153.4275 -+
153.4276 -+	    /* if there are no registers to save, I don't need to
153.4277 -+	       create a cfa_store */
153.4278 -+	    if (cfun->machine->frame.save_reg_size) 
153.4279 -+	      {
153.4280 -+		insn = gen_rtx_SET (SImode,
153.4281 -+				    cfa_store_reg,
153.4282 -+				    gen_rtx_PLUS (SImode,
153.4283 -+						  cfa_store_reg,
153.4284 -+						  stack_pointer_rtx));
153.4285 -+
153.4286 -+		insn = emit_insn (insn);
153.4287 -+		RTX_FRAME_RELATED_P (insn) = 1;
153.4288 -+	      }
153.4289 -+
153.4290 -+	    cfa_store_offset 
153.4291 -+	      = total_frame_size 
153.4292 -+		- (cfun->machine->frame.save_regs_offset
153.4293 -+		   + cfun->machine->frame.save_reg_rounded);
153.4294 -+	}
153.4295 -+      else
153.4296 -+	{
153.4297 -+	    insn = gen_rtx_SET (SImode,
153.4298 -+				stack_pointer_rtx,
153.4299 -+				gen_rtx_PLUS (SImode,
153.4300 -+					      stack_pointer_rtx,
153.4301 -+					      GEN_INT (-total_frame_size)));
153.4302 -+	    insn = emit_insn (insn);
153.4303 -+	    RTX_FRAME_RELATED_P (insn) = 1;
153.4304 -+
153.4305 -+	    cfa_store_reg = stack_pointer_rtx;
153.4306 -+	    cfa_store_offset 
153.4307 -+	      = cfun->machine->frame.save_regs_offset
153.4308 -+		+ cfun->machine->frame.save_reg_rounded;
153.4309 -+	}
153.4310 -+    }
153.4311 -+
153.4312 -+  if (MUST_SAVE_REGISTER (RA_REGNO))
153.4313 -+    {
153.4314 -+      cfa_store_offset -= 4;
153.4315 -+      save_reg (RA_REGNO, cfa_store_offset, cfa_store_reg);
153.4316 -+    }
153.4317 -+  if (MUST_SAVE_REGISTER (FP_REGNO))
153.4318 -+    {
153.4319 -+      cfa_store_offset -= 4;
153.4320 -+      save_reg (FP_REGNO, cfa_store_offset, cfa_store_reg);
153.4321 -+    }
153.4322 -+
153.4323 -+  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
153.4324 -+    {
153.4325 -+      if (MUST_SAVE_REGISTER (i) && i != FP_REGNO && i != RA_REGNO)
153.4326 -+	{
153.4327 -+	  cfa_store_offset -= 4;
153.4328 -+	  save_reg (i, cfa_store_offset, cfa_store_reg);
153.4329 -+	}
153.4330 -+    }
153.4331 -+
153.4332 -+  if (frame_pointer_needed)
153.4333 -+    {
153.4334 -+      insn = emit_insn (gen_rtx_SET (SImode,
153.4335 -+				     gen_rtx_REG (SImode, FP_REGNO),
153.4336 -+				     gen_rtx_REG (SImode, SP_REGNO)));
153.4337 -+
153.4338 -+      RTX_FRAME_RELATED_P (insn) = 1;
153.4339 -+    }
153.4340 -+
153.4341 -+  /* If we are profiling, make sure no instructions are scheduled before
153.4342 -+     the call to mcount.  */
153.4343 -+  if (current_function_profile)
153.4344 -+    emit_insn (gen_blockage ());
153.4345 -+}
153.4346 -+
153.4347 -+void
153.4348 -+expand_epilogue (bool sibcall_p)
153.4349 -+{
153.4350 -+  rtx insn;
153.4351 -+  int i;
153.4352 -+  HOST_WIDE_INT total_frame_size;
153.4353 -+  int register_store_offset;
153.4354 -+
153.4355 -+  total_frame_size = compute_frame_size ();
153.4356 -+
153.4357 -+  if (!sibcall_p && nios2_can_use_return_insn ())
153.4358 -+    {
153.4359 -+      insn = emit_jump_insn (gen_return ());
153.4360 -+      return;
153.4361 -+    }
153.4362 -+
153.4363 -+  emit_insn (gen_blockage ());
153.4364 -+
153.4365 -+  register_store_offset =
153.4366 -+    cfun->machine->frame.save_regs_offset +
153.4367 -+    cfun->machine->frame.save_reg_rounded;
153.4368 -+
153.4369 -+  if (MUST_SAVE_REGISTER (RA_REGNO))
153.4370 -+    {
153.4371 -+      register_store_offset -= 4;
153.4372 -+      restore_reg (RA_REGNO, register_store_offset);
153.4373 -+    }
153.4374 -+
153.4375 -+  if (MUST_SAVE_REGISTER (FP_REGNO))
153.4376 -+    {
153.4377 -+      register_store_offset -= 4;
153.4378 -+      restore_reg (FP_REGNO, register_store_offset);
153.4379 -+    }
153.4380 -+
153.4381 -+  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
153.4382 -+    {
153.4383 -+      if (MUST_SAVE_REGISTER (i) && i != FP_REGNO && i != RA_REGNO)
153.4384 -+	{
153.4385 -+	  register_store_offset -= 4;
153.4386 -+	  restore_reg (i, register_store_offset);
153.4387 -+	}
153.4388 -+    }
153.4389 -+
153.4390 -+  if (total_frame_size)
153.4391 -+    {
153.4392 -+      rtx sp_adjust;
153.4393 -+
153.4394 -+      if (TOO_BIG_OFFSET (total_frame_size))
153.4395 -+        {
153.4396 -+	  sp_adjust = gen_rtx_REG (SImode, TEMP_REG_NUM);
153.4397 -+	  insn = emit_insn (gen_rtx_SET (SImode,
153.4398 -+					 sp_adjust,
153.4399 -+					 GEN_INT (total_frame_size)));
153.4400 -+
153.4401 -+      	}
153.4402 -+      else
153.4403 -+        {
153.4404 -+	  sp_adjust = GEN_INT (total_frame_size);
153.4405 -+	}
153.4406 -+
153.4407 -+      insn = gen_rtx_SET (SImode,
153.4408 -+			  stack_pointer_rtx,
153.4409 -+			  gen_rtx_PLUS (SImode,
153.4410 -+					stack_pointer_rtx,
153.4411 -+					sp_adjust));
153.4412 -+      insn = emit_insn (insn);
153.4413 -+    }
153.4414 -+
153.4415 -+
153.4416 -+  if (!sibcall_p)
153.4417 -+    {
153.4418 -+      insn = emit_jump_insn (gen_return_from_epilogue (gen_rtx (REG, Pmode,
153.4419 -+								RA_REGNO)));
153.4420 -+    }
153.4421 -+}
153.4422 -+
153.4423 -+
153.4424 -+bool
153.4425 -+nios2_function_ok_for_sibcall (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
153.4426 -+{
153.4427 -+  return true;
153.4428 -+}
153.4429 -+
153.4430 -+
153.4431 -+
153.4432 -+
153.4433 -+
153.4434 -+/* ----------------------- *
153.4435 -+ * Profiling
153.4436 -+ * ----------------------- */
153.4437 -+
153.4438 -+void
153.4439 -+function_profiler (FILE *file, int labelno)
153.4440 -+{
153.4441 -+  fprintf (file, "\t%s mcount begin, label: .LP%d\n", 
153.4442 -+           ASM_COMMENT_START, labelno);
153.4443 -+  fprintf (file, "\tnextpc\tr8\n");
153.4444 -+  fprintf (file, "\tmov\tr9, ra\n");
153.4445 -+  fprintf (file, "\tmovhi\tr10, %%hiadj(.LP%d)\n", labelno);
153.4446 -+  fprintf (file, "\taddi\tr10, r10, %%lo(.LP%d)\n", labelno);
153.4447 -+  fprintf (file, "\tcall\tmcount\n");
153.4448 -+  fprintf (file, "\tmov\tra, r9\n");
153.4449 -+  fprintf (file, "\t%s mcount end\n", ASM_COMMENT_START);
153.4450 -+}
153.4451 -+
153.4452 -+
153.4453 -+/***************************************
153.4454 -+ * Stack Layout
153.4455 -+ ***************************************/
153.4456 -+
153.4457 -+
153.4458 -+void
153.4459 -+dump_frame_size (FILE *file)
153.4460 -+{
153.4461 -+  fprintf (file, "\t%s Current Frame Info\n", ASM_COMMENT_START);
153.4462 -+
153.4463 -+  fprintf (file, "\t%s total_size = %ld\n", ASM_COMMENT_START,
153.4464 -+	   cfun->machine->frame.total_size);
153.4465 -+  fprintf (file, "\t%s var_size = %ld\n", ASM_COMMENT_START,
153.4466 -+	   cfun->machine->frame.var_size);
153.4467 -+  fprintf (file, "\t%s args_size = %ld\n", ASM_COMMENT_START,
153.4468 -+	   cfun->machine->frame.args_size);
153.4469 -+  fprintf (file, "\t%s save_reg_size = %d\n", ASM_COMMENT_START,
153.4470 -+	   cfun->machine->frame.save_reg_size);
153.4471 -+  fprintf (file, "\t%s save_reg_rounded = %d\n", ASM_COMMENT_START,
153.4472 -+	   cfun->machine->frame.save_reg_rounded);
153.4473 -+  fprintf (file, "\t%s initialized = %d\n", ASM_COMMENT_START,
153.4474 -+	   cfun->machine->frame.initialized);
153.4475 -+  fprintf (file, "\t%s num_regs = %d\n", ASM_COMMENT_START,
153.4476 -+	   cfun->machine->frame.num_regs);
153.4477 -+  fprintf (file, "\t%s save_regs_offset = %ld\n", ASM_COMMENT_START,
153.4478 -+	   cfun->machine->frame.save_regs_offset);
153.4479 -+  fprintf (file, "\t%s current_function_is_leaf = %d\n", ASM_COMMENT_START,
153.4480 -+	   current_function_is_leaf);
153.4481 -+  fprintf (file, "\t%s frame_pointer_needed = %d\n", ASM_COMMENT_START,
153.4482 -+	   frame_pointer_needed);
153.4483 -+  fprintf (file, "\t%s pretend_args_size = %d\n", ASM_COMMENT_START,
153.4484 -+	   current_function_pretend_args_size);
153.4485 -+
153.4486 -+}
153.4487 -+
153.4488 -+
153.4489 -+/* Return the bytes needed to compute the frame pointer from the current
153.4490 -+   stack pointer.
153.4491 -+*/
153.4492 -+
153.4493 -+HOST_WIDE_INT
153.4494 -+compute_frame_size ()
153.4495 -+{
153.4496 -+  unsigned int regno;
153.4497 -+  HOST_WIDE_INT var_size;	/* # of var. bytes allocated */
153.4498 -+  HOST_WIDE_INT total_size;	/* # bytes that the entire frame takes up */
153.4499 -+  HOST_WIDE_INT save_reg_size;	/* # bytes needed to store callee save regs */
153.4500 -+  HOST_WIDE_INT save_reg_rounded;	
153.4501 -+    /* # bytes needed to store callee save regs (rounded) */
153.4502 -+  HOST_WIDE_INT out_args_size;	/* # bytes needed for outgoing args */
153.4503 -+
153.4504 -+  save_reg_size = 0;
153.4505 -+  var_size = STACK_ALIGN (get_frame_size ());
153.4506 -+  out_args_size = STACK_ALIGN (current_function_outgoing_args_size);
153.4507 -+
153.4508 -+  total_size = var_size + out_args_size;
153.4509 -+
153.4510 -+  /* Calculate space needed for gp registers.  */
153.4511 -+  for (regno = 0; regno <= FIRST_PSEUDO_REGISTER; regno++)
153.4512 -+    {
153.4513 -+      if (MUST_SAVE_REGISTER (regno))
153.4514 -+	{
153.4515 -+	  save_reg_size += 4;
153.4516 -+	}
153.4517 -+    }
153.4518 -+
153.4519 -+  save_reg_rounded = STACK_ALIGN (save_reg_size);
153.4520 -+  total_size += save_reg_rounded;
153.4521 -+
153.4522 -+  total_size += STACK_ALIGN (current_function_pretend_args_size);
153.4523 -+
153.4524 -+  /* Save other computed information.  */
153.4525 -+  cfun->machine->frame.total_size = total_size;
153.4526 -+  cfun->machine->frame.var_size = var_size;
153.4527 -+  cfun->machine->frame.args_size = current_function_outgoing_args_size;
153.4528 -+  cfun->machine->frame.save_reg_size = save_reg_size;
153.4529 -+  cfun->machine->frame.save_reg_rounded = save_reg_rounded;
153.4530 -+  cfun->machine->frame.initialized = reload_completed;
153.4531 -+  cfun->machine->frame.num_regs = save_reg_size / UNITS_PER_WORD;
153.4532 -+
153.4533 -+  cfun->machine->frame.save_regs_offset
153.4534 -+    = save_reg_rounded ? current_function_outgoing_args_size + var_size : 0;
153.4535 -+
153.4536 -+  return total_size;
153.4537 -+}
153.4538 -+
153.4539 -+
153.4540 -+int
153.4541 -+nios2_initial_elimination_offset (int from, int to ATTRIBUTE_UNUSED)
153.4542 -+{
153.4543 -+  int offset;
153.4544 -+
153.4545 -+  /* Set OFFSET to the offset from the stack pointer.  */
153.4546 -+  switch (from)
153.4547 -+    {
153.4548 -+    case FRAME_POINTER_REGNUM:
153.4549 -+      offset = 0;
153.4550 -+      break;
153.4551 -+
153.4552 -+    case ARG_POINTER_REGNUM:
153.4553 -+      compute_frame_size ();
153.4554 -+      offset = cfun->machine->frame.total_size;
153.4555 -+      offset -= current_function_pretend_args_size;
153.4556 -+      break;
153.4557 -+
153.4558 -+    case RETURN_ADDRESS_POINTER_REGNUM:
153.4559 -+      compute_frame_size ();
153.4560 -+      /* since the return address is always the first of the
153.4561 -+         saved registers, return the offset to the beginning
153.4562 -+         of the saved registers block */
153.4563 -+      offset = cfun->machine->frame.save_regs_offset;
153.4564 -+      break;
153.4565 -+
153.4566 -+    default:
153.4567 -+      abort ();
153.4568 -+    }
153.4569 -+
153.4570 -+  return offset;
153.4571 -+}
153.4572 -+
153.4573 -+/* Return nonzero if this function is known to have a null epilogue.
153.4574 -+   This allows the optimizer to omit jumps to jumps if no stack
153.4575 -+   was created.  */
153.4576 -+int
153.4577 -+nios2_can_use_return_insn ()
153.4578 -+{
153.4579 -+  if (!reload_completed)
153.4580 -+    return 0;
153.4581 -+
153.4582 -+  if (regs_ever_live[RA_REGNO] || current_function_profile)
153.4583 -+    return 0;
153.4584 -+
153.4585 -+  if (cfun->machine->frame.initialized)
153.4586 -+    return cfun->machine->frame.total_size == 0;
153.4587 -+
153.4588 -+  return compute_frame_size () == 0;
153.4589 -+}
153.4590 -+
153.4591 -+
153.4592 -+
153.4593 -+
153.4594 -+
153.4595 -+/***************************************
153.4596 -+ *
153.4597 -+ ***************************************/
153.4598 -+
153.4599 -+const char *nios2_sys_nosys_string;    /* for -msys=nosys */
153.4600 -+const char *nios2_sys_lib_string;    /* for -msys-lib= */
153.4601 -+const char *nios2_sys_crt0_string;    /* for -msys-crt0= */
153.4602 -+
153.4603 -+void
153.4604 -+override_options ()
153.4605 -+{
153.4606 -+  /* Function to allocate machine-dependent function status.  */
153.4607 -+  init_machine_status = &nios2_init_machine_status;
153.4608 -+
153.4609 -+  nios2_section_threshold 
153.4610 -+    = g_switch_set ? g_switch_value : NIOS2_DEFAULT_GVALUE;
153.4611 -+
153.4612 -+  if (nios2_sys_nosys_string && *nios2_sys_nosys_string)
153.4613 -+    {
153.4614 -+      error ("invalid option '-msys=nosys%s'", nios2_sys_nosys_string);
153.4615 -+    }
153.4616 -+
153.4617 -+  /* If we don't have mul, we don't have mulx either! */
153.4618 -+  if (!TARGET_HAS_MUL && TARGET_HAS_MULX) 
153.4619 -+    {
153.4620 -+      target_flags &= ~HAS_MULX_FLAG;
153.4621 -+    }
153.4622 -+
153.4623 -+}
153.4624 -+
153.4625 -+void
153.4626 -+optimization_options (int level, int size)
153.4627 -+{
153.4628 -+  if (level || size)
153.4629 -+    {
153.4630 -+      target_flags |= INLINE_MEMCPY_FLAG;
153.4631 -+    }
153.4632 -+
153.4633 -+  if (level >= 3 && !size)
153.4634 -+    {
153.4635 -+      target_flags |= FAST_SW_DIV_FLAG;
153.4636 -+    }
153.4637 -+}
153.4638 -+
153.4639 -+/* Allocate a chunk of memory for per-function machine-dependent data.  */
153.4640 -+static struct machine_function *
153.4641 -+nios2_init_machine_status ()
153.4642 -+{
153.4643 -+  return ((struct machine_function *)
153.4644 -+	  ggc_alloc_cleared (sizeof (struct machine_function)));
153.4645 -+}
153.4646 -+
153.4647 -+
153.4648 -+
153.4649 -+/*****************
153.4650 -+ * Describing Relative Costs of Operations
153.4651 -+ *****************/
153.4652 -+
153.4653 -+/* Compute a (partial) cost for rtx X.  Return true if the complete
153.4654 -+   cost has been computed, and false if subexpressions should be
153.4655 -+   scanned.  In either case, *TOTAL contains the cost result.  */
153.4656 -+
153.4657 -+
153.4658 -+
153.4659 -+static bool
153.4660 -+nios2_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED, int *total)
153.4661 -+{
153.4662 -+  switch (code)
153.4663 -+    {
153.4664 -+      case CONST_INT:
153.4665 -+	if (INTVAL (x) == 0)
153.4666 -+	  {
153.4667 -+	    *total = COSTS_N_INSNS (0);
153.4668 -+	    return true;
153.4669 -+	  }
153.4670 -+	else if (SMALL_INT (INTVAL (x))
153.4671 -+		|| SMALL_INT_UNSIGNED (INTVAL (x))
153.4672 -+		|| UPPER16_INT (INTVAL (x)))
153.4673 -+	  {
153.4674 -+	    *total = COSTS_N_INSNS (2);
153.4675 -+	    return true;
153.4676 -+	  }
153.4677 -+	else
153.4678 -+	  {
153.4679 -+	    *total = COSTS_N_INSNS (4);
153.4680 -+	    return true;
153.4681 -+	  }
153.4682 -+
153.4683 -+      case LABEL_REF:
153.4684 -+      case SYMBOL_REF:
153.4685 -+	/* ??? gp relative stuff will fit in here */
153.4686 -+	/* fall through */
153.4687 -+      case CONST:
153.4688 -+      case CONST_DOUBLE:
153.4689 -+	{
153.4690 -+	  *total = COSTS_N_INSNS (4);
153.4691 -+	  return true;
153.4692 -+	}
153.4693 -+
153.4694 -+      case MULT:
153.4695 -+	{
153.4696 -+	  *total = COSTS_N_INSNS (1);
153.4697 -+	  return false;
153.4698 -+	}
153.4699 -+      case SIGN_EXTEND:
153.4700 -+	{
153.4701 -+	  *total = COSTS_N_INSNS (3);
153.4702 -+	  return false;
153.4703 -+	}
153.4704 -+      case ZERO_EXTEND:
153.4705 -+	{
153.4706 -+	  *total = COSTS_N_INSNS (1);
153.4707 -+	  return false;
153.4708 -+	}
153.4709 -+
153.4710 -+    default:
153.4711 -+      return false;
153.4712 -+    }
153.4713 -+}
153.4714 -+
153.4715 -+
153.4716 -+/***************************************
153.4717 -+ * INSTRUCTION SUPPORT
153.4718 -+ *
153.4719 -+ * These functions are used within the Machine Description to
153.4720 -+ * handle common or complicated output and expansions from
153.4721 -+ * instructions.
153.4722 -+ ***************************************/
153.4723 -+
153.4724 -+int
153.4725 -+nios2_emit_move_sequence (rtx *operands, enum machine_mode mode)
153.4726 -+{
153.4727 -+  rtx to = operands[0];
153.4728 -+  rtx from = operands[1];
153.4729 -+
153.4730 -+  if (!register_operand (to, mode) && !reg_or_0_operand (from, mode))
153.4731 -+    {
153.4732 -+      if (no_new_pseudos)
153.4733 -+	internal_error ("Trying to force_reg no_new_pseudos == 1");
153.4734 -+      from = copy_to_mode_reg (mode, from);
153.4735 -+    }
153.4736 -+
153.4737 -+  operands[0] = to;
153.4738 -+  operands[1] = from;
153.4739 -+  return 0;
153.4740 -+}
153.4741 -+
153.4742 -+/* Divide Support */
153.4743 -+
153.4744 -+/*
153.4745 -+  If -O3 is used, we want to output a table lookup for
153.4746 -+  divides between small numbers (both num and den >= 0
153.4747 -+  and < 0x10). The overhead of this method in the worse
153.4748 -+  case is 40 bytes in the text section (10 insns) and
153.4749 -+  256 bytes in the data section. Additional divides do
153.4750 -+  not incur additional penalties in the data section.
153.4751 -+
153.4752 -+  Code speed is improved for small divides by about 5x
153.4753 -+  when using this method in the worse case (~9 cycles
153.4754 -+  vs ~45). And in the worse case divides not within the
153.4755 -+  table are penalized by about 10% (~5 cycles vs ~45).
153.4756 -+  However in the typical case the penalty is not as bad
153.4757 -+  because doing the long divide in only 45 cycles is
153.4758 -+  quite optimistic.
153.4759 -+
153.4760 -+  ??? It would be nice to have some benchmarks other
153.4761 -+  than Dhrystone to back this up.
153.4762 -+
153.4763 -+  This bit of expansion is to create this instruction
153.4764 -+  sequence as rtl.
153.4765 -+	or	$8, $4, $5
153.4766 -+	slli	$9, $4, 4
153.4767 -+	cmpgeui	$3, $8, 16
153.4768 -+	beq	$3, $0, .L3
153.4769 -+	or	$10, $9, $5
153.4770 -+	add	$12, $11, divide_table
153.4771 -+	ldbu	$2, 0($12)
153.4772 -+	br	.L1
153.4773 -+.L3:
153.4774 -+	call	slow_div
153.4775 -+.L1:
153.4776 -+#	continue here with result in $2
153.4777 -+
153.4778 -+  ??? Ideally I would like the emit libcall block to contain
153.4779 -+  all of this code, but I don't know how to do that. What it
153.4780 -+  means is that if the divide can be eliminated, it may not
153.4781 -+  completely disappear.
153.4782 -+
153.4783 -+  ??? The __divsi3_table label should ideally be moved out
153.4784 -+  of this block and into a global. If it is placed into the
153.4785 -+  sdata section we can save even more cycles by doing things
153.4786 -+  gp relative.
153.4787 -+*/
153.4788 -+int
153.4789 -+nios2_emit_expensive_div (rtx *operands, enum machine_mode mode)
153.4790 -+{
153.4791 -+  rtx or_result, shift_left_result;
153.4792 -+  rtx lookup_value;
153.4793 -+  rtx lab1, lab3;
153.4794 -+  rtx insns;
153.4795 -+  rtx libfunc;
153.4796 -+  rtx final_result;
153.4797 -+  rtx tmp;
153.4798 -+
153.4799 -+  /* it may look a little generic, but only SImode
153.4800 -+     is supported for now */
153.4801 -+  if (mode != SImode)
153.4802 -+    abort ();
153.4803 -+
153.4804 -+  libfunc = sdiv_optab->handlers[(int) SImode].libfunc;
153.4805 -+
153.4806 -+
153.4807 -+
153.4808 -+  lab1 = gen_label_rtx ();
153.4809 -+  lab3 = gen_label_rtx ();
153.4810 -+
153.4811 -+  or_result = expand_simple_binop (SImode, IOR,
153.4812 -+				   operands[1], operands[2],
153.4813 -+				   0, 0, OPTAB_LIB_WIDEN);
153.4814 -+
153.4815 -+  emit_cmp_and_jump_insns (or_result, GEN_INT (15), GTU, 0,
153.4816 -+			   GET_MODE (or_result), 0, lab3);
153.4817 -+  JUMP_LABEL (get_last_insn ()) = lab3;
153.4818 -+
153.4819 -+  shift_left_result = expand_simple_binop (SImode, ASHIFT,
153.4820 -+					   operands[1], GEN_INT (4),
153.4821 -+					   0, 0, OPTAB_LIB_WIDEN);
153.4822 -+
153.4823 -+  lookup_value = expand_simple_binop (SImode, IOR,
153.4824 -+				      shift_left_result, operands[2],
153.4825 -+				      0, 0, OPTAB_LIB_WIDEN);
153.4826 -+
153.4827 -+  convert_move (operands[0],
153.4828 -+		gen_rtx (MEM, QImode,
153.4829 -+			 gen_rtx (PLUS, SImode,
153.4830 -+				  lookup_value,
153.4831 -+				  gen_rtx_SYMBOL_REF (SImode, "__divsi3_table"))),
153.4832 -+		1);
153.4833 -+
153.4834 -+
153.4835 -+  tmp = emit_jump_insn (gen_jump (lab1));
153.4836 -+  JUMP_LABEL (tmp) = lab1;
153.4837 -+  emit_barrier ();
153.4838 -+
153.4839 -+  emit_label (lab3);
153.4840 -+  LABEL_NUSES (lab3) = 1;
153.4841 -+
153.4842 -+  start_sequence ();
153.4843 -+  final_result = emit_library_call_value (libfunc, NULL_RTX,
153.4844 -+					  LCT_CONST, SImode, 2,
153.4845 -+					  operands[1], SImode,
153.4846 -+					  operands[2], SImode);
153.4847 -+
153.4848 -+
153.4849 -+  insns = get_insns ();
153.4850 -+  end_sequence ();
153.4851 -+  emit_libcall_block (insns, operands[0], final_result,
153.4852 -+		      gen_rtx (DIV, SImode, operands[1], operands[2]));
153.4853 -+
153.4854 -+  emit_label (lab1);
153.4855 -+  LABEL_NUSES (lab1) = 1;
153.4856 -+  return 1;
153.4857 -+}
153.4858 -+
153.4859 -+/* Branches/Compares */
153.4860 -+
153.4861 -+/* the way of handling branches/compares
153.4862 -+   in gcc is heavily borrowed from MIPS */
153.4863 -+
153.4864 -+enum internal_test
153.4865 -+{
153.4866 -+  ITEST_EQ,
153.4867 -+  ITEST_NE,
153.4868 -+  ITEST_GT,
153.4869 -+  ITEST_GE,
153.4870 -+  ITEST_LT,
153.4871 -+  ITEST_LE,
153.4872 -+  ITEST_GTU,
153.4873 -+  ITEST_GEU,
153.4874 -+  ITEST_LTU,
153.4875 -+  ITEST_LEU,
153.4876 -+  ITEST_MAX
153.4877 -+};
153.4878 -+
153.4879 -+static enum internal_test map_test_to_internal_test (enum rtx_code);
153.4880 -+
153.4881 -+/* Cached operands, and operator to compare for use in set/branch/trap
153.4882 -+   on condition codes.  */
153.4883 -+rtx branch_cmp[2];
153.4884 -+enum cmp_type branch_type;
153.4885 -+
153.4886 -+/* Make normal rtx_code into something we can index from an array */
153.4887 -+
153.4888 -+static enum internal_test
153.4889 -+map_test_to_internal_test (enum rtx_code test_code)
153.4890 -+{
153.4891 -+  enum internal_test test = ITEST_MAX;
153.4892 -+
153.4893 -+  switch (test_code)
153.4894 -+    {
153.4895 -+    case EQ:
153.4896 -+      test = ITEST_EQ;
153.4897 -+      break;
153.4898 -+    case NE:
153.4899 -+      test = ITEST_NE;
153.4900 -+      break;
153.4901 -+    case GT:
153.4902 -+      test = ITEST_GT;
153.4903 -+      break;
153.4904 -+    case GE:
153.4905 -+      test = ITEST_GE;
153.4906 -+      break;
153.4907 -+    case LT:
153.4908 -+      test = ITEST_LT;
153.4909 -+      break;
153.4910 -+    case LE:
153.4911 -+      test = ITEST_LE;
153.4912 -+      break;
153.4913 -+    case GTU:
153.4914 -+      test = ITEST_GTU;
153.4915 -+      break;
153.4916 -+    case GEU:
153.4917 -+      test = ITEST_GEU;
153.4918 -+      break;
153.4919 -+    case LTU:
153.4920 -+      test = ITEST_LTU;
153.4921 -+      break;
153.4922 -+    case LEU:
153.4923 -+      test = ITEST_LEU;
153.4924 -+      break;
153.4925 -+    default:
153.4926 -+      break;
153.4927 -+    }
153.4928 -+
153.4929 -+  return test;
153.4930 -+}
153.4931 -+
153.4932 -+/* Generate the code to compare (and possibly branch) two integer values
153.4933 -+   TEST_CODE is the comparison code we are trying to emulate 
153.4934 -+     (or implement directly)
153.4935 -+   RESULT is where to store the result of the comparison, 
153.4936 -+     or null to emit a branch
153.4937 -+   CMP0 CMP1 are the two comparison operands
153.4938 -+   DESTINATION is the destination of the branch, or null to only compare
153.4939 -+   */
153.4940 -+
153.4941 -+void
153.4942 -+gen_int_relational (enum rtx_code test_code, /* relational test (EQ, etc) */
153.4943 -+		    rtx result,		/* result to store comp. or 0 if branch */
153.4944 -+		    rtx cmp0,		/* first operand to compare */
153.4945 -+		    rtx cmp1,		/* second operand to compare */
153.4946 -+		    rtx destination)	/* destination of the branch, or 0 if compare */
153.4947 -+{
153.4948 -+  struct cmp_info
153.4949 -+  {
153.4950 -+    /* for register (or 0) compares */
153.4951 -+    enum rtx_code test_code_reg;	/* code to use in instruction (LT vs. LTU) */
153.4952 -+    int reverse_regs;		/* reverse registers in test */
153.4953 -+
153.4954 -+    /* for immediate compares */
153.4955 -+    enum rtx_code test_code_const;	
153.4956 -+         /* code to use in instruction (LT vs. LTU) */
153.4957 -+    int const_low;		/* low bound of constant we can accept */
153.4958 -+    int const_high;		/* high bound of constant we can accept */
153.4959 -+    int const_add;		/* constant to add */
153.4960 -+
153.4961 -+    /* generic info */
153.4962 -+    int unsignedp;		/* != 0 for unsigned comparisons.  */
153.4963 -+  };
153.4964 -+
153.4965 -+  static const struct cmp_info info[(int) ITEST_MAX] = {
153.4966 -+
153.4967 -+    {EQ, 0, EQ, -32768, 32767, 0, 0}, /* EQ  */
153.4968 -+    {NE, 0, NE, -32768, 32767, 0, 0}, /* NE  */
153.4969 -+
153.4970 -+    {LT, 1, GE, -32769, 32766, 1, 0}, /* GT  */
153.4971 -+    {GE, 0, GE, -32768, 32767, 0, 0}, /* GE  */
153.4972 -+    {LT, 0, LT, -32768, 32767, 0, 0}, /* LT  */
153.4973 -+    {GE, 1, LT, -32769, 32766, 1, 0}, /* LE  */
153.4974 -+
153.4975 -+    {LTU, 1, GEU, 0, 65534, 1, 0}, /* GTU */
153.4976 -+    {GEU, 0, GEU, 0, 65535, 0, 0}, /* GEU */
153.4977 -+    {LTU, 0, LTU, 0, 65535, 0, 0}, /* LTU */
153.4978 -+    {GEU, 1, LTU, 0, 65534, 1, 0}, /* LEU */
153.4979 -+  };
153.4980 -+
153.4981 -+  enum internal_test test;
153.4982 -+  enum machine_mode mode;
153.4983 -+  const struct cmp_info *p_info;
153.4984 -+  int branch_p;
153.4985 -+
153.4986 -+
153.4987 -+
153.4988 -+
153.4989 -+  test = map_test_to_internal_test (test_code);
153.4990 -+  if (test == ITEST_MAX)
153.4991 -+    abort ();
153.4992 -+
153.4993 -+  p_info = &info[(int) test];
153.4994 -+
153.4995 -+  mode = GET_MODE (cmp0);
153.4996 -+  if (mode == VOIDmode)
153.4997 -+    mode = GET_MODE (cmp1);
153.4998 -+
153.4999 -+  branch_p = (destination != 0);
153.5000 -+
153.5001 -+  /* We can't, under any circumstances, have const_ints in cmp0
153.5002 -+     ??? Actually we could have const0 */
153.5003 -+  if (GET_CODE (cmp0) == CONST_INT)
153.5004 -+    cmp0 = force_reg (mode, cmp0);
153.5005 -+
153.5006 -+  /* if the comparison is against an int not in legal range
153.5007 -+     move it into a register */
153.5008 -+  if (GET_CODE (cmp1) == CONST_INT)
153.5009 -+    {
153.5010 -+      HOST_WIDE_INT value = INTVAL (cmp1);
153.5011 -+
153.5012 -+      if (value < p_info->const_low || value > p_info->const_high)
153.5013 -+	cmp1 = force_reg (mode, cmp1);
153.5014 -+    }
153.5015 -+
153.5016 -+  /* Comparison to constants, may involve adding 1 to change a GT into GE.
153.5017 -+     Comparison between two registers, may involve switching operands.  */
153.5018 -+  if (GET_CODE (cmp1) == CONST_INT)
153.5019 -+    {
153.5020 -+      if (p_info->const_add != 0)
153.5021 -+	{
153.5022 -+	  HOST_WIDE_INT new = INTVAL (cmp1) + p_info->const_add;
153.5023 -+
153.5024 -+	  /* If modification of cmp1 caused overflow,
153.5025 -+	     we would get the wrong answer if we follow the usual path;
153.5026 -+	     thus, x > 0xffffffffU would turn into x > 0U.  */
153.5027 -+	  if ((p_info->unsignedp
153.5028 -+	       ? (unsigned HOST_WIDE_INT) new >
153.5029 -+	       (unsigned HOST_WIDE_INT) INTVAL (cmp1)
153.5030 -+	       : new > INTVAL (cmp1)) != (p_info->const_add > 0))
153.5031 -+	    {
153.5032 -+	      /* ??? This case can never happen with the current numbers,
153.5033 -+	         but I am paranoid and would rather an abort than
153.5034 -+	         a bug I will never find */
153.5035 -+	      abort ();
153.5036 -+	    }
153.5037 -+	  else
153.5038 -+	    cmp1 = GEN_INT (new);
153.5039 -+	}
153.5040 -+    }
153.5041 -+
153.5042 -+  else if (p_info->reverse_regs)
153.5043 -+    {
153.5044 -+      rtx temp = cmp0;
153.5045 -+      cmp0 = cmp1;
153.5046 -+      cmp1 = temp;
153.5047 -+    }
153.5048 -+
153.5049 -+
153.5050 -+
153.5051 -+  if (branch_p)
153.5052 -+    {
153.5053 -+      if (register_operand (cmp0, mode) && register_operand (cmp1, mode))
153.5054 -+	{
153.5055 -+	  rtx insn;
153.5056 -+	  rtx cond = gen_rtx (p_info->test_code_reg, mode, cmp0, cmp1);
153.5057 -+	  rtx label = gen_rtx_LABEL_REF (VOIDmode, destination);
153.5058 -+
153.5059 -+	  insn = gen_rtx_SET (VOIDmode, pc_rtx,
153.5060 -+			      gen_rtx_IF_THEN_ELSE (VOIDmode,
153.5061 -+						    cond, label, pc_rtx));
153.5062 -+	  emit_jump_insn (insn);
153.5063 -+	}
153.5064 -+      else
153.5065 -+	{
153.5066 -+	  rtx cond, label;
153.5067 -+
153.5068 -+	  result = gen_reg_rtx (mode);
153.5069 -+
153.5070 -+	  emit_move_insn (result,
153.5071 -+			  gen_rtx (p_info->test_code_const, mode, cmp0,
153.5072 -+				   cmp1));
153.5073 -+
153.5074 -+	  cond = gen_rtx (NE, mode, result, const0_rtx);
153.5075 -+	  label = gen_rtx_LABEL_REF (VOIDmode, destination);
153.5076 -+
153.5077 -+	  emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx,
153.5078 -+				       gen_rtx_IF_THEN_ELSE (VOIDmode,
153.5079 -+							     cond,
153.5080 -+							     label, pc_rtx)));
153.5081 -+	}
153.5082 -+    }
153.5083 -+  else
153.5084 -+    {
153.5085 -+      if (register_operand (cmp0, mode) && register_operand (cmp1, mode))
153.5086 -+	{
153.5087 -+	  emit_move_insn (result,
153.5088 -+			  gen_rtx (p_info->test_code_reg, mode, cmp0, cmp1));
153.5089 -+	}
153.5090 -+      else
153.5091 -+	{
153.5092 -+	  emit_move_insn (result,
153.5093 -+			  gen_rtx (p_info->test_code_const, mode, cmp0,
153.5094 -+				   cmp1));
153.5095 -+	}
153.5096 -+    }
153.5097 -+
153.5098 -+}
153.5099 -+
153.5100 -+
153.5101 -+/* ??? For now conditional moves are only supported
153.5102 -+   when the mode of the operands being compared are
153.5103 -+   the same as the ones being moved */
153.5104 -+
153.5105 -+void
153.5106 -+gen_conditional_move (rtx *operands, enum machine_mode mode)
153.5107 -+{
153.5108 -+  rtx insn, cond;
153.5109 -+  rtx cmp_reg = gen_reg_rtx (mode);
153.5110 -+  enum rtx_code cmp_code = GET_CODE (operands[1]);
153.5111 -+  enum rtx_code move_code = EQ;
153.5112 -+
153.5113 -+  /* emit a comparison if it is not "simple".
153.5114 -+     Simple comparisons are X eq 0 and X ne 0 */
153.5115 -+  if ((cmp_code == EQ || cmp_code == NE) && branch_cmp[1] == const0_rtx)
153.5116 -+    {
153.5117 -+      cmp_reg = branch_cmp[0];
153.5118 -+      move_code = cmp_code;
153.5119 -+    }
153.5120 -+  else if ((cmp_code == EQ || cmp_code == NE) && branch_cmp[0] == const0_rtx)
153.5121 -+    {
153.5122 -+      cmp_reg = branch_cmp[1];
153.5123 -+      move_code = cmp_code == EQ ? NE : EQ;
153.5124 -+    }
153.5125 -+  else
153.5126 -+    gen_int_relational (cmp_code, cmp_reg, branch_cmp[0], branch_cmp[1],
153.5127 -+			NULL_RTX);
153.5128 -+
153.5129 -+  cond = gen_rtx (move_code, VOIDmode, cmp_reg, CONST0_RTX (mode));
153.5130 -+  insn = gen_rtx_SET (mode, operands[0],
153.5131 -+		      gen_rtx_IF_THEN_ELSE (mode,
153.5132 -+					    cond, operands[2], operands[3]));
153.5133 -+  emit_insn (insn);
153.5134 -+}
153.5135 -+
153.5136 -+/*******************
153.5137 -+ * Addressing Modes
153.5138 -+ *******************/
153.5139 -+
153.5140 -+int
153.5141 -+nios2_legitimate_address (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED, 
153.5142 -+                          int strict)
153.5143 -+{
153.5144 -+  int ret_val = 0;
153.5145 -+
153.5146 -+  switch (GET_CODE (operand))
153.5147 -+    {
153.5148 -+      /* direct.  */
153.5149 -+    case SYMBOL_REF:
153.5150 -+      if (SYMBOL_REF_IN_NIOS2_SMALL_DATA_P (operand))
153.5151 -+        {
153.5152 -+          ret_val = 1;
153.5153 -+          break;
153.5154 -+	}
153.5155 -+      /* else, fall through */
153.5156 -+    case LABEL_REF:
153.5157 -+    case CONST_INT:
153.5158 -+    case CONST:
153.5159 -+    case CONST_DOUBLE:
153.5160 -+      /* ??? In here I need to add gp addressing */
153.5161 -+      ret_val = 0;
153.5162 -+
153.5163 -+      break;
153.5164 -+
153.5165 -+      /* Register indirect.  */
153.5166 -+    case REG:
153.5167 -+      ret_val = REG_OK_FOR_BASE_P2 (operand, strict);
153.5168 -+      break;
153.5169 -+
153.5170 -+      /* Register indirect with displacement */
153.5171 -+    case PLUS:
153.5172 -+      {
153.5173 -+	rtx op0 = XEXP (operand, 0);
153.5174 -+	rtx op1 = XEXP (operand, 1);
153.5175 -+
153.5176 -+	if (REG_P (op0) && REG_P (op1))
153.5177 -+	  ret_val = 0;
153.5178 -+	else if (REG_P (op0) && CONSTANT_P (op1))
153.5179 -+	  ret_val = REG_OK_FOR_BASE_P2 (op0, strict)
153.5180 -+	    && SMALL_INT (INTVAL (op1));
153.5181 -+	else if (REG_P (op1) && CONSTANT_P (op0))
153.5182 -+	  ret_val = REG_OK_FOR_BASE_P2 (op1, strict)
153.5183 -+	    && SMALL_INT (INTVAL (op0));
153.5184 -+	else
153.5185 -+	  ret_val = 0;
153.5186 -+      }
153.5187 -+      break;
153.5188 -+
153.5189 -+    default:
153.5190 -+      ret_val = 0;
153.5191 -+      break;
153.5192 -+    }
153.5193 -+
153.5194 -+  return ret_val;
153.5195 -+}
153.5196 -+
153.5197 -+/* Return true if EXP should be placed in the small data section.  */
153.5198 -+
153.5199 -+static bool
153.5200 -+nios2_in_small_data_p (tree exp)
153.5201 -+{
153.5202 -+  /* We want to merge strings, so we never consider them small data.  */
153.5203 -+  if (TREE_CODE (exp) == STRING_CST)
153.5204 -+    return false;
153.5205 -+
153.5206 -+  if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
153.5207 -+    {
153.5208 -+      const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));
153.5209 -+      /* ??? these string names need moving into 
153.5210 -+         an array in some header file */
153.5211 -+      if (nios2_section_threshold > 0
153.5212 -+          && (strcmp (section, ".sbss") == 0
153.5213 -+	      || strncmp (section, ".sbss.", 6) == 0
153.5214 -+	      || strcmp (section, ".sdata") == 0
153.5215 -+	      || strncmp (section, ".sdata.", 7) == 0))
153.5216 -+	return true;
153.5217 -+    }
153.5218 -+  else if (TREE_CODE (exp) == VAR_DECL)
153.5219 -+    {
153.5220 -+      HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (exp));
153.5221 -+
153.5222 -+      /* If this is an incomplete type with size 0, then we can't put it
153.5223 -+         in sdata because it might be too big when completed.  */
153.5224 -+      if (size > 0 && size <= nios2_section_threshold)
153.5225 -+	return true;
153.5226 -+    }
153.5227 -+
153.5228 -+  return false;
153.5229 -+}
153.5230 -+
153.5231 -+static void
153.5232 -+nios2_encode_section_info (tree decl, rtx rtl, int first)
153.5233 -+{
153.5234 -+
153.5235 -+  rtx symbol;
153.5236 -+  int flags;
153.5237 -+
153.5238 -+  default_encode_section_info (decl, rtl, first);
153.5239 -+  
153.5240 -+  /* Careful not to prod global register variables.  */
153.5241 -+  if (GET_CODE (rtl) != MEM)
153.5242 -+    return;
153.5243 -+  symbol = XEXP (rtl, 0);
153.5244 -+  if (GET_CODE (symbol) != SYMBOL_REF)
153.5245 -+    return;
153.5246 -+
153.5247 -+  flags = SYMBOL_REF_FLAGS (symbol);
153.5248 -+    
153.5249 -+  /* We don't want weak variables to be addressed with gp in case they end up with
153.5250 -+     value 0 which is not within 2^15 of $gp */
153.5251 -+  if (DECL_P (decl) && DECL_WEAK (decl))
153.5252 -+    flags |= SYMBOL_FLAG_WEAK_DECL;
153.5253 -+
153.5254 -+  SYMBOL_REF_FLAGS (symbol) = flags;
153.5255 -+}
153.5256 -+
153.5257 -+
153.5258 -+static unsigned int
153.5259 -+nios2_section_type_flags (tree decl, const char *name, int reloc)
153.5260 -+{
153.5261 -+  unsigned int flags;
153.5262 -+
153.5263 -+  flags = default_section_type_flags (decl, name, reloc);
153.5264 -+
153.5265 -+  /* ??? these string names need moving into an array in some header file */
153.5266 -+  if (strcmp (name, ".sbss") == 0
153.5267 -+      || strncmp (name, ".sbss.", 6) == 0
153.5268 -+      || strcmp (name, ".sdata") == 0
153.5269 -+      || strncmp (name, ".sdata.", 7) == 0)
153.5270 -+    flags |= SECTION_SMALL;
153.5271 -+
153.5272 -+  return flags;
153.5273 -+}
153.5274 -+
153.5275 -+
153.5276 -+
153.5277 -+
153.5278 -+/*****************************************
153.5279 -+ * Defining the Output Assembler Language
153.5280 -+ *****************************************/
153.5281 -+
153.5282 -+/* -------------- *
153.5283 -+ * Output of Data
153.5284 -+ * -------------- */
153.5285 -+
153.5286 -+
153.5287 -+/* -------------------------------- *
153.5288 -+ * Output of Assembler Instructions
153.5289 -+ * -------------------------------- */
153.5290 -+
153.5291 -+
153.5292 -+/* print the operand OP to file stream
153.5293 -+   FILE modified by LETTER. LETTER
153.5294 -+   can be one of:
153.5295 -+     i: print "i" if OP is an immediate, except 0
153.5296 -+     o: print "io" if OP is volatile
153.5297 -+
153.5298 -+     z: for const0_rtx print $0 instead of 0
153.5299 -+     H: for %hiadj
153.5300 -+     L: for %lo
153.5301 -+     U: for upper half of 32 bit value
153.5302 -+ */
153.5303 -+
153.5304 -+void
153.5305 -+nios2_print_operand (FILE *file, rtx op, int letter)
153.5306 -+{
153.5307 -+
153.5308 -+  switch (letter)
153.5309 -+    {
153.5310 -+    case 'i':
153.5311 -+      if (CONSTANT_P (op) && (op != const0_rtx))
153.5312 -+	fprintf (file, "i");
153.5313 -+      return;
153.5314 -+
153.5315 -+    case 'o':
153.5316 -+      if (GET_CODE (op) == MEM
153.5317 -+          && ((MEM_VOLATILE_P (op) && !TARGET_CACHE_VOLATILE)
153.5318 -+              || TARGET_BYPASS_CACHE))
153.5319 -+	fprintf (file, "io");
153.5320 -+      return;
153.5321 -+
153.5322 -+    default:
153.5323 -+      break;
153.5324 -+    }
153.5325 -+
153.5326 -+  if (comparison_operator (op, VOIDmode))
153.5327 -+    {
153.5328 -+      if (letter == 0)
153.5329 -+	{
153.5330 -+	  fprintf (file, "%s", GET_RTX_NAME (GET_CODE (op)));
153.5331 -+	  return;
153.5332 -+	}
153.5333 -+    }
153.5334 -+
153.5335 -+
153.5336 -+  switch (GET_CODE (op))
153.5337 -+    {
153.5338 -+    case REG:
153.5339 -+      if (letter == 0 || letter == 'z')
153.5340 -+	{
153.5341 -+	  fprintf (file, "%s", reg_names[REGNO (op)]);
153.5342 -+	  return;
153.5343 -+	}
153.5344 -+
153.5345 -+    case CONST_INT:
153.5346 -+      if (INTVAL (op) == 0 && letter == 'z')
153.5347 -+	{
153.5348 -+	  fprintf (file, "zero");
153.5349 -+	  return;
153.5350 -+	}
153.5351 -+      else if (letter == 'U')
153.5352 -+	{
153.5353 -+	  HOST_WIDE_INT val = INTVAL (op);
153.5354 -+	  rtx new_op;
153.5355 -+	  val = (val / 65536) & 0xFFFF;
153.5356 -+	  new_op = GEN_INT (val);
153.5357 -+	  output_addr_const (file, new_op);
153.5358 -+	  return;
153.5359 -+	}
153.5360 -+
153.5361 -+      /* else, fall through */
153.5362 -+    case CONST:
153.5363 -+    case LABEL_REF:
153.5364 -+    case SYMBOL_REF:
153.5365 -+    case CONST_DOUBLE:
153.5366 -+      if (letter == 0 || letter == 'z')
153.5367 -+	{
153.5368 -+	  output_addr_const (file, op);
153.5369 -+	  return;
153.5370 -+	}
153.5371 -+      else if (letter == 'H')
153.5372 -+	{
153.5373 -+	  fprintf (file, "%%hiadj(");
153.5374 -+	  output_addr_const (file, op);
153.5375 -+	  fprintf (file, ")");
153.5376 -+	  return;
153.5377 -+	}
153.5378 -+      else if (letter == 'L')
153.5379 -+	{
153.5380 -+	  fprintf (file, "%%lo(");
153.5381 -+	  output_addr_const (file, op);
153.5382 -+	  fprintf (file, ")");
153.5383 -+	  return;
153.5384 -+	}
153.5385 -+
153.5386 -+
153.5387 -+    case SUBREG:
153.5388 -+    case MEM:
153.5389 -+      if (letter == 0)
153.5390 -+	{
153.5391 -+	  output_address (op);
153.5392 -+	  return;
153.5393 -+	}
153.5394 -+
153.5395 -+    case CODE_LABEL:
153.5396 -+      if (letter == 0)
153.5397 -+	{
153.5398 -+	  output_addr_const (file, op);
153.5399 -+	  return;
153.5400 -+	}
153.5401 -+
153.5402 -+    default:
153.5403 -+      break;
153.5404 -+    }
153.5405 -+
153.5406 -+  fprintf (stderr, "Missing way to print (%c) ", letter);
153.5407 -+  debug_rtx (op);
153.5408 -+  abort ();
153.5409 -+}
153.5410 -+
153.5411 -+static int gprel_constant (rtx);
153.5412 -+
153.5413 -+static int
153.5414 -+gprel_constant (rtx op)
153.5415 -+{
153.5416 -+  if (GET_CODE (op) == SYMBOL_REF
153.5417 -+      && SYMBOL_REF_IN_NIOS2_SMALL_DATA_P (op))
153.5418 -+    {
153.5419 -+      return 1;
153.5420 -+    }
153.5421 -+  else if (GET_CODE (op) == CONST
153.5422 -+           && GET_CODE (XEXP (op, 0)) == PLUS)
153.5423 -+    {
153.5424 -+      return gprel_constant (XEXP (XEXP (op, 0), 0));
153.5425 -+    }
153.5426 -+  else
153.5427 -+    {
153.5428 -+      return 0;
153.5429 -+    }
153.5430 -+}
153.5431 -+
153.5432 -+void
153.5433 -+nios2_print_operand_address (FILE *file, rtx op)
153.5434 -+{
153.5435 -+  switch (GET_CODE (op))
153.5436 -+    {
153.5437 -+    case CONST:
153.5438 -+    case CONST_INT:
153.5439 -+    case LABEL_REF:
153.5440 -+    case CONST_DOUBLE:
153.5441 -+    case SYMBOL_REF:
153.5442 -+      if (gprel_constant (op))
153.5443 -+        {
153.5444 -+          fprintf (file, "%%gprel(");
153.5445 -+          output_addr_const (file, op);
153.5446 -+          fprintf (file, ")(%s)", reg_names[GP_REGNO]);
153.5447 -+          return;
153.5448 -+        }
153.5449 -+
153.5450 -+      break;
153.5451 -+
153.5452 -+    case PLUS:
153.5453 -+      {
153.5454 -+	rtx op0 = XEXP (op, 0);
153.5455 -+	rtx op1 = XEXP (op, 1);
153.5456 -+
153.5457 -+	if (REG_P (op0) && CONSTANT_P (op1))
153.5458 -+	  {
153.5459 -+	    output_addr_const (file, op1);
153.5460 -+	    fprintf (file, "(%s)", reg_names[REGNO (op0)]);
153.5461 -+	    return;
153.5462 -+	  }
153.5463 -+	else if (REG_P (op1) && CONSTANT_P (op0))
153.5464 -+	  {
153.5465 -+	    output_addr_const (file, op0);
153.5466 -+	    fprintf (file, "(%s)", reg_names[REGNO (op1)]);
153.5467 -+	    return;
153.5468 -+	  }
153.5469 -+      }
153.5470 -+      break;
153.5471 -+
153.5472 -+    case REG:
153.5473 -+      fprintf (file, "0(%s)", reg_names[REGNO (op)]);
153.5474 -+      return;
153.5475 -+
153.5476 -+    case MEM:
153.5477 -+      {
153.5478 -+	rtx base = XEXP (op, 0);
153.5479 -+	PRINT_OPERAND_ADDRESS (file, base);
153.5480 -+	return;
153.5481 -+      }
153.5482 -+    default:
153.5483 -+      break;
153.5484 -+    }
153.5485 -+
153.5486 -+  fprintf (stderr, "Missing way to print address\n");
153.5487 -+  debug_rtx (op);
153.5488 -+  abort ();
153.5489 -+}
153.5490 -+
153.5491 -+
153.5492 -+
153.5493 -+
153.5494 -+
153.5495 -+/****************************
153.5496 -+ * Predicates
153.5497 -+ ****************************/
153.5498 -+
153.5499 -+int
153.5500 -+arith_operand (rtx op, enum machine_mode mode)
153.5501 -+{
153.5502 -+  if (GET_CODE (op) == CONST_INT && SMALL_INT (INTVAL (op)))
153.5503 -+    return 1;
153.5504 -+
153.5505 -+  return register_operand (op, mode);
153.5506 -+}
153.5507 -+
153.5508 -+int
153.5509 -+uns_arith_operand (rtx op, enum machine_mode mode)
153.5510 -+{
153.5511 -+  if (GET_CODE (op) == CONST_INT && SMALL_INT_UNSIGNED (INTVAL (op)))
153.5512 -+    return 1;
153.5513 -+
153.5514 -+  return register_operand (op, mode);
153.5515 -+}
153.5516 -+
153.5517 -+int
153.5518 -+logical_operand (rtx op, enum machine_mode mode)
153.5519 -+{
153.5520 -+  if (GET_CODE (op) == CONST_INT
153.5521 -+      && (SMALL_INT_UNSIGNED (INTVAL (op)) || UPPER16_INT (INTVAL (op))))
153.5522 -+    return 1;
153.5523 -+
153.5524 -+  return register_operand (op, mode);
153.5525 -+}
153.5526 -+
153.5527 -+int
153.5528 -+shift_operand (rtx op, enum machine_mode mode)
153.5529 -+{
153.5530 -+  if (GET_CODE (op) == CONST_INT && SHIFT_INT (INTVAL (op)))
153.5531 -+    return 1;
153.5532 -+
153.5533 -+  return register_operand (op, mode);
153.5534 -+}
153.5535 -+
153.5536 -+int
153.5537 -+rdwrctl_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
153.5538 -+{
153.5539 -+  return GET_CODE (op) == CONST_INT && RDWRCTL_INT (INTVAL (op));
153.5540 -+}
153.5541 -+
153.5542 -+/* Return truth value of whether OP is a register or the constant 0. */
153.5543 -+
153.5544 -+int
153.5545 -+reg_or_0_operand (rtx op, enum machine_mode mode)
153.5546 -+{
153.5547 -+  switch (GET_CODE (op))
153.5548 -+    {
153.5549 -+    case CONST_INT:
153.5550 -+      return INTVAL (op) == 0;
153.5551 -+
153.5552 -+    case CONST_DOUBLE:
153.5553 -+      return op == CONST0_RTX (mode);
153.5554 -+
153.5555 -+    default:
153.5556 -+      break;
153.5557 -+    }
153.5558 -+
153.5559 -+  return register_operand (op, mode);
153.5560 -+}
153.5561 -+
153.5562 -+
153.5563 -+int
153.5564 -+equality_op (rtx op, enum machine_mode mode)
153.5565 -+{
153.5566 -+  if (mode != GET_MODE (op))
153.5567 -+    return 0;
153.5568 -+
153.5569 -+  return GET_CODE (op) == EQ || GET_CODE (op) == NE;
153.5570 -+}
153.5571 -+
153.5572 -+int
153.5573 -+custom_insn_opcode (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
153.5574 -+{
153.5575 -+  return GET_CODE (op) == CONST_INT && CUSTOM_INSN_OPCODE (INTVAL (op));
153.5576 -+}
153.5577 -+
153.5578 -+
153.5579 -+
153.5580 -+
153.5581 -+
153.5582 -+
153.5583 -+
153.5584 -+/*****************************************************************************
153.5585 -+**
153.5586 -+** instruction scheduler
153.5587 -+**
153.5588 -+*****************************************************************************/
153.5589 -+static int
153.5590 -+nios2_use_dfa_pipeline_interface ()
153.5591 -+{
153.5592 -+  return 1;
153.5593 -+}
153.5594 -+
153.5595 -+
153.5596 -+static int
153.5597 -+nios2_issue_rate ()
153.5598 -+{
153.5599 -+#ifdef MAX_DFA_ISSUE_RATE
153.5600 -+  return MAX_DFA_ISSUE_RATE;
153.5601 -+#else
153.5602 -+  return 1;
153.5603 -+#endif
153.5604 -+}
153.5605 -+
153.5606 -+
153.5607 -+const char *
153.5608 -+asm_output_opcode (FILE *file ATTRIBUTE_UNUSED, 
153.5609 -+                   const char *ptr ATTRIBUTE_UNUSED)
153.5610 -+{
153.5611 -+  const char *p;
153.5612 -+
153.5613 -+  p = ptr;
153.5614 -+  return ptr;
153.5615 -+}
153.5616 -+
153.5617 -+
153.5618 -+
153.5619 -+/*****************************************************************************
153.5620 -+**
153.5621 -+** function arguments
153.5622 -+**
153.5623 -+*****************************************************************************/
153.5624 -+
153.5625 -+void
153.5626 -+init_cumulative_args (CUMULATIVE_ARGS *cum, 
153.5627 -+                      tree fntype ATTRIBUTE_UNUSED, 
153.5628 -+                      rtx libname ATTRIBUTE_UNUSED, 
153.5629 -+                      tree fndecl ATTRIBUTE_UNUSED, 
153.5630 -+                      int n_named_args ATTRIBUTE_UNUSED)
153.5631 -+{
153.5632 -+  cum->regs_used = 0;
153.5633 -+}
153.5634 -+
153.5635 -+
153.5636 -+/* Update the data in CUM to advance over an argument
153.5637 -+   of mode MODE and data type TYPE.
153.5638 -+   (TYPE is null for libcalls where that information may not be available.)  */
153.5639 -+
153.5640 -+void
153.5641 -+function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, 
153.5642 -+                      tree type ATTRIBUTE_UNUSED, int named ATTRIBUTE_UNUSED)
153.5643 -+{
153.5644 -+  HOST_WIDE_INT param_size;
153.5645 -+
153.5646 -+  if (mode == BLKmode)
153.5647 -+    {
153.5648 -+      param_size = int_size_in_bytes (type);
153.5649 -+      if (param_size < 0)
153.5650 -+	internal_error
153.5651 -+	  ("Do not know how to handle large structs or variable length types");
153.5652 -+    }
153.5653 -+  else
153.5654 -+    {
153.5655 -+      param_size = GET_MODE_SIZE (mode);
153.5656 -+    }
153.5657 -+
153.5658 -+  /* convert to words (round up) */
153.5659 -+  param_size = (3 + param_size) / 4;
153.5660 -+
153.5661 -+  if (cum->regs_used + param_size > NUM_ARG_REGS)
153.5662 -+    {
153.5663 -+      cum->regs_used = NUM_ARG_REGS;
153.5664 -+    }
153.5665 -+  else
153.5666 -+    {
153.5667 -+      cum->regs_used += param_size;
153.5668 -+    }
153.5669 -+
153.5670 -+  return;
153.5671 -+}
153.5672 -+
153.5673 -+/* Define where to put the arguments to a function.  Value is zero to
153.5674 -+   push the argument on the stack, or a hard register in which to
153.5675 -+   store the argument.
153.5676 -+
153.5677 -+   MODE is the argument's machine mode.
153.5678 -+   TYPE is the data type of the argument (as a tree).
153.5679 -+   This is null for libcalls where that information may
153.5680 -+   not be available.
153.5681 -+   CUM is a variable of type CUMULATIVE_ARGS which gives info about
153.5682 -+   the preceding args and about the function being called.
153.5683 -+   NAMED is nonzero if this argument is a named parameter
153.5684 -+   (otherwise it is an extra parameter matching an ellipsis).  */
153.5685 -+rtx
153.5686 -+function_arg (const CUMULATIVE_ARGS *cum, enum machine_mode mode, 
153.5687 -+              tree type ATTRIBUTE_UNUSED, int named ATTRIBUTE_UNUSED)
153.5688 -+{
153.5689 -+  rtx return_rtx = NULL_RTX;
153.5690 -+
153.5691 -+  if (cum->regs_used < NUM_ARG_REGS)
153.5692 -+    {
153.5693 -+      return_rtx = gen_rtx_REG (mode, FIRST_ARG_REGNO + cum->regs_used);
153.5694 -+    }
153.5695 -+
153.5696 -+  return return_rtx;
153.5697 -+}
153.5698 -+
153.5699 -+int
153.5700 -+function_arg_partial_nregs (const CUMULATIVE_ARGS *cum,
153.5701 -+                            enum machine_mode mode, tree type, 
153.5702 -+                            int named ATTRIBUTE_UNUSED)
153.5703 -+{
153.5704 -+  HOST_WIDE_INT param_size;
153.5705 -+
153.5706 -+  if (mode == BLKmode)
153.5707 -+    {
153.5708 -+      param_size = int_size_in_bytes (type);
153.5709 -+      if (param_size < 0)
153.5710 -+	internal_error
153.5711 -+	  ("Do not know how to handle large structs or variable length types");
153.5712 -+    }
153.5713 -+  else
153.5714 -+    {
153.5715 -+      param_size = GET_MODE_SIZE (mode);
153.5716 -+    }
153.5717 -+
153.5718 -+  /* convert to words (round up) */
153.5719 -+  param_size = (3 + param_size) / 4;
153.5720 -+
153.5721 -+  if (cum->regs_used < NUM_ARG_REGS
153.5722 -+      && cum->regs_used + param_size > NUM_ARG_REGS)
153.5723 -+    {
153.5724 -+      return NUM_ARG_REGS - cum->regs_used;
153.5725 -+    }
153.5726 -+  else
153.5727 -+    {
153.5728 -+      return 0;
153.5729 -+    }
153.5730 -+}
153.5731 -+
153.5732 -+
153.5733 -+int
153.5734 -+nios2_return_in_memory (tree type)
153.5735 -+{
153.5736 -+  int res = ((int_size_in_bytes (type) > (2 * UNITS_PER_WORD))
153.5737 -+  	     || (int_size_in_bytes (type) == -1));
153.5738 -+
153.5739 -+  return res;
153.5740 -+}
153.5741 -+
153.5742 -+/* ??? It may be possible to eliminate the copyback and implement
153.5743 -+       my own va_arg type, but that is more work for now. */
153.5744 -+int
153.5745 -+nios2_setup_incoming_varargs (const CUMULATIVE_ARGS *cum, 
153.5746 -+                              enum machine_mode mode, tree type, 
153.5747 -+                              int no_rtl)
153.5748 -+{
153.5749 -+  CUMULATIVE_ARGS local_cum;
153.5750 -+  int regs_to_push;
153.5751 -+
153.5752 -+  local_cum = *cum;
153.5753 -+  FUNCTION_ARG_ADVANCE (local_cum, mode, type, 1);
153.5754 -+
153.5755 -+  regs_to_push = NUM_ARG_REGS - local_cum.regs_used;
153.5756 -+
153.5757 -+  if (!no_rtl)
153.5758 -+    {
153.5759 -+      if (regs_to_push > 0)
153.5760 -+	{
153.5761 -+	  rtx ptr, mem;
153.5762 -+
153.5763 -+	  ptr = virtual_incoming_args_rtx;
153.5764 -+	  mem = gen_rtx_MEM (BLKmode, ptr);
153.5765 -+
153.5766 -+	  /* va_arg is an array access in this case, which causes
153.5767 -+	     it to get MEM_IN_STRUCT_P set.  We must set it here
153.5768 -+	     so that the insn scheduler won't assume that these
153.5769 -+	     stores can't possibly overlap with the va_arg loads.  */
153.5770 -+	  MEM_SET_IN_STRUCT_P (mem, 1);
153.5771 -+
153.5772 -+	  emit_insn (gen_blockage ());
153.5773 -+	  move_block_from_reg (local_cum.regs_used + FIRST_ARG_REGNO, mem,
153.5774 -+			       regs_to_push);
153.5775 -+	  emit_insn (gen_blockage ());
153.5776 -+	}
153.5777 -+    }
153.5778 -+
153.5779 -+  return regs_to_push * UNITS_PER_WORD;
153.5780 -+
153.5781 -+}
153.5782 -+
153.5783 -+
153.5784 -+
153.5785 -+/*****************************************************************************
153.5786 -+**
153.5787 -+** builtins
153.5788 -+**
153.5789 -+** This method for handling builtins is from CSP where _many_ more types of
153.5790 -+** expanders have already been written. Check there first before writing
153.5791 -+** new ones.
153.5792 -+**
153.5793 -+*****************************************************************************/
153.5794 -+
153.5795 -+enum nios2_builtins
153.5796 -+{
153.5797 -+  NIOS2_BUILTIN_LDBIO,
153.5798 -+  NIOS2_BUILTIN_LDBUIO,
153.5799 -+  NIOS2_BUILTIN_LDHIO,
153.5800 -+  NIOS2_BUILTIN_LDHUIO,
153.5801 -+  NIOS2_BUILTIN_LDWIO,
153.5802 -+  NIOS2_BUILTIN_STBIO,
153.5803 -+  NIOS2_BUILTIN_STHIO,
153.5804 -+  NIOS2_BUILTIN_STWIO,
153.5805 -+  NIOS2_BUILTIN_SYNC,
153.5806 -+  NIOS2_BUILTIN_RDCTL,
153.5807 -+  NIOS2_BUILTIN_WRCTL,
153.5808 -+
153.5809 -+  NIOS2_BUILTIN_CUSTOM_N,
153.5810 -+  NIOS2_BUILTIN_CUSTOM_NI,
153.5811 -+  NIOS2_BUILTIN_CUSTOM_NF,
153.5812 -+  NIOS2_BUILTIN_CUSTOM_NP,
153.5813 -+  NIOS2_BUILTIN_CUSTOM_NII,
153.5814 -+  NIOS2_BUILTIN_CUSTOM_NIF,
153.5815 -+  NIOS2_BUILTIN_CUSTOM_NIP,
153.5816 -+  NIOS2_BUILTIN_CUSTOM_NFI,
153.5817 -+  NIOS2_BUILTIN_CUSTOM_NFF,
153.5818 -+  NIOS2_BUILTIN_CUSTOM_NFP,
153.5819 -+  NIOS2_BUILTIN_CUSTOM_NPI,
153.5820 -+  NIOS2_BUILTIN_CUSTOM_NPF,
153.5821 -+  NIOS2_BUILTIN_CUSTOM_NPP,
153.5822 -+  NIOS2_BUILTIN_CUSTOM_IN,
153.5823 -+  NIOS2_BUILTIN_CUSTOM_INI,
153.5824 -+  NIOS2_BUILTIN_CUSTOM_INF,
153.5825 -+  NIOS2_BUILTIN_CUSTOM_INP,
153.5826 -+  NIOS2_BUILTIN_CUSTOM_INII,
153.5827 -+  NIOS2_BUILTIN_CUSTOM_INIF,
153.5828 -+  NIOS2_BUILTIN_CUSTOM_INIP,
153.5829 -+  NIOS2_BUILTIN_CUSTOM_INFI,
153.5830 -+  NIOS2_BUILTIN_CUSTOM_INFF,
153.5831 -+  NIOS2_BUILTIN_CUSTOM_INFP,
153.5832 -+  NIOS2_BUILTIN_CUSTOM_INPI,
153.5833 -+  NIOS2_BUILTIN_CUSTOM_INPF,
153.5834 -+  NIOS2_BUILTIN_CUSTOM_INPP,
153.5835 -+  NIOS2_BUILTIN_CUSTOM_FN,
153.5836 -+  NIOS2_BUILTIN_CUSTOM_FNI,
153.5837 -+  NIOS2_BUILTIN_CUSTOM_FNF,
153.5838 -+  NIOS2_BUILTIN_CUSTOM_FNP,
153.5839 -+  NIOS2_BUILTIN_CUSTOM_FNII,
153.5840 -+  NIOS2_BUILTIN_CUSTOM_FNIF,
153.5841 -+  NIOS2_BUILTIN_CUSTOM_FNIP,
153.5842 -+  NIOS2_BUILTIN_CUSTOM_FNFI,
153.5843 -+  NIOS2_BUILTIN_CUSTOM_FNFF,
153.5844 -+  NIOS2_BUILTIN_CUSTOM_FNFP,
153.5845 -+  NIOS2_BUILTIN_CUSTOM_FNPI,
153.5846 -+  NIOS2_BUILTIN_CUSTOM_FNPF,
153.5847 -+  NIOS2_BUILTIN_CUSTOM_FNPP,
153.5848 -+  NIOS2_BUILTIN_CUSTOM_PN,
153.5849 -+  NIOS2_BUILTIN_CUSTOM_PNI,
153.5850 -+  NIOS2_BUILTIN_CUSTOM_PNF,
153.5851 -+  NIOS2_BUILTIN_CUSTOM_PNP,
153.5852 -+  NIOS2_BUILTIN_CUSTOM_PNII,
153.5853 -+  NIOS2_BUILTIN_CUSTOM_PNIF,
153.5854 -+  NIOS2_BUILTIN_CUSTOM_PNIP,
153.5855 -+  NIOS2_BUILTIN_CUSTOM_PNFI,
153.5856 -+  NIOS2_BUILTIN_CUSTOM_PNFF,
153.5857 -+  NIOS2_BUILTIN_CUSTOM_PNFP,
153.5858 -+  NIOS2_BUILTIN_CUSTOM_PNPI,
153.5859 -+  NIOS2_BUILTIN_CUSTOM_PNPF,
153.5860 -+  NIOS2_BUILTIN_CUSTOM_PNPP,
153.5861 -+
153.5862 -+
153.5863 -+  LIM_NIOS2_BUILTINS
153.5864 -+};
153.5865 -+
153.5866 -+struct builtin_description
153.5867 -+{
153.5868 -+    const enum insn_code icode;
153.5869 -+    const char *const name;
153.5870 -+    const enum nios2_builtins code;
153.5871 -+    const tree *type;
153.5872 -+    rtx (* expander) PARAMS ((const struct builtin_description *,
153.5873 -+                              tree, rtx, rtx, enum machine_mode, int));
153.5874 -+};
153.5875 -+
153.5876 -+static rtx nios2_expand_STXIO (const struct builtin_description *, 
153.5877 -+                               tree, rtx, rtx, enum machine_mode, int);
153.5878 -+static rtx nios2_expand_LDXIO (const struct builtin_description *, 
153.5879 -+                               tree, rtx, rtx, enum machine_mode, int);
153.5880 -+static rtx nios2_expand_sync (const struct builtin_description *, 
153.5881 -+                              tree, rtx, rtx, enum machine_mode, int);
153.5882 -+static rtx nios2_expand_rdctl (const struct builtin_description *, 
153.5883 -+                               tree, rtx, rtx, enum machine_mode, int);
153.5884 -+static rtx nios2_expand_wrctl (const struct builtin_description *, 
153.5885 -+                               tree, rtx, rtx, enum machine_mode, int);
153.5886 -+
153.5887 -+static rtx nios2_expand_custom_n (const struct builtin_description *, 
153.5888 -+                                  tree, rtx, rtx, enum machine_mode, int);
153.5889 -+static rtx nios2_expand_custom_Xn (const struct builtin_description *, 
153.5890 -+                                   tree, rtx, rtx, enum machine_mode, int);
153.5891 -+static rtx nios2_expand_custom_nX (const struct builtin_description *, 
153.5892 -+                                   tree, rtx, rtx, enum machine_mode, int);
153.5893 -+static rtx nios2_expand_custom_XnX (const struct builtin_description *, 
153.5894 -+                                    tree, rtx, rtx, enum machine_mode, int);
153.5895 -+static rtx nios2_expand_custom_nXX (const struct builtin_description *, 
153.5896 -+                                    tree, rtx, rtx, enum machine_mode, int);
153.5897 -+static rtx nios2_expand_custom_XnXX (const struct builtin_description *, 
153.5898 -+                                     tree, rtx, rtx, enum machine_mode, int);
153.5899 -+
153.5900 -+static tree endlink;
153.5901 -+
153.5902 -+/* int fn (volatile const void *)
153.5903 -+ */
153.5904 -+static tree int_ftype_volatile_const_void_p;
153.5905 -+
153.5906 -+/* int fn (int)
153.5907 -+ */
153.5908 -+static tree int_ftype_int;
153.5909 -+
153.5910 -+/* void fn (int, int)
153.5911 -+ */
153.5912 -+static tree void_ftype_int_int;
153.5913 -+
153.5914 -+/* void fn (volatile void *, int)
153.5915 -+ */
153.5916 -+static tree void_ftype_volatile_void_p_int;
153.5917 -+
153.5918 -+/* void fn (void)
153.5919 -+ */
153.5920 -+static tree void_ftype_void;
153.5921 -+
153.5922 -+static tree custom_n;
153.5923 -+static tree custom_ni;
153.5924 -+static tree custom_nf;
153.5925 -+static tree custom_np;
153.5926 -+static tree custom_nii;
153.5927 -+static tree custom_nif;
153.5928 -+static tree custom_nip;
153.5929 -+static tree custom_nfi;
153.5930 -+static tree custom_nff;
153.5931 -+static tree custom_nfp;
153.5932 -+static tree custom_npi;
153.5933 -+static tree custom_npf;
153.5934 -+static tree custom_npp;
153.5935 -+static tree custom_in;
153.5936 -+static tree custom_ini;
153.5937 -+static tree custom_inf;
153.5938 -+static tree custom_inp;
153.5939 -+static tree custom_inii;
153.5940 -+static tree custom_inif;
153.5941 -+static tree custom_inip;
153.5942 -+static tree custom_infi;
153.5943 -+static tree custom_inff;
153.5944 -+static tree custom_infp;
153.5945 -+static tree custom_inpi;
153.5946 -+static tree custom_inpf;
153.5947 -+static tree custom_inpp;
153.5948 -+static tree custom_fn;
153.5949 -+static tree custom_fni;
153.5950 -+static tree custom_fnf;
153.5951 -+static tree custom_fnp;
153.5952 -+static tree custom_fnii;
153.5953 -+static tree custom_fnif;
153.5954 -+static tree custom_fnip;
153.5955 -+static tree custom_fnfi;
153.5956 -+static tree custom_fnff;
153.5957 -+static tree custom_fnfp;
153.5958 -+static tree custom_fnpi;
153.5959 -+static tree custom_fnpf;
153.5960 -+static tree custom_fnpp;
153.5961 -+static tree custom_pn;
153.5962 -+static tree custom_pni;
153.5963 -+static tree custom_pnf;
153.5964 -+static tree custom_pnp;
153.5965 -+static tree custom_pnii;
153.5966 -+static tree custom_pnif;
153.5967 -+static tree custom_pnip;
153.5968 -+static tree custom_pnfi;
153.5969 -+static tree custom_pnff;
153.5970 -+static tree custom_pnfp;
153.5971 -+static tree custom_pnpi;
153.5972 -+static tree custom_pnpf;
153.5973 -+static tree custom_pnpp;
153.5974 -+
153.5975 -+
153.5976 -+static const struct builtin_description bdesc[] = {
153.5977 -+    {CODE_FOR_ldbio, "__builtin_ldbio", NIOS2_BUILTIN_LDBIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5978 -+    {CODE_FOR_ldbuio, "__builtin_ldbuio", NIOS2_BUILTIN_LDBUIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5979 -+    {CODE_FOR_ldhio, "__builtin_ldhio", NIOS2_BUILTIN_LDHIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5980 -+    {CODE_FOR_ldhuio, "__builtin_ldhuio", NIOS2_BUILTIN_LDHUIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5981 -+    {CODE_FOR_ldwio, "__builtin_ldwio", NIOS2_BUILTIN_LDWIO, &int_ftype_volatile_const_void_p, nios2_expand_LDXIO},
153.5982 -+
153.5983 -+    {CODE_FOR_stbio, "__builtin_stbio", NIOS2_BUILTIN_STBIO, &void_ftype_volatile_void_p_int, nios2_expand_STXIO},
153.5984 -+    {CODE_FOR_sthio, "__builtin_sthio", NIOS2_BUILTIN_STHIO, &void_ftype_volatile_void_p_int, nios2_expand_STXIO},
153.5985 -+    {CODE_FOR_stwio, "__builtin_stwio", NIOS2_BUILTIN_STWIO, &void_ftype_volatile_void_p_int, nios2_expand_STXIO},
153.5986 -+
153.5987 -+    {CODE_FOR_sync, "__builtin_sync", NIOS2_BUILTIN_SYNC, &void_ftype_void, nios2_expand_sync},
153.5988 -+    {CODE_FOR_rdctl, "__builtin_rdctl", NIOS2_BUILTIN_RDCTL, &int_ftype_int, nios2_expand_rdctl},
153.5989 -+    {CODE_FOR_wrctl, "__builtin_wrctl", NIOS2_BUILTIN_WRCTL, &void_ftype_int_int, nios2_expand_wrctl},
153.5990 -+
153.5991 -+    {CODE_FOR_custom_n, "__builtin_custom_n", NIOS2_BUILTIN_CUSTOM_N, &custom_n, nios2_expand_custom_n},
153.5992 -+    {CODE_FOR_custom_ni, "__builtin_custom_ni", NIOS2_BUILTIN_CUSTOM_NI, &custom_ni, nios2_expand_custom_nX},
153.5993 -+    {CODE_FOR_custom_nf, "__builtin_custom_nf", NIOS2_BUILTIN_CUSTOM_NF, &custom_nf, nios2_expand_custom_nX},
153.5994 -+    {CODE_FOR_custom_np, "__builtin_custom_np", NIOS2_BUILTIN_CUSTOM_NP, &custom_np, nios2_expand_custom_nX},
153.5995 -+    {CODE_FOR_custom_nii, "__builtin_custom_nii", NIOS2_BUILTIN_CUSTOM_NII, &custom_nii, nios2_expand_custom_nXX},
153.5996 -+    {CODE_FOR_custom_nif, "__builtin_custom_nif", NIOS2_BUILTIN_CUSTOM_NIF, &custom_nif, nios2_expand_custom_nXX},
153.5997 -+    {CODE_FOR_custom_nip, "__builtin_custom_nip", NIOS2_BUILTIN_CUSTOM_NIP, &custom_nip, nios2_expand_custom_nXX},
153.5998 -+    {CODE_FOR_custom_nfi, "__builtin_custom_nfi", NIOS2_BUILTIN_CUSTOM_NFI, &custom_nfi, nios2_expand_custom_nXX},
153.5999 -+    {CODE_FOR_custom_nff, "__builtin_custom_nff", NIOS2_BUILTIN_CUSTOM_NFF, &custom_nff, nios2_expand_custom_nXX},
153.6000 -+    {CODE_FOR_custom_nfp, "__builtin_custom_nfp", NIOS2_BUILTIN_CUSTOM_NFP, &custom_nfp, nios2_expand_custom_nXX},
153.6001 -+    {CODE_FOR_custom_npi, "__builtin_custom_npi", NIOS2_BUILTIN_CUSTOM_NPI, &custom_npi, nios2_expand_custom_nXX},
153.6002 -+    {CODE_FOR_custom_npf, "__builtin_custom_npf", NIOS2_BUILTIN_CUSTOM_NPF, &custom_npf, nios2_expand_custom_nXX},
153.6003 -+    {CODE_FOR_custom_npp, "__builtin_custom_npp", NIOS2_BUILTIN_CUSTOM_NPP, &custom_npp, nios2_expand_custom_nXX},
153.6004 -+    {CODE_FOR_custom_in, "__builtin_custom_in", NIOS2_BUILTIN_CUSTOM_IN, &custom_in, nios2_expand_custom_Xn},
153.6005 -+    {CODE_FOR_custom_ini, "__builtin_custom_ini", NIOS2_BUILTIN_CUSTOM_INI, &custom_ini, nios2_expand_custom_XnX},
153.6006 -+    {CODE_FOR_custom_inf, "__builtin_custom_inf", NIOS2_BUILTIN_CUSTOM_INF, &custom_inf, nios2_expand_custom_XnX},
153.6007 -+    {CODE_FOR_custom_inp, "__builtin_custom_inp", NIOS2_BUILTIN_CUSTOM_INP, &custom_inp, nios2_expand_custom_XnX},
153.6008 -+    {CODE_FOR_custom_inii, "__builtin_custom_inii", NIOS2_BUILTIN_CUSTOM_INII, &custom_inii, nios2_expand_custom_XnXX},
153.6009 -+    {CODE_FOR_custom_inif, "__builtin_custom_inif", NIOS2_BUILTIN_CUSTOM_INIF, &custom_inif, nios2_expand_custom_XnXX},
153.6010 -+    {CODE_FOR_custom_inip, "__builtin_custom_inip", NIOS2_BUILTIN_CUSTOM_INIP, &custom_inip, nios2_expand_custom_XnXX},
153.6011 -+    {CODE_FOR_custom_infi, "__builtin_custom_infi", NIOS2_BUILTIN_CUSTOM_INFI, &custom_infi, nios2_expand_custom_XnXX},
153.6012 -+    {CODE_FOR_custom_inff, "__builtin_custom_inff", NIOS2_BUILTIN_CUSTOM_INFF, &custom_inff, nios2_expand_custom_XnXX},
153.6013 -+    {CODE_FOR_custom_infp, "__builtin_custom_infp", NIOS2_BUILTIN_CUSTOM_INFP, &custom_infp, nios2_expand_custom_XnXX},
153.6014 -+    {CODE_FOR_custom_inpi, "__builtin_custom_inpi", NIOS2_BUILTIN_CUSTOM_INPI, &custom_inpi, nios2_expand_custom_XnXX},
153.6015 -+    {CODE_FOR_custom_inpf, "__builtin_custom_inpf", NIOS2_BUILTIN_CUSTOM_INPF, &custom_inpf, nios2_expand_custom_XnXX},
153.6016 -+    {CODE_FOR_custom_inpp, "__builtin_custom_inpp", NIOS2_BUILTIN_CUSTOM_INPP, &custom_inpp, nios2_expand_custom_XnXX},
153.6017 -+    {CODE_FOR_custom_fn, "__builtin_custom_fn", NIOS2_BUILTIN_CUSTOM_FN, &custom_fn, nios2_expand_custom_Xn},
153.6018 -+    {CODE_FOR_custom_fni, "__builtin_custom_fni", NIOS2_BUILTIN_CUSTOM_FNI, &custom_fni, nios2_expand_custom_XnX},
153.6019 -+    {CODE_FOR_custom_fnf, "__builtin_custom_fnf", NIOS2_BUILTIN_CUSTOM_FNF, &custom_fnf, nios2_expand_custom_XnX},
153.6020 -+    {CODE_FOR_custom_fnp, "__builtin_custom_fnp", NIOS2_BUILTIN_CUSTOM_FNP, &custom_fnp, nios2_expand_custom_XnX},
153.6021 -+    {CODE_FOR_custom_fnii, "__builtin_custom_fnii", NIOS2_BUILTIN_CUSTOM_FNII, &custom_fnii, nios2_expand_custom_XnXX},
153.6022 -+    {CODE_FOR_custom_fnif, "__builtin_custom_fnif", NIOS2_BUILTIN_CUSTOM_FNIF, &custom_fnif, nios2_expand_custom_XnXX},
153.6023 -+    {CODE_FOR_custom_fnip, "__builtin_custom_fnip", NIOS2_BUILTIN_CUSTOM_FNIP, &custom_fnip, nios2_expand_custom_XnXX},
153.6024 -+    {CODE_FOR_custom_fnfi, "__builtin_custom_fnfi", NIOS2_BUILTIN_CUSTOM_FNFI, &custom_fnfi, nios2_expand_custom_XnXX},
153.6025 -+    {CODE_FOR_custom_fnff, "__builtin_custom_fnff", NIOS2_BUILTIN_CUSTOM_FNFF, &custom_fnff, nios2_expand_custom_XnXX},
153.6026 -+    {CODE_FOR_custom_fnfp, "__builtin_custom_fnfp", NIOS2_BUILTIN_CUSTOM_FNFP, &custom_fnfp, nios2_expand_custom_XnXX},
153.6027 -+    {CODE_FOR_custom_fnpi, "__builtin_custom_fnpi", NIOS2_BUILTIN_CUSTOM_FNPI, &custom_fnpi, nios2_expand_custom_XnXX},
153.6028 -+    {CODE_FOR_custom_fnpf, "__builtin_custom_fnpf", NIOS2_BUILTIN_CUSTOM_FNPF, &custom_fnpf, nios2_expand_custom_XnXX},
153.6029 -+    {CODE_FOR_custom_fnpp, "__builtin_custom_fnpp", NIOS2_BUILTIN_CUSTOM_FNPP, &custom_fnpp, nios2_expand_custom_XnXX},
153.6030 -+    {CODE_FOR_custom_pn, "__builtin_custom_pn", NIOS2_BUILTIN_CUSTOM_PN, &custom_pn, nios2_expand_custom_Xn},
153.6031 -+    {CODE_FOR_custom_pni, "__builtin_custom_pni", NIOS2_BUILTIN_CUSTOM_PNI, &custom_pni, nios2_expand_custom_XnX},
153.6032 -+    {CODE_FOR_custom_pnf, "__builtin_custom_pnf", NIOS2_BUILTIN_CUSTOM_PNF, &custom_pnf, nios2_expand_custom_XnX},
153.6033 -+    {CODE_FOR_custom_pnp, "__builtin_custom_pnp", NIOS2_BUILTIN_CUSTOM_PNP, &custom_pnp, nios2_expand_custom_XnX},
153.6034 -+    {CODE_FOR_custom_pnii, "__builtin_custom_pnii", NIOS2_BUILTIN_CUSTOM_PNII, &custom_pnii, nios2_expand_custom_XnXX},
153.6035 -+    {CODE_FOR_custom_pnif, "__builtin_custom_pnif", NIOS2_BUILTIN_CUSTOM_PNIF, &custom_pnif, nios2_expand_custom_XnXX},
153.6036 -+    {CODE_FOR_custom_pnip, "__builtin_custom_pnip", NIOS2_BUILTIN_CUSTOM_PNIP, &custom_pnip, nios2_expand_custom_XnXX},
153.6037 -+    {CODE_FOR_custom_pnfi, "__builtin_custom_pnfi", NIOS2_BUILTIN_CUSTOM_PNFI, &custom_pnfi, nios2_expand_custom_XnXX},
153.6038 -+    {CODE_FOR_custom_pnff, "__builtin_custom_pnff", NIOS2_BUILTIN_CUSTOM_PNFF, &custom_pnff, nios2_expand_custom_XnXX},
153.6039 -+    {CODE_FOR_custom_pnfp, "__builtin_custom_pnfp", NIOS2_BUILTIN_CUSTOM_PNFP, &custom_pnfp, nios2_expand_custom_XnXX},
153.6040 -+    {CODE_FOR_custom_pnpi, "__builtin_custom_pnpi", NIOS2_BUILTIN_CUSTOM_PNPI, &custom_pnpi, nios2_expand_custom_XnXX},
153.6041 -+    {CODE_FOR_custom_pnpf, "__builtin_custom_pnpf", NIOS2_BUILTIN_CUSTOM_PNPF, &custom_pnpf, nios2_expand_custom_XnXX},
153.6042 -+    {CODE_FOR_custom_pnpp, "__builtin_custom_pnpp", NIOS2_BUILTIN_CUSTOM_PNPP, &custom_pnpp, nios2_expand_custom_XnXX},
153.6043 -+
153.6044 -+
153.6045 -+    {0, 0, 0, 0, 0},
153.6046 -+};
153.6047 -+
153.6048 -+/* This does not have a closing bracket on purpose (see use) */
153.6049 -+#define def_param(TYPE) \
153.6050 -+  tree_cons (NULL_TREE, TYPE,
153.6051 -+
153.6052 -+static void
153.6053 -+nios2_init_builtins ()
153.6054 -+{
153.6055 -+  const struct builtin_description *d;
153.6056 -+
153.6057 -+
153.6058 -+  endlink = void_list_node;
153.6059 -+
153.6060 -+  /* Special indenting here because one of the brackets is in def_param */
153.6061 -+  /* *INDENT-OFF* */
153.6062 -+
153.6063 -+  /* int fn (volatile const void *)
153.6064 -+   */
153.6065 -+  int_ftype_volatile_const_void_p
153.6066 -+    = build_function_type (integer_type_node,
153.6067 -+			   def_param (build_qualified_type (ptr_type_node,
153.6068 -+			                                    TYPE_QUAL_CONST | TYPE_QUAL_VOLATILE))
153.6069 -+			   endlink));
153.6070 -+
153.6071 -+
153.6072 -+  /* void fn (volatile void *, int)
153.6073 -+   */
153.6074 -+  void_ftype_volatile_void_p_int
153.6075 -+    = build_function_type (void_type_node,
153.6076 -+			   def_param (build_qualified_type (ptr_type_node,
153.6077 -+			                                    TYPE_QUAL_VOLATILE))
153.6078 -+			   def_param (integer_type_node)
153.6079 -+			   endlink)));
153.6080 -+
153.6081 -+  /* void fn (void)
153.6082 -+   */
153.6083 -+  void_ftype_void
153.6084 -+      = build_function_type (void_type_node,
153.6085 -+                             endlink);
153.6086 -+
153.6087 -+  /* int fn (int)
153.6088 -+   */
153.6089 -+  int_ftype_int
153.6090 -+      = build_function_type (integer_type_node,
153.6091 -+                             def_param (integer_type_node)
153.6092 -+                             endlink));
153.6093 -+
153.6094 -+  /* void fn (int, int)
153.6095 -+   */
153.6096 -+  void_ftype_int_int
153.6097 -+      = build_function_type (void_type_node,
153.6098 -+                             def_param (integer_type_node)
153.6099 -+                             def_param (integer_type_node)
153.6100 -+                             endlink)));
153.6101 -+
153.6102 -+
153.6103 -+#define CUSTOM_NUM def_param (integer_type_node)
153.6104 -+
153.6105 -+  custom_n
153.6106 -+      = build_function_type (void_type_node,
153.6107 -+  			     CUSTOM_NUM
153.6108 -+  			     endlink));
153.6109 -+  custom_ni
153.6110 -+      = build_function_type (void_type_node,
153.6111 -+  			     CUSTOM_NUM
153.6112 -+  			     def_param (integer_type_node)
153.6113 -+  			     endlink)));
153.6114 -+  custom_nf
153.6115 -+      = build_function_type (void_type_node,
153.6116 -+  			     CUSTOM_NUM
153.6117 -+  			     def_param (float_type_node)
153.6118 -+  			     endlink)));
153.6119 -+  custom_np
153.6120 -+      = build_function_type (void_type_node,
153.6121 -+  			     CUSTOM_NUM
153.6122 -+  			     def_param (ptr_type_node)
153.6123 -+  			     endlink)));
153.6124 -+  custom_nii
153.6125 -+      = build_function_type (void_type_node,
153.6126 -+  			     CUSTOM_NUM
153.6127 -+  			     def_param (integer_type_node)
153.6128 -+  			     def_param (integer_type_node)
153.6129 -+  			     endlink))));
153.6130 -+  custom_nif
153.6131 -+      = build_function_type (void_type_node,
153.6132 -+  			     CUSTOM_NUM
153.6133 -+  			     def_param (integer_type_node)
153.6134 -+  			     def_param (float_type_node)
153.6135 -+  			     endlink))));
153.6136 -+  custom_nip
153.6137 -+      = build_function_type (void_type_node,
153.6138 -+  			     CUSTOM_NUM
153.6139 -+  			     def_param (integer_type_node)
153.6140 -+  			     def_param (ptr_type_node)
153.6141 -+  			     endlink))));
153.6142 -+  custom_nfi
153.6143 -+      = build_function_type (void_type_node,
153.6144 -+  			     CUSTOM_NUM
153.6145 -+  			     def_param (float_type_node)
153.6146 -+  			     def_param (integer_type_node)
153.6147 -+  			     endlink))));
153.6148 -+  custom_nff
153.6149 -+      = build_function_type (void_type_node,
153.6150 -+  			     CUSTOM_NUM
153.6151 -+  			     def_param (float_type_node)
153.6152 -+  			     def_param (float_type_node)
153.6153 -+  			     endlink))));
153.6154 -+  custom_nfp
153.6155 -+      = build_function_type (void_type_node,
153.6156 -+  			     CUSTOM_NUM
153.6157 -+  			     def_param (float_type_node)
153.6158 -+  			     def_param (ptr_type_node)
153.6159 -+  			     endlink))));
153.6160 -+  custom_npi
153.6161 -+      = build_function_type (void_type_node,
153.6162 -+  			     CUSTOM_NUM
153.6163 -+  			     def_param (ptr_type_node)
153.6164 -+  			     def_param (integer_type_node)
153.6165 -+  			     endlink))));
153.6166 -+  custom_npf
153.6167 -+      = build_function_type (void_type_node,
153.6168 -+  			     CUSTOM_NUM
153.6169 -+  			     def_param (ptr_type_node)
153.6170 -+  			     def_param (float_type_node)
153.6171 -+  			     endlink))));
153.6172 -+  custom_npp
153.6173 -+      = build_function_type (void_type_node,
153.6174 -+  			     CUSTOM_NUM
153.6175 -+  			     def_param (ptr_type_node)
153.6176 -+  			     def_param (ptr_type_node)
153.6177 -+  			     endlink))));
153.6178 -+
153.6179 -+  custom_in
153.6180 -+      = build_function_type (integer_type_node,
153.6181 -+  			     CUSTOM_NUM
153.6182 -+  			     endlink));
153.6183 -+  custom_ini
153.6184 -+      = build_function_type (integer_type_node,
153.6185 -+  			     CUSTOM_NUM
153.6186 -+  			     def_param (integer_type_node)
153.6187 -+  			     endlink)));
153.6188 -+  custom_inf
153.6189 -+      = build_function_type (integer_type_node,
153.6190 -+  			     CUSTOM_NUM
153.6191 -+  			     def_param (float_type_node)
153.6192 -+  			     endlink)));
153.6193 -+  custom_inp
153.6194 -+      = build_function_type (integer_type_node,
153.6195 -+  			     CUSTOM_NUM
153.6196 -+  			     def_param (ptr_type_node)
153.6197 -+  			     endlink)));
153.6198 -+  custom_inii
153.6199 -+      = build_function_type (integer_type_node,
153.6200 -+  			     CUSTOM_NUM
153.6201 -+  			     def_param (integer_type_node)
153.6202 -+  			     def_param (integer_type_node)
153.6203 -+  			     endlink))));
153.6204 -+  custom_inif
153.6205 -+      = build_function_type (integer_type_node,
153.6206 -+  			     CUSTOM_NUM
153.6207 -+  			     def_param (integer_type_node)
153.6208 -+  			     def_param (float_type_node)
153.6209 -+  			     endlink))));
153.6210 -+  custom_inip
153.6211 -+      = build_function_type (integer_type_node,
153.6212 -+  			     CUSTOM_NUM
153.6213 -+  			     def_param (integer_type_node)
153.6214 -+  			     def_param (ptr_type_node)
153.6215 -+  			     endlink))));
153.6216 -+  custom_infi
153.6217 -+      = build_function_type (integer_type_node,
153.6218 -+  			     CUSTOM_NUM
153.6219 -+  			     def_param (float_type_node)
153.6220 -+  			     def_param (integer_type_node)
153.6221 -+  			     endlink))));
153.6222 -+  custom_inff
153.6223 -+      = build_function_type (integer_type_node,
153.6224 -+  			     CUSTOM_NUM
153.6225 -+  			     def_param (float_type_node)
153.6226 -+  			     def_param (float_type_node)
153.6227 -+  			     endlink))));
153.6228 -+  custom_infp
153.6229 -+      = build_function_type (integer_type_node,
153.6230 -+  			     CUSTOM_NUM
153.6231 -+  			     def_param (float_type_node)
153.6232 -+  			     def_param (ptr_type_node)
153.6233 -+  			     endlink))));
153.6234 -+  custom_inpi
153.6235 -+      = build_function_type (integer_type_node,
153.6236 -+  			     CUSTOM_NUM
153.6237 -+  			     def_param (ptr_type_node)
153.6238 -+  			     def_param (integer_type_node)
153.6239 -+  			     endlink))));
153.6240 -+  custom_inpf
153.6241 -+      = build_function_type (integer_type_node,
153.6242 -+  			     CUSTOM_NUM
153.6243 -+  			     def_param (ptr_type_node)
153.6244 -+  			     def_param (float_type_node)
153.6245 -+  			     endlink))));
153.6246 -+  custom_inpp
153.6247 -+      = build_function_type (integer_type_node,
153.6248 -+  			     CUSTOM_NUM
153.6249 -+  			     def_param (ptr_type_node)
153.6250 -+  			     def_param (ptr_type_node)
153.6251 -+  			     endlink))));
153.6252 -+
153.6253 -+  custom_fn
153.6254 -+      = build_function_type (float_type_node,
153.6255 -+  			     CUSTOM_NUM
153.6256 -+  			     endlink));
153.6257 -+  custom_fni
153.6258 -+      = build_function_type (float_type_node,
153.6259 -+  			     CUSTOM_NUM
153.6260 -+  			     def_param (integer_type_node)
153.6261 -+  			     endlink)));
153.6262 -+  custom_fnf
153.6263 -+      = build_function_type (float_type_node,
153.6264 -+  			     CUSTOM_NUM
153.6265 -+  			     def_param (float_type_node)
153.6266 -+  			     endlink)));
153.6267 -+  custom_fnp
153.6268 -+      = build_function_type (float_type_node,
153.6269 -+  			     CUSTOM_NUM
153.6270 -+  			     def_param (ptr_type_node)
153.6271 -+  			     endlink)));
153.6272 -+  custom_fnii
153.6273 -+      = build_function_type (float_type_node,
153.6274 -+  			     CUSTOM_NUM
153.6275 -+  			     def_param (integer_type_node)
153.6276 -+  			     def_param (integer_type_node)
153.6277 -+  			     endlink))));
153.6278 -+  custom_fnif
153.6279 -+      = build_function_type (float_type_node,
153.6280 -+  			     CUSTOM_NUM
153.6281 -+  			     def_param (integer_type_node)
153.6282 -+  			     def_param (float_type_node)
153.6283 -+  			     endlink))));
153.6284 -+  custom_fnip
153.6285 -+      = build_function_type (float_type_node,
153.6286 -+  			     CUSTOM_NUM
153.6287 -+  			     def_param (integer_type_node)
153.6288 -+  			     def_param (ptr_type_node)
153.6289 -+  			     endlink))));
153.6290 -+  custom_fnfi
153.6291 -+      = build_function_type (float_type_node,
153.6292 -+  			     CUSTOM_NUM
153.6293 -+  			     def_param (float_type_node)
153.6294 -+  			     def_param (integer_type_node)
153.6295 -+  			     endlink))));
153.6296 -+  custom_fnff
153.6297 -+      = build_function_type (float_type_node,
153.6298 -+  			     CUSTOM_NUM
153.6299 -+  			     def_param (float_type_node)
153.6300 -+  			     def_param (float_type_node)
153.6301 -+  			     endlink))));
153.6302 -+  custom_fnfp
153.6303 -+      = build_function_type (float_type_node,
153.6304 -+  			     CUSTOM_NUM
153.6305 -+  			     def_param (float_type_node)
153.6306 -+  			     def_param (ptr_type_node)
153.6307 -+  			     endlink))));
153.6308 -+  custom_fnpi
153.6309 -+      = build_function_type (float_type_node,
153.6310 -+  			     CUSTOM_NUM
153.6311 -+  			     def_param (ptr_type_node)
153.6312 -+  			     def_param (integer_type_node)
153.6313 -+  			     endlink))));
153.6314 -+  custom_fnpf
153.6315 -+      = build_function_type (float_type_node,
153.6316 -+  			     CUSTOM_NUM
153.6317 -+  			     def_param (ptr_type_node)
153.6318 -+  			     def_param (float_type_node)
153.6319 -+  			     endlink))));
153.6320 -+  custom_fnpp
153.6321 -+      = build_function_type (float_type_node,
153.6322 -+  			     CUSTOM_NUM
153.6323 -+  			     def_param (ptr_type_node)
153.6324 -+  			     def_param (ptr_type_node)
153.6325 -+  			     endlink))));
153.6326 -+
153.6327 -+
153.6328 -+  custom_pn
153.6329 -+      = build_function_type (ptr_type_node,
153.6330 -+  			     CUSTOM_NUM
153.6331 -+  			     endlink));
153.6332 -+  custom_pni
153.6333 -+      = build_function_type (ptr_type_node,
153.6334 -+  			     CUSTOM_NUM
153.6335 -+  			     def_param (integer_type_node)
153.6336 -+  			     endlink)));
153.6337 -+  custom_pnf
153.6338 -+      = build_function_type (ptr_type_node,
153.6339 -+  			     CUSTOM_NUM
153.6340 -+  			     def_param (float_type_node)
153.6341 -+  			     endlink)));
153.6342 -+  custom_pnp
153.6343 -+      = build_function_type (ptr_type_node,
153.6344 -+  			     CUSTOM_NUM
153.6345 -+  			     def_param (ptr_type_node)
153.6346 -+  			     endlink)));
153.6347 -+  custom_pnii
153.6348 -+      = build_function_type (ptr_type_node,
153.6349 -+  			     CUSTOM_NUM
153.6350 -+  			     def_param (integer_type_node)
153.6351 -+  			     def_param (integer_type_node)
153.6352 -+  			     endlink))));
153.6353 -+  custom_pnif
153.6354 -+      = build_function_type (ptr_type_node,
153.6355 -+  			     CUSTOM_NUM
153.6356 -+  			     def_param (integer_type_node)
153.6357 -+  			     def_param (float_type_node)
153.6358 -+  			     endlink))));
153.6359 -+  custom_pnip
153.6360 -+      = build_function_type (ptr_type_node,
153.6361 -+  			     CUSTOM_NUM
153.6362 -+  			     def_param (integer_type_node)
153.6363 -+  			     def_param (ptr_type_node)
153.6364 -+  			     endlink))));
153.6365 -+  custom_pnfi
153.6366 -+      = build_function_type (ptr_type_node,
153.6367 -+  			     CUSTOM_NUM
153.6368 -+  			     def_param (float_type_node)
153.6369 -+  			     def_param (integer_type_node)
153.6370 -+  			     endlink))));
153.6371 -+  custom_pnff
153.6372 -+      = build_function_type (ptr_type_node,
153.6373 -+  			     CUSTOM_NUM
153.6374 -+  			     def_param (float_type_node)
153.6375 -+  			     def_param (float_type_node)
153.6376 -+  			     endlink))));
153.6377 -+  custom_pnfp
153.6378 -+      = build_function_type (ptr_type_node,
153.6379 -+  			     CUSTOM_NUM
153.6380 -+  			     def_param (float_type_node)
153.6381 -+  			     def_param (ptr_type_node)
153.6382 -+  			     endlink))));
153.6383 -+  custom_pnpi
153.6384 -+      = build_function_type (ptr_type_node,
153.6385 -+  			     CUSTOM_NUM
153.6386 -+  			     def_param (ptr_type_node)
153.6387 -+  			     def_param (integer_type_node)
153.6388 -+  			     endlink))));
153.6389 -+  custom_pnpf
153.6390 -+      = build_function_type (ptr_type_node,
153.6391 -+  			     CUSTOM_NUM
153.6392 -+  			     def_param (ptr_type_node)
153.6393 -+  			     def_param (float_type_node)
153.6394 -+  			     endlink))));
153.6395 -+  custom_pnpp
153.6396 -+      = build_function_type (ptr_type_node,
153.6397 -+  			     CUSTOM_NUM
153.6398 -+  			     def_param (ptr_type_node)
153.6399 -+  			     def_param (ptr_type_node)
153.6400 -+  			     endlink))));
153.6401 -+
153.6402 -+
153.6403 -+
153.6404 -+  /* *INDENT-ON* */
153.6405 -+
153.6406 -+
153.6407 -+  for (d = bdesc; d->name; d++)
153.6408 -+    {
153.6409 -+      builtin_function (d->name, *d->type, d->code,
153.6410 -+			BUILT_IN_MD, NULL, NULL);
153.6411 -+    }
153.6412 -+}
153.6413 -+
153.6414 -+/* Expand an expression EXP that calls a built-in function,
153.6415 -+   with result going to TARGET if that's convenient
153.6416 -+   (and in mode MODE if that's convenient).
153.6417 -+   SUBTARGET may be used as the target for computing one of EXP's operands.
153.6418 -+   IGNORE is nonzero if the value is to be ignored.  */
153.6419 -+
153.6420 -+static rtx
153.6421 -+nios2_expand_builtin (tree exp, rtx target, rtx subtarget, 
153.6422 -+                      enum machine_mode mode, int ignore)
153.6423 -+{
153.6424 -+  const struct builtin_description *d;
153.6425 -+  tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
153.6426 -+  unsigned int fcode = DECL_FUNCTION_CODE (fndecl);
153.6427 -+
153.6428 -+  for (d = bdesc; d->name; d++)
153.6429 -+    if (d->code == fcode)
153.6430 -+      return (d->expander) (d, exp, target, subtarget, mode, ignore);
153.6431 -+
153.6432 -+  /* we should have seen one of the functins we registered */
153.6433 -+  abort ();
153.6434 -+}
153.6435 -+
153.6436 -+static rtx nios2_create_target (const struct builtin_description *, rtx);
153.6437 -+
153.6438 -+
153.6439 -+static rtx
153.6440 -+nios2_create_target (const struct builtin_description *d, rtx target)
153.6441 -+{
153.6442 -+  if (!target
153.6443 -+      || !(*insn_data[d->icode].operand[0].predicate) (target,
153.6444 -+                                                       insn_data[d->icode].operand[0].mode))
153.6445 -+    {
153.6446 -+      target = gen_reg_rtx (insn_data[d->icode].operand[0].mode);
153.6447 -+    }
153.6448 -+
153.6449 -+  return target;
153.6450 -+}
153.6451 -+
153.6452 -+
153.6453 -+static rtx nios2_extract_opcode (const struct builtin_description *, int, tree);
153.6454 -+static rtx nios2_extract_operand (const struct builtin_description *, int, int, tree);
153.6455 -+
153.6456 -+static rtx
153.6457 -+nios2_extract_opcode (const struct builtin_description *d, int op, tree arglist)
153.6458 -+{
153.6459 -+  enum machine_mode mode = insn_data[d->icode].operand[op].mode;
153.6460 -+  tree arg = TREE_VALUE (arglist);
153.6461 -+  rtx opcode = expand_expr (arg, NULL_RTX, mode, 0);
153.6462 -+  opcode = protect_from_queue (opcode, 0);
153.6463 -+
153.6464 -+  if (!(*insn_data[d->icode].operand[op].predicate) (opcode, mode))
153.6465 -+    error ("Custom instruction opcode must be compile time constant in the range 0-255 for %s", d->name);
153.6466 -+
153.6467 -+  return opcode;
153.6468 -+}
153.6469 -+
153.6470 -+static rtx
153.6471 -+nios2_extract_operand (const struct builtin_description *d, int op, int argnum, tree arglist)
153.6472 -+{
153.6473 -+  enum machine_mode mode = insn_data[d->icode].operand[op].mode;
153.6474 -+  tree arg = TREE_VALUE (arglist);
153.6475 -+  rtx operand = expand_expr (arg, NULL_RTX, mode, 0);
153.6476 -+  operand = protect_from_queue (operand, 0);
153.6477 -+
153.6478 -+  if (!(*insn_data[d->icode].operand[op].predicate) (operand, mode))
153.6479 -+    operand = copy_to_mode_reg (mode, operand);
153.6480 -+
153.6481 -+  /* ??? Better errors would be nice */
153.6482 -+  if (!(*insn_data[d->icode].operand[op].predicate) (operand, mode))
153.6483 -+    error ("Invalid argument %d to %s", argnum, d->name);
153.6484 -+
153.6485 -+  return operand;
153.6486 -+}
153.6487 -+
153.6488 -+
153.6489 -+static rtx
153.6490 -+nios2_expand_custom_n (const struct builtin_description *d, tree exp, 
153.6491 -+                       rtx target ATTRIBUTE_UNUSED, rtx subtarget ATTRIBUTE_UNUSED, 
153.6492 -+                       enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
153.6493 -+{
153.6494 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6495 -+  rtx pat;
153.6496 -+  rtx opcode;
153.6497 -+
153.6498 -+  /* custom_n should have exactly one operand */
153.6499 -+  if (insn_data[d->icode].n_operands != 1)
153.6500 -+    abort ();
153.6501 -+
153.6502 -+  opcode = nios2_extract_opcode (d, 0, arglist);
153.6503 -+
153.6504 -+  pat = GEN_FCN (d->icode) (opcode);
153.6505 -+  if (!pat)
153.6506 -+    return 0;
153.6507 -+  emit_insn (pat);
153.6508 -+  return 0;
153.6509 -+}
153.6510 -+
153.6511 -+static rtx
153.6512 -+nios2_expand_custom_Xn (const struct builtin_description *d, tree exp, 
153.6513 -+                        rtx target, rtx subtarget ATTRIBUTE_UNUSED, 
153.6514 -+                        enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6515 -+                        int ignore ATTRIBUTE_UNUSED)
153.6516 -+{
153.6517 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6518 -+  rtx pat;
153.6519 -+  rtx opcode;
153.6520 -+
153.6521 -+  /* custom_Xn should have exactly two operands */
153.6522 -+  if (insn_data[d->icode].n_operands != 2)
153.6523 -+    abort ();
153.6524 -+
153.6525 -+  target = nios2_create_target (d, target);
153.6526 -+  opcode = nios2_extract_opcode (d, 1, arglist);
153.6527 -+
153.6528 -+  pat = GEN_FCN (d->icode) (target, opcode);
153.6529 -+  if (!pat)
153.6530 -+    return 0;
153.6531 -+  emit_insn (pat);
153.6532 -+  return target;
153.6533 -+}
153.6534 -+
153.6535 -+static rtx
153.6536 -+nios2_expand_custom_nX (const struct builtin_description *d, tree exp, 
153.6537 -+                        rtx target ATTRIBUTE_UNUSED, rtx subtarget ATTRIBUTE_UNUSED, 
153.6538 -+                        enum machine_mode mode ATTRIBUTE_UNUSED, int ignore ATTRIBUTE_UNUSED)
153.6539 -+{
153.6540 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6541 -+  rtx pat;
153.6542 -+  rtx opcode;
153.6543 -+  rtx operands[1];
153.6544 -+  int i;
153.6545 -+
153.6546 -+
153.6547 -+  /* custom_nX should have exactly two operands */
153.6548 -+  if (insn_data[d->icode].n_operands != 2)
153.6549 -+    abort ();
153.6550 -+
153.6551 -+  opcode = nios2_extract_opcode (d, 0, arglist);
153.6552 -+  for (i = 0; i < 1; i++)
153.6553 -+    {
153.6554 -+      arglist = TREE_CHAIN (arglist);
153.6555 -+      operands[i] = nios2_extract_operand (d, i + 1, i + 1, arglist);
153.6556 -+    }
153.6557 -+
153.6558 -+  pat = GEN_FCN (d->icode) (opcode, operands[0]);
153.6559 -+  if (!pat)
153.6560 -+    return 0;
153.6561 -+  emit_insn (pat);
153.6562 -+  return 0;
153.6563 -+}
153.6564 -+
153.6565 -+static rtx
153.6566 -+nios2_expand_custom_XnX (const struct builtin_description *d, tree exp, rtx target, 
153.6567 -+                         rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6568 -+                         int ignore ATTRIBUTE_UNUSED)
153.6569 -+{
153.6570 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6571 -+  rtx pat;
153.6572 -+  rtx opcode;
153.6573 -+  rtx operands[1];
153.6574 -+  int i;
153.6575 -+
153.6576 -+  /* custom_Xn should have exactly three operands */
153.6577 -+  if (insn_data[d->icode].n_operands != 3)
153.6578 -+    abort ();
153.6579 -+
153.6580 -+  target = nios2_create_target (d, target);
153.6581 -+  opcode = nios2_extract_opcode (d, 1, arglist);
153.6582 -+
153.6583 -+  for (i = 0; i < 1; i++)
153.6584 -+    {
153.6585 -+      arglist = TREE_CHAIN (arglist);
153.6586 -+      operands[i] = nios2_extract_operand (d, i + 2, i + 1, arglist);
153.6587 -+    }
153.6588 -+
153.6589 -+  pat = GEN_FCN (d->icode) (target, opcode, operands[0]);
153.6590 -+
153.6591 -+  if (!pat)
153.6592 -+    return 0;
153.6593 -+  emit_insn (pat);
153.6594 -+  return target;
153.6595 -+}
153.6596 -+
153.6597 -+static rtx
153.6598 -+nios2_expand_custom_nXX (const struct builtin_description *d, tree exp, rtx target ATTRIBUTE_UNUSED, 
153.6599 -+                         rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6600 -+                         int ignore ATTRIBUTE_UNUSED)
153.6601 -+{
153.6602 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6603 -+  rtx pat;
153.6604 -+  rtx opcode;
153.6605 -+  rtx operands[2];
153.6606 -+  int i;
153.6607 -+
153.6608 -+
153.6609 -+  /* custom_nX should have exactly three operands */
153.6610 -+  if (insn_data[d->icode].n_operands != 3)
153.6611 -+    abort ();
153.6612 -+
153.6613 -+  opcode = nios2_extract_opcode (d, 0, arglist);
153.6614 -+  for (i = 0; i < 2; i++)
153.6615 -+    {
153.6616 -+      arglist = TREE_CHAIN (arglist);
153.6617 -+      operands[i] = nios2_extract_operand (d, i + 1, i + 1, arglist);
153.6618 -+    }
153.6619 -+
153.6620 -+  pat = GEN_FCN (d->icode) (opcode, operands[0], operands[1]);
153.6621 -+  if (!pat)
153.6622 -+    return 0;
153.6623 -+  emit_insn (pat);
153.6624 -+  return 0;
153.6625 -+}
153.6626 -+
153.6627 -+static rtx
153.6628 -+nios2_expand_custom_XnXX (const struct builtin_description *d, tree exp, rtx target, 
153.6629 -+                          rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6630 -+                          int ignore ATTRIBUTE_UNUSED)
153.6631 -+{
153.6632 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6633 -+  rtx pat;
153.6634 -+  rtx opcode;
153.6635 -+  rtx operands[2];
153.6636 -+  int i;
153.6637 -+
153.6638 -+
153.6639 -+  /* custom_XnX should have exactly four operands */
153.6640 -+  if (insn_data[d->icode].n_operands != 4)
153.6641 -+    abort ();
153.6642 -+
153.6643 -+  target = nios2_create_target (d, target);
153.6644 -+  opcode = nios2_extract_opcode (d, 1, arglist);
153.6645 -+  for (i = 0; i < 2; i++)
153.6646 -+    {
153.6647 -+      arglist = TREE_CHAIN (arglist);
153.6648 -+      operands[i] = nios2_extract_operand (d, i + 2, i + 1, arglist);
153.6649 -+    }
153.6650 -+
153.6651 -+  pat = GEN_FCN (d->icode) (target, opcode, operands[0], operands[1]);
153.6652 -+
153.6653 -+  if (!pat)
153.6654 -+    return 0;
153.6655 -+  emit_insn (pat);
153.6656 -+  return target;
153.6657 -+}
153.6658 -+
153.6659 -+
153.6660 -+
153.6661 -+static rtx
153.6662 -+nios2_expand_STXIO (const struct builtin_description *d, tree exp, rtx target ATTRIBUTE_UNUSED, 
153.6663 -+                    rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6664 -+                    int ignore ATTRIBUTE_UNUSED)
153.6665 -+{
153.6666 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6667 -+  rtx pat;
153.6668 -+  rtx store_dest, store_val;
153.6669 -+  enum insn_code icode = d->icode;
153.6670 -+
153.6671 -+  /* stores should have exactly two operands */
153.6672 -+  if (insn_data[icode].n_operands != 2)
153.6673 -+    abort ();
153.6674 -+
153.6675 -+  /* process the destination of the store */
153.6676 -+  {
153.6677 -+    enum machine_mode mode = insn_data[icode].operand[0].mode;
153.6678 -+    tree arg = TREE_VALUE (arglist);
153.6679 -+    store_dest = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6680 -+    store_dest = protect_from_queue (store_dest, 0);
153.6681 -+
153.6682 -+    store_dest = gen_rtx_MEM (mode, copy_to_mode_reg (Pmode, store_dest));
153.6683 -+
153.6684 -+    /* ??? Better errors would be nice */
153.6685 -+    if (!(*insn_data[icode].operand[0].predicate) (store_dest, mode))
153.6686 -+      error ("Invalid argument 1 to %s", d->name);
153.6687 -+  }
153.6688 -+
153.6689 -+
153.6690 -+  /* process the value to store */
153.6691 -+  {
153.6692 -+    enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6693 -+    tree arg = TREE_VALUE (TREE_CHAIN (arglist));
153.6694 -+    store_val = expand_expr (arg, NULL_RTX, mode, 0);
153.6695 -+    store_val = protect_from_queue (store_val, 0);
153.6696 -+
153.6697 -+    if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6698 -+      store_val = copy_to_mode_reg (mode, store_val);
153.6699 -+
153.6700 -+    /* ??? Better errors would be nice */
153.6701 -+    if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6702 -+      error ("Invalid argument 2 to %s", d->name);
153.6703 -+  }
153.6704 -+
153.6705 -+  pat = GEN_FCN (d->icode) (store_dest, store_val);
153.6706 -+  if (!pat)
153.6707 -+    return 0;
153.6708 -+  emit_insn (pat);
153.6709 -+  return 0;
153.6710 -+}
153.6711 -+
153.6712 -+
153.6713 -+static rtx
153.6714 -+nios2_expand_LDXIO (const struct builtin_description * d, tree exp, rtx target, 
153.6715 -+                    rtx subtarget ATTRIBUTE_UNUSED, enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6716 -+                    int ignore ATTRIBUTE_UNUSED)
153.6717 -+{
153.6718 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6719 -+  rtx pat;
153.6720 -+  rtx ld_src;
153.6721 -+  enum insn_code icode = d->icode;
153.6722 -+
153.6723 -+  /* loads should have exactly two operands */
153.6724 -+  if (insn_data[icode].n_operands != 2)
153.6725 -+    abort ();
153.6726 -+
153.6727 -+  target = nios2_create_target (d, target);
153.6728 -+
153.6729 -+  {
153.6730 -+    enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6731 -+    tree arg = TREE_VALUE (arglist);
153.6732 -+    ld_src = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6733 -+    ld_src = protect_from_queue (ld_src, 0);
153.6734 -+
153.6735 -+    ld_src = gen_rtx_MEM (mode, copy_to_mode_reg (Pmode, ld_src));
153.6736 -+
153.6737 -+    /* ??? Better errors would be nice */
153.6738 -+    if (!(*insn_data[icode].operand[1].predicate) (ld_src, mode))
153.6739 -+      {
153.6740 -+        error ("Invalid argument 1 to %s", d->name);
153.6741 -+      }
153.6742 -+  }
153.6743 -+
153.6744 -+  pat = GEN_FCN (d->icode) (target, ld_src);
153.6745 -+  if (!pat)
153.6746 -+    return 0;
153.6747 -+  emit_insn (pat);
153.6748 -+  return target;
153.6749 -+}
153.6750 -+
153.6751 -+
153.6752 -+static rtx
153.6753 -+nios2_expand_sync (const struct builtin_description * d ATTRIBUTE_UNUSED, 
153.6754 -+                   tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED, 
153.6755 -+                   rtx subtarget ATTRIBUTE_UNUSED, 
153.6756 -+                   enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6757 -+                   int ignore ATTRIBUTE_UNUSED)
153.6758 -+{
153.6759 -+  emit_insn (gen_sync ());
153.6760 -+  return 0;
153.6761 -+}
153.6762 -+
153.6763 -+static rtx
153.6764 -+nios2_expand_rdctl (const struct builtin_description * d ATTRIBUTE_UNUSED, 
153.6765 -+                   tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED, 
153.6766 -+                   rtx subtarget ATTRIBUTE_UNUSED, 
153.6767 -+                   enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6768 -+                   int ignore ATTRIBUTE_UNUSED)
153.6769 -+{
153.6770 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6771 -+  rtx pat;
153.6772 -+  rtx rdctl_reg;
153.6773 -+  enum insn_code icode = d->icode;
153.6774 -+
153.6775 -+  /* rdctl should have exactly two operands */
153.6776 -+  if (insn_data[icode].n_operands != 2)
153.6777 -+    abort ();
153.6778 -+
153.6779 -+  target = nios2_create_target (d, target);
153.6780 -+
153.6781 -+  {
153.6782 -+    enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6783 -+    tree arg = TREE_VALUE (arglist);
153.6784 -+    rdctl_reg = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6785 -+    rdctl_reg = protect_from_queue (rdctl_reg, 0);
153.6786 -+
153.6787 -+    if (!(*insn_data[icode].operand[1].predicate) (rdctl_reg, mode))
153.6788 -+      {
153.6789 -+        error ("Control register number must be in range 0-31 for %s", d->name);
153.6790 -+      }
153.6791 -+  }
153.6792 -+
153.6793 -+  pat = GEN_FCN (d->icode) (target, rdctl_reg);
153.6794 -+  if (!pat)
153.6795 -+    return 0;
153.6796 -+  emit_insn (pat);
153.6797 -+  return target;
153.6798 -+}
153.6799 -+
153.6800 -+static rtx
153.6801 -+nios2_expand_wrctl (const struct builtin_description * d ATTRIBUTE_UNUSED, 
153.6802 -+                   tree exp ATTRIBUTE_UNUSED, rtx target ATTRIBUTE_UNUSED, 
153.6803 -+                   rtx subtarget ATTRIBUTE_UNUSED, 
153.6804 -+                   enum machine_mode mode ATTRIBUTE_UNUSED, 
153.6805 -+                   int ignore ATTRIBUTE_UNUSED)
153.6806 -+{
153.6807 -+  tree arglist = TREE_OPERAND (exp, 1);
153.6808 -+  rtx pat;
153.6809 -+  rtx wrctl_reg, store_val;
153.6810 -+  enum insn_code icode = d->icode;
153.6811 -+
153.6812 -+  /* stores should have exactly two operands */
153.6813 -+  if (insn_data[icode].n_operands != 2)
153.6814 -+    abort ();
153.6815 -+
153.6816 -+  /* process the destination of the store */
153.6817 -+  {
153.6818 -+    enum machine_mode mode = insn_data[icode].operand[0].mode;
153.6819 -+    tree arg = TREE_VALUE (arglist);
153.6820 -+    wrctl_reg = expand_expr (arg, NULL_RTX, VOIDmode, 0);
153.6821 -+    wrctl_reg = protect_from_queue (wrctl_reg, 0);
153.6822 -+
153.6823 -+    if (!(*insn_data[icode].operand[0].predicate) (wrctl_reg, mode))
153.6824 -+      error ("Control register number must be in range 0-31 for %s", d->name);
153.6825 -+  }
153.6826 -+
153.6827 -+
153.6828 -+  /* process the value to store */
153.6829 -+  {
153.6830 -+    enum machine_mode mode = insn_data[icode].operand[1].mode;
153.6831 -+    tree arg = TREE_VALUE (TREE_CHAIN (arglist));
153.6832 -+    store_val = expand_expr (arg, NULL_RTX, mode, 0);
153.6833 -+    store_val = protect_from_queue (store_val, 0);
153.6834 -+
153.6835 -+    if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6836 -+      store_val = copy_to_mode_reg (mode, store_val);
153.6837 -+
153.6838 -+    /* ??? Better errors would be nice */
153.6839 -+    if (!(*insn_data[icode].operand[1].predicate) (store_val, mode))
153.6840 -+      error ("Invalid argument 2 to %s", d->name);
153.6841 -+  }
153.6842 -+
153.6843 -+  pat = GEN_FCN (d->icode) (wrctl_reg, store_val);
153.6844 -+  if (!pat)
153.6845 -+    return 0;
153.6846 -+  emit_insn (pat);
153.6847 -+  return 0;
153.6848 -+}
153.6849 -+
153.6850 -+
153.6851 -+#include "gt-nios2.h"
153.6852 -+
153.6853 ---- gcc-3.4.3/gcc/config/nios2/nios2.h
153.6854 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2.h
153.6855 -@@ -0,0 +1,824 @@
153.6856 -+/* Definitions of target machine for Altera NIOS 2G NIOS2 version.
153.6857 -+   Copyright (C) 2003 Altera 
153.6858 -+   Contributed by Jonah Graham (jgraham@altera.com).
153.6859 -+
153.6860 -+This file is part of GNU CC.
153.6861 -+
153.6862 -+GNU CC is free software; you can redistribute it and/or modify
153.6863 -+it under the terms of the GNU General Public License as published by
153.6864 -+the Free Software Foundation; either version 2, or (at your option)
153.6865 -+any later version.
153.6866 -+
153.6867 -+GNU CC is distributed in the hope that it will be useful,
153.6868 -+but WITHOUT ANY WARRANTY; without even the implied warranty of
153.6869 -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
153.6870 -+GNU General Public License for more details.
153.6871 -+
153.6872 -+You should have received a copy of the GNU General Public License
153.6873 -+along with GNU CC; see the file COPYING.  If not, write to
153.6874 -+the Free Software Foundation, 59 Temple Place - Suite 330,
153.6875 -+Boston, MA 02111-1307, USA.  */
153.6876 -+
153.6877 -+
153.6878 -+
153.6879 -+#define TARGET_CPU_CPP_BUILTINS()		\
153.6880 -+  do						\
153.6881 -+    {						\
153.6882 -+      builtin_define_std ("NIOS2");		\
153.6883 -+      builtin_define_std ("nios2");		\
153.6884 -+      builtin_define ("_GNU_SOURCE");		\
153.6885 -+    }						\
153.6886 -+  while (0)
153.6887 -+#define TARGET_VERSION fprintf (stderr, " (Altera Nios II)")
153.6888 -+
153.6889 -+
153.6890 -+
153.6891 -+
153.6892 -+
153.6893 -+/*********************************
153.6894 -+ * Run-time Target Specification
153.6895 -+ *********************************/
153.6896 -+
153.6897 -+#define HAS_DIV_FLAG 0x0001
153.6898 -+#define HAS_MUL_FLAG 0x0002
153.6899 -+#define HAS_MULX_FLAG 0x0004
153.6900 -+#define FAST_SW_DIV_FLAG 0x0008
153.6901 -+#define INLINE_MEMCPY_FLAG 0x00010
153.6902 -+#define CACHE_VOLATILE_FLAG 0x0020
153.6903 -+#define BYPASS_CACHE_FLAG 0x0040
153.6904 -+
153.6905 -+extern int target_flags;
153.6906 -+#define TARGET_HAS_DIV (target_flags & HAS_DIV_FLAG)
153.6907 -+#define TARGET_HAS_MUL (target_flags & HAS_MUL_FLAG)
153.6908 -+#define TARGET_HAS_MULX (target_flags & HAS_MULX_FLAG)
153.6909 -+#define TARGET_FAST_SW_DIV (target_flags & FAST_SW_DIV_FLAG)
153.6910 -+#define TARGET_INLINE_MEMCPY (target_flags & INLINE_MEMCPY_FLAG)
153.6911 -+#define TARGET_CACHE_VOLATILE (target_flags & CACHE_VOLATILE_FLAG)
153.6912 -+#define TARGET_BYPASS_CACHE (target_flags & BYPASS_CACHE_FLAG)
153.6913 -+
153.6914 -+#define TARGET_SWITCHES					\
153.6915 -+{							\
153.6916 -+    { "hw-div", HAS_DIV_FLAG,				\
153.6917 -+      N_("Enable DIV, DIVU") },				\
153.6918 -+    { "no-hw-div", -HAS_DIV_FLAG,			\
153.6919 -+      N_("Disable DIV, DIVU (default)") },		\
153.6920 -+    { "hw-mul", HAS_MUL_FLAG,				\
153.6921 -+      N_("Enable MUL instructions (default)") },				\
153.6922 -+    { "hw-mulx", HAS_MULX_FLAG,				\
153.6923 -+      N_("Enable MULX instructions, assume fast shifter") },				\
153.6924 -+    { "no-hw-mul", -HAS_MUL_FLAG,			\
153.6925 -+      N_("Disable MUL instructions") },		\
153.6926 -+    { "no-hw-mulx", -HAS_MULX_FLAG,			\
153.6927 -+      N_("Disable MULX instructions, assume slow shifter (default and implied by -mno-hw-mul)") },		\
153.6928 -+    { "fast-sw-div", FAST_SW_DIV_FLAG,				\
153.6929 -+      N_("Use table based fast divide (default at -O3)") },				\
153.6930 -+    { "no-fast-sw-div", -FAST_SW_DIV_FLAG,			\
153.6931 -+      N_("Don't use table based fast divide ever") },		\
153.6932 -+    { "inline-memcpy", INLINE_MEMCPY_FLAG,				\
153.6933 -+      N_("Inline small memcpy (default when optimizing)") },				\
153.6934 -+    { "no-inline-memcpy", -INLINE_MEMCPY_FLAG,			\
153.6935 -+      N_("Don't Inline small memcpy") },		\
153.6936 -+    { "cache-volatile", CACHE_VOLATILE_FLAG,				\
153.6937 -+      N_("Volatile accesses use non-io variants of instructions (default)") },				\
153.6938 -+    { "no-cache-volatile", -CACHE_VOLATILE_FLAG,			\
153.6939 -+      N_("Volatile accesses use io variants of instructions") },		\
153.6940 -+    { "bypass-cache", BYPASS_CACHE_FLAG,				\
153.6941 -+      N_("All ld/st instructins use io variants") },				\
153.6942 -+    { "no-bypass-cache", -BYPASS_CACHE_FLAG,			\
153.6943 -+      N_("All ld/st instructins do not use io variants (default)") },		\
153.6944 -+    { "smallc", 0,			\
153.6945 -+      N_("Link with a limited version of the C library") },		\
153.6946 -+    { "ctors-in-init", 0,			\
153.6947 -+      "" /* undocumented: N_("Link with static constructors and destructors in init") */ },		\
153.6948 -+    { "", TARGET_DEFAULT, 0 }				\
153.6949 -+}
153.6950 -+
153.6951 -+
153.6952 -+extern const char *nios2_sys_nosys_string;    /* for -msys=nosys */
153.6953 -+extern const char *nios2_sys_lib_string;    /* for -msys-lib= */
153.6954 -+extern const char *nios2_sys_crt0_string;    /* for -msys-crt0= */
153.6955 -+
153.6956 -+#define TARGET_OPTIONS					\
153.6957 -+{							\
153.6958 -+  { "sys=nosys",    &nios2_sys_nosys_string,		\
153.6959 -+      N_("Use stub versions of OS library calls (default)"), 0},	\
153.6960 -+  { "sys-lib=",    &nios2_sys_lib_string,		\
153.6961 -+      N_("Name of System Library to link against. (Converted to a -l option)"), 0},	\
153.6962 -+  { "sys-crt0=",    &nios2_sys_crt0_string,		\
153.6963 -+      N_("Name of the startfile. (default is a crt0 for the ISS only)"), 0},	\
153.6964 -+}
153.6965 -+
153.6966 -+
153.6967 -+/* Default target_flags if no switches specified.  */
153.6968 -+#ifndef TARGET_DEFAULT
153.6969 -+# define TARGET_DEFAULT (HAS_MUL_FLAG | CACHE_VOLATILE_FLAG)
153.6970 -+#endif
153.6971 -+
153.6972 -+/* Switch  Recognition by gcc.c.  Add -G xx support */
153.6973 -+#undef  SWITCH_TAKES_ARG
153.6974 -+#define SWITCH_TAKES_ARG(CHAR)						\
153.6975 -+  (DEFAULT_SWITCH_TAKES_ARG (CHAR) || (CHAR) == 'G')
153.6976 -+
153.6977 -+#define OVERRIDE_OPTIONS override_options ()
153.6978 -+#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) optimization_options (LEVEL, SIZE)
153.6979 -+#define CAN_DEBUG_WITHOUT_FP
153.6980 -+ 
153.6981 -+#define CC1_SPEC "\
153.6982 -+%{G*}"
153.6983 -+
153.6984 -+#undef LIB_SPEC
153.6985 -+#define LIB_SPEC \
153.6986 -+"--start-group %{msmallc: -lsmallc} %{!msmallc: -lc} -lgcc \
153.6987 -+ %{msys-lib=*: -l%*} \
153.6988 -+ %{!msys-lib=*: -lc } \
153.6989 -+ --end-group \
153.6990 -+ %{msys-lib=: %eYou need a library name for -msys-lib=} \
153.6991 -+"
153.6992 -+
153.6993 -+
153.6994 -+#undef STARTFILE_SPEC 
153.6995 -+#define STARTFILE_SPEC  \
153.6996 -+"%{msys-crt0=*: %*} %{!msys-crt0=*: crt1%O%s} \
153.6997 -+ %{msys-crt0=: %eYou need a C startup file for -msys-crt0=} \
153.6998 -+ %{mctors-in-init: crti%O%s crtbegin%O%s} \
153.6999 -+"
153.7000 -+
153.7001 -+#undef ENDFILE_SPEC 
153.7002 -+#define ENDFILE_SPEC \
153.7003 -+ "%{mctors-in-init: crtend%O%s crtn%O%s}"
153.7004 -+
153.7005 -+
153.7006 -+/***********************
153.7007 -+ * Storage Layout
153.7008 -+ ***********************/
153.7009 -+
153.7010 -+#define DEFAULT_SIGNED_CHAR 1
153.7011 -+#define BITS_BIG_ENDIAN 0
153.7012 -+#define BYTES_BIG_ENDIAN 0
153.7013 -+#define WORDS_BIG_ENDIAN 0
153.7014 -+#define BITS_PER_UNIT 8
153.7015 -+#define BITS_PER_WORD 32
153.7016 -+#define UNITS_PER_WORD 4
153.7017 -+#define POINTER_SIZE 32
153.7018 -+#define BIGGEST_ALIGNMENT 32
153.7019 -+#define STRICT_ALIGNMENT 1
153.7020 -+#define FUNCTION_BOUNDARY 32
153.7021 -+#define PARM_BOUNDARY 32
153.7022 -+#define STACK_BOUNDARY 32
153.7023 -+#define PREFERRED_STACK_BOUNDARY 32
153.7024 -+#define MAX_FIXED_MODE_SIZE 64
153.7025 -+
153.7026 -+#define CONSTANT_ALIGNMENT(EXP, ALIGN)				\
153.7027 -+  ((TREE_CODE (EXP) == STRING_CST) 				\
153.7028 -+   && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
153.7029 -+
153.7030 -+
153.7031 -+/**********************
153.7032 -+ * Layout of Source Language Data Types
153.7033 -+ **********************/
153.7034 -+
153.7035 -+#define INT_TYPE_SIZE 32
153.7036 -+#define SHORT_TYPE_SIZE 16
153.7037 -+#define LONG_TYPE_SIZE 32
153.7038 -+#define LONG_LONG_TYPE_SIZE 64
153.7039 -+#define FLOAT_TYPE_SIZE 32
153.7040 -+#define DOUBLE_TYPE_SIZE 64
153.7041 -+#define LONG_DOUBLE_TYPE_SIZE DOUBLE_TYPE_SIZE
153.7042 -+
153.7043 -+
153.7044 -+/*************************
153.7045 -+ * Condition Code Status
153.7046 -+ ************************/
153.7047 -+
153.7048 -+/* comparison type */
153.7049 -+/* ??? currently only CMP_SI is used */
153.7050 -+enum cmp_type {
153.7051 -+  CMP_SI,				/* compare four byte integers */
153.7052 -+  CMP_DI,				/* compare eight byte integers */
153.7053 -+  CMP_SF,				/* compare single precision floats */
153.7054 -+  CMP_DF,				/* compare double precision floats */
153.7055 -+  CMP_MAX				/* max comparison type */
153.7056 -+};
153.7057 -+
153.7058 -+extern GTY(()) rtx branch_cmp[2];	/* operands for compare */
153.7059 -+extern enum cmp_type branch_type;	/* what type of branch to use */
153.7060 -+
153.7061 -+/**********************
153.7062 -+ * Register Usage
153.7063 -+ **********************/
153.7064 -+
153.7065 -+/* ---------------------------------- *
153.7066 -+ * Basic Characteristics of Registers
153.7067 -+ * ---------------------------------- */
153.7068 -+
153.7069 -+/*
153.7070 -+Register Number
153.7071 -+      Register Name
153.7072 -+          Alternate Name
153.7073 -+                Purpose
153.7074 -+0     r0  zero  always zero
153.7075 -+1     r1  at    Assembler Temporary
153.7076 -+2-3   r2-r3     Return Location
153.7077 -+4-7   r4-r7     Register Arguments
153.7078 -+8-15  r8-r15    Caller Saved Registers
153.7079 -+16-22 r16-r22   Callee Saved Registers
153.7080 -+23    r23 sc    Static Chain (Callee Saved)
153.7081 -+                ??? Does $sc want to be caller or callee 
153.7082 -+                saved. If caller, 15, else 23. 
153.7083 -+24    r24       Exception Temporary
153.7084 -+25    r25       Breakpoint Temporary
153.7085 -+26    r26 gp    Global Pointer
153.7086 -+27    r27 sp    Stack Pointer
153.7087 -+28    r28 fp    Frame Pointer
153.7088 -+29    r29 ea    Exception Return Address
153.7089 -+30    r30 ba    Breakpoint Return Address
153.7090 -+31    r31 ra    Return Address
153.7091 -+
153.7092 -+32    ctl0 status
153.7093 -+33    ctl1 estatus STATUS saved by exception ? 	
153.7094 -+34    ctl2 bstatus STATUS saved by break ? 	
153.7095 -+35    ctl3 ipri    Interrupt Priority Mask ?	
153.7096 -+36    ctl4 ecause  Exception Cause ? 	
153.7097 -+
153.7098 -+37         pc   Not an actual register	
153.7099 -+
153.7100 -+38    rap      Return address pointer, this does not
153.7101 -+                   actually exist and will be eliminated
153.7102 -+
153.7103 -+39    fake_fp  Fake Frame Pointer which will always be eliminated.
153.7104 -+40    fake_ap  Fake Argument Pointer which will always be eliminated.
153.7105 -+
153.7106 -+41             First Pseudo Register
153.7107 -+
153.7108 -+
153.7109 -+The definitions for all the hard register numbers
153.7110 -+are located in nios2.md.
153.7111 -+*/
153.7112 -+
153.7113 -+#define FIRST_PSEUDO_REGISTER 41
153.7114 -+#define NUM_ARG_REGS (LAST_ARG_REGNO - FIRST_ARG_REGNO + 1)
153.7115 -+
153.7116 -+
153.7117 -+
153.7118 -+/* also see CONDITIONAL_REGISTER_USAGE */
153.7119 -+#define FIXED_REGISTERS			     \
153.7120 -+    {					     \
153.7121 -+/*        +0  1  2  3  4  5  6  7  8  9 */   \
153.7122 -+/*   0 */  1, 1, 0, 0, 0, 0, 0, 0, 0, 0,     \
153.7123 -+/*  10 */  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,     \
153.7124 -+/*  20 */  0, 0, 0, 0, 1, 1, 1, 1, 0, 1,     \
153.7125 -+/*  30 */  1, 0, 1, 1, 1, 1, 1, 1, 1, 1,     \
153.7126 -+/*  40 */  1,                                \
153.7127 -+    }
153.7128 -+
153.7129 -+/* call used is the same as caller saved
153.7130 -+   + fixed regs + args + ret vals */
153.7131 -+#define CALL_USED_REGISTERS		     \
153.7132 -+    { 					     \
153.7133 -+/*        +0  1  2  3  4  5  6  7  8  9 */   \
153.7134 -+/*   0 */  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,     \
153.7135 -+/*  10 */  1, 1, 1, 1, 1, 1, 0, 0, 0, 0,     \
153.7136 -+/*  20 */  0, 0, 0, 0, 1, 1, 1, 1, 0, 1,     \
153.7137 -+/*  30 */  1, 0, 1, 1, 1, 1, 1, 1, 1, 1,     \
153.7138 -+/*  40 */  1,                                \
153.7139 -+    }
153.7140 -+
153.7141 -+#define HARD_REGNO_NREGS(REGNO, MODE)            \
153.7142 -+   ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1)  \
153.7143 -+    / UNITS_PER_WORD)
153.7144 -+
153.7145 -+/* --------------------------- *
153.7146 -+ * How Values Fit in Registers
153.7147 -+ * --------------------------- */
153.7148 -+
153.7149 -+#define HARD_REGNO_MODE_OK(REGNO, MODE) 1
153.7150 -+
153.7151 -+#define MODES_TIEABLE_P(MODE1, MODE2) 1
153.7152 -+
153.7153 -+
153.7154 -+/*************************
153.7155 -+ * Register Classes
153.7156 -+ *************************/
153.7157 -+
153.7158 -+enum reg_class
153.7159 -+{
153.7160 -+    NO_REGS,
153.7161 -+    ALL_REGS,
153.7162 -+    LIM_REG_CLASSES
153.7163 -+};
153.7164 -+
153.7165 -+#define N_REG_CLASSES (int) LIM_REG_CLASSES
153.7166 -+
153.7167 -+#define REG_CLASS_NAMES   \
153.7168 -+    {"NO_REGS",           \
153.7169 -+     "ALL_REGS"}
153.7170 -+
153.7171 -+#define GENERAL_REGS ALL_REGS
153.7172 -+
153.7173 -+#define REG_CLASS_CONTENTS   \
153.7174 -+/* NO_REGS  */       {{ 0, 0},     \
153.7175 -+/* ALL_REGS */        {~0,~0}}    \
153.7176 -+
153.7177 -+#define REGNO_REG_CLASS(REGNO) ALL_REGS
153.7178 -+
153.7179 -+#define BASE_REG_CLASS ALL_REGS
153.7180 -+#define INDEX_REG_CLASS ALL_REGS
153.7181 -+
153.7182 -+/* only one reg class, 'r', is handled automatically */
153.7183 -+#define REG_CLASS_FROM_LETTER(CHAR) NO_REGS
153.7184 -+
153.7185 -+#define REGNO_OK_FOR_BASE_P2(REGNO, STRICT) \
153.7186 -+    ((STRICT) \
153.7187 -+     ? (REGNO) < FIRST_PSEUDO_REGISTER \
153.7188 -+     : (REGNO) < FIRST_PSEUDO_REGISTER || (reg_renumber && reg_renumber[REGNO] < FIRST_PSEUDO_REGISTER))
153.7189 -+
153.7190 -+#define REGNO_OK_FOR_INDEX_P2(REGNO, STRICT) \
153.7191 -+    (REGNO_OK_FOR_BASE_P2 (REGNO, STRICT))
153.7192 -+
153.7193 -+#define REGNO_OK_FOR_BASE_P(REGNO) \
153.7194 -+    (REGNO_OK_FOR_BASE_P2 (REGNO, 1))
153.7195 -+
153.7196 -+#define REGNO_OK_FOR_INDEX_P(REGNO) \
153.7197 -+    (REGNO_OK_FOR_INDEX_P2 (REGNO, 1))
153.7198 -+
153.7199 -+#define REG_OK_FOR_BASE_P2(X, STRICT)                                   \
153.7200 -+    (STRICT                                                             \
153.7201 -+     ? REGNO_OK_FOR_BASE_P2 (REGNO (X), 1)                              \
153.7202 -+     : REGNO_OK_FOR_BASE_P2 (REGNO (X), 1) || REGNO(X) >= FIRST_PSEUDO_REGISTER)
153.7203 -+
153.7204 -+#define REG_OK_FOR_INDEX_P2(X, STRICT)                                  \
153.7205 -+    (STRICT                                                             \
153.7206 -+     ? REGNO_OK_FOR_INDEX_P2 (REGNO (X), 1)                             \
153.7207 -+     : REGNO_OK_FOR_INDEX_P2 (REGNO (X), 1) || REGNO(X) >= FIRST_PSEUDO_REGISTER)
153.7208 -+
153.7209 -+#define CLASS_MAX_NREGS(CLASS, MODE)             \
153.7210 -+   ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1)  \
153.7211 -+    / UNITS_PER_WORD)
153.7212 -+
153.7213 -+
153.7214 -+#define SMALL_INT(X) ((unsigned HOST_WIDE_INT) ((X) + 0x8000) < 0x10000)
153.7215 -+#define SMALL_INT_UNSIGNED(X) ((unsigned HOST_WIDE_INT) (X) < 0x10000)
153.7216 -+#define UPPER16_INT(X) (((X) & 0xffff) == 0)
153.7217 -+#define SHIFT_INT(X) ((X) >= 0 && (X) <= 31)
153.7218 -+#define RDWRCTL_INT(X) ((X) >= 0 && (X) <= 31)
153.7219 -+#define CUSTOM_INSN_OPCODE(X) ((X) >= 0 && (X) <= 255)
153.7220 -+
153.7221 -+#define CONST_OK_FOR_LETTER_P(VALUE, C)			\
153.7222 -+ (							\
153.7223 -+  (C) == 'I' ? SMALL_INT (VALUE) :			\
153.7224 -+  (C) == 'J' ? SMALL_INT_UNSIGNED (VALUE) :		\
153.7225 -+  (C) == 'K' ? UPPER16_INT (VALUE) :         		\
153.7226 -+  (C) == 'L' ? SHIFT_INT (VALUE) :			\
153.7227 -+  (C) == 'M' ? (VALUE) == 0 :				\
153.7228 -+  (C) == 'N' ? CUSTOM_INSN_OPCODE (VALUE) :		\
153.7229 -+  (C) == 'O' ? RDWRCTL_INT (VALUE) :			\
153.7230 -+  0)
153.7231 -+
153.7232 -+#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0
153.7233 -+
153.7234 -+#define PREFERRED_RELOAD_CLASS(X, CLASS) \
153.7235 -+    ((CLASS) == NO_REGS ? GENERAL_REGS : (CLASS))
153.7236 -+
153.7237 -+/* 'S' matches immediates which are in small data 
153.7238 -+   and therefore can be added to gp to create a 
153.7239 -+   32-bit value. */
153.7240 -+#define EXTRA_CONSTRAINT(VALUE, C)		\
153.7241 -+  ((C) == 'S' 					\
153.7242 -+   && (GET_CODE (VALUE) == SYMBOL_REF)   	\
153.7243 -+   && SYMBOL_REF_IN_NIOS2_SMALL_DATA_P (VALUE))
153.7244 -+
153.7245 -+
153.7246 -+
153.7247 -+
153.7248 -+/* Say that the epilogue uses the return address register.  Note that
153.7249 -+   in the case of sibcalls, the values "used by the epilogue" are
153.7250 -+   considered live at the start of the called function.  */
153.7251 -+#define EPILOGUE_USES(REGNO) ((REGNO) == RA_REGNO)
153.7252 -+
153.7253 -+
153.7254 -+#define DEFAULT_MAIN_RETURN  c_expand_return (integer_zero_node)
153.7255 -+
153.7256 -+/**********************************
153.7257 -+ * Trampolines for Nested Functions
153.7258 -+ ***********************************/
153.7259 -+
153.7260 -+#define TRAMPOLINE_TEMPLATE(FILE) \
153.7261 -+    error ("trampolines not yet implemented")
153.7262 -+#define TRAMPOLINE_SIZE 20
153.7263 -+#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
153.7264 -+    error ("trampolines not yet implemented")
153.7265 -+
153.7266 -+/***************************
153.7267 -+ * Stack Layout and Calling Conventions
153.7268 -+ ***************************/
153.7269 -+
153.7270 -+/* ------------------ *
153.7271 -+ * Basic Stack Layout
153.7272 -+ * ------------------ */
153.7273 -+
153.7274 -+/* The downward variants are used by the compiler,
153.7275 -+   the upward ones serve as documentation */
153.7276 -+#define STACK_GROWS_DOWNWARD
153.7277 -+#define FRAME_GROWS_UPWARD
153.7278 -+#define ARGS_GROW_UPWARD
153.7279 -+
153.7280 -+#define STARTING_FRAME_OFFSET current_function_outgoing_args_size
153.7281 -+#define FIRST_PARM_OFFSET(FUNDECL) 0
153.7282 -+
153.7283 -+/* Before the prologue, RA lives in r31.  */
153.7284 -+#define INCOMING_RETURN_ADDR_RTX  gen_rtx_REG (VOIDmode, RA_REGNO)
153.7285 -+
153.7286 -+/* -------------------------------------- *
153.7287 -+ * Registers That Address the Stack Frame
153.7288 -+ * -------------------------------------- */
153.7289 -+
153.7290 -+#define STACK_POINTER_REGNUM SP_REGNO
153.7291 -+#define STATIC_CHAIN_REGNUM SC_REGNO
153.7292 -+#define PC_REGNUM PC_REGNO
153.7293 -+#define DWARF_FRAME_RETURN_COLUMN RA_REGNO
153.7294 -+
153.7295 -+/* Base register for access to local variables of the function.  We
153.7296 -+   pretend that the frame pointer is a non-existent hard register, and 
153.7297 -+   then eliminate it to HARD_FRAME_POINTER_REGNUM. */
153.7298 -+#define FRAME_POINTER_REGNUM FAKE_FP_REGNO
153.7299 -+
153.7300 -+#define HARD_FRAME_POINTER_REGNUM FP_REGNO
153.7301 -+#define RETURN_ADDRESS_POINTER_REGNUM RAP_REGNO
153.7302 -+/* the argumnet pointer needs to always be eliminated
153.7303 -+   so it is set to a fake hard register. */
153.7304 -+#define ARG_POINTER_REGNUM FAKE_AP_REGNO
153.7305 -+
153.7306 -+/* ----------------------------------------- *
153.7307 -+ * Eliminating Frame Pointer and Arg Pointer
153.7308 -+ * ----------------------------------------- */
153.7309 -+
153.7310 -+#define FRAME_POINTER_REQUIRED 0
153.7311 -+
153.7312 -+#define ELIMINABLE_REGS							\
153.7313 -+{{ ARG_POINTER_REGNUM,   STACK_POINTER_REGNUM},				\
153.7314 -+ { ARG_POINTER_REGNUM,   HARD_FRAME_POINTER_REGNUM},			\
153.7315 -+ { RETURN_ADDRESS_POINTER_REGNUM, STACK_POINTER_REGNUM},		\
153.7316 -+ { RETURN_ADDRESS_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM},		\
153.7317 -+ { FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM},				\
153.7318 -+ { FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM}}
153.7319 -+
153.7320 -+#define CAN_ELIMINATE(FROM, TO)	1
153.7321 -+
153.7322 -+#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
153.7323 -+	(OFFSET) = nios2_initial_elimination_offset ((FROM), (TO))
153.7324 -+
153.7325 -+#define MUST_SAVE_REGISTER(regno) \
153.7326 -+ ((regs_ever_live[regno] && !call_used_regs[regno])			\
153.7327 -+  || (regno == HARD_FRAME_POINTER_REGNUM && frame_pointer_needed)	\
153.7328 -+  || (regno == RA_REGNO && regs_ever_live[RA_REGNO]))
153.7329 -+
153.7330 -+/* Treat LOC as a byte offset from the stack pointer and round it up
153.7331 -+   to the next fully-aligned offset.  */
153.7332 -+#define STACK_ALIGN(LOC)						\
153.7333 -+  (((LOC) + ((PREFERRED_STACK_BOUNDARY / 8) - 1)) & ~((PREFERRED_STACK_BOUNDARY / 8) - 1))
153.7334 -+
153.7335 -+
153.7336 -+/* ------------------------------ *
153.7337 -+ * Passing Arguments in Registers
153.7338 -+ * ------------------------------ */
153.7339 -+
153.7340 -+/* see nios2.c */
153.7341 -+#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
153.7342 -+  (function_arg (&CUM, MODE, TYPE, NAMED))
153.7343 -+
153.7344 -+#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \
153.7345 -+  (function_arg_partial_nregs (&CUM, MODE, TYPE, NAMED))
153.7346 -+
153.7347 -+#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) 0
153.7348 -+
153.7349 -+#define FUNCTION_ARG_CALLEE_COPIES(CUM, MODE, TYPE, NAMED) 0
153.7350 -+
153.7351 -+typedef struct nios2_args
153.7352 -+{
153.7353 -+    int regs_used;
153.7354 -+} CUMULATIVE_ARGS;
153.7355 -+
153.7356 -+/* This is to initialize the above unused CUM data type */
153.7357 -+#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
153.7358 -+    (init_cumulative_args (&CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS))
153.7359 -+
153.7360 -+#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
153.7361 -+    (function_arg_advance (&CUM, MODE, TYPE, NAMED))
153.7362 -+
153.7363 -+#define FUNCTION_ARG_REGNO_P(REGNO) \
153.7364 -+    ((REGNO) >= FIRST_ARG_REGNO && (REGNO) <= LAST_ARG_REGNO)
153.7365 -+
153.7366 -+#define SETUP_INCOMING_VARARGS(CUM,MODE,TYPE,PRETEND_SIZE,NO_RTL)   \
153.7367 -+  {								    \
153.7368 -+    int pret_size = nios2_setup_incoming_varargs (&(CUM), (MODE),	    \
153.7369 -+						(TYPE), (NO_RTL));  \
153.7370 -+    if (pret_size)						    \
153.7371 -+      (PRETEND_SIZE) = pret_size;				    \
153.7372 -+  }
153.7373 -+
153.7374 -+/* ----------------------------- *
153.7375 -+ * Generating Code for Profiling
153.7376 -+ * ----------------------------- */
153.7377 -+
153.7378 -+#define PROFILE_BEFORE_PROLOGUE
153.7379 -+
153.7380 -+#define FUNCTION_PROFILER(FILE, LABELNO) \
153.7381 -+  function_profiler ((FILE), (LABELNO))
153.7382 -+
153.7383 -+/* --------------------------------------- *
153.7384 -+ * Passing Function Arguments on the Stack
153.7385 -+ * --------------------------------------- */
153.7386 -+
153.7387 -+#define PROMOTE_PROTOTYPES 1
153.7388 -+
153.7389 -+#define PUSH_ARGS 0
153.7390 -+#define ACCUMULATE_OUTGOING_ARGS 1
153.7391 -+
153.7392 -+#define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACKSIZE) 0
153.7393 -+
153.7394 -+/* --------------------------------------- *
153.7395 -+ * How Scalar Function Values Are Returned
153.7396 -+ * --------------------------------------- */
153.7397 -+
153.7398 -+#define FUNCTION_VALUE(VALTYPE, FUNC) \
153.7399 -+    gen_rtx(REG, TYPE_MODE(VALTYPE), FIRST_RETVAL_REGNO)
153.7400 -+
153.7401 -+#define LIBCALL_VALUE(MODE) \
153.7402 -+    gen_rtx(REG, MODE, FIRST_RETVAL_REGNO)
153.7403 -+
153.7404 -+#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == FIRST_RETVAL_REGNO)
153.7405 -+
153.7406 -+/* ----------------------------- *
153.7407 -+ * How Large Values Are Returned
153.7408 -+ * ----------------------------- */
153.7409 -+
153.7410 -+
153.7411 -+#define RETURN_IN_MEMORY(TYPE)	\
153.7412 -+  nios2_return_in_memory (TYPE)
153.7413 -+
153.7414 -+
153.7415 -+#define STRUCT_VALUE 0
153.7416 -+
153.7417 -+#define DEFAULT_PCC_STRUCT_RETURN 0
153.7418 -+
153.7419 -+/*******************
153.7420 -+ * Addressing Modes
153.7421 -+ *******************/
153.7422 -+
153.7423 -+
153.7424 -+#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)
153.7425 -+
153.7426 -+#define CONSTANT_ADDRESS_P(X) (CONSTANT_P (X))
153.7427 -+
153.7428 -+#define MAX_REGS_PER_ADDRESS 1
153.7429 -+
153.7430 -+/* Go to ADDR if X is a valid address.  */
153.7431 -+#ifndef REG_OK_STRICT
153.7432 -+#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR)        \
153.7433 -+    {                                                  \
153.7434 -+        if (nios2_legitimate_address ((X), (MODE), 0))  \
153.7435 -+            goto ADDR;                                 \
153.7436 -+    }
153.7437 -+#else
153.7438 -+#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR)        \
153.7439 -+    {                                                  \
153.7440 -+        if (nios2_legitimate_address ((X), (MODE), 1))  \
153.7441 -+            goto ADDR;                                 \
153.7442 -+    }
153.7443 -+#endif
153.7444 -+
153.7445 -+#ifndef REG_OK_STRICT
153.7446 -+#define REG_OK_FOR_BASE_P(X)   REGNO_OK_FOR_BASE_P2 (REGNO (X), 0)
153.7447 -+#define REG_OK_FOR_INDEX_P(X)  REGNO_OK_FOR_INDEX_P2 (REGNO (X), 0)
153.7448 -+#else
153.7449 -+#define REG_OK_FOR_BASE_P(X)   REGNO_OK_FOR_BASE_P2 (REGNO (X), 1)
153.7450 -+#define REG_OK_FOR_INDEX_P(X)  REGNO_OK_FOR_INDEX_P2 (REGNO (X), 1)
153.7451 -+#endif
153.7452 -+
153.7453 -+#define LEGITIMATE_CONSTANT_P(X) 1
153.7454 -+
153.7455 -+/* Nios II has no mode dependent addresses.  */
153.7456 -+#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)
153.7457 -+
153.7458 -+/* Set if this has a weak declaration  */
153.7459 -+#define SYMBOL_FLAG_WEAK_DECL	(1 << SYMBOL_FLAG_MACH_DEP_SHIFT)
153.7460 -+#define SYMBOL_REF_WEAK_DECL_P(RTX) \
153.7461 -+  ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_WEAK_DECL) != 0)
153.7462 -+
153.7463 -+
153.7464 -+/* true if a symbol is both small and not weak. In this case, gp
153.7465 -+   relative access can be used */
153.7466 -+#define SYMBOL_REF_IN_NIOS2_SMALL_DATA_P(RTX) \
153.7467 -+   (SYMBOL_REF_SMALL_P(RTX) && !SYMBOL_REF_WEAK_DECL_P(RTX))
153.7468 -+
153.7469 -+/*****************
153.7470 -+ * Describing Relative Costs of Operations
153.7471 -+ *****************/
153.7472 -+
153.7473 -+#define SLOW_BYTE_ACCESS 1
153.7474 -+
153.7475 -+/* It is as good to call a constant function address as to call an address
153.7476 -+   kept in a register.
153.7477 -+   ??? Not true anymore really. Now that call cannot address full range
153.7478 -+   of memory callr may need to be used */
153.7479 -+
153.7480 -+#define NO_FUNCTION_CSE
153.7481 -+#define NO_RECURSIVE_FUNCTION_CSE
153.7482 -+
153.7483 -+
153.7484 -+
153.7485 -+/*****************************************
153.7486 -+ * Defining the Output Assembler Language
153.7487 -+ *****************************************/
153.7488 -+
153.7489 -+/* ------------------------------------------ *
153.7490 -+ * The Overall Framework of an Assembler File
153.7491 -+ * ------------------------------------------ */
153.7492 -+
153.7493 -+#define ASM_APP_ON "#APP\n"
153.7494 -+#define ASM_APP_OFF "#NO_APP\n"
153.7495 -+
153.7496 -+#define ASM_COMMENT_START "# "
153.7497 -+
153.7498 -+/* ------------------------------- *
153.7499 -+ * Output and Generation of Labels
153.7500 -+ * ------------------------------- */
153.7501 -+
153.7502 -+#define GLOBAL_ASM_OP "\t.global\t"
153.7503 -+
153.7504 -+
153.7505 -+/* -------------- *
153.7506 -+ * Output of Data
153.7507 -+ * -------------- */
153.7508 -+
153.7509 -+#define DWARF2_UNWIND_INFO 0
153.7510 -+
153.7511 -+
153.7512 -+/* -------------------------------- *
153.7513 -+ * Assembler Commands for Alignment
153.7514 -+ * -------------------------------- */
153.7515 -+
153.7516 -+#define ASM_OUTPUT_ALIGN(FILE, LOG) \
153.7517 -+  do { \
153.7518 -+    fprintf ((FILE), "%s%d\n", ALIGN_ASM_OP, (LOG)); \
153.7519 -+  } while (0)
153.7520 -+
153.7521 -+
153.7522 -+/* -------------------------------- *
153.7523 -+ * Output of Assembler Instructions
153.7524 -+ * -------------------------------- */
153.7525 -+
153.7526 -+#define REGISTER_NAMES \
153.7527 -+{ \
153.7528 -+    "zero", \
153.7529 -+    "at", \
153.7530 -+    "r2", \
153.7531 -+    "r3", \
153.7532 -+    "r4", \
153.7533 -+    "r5", \
153.7534 -+    "r6", \
153.7535 -+    "r7", \
153.7536 -+    "r8", \
153.7537 -+    "r9", \
153.7538 -+    "r10", \
153.7539 -+    "r11", \
153.7540 -+    "r12", \
153.7541 -+    "r13", \
153.7542 -+    "r14", \
153.7543 -+    "r15", \
153.7544 -+    "r16", \
153.7545 -+    "r17", \
153.7546 -+    "r18", \
153.7547 -+    "r19", \
153.7548 -+    "r20", \
153.7549 -+    "r21", \
153.7550 -+    "r22", \
153.7551 -+    "r23", \
153.7552 -+    "r24", \
153.7553 -+    "r25", \
153.7554 -+    "gp", \
153.7555 -+    "sp", \
153.7556 -+    "fp", \
153.7557 -+    "ta", \
153.7558 -+    "ba", \
153.7559 -+    "ra", \
153.7560 -+    "status", \
153.7561 -+    "estatus", \
153.7562 -+    "bstatus", \
153.7563 -+    "ipri", \
153.7564 -+    "ecause", \
153.7565 -+    "pc", \
153.7566 -+    "rap", \
153.7567 -+    "fake_fp", \
153.7568 -+    "fake_ap", \
153.7569 -+}
153.7570 -+
153.7571 -+#define ASM_OUTPUT_OPCODE(STREAM, PTR)\
153.7572 -+   (PTR) = asm_output_opcode (STREAM, PTR)
153.7573 -+
153.7574 -+#define PRINT_OPERAND(STREAM, X, CODE) \
153.7575 -+    nios2_print_operand (STREAM, X, CODE)
153.7576 -+
153.7577 -+#define PRINT_OPERAND_ADDRESS(STREAM, X) \
153.7578 -+    nios2_print_operand_address (STREAM, X)
153.7579 -+
153.7580 -+#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE)  \
153.7581 -+do { fputs (integer_asm_op (POINTER_SIZE / BITS_PER_UNIT, TRUE), FILE); \
153.7582 -+     fprintf (FILE, ".L%u\n", (unsigned) (VALUE));               \
153.7583 -+   } while (0)
153.7584 -+
153.7585 -+
153.7586 -+/* ------------ *
153.7587 -+ * Label Output
153.7588 -+ * ------------ */
153.7589 -+
153.7590 -+
153.7591 -+/* ---------------------------------------------------- *
153.7592 -+ * Dividing the Output into Sections (Texts, Data, ...)
153.7593 -+ * ---------------------------------------------------- */
153.7594 -+
153.7595 -+/* Output before read-only data.  */
153.7596 -+#define TEXT_SECTION_ASM_OP ("\t.section\t.text")
153.7597 -+
153.7598 -+/* Output before writable data.  */
153.7599 -+#define DATA_SECTION_ASM_OP ("\t.section\t.data")
153.7600 -+
153.7601 -+
153.7602 -+/* Default the definition of "small data" to 8 bytes. */
153.7603 -+/* ??? How come I can't use HOST_WIDE_INT here? */
153.7604 -+extern unsigned long nios2_section_threshold;
153.7605 -+#define NIOS2_DEFAULT_GVALUE 8
153.7606 -+
153.7607 -+
153.7608 -+
153.7609 -+/* This says how to output assembler code to declare an
153.7610 -+   uninitialized external linkage data object.  Under SVR4,
153.7611 -+   the linker seems to want the alignment of data objects
153.7612 -+   to depend on their types.  We do exactly that here.  */
153.7613 -+
153.7614 -+#undef COMMON_ASM_OP
153.7615 -+#define COMMON_ASM_OP	"\t.comm\t"
153.7616 -+
153.7617 -+#undef  ASM_OUTPUT_ALIGNED_COMMON
153.7618 -+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN)		\
153.7619 -+do 									\
153.7620 -+{									\
153.7621 -+  if ((SIZE) <= nios2_section_threshold)				\
153.7622 -+    {									\
153.7623 -+      named_section (0, ".sbss", 0);					\
153.7624 -+      (*targetm.asm_out.globalize_label) (FILE, NAME);			\
153.7625 -+      ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object");			\
153.7626 -+      if (!flag_inhibit_size_directive)					\
153.7627 -+	ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, SIZE);			\
153.7628 -+      ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT));	\
153.7629 -+      ASM_OUTPUT_LABEL(FILE, NAME);					\
153.7630 -+      ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1);			\
153.7631 -+    }									\
153.7632 -+  else									\
153.7633 -+    {									\
153.7634 -+      fprintf ((FILE), "%s", COMMON_ASM_OP);				\
153.7635 -+      assemble_name ((FILE), (NAME));					\
153.7636 -+      fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT);	\
153.7637 -+    }									\
153.7638 -+}									\
153.7639 -+while (0)
153.7640 -+
153.7641 -+
153.7642 -+/* This says how to output assembler code to declare an
153.7643 -+   uninitialized internal linkage data object.  Under SVR4,
153.7644 -+   the linker seems to want the alignment of data objects
153.7645 -+   to depend on their types.  We do exactly that here.  */
153.7646 -+
153.7647 -+#undef  ASM_OUTPUT_ALIGNED_LOCAL
153.7648 -+#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN)		\
153.7649 -+do {									\
153.7650 -+  if ((SIZE) <= nios2_section_threshold)				\
153.7651 -+    named_section (0, ".sbss", 0);					\
153.7652 -+  else									\
153.7653 -+    named_section (0, ".bss", 0);					\
153.7654 -+  ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object");			\
153.7655 -+  if (!flag_inhibit_size_directive)					\
153.7656 -+    ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, SIZE);			\
153.7657 -+  ASM_OUTPUT_ALIGN ((FILE), exact_log2((ALIGN) / BITS_PER_UNIT));	\
153.7658 -+  ASM_OUTPUT_LABEL(FILE, NAME);						\
153.7659 -+  ASM_OUTPUT_SKIP((FILE), (SIZE) ? (SIZE) : 1);				\
153.7660 -+} while (0)
153.7661 -+
153.7662 -+
153.7663 -+
153.7664 -+/***************************
153.7665 -+ * Miscellaneous Parameters
153.7666 -+ ***************************/
153.7667 -+
153.7668 -+#define MOVE_MAX 4
153.7669 -+
153.7670 -+#define Pmode SImode
153.7671 -+#define FUNCTION_MODE QImode
153.7672 -+
153.7673 -+#define CASE_VECTOR_MODE Pmode
153.7674 -+
153.7675 -+#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
153.7676 -+
153.7677 -+#define LOAD_EXTEND_OP(MODE) (ZERO_EXTEND)
153.7678 -+
153.7679 -+#define WORD_REGISTER_OPERATIONS
153.7680 ---- gcc-3.4.3/gcc/config/nios2/nios2.md
153.7681 -+++ gcc-3.4.3-nios2/gcc/config/nios2/nios2.md
153.7682 -@@ -0,0 +1,2078 @@
153.7683 -+;; Machine Description for Altera NIOS 2G NIOS2 version.
153.7684 -+;;    Copyright (C) 2003 Altera 
153.7685 -+;;    Contributed by Jonah Graham (jgraham@altera.com).
153.7686 -+;; 
153.7687 -+;; This file is part of GNU CC.
153.7688 -+;; 
153.7689 -+;; GNU CC is free software; you can redistribute it and/or modify
153.7690 -+;; it under the terms of the GNU General Public License as published by
153.7691 -+;; the Free Software Foundation; either version 2, or (at your option)
153.7692 -+;; any later version.
153.7693 -+;; 
153.7694 -+;; GNU CC is distributed in the hope that it will be useful,
153.7695 -+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
153.7696 -+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
153.7697 -+;; GNU General Public License for more details.
153.7698 -+;; 
153.7699 -+;; You should have received a copy of the GNU General Public License
153.7700 -+;; along with GNU CC; see the file COPYING.  If not, write to
153.7701 -+;; the Free Software Foundation, 59 Temple Place - Suite 330,
153.7702 -+;; Boston, MA 02111-1307, USA.  */
153.7703 -+
153.7704 -+
153.7705 -+
153.7706 -+;*****************************************************************************
153.7707 -+;*
153.7708 -+;* constants
153.7709 -+;*
153.7710 -+;*****************************************************************************
153.7711 -+(define_constants [
153.7712 -+  (GP_REGNO 26)
153.7713 -+  (SP_REGNO 27)
153.7714 -+  (FP_REGNO 28)
153.7715 -+  (RA_REGNO 31)
153.7716 -+  (RAP_REGNO 38)
153.7717 -+  (FIRST_RETVAL_REGNO 2)
153.7718 -+  (LAST_RETVAL_REGNO 3)
153.7719 -+  (FIRST_ARG_REGNO 4)
153.7720 -+  (LAST_ARG_REGNO 7)
153.7721 -+  (SC_REGNO 23)
153.7722 -+  (PC_REGNO 37)
153.7723 -+  (FAKE_FP_REGNO 39)
153.7724 -+  (FAKE_AP_REGNO 40)
153.7725 -+
153.7726 -+
153.7727 -+  (UNSPEC_BLOCKAGE 0)
153.7728 -+  (UNSPEC_LDBIO 1)
153.7729 -+  (UNSPEC_LDBUIO 2)
153.7730 -+  (UNSPEC_LDHIO 3)
153.7731 -+  (UNSPEC_LDHUIO 4)
153.7732 -+  (UNSPEC_LDWIO 5)
153.7733 -+  (UNSPEC_STBIO 6)
153.7734 -+  (UNSPEC_STHIO 7)
153.7735 -+  (UNSPEC_STWIO 8)
153.7736 -+  (UNSPEC_SYNC 9)
153.7737 -+  (UNSPEC_WRCTL 10)
153.7738 -+  (UNSPEC_RDCTL 11)
153.7739 -+  
153.7740 -+])
153.7741 -+
153.7742 -+
153.7743 -+
153.7744 -+;*****************************************************************************
153.7745 -+;*
153.7746 -+;* instruction scheduler
153.7747 -+;*
153.7748 -+;*****************************************************************************
153.7749 -+
153.7750 -+; No schedule info is currently available, using an assumption that no
153.7751 -+; instruction can use the results of the previous instruction without
153.7752 -+; incuring a stall.
153.7753 -+
153.7754 -+; length of an instruction (in bytes)
153.7755 -+(define_attr "length" "" (const_int 4))
153.7756 -+(define_attr "type" "unknown,complex,control,alu,cond_alu,st,ld,shift,mul,div,custom" (const_string "complex"))
153.7757 -+
153.7758 -+(define_asm_attributes
153.7759 -+ [(set_attr "length" "4")
153.7760 -+  (set_attr "type" "complex")])
153.7761 -+
153.7762 -+(define_automaton "nios2")
153.7763 -+(automata_option "v")
153.7764 -+;(automata_option "no-minimization")
153.7765 -+(automata_option "ndfa")
153.7766 -+
153.7767 -+; The nios2 pipeline is fairly straightforward for the fast model.
153.7768 -+; Every alu operation is pipelined so that an instruction can
153.7769 -+; be issued every cycle. However, there are still potential
153.7770 -+; stalls which this description tries to deal with.
153.7771 -+
153.7772 -+(define_cpu_unit "cpu" "nios2")
153.7773 -+
153.7774 -+(define_insn_reservation "complex" 1
153.7775 -+  (eq_attr "type" "complex")
153.7776 -+  "cpu")
153.7777 -+
153.7778 -+(define_insn_reservation "control" 1
153.7779 -+  (eq_attr "type" "control")
153.7780 -+  "cpu")
153.7781 -+
153.7782 -+(define_insn_reservation "alu" 1
153.7783 -+  (eq_attr "type" "alu")
153.7784 -+  "cpu")
153.7785 -+
153.7786 -+(define_insn_reservation "cond_alu" 1
153.7787 -+  (eq_attr "type" "cond_alu")
153.7788 -+  "cpu")
153.7789 -+
153.7790 -+(define_insn_reservation "st" 1
153.7791 -+  (eq_attr "type" "st")
153.7792 -+  "cpu")
153.7793 -+  
153.7794 -+(define_insn_reservation "custom" 1
153.7795 -+  (eq_attr "type" "custom")
153.7796 -+  "cpu")
153.7797 -+
153.7798 -+; shifts, muls and lds have three cycle latency
153.7799 -+(define_insn_reservation "ld" 3
153.7800 -+  (eq_attr "type" "ld")
153.7801 -+  "cpu")
153.7802 -+
153.7803 -+(define_insn_reservation "shift" 3
153.7804 -+  (eq_attr "type" "shift")
153.7805 -+  "cpu")
153.7806 -+
153.7807 -+(define_insn_reservation "mul" 3
153.7808 -+  (eq_attr "type" "mul")
153.7809 -+  "cpu")
153.7810 -+
153.7811 -+(define_insn_reservation "div" 1
153.7812 -+  (eq_attr "type" "div")
153.7813 -+  "cpu")
153.7814 -+
153.7815 -+
153.7816 -+;*****************************************************************************
153.7817 -+;*
153.7818 -+;* MOV Instructions
153.7819 -+;*
153.7820 -+;*****************************************************************************
153.7821 -+
153.7822 -+(define_expand "movqi"
153.7823 -+  [(set (match_operand:QI 0 "nonimmediate_operand" "")
153.7824 -+        (match_operand:QI 1 "general_operand" ""))]
153.7825 -+  ""
153.7826 -+{
153.7827 -+  if (nios2_emit_move_sequence (operands, QImode))
153.7828 -+    DONE;
153.7829 -+})
153.7830 -+
153.7831 -+(define_insn "movqi_internal"
153.7832 -+  [(set (match_operand:QI 0 "nonimmediate_operand" "=m, r,r, r")
153.7833 -+        (match_operand:QI 1 "general_operand"       "rM,m,rM,I"))]
153.7834 -+  "(register_operand (operands[0], QImode)
153.7835 -+    || register_operand (operands[1], QImode)
153.7836 -+    || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))"
153.7837 -+  "@
153.7838 -+    stb%o0\\t%z1, %0
153.7839 -+    ldbu%o1\\t%0, %1
153.7840 -+    mov\\t%0, %z1
153.7841 -+    movi\\t%0, %1"
153.7842 -+  [(set_attr "type" "st,ld,alu,alu")])
153.7843 -+
153.7844 -+(define_insn "ldbio"
153.7845 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.7846 -+	(unspec_volatile:SI [(const_int 0)] UNSPEC_LDBIO))
153.7847 -+   (use (match_operand:SI 1 "memory_operand" "m"))]
153.7848 -+  ""
153.7849 -+  "ldbio\\t%0, %1"
153.7850 -+  [(set_attr "type" "ld")])
153.7851 -+
153.7852 -+(define_insn "ldbuio"
153.7853 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.7854 -+	(unspec_volatile:SI [(const_int 0)] UNSPEC_LDBUIO))
153.7855 -+   (use (match_operand:SI 1 "memory_operand" "m"))]
153.7856 -+  ""
153.7857 -+  "ldbuio\\t%0, %1"
153.7858 -+  [(set_attr "type" "ld")])
153.7859 -+
153.7860 -+(define_insn "stbio"
153.7861 -+  [(set (match_operand:SI 0 "memory_operand" "=m")
153.7862 -+	(match_operand:SI 1 "register_operand"   "r"))
153.7863 -+   (unspec_volatile:SI [(const_int 0)] UNSPEC_STBIO)]
153.7864 -+  ""
153.7865 -+  "stbio\\t%z1, %0"
153.7866 -+  [(set_attr "type" "st")])
153.7867 -+
153.7868 -+
153.7869 -+(define_expand "movhi"
153.7870 -+  [(set (match_operand:HI 0 "nonimmediate_operand" "")
153.7871 -+        (match_operand:HI 1 "general_operand" ""))]
153.7872 -+  ""
153.7873 -+{
153.7874 -+  if (nios2_emit_move_sequence (operands, HImode))
153.7875 -+    DONE;
153.7876 -+})
153.7877 -+
153.7878 -+(define_insn "movhi_internal"
153.7879 -+  [(set (match_operand:HI 0 "nonimmediate_operand" "=m, r,r, r,r")
153.7880 -+        (match_operand:HI 1 "general_operand"       "rM,m,rM,I,J"))]
153.7881 -+  "(register_operand (operands[0], HImode)
153.7882 -+    || register_operand (operands[1], HImode)
153.7883 -+    || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))"
153.7884 -+  "@
153.7885 -+    sth%o0\\t%z1, %0
153.7886 -+    ldhu%o1\\t%0, %1
153.7887 -+    mov\\t%0, %z1
153.7888 -+    movi\\t%0, %1
153.7889 -+    movui\\t%0, %1"
153.7890 -+  [(set_attr "type" "st,ld,alu,alu,alu")])
153.7891 -+
153.7892 -+(define_insn "ldhio"
153.7893 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.7894 -+	(unspec_volatile:SI [(const_int 0)] UNSPEC_LDHIO))
153.7895 -+   (use (match_operand:SI 1 "memory_operand" "m"))]
153.7896 -+  ""
153.7897 -+  "ldhio\\t%0, %1"
153.7898 -+  [(set_attr "type" "ld")])
153.7899 -+
153.7900 -+(define_insn "ldhuio"
153.7901 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.7902 -+	(unspec_volatile:SI [(const_int 0)] UNSPEC_LDHUIO))
153.7903 -+   (use (match_operand:SI 1 "memory_operand" "m"))]
153.7904 -+  ""
153.7905 -+  "ldhuio\\t%0, %1"
153.7906 -+  [(set_attr "type" "ld")])
153.7907 -+
153.7908 -+(define_insn "sthio"
153.7909 -+  [(set (match_operand:SI 0 "memory_operand" "=m")
153.7910 -+	(match_operand:SI 1 "register_operand"   "r"))
153.7911 -+   (unspec_volatile:SI [(const_int 0)] UNSPEC_STHIO)]
153.7912 -+  ""
153.7913 -+  "sthio\\t%z1, %0"
153.7914 -+  [(set_attr "type" "st")])
153.7915 -+
153.7916 -+(define_expand "movsi"
153.7917 -+  [(set (match_operand:SI 0 "nonimmediate_operand" "")
153.7918 -+        (match_operand:SI 1 "general_operand" ""))]
153.7919 -+  ""
153.7920 -+{
153.7921 -+  if (nios2_emit_move_sequence (operands, SImode))
153.7922 -+    DONE;
153.7923 -+})
153.7924 -+
153.7925 -+(define_insn "movsi_internal"
153.7926 -+  [(set (match_operand:SI 0 "nonimmediate_operand" "=m, r,r, r,r,r,r")
153.7927 -+        (match_operand:SI 1 "general_operand"       "rM,m,rM,I,J,S,i"))]
153.7928 -+  "(register_operand (operands[0], SImode)
153.7929 -+    || register_operand (operands[1], SImode)
153.7930 -+    || (GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) == 0))"
153.7931 -+  "@
153.7932 -+    stw%o0\\t%z1, %0
153.7933 -+    ldw%o1\\t%0, %1
153.7934 -+    mov\\t%0, %z1
153.7935 -+    movi\\t%0, %1
153.7936 -+    movui\\t%0, %1
153.7937 -+    addi\\t%0, gp, %%gprel(%1)
153.7938 -+    movhi\\t%0, %H1\;addi\\t%0, %0, %L1"
153.7939 -+  [(set_attr "type" "st,ld,alu,alu,alu,alu,alu")])
153.7940 -+
153.7941 -+(define_insn "ldwio"
153.7942 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.7943 -+	(unspec_volatile:SI [(const_int 0)] UNSPEC_LDWIO))
153.7944 -+   (use (match_operand:SI 1 "memory_operand" "m"))]
153.7945 -+  ""
153.7946 -+  "ldwio\\t%0, %1"
153.7947 -+  [(set_attr "type" "ld")])
153.7948 -+
153.7949 -+(define_insn "stwio"
153.7950 -+  [(set (match_operand:SI 0 "memory_operand" "=m")
153.7951 -+	(match_operand:SI 1 "register_operand"   "r"))
153.7952 -+   (unspec_volatile:SI [(const_int 0)] UNSPEC_STWIO)]
153.7953 -+  ""
153.7954 -+  "stwio\\t%z1, %0"
153.7955 -+  [(set_attr "type" "st")])
153.7956 -+
153.7957 -+
153.7958 -+
153.7959 -+;*****************************************************************************
153.7960 -+;*
153.7961 -+;* zero extension
153.7962 -+;*
153.7963 -+;*****************************************************************************
153.7964 -+
153.7965 -+
153.7966 -+(define_insn "zero_extendhisi2"
153.7967 -+  [(set (match_operand:SI 0 "register_operand" "=r,r")
153.7968 -+	(zero_extend:SI (match_operand:HI 1 "nonimmediate_operand" "r,m")))]
153.7969 -+  ""
153.7970 -+  "@
153.7971 -+    andi\\t%0, %1, 0xffff
153.7972 -+    ldhu%o1\\t%0, %1"
153.7973 -+  [(set_attr "type"	"alu,ld")])
153.7974 -+
153.7975 -+(define_insn "zero_extendqihi2"
153.7976 -+  [(set (match_operand:HI 0 "register_operand" "=r,r")
153.7977 -+	(zero_extend:HI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
153.7978 -+  ""
153.7979 -+  "@
153.7980 -+    andi\\t%0, %1, 0xff
153.7981 -+    ldbu%o1\\t%0, %1"
153.7982 -+  [(set_attr "type"	"alu,ld")])
153.7983 -+
153.7984 -+(define_insn "zero_extendqisi2"
153.7985 -+  [(set (match_operand:SI 0 "register_operand" "=r,r")
153.7986 -+	(zero_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,m")))]
153.7987 -+  ""
153.7988 -+  "@
153.7989 -+    andi\\t%0, %1, 0xff
153.7990 -+    ldbu%o1\\t%0, %1"
153.7991 -+  [(set_attr "type"	"alu,ld")])
153.7992 -+
153.7993 -+
153.7994 -+
153.7995 -+;*****************************************************************************
153.7996 -+;*
153.7997 -+;* sign extension
153.7998 -+;*
153.7999 -+;*****************************************************************************
153.8000 -+
153.8001 -+(define_expand "extendhisi2"
153.8002 -+  [(set (match_operand:SI 0 "register_operand" "")
153.8003 -+	(sign_extend:SI (match_operand:HI 1 "nonimmediate_operand" "")))]
153.8004 -+  ""
153.8005 -+{
153.8006 -+  if (optimize && GET_CODE (operands[1]) == MEM)
153.8007 -+    operands[1] = force_not_mem (operands[1]);
153.8008 -+
153.8009 -+  if (GET_CODE (operands[1]) != MEM)
153.8010 -+    {
153.8011 -+      rtx op1   = gen_lowpart (SImode, operands[1]);
153.8012 -+      rtx temp  = gen_reg_rtx (SImode);
153.8013 -+      rtx shift = GEN_INT (16);
153.8014 -+
153.8015 -+      emit_insn (gen_ashlsi3 (temp, op1, shift));
153.8016 -+      emit_insn (gen_ashrsi3 (operands[0], temp, shift));
153.8017 -+      DONE;
153.8018 -+    }
153.8019 -+})
153.8020 -+
153.8021 -+(define_insn "extendhisi2_internal"
153.8022 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8023 -+	(sign_extend:SI (match_operand:HI 1 "memory_operand" "m")))]
153.8024 -+  ""
153.8025 -+  "ldh%o1\\t%0, %1"
153.8026 -+  [(set_attr "type"	"ld")])
153.8027 -+
153.8028 -+(define_expand "extendqihi2"
153.8029 -+  [(set (match_operand:HI 0 "register_operand" "")
153.8030 -+	(sign_extend:HI (match_operand:QI 1 "nonimmediate_operand" "")))]
153.8031 -+  ""
153.8032 -+{
153.8033 -+  if (optimize && GET_CODE (operands[1]) == MEM)
153.8034 -+    operands[1] = force_not_mem (operands[1]);
153.8035 -+
153.8036 -+  if (GET_CODE (operands[1]) != MEM)
153.8037 -+    {
153.8038 -+      rtx op0   = gen_lowpart (SImode, operands[0]);
153.8039 -+      rtx op1   = gen_lowpart (SImode, operands[1]);
153.8040 -+      rtx temp  = gen_reg_rtx (SImode);
153.8041 -+      rtx shift = GEN_INT (24);
153.8042 -+
153.8043 -+      emit_insn (gen_ashlsi3 (temp, op1, shift));
153.8044 -+      emit_insn (gen_ashrsi3 (op0, temp, shift));
153.8045 -+      DONE;
153.8046 -+    }
153.8047 -+})
153.8048 -+
153.8049 -+(define_insn "extendqihi2_internal"
153.8050 -+  [(set (match_operand:HI 0 "register_operand" "=r")
153.8051 -+	(sign_extend:HI (match_operand:QI 1 "memory_operand" "m")))]
153.8052 -+  ""
153.8053 -+  "ldb%o1\\t%0, %1"
153.8054 -+  [(set_attr "type"	"ld")])
153.8055 -+
153.8056 -+
153.8057 -+(define_expand "extendqisi2"
153.8058 -+  [(set (match_operand:SI 0 "register_operand" "")
153.8059 -+	(sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "")))]
153.8060 -+  ""
153.8061 -+{
153.8062 -+  if (optimize && GET_CODE (operands[1]) == MEM)
153.8063 -+    operands[1] = force_not_mem (operands[1]);
153.8064 -+
153.8065 -+  if (GET_CODE (operands[1]) != MEM)
153.8066 -+    {
153.8067 -+      rtx op1   = gen_lowpart (SImode, operands[1]);
153.8068 -+      rtx temp  = gen_reg_rtx (SImode);
153.8069 -+      rtx shift = GEN_INT (24);
153.8070 -+
153.8071 -+      emit_insn (gen_ashlsi3 (temp, op1, shift));
153.8072 -+      emit_insn (gen_ashrsi3 (operands[0], temp, shift));
153.8073 -+      DONE;
153.8074 -+    }
153.8075 -+})
153.8076 -+
153.8077 -+(define_insn "extendqisi2_insn"
153.8078 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8079 -+	(sign_extend:SI (match_operand:QI 1 "memory_operand" "m")))]
153.8080 -+  ""
153.8081 -+  "ldb%o1\\t%0, %1"
153.8082 -+  [(set_attr "type"	"ld")])
153.8083 -+
153.8084 -+
153.8085 -+
153.8086 -+;*****************************************************************************
153.8087 -+;*
153.8088 -+;* Arithmetic Operations
153.8089 -+;*
153.8090 -+;*****************************************************************************
153.8091 -+
153.8092 -+(define_insn "addsi3"
153.8093 -+  [(set (match_operand:SI 0 "register_operand"          "=r,r")
153.8094 -+        (plus:SI (match_operand:SI 1 "register_operand" "%r,r")
153.8095 -+                 (match_operand:SI 2 "arith_operand"     "r,I")))]
153.8096 -+  ""
153.8097 -+  "add%i2\\t%0, %1, %z2"
153.8098 -+  [(set_attr "type" "alu")])
153.8099 -+
153.8100 -+(define_insn "subsi3"
153.8101 -+  [(set (match_operand:SI 0 "register_operand"           "=r")
153.8102 -+        (minus:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8103 -+                  (match_operand:SI 2 "register_operand"  "r")))]
153.8104 -+  ""
153.8105 -+  "sub\\t%0, %z1, %2"
153.8106 -+  [(set_attr "type" "alu")])
153.8107 -+
153.8108 -+(define_insn "mulsi3"
153.8109 -+  [(set (match_operand:SI 0 "register_operand"            "=r,r")
153.8110 -+        (mult:SI (match_operand:SI 1 "register_operand"    "r,r")
153.8111 -+                 (match_operand:SI 2 "arith_operand"       "r,I")))]
153.8112 -+  "TARGET_HAS_MUL"
153.8113 -+  "mul%i2\\t%0, %1, %z2"
153.8114 -+  [(set_attr "type" "mul")])
153.8115 -+
153.8116 -+(define_expand "divsi3"
153.8117 -+  [(set (match_operand:SI 0 "register_operand"            "=r")
153.8118 -+        (div:SI (match_operand:SI 1 "register_operand"     "r")
153.8119 -+                (match_operand:SI 2 "register_operand"     "r")))]
153.8120 -+  ""
153.8121 -+{
153.8122 -+  if (!TARGET_HAS_DIV)
153.8123 -+    {
153.8124 -+      if (!TARGET_FAST_SW_DIV)
153.8125 -+	FAIL;
153.8126 -+      else
153.8127 -+        {
153.8128 -+	  if (nios2_emit_expensive_div (operands, SImode))
153.8129 -+	    DONE;
153.8130 -+	}
153.8131 -+    }
153.8132 -+})
153.8133 -+
153.8134 -+(define_insn "divsi3_insn"
153.8135 -+  [(set (match_operand:SI 0 "register_operand"            "=r")
153.8136 -+        (div:SI (match_operand:SI 1 "register_operand"     "r")
153.8137 -+                (match_operand:SI 2 "register_operand"     "r")))]
153.8138 -+  "TARGET_HAS_DIV"
153.8139 -+  "div\\t%0, %1, %2"
153.8140 -+  [(set_attr "type" "div")])
153.8141 -+
153.8142 -+(define_insn "udivsi3"
153.8143 -+  [(set (match_operand:SI 0 "register_operand"            "=r")
153.8144 -+        (udiv:SI (match_operand:SI 1 "register_operand"     "r")
153.8145 -+                (match_operand:SI 2 "register_operand"     "r")))]
153.8146 -+  "TARGET_HAS_DIV"
153.8147 -+  "divu\\t%0, %1, %2"
153.8148 -+  [(set_attr "type" "div")])
153.8149 -+
153.8150 -+(define_insn "smulsi3_highpart"
153.8151 -+  [(set (match_operand:SI 0 "register_operand"                            "=r")
153.8152 -+	(truncate:SI
153.8153 -+	 (lshiftrt:DI
153.8154 -+	  (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand"  "r"))
153.8155 -+		   (sign_extend:DI (match_operand:SI 2 "register_operand"  "r")))
153.8156 -+	  (const_int 32))))]
153.8157 -+  "TARGET_HAS_MULX"
153.8158 -+  "mulxss\\t%0, %1, %2"
153.8159 -+  [(set_attr "type" "mul")])
153.8160 -+
153.8161 -+(define_insn "umulsi3_highpart"
153.8162 -+  [(set (match_operand:SI 0 "register_operand"                            "=r")
153.8163 -+	(truncate:SI
153.8164 -+	 (lshiftrt:DI
153.8165 -+	  (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand"  "r"))
153.8166 -+		   (zero_extend:DI (match_operand:SI 2 "register_operand"  "r")))
153.8167 -+	  (const_int 32))))]
153.8168 -+  "TARGET_HAS_MULX"
153.8169 -+  "mulxuu\\t%0, %1, %2"
153.8170 -+  [(set_attr "type" "mul")])
153.8171 -+
153.8172 -+
153.8173 -+(define_expand "mulsidi3"
153.8174 -+    [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 0)
153.8175 -+	  (mult:SI (match_operand:SI 1 "register_operand" "")
153.8176 -+		   (match_operand:SI 2 "register_operand" "")))
153.8177 -+     (set (subreg:SI (match_dup 0) 4)
153.8178 -+	  (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (match_dup 1))
153.8179 -+					     (sign_extend:DI (match_dup 2)))
153.8180 -+				    (const_int 32))))]
153.8181 -+  "TARGET_HAS_MULX"
153.8182 -+  "")
153.8183 -+
153.8184 -+(define_expand "umulsidi3"
153.8185 -+    [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 0)
153.8186 -+	  (mult:SI (match_operand:SI 1 "register_operand" "")
153.8187 -+		   (match_operand:SI 2 "register_operand" "")))
153.8188 -+     (set (subreg:SI (match_dup 0) 4)
153.8189 -+	  (truncate:SI (lshiftrt:DI (mult:DI (zero_extend:DI (match_dup 1))
153.8190 -+					     (zero_extend:DI (match_dup 2)))
153.8191 -+				    (const_int 32))))]
153.8192 -+  "TARGET_HAS_MULX"
153.8193 -+  "")
153.8194 -+
153.8195 -+
153.8196 -+
153.8197 -+;*****************************************************************************
153.8198 -+;*
153.8199 -+;* Negate and ones complement
153.8200 -+;*
153.8201 -+;*****************************************************************************
153.8202 -+
153.8203 -+(define_insn "negsi2"
153.8204 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8205 -+	(neg:SI (match_operand:SI 1 "register_operand" "r")))]
153.8206 -+  ""
153.8207 -+{
153.8208 -+  operands[2] = const0_rtx;
153.8209 -+  return "sub\\t%0, %z2, %1";
153.8210 -+}
153.8211 -+  [(set_attr "type" "alu")])
153.8212 -+
153.8213 -+(define_insn "one_cmplsi2"
153.8214 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8215 -+	(not:SI (match_operand:SI 1 "register_operand" "r")))]
153.8216 -+  ""
153.8217 -+{
153.8218 -+  operands[2] = const0_rtx;
153.8219 -+  return "nor\\t%0, %z2, %1";
153.8220 -+}
153.8221 -+  [(set_attr "type" "alu")])
153.8222 -+
153.8223 -+
153.8224 -+
153.8225 -+; Logical Operantions
153.8226 -+
153.8227 -+(define_insn "andsi3"
153.8228 -+  [(set (match_operand:SI 0 "register_operand"         "=r, r,r")
153.8229 -+        (and:SI (match_operand:SI 1 "register_operand" "%r, r,r")
153.8230 -+                (match_operand:SI 2 "logical_operand"   "rM,J,K")))]
153.8231 -+  ""
153.8232 -+  "@
153.8233 -+    and\\t%0, %1, %z2
153.8234 -+    and%i2\\t%0, %1, %2
153.8235 -+    andh%i2\\t%0, %1, %U2"
153.8236 -+  [(set_attr "type" "alu")])
153.8237 -+
153.8238 -+(define_insn "iorsi3"
153.8239 -+  [(set (match_operand:SI 0 "register_operand"          "=r, r,r")
153.8240 -+        (ior:SI (match_operand:SI 1 "register_operand"  "%r, r,r")
153.8241 -+                (match_operand:SI 2 "logical_operand"    "rM,J,K")))]
153.8242 -+  ""
153.8243 -+  "@
153.8244 -+    or\\t%0, %1, %z2
153.8245 -+    or%i2\\t%0, %1, %2
153.8246 -+    orh%i2\\t%0, %1, %U2"
153.8247 -+  [(set_attr "type" "alu")])
153.8248 -+
153.8249 -+(define_insn "*norsi3"
153.8250 -+  [(set (match_operand:SI 0 "register_operand"                  "=r")
153.8251 -+        (and:SI (not:SI (match_operand:SI 1 "register_operand"  "%r"))
153.8252 -+                (not:SI (match_operand:SI 2 "reg_or_0_operand"   "rM"))))]
153.8253 -+  ""
153.8254 -+  "nor\\t%0, %1, %z2"
153.8255 -+  [(set_attr "type" "alu")])
153.8256 -+
153.8257 -+(define_insn "xorsi3"
153.8258 -+  [(set (match_operand:SI 0 "register_operand"          "=r, r,r")
153.8259 -+        (xor:SI (match_operand:SI 1 "register_operand"  "%r, r,r")
153.8260 -+                (match_operand:SI 2 "logical_operand"    "rM,J,K")))]
153.8261 -+  ""
153.8262 -+  "@
153.8263 -+    xor\\t%0, %1, %z2
153.8264 -+    xor%i2\\t%0, %1, %2
153.8265 -+    xorh%i2\\t%0, %1, %U2"
153.8266 -+  [(set_attr "type" "alu")])
153.8267 -+
153.8268 -+
153.8269 -+
153.8270 -+;*****************************************************************************
153.8271 -+;*
153.8272 -+;* Shifts
153.8273 -+;*
153.8274 -+;*****************************************************************************
153.8275 -+
153.8276 -+(define_insn "ashlsi3"
153.8277 -+  [(set (match_operand:SI 0 "register_operand"           "=r,r")
153.8278 -+	(ashift:SI (match_operand:SI 1 "register_operand" "r,r")
153.8279 -+		   (match_operand:SI 2 "shift_operand"    "r,L")))]
153.8280 -+  ""
153.8281 -+  "sll%i2\\t%0, %1, %z2"
153.8282 -+  [(set_attr "type" "shift")])
153.8283 -+
153.8284 -+(define_insn "ashrsi3"
153.8285 -+  [(set (match_operand:SI 0 "register_operand"             "=r,r")
153.8286 -+	(ashiftrt:SI (match_operand:SI 1 "register_operand" "r,r")
153.8287 -+		     (match_operand:SI 2 "shift_operand"    "r,L")))]
153.8288 -+  ""
153.8289 -+  "sra%i2\\t%0, %1, %z2"
153.8290 -+  [(set_attr "type" "shift")])
153.8291 -+
153.8292 -+(define_insn "lshrsi3"
153.8293 -+  [(set (match_operand:SI 0 "register_operand"             "=r,r")
153.8294 -+	(lshiftrt:SI (match_operand:SI 1 "register_operand" "r,r")
153.8295 -+		     (match_operand:SI 2 "shift_operand"    "r,L")))]
153.8296 -+  ""
153.8297 -+  "srl%i2\\t%0, %1, %z2"
153.8298 -+  [(set_attr "type" "shift")])
153.8299 -+
153.8300 -+(define_insn "rotlsi3"
153.8301 -+  [(set (match_operand:SI 0 "register_operand"           "=r,r")
153.8302 -+	(rotate:SI (match_operand:SI 1 "register_operand" "r,r")
153.8303 -+		   (match_operand:SI 2 "shift_operand"    "r,L")))]
153.8304 -+  ""
153.8305 -+  "rol%i2\\t%0, %1, %z2"
153.8306 -+  [(set_attr "type" "shift")])
153.8307 -+
153.8308 -+(define_insn "rotrsi3"
153.8309 -+  [(set (match_operand:SI 0 "register_operand"             "=r,r")
153.8310 -+	(rotatert:SI (match_operand:SI 1 "register_operand" "r,r")
153.8311 -+		     (match_operand:SI 2 "register_operand" "r,r")))]
153.8312 -+  ""
153.8313 -+  "ror\\t%0, %1, %2"
153.8314 -+  [(set_attr "type" "shift")])
153.8315 -+
153.8316 -+(define_insn "*shift_mul_constants"
153.8317 -+  [(set (match_operand:SI 0 "register_operand"                     "=r")
153.8318 -+	(ashift:SI (mult:SI (match_operand:SI 1 "register_operand"  "r")
153.8319 -+		            (match_operand:SI 2 "const_int_operand" "I"))
153.8320 -+		   (match_operand:SI 3          "const_int_operand" "I")))]
153.8321 -+  "TARGET_HAS_MUL && SMALL_INT (INTVAL (operands[2]) << INTVAL (operands[3]))"
153.8322 -+{
153.8323 -+  HOST_WIDE_INT mul = INTVAL (operands[2]) << INTVAL (operands[3]);
153.8324 -+  rtx ops[3];
153.8325 -+  
153.8326 -+  ops[0] = operands[0];
153.8327 -+  ops[1] = operands[1];
153.8328 -+  ops[2] = GEN_INT (mul);
153.8329 -+  
153.8330 -+  output_asm_insn ("muli\t%0, %1, %2", ops);
153.8331 -+  return "";
153.8332 -+}
153.8333 -+  [(set_attr "type" "mul")])
153.8334 -+
153.8335 -+
153.8336 -+
153.8337 -+
153.8338 -+;*****************************************************************************
153.8339 -+;*
153.8340 -+;* Prologue, Epilogue and Return
153.8341 -+;*
153.8342 -+;*****************************************************************************
153.8343 -+
153.8344 -+(define_expand "prologue"
153.8345 -+  [(const_int 1)]
153.8346 -+  ""
153.8347 -+{
153.8348 -+  expand_prologue ();
153.8349 -+  DONE;
153.8350 -+})
153.8351 -+
153.8352 -+(define_expand "epilogue"
153.8353 -+  [(return)]
153.8354 -+  ""
153.8355 -+{
153.8356 -+  expand_epilogue (false);
153.8357 -+  DONE;
153.8358 -+})
153.8359 -+
153.8360 -+(define_expand "sibcall_epilogue"
153.8361 -+  [(return)]
153.8362 -+  ""
153.8363 -+{
153.8364 -+  expand_epilogue (true);
153.8365 -+  DONE;
153.8366 -+})
153.8367 -+
153.8368 -+(define_insn "return"
153.8369 -+  [(return)]
153.8370 -+  "reload_completed && nios2_can_use_return_insn ()"
153.8371 -+  "ret\\t"
153.8372 -+)
153.8373 -+
153.8374 -+(define_insn "return_from_epilogue"
153.8375 -+  [(use (match_operand 0 "pmode_register_operand" ""))
153.8376 -+   (return)]
153.8377 -+  "reload_completed"
153.8378 -+  "ret\\t"
153.8379 -+)
153.8380 -+
153.8381 -+;; Block any insns from being moved before this point, since the
153.8382 -+;; profiling call to mcount can use various registers that aren't
153.8383 -+;; saved or used to pass arguments.
153.8384 -+
153.8385 -+(define_insn "blockage"
153.8386 -+  [(unspec_volatile [(const_int 0)] UNSPEC_BLOCKAGE)]
153.8387 -+  ""
153.8388 -+  ""
153.8389 -+  [(set_attr "type" "unknown")
153.8390 -+   (set_attr "length" "0")])
153.8391 -+
153.8392 -+
153.8393 -+
153.8394 -+;*****************************************************************************
153.8395 -+;*
153.8396 -+;* Jumps and Calls
153.8397 -+;*
153.8398 -+;*****************************************************************************
153.8399 -+
153.8400 -+(define_insn "indirect_jump"
153.8401 -+  [(set (pc) (match_operand:SI 0 "register_operand" "r"))]
153.8402 -+  ""
153.8403 -+  "jmp\\t%0"
153.8404 -+  [(set_attr "type" "control")])
153.8405 -+
153.8406 -+(define_insn "jump"
153.8407 -+  [(set (pc)
153.8408 -+        (label_ref (match_operand 0 "" "")))]
153.8409 -+  ""
153.8410 -+  "br\\t%0"
153.8411 -+  [(set_attr "type" "control")])
153.8412 -+
153.8413 -+
153.8414 -+(define_insn "indirect_call"
153.8415 -+  [(call (mem:QI (match_operand:SI 0 "register_operand" "r"))
153.8416 -+         (match_operand 1 "" ""))
153.8417 -+   (clobber (reg:SI RA_REGNO))]
153.8418 -+  ""
153.8419 -+  "callr\\t%0"
153.8420 -+  [(set_attr "type" "control")])
153.8421 -+
153.8422 -+(define_insn "indirect_call_value"
153.8423 -+  [(set (match_operand 0 "" "")
153.8424 -+        (call (mem:QI (match_operand:SI 1 "register_operand" "r"))
153.8425 -+              (match_operand 2 "" "")))
153.8426 -+   (clobber (reg:SI RA_REGNO))]
153.8427 -+  ""
153.8428 -+  "callr\\t%1"
153.8429 -+)
153.8430 -+
153.8431 -+(define_expand "call"
153.8432 -+  [(parallel [(call (match_operand 0 "" "")
153.8433 -+                    (match_operand 1 "" ""))
153.8434 -+              (clobber (reg:SI RA_REGNO))])]
153.8435 -+  ""
153.8436 -+  "")
153.8437 -+
153.8438 -+(define_expand "call_value"
153.8439 -+  [(parallel [(set (match_operand 0 "" "")
153.8440 -+                   (call (match_operand 1 "" "")
153.8441 -+                         (match_operand 2 "" "")))
153.8442 -+              (clobber (reg:SI RA_REGNO))])]
153.8443 -+  ""
153.8444 -+  "")
153.8445 -+
153.8446 -+(define_insn "*call"
153.8447 -+  [(call (mem:QI (match_operand:SI 0 "immediate_operand" "i"))
153.8448 -+         (match_operand 1 "" ""))
153.8449 -+   (clobber (match_operand:SI 2 "register_operand" "=r"))]
153.8450 -+  ""
153.8451 -+  "call\\t%0"
153.8452 -+  [(set_attr "type" "control")])
153.8453 -+
153.8454 -+(define_insn "*call_value"
153.8455 -+  [(set (match_operand 0 "" "")
153.8456 -+        (call (mem:QI (match_operand:SI 1 "immediate_operand" "i"))
153.8457 -+              (match_operand 2 "" "")))
153.8458 -+   (clobber (match_operand:SI 3 "register_operand" "=r"))]
153.8459 -+  ""
153.8460 -+  "call\\t%1"
153.8461 -+  [(set_attr "type" "control")])
153.8462 -+
153.8463 -+(define_expand "sibcall"
153.8464 -+  [(parallel [(call (match_operand 0 "" "")
153.8465 -+		    (match_operand 1 "" ""))
153.8466 -+	      (return)
153.8467 -+	      (use (match_operand 2 "" ""))])]
153.8468 -+  ""
153.8469 -+  {
153.8470 -+    XEXP (operands[0], 0) = copy_to_mode_reg (SImode, XEXP (operands[0], 0));
153.8471 -+
153.8472 -+    if (operands[2] == NULL_RTX)
153.8473 -+      operands[2] = const0_rtx;
153.8474 -+  }
153.8475 -+)
153.8476 -+
153.8477 -+(define_expand "sibcall_value"
153.8478 -+  [(parallel [(set (match_operand 0 "" "")
153.8479 -+		   (call (match_operand 1 "" "")
153.8480 -+			 (match_operand 2 "" "")))
153.8481 -+	      (return)
153.8482 -+	      (use (match_operand 3 "" ""))])]
153.8483 -+  ""
153.8484 -+  {
153.8485 -+    XEXP (operands[1], 0) = copy_to_mode_reg (SImode, XEXP (operands[1], 0));
153.8486 -+
153.8487 -+    if (operands[3] == NULL_RTX)
153.8488 -+      operands[3] = const0_rtx;
153.8489 -+  }
153.8490 -+)
153.8491 -+
153.8492 -+(define_insn "sibcall_insn"
153.8493 -+ [(call (mem:QI (match_operand:SI 0 "register_operand" "r"))
153.8494 -+	(match_operand 1 "" ""))
153.8495 -+  (return)
153.8496 -+  (use (match_operand 2 "" ""))]
153.8497 -+  ""
153.8498 -+  "jmp\\t%0"
153.8499 -+)
153.8500 -+
153.8501 -+(define_insn "sibcall_value_insn"
153.8502 -+ [(set (match_operand 0 "register_operand" "")
153.8503 -+       (call (mem:QI (match_operand:SI 1 "register_operand" "r"))
153.8504 -+	     (match_operand 2 "" "")))
153.8505 -+  (return)
153.8506 -+  (use (match_operand 3 "" ""))]
153.8507 -+  ""
153.8508 -+  "jmp\\t%1"
153.8509 -+)
153.8510 -+
153.8511 -+
153.8512 -+
153.8513 -+
153.8514 -+(define_expand "tablejump"
153.8515 -+  [(parallel [(set (pc) (match_operand 0 "register_operand" "r"))
153.8516 -+              (use (label_ref (match_operand 1 "" "")))])]
153.8517 -+  ""
153.8518 -+  ""
153.8519 -+)
153.8520 -+
153.8521 -+(define_insn "*tablejump"
153.8522 -+  [(set (pc)
153.8523 -+	(match_operand:SI 0 "register_operand" "r"))
153.8524 -+   (use (label_ref (match_operand 1 "" "")))]
153.8525 -+  ""
153.8526 -+  "jmp\\t%0"
153.8527 -+  [(set_attr "type" "control")])
153.8528 -+
153.8529 -+
153.8530 -+
153.8531 -+;*****************************************************************************
153.8532 -+;*
153.8533 -+;* Comparisons
153.8534 -+;*
153.8535 -+;*****************************************************************************
153.8536 -+;; Flow here is rather complex (based on MIPS):
153.8537 -+;;
153.8538 -+;;  1)	The cmp{si,di,sf,df} routine is called.  It deposits the
153.8539 -+;;	arguments into the branch_cmp array, and the type into
153.8540 -+;;	branch_type.  No RTL is generated.
153.8541 -+;;
153.8542 -+;;  2)	The appropriate branch define_expand is called, which then
153.8543 -+;;	creates the appropriate RTL for the comparison and branch.
153.8544 -+;;	Different CC modes are used, based on what type of branch is
153.8545 -+;;	done, so that we can constrain things appropriately.  There
153.8546 -+;;	are assumptions in the rest of GCC that break if we fold the
153.8547 -+;;	operands into the branchs for integer operations, and use cc0
153.8548 -+;;	for floating point, so we use the fp status register instead.
153.8549 -+;;	If needed, an appropriate temporary is created to hold the
153.8550 -+;;	of the integer compare.
153.8551 -+
153.8552 -+(define_expand "cmpsi"
153.8553 -+  [(set (cc0)
153.8554 -+	(compare:CC (match_operand:SI 0 "register_operand" "")
153.8555 -+		    (match_operand:SI 1 "arith_operand" "")))]
153.8556 -+  ""
153.8557 -+{
153.8558 -+  branch_cmp[0] = operands[0];
153.8559 -+  branch_cmp[1] = operands[1];
153.8560 -+  branch_type = CMP_SI;
153.8561 -+  DONE;
153.8562 -+})
153.8563 -+
153.8564 -+(define_expand "tstsi"
153.8565 -+  [(set (cc0)
153.8566 -+	(match_operand:SI 0 "register_operand" ""))]
153.8567 -+  ""
153.8568 -+{
153.8569 -+  branch_cmp[0] = operands[0];
153.8570 -+  branch_cmp[1] = const0_rtx;
153.8571 -+  branch_type = CMP_SI;
153.8572 -+  DONE;
153.8573 -+})
153.8574 -+
153.8575 -+
153.8576 -+;*****************************************************************************
153.8577 -+;*
153.8578 -+;* setting a register from a comparison
153.8579 -+;*
153.8580 -+;*****************************************************************************
153.8581 -+
153.8582 -+(define_expand "seq"
153.8583 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8584 -+	(eq:SI (match_dup 1)
153.8585 -+	       (match_dup 2)))]
153.8586 -+  ""
153.8587 -+{
153.8588 -+  if (branch_type != CMP_SI)
153.8589 -+    FAIL;
153.8590 -+
153.8591 -+  /* set up operands from compare.  */
153.8592 -+  operands[1] = branch_cmp[0];
153.8593 -+  operands[2] = branch_cmp[1];
153.8594 -+
153.8595 -+  gen_int_relational (EQ, operands[0], operands[1], operands[2], NULL_RTX);
153.8596 -+  DONE;
153.8597 -+})
153.8598 -+
153.8599 -+
153.8600 -+(define_insn "*seq"
153.8601 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8602 -+	(eq:SI (match_operand:SI 1 "reg_or_0_operand" "%rM")
153.8603 -+	       (match_operand:SI 2 "arith_operand"     "rI")))]
153.8604 -+  ""
153.8605 -+  "cmpeq%i2\\t%0, %z1, %z2"
153.8606 -+  [(set_attr "type" "alu")])
153.8607 -+
153.8608 -+
153.8609 -+(define_expand "sne"
153.8610 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8611 -+	(ne:SI (match_dup 1)
153.8612 -+	       (match_dup 2)))]
153.8613 -+  ""
153.8614 -+{
153.8615 -+  if (branch_type != CMP_SI)
153.8616 -+    FAIL;
153.8617 -+
153.8618 -+  /* set up operands from compare.  */
153.8619 -+  operands[1] = branch_cmp[0];
153.8620 -+  operands[2] = branch_cmp[1];
153.8621 -+
153.8622 -+  gen_int_relational (NE, operands[0], operands[1], operands[2], NULL_RTX);
153.8623 -+  DONE;
153.8624 -+})
153.8625 -+
153.8626 -+
153.8627 -+(define_insn "*sne"
153.8628 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8629 -+	(ne:SI (match_operand:SI 1 "reg_or_0_operand" "%rM")
153.8630 -+	       (match_operand:SI 2 "arith_operand"     "rI")))]
153.8631 -+  ""
153.8632 -+  "cmpne%i2\\t%0, %z1, %z2"
153.8633 -+  [(set_attr "type" "alu")])
153.8634 -+
153.8635 -+
153.8636 -+(define_expand "sgt"
153.8637 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8638 -+	(gt:SI (match_dup 1)
153.8639 -+	       (match_dup 2)))]
153.8640 -+  ""
153.8641 -+{
153.8642 -+  if (branch_type != CMP_SI)
153.8643 -+    FAIL;
153.8644 -+
153.8645 -+  /* set up operands from compare.  */
153.8646 -+  operands[1] = branch_cmp[0];
153.8647 -+  operands[2] = branch_cmp[1];
153.8648 -+
153.8649 -+  gen_int_relational (GT, operands[0], operands[1], operands[2], NULL_RTX);
153.8650 -+  DONE;
153.8651 -+})
153.8652 -+
153.8653 -+
153.8654 -+(define_insn "*sgt"
153.8655 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8656 -+	(gt:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8657 -+	       (match_operand:SI 2 "reg_or_0_operand"  "rM")))]
153.8658 -+  ""
153.8659 -+  "cmplt\\t%0, %z2, %z1"
153.8660 -+  [(set_attr "type" "alu")])
153.8661 -+
153.8662 -+
153.8663 -+(define_expand "sge"
153.8664 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8665 -+	(ge:SI (match_dup 1)
153.8666 -+	       (match_dup 2)))]
153.8667 -+  ""
153.8668 -+{
153.8669 -+  if (branch_type != CMP_SI)
153.8670 -+    FAIL;
153.8671 -+
153.8672 -+  /* set up operands from compare.  */
153.8673 -+  operands[1] = branch_cmp[0];
153.8674 -+  operands[2] = branch_cmp[1];
153.8675 -+
153.8676 -+  gen_int_relational (GE, operands[0], operands[1], operands[2], NULL_RTX);
153.8677 -+  DONE;
153.8678 -+})
153.8679 -+
153.8680 -+
153.8681 -+(define_insn "*sge"
153.8682 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8683 -+	(ge:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8684 -+	       (match_operand:SI 2 "arith_operand"     "rI")))]
153.8685 -+  ""
153.8686 -+  "cmpge%i2\\t%0, %z1, %z2"
153.8687 -+  [(set_attr "type" "alu")])
153.8688 -+
153.8689 -+(define_expand "sle"
153.8690 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8691 -+	(le:SI (match_dup 1)
153.8692 -+	       (match_dup 2)))]
153.8693 -+  ""
153.8694 -+{
153.8695 -+  if (branch_type != CMP_SI)
153.8696 -+    FAIL;
153.8697 -+
153.8698 -+  /* set up operands from compare.  */
153.8699 -+  operands[1] = branch_cmp[0];
153.8700 -+  operands[2] = branch_cmp[1];
153.8701 -+
153.8702 -+  gen_int_relational (LE, operands[0], operands[1], operands[2], NULL_RTX);
153.8703 -+  DONE;
153.8704 -+})
153.8705 -+
153.8706 -+
153.8707 -+(define_insn "*sle"
153.8708 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8709 -+	(le:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8710 -+	       (match_operand:SI 2 "reg_or_0_operand"  "rM")))]
153.8711 -+  ""
153.8712 -+  "cmpge\\t%0, %z2, %z1"
153.8713 -+  [(set_attr "type" "alu")])
153.8714 -+
153.8715 -+
153.8716 -+(define_expand "slt"
153.8717 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8718 -+	(lt:SI (match_dup 1)
153.8719 -+	       (match_dup 2)))]
153.8720 -+  ""
153.8721 -+{
153.8722 -+  if (branch_type != CMP_SI)
153.8723 -+    FAIL;
153.8724 -+
153.8725 -+  /* set up operands from compare.  */
153.8726 -+  operands[1] = branch_cmp[0];
153.8727 -+  operands[2] = branch_cmp[1];
153.8728 -+
153.8729 -+  gen_int_relational (LT, operands[0], operands[1], operands[2], NULL_RTX);
153.8730 -+  DONE;
153.8731 -+})
153.8732 -+
153.8733 -+
153.8734 -+(define_insn "*slt"
153.8735 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8736 -+	(lt:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8737 -+	       (match_operand:SI 2 "arith_operand"     "rI")))]
153.8738 -+  ""
153.8739 -+  "cmplt%i2\\t%0, %z1, %z2"
153.8740 -+  [(set_attr "type" "alu")])
153.8741 -+
153.8742 -+
153.8743 -+(define_expand "sgtu"
153.8744 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8745 -+	(gtu:SI (match_dup 1)
153.8746 -+	        (match_dup 2)))]
153.8747 -+  ""
153.8748 -+{
153.8749 -+  if (branch_type != CMP_SI)
153.8750 -+    FAIL;
153.8751 -+
153.8752 -+  /* set up operands from compare.  */
153.8753 -+  operands[1] = branch_cmp[0];
153.8754 -+  operands[2] = branch_cmp[1];
153.8755 -+
153.8756 -+  gen_int_relational (GTU, operands[0], operands[1], operands[2], NULL_RTX);
153.8757 -+  DONE;
153.8758 -+})
153.8759 -+
153.8760 -+
153.8761 -+(define_insn "*sgtu"
153.8762 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8763 -+	(gtu:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8764 -+	        (match_operand:SI 2 "reg_or_0_operand"  "rM")))]
153.8765 -+  ""
153.8766 -+  "cmpltu\\t%0, %z2, %z1"
153.8767 -+  [(set_attr "type" "alu")])
153.8768 -+
153.8769 -+
153.8770 -+(define_expand "sgeu"
153.8771 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8772 -+	(geu:SI (match_dup 1)
153.8773 -+	        (match_dup 2)))]
153.8774 -+  ""
153.8775 -+{
153.8776 -+  if (branch_type != CMP_SI)
153.8777 -+    FAIL;
153.8778 -+
153.8779 -+  /* set up operands from compare.  */
153.8780 -+  operands[1] = branch_cmp[0];
153.8781 -+  operands[2] = branch_cmp[1];
153.8782 -+
153.8783 -+  gen_int_relational (GEU, operands[0], operands[1], operands[2], NULL_RTX);
153.8784 -+  DONE;
153.8785 -+})
153.8786 -+
153.8787 -+
153.8788 -+(define_insn "*sgeu"
153.8789 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8790 -+	(geu:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8791 -+	        (match_operand:SI 2 "uns_arith_operand"     "rJ")))]
153.8792 -+  ""
153.8793 -+  "cmpgeu%i2\\t%0, %z1, %z2"
153.8794 -+  [(set_attr "type" "alu")])
153.8795 -+
153.8796 -+(define_expand "sleu"
153.8797 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8798 -+	(leu:SI (match_dup 1)
153.8799 -+	        (match_dup 2)))]
153.8800 -+  ""
153.8801 -+{
153.8802 -+  if (branch_type != CMP_SI)
153.8803 -+    FAIL;
153.8804 -+
153.8805 -+  /* set up operands from compare.  */
153.8806 -+  operands[1] = branch_cmp[0];
153.8807 -+  operands[2] = branch_cmp[1];
153.8808 -+
153.8809 -+  gen_int_relational (LEU, operands[0], operands[1], operands[2], NULL_RTX);
153.8810 -+  DONE;
153.8811 -+})
153.8812 -+
153.8813 -+
153.8814 -+(define_insn "*sleu"
153.8815 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8816 -+	(leu:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8817 -+	        (match_operand:SI 2 "reg_or_0_operand"  "rM")))]
153.8818 -+  ""
153.8819 -+  "cmpgeu\\t%0, %z2, %z1"
153.8820 -+  [(set_attr "type" "alu")])
153.8821 -+
153.8822 -+
153.8823 -+(define_expand "sltu"
153.8824 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.8825 -+	(ltu:SI (match_dup 1)
153.8826 -+	        (match_dup 2)))]
153.8827 -+  ""
153.8828 -+{
153.8829 -+  if (branch_type != CMP_SI)
153.8830 -+    FAIL;
153.8831 -+
153.8832 -+  /* set up operands from compare.  */
153.8833 -+  operands[1] = branch_cmp[0];
153.8834 -+  operands[2] = branch_cmp[1];
153.8835 -+
153.8836 -+  gen_int_relational (LTU, operands[0], operands[1], operands[2], NULL_RTX);
153.8837 -+  DONE;
153.8838 -+})
153.8839 -+
153.8840 -+
153.8841 -+(define_insn "*sltu"
153.8842 -+  [(set (match_operand:SI 0 "register_operand"        "=r")
153.8843 -+	(ltu:SI (match_operand:SI 1 "reg_or_0_operand"  "rM")
153.8844 -+	        (match_operand:SI 2 "uns_arith_operand"     "rJ")))]
153.8845 -+  ""
153.8846 -+  "cmpltu%i2\\t%0, %z1, %z2"
153.8847 -+  [(set_attr "type" "alu")])
153.8848 -+
153.8849 -+
153.8850 -+
153.8851 -+
153.8852 -+;*****************************************************************************
153.8853 -+;*
153.8854 -+;* branches
153.8855 -+;*
153.8856 -+;*****************************************************************************
153.8857 -+
153.8858 -+(define_insn "*cbranch"
153.8859 -+  [(set (pc)
153.8860 -+	(if_then_else
153.8861 -+         (match_operator:SI 0 "comparison_operator"
153.8862 -+			    [(match_operand:SI 2 "reg_or_0_operand" "rM")
153.8863 -+			     (match_operand:SI 3 "reg_or_0_operand" "rM")])
153.8864 -+        (label_ref (match_operand 1 "" ""))
153.8865 -+        (pc)))]
153.8866 -+  ""
153.8867 -+  "b%0\\t%z2, %z3, %l1"
153.8868 -+  [(set_attr "type" "control")])
153.8869 -+
153.8870 -+
153.8871 -+(define_expand "beq"
153.8872 -+  [(set (pc)
153.8873 -+	(if_then_else (eq:CC (cc0)
153.8874 -+			     (const_int 0))
153.8875 -+		      (label_ref (match_operand 0 "" ""))
153.8876 -+		      (pc)))]
153.8877 -+  ""
153.8878 -+{
153.8879 -+  gen_int_relational (EQ, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8880 -+  DONE;
153.8881 -+})
153.8882 -+
153.8883 -+
153.8884 -+(define_expand "bne"
153.8885 -+  [(set (pc)
153.8886 -+	(if_then_else (ne:CC (cc0)
153.8887 -+			     (const_int 0))
153.8888 -+		      (label_ref (match_operand 0 "" ""))
153.8889 -+		      (pc)))]
153.8890 -+  ""
153.8891 -+{
153.8892 -+  gen_int_relational (NE, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8893 -+  DONE;
153.8894 -+})
153.8895 -+
153.8896 -+
153.8897 -+(define_expand "bgt"
153.8898 -+  [(set (pc)
153.8899 -+	(if_then_else (gt:CC (cc0)
153.8900 -+			     (const_int 0))
153.8901 -+		      (label_ref (match_operand 0 "" ""))
153.8902 -+		      (pc)))]
153.8903 -+  ""
153.8904 -+{
153.8905 -+  gen_int_relational (GT, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8906 -+  DONE;
153.8907 -+})
153.8908 -+
153.8909 -+(define_expand "bge"
153.8910 -+  [(set (pc)
153.8911 -+	(if_then_else (ge:CC (cc0)
153.8912 -+			     (const_int 0))
153.8913 -+		      (label_ref (match_operand 0 "" ""))
153.8914 -+		      (pc)))]
153.8915 -+  ""
153.8916 -+{
153.8917 -+  gen_int_relational (GE, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8918 -+  DONE;
153.8919 -+})
153.8920 -+
153.8921 -+(define_expand "ble"
153.8922 -+  [(set (pc)
153.8923 -+	(if_then_else (le:CC (cc0)
153.8924 -+			     (const_int 0))
153.8925 -+		      (label_ref (match_operand 0 "" ""))
153.8926 -+		      (pc)))]
153.8927 -+  ""
153.8928 -+{
153.8929 -+  gen_int_relational (LE, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8930 -+  DONE;
153.8931 -+})
153.8932 -+
153.8933 -+(define_expand "blt"
153.8934 -+  [(set (pc)
153.8935 -+	(if_then_else (lt:CC (cc0)
153.8936 -+			     (const_int 0))
153.8937 -+		      (label_ref (match_operand 0 "" ""))
153.8938 -+		      (pc)))]
153.8939 -+  ""
153.8940 -+{
153.8941 -+  gen_int_relational (LT, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8942 -+  DONE;
153.8943 -+})
153.8944 -+
153.8945 -+
153.8946 -+(define_expand "bgtu"
153.8947 -+  [(set (pc)
153.8948 -+	(if_then_else (gtu:CC (cc0)
153.8949 -+		 	      (const_int 0))
153.8950 -+		      (label_ref (match_operand 0 "" ""))
153.8951 -+		      (pc)))]
153.8952 -+  ""
153.8953 -+{
153.8954 -+  gen_int_relational (GTU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8955 -+  DONE;
153.8956 -+})
153.8957 -+
153.8958 -+(define_expand "bgeu"
153.8959 -+  [(set (pc)
153.8960 -+	(if_then_else (geu:CC (cc0)
153.8961 -+			      (const_int 0))
153.8962 -+		      (label_ref (match_operand 0 "" ""))
153.8963 -+		      (pc)))]
153.8964 -+  ""
153.8965 -+{
153.8966 -+  gen_int_relational (GEU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8967 -+  DONE;
153.8968 -+})
153.8969 -+
153.8970 -+(define_expand "bleu"
153.8971 -+  [(set (pc)
153.8972 -+	(if_then_else (leu:CC (cc0)
153.8973 -+			      (const_int 0))
153.8974 -+		      (label_ref (match_operand 0 "" ""))
153.8975 -+		      (pc)))]
153.8976 -+  ""
153.8977 -+{
153.8978 -+  gen_int_relational (LEU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8979 -+  DONE;
153.8980 -+})
153.8981 -+
153.8982 -+(define_expand "bltu"
153.8983 -+  [(set (pc)
153.8984 -+	(if_then_else (ltu:CC (cc0)
153.8985 -+			      (const_int 0))
153.8986 -+		      (label_ref (match_operand 0 "" ""))
153.8987 -+		      (pc)))]
153.8988 -+  ""
153.8989 -+{
153.8990 -+  gen_int_relational (LTU, NULL_RTX, branch_cmp[0], branch_cmp[1], operands[0]);
153.8991 -+  DONE;
153.8992 -+})
153.8993 -+
153.8994 -+
153.8995 -+;*****************************************************************************
153.8996 -+;*
153.8997 -+;* String and Block Operations
153.8998 -+;*
153.8999 -+;*****************************************************************************
153.9000 -+
153.9001 -+; ??? This is all really a hack to get Dhrystone to work as fast as possible
153.9002 -+;     things to be fixed:
153.9003 -+;        * let the compiler core handle all of this, for that to work the extra
153.9004 -+;          aliasing needs to be addressed.
153.9005 -+;        * we use three temporary registers for loading and storing to ensure no
153.9006 -+;          ld use stalls, this is excessive, because after the first ld/st only
153.9007 -+;          two are needed. Only two would be needed all the way through if 
153.9008 -+;          we could schedule with other code. Consider:
153.9009 -+;           1  ld $1, 0($src)
153.9010 -+;           2  ld $2, 4($src)
153.9011 -+;           3  ld $3, 8($src)
153.9012 -+;           4  st $1, 0($dest)
153.9013 -+;           5  ld $1, 12($src)
153.9014 -+;           6  st $2, 4($src)
153.9015 -+;           7  etc.
153.9016 -+;          The first store has to wait until 4. If it does not there will be one
153.9017 -+;          cycle of stalling. However, if any other instruction could be placed
153.9018 -+;          between 1 and 4, $3 would not be needed.
153.9019 -+;        * In small we probably don't want to ever do this ourself because there
153.9020 -+;          is no ld use stall.
153.9021 -+
153.9022 -+(define_expand "movstrsi"
153.9023 -+  [(parallel [(set (match_operand:BLK 0 "general_operand"  "")
153.9024 -+		   (match_operand:BLK 1 "general_operand"  ""))
153.9025 -+	      (use (match_operand:SI 2 "const_int_operand" ""))
153.9026 -+	      (use (match_operand:SI 3 "const_int_operand" ""))
153.9027 -+	      (clobber (match_scratch:SI 4                "=&r"))
153.9028 -+	      (clobber (match_scratch:SI 5                "=&r"))
153.9029 -+	      (clobber (match_scratch:SI 6                "=&r"))])]
153.9030 -+  "TARGET_INLINE_MEMCPY"
153.9031 -+{
153.9032 -+  rtx ld_addr_reg, st_addr_reg;
153.9033 -+
153.9034 -+  /* If the predicate for op2 fails in expr.c:emit_block_move_via_movstr 
153.9035 -+     it trys to copy to a register, but does not re-try the predicate.
153.9036 -+     ??? Intead of fixing expr.c, I fix it here. */
153.9037 -+  if (!const_int_operand (operands[2], SImode))
153.9038 -+    FAIL;
153.9039 -+
153.9040 -+  /* ??? there are some magic numbers which need to be sorted out here.
153.9041 -+         the basis for them is not increasing code size hugely or going
153.9042 -+         out of range of offset addressing */
153.9043 -+  if (INTVAL (operands[3]) < 4)
153.9044 -+    FAIL;
153.9045 -+  if (!optimize
153.9046 -+      || (optimize_size && INTVAL (operands[2]) > 12)
153.9047 -+      || (optimize < 3 && INTVAL (operands[2]) > 100)
153.9048 -+      || INTVAL (operands[2]) > 200)
153.9049 -+    FAIL;
153.9050 -+
153.9051 -+  st_addr_reg
153.9052 -+    = replace_equiv_address (operands[0],
153.9053 -+			     copy_to_mode_reg (Pmode, XEXP (operands[0], 0)));
153.9054 -+  ld_addr_reg
153.9055 -+    = replace_equiv_address (operands[1],
153.9056 -+			     copy_to_mode_reg (Pmode, XEXP (operands[1], 0)));
153.9057 -+  emit_insn (gen_movstrsi_internal (st_addr_reg, ld_addr_reg,
153.9058 -+				    operands[2], operands[3]));
153.9059 -+
153.9060 -+  DONE;
153.9061 -+})
153.9062 -+
153.9063 -+
153.9064 -+(define_insn "movstrsi_internal"
153.9065 -+  [(set (match_operand:BLK 0 "memory_operand"   "=o")
153.9066 -+	(match_operand:BLK 1 "memory_operand"    "o"))
153.9067 -+   (use (match_operand:SI 2 "const_int_operand"  "i"))
153.9068 -+   (use (match_operand:SI 3 "const_int_operand"  "i"))
153.9069 -+   (clobber (match_scratch:SI 4                "=&r"))
153.9070 -+   (clobber (match_scratch:SI 5                "=&r"))
153.9071 -+   (clobber (match_scratch:SI 6                "=&r"))]
153.9072 -+  "TARGET_INLINE_MEMCPY"
153.9073 -+{
153.9074 -+  int ld_offset = INTVAL (operands[2]);
153.9075 -+  int ld_len = INTVAL (operands[2]);
153.9076 -+  int ld_reg = 0;
153.9077 -+  rtx ld_addr_reg = XEXP (operands[1], 0);
153.9078 -+  int st_offset = INTVAL (operands[2]);
153.9079 -+  int st_len = INTVAL (operands[2]);
153.9080 -+  int st_reg = 0;
153.9081 -+  rtx st_addr_reg = XEXP (operands[0], 0);
153.9082 -+  int delay_count = 0;
153.9083 -+  
153.9084 -+  /* ops[0] is the address used by the insn
153.9085 -+     ops[1] is the register being loaded or stored */
153.9086 -+  rtx ops[2];
153.9087 -+  
153.9088 -+  if (INTVAL (operands[3]) < 4)
153.9089 -+    abort ();
153.9090 -+  
153.9091 -+  while (ld_offset >= 4)
153.9092 -+    {
153.9093 -+      /* if the load use delay has been met, I can start
153.9094 -+         storing */
153.9095 -+      if (delay_count >= 3)
153.9096 -+        {
153.9097 -+	  ops[0] = gen_rtx (MEM, SImode, 
153.9098 -+			    plus_constant (st_addr_reg, st_len - st_offset));
153.9099 -+	  ops[1] = operands[st_reg + 4];			 
153.9100 -+	  output_asm_insn ("stw\t%1, %0", ops);
153.9101 -+	  
153.9102 -+	  st_reg = (st_reg + 1) % 3;
153.9103 -+	  st_offset -= 4;
153.9104 -+        }
153.9105 -+    
153.9106 -+      ops[0] = gen_rtx (MEM, SImode, 
153.9107 -+			plus_constant (ld_addr_reg, ld_len - ld_offset));
153.9108 -+      ops[1] = operands[ld_reg + 4];			 
153.9109 -+      output_asm_insn ("ldw\t%1, %0", ops);
153.9110 -+      
153.9111 -+      ld_reg = (ld_reg + 1) % 3;
153.9112 -+      ld_offset -= 4;
153.9113 -+      delay_count++;
153.9114 -+    }
153.9115 -+  
153.9116 -+  if (ld_offset >= 2)
153.9117 -+    {
153.9118 -+      /* if the load use delay has been met, I can start
153.9119 -+         storing */
153.9120 -+      if (delay_count >= 3)
153.9121 -+        {
153.9122 -+	  ops[0] = gen_rtx (MEM, SImode, 
153.9123 -+			    plus_constant (st_addr_reg, st_len - st_offset));
153.9124 -+	  ops[1] = operands[st_reg + 4];			 
153.9125 -+	  output_asm_insn ("stw\t%1, %0", ops);
153.9126 -+	  
153.9127 -+	  st_reg = (st_reg + 1) % 3;
153.9128 -+	  st_offset -= 4;
153.9129 -+        }
153.9130 -+    
153.9131 -+      ops[0] = gen_rtx (MEM, HImode, 
153.9132 -+			plus_constant (ld_addr_reg, ld_len - ld_offset));
153.9133 -+      ops[1] = operands[ld_reg + 4];			 
153.9134 -+      output_asm_insn ("ldh\t%1, %0", ops);
153.9135 -+      
153.9136 -+      ld_reg = (ld_reg + 1) % 3;
153.9137 -+      ld_offset -= 2;
153.9138 -+      delay_count++;
153.9139 -+    }
153.9140 -+  
153.9141 -+  if (ld_offset >= 1)
153.9142 -+    {
153.9143 -+      /* if the load use delay has been met, I can start
153.9144 -+         storing */
153.9145 -+      if (delay_count >= 3)
153.9146 -+        {
153.9147 -+	  ops[0] = gen_rtx (MEM, SImode, 
153.9148 -+			    plus_constant (st_addr_reg, st_len - st_offset));
153.9149 -+	  ops[1] = operands[st_reg + 4];			 
153.9150 -+	  output_asm_insn ("stw\t%1, %0", ops);
153.9151 -+	  
153.9152 -+	  st_reg = (st_reg + 1) % 3;
153.9153 -+	  st_offset -= 4;
153.9154 -+        }
153.9155 -+    
153.9156 -+      ops[0] = gen_rtx (MEM, QImode, 
153.9157 -+			plus_constant (ld_addr_reg, ld_len - ld_offset));
153.9158 -+      ops[1] = operands[ld_reg + 4];			 
153.9159 -+      output_asm_insn ("ldb\t%1, %0", ops);
153.9160 -+      
153.9161 -+      ld_reg = (ld_reg + 1) % 3;
153.9162 -+      ld_offset -= 1;
153.9163 -+      delay_count++;
153.9164 -+    }
153.9165 -+
153.9166 -+    while (st_offset >= 4)
153.9167 -+      {
153.9168 -+	ops[0] = gen_rtx (MEM, SImode, 
153.9169 -+			  plus_constant (st_addr_reg, st_len - st_offset));
153.9170 -+	ops[1] = operands[st_reg + 4];			 
153.9171 -+	output_asm_insn ("stw\t%1, %0", ops);
153.9172 -+
153.9173 -+	st_reg = (st_reg + 1) % 3;
153.9174 -+	st_offset -= 4;
153.9175 -+      }
153.9176 -+  
153.9177 -+    while (st_offset >= 2)
153.9178 -+      {
153.9179 -+	ops[0] = gen_rtx (MEM, HImode, 
153.9180 -+			  plus_constant (st_addr_reg, st_len - st_offset));
153.9181 -+	ops[1] = operands[st_reg + 4];			 
153.9182 -+	output_asm_insn ("sth\t%1, %0", ops);
153.9183 -+
153.9184 -+	st_reg = (st_reg + 1) % 3;
153.9185 -+	st_offset -= 2;
153.9186 -+      }
153.9187 -+  
153.9188 -+    while (st_offset >= 1)
153.9189 -+      {
153.9190 -+	ops[0] = gen_rtx (MEM, QImode, 
153.9191 -+			  plus_constant (st_addr_reg, st_len - st_offset));
153.9192 -+	ops[1] = operands[st_reg + 4];			 
153.9193 -+	output_asm_insn ("stb\t%1, %0", ops);
153.9194 -+
153.9195 -+	st_reg = (st_reg + 1) % 3;
153.9196 -+	st_offset -= 1;
153.9197 -+      }
153.9198 -+  
153.9199 -+  return "";
153.9200 -+}
153.9201 -+; ??? lengths are not being used yet, but I will probably forget
153.9202 -+; to update this once I am using lengths, so set it to something
153.9203 -+; definetely big enough to cover it. 400 allows for 200 bytes
153.9204 -+; of motion.
153.9205 -+  [(set_attr "length" "400")])
153.9206 -+
153.9207 -+
153.9208 -+
153.9209 -+;*****************************************************************************
153.9210 -+;*
153.9211 -+;* Custom instructions
153.9212 -+;*
153.9213 -+;*****************************************************************************
153.9214 -+
153.9215 -+(define_constants [
153.9216 -+  (CUSTOM_N 100)
153.9217 -+  (CUSTOM_NI 101)
153.9218 -+  (CUSTOM_NF 102)
153.9219 -+  (CUSTOM_NP 103)
153.9220 -+  (CUSTOM_NII 104)
153.9221 -+  (CUSTOM_NIF 105)
153.9222 -+  (CUSTOM_NIP 106)
153.9223 -+  (CUSTOM_NFI 107)
153.9224 -+  (CUSTOM_NFF 108)
153.9225 -+  (CUSTOM_NFP 109)
153.9226 -+  (CUSTOM_NPI 110)
153.9227 -+  (CUSTOM_NPF 111)
153.9228 -+  (CUSTOM_NPP 112)
153.9229 -+  (CUSTOM_IN 113)
153.9230 -+  (CUSTOM_INI 114)
153.9231 -+  (CUSTOM_INF 115)
153.9232 -+  (CUSTOM_INP 116)
153.9233 -+  (CUSTOM_INII 117)
153.9234 -+  (CUSTOM_INIF 118)
153.9235 -+  (CUSTOM_INIP 119)
153.9236 -+  (CUSTOM_INFI 120)
153.9237 -+  (CUSTOM_INFF 121)
153.9238 -+  (CUSTOM_INFP 122)
153.9239 -+  (CUSTOM_INPI 123)
153.9240 -+  (CUSTOM_INPF 124)
153.9241 -+  (CUSTOM_INPP 125)
153.9242 -+  (CUSTOM_FN 126)
153.9243 -+  (CUSTOM_FNI 127)
153.9244 -+  (CUSTOM_FNF 128)
153.9245 -+  (CUSTOM_FNP 129)
153.9246 -+  (CUSTOM_FNII 130)
153.9247 -+  (CUSTOM_FNIF 131)
153.9248 -+  (CUSTOM_FNIP 132)
153.9249 -+  (CUSTOM_FNFI 133)
153.9250 -+  (CUSTOM_FNFF 134)
153.9251 -+  (CUSTOM_FNFP 135)
153.9252 -+  (CUSTOM_FNPI 136)
153.9253 -+  (CUSTOM_FNPF 137)
153.9254 -+  (CUSTOM_FNPP 138)
153.9255 -+  (CUSTOM_PN 139)
153.9256 -+  (CUSTOM_PNI 140)
153.9257 -+  (CUSTOM_PNF 141)
153.9258 -+  (CUSTOM_PNP 142)
153.9259 -+  (CUSTOM_PNII 143)
153.9260 -+  (CUSTOM_PNIF 144)
153.9261 -+  (CUSTOM_PNIP 145)
153.9262 -+  (CUSTOM_PNFI 146)
153.9263 -+  (CUSTOM_PNFF 147)
153.9264 -+  (CUSTOM_PNFP 148)
153.9265 -+  (CUSTOM_PNPI 149)
153.9266 -+  (CUSTOM_PNPF 150)
153.9267 -+  (CUSTOM_PNPP 151)
153.9268 -+])
153.9269 -+
153.9270 -+
153.9271 -+(define_insn "custom_n"
153.9272 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")] CUSTOM_N)]
153.9273 -+  ""
153.9274 -+  "custom\\t%0, zero, zero, zero"
153.9275 -+  [(set_attr "type" "custom")])
153.9276 -+
153.9277 -+(define_insn "custom_ni"
153.9278 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9279 -+                     (match_operand:SI 1 "register_operand"   "r")] CUSTOM_NI)]
153.9280 -+  ""
153.9281 -+  "custom\\t%0, zero, %1, zero"
153.9282 -+  [(set_attr "type" "custom")])
153.9283 -+
153.9284 -+(define_insn "custom_nf"
153.9285 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9286 -+                     (match_operand:SF 1 "register_operand"   "r")] CUSTOM_NF)]
153.9287 -+  ""
153.9288 -+  "custom\\t%0, zero, %1, zero"
153.9289 -+  [(set_attr "type" "custom")])
153.9290 -+
153.9291 -+(define_insn "custom_np"
153.9292 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9293 -+                     (match_operand:SI 1 "register_operand"   "r")] CUSTOM_NP)]
153.9294 -+  ""
153.9295 -+  "custom\\t%0, zero, %1, zero"
153.9296 -+  [(set_attr "type" "custom")])
153.9297 -+
153.9298 -+(define_insn "custom_nii"
153.9299 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9300 -+                     (match_operand:SI 1 "register_operand"   "r")
153.9301 -+                     (match_operand:SI 2 "register_operand"   "r")] CUSTOM_NII)]
153.9302 -+  ""
153.9303 -+  "custom\\t%0, zero, %1, %2"
153.9304 -+  [(set_attr "type" "custom")])
153.9305 -+
153.9306 -+(define_insn "custom_nif"
153.9307 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9308 -+                     (match_operand:SI 1 "register_operand"   "r")
153.9309 -+                     (match_operand:SF 2 "register_operand"   "r")] CUSTOM_NIF)]
153.9310 -+  ""
153.9311 -+  "custom\\t%0, zero, %1, %2"
153.9312 -+  [(set_attr "type" "custom")])
153.9313 -+
153.9314 -+(define_insn "custom_nip"
153.9315 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9316 -+                     (match_operand:SI 1 "register_operand"   "r")
153.9317 -+                     (match_operand:SI 2 "register_operand"   "r")] CUSTOM_NIP)]
153.9318 -+  ""
153.9319 -+  "custom\\t%0, zero, %1, %2"
153.9320 -+  [(set_attr "type" "custom")])
153.9321 -+
153.9322 -+(define_insn "custom_nfi"
153.9323 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9324 -+                     (match_operand:SF 1 "register_operand"   "r")
153.9325 -+                     (match_operand:SI 2 "register_operand"   "r")] CUSTOM_NFI)]
153.9326 -+  ""
153.9327 -+  "custom\\t%0, zero, %1, %2"
153.9328 -+  [(set_attr "type" "custom")])
153.9329 -+
153.9330 -+(define_insn "custom_nff"
153.9331 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9332 -+                     (match_operand:SF 1 "register_operand"   "r")
153.9333 -+                     (match_operand:SF 2 "register_operand"   "r")] CUSTOM_NFF)]
153.9334 -+  ""
153.9335 -+  "custom\\t%0, zero, %1, %2"
153.9336 -+  [(set_attr "type" "custom")])
153.9337 -+
153.9338 -+(define_insn "custom_nfp"
153.9339 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9340 -+                     (match_operand:SF 1 "register_operand"   "r")
153.9341 -+                     (match_operand:SI 2 "register_operand"   "r")] CUSTOM_NFP)]
153.9342 -+  ""
153.9343 -+  "custom\\t%0, zero, %1, %2"
153.9344 -+  [(set_attr "type" "custom")])
153.9345 -+
153.9346 -+(define_insn "custom_npi"
153.9347 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9348 -+                     (match_operand:SI 1 "register_operand"   "r")
153.9349 -+                     (match_operand:SI 2 "register_operand"   "r")] CUSTOM_NPI)]
153.9350 -+  ""
153.9351 -+  "custom\\t%0, zero, %1, %2"
153.9352 -+  [(set_attr "type" "custom")])
153.9353 -+
153.9354 -+(define_insn "custom_npf"
153.9355 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9356 -+                     (match_operand:SI 1 "register_operand"   "r")
153.9357 -+                     (match_operand:SF 2 "register_operand"   "r")] CUSTOM_NPF)]
153.9358 -+  ""
153.9359 -+  "custom\\t%0, zero, %1, %2"
153.9360 -+  [(set_attr "type" "custom")])
153.9361 -+
153.9362 -+(define_insn "custom_npp"
153.9363 -+  [(unspec_volatile [(match_operand:SI 0 "custom_insn_opcode" "N")
153.9364 -+                     (match_operand:SI 1 "register_operand"   "r")
153.9365 -+                     (match_operand:SI 2 "register_operand"   "r")] CUSTOM_NPP)]
153.9366 -+  ""
153.9367 -+  "custom\\t%0, zero, %1, %2"
153.9368 -+  [(set_attr "type" "custom")])
153.9369 -+
153.9370 -+
153.9371 -+
153.9372 -+(define_insn "custom_in"
153.9373 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9374 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")] CUSTOM_IN))]
153.9375 -+  ""
153.9376 -+  "custom\\t%1, %0, zero, zero"
153.9377 -+  [(set_attr "type" "custom")])
153.9378 -+
153.9379 -+(define_insn "custom_ini"
153.9380 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9381 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9382 -+                          (match_operand:SI 2 "register_operand"   "r")] CUSTOM_INI))]
153.9383 -+  ""
153.9384 -+  "custom\\t%1, %0, %2, zero"
153.9385 -+  [(set_attr "type" "custom")])
153.9386 -+
153.9387 -+(define_insn "custom_inf"
153.9388 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9389 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9390 -+                          (match_operand:SF 2 "register_operand"   "r")] CUSTOM_INF))]
153.9391 -+  ""
153.9392 -+  "custom\\t%1, %0, %2, zero"
153.9393 -+  [(set_attr "type" "custom")])
153.9394 -+
153.9395 -+(define_insn "custom_inp"
153.9396 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9397 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9398 -+                          (match_operand:SI 2 "register_operand"   "r")] CUSTOM_INP))]
153.9399 -+  ""
153.9400 -+  "custom\\t%1, %0, %2, zero"
153.9401 -+  [(set_attr "type" "custom")])
153.9402 -+
153.9403 -+(define_insn "custom_inii"
153.9404 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9405 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9406 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9407 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_INII))]
153.9408 -+  ""
153.9409 -+  "custom\\t%1, %0, %2, %3"
153.9410 -+  [(set_attr "type" "custom")])
153.9411 -+
153.9412 -+(define_insn "custom_inif"
153.9413 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9414 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9415 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9416 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_INIF))]
153.9417 -+  ""
153.9418 -+  "custom\\t%1, %0, %2, %3"
153.9419 -+  [(set_attr "type" "custom")])
153.9420 -+
153.9421 -+(define_insn "custom_inip"
153.9422 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9423 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9424 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9425 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_INIP))]
153.9426 -+  ""
153.9427 -+  "custom\\t%1, %0, %2, %3"
153.9428 -+  [(set_attr "type" "custom")])
153.9429 -+
153.9430 -+(define_insn "custom_infi"
153.9431 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9432 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9433 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9434 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_INFI))]
153.9435 -+  ""
153.9436 -+  "custom\\t%1, %0, %2, %3"
153.9437 -+  [(set_attr "type" "custom")])
153.9438 -+
153.9439 -+(define_insn "custom_inff"
153.9440 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9441 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9442 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9443 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_INFF))]
153.9444 -+  ""
153.9445 -+  "custom\\t%1, %0, %2, %3"
153.9446 -+  [(set_attr "type" "custom")])
153.9447 -+
153.9448 -+(define_insn "custom_infp"
153.9449 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9450 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9451 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9452 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_INFP))]
153.9453 -+  ""
153.9454 -+  "custom\\t%1, %0, %2, %3"
153.9455 -+  [(set_attr "type" "custom")])
153.9456 -+
153.9457 -+(define_insn "custom_inpi"
153.9458 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9459 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9460 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9461 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_INPI))]
153.9462 -+  ""
153.9463 -+  "custom\\t%1, %0, %2, %3"
153.9464 -+  [(set_attr "type" "custom")])
153.9465 -+
153.9466 -+(define_insn "custom_inpf"
153.9467 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9468 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9469 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9470 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_INPF))]
153.9471 -+  ""
153.9472 -+  "custom\\t%1, %0, %2, %3"
153.9473 -+  [(set_attr "type" "custom")])
153.9474 -+
153.9475 -+(define_insn "custom_inpp"
153.9476 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9477 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9478 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9479 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_INPP))]
153.9480 -+  ""
153.9481 -+  "custom\\t%1, %0, %2, %3"
153.9482 -+  [(set_attr "type" "custom")])
153.9483 -+
153.9484 -+
153.9485 -+
153.9486 -+
153.9487 -+
153.9488 -+(define_insn "custom_fn"
153.9489 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9490 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")] CUSTOM_FN))]
153.9491 -+  ""
153.9492 -+  "custom\\t%1, %0, zero, zero"
153.9493 -+  [(set_attr "type" "custom")])
153.9494 -+
153.9495 -+(define_insn "custom_fni"
153.9496 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9497 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9498 -+                          (match_operand:SI 2 "register_operand"   "r")] CUSTOM_FNI))]
153.9499 -+  ""
153.9500 -+  "custom\\t%1, %0, %2, zero"
153.9501 -+  [(set_attr "type" "custom")])
153.9502 -+
153.9503 -+(define_insn "custom_fnf"
153.9504 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9505 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9506 -+                          (match_operand:SF 2 "register_operand"   "r")] CUSTOM_FNF))]
153.9507 -+  ""
153.9508 -+  "custom\\t%1, %0, %2, zero"
153.9509 -+  [(set_attr "type" "custom")])
153.9510 -+
153.9511 -+(define_insn "custom_fnp"
153.9512 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9513 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9514 -+                          (match_operand:SI 2 "register_operand"   "r")] CUSTOM_FNP))]
153.9515 -+  ""
153.9516 -+  "custom\\t%1, %0, %2, zero"
153.9517 -+  [(set_attr "type" "custom")])
153.9518 -+
153.9519 -+(define_insn "custom_fnii"
153.9520 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9521 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9522 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9523 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_FNII))]
153.9524 -+  ""
153.9525 -+  "custom\\t%1, %0, %2, %3"
153.9526 -+  [(set_attr "type" "custom")])
153.9527 -+
153.9528 -+(define_insn "custom_fnif"
153.9529 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9530 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9531 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9532 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_FNIF))]
153.9533 -+  ""
153.9534 -+  "custom\\t%1, %0, %2, %3"
153.9535 -+  [(set_attr "type" "custom")])
153.9536 -+
153.9537 -+(define_insn "custom_fnip"
153.9538 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9539 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9540 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9541 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_FNIP))]
153.9542 -+  ""
153.9543 -+  "custom\\t%1, %0, %2, %3"
153.9544 -+  [(set_attr "type" "custom")])
153.9545 -+
153.9546 -+(define_insn "custom_fnfi"
153.9547 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9548 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9549 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9550 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_FNFI))]
153.9551 -+  ""
153.9552 -+  "custom\\t%1, %0, %2, %3"
153.9553 -+  [(set_attr "type" "custom")])
153.9554 -+
153.9555 -+(define_insn "custom_fnff"
153.9556 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9557 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9558 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9559 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_FNFF))]
153.9560 -+  ""
153.9561 -+  "custom\\t%1, %0, %2, %3"
153.9562 -+  [(set_attr "type" "custom")])
153.9563 -+
153.9564 -+(define_insn "custom_fnfp"
153.9565 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9566 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9567 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9568 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_FNFP))]
153.9569 -+  ""
153.9570 -+  "custom\\t%1, %0, %2, %3"
153.9571 -+  [(set_attr "type" "custom")])
153.9572 -+
153.9573 -+(define_insn "custom_fnpi"
153.9574 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9575 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9576 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9577 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_FNPI))]
153.9578 -+  ""
153.9579 -+  "custom\\t%1, %0, %2, %3"
153.9580 -+  [(set_attr "type" "custom")])
153.9581 -+
153.9582 -+(define_insn "custom_fnpf"
153.9583 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9584 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9585 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9586 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_FNPF))]
153.9587 -+  ""
153.9588 -+  "custom\\t%1, %0, %2, %3"
153.9589 -+  [(set_attr "type" "custom")])
153.9590 -+
153.9591 -+(define_insn "custom_fnpp"
153.9592 -+  [(set (match_operand:SF 0 "register_operand"   "=r")
153.9593 -+        (unspec_volatile:SF [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9594 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9595 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_FNPP))]
153.9596 -+  ""
153.9597 -+  "custom\\t%1, %0, %2, %3"
153.9598 -+  [(set_attr "type" "custom")])
153.9599 -+
153.9600 -+
153.9601 -+
153.9602 -+(define_insn "custom_pn"
153.9603 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9604 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")] CUSTOM_PN))]
153.9605 -+  ""
153.9606 -+  "custom\\t%1, %0, zero, zero"
153.9607 -+  [(set_attr "type" "custom")])
153.9608 -+
153.9609 -+(define_insn "custom_pni"
153.9610 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9611 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9612 -+                          (match_operand:SI 2 "register_operand"   "r")] CUSTOM_PNI))]
153.9613 -+  ""
153.9614 -+  "custom\\t%1, %0, %2, zero"
153.9615 -+  [(set_attr "type" "custom")])
153.9616 -+
153.9617 -+(define_insn "custom_pnf"
153.9618 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9619 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9620 -+                          (match_operand:SF 2 "register_operand"   "r")] CUSTOM_PNF))]
153.9621 -+  ""
153.9622 -+  "custom\\t%1, %0, %2, zero"
153.9623 -+  [(set_attr "type" "custom")])
153.9624 -+
153.9625 -+(define_insn "custom_pnp"
153.9626 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9627 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9628 -+                          (match_operand:SI 2 "register_operand"   "r")] CUSTOM_PNP))]
153.9629 -+  ""
153.9630 -+  "custom\\t%1, %0, %2, zero"
153.9631 -+  [(set_attr "type" "custom")])
153.9632 -+
153.9633 -+(define_insn "custom_pnii"
153.9634 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9635 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9636 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9637 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_PNII))]
153.9638 -+  ""
153.9639 -+  "custom\\t%1, %0, %2, %3"
153.9640 -+  [(set_attr "type" "custom")])
153.9641 -+
153.9642 -+(define_insn "custom_pnif"
153.9643 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9644 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9645 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9646 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_PNIF))]
153.9647 -+  ""
153.9648 -+  "custom\\t%1, %0, %2, %3"
153.9649 -+  [(set_attr "type" "custom")])
153.9650 -+
153.9651 -+(define_insn "custom_pnip"
153.9652 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9653 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9654 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9655 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_PNIP))]
153.9656 -+  ""
153.9657 -+  "custom\\t%1, %0, %2, %3"
153.9658 -+  [(set_attr "type" "custom")])
153.9659 -+
153.9660 -+(define_insn "custom_pnfi"
153.9661 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9662 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9663 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9664 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_PNFI))]
153.9665 -+  ""
153.9666 -+  "custom\\t%1, %0, %2, %3"
153.9667 -+  [(set_attr "type" "custom")])
153.9668 -+
153.9669 -+(define_insn "custom_pnff"
153.9670 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9671 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9672 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9673 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_PNFF))]
153.9674 -+  ""
153.9675 -+  "custom\\t%1, %0, %2, %3"
153.9676 -+  [(set_attr "type" "custom")])
153.9677 -+
153.9678 -+(define_insn "custom_pnfp"
153.9679 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9680 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9681 -+                          (match_operand:SF 2 "register_operand"   "r")
153.9682 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_PNFP))]
153.9683 -+  ""
153.9684 -+  "custom\\t%1, %0, %2, %3"
153.9685 -+  [(set_attr "type" "custom")])
153.9686 -+
153.9687 -+(define_insn "custom_pnpi"
153.9688 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9689 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9690 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9691 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_PNPI))]
153.9692 -+  ""
153.9693 -+  "custom\\t%1, %0, %2, %3"
153.9694 -+  [(set_attr "type" "custom")])
153.9695 -+
153.9696 -+(define_insn "custom_pnpf"
153.9697 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9698 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9699 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9700 -+                          (match_operand:SF 3 "register_operand"   "r")] CUSTOM_PNPF))]
153.9701 -+  ""
153.9702 -+  "custom\\t%1, %0, %2, %3"
153.9703 -+  [(set_attr "type" "custom")])
153.9704 -+
153.9705 -+(define_insn "custom_pnpp"
153.9706 -+  [(set (match_operand:SI 0 "register_operand"   "=r")
153.9707 -+        (unspec_volatile:SI [(match_operand:SI 1 "custom_insn_opcode" "N")
153.9708 -+                          (match_operand:SI 2 "register_operand"   "r")
153.9709 -+                          (match_operand:SI 3 "register_operand"   "r")] CUSTOM_PNPP))]
153.9710 -+  ""
153.9711 -+  "custom\\t%1, %0, %2, %3"
153.9712 -+  [(set_attr "type" "custom")])
153.9713 -+
153.9714 -+
153.9715 -+
153.9716 -+
153.9717 -+
153.9718 -+
153.9719 -+;*****************************************************************************
153.9720 -+;*
153.9721 -+;* Misc
153.9722 -+;*
153.9723 -+;*****************************************************************************
153.9724 -+
153.9725 -+(define_insn "nop"
153.9726 -+  [(const_int 0)]
153.9727 -+  ""
153.9728 -+  "nop\\t"
153.9729 -+  [(set_attr "type" "alu")])
153.9730 -+
153.9731 -+(define_insn "sync"
153.9732 -+  [(unspec_volatile [(const_int 0)] UNSPEC_SYNC)]
153.9733 -+  ""
153.9734 -+  "sync\\t"
153.9735 -+  [(set_attr "type" "control")])
153.9736 -+
153.9737 -+
153.9738 -+(define_insn "rdctl"
153.9739 -+  [(set (match_operand:SI 0 "register_operand" "=r")
153.9740 -+	(unspec_volatile:SI [(match_operand:SI 1 "rdwrctl_operand" "O")] UNSPEC_RDCTL))]
153.9741 -+  ""
153.9742 -+  "rdctl\\t%0, ctl%1"
153.9743 -+  [(set_attr "type" "control")])
153.9744 -+
153.9745 -+(define_insn "wrctl"
153.9746 -+  [(unspec_volatile:SI [(match_operand:SI 0 "rdwrctl_operand"  "O")
153.9747 -+                        (match_operand:SI 1 "register_operand" "r")] UNSPEC_WRCTL)]
153.9748 -+  ""
153.9749 -+  "wrctl\\tctl%0, %1"
153.9750 -+  [(set_attr "type" "control")])
153.9751 -+
153.9752 -+
153.9753 -+
153.9754 -+;*****************************************************************************
153.9755 -+;*
153.9756 -+;* Peepholes
153.9757 -+;*
153.9758 -+;*****************************************************************************
153.9759 -+
153.9760 -+
153.9761 ---- gcc-3.4.3/gcc/config/nios2/t-nios2
153.9762 -+++ gcc-3.4.3-nios2/gcc/config/nios2/t-nios2
153.9763 -@@ -0,0 +1,123 @@
153.9764 -+##
153.9765 -+## Compiler flags to use when compiling libgcc2.c.
153.9766 -+##
153.9767 -+## LIB2FUNCS_EXTRA
153.9768 -+## A list of source file names to be compiled or assembled and inserted into libgcc.a.
153.9769 -+
153.9770 -+LIB2FUNCS_EXTRA=$(srcdir)/config/nios2/lib2-divmod.c \
153.9771 -+  $(srcdir)/config/nios2/lib2-divmod-hi.c \
153.9772 -+  $(srcdir)/config/nios2/lib2-divtable.c \
153.9773 -+  $(srcdir)/config/nios2/lib2-mul.c
153.9774 -+
153.9775 -+##
153.9776 -+## Floating Point Emulation
153.9777 -+## To have GCC include software floating point libraries in libgcc.a define FPBIT
153.9778 -+## and DPBIT along with a few rules as follows:
153.9779 -+##
153.9780 -+## # We want fine grained libraries, so use the new code
153.9781 -+## # to build the floating point emulation libraries.
153.9782 -+FPBIT=$(srcdir)/config/nios2/nios2-fp-bit.c
153.9783 -+DPBIT=$(srcdir)/config/nios2/nios2-dp-bit.c
153.9784 -+
153.9785 -+TARGET_LIBGCC2_CFLAGS = -O2
153.9786 -+
153.9787 -+# FLOAT_ONLY - no doubles
153.9788 -+# SMALL_MACHINE - QI/HI is faster than SI
153.9789 -+#     Actually SMALL_MACHINE uses chars and shorts instead of ints
153.9790 -+#     since ints (16-bit ones as they are today) are at least as fast
153.9791 -+#     as chars and shorts, don't define SMALL_MACHINE
153.9792 -+# CMPtype - type returned by FP compare, i.e. INT (hard coded in fp-bit - see code )
153.9793 -+
153.9794 -+$(FPBIT): $(srcdir)/config/fp-bit.c Makefile
153.9795 -+	echo '#define FLOAT'          >  ${FPBIT}
153.9796 -+	cat $(srcdir)/config/fp-bit.c >> ${FPBIT}
153.9797 -+
153.9798 -+$(DPBIT): $(srcdir)/config/fp-bit.c Makefile
153.9799 -+	echo ''          >  ${DPBIT}
153.9800 -+	cat $(srcdir)/config/fp-bit.c >> ${DPBIT}
153.9801 -+
153.9802 -+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o 
153.9803 -+
153.9804 -+# Assemble startup files. 
153.9805 -+$(T)crti.o: $(srcdir)/config/nios2/crti.asm $(GCC_PASSES) 
153.9806 -+	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
153.9807 -+	-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/nios2/crti.asm 
153.9808 -+
153.9809 -+$(T)crtn.o: $(srcdir)/config/nios2/crtn.asm $(GCC_PASSES) 
153.9810 -+	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
153.9811 -+	-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/nios2/crtn.asm 
153.9812 -+
153.9813 -+
153.9814 -+## You may need to provide additional #defines at the beginning of
153.9815 -+## fp-bit.c and dp-bit.c to control target endianness and other options
153.9816 -+##
153.9817 -+## CRTSTUFF_T_CFLAGS
153.9818 -+## Special flags used when compiling crtstuff.c.  See Initialization.
153.9819 -+##
153.9820 -+## CRTSTUFF_T_CFLAGS_S
153.9821 -+## Special flags used when compiling crtstuff.c for shared linking.  Used
153.9822 -+## if you use crtbeginS.o and crtendS.o in EXTRA-PARTS. See Initialization.
153.9823 -+##
153.9824 -+## MULTILIB_OPTIONS
153.9825 -+## For some targets, invoking GCC in different ways produces objects that
153.9826 -+## can not be linked together.  For example, for some targets GCC produces
153.9827 -+## both big and little endian code.  For these targets, you must arrange
153.9828 -+## for multiple versions of libgcc.a to be compiled, one for each set of
153.9829 -+## incompatible options.  When GCC invokes the linker, it arranges to link
153.9830 -+## in the right version of libgcc.a, based on the command line options
153.9831 -+## used.
153.9832 -+## The MULTILIB_OPTIONS macro lists the set of options for which special
153.9833 -+## versions of libgcc.a must be built.  Write options that are mutually
153.9834 -+## incompatible side by side, separated by a slash.  Write options that may
153.9835 -+## be used together separated by a space.  The build procedure will build
153.9836 -+## all combinations of compatible options.
153.9837 -+##
153.9838 -+## For example, if you set MULTILIB_OPTIONS to m68000/m68020 msoft-float,
153.9839 -+## Makefile will build special versions of libgcc.a using the following
153.9840 -+## sets of options: -m68000, -m68020, -msoft-float, -m68000 -msoft-float,
153.9841 -+## and -m68020 -msoft-float.
153.9842 -+
153.9843 -+MULTILIB_OPTIONS = mno-hw-mul mhw-mulx
153.9844 -+
153.9845 -+## MULTILIB_DIRNAMES
153.9846 -+## If MULTILIB_OPTIONS is used, this variable specifies the directory names
153.9847 -+## that should be used to hold the various libraries.  Write one element in
153.9848 -+## MULTILIB_DIRNAMES for each element in MULTILIB_OPTIONS. If
153.9849 -+## MULTILIB_DIRNAMES is not used, the default value will be
153.9850 -+## MULTILIB_OPTIONS, with all slashes treated as spaces.
153.9851 -+## For example, if MULTILIB_OPTIONS is set to m68000/m68020 msoft-float,
153.9852 -+## then the default value of MULTILIB_DIRNAMES is m68000 m68020
153.9853 -+## msoft-float.  You may specify a different value if you desire a
153.9854 -+## different set of directory names.
153.9855 -+
153.9856 -+# MULTILIB_DIRNAMES =
153.9857 -+
153.9858 -+## MULTILIB_MATCHES
153.9859 -+## Sometimes the same option may be written in two different ways.  If an
153.9860 -+## option is listed in MULTILIB_OPTIONS, GCC needs to know about any
153.9861 -+## synonyms.  In that case, set MULTILIB_MATCHES to a list of items of the
153.9862 -+## form option=option to describe all relevant synonyms.  For example,
153.9863 -+## m68000=mc68000 m68020=mc68020.
153.9864 -+##
153.9865 -+## MULTILIB_EXCEPTIONS
153.9866 -+## Sometimes when there are multiple sets of MULTILIB_OPTIONS being
153.9867 -+## specified, there are combinations that should not be built.  In that
153.9868 -+## case, set MULTILIB_EXCEPTIONS to be all of the switch exceptions in
153.9869 -+## shell case syntax that should not be built.
153.9870 -+## For example, in the PowerPC embedded ABI support, it is not desirable to
153.9871 -+## build libraries compiled with the -mcall-aix option and either of the
153.9872 -+## -fleading-underscore or -mlittle options at the same time.  Therefore
153.9873 -+## MULTILIB_EXCEPTIONS is set to
153.9874 -+##
153.9875 -+## *mcall-aix/*fleading-underscore* *mlittle/*mcall-aix*
153.9876 -+##
153.9877 -+
153.9878 -+MULTILIB_EXCEPTIONS = *mno-hw-mul/*mhw-mulx*
153.9879 -+
153.9880 -+##
153.9881 -+## MULTILIB_EXTRA_OPTS Sometimes it is desirable that when building
153.9882 -+## multiple versions of libgcc.a certain options should always be passed on
153.9883 -+## to the compiler.  In that case, set MULTILIB_EXTRA_OPTS to be the list
153.9884 -+## of options to be used for all builds.
153.9885 -+##
153.9886 -+
153.9887 ---- gcc-3.4.3/gcc/config.gcc
153.9888 -+++ gcc-3.4.3-nios2/gcc/config.gcc
153.9889 -@@ -1321,6 +1321,10 @@ m32rle-*-linux*)
153.9890 - 		thread_file='posix'
153.9891 - 	fi
153.9892 - 	;;
153.9893 -+# JBG
153.9894 -+nios2-*-* | nios2-*-*)
153.9895 -+	tm_file="elfos.h ${tm_file}"
153.9896 -+	;;
153.9897 - # m68hc11 and m68hc12 share the same machine description.
153.9898 - m68hc11-*-*|m6811-*-*)
153.9899 - 	tm_file="dbxelf.h elfos.h m68hc11/m68hc11.h"
153.9900 ---- gcc-3.4.3/gcc/cse.c
153.9901 -+++ gcc-3.4.3-nios2/gcc/cse.c
153.9902 -@@ -3134,6 +3134,10 @@ find_comparison_args (enum rtx_code code
153.9903 - #ifdef FLOAT_STORE_FLAG_VALUE
153.9904 - 	  REAL_VALUE_TYPE fsfv;
153.9905 - #endif
153.9906 -+#ifdef __nios2__
153.9907 -+	  if (p->is_const)
153.9908 -+	    break;
153.9909 -+#endif
153.9910 - 
153.9911 - 	  /* If the entry isn't valid, skip it.  */
153.9912 - 	  if (! exp_equiv_p (p->exp, p->exp, 1, 0))
153.9913 ---- gcc-3.4.3/gcc/doc/extend.texi
153.9914 -+++ gcc-3.4.3-nios2/gcc/doc/extend.texi
153.9915 -@@ -5636,12 +5636,118 @@ to those machines.  Generally these gene
153.9916 - instructions, but allow the compiler to schedule those calls.
153.9917 - 
153.9918 - @menu
153.9919 -+* Altera Nios II Built-in Functions::
153.9920 - * Alpha Built-in Functions::
153.9921 - * ARM Built-in Functions::
153.9922 - * X86 Built-in Functions::
153.9923 - * PowerPC AltiVec Built-in Functions::
153.9924 - @end menu
153.9925 - 
153.9926 -+@node Altera Nios II Built-in Functions
153.9927 -+@subsection Altera Nios II Built-in Functions
153.9928 -+
153.9929 -+These built-in functions are available for the Altera Nios II
153.9930 -+family of processors.
153.9931 -+
153.9932 -+The following built-in functions are always available.  They
153.9933 -+all generate the machine instruction that is part of the name.
153.9934 -+
153.9935 -+@example
153.9936 -+int __builtin_ldbio (volatile const void *)
153.9937 -+int __builtin_ldbuio (volatile const void *)
153.9938 -+int __builtin_ldhio (volatile const void *)
153.9939 -+int __builtin_ldhuio (volatile const void *)
153.9940 -+int __builtin_ldwio (volatile const void *)
153.9941 -+void __builtin_stbio (volatile void *, int)
153.9942 -+void __builtin_sthio (volatile void *, int)
153.9943 -+void __builtin_stwio (volatile void *, int)
153.9944 -+void __builtin_sync (void)
153.9945 -+int __builtin_rdctl (int) 
153.9946 -+void __builtin_wrctl (int, int)
153.9947 -+@end example
153.9948 -+
153.9949 -+The following built-in functions are always available.  They
153.9950 -+all generate a Nios II Custom Instruction. The name of the 
153.9951 -+function represents the types that the function takes and 
153.9952 -+returns. The letter before the @code{n} is the return type
153.9953 -+or void if absent. The @code{n} represnts the first parameter
153.9954 -+to all the custom instructions, the custom instruction number.
153.9955 -+The two letters after the @code{n} represent the up to two 
153.9956 -+parameters to the function.
153.9957 -+
153.9958 -+The letters reprsent the following data types:
153.9959 -+@table @code
153.9960 -+@item <no letter>
153.9961 -+@code{void} for return type and no parameter for parameter types.
153.9962 -+
153.9963 -+@item i
153.9964 -+@code{int} for return type and parameter type
153.9965 -+
153.9966 -+@item f
153.9967 -+@code{float} for return type and parameter type
153.9968 -+
153.9969 -+@item p
153.9970 -+@code{void *} for return type and parameter type
153.9971 -+
153.9972 -+@end table
153.9973 -+
153.9974 -+And the function names are:
153.9975 -+@example
153.9976 -+void __builtin_custom_n (void)
153.9977 -+void __builtin_custom_ni (int)
153.9978 -+void __builtin_custom_nf (float)
153.9979 -+void __builtin_custom_np (void *)
153.9980 -+void __builtin_custom_nii (int, int)
153.9981 -+void __builtin_custom_nif (int, float)
153.9982 -+void __builtin_custom_nip (int, void *)
153.9983 -+void __builtin_custom_nfi (float, int)
153.9984 -+void __builtin_custom_nff (float, float)
153.9985 -+void __builtin_custom_nfp (float, void *)
153.9986 -+void __builtin_custom_npi (void *, int)
153.9987 -+void __builtin_custom_npf (void *, float)
153.9988 -+void __builtin_custom_npp (void *, void *)
153.9989 -+int __builtin_custom_in (void)
153.9990 -+int __builtin_custom_ini (int)
153.9991 -+int __builtin_custom_inf (float)
153.9992 -+int __builtin_custom_inp (void *)
153.9993 -+int __builtin_custom_inii (int, int)
153.9994 -+int __builtin_custom_inif (int, float)
153.9995 -+int __builtin_custom_inip (int, void *)
153.9996 -+int __builtin_custom_infi (float, int)
153.9997 -+int __builtin_custom_inff (float, float)
153.9998 -+int __builtin_custom_infp (float, void *)
153.9999 -+int __builtin_custom_inpi (void *, int)
153.10000 -+int __builtin_custom_inpf (void *, float)
153.10001 -+int __builtin_custom_inpp (void *, void *)
153.10002 -+float __builtin_custom_fn (void)
153.10003 -+float __builtin_custom_fni (int)
153.10004 -+float __builtin_custom_fnf (float)
153.10005 -+float __builtin_custom_fnp (void *)
153.10006 -+float __builtin_custom_fnii (int, int)
153.10007 -+float __builtin_custom_fnif (int, float)
153.10008 -+float __builtin_custom_fnip (int, void *)
153.10009 -+float __builtin_custom_fnfi (float, int)
153.10010 -+float __builtin_custom_fnff (float, float)
153.10011 -+float __builtin_custom_fnfp (float, void *)
153.10012 -+float __builtin_custom_fnpi (void *, int)
153.10013 -+float __builtin_custom_fnpf (void *, float)
153.10014 -+float __builtin_custom_fnpp (void *, void *)
153.10015 -+void * __builtin_custom_pn (void)
153.10016 -+void * __builtin_custom_pni (int)
153.10017 -+void * __builtin_custom_pnf (float)
153.10018 -+void * __builtin_custom_pnp (void *)
153.10019 -+void * __builtin_custom_pnii (int, int)
153.10020 -+void * __builtin_custom_pnif (int, float)
153.10021 -+void * __builtin_custom_pnip (int, void *)
153.10022 -+void * __builtin_custom_pnfi (float, int)
153.10023 -+void * __builtin_custom_pnff (float, float)
153.10024 -+void * __builtin_custom_pnfp (float, void *)
153.10025 -+void * __builtin_custom_pnpi (void *, int)
153.10026 -+void * __builtin_custom_pnpf (void *, float)
153.10027 -+void * __builtin_custom_pnpp (void *, void *)
153.10028 -+@end example
153.10029 -+
153.10030 -+
153.10031 - @node Alpha Built-in Functions
153.10032 - @subsection Alpha Built-in Functions
153.10033 - 
153.10034 ---- gcc-3.4.3/gcc/doc/invoke.texi
153.10035 -+++ gcc-3.4.3-nios2/gcc/doc/invoke.texi
153.10036 -@@ -337,6 +337,14 @@ in the following sections.
153.10037 - @item Machine Dependent Options
153.10038 - @xref{Submodel Options,,Hardware Models and Configurations}.
153.10039 - 
153.10040 -+@emph{Altera Nios II Options}
153.10041 -+@gccoptlist{-msmallc -mno-bypass-cache -mbypass-cache @gol
153.10042 -+-mno-cache-volatile -mcache-volatile -mno-inline-memcpy @gol 
153.10043 -+-minline-memcpy -mno-fast-sw-div -mfast-sw-div @gol
153.10044 -+-mhw-mul -mno-hw-mul -mhw-mulx -mno-hw-mulx @gol
153.10045 -+-mno-hw-div -mhw-div @gol
153.10046 -+-msys-crt0= -msys-lib= -msys=nosys }
153.10047 -+
153.10048 - @emph{M680x0 Options}
153.10049 - @gccoptlist{-m68000  -m68020  -m68020-40  -m68020-60  -m68030  -m68040 @gol
153.10050 - -m68060  -mcpu32  -m5200  -m68881  -mbitfield  -mc68000  -mc68020   @gol
153.10051 -@@ -5836,6 +5844,7 @@ machine description.  The default for th
153.10052 - that macro, which enables you to change the defaults.
153.10053 - 
153.10054 - @menu
153.10055 -+* Altera Nios II Options::
153.10056 - * M680x0 Options::
153.10057 - * M68hc1x Options::
153.10058 - * VAX Options::
153.10059 -@@ -5871,6 +5880,103 @@ that macro, which enables you to change 
153.10060 - * FRV Options::
153.10061 - @end menu
153.10062 - 
153.10063 -+
153.10064 -+@node Altera Nios II Options
153.10065 -+@subsection Altera Nios II Options
153.10066 -+@cindex Altera Nios II options
153.10067 -+
153.10068 -+These are the @samp{-m} options defined for the Altera Nios II 
153.10069 -+processor.
153.10070 -+
153.10071 -+@table @gcctabopt
153.10072 -+
153.10073 -+@item -msmallc
153.10074 -+@opindex msmallc
153.10075 -+
153.10076 -+Link with a limited version of the C library, -lsmallc. For more 
153.10077 -+information see the C Library Documentation.
153.10078 -+
153.10079 -+
153.10080 -+@item -mbypass-cache
153.10081 -+@itemx -mno-bypass-cache
153.10082 -+@opindex mno-bypass-cache
153.10083 -+@opindex mbypass-cache
153.10084 -+
153.10085 -+Force all load and store instructions to always bypass cache by 
153.10086 -+using io variants of the instructions. The default is to not
153.10087 -+bypass the cache.
153.10088 -+
153.10089 -+@item -mno-cache-volatile 
153.10090 -+@itemx -mcache-volatile       
153.10091 -+@opindex mcache-volatile 
153.10092 -+@opindex mno-cache-volatile
153.10093 -+
153.10094 -+Volatile memory access bypass the cache using the io variants of 
153.10095 -+the ld and st instructions. The default is to cache volatile 
153.10096 -+accesses. 
153.10097 -+
153.10098 -+-mno-cache-volatile is deprecated and will be deleted in a 
153.10099 -+future GCC release.
153.10100 -+
153.10101 -+
153.10102 -+@item -mno-inline-memcpy
153.10103 -+@itemx -minline-memcpy
153.10104 -+@opindex mno-inline-memcpy 
153.10105 -+@opindex minline-memcpy
153.10106 -+
153.10107 -+Do not inline memcpy. The default is to inline when -O is on.
153.10108 -+
153.10109 -+
153.10110 -+@item -mno-fast-sw-div
153.10111 -+@itemx -mfast-sw-div
153.10112 -+@opindex mno-fast-sw-div
153.10113 -+@opindex mfast-sw-div
153.10114 -+
153.10115 -+Do no use table based fast divide for small numbers. The default 
153.10116 -+is to use the fast divide at -O3 and above.
153.10117 -+
153.10118 -+
153.10119 -+@item -mno-hw-mul
153.10120 -+@itemx -mhw-mul
153.10121 -+@itemx -mno-hw-mulx
153.10122 -+@itemx -mhw-mulx
153.10123 -+@itemx -mno-hw-div
153.10124 -+@itemx -mhw-div
153.10125 -+@opindex mno-hw-mul
153.10126 -+@opindex mhw-mul
153.10127 -+@opindex mno-hw-mulx
153.10128 -+@opindex mhw-mulx
153.10129 -+@opindex mno-hw-div
153.10130 -+@opindex mhw-div
153.10131 -+
153.10132 -+Enable or disable emitting @code{mul}, @code{mulx} and @code{div} family of 
153.10133 -+instructions by the compiler. The default is to emit @code{mul}
153.10134 -+and not emit @code{div} and @code{mulx}.
153.10135 -+
153.10136 -+The different combinations of @code{mul} and @code{mulx} instructions 
153.10137 -+generate a different multilib options. 
153.10138 -+
153.10139 -+
153.10140 -+@item -msys-crt0=@var{startfile}
153.10141 -+@opindex msys-crt0
153.10142 -+
153.10143 -+@var{startfile} is the file name  of the startfile (crt0) to use 
153.10144 -+when linking. The default is crt0.o that comes with libgloss
153.10145 -+and is only suitable for use with the instruction set
153.10146 -+simulator.
153.10147 -+
153.10148 -+@item -msys-lib=@var{systemlib}
153.10149 -+@itemx -msys-lib=nosys
153.10150 -+@opindex msys-lib
153.10151 -+
153.10152 -+@var{systemlib} is the library name of the library which provides
153.10153 -+the system calls required by the C library, e.g. @code{read}, @code{write}
153.10154 -+etc. The default is to use nosys, this library provides
153.10155 -+stub implementations of the calls and is part of libgloss.
153.10156 -+
153.10157 -+@end table
153.10158 -+
153.10159 -+
153.10160 - @node M680x0 Options
153.10161 - @subsection M680x0 Options
153.10162 - @cindex M680x0 options
153.10163 ---- gcc-3.4.3/gcc/doc/md.texi
153.10164 -+++ gcc-3.4.3-nios2/gcc/doc/md.texi
153.10165 -@@ -1335,6 +1335,49 @@ However, here is a summary of the machin
153.10166 - available on some particular machines.
153.10167 - 
153.10168 - @table @emph
153.10169 -+
153.10170 -+@item Altera Nios II family---@file{nios2.h}
153.10171 -+@table @code
153.10172 -+
153.10173 -+@item I
153.10174 -+Integer that is valid as an immediate operand in an
153.10175 -+instruction taking a signed 16-bit number. Range
153.10176 -+@minus{}32768 to 32767.
153.10177 -+
153.10178 -+@item J
153.10179 -+Integer that is valid as an immediate operand in an
153.10180 -+instruction taking an unsigned 16-bit number. Range
153.10181 -+0 to 65535.
153.10182 -+
153.10183 -+@item K
153.10184 -+Integer that is valid as an immediate operand in an
153.10185 -+instruction taking only the upper 16-bits of a
153.10186 -+32-bit number. Range 32-bit numbers with the lower
153.10187 -+16-bits being 0.
153.10188 -+
153.10189 -+@item L
153.10190 -+Integer that is valid as an immediate operand for a 
153.10191 -+shift instruction. Range 0 to 31.
153.10192 -+
153.10193 -+
153.10194 -+@item M
153.10195 -+Integer that is valid as an immediate operand for
153.10196 -+only the value 0. Can be used in conjunction with
153.10197 -+the format modifier @code{z} to use @code{r0}
153.10198 -+instead of @code{0} in the assembly output.
153.10199 -+
153.10200 -+@item N
153.10201 -+Integer that is valid as an immediate operand for
153.10202 -+a custom instruction opcode. Range 0 to 255.
153.10203 -+
153.10204 -+@item S
153.10205 -+Matches immediates which are addresses in the small
153.10206 -+data section and therefore can be added to @code{gp}
153.10207 -+as a 16-bit immediate to re-create their 32-bit value.
153.10208 -+
153.10209 -+@end table
153.10210 -+
153.10211 -+
153.10212 - @item ARM family---@file{arm.h}
153.10213 - @table @code
153.10214 - @item f
   154.1 --- a/patches/gcc/3.4.4/arm-softfloat.patch	Tue Aug 14 19:32:22 2007 +0000
   154.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.3 @@ -1,270 +0,0 @@
   154.4 -Note... modified my mjn3 to not conflict with the big endian arm patch.
   154.5 -Warning!!!  Only the linux target is aware of TARGET_ENDIAN_DEFAULT.
   154.6 -Also changed
   154.7 -  #define SUBTARGET_EXTRA_ASM_SPEC "\
   154.8 -  %{!mcpu=*:-mcpu=xscale} \
   154.9 -  %{mhard-float:-mfpu=fpa} \
  154.10 -  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
  154.11 -to
  154.12 -  #define SUBTARGET_EXTRA_ASM_SPEC "\
  154.13 -  %{mhard-float:-mfpu=fpa} \
  154.14 -  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
  154.15 -in gcc/config/arm/linux-elf.h.
  154.16 -#
  154.17 -# Submitted:
  154.18 -#
  154.19 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
  154.20 -#
  154.21 -# Description:
  154.22 -#
  154.23 -# Nicholas Pitre released this patch for gcc soft-float support here: 
  154.24 -# http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-October/006436.html
  154.25 -#
  154.26 -# This version has been adapted to work with gcc 3.4.0.
  154.27 -#
  154.28 -# The original patch doesn't distinguish between softfpa and softvfp modes
  154.29 -# in the way Nicholas Pitre probably meant.  His description is:
  154.30 -#
  154.31 -# "Default is to use APCS-32 mode with soft-vfp.  The old Linux default for
  154.32 -# floats can be achieved with -mhard-float or with the configure
  154.33 -# --with-float=hard option.  If -msoft-float or --with-float=soft is used then
  154.34 -# software float support will be used just like the default but with the legacy
  154.35 -# big endian word ordering for double float representation instead."
  154.36 -#
  154.37 -# Which means the following:
  154.38 -#
  154.39 -# * If you compile without -mhard-float or -msoft-float, you should get
  154.40 -#   software floating point, using the VFP format.  The produced object file
  154.41 -#   should have these flags in its header:
  154.42 -#
  154.43 -#     private flags = 600: [APCS-32] [VFP float format] [software FP]
  154.44 -#
  154.45 -# * If you compile with -mhard-float, you should get hardware floating point,
  154.46 -#   which always uses the FPA format.  Object file header flags should be:
  154.47 -#
  154.48 -#     private flags = 0: [APCS-32] [FPA float format]
  154.49 -#
  154.50 -# * If you compile with -msoft-float, you should get software floating point,
  154.51 -#   using the FPA format.  This is done for compatibility reasons with many
  154.52 -#   existing distributions.  Object file header flags should be:
  154.53 -#
  154.54 -#     private flags = 200: [APCS-32] [FPA float format] [software FP]
  154.55 -#
  154.56 -# The original patch from Nicholas Pitre contained the following constructs:
  154.57 -#
  154.58 -#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
  154.59 -#     %{mhard-float:-mfpu=fpa} \
  154.60 -#     %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
  154.61 -#
  154.62 -# However, gcc doesn't accept this ";:" notation, used in the 3rd line.  This
  154.63 -# is probably the reason Robert Schwebel modified it to:
  154.64 -#
  154.65 -#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
  154.66 -#     %{mhard-float:-mfpu=fpa} \
  154.67 -#     %{!mhard-float: %{msoft-float:-mfpu=softfpa -mfpu=softvfp}}"
  154.68 -#
  154.69 -# But this causes the following behaviour:
  154.70 -#
  154.71 -# * If you compile without -mhard-float or -msoft-float, the compiler generates
  154.72 -#   software floating point instructions, but *nothing* is passed to the
  154.73 -#   assembler, which results in an object file which has flags:
  154.74 -#
  154.75 -#     private flags = 0: [APCS-32] [FPA float format]
  154.76 -#
  154.77 -#   This is not correct!
  154.78 -#
  154.79 -# * If you compile with -mhard-float, the compiler generates hardware floating
  154.80 -#   point instructions, and passes "-mfpu=fpa" to the assembler, which results
  154.81 -#   in an object file which has the same flags as in the previous item, but now
  154.82 -#   those *are* correct.
  154.83 -#    
  154.84 -# * If you compile with -msoft-float, the compiler generates software floating
  154.85 -#   point instructions, and passes "-mfpu=softfpa -mfpu=softvfp" (in that
  154.86 -#   order) to the assembler, which results in an object file with flags:
  154.87 -#
  154.88 -#   private flags = 600: [APCS-32] [VFP float format] [software FP]
  154.89 -#
  154.90 -#   This is not correct, because the last "-mfpu=" option on the assembler
  154.91 -#   command line determines the actual FPU convention used (which should be FPA
  154.92 -#   in this case).
  154.93 -#
  154.94 -# Therefore, I modified this patch to get the desired behaviour.  Every
  154.95 -# instance of the notation:
  154.96 -#
  154.97 -#   %{msoft-float:-mfpu=softfpa -mfpu=softvfp}
  154.98 -#
  154.99 -# was changed to:
 154.100 -#
 154.101 -#   %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}
 154.102 -#
 154.103 -# I also did the following:
 154.104 -# 
 154.105 -# * Modified all TARGET_DEFAULT macros I could find to include ARM_FLAG_VFP, to
 154.106 -#   be consistent with Nicholas' original patch.
 154.107 -# * Removed any "msoft-float" or "mhard-float" from all MULTILIB_DEFAULTS
 154.108 -#   macros I could find.  I think that if you compile without any options, you
 154.109 -#   would like to get the defaults. :)
 154.110 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
 154.111 -#   anymore.  (The required functions are now in libgcc.)
 154.112 -
 154.113 -diff -urN gcc-3.4.1-old/gcc/config/arm/coff.h gcc-3.4.1/gcc/config/arm/coff.h
 154.114 ---- gcc-3.4.1-old/gcc/config/arm/coff.h	2004-02-24 08:25:22.000000000 -0600
 154.115 -+++ gcc-3.4.1/gcc/config/arm/coff.h	2004-09-02 21:51:15.000000000 -0500
 154.116 -@@ -31,11 +31,16 @@
 154.117 - #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
 154.118 - 
 154.119 - #undef  TARGET_DEFAULT
 154.120 --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 154.121 -+#define TARGET_DEFAULT		\
 154.122 -+	( ARM_FLAG_SOFT_FLOAT	\
 154.123 -+	| ARM_FLAG_VFP		\
 154.124 -+	| ARM_FLAG_APCS_32	\
 154.125 -+	| ARM_FLAG_APCS_FRAME	\
 154.126 -+	| ARM_FLAG_MMU_TRAPS )
 154.127 - 
 154.128 - #ifndef MULTILIB_DEFAULTS
 154.129 - #define MULTILIB_DEFAULTS \
 154.130 --  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
 154.131 -+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" }
 154.132 - #endif
 154.133 - 
 154.134 - /* This is COFF, but prefer stabs.  */
 154.135 -diff -urN gcc-3.4.1-old/gcc/config/arm/elf.h gcc-3.4.1/gcc/config/arm/elf.h
 154.136 ---- gcc-3.4.1-old/gcc/config/arm/elf.h	2004-02-24 08:25:22.000000000 -0600
 154.137 -+++ gcc-3.4.1/gcc/config/arm/elf.h	2004-09-02 21:51:15.000000000 -0500
 154.138 -@@ -46,7 +46,9 @@
 154.139 - 
 154.140 - #ifndef SUBTARGET_ASM_FLOAT_SPEC
 154.141 - #define SUBTARGET_ASM_FLOAT_SPEC "\
 154.142 --%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}"
 154.143 -+%{mapcs-float:-mfloat} \
 154.144 -+%{mhard-float:-mfpu=fpa} \
 154.145 -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 154.146 - #endif
 154.147 - 
 154.148 - #ifndef ASM_SPEC
 154.149 -@@ -106,12 +108,17 @@
 154.150 - #endif
 154.151 - 
 154.152 - #ifndef TARGET_DEFAULT
 154.153 --#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 154.154 -+#define TARGET_DEFAULT		\
 154.155 -+	( ARM_FLAG_SOFT_FLOAT	\
 154.156 -+	| ARM_FLAG_VFP		\
 154.157 -+	| ARM_FLAG_APCS_32	\
 154.158 -+	| ARM_FLAG_APCS_FRAME	\
 154.159 -+	| ARM_FLAG_MMU_TRAPS )
 154.160 - #endif
 154.161 - 
 154.162 - #ifndef MULTILIB_DEFAULTS
 154.163 - #define MULTILIB_DEFAULTS \
 154.164 --  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
 154.165 -+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
 154.166 - #endif
 154.167 - 
 154.168 - #define TARGET_ASM_FILE_START_APP_OFF true
 154.169 -diff -urN gcc-3.4.1-old/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 154.170 ---- gcc-3.4.1-old/gcc/config/arm/linux-elf.h	2004-09-02 21:50:52.000000000 -0500
 154.171 -+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-09-02 22:00:49.000000000 -0500
 154.172 -@@ -44,12 +44,26 @@
 154.173 - #define TARGET_LINKER_EMULATION "armelf_linux"
 154.174 - #endif
 154.175 - 
 154.176 --/* Default is to use APCS-32 mode.  */
 154.177 -+/*
 154.178 -+ * Default is to use APCS-32 mode with soft-vfp.
 154.179 -+ * The old Linux default for floats can be achieved with -mhard-float
 154.180 -+ * or with the configure --with-float=hard option.
 154.181 -+ * If -msoft-float or --with-float=soft is used then software float 
 154.182 -+ * support will be used just like the default but with the legacy
 154.183 -+ * big endian word ordering for double float representation instead.
 154.184 -+ */
 154.185 - #undef  TARGET_DEFAULT
 154.186 --#define TARGET_DEFAULT \
 154.187 --		( ARM_FLAG_APCS_32 | \
 154.188 --		  ARM_FLAG_MMU_TRAPS | \
 154.189 --		  TARGET_ENDIAN_DEFAULT )
 154.190 -+#define TARGET_DEFAULT		\
 154.191 -+	( ARM_FLAG_APCS_32	\
 154.192 -+	| ARM_FLAG_SOFT_FLOAT	\
 154.193 -+	| TARGET_ENDIAN_DEFAULT	\
 154.194 -+	| ARM_FLAG_VFP		\
 154.195 -+	| ARM_FLAG_MMU_TRAPS )
 154.196 -+
 154.197 -+#undef  SUBTARGET_EXTRA_ASM_SPEC
 154.198 -+#define SUBTARGET_EXTRA_ASM_SPEC "\
 154.199 -+%{mhard-float:-mfpu=fpa} \
 154.200 -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 154.201 - 
 154.202 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 154.203 - 
 154.204 -@@ -57,7 +71,7 @@
 154.205 - 
 154.206 - #undef  MULTILIB_DEFAULTS
 154.207 - #define MULTILIB_DEFAULTS \
 154.208 --	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 154.209 -+	{ "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" }
 154.210 - 
 154.211 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
 154.212 - 
 154.213 -@@ -72,7 +86,7 @@
 154.214 -    %{shared:-lc} \
 154.215 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
 154.216 - 
 154.217 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
 154.218 -+#define LIBGCC_SPEC "-lgcc"
 154.219 - 
 154.220 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
 154.221 -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
 154.222 -diff -urN gcc-3.4.1-old/gcc/config/arm/t-linux gcc-3.4.1/gcc/config/arm/t-linux
 154.223 ---- gcc-3.4.1-old/gcc/config/arm/t-linux	2003-09-20 16:09:07.000000000 -0500
 154.224 -+++ gcc-3.4.1/gcc/config/arm/t-linux	2004-09-02 21:51:15.000000000 -0500
 154.225 -@@ -4,7 +4,10 @@
 154.226 - LIBGCC2_DEBUG_CFLAGS = -g0
 154.227 - 
 154.228 - LIB1ASMSRC = arm/lib1funcs.asm
 154.229 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
 154.230 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
 154.231 -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
 154.232 -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
 154.233 -+	_fixsfsi _fixunssfsi
 154.234 - 
 154.235 - # MULTILIB_OPTIONS = mhard-float/msoft-float
 154.236 - # MULTILIB_DIRNAMES = hard-float soft-float
 154.237 -diff -urN gcc-3.4.1-old/gcc/config/arm/unknown-elf.h gcc-3.4.1/gcc/config/arm/unknown-elf.h
 154.238 ---- gcc-3.4.1-old/gcc/config/arm/unknown-elf.h	2004-02-24 08:25:22.000000000 -0600
 154.239 -+++ gcc-3.4.1/gcc/config/arm/unknown-elf.h	2004-09-02 21:51:15.000000000 -0500
 154.240 -@@ -30,7 +30,12 @@
 154.241 - 
 154.242 - /* Default to using APCS-32 and software floating point.  */
 154.243 - #ifndef TARGET_DEFAULT
 154.244 --#define TARGET_DEFAULT	(ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 154.245 -+#define TARGET_DEFAULT		\
 154.246 -+	( ARM_FLAG_SOFT_FLOAT	\
 154.247 -+	| ARM_FLAG_VFP		\
 154.248 -+	| ARM_FLAG_APCS_32	\
 154.249 -+	| ARM_FLAG_APCS_FRAME	\
 154.250 -+	| ARM_FLAG_MMU_TRAPS )
 154.251 - #endif
 154.252 - 
 154.253 - /* Now we define the strings used to build the spec file.  */
 154.254 -diff -urN gcc-3.4.1-old/gcc/config/arm/xscale-elf.h gcc-3.4.1/gcc/config/arm/xscale-elf.h
 154.255 ---- gcc-3.4.1-old/gcc/config/arm/xscale-elf.h	2003-07-01 18:26:43.000000000 -0500
 154.256 -+++ gcc-3.4.1/gcc/config/arm/xscale-elf.h	2004-09-02 21:51:15.000000000 -0500
 154.257 -@@ -49,11 +49,12 @@
 154.258 - 		     endian, regardless of the endian-ness of the memory
 154.259 - 		     system.  */
 154.260 - 		     
 154.261 --#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 154.262 --  %{mhard-float:-mfpu=fpa} \
 154.263 --  %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
 154.264 -+#define SUBTARGET_EXTRA_ASM_SPEC "\
 154.265 -+%{!mcpu=*:-mcpu=xscale} \
 154.266 -+%{mhard-float:-mfpu=fpa} \
 154.267 -+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 154.268 - 
 154.269 - #ifndef MULTILIB_DEFAULTS
 154.270 - #define MULTILIB_DEFAULTS \
 154.271 --  { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
 154.272 -+  { "mlittle-endian", "mno-thumb-interwork", "marm" }
 154.273 - #endif
   155.1 --- a/patches/gcc/3.4.4/fix-fixincl.patch	Tue Aug 14 19:32:22 2007 +0000
   155.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   155.3 @@ -1,70 +0,0 @@
   155.4 -See http://gcc.gnu.org/PR22541
   155.5 -
   155.6 -From: Dan Kegel
   155.7 -
   155.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
   155.9 -(the only two I've tried like this), the configure script happily copies
  155.10 -the glibc include files from include to sys-include; here's the line
  155.11 -from the log file (with $PREFIX instead of the real prefix):
  155.12 -
  155.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  155.14 -
  155.15 -But later, when running fixincludes, it gives the error message
  155.16 - The directory that should contain system headers does not exist:
  155.17 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  155.18 -
  155.19 -Nevertheless, it continues building; the header files it installs in
  155.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  155.21 -do not include the boilerplate that would cause it to #include_next the
  155.22 -glibc headers in the system header directory.
  155.23 -Thus the resulting toolchain can't compile the following program:
  155.24 -#include <limits.h>
  155.25 -int x = PATH_MAX;
  155.26 -because its limits.h doesn't include the glibc header.
  155.27 -
  155.28 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
  155.29 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
  155.30 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  155.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  155.32 -it is only created later, during 'make install'.  (Which makes this problem
  155.33 -confusing, since one only notices the breakage well after 'make install',
  155.34 -at which point the path configure complained about does exist, and has the
  155.35 -right stuff in it.)
  155.36 -
  155.37 -A possible fix is to replace the line in gcc/Makefile.in that says
  155.38 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  155.39 -with a version that gets rid of extra ..'s, e.g.
  155.40 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
  155.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  155.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  155.43 -
  155.44 -
  155.45 ---- gcc-3.4.3/gcc/Makefile.in.foo	2005-05-20 11:41:39.000000000 -0700
  155.46 -+++ gcc-3.4.3/gcc/Makefile.in	2005-05-20 12:08:46.000000000 -0700
  155.47 -@@ -350,7 +350,10 @@
  155.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  155.49 - 
  155.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  155.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  155.52 -+# Purge it of unneccessary internal relative paths
  155.53 -+# to directories that might not exist yet.
  155.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  155.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  155.56 - 
  155.57 - # Control whether to run fixproto and fixincludes.
  155.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
  155.59 -@@ -2532,11 +2535,13 @@
  155.60 - 	$(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
  155.61 - 
  155.62 - # Build fixed copies of system files.
  155.63 -+# Abort if no system headers available, unless building a crosscompiler.
  155.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
  155.65 - stmp-fixinc: fixinc.sh gsyslimits.h
  155.66 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
  155.67 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  155.68 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  155.69 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  155.70 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  155.71 - 	  then sleep 1; else exit 1; fi; \
  155.72 - 	fi
  155.73 - 	rm -rf include; mkdir include
   156.1 --- a/patches/gcc/3.4.5/fix-fixincl.patch	Tue Aug 14 19:32:22 2007 +0000
   156.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   156.3 @@ -1,70 +0,0 @@
   156.4 -See http://gcc.gnu.org/PR22541
   156.5 -
   156.6 -From: Dan Kegel
   156.7 -
   156.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
   156.9 -(the only two I've tried like this), the configure script happily copies
  156.10 -the glibc include files from include to sys-include; here's the line
  156.11 -from the log file (with $PREFIX instead of the real prefix):
  156.12 -
  156.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  156.14 -
  156.15 -But later, when running fixincludes, it gives the error message
  156.16 - The directory that should contain system headers does not exist:
  156.17 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  156.18 -
  156.19 -Nevertheless, it continues building; the header files it installs in
  156.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  156.21 -do not include the boilerplate that would cause it to #include_next the
  156.22 -glibc headers in the system header directory.
  156.23 -Thus the resulting toolchain can't compile the following program:
  156.24 -#include <limits.h>
  156.25 -int x = PATH_MAX;
  156.26 -because its limits.h doesn't include the glibc header.
  156.27 -
  156.28 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
  156.29 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
  156.30 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  156.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  156.32 -it is only created later, during 'make install'.  (Which makes this problem
  156.33 -confusing, since one only notices the breakage well after 'make install',
  156.34 -at which point the path configure complained about does exist, and has the
  156.35 -right stuff in it.)
  156.36 -
  156.37 -A possible fix is to replace the line in gcc/Makefile.in that says
  156.38 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  156.39 -with a version that gets rid of extra ..'s, e.g.
  156.40 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
  156.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  156.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  156.43 -
  156.44 -
  156.45 ---- gcc-3.4.3/gcc/Makefile.in.foo	2005-05-20 11:41:39.000000000 -0700
  156.46 -+++ gcc-3.4.3/gcc/Makefile.in	2005-05-20 12:08:46.000000000 -0700
  156.47 -@@ -350,7 +350,10 @@
  156.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  156.49 - 
  156.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  156.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  156.52 -+# Purge it of unneccessary internal relative paths
  156.53 -+# to directories that might not exist yet.
  156.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  156.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  156.56 - 
  156.57 - # Control whether to run fixproto and fixincludes.
  156.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
  156.59 -@@ -2532,11 +2535,13 @@
  156.60 - 	$(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
  156.61 - 
  156.62 - # Build fixed copies of system files.
  156.63 -+# Abort if no system headers available, unless building a crosscompiler.
  156.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
  156.65 - stmp-fixinc: fixinc.sh gsyslimits.h
  156.66 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
  156.67 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  156.68 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  156.69 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  156.70 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  156.71 - 	  then sleep 1; else exit 1; fi; \
  156.72 - 	fi
  156.73 - 	rm -rf include; mkdir include
   157.1 --- a/patches/gcc/3.4.5/gcc-3.4.0-arm-bigendian.patch	Tue Aug 14 19:32:22 2007 +0000
   157.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   157.3 @@ -1,82 +0,0 @@
   157.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
   157.5 -Adds support for arm*b-linux* big-endian ARM targets
   157.6 -
   157.7 -Fixes build error
   157.8 -
   157.9 -/opt/crosstool/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
  157.10 -Supported emulations: armelfb_linux armelfb
  157.11 -collect2: ld returned 1 exit status
  157.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/build-glibc/csu/crt1.o] Error 1
  157.13 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3/csu'
  157.14 -make[1]: *** [csu/subdir_lib] Error 2
  157.15 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc36/build/armeb-unknown-linux-gnu/gcc-3.4.2-glibc-2.3.3/glibc-2.3.3'
  157.16 -make: *** [all] Error 2
  157.17 -
  157.18 -
  157.19 -See http://gcc.gnu.org/PR16350
  157.20 -
  157.21 -diff -urN gcc-3.4.0.orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  157.22 ---- gcc-3.4.0.orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  157.23 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-07-02 14:46:29.225443757 +0200
  157.24 -@@ -30,17 +30,34 @@
  157.25 - /* Do not assume anything about header files.  */
  157.26 - #define NO_IMPLICIT_EXTERN_C
  157.27 - 
  157.28 -+/*
  157.29 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  157.30 -+ * (big endian) configurations.
  157.31 -+ */
  157.32 -+#if TARGET_BIG_ENDIAN_DEFAULT
  157.33 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  157.34 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  157.35 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  157.36 -+#else
  157.37 -+#define TARGET_ENDIAN_DEFAULT 0
  157.38 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  157.39 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  157.40 -+#endif
  157.41 -+
  157.42 - /* Default is to use APCS-32 mode.  */
  157.43 - #undef  TARGET_DEFAULT
  157.44 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
  157.45 -+#define TARGET_DEFAULT \
  157.46 -+		( ARM_FLAG_APCS_32 | \
  157.47 -+		  ARM_FLAG_MMU_TRAPS | \
  157.48 -+		  TARGET_ENDIAN_DEFAULT )
  157.49 - 
  157.50 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  157.51 - 
  157.52 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  157.53 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  157.54 - 
  157.55 - #undef  MULTILIB_DEFAULTS
  157.56 - #define MULTILIB_DEFAULTS \
  157.57 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  157.58 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  157.59 - 
  157.60 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
  157.61 - 
  157.62 -@@ -89,7 +106,7 @@
  157.63 -    %{rdynamic:-export-dynamic} \
  157.64 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  157.65 -    -X \
  157.66 --   %{mbig-endian:-EB}" \
  157.67 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  157.68 -    SUBTARGET_EXTRA_LINK_SPEC
  157.69 - 
  157.70 - #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
  157.71 -diff -urN gcc-3.4.0.orig/gcc/config.gcc gcc-3.4.0/gcc/config.gcc
  157.72 ---- gcc-3.4.0.orig/gcc/config.gcc	2004-04-17 04:28:24.000000000 +0200
  157.73 -+++ gcc-3.4.0/gcc/config.gcc	2004-07-02 14:44:40.045822542 +0200
  157.74 -@@ -666,6 +666,11 @@
  157.75 - 	;;
  157.76 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  157.77 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
  157.78 -+	case $target in
  157.79 -+	arm*b-*)
  157.80 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  157.81 -+		;;
  157.82 -+	esac
  157.83 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
  157.84 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  157.85 - 	gnu_ld=yes
   158.1 --- a/patches/gcc/3.4.5/gcc-3.4.0-arm-lib1asm.patch	Tue Aug 14 19:32:22 2007 +0000
   158.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   158.3 @@ -1,27 +0,0 @@
   158.4 -# Origin: from a patch by Dimitry Andric <dimitry@andric.com>, 2004-05-01
   158.5 -# See http://gcc.gnu.org/PR14352 and http://gcc.gnu.org/PR16314
   158.6 -# See also http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02568.html et seq for why this isn't in mainline
   158.7 -# Fixes errors like the following when building glibc (or any other executable
   158.8 -# or shared library) when using gcc 3.4.0 for ARM with softfloat:
   158.9 -#
  158.10 -# .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3'
  158.11 -# .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3'
  158.12 -# .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3'
  158.13 -# .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2'
  158.14 -# .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi'
  158.15 -
  158.16 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux
  158.17 ---- gcc-3.4.0-orig/gcc/config/arm/t-linux	2003-09-20 23:09:07.000000000 +0200
  158.18 -+++ gcc-3.4.0/gcc/config/arm/t-linux	2004-05-01 20:31:59.102846400 +0200
  158.19 -@@ -4,7 +4,10 @@
  158.20 - LIBGCC2_DEBUG_CFLAGS = -g0
  158.21 - 
  158.22 - LIB1ASMSRC = arm/lib1funcs.asm
  158.23 --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
  158.24 -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
  158.25 -+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
  158.26 -+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
  158.27 -+	_fixsfsi _fixunssfsi
  158.28 - 
  158.29 - # MULTILIB_OPTIONS = mhard-float/msoft-float
  158.30 - # MULTILIB_DIRNAMES = hard-float soft-float
   159.1 --- a/patches/gcc/3.4.5/gcc-3.4.0-arm-nolibfloat.patch	Tue Aug 14 19:32:22 2007 +0000
   159.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   159.3 @@ -1,24 +0,0 @@
   159.4 -# Dimitry Andric <dimitry@andric.com>, 2004-05-01
   159.5 -#
   159.6 -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
   159.7 -#   anymore.  (The required functions are now in libgcc.)
   159.8 -# 
   159.9 -# Fixes errors like
  159.10 -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
  159.11 -# collect2: ld returned 1 exit status
  159.12 -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
  159.13 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
  159.14 -
  159.15 -diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h
  159.16 ---- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h	2004-01-31 07:18:11.000000000 +0100
  159.17 -+++ gcc-3.4.0/gcc/config/arm/linux-elf.h	2004-05-01 19:19:06.935979200 +0200
  159.18 -@@ -55,7 +73,7 @@
  159.19 -    %{shared:-lc} \
  159.20 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
  159.21 - 
  159.22 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
  159.23 -+#define LIBGCC_SPEC "-lgcc"
  159.24 - 
  159.25 - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
  159.26 -    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
  159.27 -
   160.1 --- a/patches/gcc/3.4.5/pr15068-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   160.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   160.3 @@ -1,44 +0,0 @@
   160.4 -See http://gcc.gnu.org/PR15068
   160.5 -
   160.6 -Fixes error
   160.7 -
   160.8 -../sysdeps/generic/s_fmax.c: In function `__fmax':
   160.9 -../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
  160.10 -Please submit a full bug report,
  160.11 -with preprocessed source if appropriate.
  160.12 -See <URL:http://gcc.gnu.org/bugs.html> for instructions.
  160.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
  160.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
  160.15 -make[1]: *** [math/others] Error 2
  160.16 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
  160.17 -make: *** [all] Error 2
  160.18 -
  160.19 -[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
  160.20 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
  160.21 -
  160.22 ---- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
  160.23 -+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
  160.24 -@@ -1878,6 +1878,7 @@
  160.25 - 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
  160.26 - 	  rtx cond_true = XEXP (set_src, 0);
  160.27 - 	  rtx reg = XEXP (cond_true, 0);
  160.28 -+ 	  enum rtx_code inv_cond;
  160.29 - 
  160.30 - 	  if (GET_CODE (reg) == SUBREG)
  160.31 - 	    reg = SUBREG_REG (reg);
  160.32 -@@ -1886,11 +1887,13 @@
  160.33 - 	     in the form of a comparison of a register against zero.  
  160.34 - 	     If the condition is more complex than that, then it is safe
  160.35 - 	     not to record any information.  */
  160.36 --	  if (GET_CODE (reg) == REG
  160.37 -+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
  160.38 -+ 	  if (inv_cond != UNKNOWN
  160.39 -+	      && GET_CODE (reg) == REG
  160.40 - 	      && XEXP (cond_true, 1) == const0_rtx)
  160.41 - 	    {
  160.42 - 	      rtx cond_false
  160.43 --		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
  160.44 -+		= gen_rtx_fmt_ee (inv_cond,
  160.45 - 				  GET_MODE (cond_true), XEXP (cond_true, 0),
  160.46 - 				  XEXP (cond_true, 1));
  160.47 - 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
   161.1 --- a/patches/gdb/6.2.1/100-uclibc-conf.patch	Tue Aug 14 19:32:22 2007 +0000
   161.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   161.3 @@ -1,290 +0,0 @@
   161.4 -diff -urN gdb-6.2-dist/bfd/config.bfd gdb-6.2/bfd/config.bfd
   161.5 ---- gdb-6.2-dist/bfd/config.bfd	2004-07-09 07:32:35.000000000 -0500
   161.6 -+++ gdb-6.2/bfd/config.bfd	2004-08-08 04:23:19.000000000 -0500
   161.7 -@@ -129,7 +129,7 @@
   161.8 -     targ_defvec=ecoffalpha_little_vec
   161.9 -     targ_selvecs=bfd_elf64_alpha_vec
  161.10 -     ;;
  161.11 --  alpha*-*-linux-gnu* | alpha*-*-elf*)
  161.12 -+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
  161.13 -     targ_defvec=bfd_elf64_alpha_vec
  161.14 -     targ_selvecs=ecoffalpha_little_vec
  161.15 -     ;;
  161.16 -@@ -139,7 +139,7 @@
  161.17 -   alpha*-*-*)
  161.18 -     targ_defvec=ecoffalpha_little_vec
  161.19 -     ;;
  161.20 --  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
  161.21 -+  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu | ia64*-*-linux-uclibc*)
  161.22 -     targ_defvec=bfd_elf64_ia64_little_vec
  161.23 -     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
  161.24 -     ;;
  161.25 -@@ -216,7 +216,7 @@
  161.26 -     targ_defvec=bfd_elf32_littlearm_vec
  161.27 -     targ_selvecs=bfd_elf32_bigarm_vec
  161.28 -     ;;
  161.29 --  armeb-*-elf | arm*b-*-linux-gnu*)
  161.30 -+  armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
  161.31 -     targ_defvec=bfd_elf32_bigarm_vec
  161.32 -     targ_selvecs=bfd_elf32_littlearm_vec
  161.33 -     ;;
  161.34 -@@ -224,7 +224,7 @@
  161.35 -     targ_defvec=bfd_elf32_littlearm_vec
  161.36 -     targ_selvecs=bfd_elf32_bigarm_vec
  161.37 -     ;;
  161.38 --  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
  161.39 -+  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | arm*-*-conix* | \
  161.40 -   arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks)
  161.41 -     targ_defvec=bfd_elf32_littlearm_vec
  161.42 -     targ_selvecs=bfd_elf32_bigarm_vec
  161.43 -@@ -373,7 +373,7 @@
  161.44 -     ;;
  161.45 - 
  161.46 - #ifdef BFD64
  161.47 --  hppa*64*-*-linux-gnu*)
  161.48 -+  hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
  161.49 -     targ_defvec=bfd_elf64_hppa_linux_vec
  161.50 -     targ_selvecs=bfd_elf64_hppa_vec
  161.51 -     ;;
  161.52 -@@ -384,7 +384,7 @@
  161.53 -     ;;
  161.54 - #endif
  161.55 - 
  161.56 --  hppa*-*-linux-gnu* | hppa*-*-netbsd*)
  161.57 -+  hppa*-*-linux-gnu* | hppa*-*-netbsd* | hppa*-*-linux-uclibc*)
  161.58 -     targ_defvec=bfd_elf32_hppa_linux_vec
  161.59 -     targ_selvecs=bfd_elf32_hppa_vec
  161.60 -     ;;
  161.61 -@@ -507,7 +507,7 @@
  161.62 -     targ_selvecs=bfd_elf32_i386_vec
  161.63 -     targ_underscore=yes
  161.64 -     ;;
  161.65 --  i[3-7]86-*-linux-gnu*)
  161.66 -+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
  161.67 -     targ_defvec=bfd_elf32_i386_vec
  161.68 -     targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
  161.69 -     targ64_selvecs=bfd_elf64_x86_64_vec
  161.70 -@@ -521,7 +521,7 @@
  161.71 -     targ_defvec=bfd_elf64_x86_64_vec
  161.72 -     targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
  161.73 -     ;;
  161.74 --  x86_64-*-linux-gnu*)
  161.75 -+  x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
  161.76 -     targ_defvec=bfd_elf64_x86_64_vec
  161.77 -     targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
  161.78 -     ;;
  161.79 -@@ -691,7 +691,7 @@
  161.80 -     targ_defvec=hp300hpux_vec
  161.81 -     targ_underscore=yes
  161.82 -     ;;
  161.83 --  m68*-*-linux*aout*)
  161.84 -+  m68*-*-linux*aout* | m68*-*-linux-uclibc*)
  161.85 -     targ_defvec=m68klinux_vec
  161.86 -     targ_selvecs=bfd_elf32_m68k_vec
  161.87 -     targ_underscore=yes
  161.88 -@@ -972,8 +972,8 @@
  161.89 -     ;;
  161.90 - #endif
  161.91 -   powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
  161.92 --  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
  161.93 --  powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
  161.94 -+  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | powerpc-*-rtems* | \
  161.95 -+  powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss* )
  161.96 -     targ_defvec=bfd_elf32_powerpc_vec
  161.97 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
  161.98 -     targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
  161.99 -@@ -1009,8 +1009,8 @@
 161.100 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
 161.101 -     ;;
 161.102 -   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
 161.103 --  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
 161.104 --  powerpcle-*-rtems*)
 161.105 -+  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* | \
 161.106 -+  powerpcle-*-vxworks* | powerpcle-*-rtems*)
 161.107 -     targ_defvec=bfd_elf32_powerpcle_vec
 161.108 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
 161.109 -     targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
 161.110 -@@ -1177,7 +1177,7 @@
 161.111 -     targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
 161.112 -     targ_underscore=yes
 161.113 -     ;;
 161.114 --  sparc-*-linux-gnu*)
 161.115 -+  sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
 161.116 -     targ_defvec=bfd_elf32_sparc_vec
 161.117 -     targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
 161.118 -     ;;
 161.119 -@@ -1224,7 +1224,7 @@
 161.120 -     targ_defvec=sunos_big_vec
 161.121 -     targ_underscore=yes
 161.122 -     ;;
 161.123 --  sparc64-*-linux-gnu*)
 161.124 -+  sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
 161.125 -     targ_defvec=bfd_elf64_sparc_vec
 161.126 -     targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
 161.127 -     ;;
 161.128 -@@ -1293,7 +1293,7 @@
 161.129 -     targ_underscore=yes
 161.130 -     ;;
 161.131 - 
 161.132 --  vax-*-linux-gnu*)
 161.133 -+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
 161.134 -     targ_defvec=bfd_elf32_vax_vec
 161.135 -     ;;
 161.136 - 
 161.137 -diff -urN gdb-6.2-dist/bfd/configure gdb-6.2/bfd/configure
 161.138 ---- gdb-6.2-dist/bfd/configure	2004-07-07 12:28:45.000000000 -0500
 161.139 -+++ gdb-6.2/bfd/configure	2004-08-08 04:27:01.000000000 -0500
 161.140 -@@ -1698,6 +1698,11 @@
 161.141 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
 161.142 -   ;;
 161.143 - 
 161.144 -+linux-uclibc*)
 161.145 -+  lt_cv_deplibs_check_method=pass_all
 161.146 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 161.147 -+  ;;
 161.148 -+
 161.149 - netbsd*)
 161.150 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 161.151 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 161.152 -@@ -5264,7 +5269,7 @@
 161.153 -   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 161.154 - 	COREFILE=''
 161.155 - 	;;
 161.156 --  alpha*-*-linux-gnu*)
 161.157 -+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
 161.158 - 	COREFILE=trad-core.lo
 161.159 - 	TRAD_HEADER='"hosts/alphalinux.h"'
 161.160 - 	;;
 161.161 -@@ -5328,7 +5333,7 @@
 161.162 - 	COREFILE=trad-core.lo
 161.163 - 	TRAD_HEADER='"hosts/i386mach3.h"'
 161.164 - 	;;
 161.165 --  i[3-7]86-*-linux-gnu*)
 161.166 -+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
 161.167 - 	COREFILE=trad-core.lo
 161.168 - 	TRAD_HEADER='"hosts/i386linux.h"'
 161.169 - 	;;
 161.170 -@@ -5366,7 +5371,7 @@
 161.171 - 	COREFILE=trad-core.lo
 161.172 - 	TRAD_HEADER='"hosts/hp300bsd.h"'
 161.173 - 	;;
 161.174 --  m68*-*-linux-gnu*)
 161.175 -+  m68*-*-linux-gnu* | m68*-*-linux-uclibc)
 161.176 - 	COREFILE=trad-core.lo
 161.177 - 	TRAD_HEADER='"hosts/m68klinux.h"'
 161.178 - 	;;
 161.179 -@@ -5470,7 +5475,7 @@
 161.180 - 	COREFILE=trad-core.lo
 161.181 - 	TRAD_HEADER='"hosts/vaxult2.h"'
 161.182 - 	;;
 161.183 --  vax-*-linux-gnu*)
 161.184 -+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
 161.185 - 	COREFILE=trad-core.lo
 161.186 - 	TRAD_HEADER='"hosts/vaxlinux.h"'
 161.187 - 	;;
 161.188 -diff -urN gdb-6.2-dist/bfd/configure.in gdb-6.2/bfd/configure.in
 161.189 ---- gdb-6.2-dist/bfd/configure.in	2004-07-07 12:28:45.000000000 -0500
 161.190 -+++ gdb-6.2/bfd/configure.in	2004-08-08 04:28:07.000000000 -0500
 161.191 -@@ -164,7 +164,7 @@
 161.192 -   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 161.193 - 	COREFILE=''
 161.194 - 	;;
 161.195 --  alpha*-*-linux-gnu*)
 161.196 -+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
 161.197 - 	COREFILE=trad-core.lo
 161.198 - 	TRAD_HEADER='"hosts/alphalinux.h"'
 161.199 - 	;;
 161.200 -@@ -249,7 +249,7 @@
 161.201 - 	TRAD_HEADER='"hosts/i386mach3.h"'
 161.202 - 	;;
 161.203 - changequote(,)dnl
 161.204 --  i[3-7]86-*-linux-gnu*)
 161.205 -+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
 161.206 - changequote([,])dnl
 161.207 - 	COREFILE=trad-core.lo
 161.208 - 	TRAD_HEADER='"hosts/i386linux.h"'
 161.209 -@@ -290,7 +290,7 @@
 161.210 - 	COREFILE=trad-core.lo
 161.211 - 	TRAD_HEADER='"hosts/hp300bsd.h"'
 161.212 - 	;;
 161.213 --  m68*-*-linux-gnu*)
 161.214 -+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
 161.215 - 	COREFILE=trad-core.lo
 161.216 - 	TRAD_HEADER='"hosts/m68klinux.h"'
 161.217 - 	;;
 161.218 -@@ -378,7 +378,7 @@
 161.219 - 	COREFILE=trad-core.lo
 161.220 - 	TRAD_HEADER='"hosts/vaxult2.h"'
 161.221 - 	;;
 161.222 --  vax-*-linux-gnu*)
 161.223 -+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
 161.224 - 	COREFILE=trad-core.lo
 161.225 - 	TRAD_HEADER='"hosts/vaxlinux.h"'
 161.226 - 	;;
 161.227 -diff -urN gdb-6.2-dist/libtool.m4 gdb-6.2/libtool.m4
 161.228 ---- gdb-6.2-dist/libtool.m4	2003-04-10 22:58:39.000000000 -0500
 161.229 -+++ gdb-6.2/libtool.m4	2004-08-08 03:48:33.000000000 -0500
 161.230 -@@ -645,6 +645,11 @@
 161.231 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
 161.232 -   ;;
 161.233 - 
 161.234 -+linux-uclibc*)
 161.235 -+  lt_cv_deplibs_check_method=pass_all
 161.236 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 161.237 -+  ;;
 161.238 -+
 161.239 - netbsd*)
 161.240 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 161.241 -     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 161.242 -diff -urN gdb-6.2-dist/ltconfig gdb-6.2/ltconfig
 161.243 ---- gdb-6.2-dist/ltconfig	2003-10-03 23:54:47.000000000 -0500
 161.244 -+++ gdb-6.2/ltconfig	2004-08-08 03:48:33.000000000 -0500
 161.245 -@@ -602,7 +602,7 @@
 161.246 - 
 161.247 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 161.248 - case $host_os in
 161.249 --linux-gnu*) ;;
 161.250 -+linux-gnu*|linux-uclibc*) ;;
 161.251 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 161.252 - esac
 161.253 - 
 161.254 -@@ -1259,6 +1259,24 @@
 161.255 -   dynamic_linker='GNU/Linux ld.so'
 161.256 -   ;;
 161.257 - 
 161.258 -+linux-uclibc*)
 161.259 -+  version_type=linux
 161.260 -+  need_lib_prefix=no
 161.261 -+  need_version=no
 161.262 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
 161.263 -+  soname_spec='${libname}${release}.so$major'
 161.264 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 161.265 -+  shlibpath_var=LD_LIBRARY_PATH
 161.266 -+  shlibpath_overrides_runpath=no
 161.267 -+  # This implies no fast_install, which is unacceptable.
 161.268 -+  # Some rework will be needed to allow for fast_install
 161.269 -+  # before this can be enabled.
 161.270 -+  # Note: copied from linux-gnu, and may not be appropriate.
 161.271 -+  hardcode_into_libs=yes
 161.272 -+  # Assume using the uClibc dynamic linker.
 161.273 -+  dynamic_linker="uClibc ld.so"
 161.274 -+  ;;
 161.275 -+
 161.276 - netbsd*)
 161.277 -   need_lib_prefix=no
 161.278 -   need_version=no
 161.279 -diff -urN gdb-6.2-dist/opcodes/configure gdb-6.2/opcodes/configure
 161.280 ---- gdb-6.2-dist/opcodes/configure	2004-07-07 12:28:53.000000000 -0500
 161.281 -+++ gdb-6.2/opcodes/configure	2004-08-08 04:53:55.000000000 -0500
 161.282 -@@ -1701,6 +1701,11 @@
 161.283 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
 161.284 -   ;;
 161.285 - 
 161.286 -+linux-uclibc*)
 161.287 -+  lt_cv_deplibs_check_method=pass_all
 161.288 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 161.289 -+  ;;
 161.290 -+
 161.291 - netbsd*)
 161.292 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 161.293 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
   162.1 --- a/patches/gdb/6.2.1/200-uclibc-readline-conf.patch	Tue Aug 14 19:32:22 2007 +0000
   162.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   162.3 @@ -1,15 +0,0 @@
   162.4 ---- gdb-6.1.1-dist/readline/configure	2003-05-27 18:29:47.000000000 -0500
   162.5 -+++ gdb-6.1.1/readline/configure	2004-08-09 14:20:23.000000000 -0500
   162.6 -@@ -6249,7 +6249,12 @@
   162.7 - 
   162.8 - 
   162.9 - echo "$as_me:$LINENO: checking for mbstate_t" >&5
  162.10 -+echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6
  162.11 - echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
  162.12 -+if test "${bash_cv_have_mbstate_t+set}" != set; then
  162.13 -+  bash_cv_have_mbstate_t=yes
  162.14 -+  echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6
  162.15 -+fi
  162.16 - if test "${bash_cv_have_mbstate_t+set}" = set; then
  162.17 -   echo $ECHO_N "(cached) $ECHO_C" >&6
  162.18 - else
   163.1 --- a/patches/gdb/6.2.1/400-mips-coredump.patch-2.4.23-29	Tue Aug 14 19:32:22 2007 +0000
   163.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   163.3 @@ -1,28 +0,0 @@
   163.4 -Sometime around 2.4.22-23, the mips pt_regs.h fields were reordered, breaking
   163.5 -coredump handling by gdb for current kernels.  Update the hardcoded constants
   163.6 -to reflect the change.
   163.7 ---- gdb-6.2.1/gdb/mips-linux-tdep.c-orig	2004-10-29 14:23:55.000000000 -0500
   163.8 -+++ gdb-6.2.1/gdb/mips-linux-tdep.c	2004-10-29 14:26:44.000000000 -0500
   163.9 -@@ -53,12 +53,22 @@
  163.10 - 
  163.11 - #define EF_REG0			6
  163.12 - #define EF_REG31		37
  163.13 -+
  163.14 -+#if 0
  163.15 - #define EF_LO			38
  163.16 - #define EF_HI			39
  163.17 - #define EF_CP0_EPC		40
  163.18 - #define EF_CP0_BADVADDR		41
  163.19 - #define EF_CP0_STATUS		42
  163.20 - #define EF_CP0_CAUSE		43
  163.21 -+#else
  163.22 -+#define EF_CP0_STATUS		38
  163.23 -+#define EF_LO			39
  163.24 -+#define EF_HI			40
  163.25 -+#define EF_CP0_BADVADDR		41
  163.26 -+#define EF_CP0_CAUSE		42
  163.27 -+#define EF_CP0_EPC		43
  163.28 -+#endif
  163.29 - 
  163.30 - #define EF_SIZE			180
  163.31 - 
   164.1 --- a/patches/gdb/6.2.1/500-thread-timeout.patch	Tue Aug 14 19:32:22 2007 +0000
   164.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.3 @@ -1,34 +0,0 @@
   164.4 ---- gdb-6.3.org/gdb/gdbserver/thread-db.c	2004-10-17 02:42:00.000000000 +0900
   164.5 -+++ gdb-6.3/gdb/gdbserver/thread-db.c	2005-01-27 12:19:29.000000000 +0900
   164.6 -@@ -21,6 +21,7 @@
   164.7 -    Foundation, Inc., 59 Temple Place - Suite 330,
   164.8 -    Boston, MA 02111-1307, USA.  */
   164.9 - 
  164.10 -+#include <unistd.h>
  164.11 - #include "server.h"
  164.12 - 
  164.13 - #include "linux-low.h"
  164.14 -@@ -142,6 +143,7 @@
  164.15 -   td_event_msg_t msg;
  164.16 -   td_err_e err;
  164.17 -   struct inferior_linux_data *tdata;
  164.18 -+  int timeout;
  164.19 - 
  164.20 -   if (debug_threads)
  164.21 -     fprintf (stderr, "Thread creation event.\n");
  164.22 -@@ -152,7 +154,13 @@
  164.23 -      In the LinuxThreads implementation, this is safe,
  164.24 -      because all events come from the manager thread
  164.25 -      (except for its own creation, of course).  */
  164.26 --  err = td_ta_event_getmsg (thread_agent, &msg);
  164.27 -+  for (timeout = 0; timeout < 50000; timeout++)
  164.28 -+    {
  164.29 -+      err = td_ta_event_getmsg (thread_agent, &msg);
  164.30 -+      if (err != TD_NOMSG)
  164.31 -+	break;
  164.32 -+      usleep(1000);
  164.33 -+    }
  164.34 -   if (err != TD_OK)
  164.35 -     fprintf (stderr, "thread getmsg err: %s\n",
  164.36 - 	     thread_db_err_str (err));
  164.37 -
   165.1 --- a/patches/gdb/6.3/100-uclibc-conf.patch	Tue Aug 14 19:32:22 2007 +0000
   165.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   165.3 @@ -1,280 +0,0 @@
   165.4 ---- gdb-6.3/bfd/config.bfd.orig	Fri Oct 15 07:47:11 2004
   165.5 -+++ gdb-6.3/bfd/config.bfd	Mon Feb 28 00:04:43 2005
   165.6 -@@ -129,7 +129,7 @@
   165.7 -     targ_defvec=ecoffalpha_little_vec
   165.8 -     targ_selvecs=bfd_elf64_alpha_vec
   165.9 -     ;;
  165.10 --  alpha*-*-linux-gnu* | alpha*-*-elf*)
  165.11 -+  alpha*-*-linux-* | alpha*-*-elf*)
  165.12 -     targ_defvec=bfd_elf64_alpha_vec
  165.13 -     targ_selvecs=ecoffalpha_little_vec
  165.14 -     ;;
  165.15 -@@ -139,7 +139,7 @@
  165.16 -   alpha*-*-*)
  165.17 -     targ_defvec=ecoffalpha_little_vec
  165.18 -     ;;
  165.19 --  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
  165.20 -+  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
  165.21 -     targ_defvec=bfd_elf64_ia64_little_vec
  165.22 -     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
  165.23 -     ;;
  165.24 -@@ -216,7 +216,7 @@
  165.25 -     targ_defvec=bfd_elf32_littlearm_vec
  165.26 -     targ_selvecs=bfd_elf32_bigarm_vec
  165.27 -     ;;
  165.28 --  armeb-*-elf | arm*b-*-linux-gnu*)
  165.29 -+  armeb-*-elf | arm*b-*-linux-*)
  165.30 -     targ_defvec=bfd_elf32_bigarm_vec
  165.31 -     targ_selvecs=bfd_elf32_littlearm_vec
  165.32 -     ;;
  165.33 -@@ -224,7 +224,7 @@
  165.34 -     targ_defvec=bfd_elf32_littlearm_vec
  165.35 -     targ_selvecs=bfd_elf32_bigarm_vec
  165.36 -     ;;
  165.37 --  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
  165.38 -+  arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
  165.39 -   arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \
  165.40 -   arm*-*-eabi* )
  165.41 -     targ_defvec=bfd_elf32_littlearm_vec
  165.42 -@@ -378,7 +378,7 @@
  165.43 -     ;;
  165.44 - 
  165.45 - #ifdef BFD64
  165.46 --  hppa*64*-*-linux-gnu*)
  165.47 -+  hppa*64*-*-linux-*)
  165.48 -     targ_defvec=bfd_elf64_hppa_linux_vec
  165.49 -     targ_selvecs=bfd_elf64_hppa_vec
  165.50 -     ;;
  165.51 -@@ -389,7 +389,7 @@
  165.52 -     ;;
  165.53 - #endif
  165.54 - 
  165.55 --  hppa*-*-linux-gnu*)
  165.56 -+  hppa*-*-linux-*)
  165.57 -     targ_defvec=bfd_elf32_hppa_linux_vec
  165.58 -     targ_selvecs=bfd_elf32_hppa_vec
  165.59 -     ;;
  165.60 -@@ -522,7 +522,7 @@
  165.61 -     targ_selvecs=bfd_elf32_i386_vec
  165.62 -     targ_underscore=yes
  165.63 -     ;;
  165.64 --  i[3-7]86-*-linux-gnu*)
  165.65 -+  i[3-7]86-*-linux-*)
  165.66 -     targ_defvec=bfd_elf32_i386_vec
  165.67 -     targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
  165.68 -     targ64_selvecs=bfd_elf64_x86_64_vec
  165.69 -@@ -536,7 +536,7 @@
  165.70 -     targ_defvec=bfd_elf64_x86_64_vec
  165.71 -     targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
  165.72 -     ;;
  165.73 --  x86_64-*-linux-gnu*)
  165.74 -+  x86_64-*-linux-*)
  165.75 -     targ_defvec=bfd_elf64_x86_64_vec
  165.76 -     targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
  165.77 -     ;;
  165.78 -@@ -706,7 +706,7 @@
  165.79 -     targ_defvec=hp300hpux_vec
  165.80 -     targ_underscore=yes
  165.81 -     ;;
  165.82 --  m68*-*-linux*aout*)
  165.83 -+  m68*-*-linux*aout* | m68*-*-linux-uclibc*)
  165.84 -     targ_defvec=m68klinux_vec
  165.85 -     targ_selvecs=bfd_elf32_m68k_vec
  165.86 -     targ_underscore=yes
  165.87 -@@ -987,7 +987,7 @@
  165.88 -     ;;
  165.89 - #endif
  165.90 -   powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
  165.91 --  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
  165.92 -+  powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
  165.93 -   powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
  165.94 -     targ_defvec=bfd_elf32_powerpc_vec
  165.95 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
  165.96 -@@ -1024,7 +1024,7 @@
  165.97 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
  165.98 -     ;;
  165.99 -   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
 165.100 --  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
 165.101 -+  powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks* |\
 165.102 -   powerpcle-*-rtems*)
 165.103 -     targ_defvec=bfd_elf32_powerpcle_vec
 165.104 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
 165.105 -@@ -1192,7 +1192,7 @@
 165.106 -     targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
 165.107 -     targ_underscore=yes
 165.108 -     ;;
 165.109 --  sparc-*-linux-gnu*)
 165.110 -+  sparc-*-linux-*)
 165.111 -     targ_defvec=bfd_elf32_sparc_vec
 165.112 -     targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
 165.113 -     ;;
 165.114 -@@ -1239,7 +1239,7 @@
 165.115 -     targ_defvec=sunos_big_vec
 165.116 -     targ_underscore=yes
 165.117 -     ;;
 165.118 --  sparc64-*-linux-gnu*)
 165.119 -+  sparc64-*-linux-*)
 165.120 -     targ_defvec=bfd_elf64_sparc_vec
 165.121 -     targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
 165.122 -     ;;
 165.123 -@@ -1308,7 +1308,7 @@
 165.124 -     targ_underscore=yes
 165.125 -     ;;
 165.126 - 
 165.127 --  vax-*-linux-gnu*)
 165.128 -+  vax-*-linux-*)
 165.129 -     targ_defvec=bfd_elf32_vax_vec
 165.130 -     ;;
 165.131 - 
 165.132 ---- gdb-6.3/bfd/configure.orig	Fri Oct  8 16:53:56 2004
 165.133 -+++ gdb-6.3/bfd/configure	Sun Feb 27 18:32:58 2005
 165.134 -@@ -3583,6 +3583,11 @@
 165.135 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
 165.136 -   ;;
 165.137 - 
 165.138 -+linux-uclibc*)
 165.139 -+  lt_cv_deplibs_check_method=pass_all
 165.140 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 165.141 -+  ;;
 165.142 -+
 165.143 - netbsd* | knetbsd*-gnu)
 165.144 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 165.145 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 165.146 -@@ -9914,7 +9919,7 @@
 165.147 -   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 165.148 - 	COREFILE=''
 165.149 - 	;;
 165.150 --  alpha*-*-linux-gnu*)
 165.151 -+  alpha*-*-linux-*)
 165.152 - 	COREFILE=trad-core.lo
 165.153 - 	TRAD_HEADER='"hosts/alphalinux.h"'
 165.154 - 	;;
 165.155 -@@ -9978,7 +9983,7 @@
 165.156 - 	COREFILE=trad-core.lo
 165.157 - 	TRAD_HEADER='"hosts/i386mach3.h"'
 165.158 - 	;;
 165.159 --  i[3-7]86-*-linux-gnu*)
 165.160 -+  i[3-7]86-*-linux-*)
 165.161 - 	COREFILE=trad-core.lo
 165.162 - 	TRAD_HEADER='"hosts/i386linux.h"'
 165.163 - 	;;
 165.164 -@@ -10016,7 +10021,7 @@
 165.165 - 	COREFILE=trad-core.lo
 165.166 - 	TRAD_HEADER='"hosts/hp300bsd.h"'
 165.167 - 	;;
 165.168 --  m68*-*-linux-gnu*)
 165.169 -+  m68*-*-linux-*)
 165.170 - 	COREFILE=trad-core.lo
 165.171 - 	TRAD_HEADER='"hosts/m68klinux.h"'
 165.172 - 	;;
 165.173 -@@ -10150,7 +10155,7 @@
 165.174 - 	COREFILE=trad-core.lo
 165.175 - 	TRAD_HEADER='"hosts/vaxult2.h"'
 165.176 - 	;;
 165.177 --  vax-*-linux-gnu*)
 165.178 -+  vax-*-linux-*)
 165.179 - 	COREFILE=trad-core.lo
 165.180 - 	TRAD_HEADER='"hosts/vaxlinux.h"'
 165.181 - 	;;
 165.182 ---- gdb-6.3/bfd/configure.in.orig	Fri Oct  8 16:53:59 2004
 165.183 -+++ gdb-6.3/bfd/configure.in	Sun Feb 27 18:14:41 2005
 165.184 -@@ -163,7 +163,7 @@
 165.185 -   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 165.186 - 	COREFILE=''
 165.187 - 	;;
 165.188 --  alpha*-*-linux-gnu*)
 165.189 -+  alpha*-*-linux-*)
 165.190 - 	COREFILE=trad-core.lo
 165.191 - 	TRAD_HEADER='"hosts/alphalinux.h"'
 165.192 - 	;;
 165.193 -@@ -248,7 +248,7 @@
 165.194 - 	TRAD_HEADER='"hosts/i386mach3.h"'
 165.195 - 	;;
 165.196 - changequote(,)dnl
 165.197 --  i[3-7]86-*-linux-gnu*)
 165.198 -+  i[3-7]86-*-linux-*)
 165.199 - changequote([,])dnl
 165.200 - 	COREFILE=trad-core.lo
 165.201 - 	TRAD_HEADER='"hosts/i386linux.h"'
 165.202 -@@ -289,7 +289,7 @@
 165.203 - 	COREFILE=trad-core.lo
 165.204 - 	TRAD_HEADER='"hosts/hp300bsd.h"'
 165.205 - 	;;
 165.206 --  m68*-*-linux-gnu*)
 165.207 -+  m68*-*-linux-*)
 165.208 - 	COREFILE=trad-core.lo
 165.209 - 	TRAD_HEADER='"hosts/m68klinux.h"'
 165.210 - 	;;
 165.211 -@@ -375,7 +375,7 @@
 165.212 - 	COREFILE=trad-core.lo
 165.213 - 	TRAD_HEADER='"hosts/vaxult2.h"'
 165.214 - 	;;
 165.215 --  vax-*-linux-gnu*)
 165.216 -+  vax-*-linux-*)
 165.217 - 	COREFILE=trad-core.lo
 165.218 - 	TRAD_HEADER='"hosts/vaxlinux.h"'
 165.219 - 	;;
 165.220 ---- gdb-6.3/libtool.m4.orig	Wed Jul 21 21:21:41 2004
 165.221 -+++ gdb-6.3/libtool.m4	Mon Feb 28 00:08:11 2005
 165.222 -@@ -653,6 +653,11 @@
 165.223 -   fi
 165.224 -   ;;
 165.225 - 
 165.226 -+linux-uclibc*)
 165.227 -+  lt_cv_deplibs_check_method=pass_all
 165.228 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 165.229 -+  ;;
 165.230 -+
 165.231 - newsos6)
 165.232 -   [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
 165.233 -   lt_cv_file_magic_cmd=/usr/bin/file
 165.234 ---- gdb-6.3/ltconfig.orig	Tue Oct  5 15:34:42 2004
 165.235 -+++ gdb-6.3/ltconfig	Sun Feb 27 18:14:41 2005
 165.236 -@@ -602,7 +602,7 @@
 165.237 - 
 165.238 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 165.239 - case $host_os in
 165.240 --linux-gnu*) ;;
 165.241 -+linux-gnu*|linux-uclibc*) ;;
 165.242 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 165.243 - esac
 165.244 - 
 165.245 -@@ -1270,6 +1270,24 @@
 165.246 -   dynamic_linker='GNU/Linux ld.so'
 165.247 -   ;;
 165.248 - 
 165.249 -+linux-uclibc*)
 165.250 -+  version_type=linux
 165.251 -+  need_lib_prefix=no
 165.252 -+  need_version=no
 165.253 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
 165.254 -+  soname_spec='${libname}${release}.so$major'
 165.255 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 165.256 -+  shlibpath_var=LD_LIBRARY_PATH
 165.257 -+  shlibpath_overrides_runpath=no
 165.258 -+  # This implies no fast_install, which is unacceptable.
 165.259 -+  # Some rework will be needed to allow for fast_install
 165.260 -+  # before this can be enabled.
 165.261 -+  # Note: copied from linux-gnu, and may not be appropriate.
 165.262 -+  hardcode_into_libs=yes
 165.263 -+  # Assume using the uClibc dynamic linker.
 165.264 -+  dynamic_linker="uClibc ld.so"
 165.265 -+  ;;
 165.266 -+
 165.267 - netbsd*)
 165.268 -   need_lib_prefix=no
 165.269 -   need_version=no
 165.270 ---- gdb-6.3/opcodes/configure.orig	Fri Sep 17 08:13:38 2004
 165.271 -+++ gdb-6.3/opcodes/configure	Mon Feb 28 00:09:42 2005
 165.272 -@@ -3595,6 +3595,11 @@
 165.273 -   fi
 165.274 -   ;;
 165.275 - 
 165.276 -+linux-uclibc*)
 165.277 -+  lt_cv_deplibs_check_method=pass_all
 165.278 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 165.279 -+  ;;
 165.280 -+
 165.281 - newsos6)
 165.282 -   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
 165.283 -   lt_cv_file_magic_cmd=/usr/bin/file
   166.1 --- a/patches/gdb/6.3/200-uclibc-readline-conf.patch	Tue Aug 14 19:32:22 2007 +0000
   166.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   166.3 @@ -1,15 +0,0 @@
   166.4 ---- gdb-6.1.1-dist/readline/configure	2003-05-27 18:29:47.000000000 -0500
   166.5 -+++ gdb-6.1.1/readline/configure	2004-08-09 14:20:23.000000000 -0500
   166.6 -@@ -6249,7 +6249,12 @@
   166.7 - 
   166.8 - 
   166.9 - echo "$as_me:$LINENO: checking for mbstate_t" >&5
  166.10 -+echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6
  166.11 - echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
  166.12 -+if test "${bash_cv_have_mbstate_t+set}" != set; then
  166.13 -+  bash_cv_have_mbstate_t=yes
  166.14 -+  echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6
  166.15 -+fi
  166.16 - if test "${bash_cv_have_mbstate_t+set}" = set; then
  166.17 -   echo $ECHO_N "(cached) $ECHO_C" >&6
  166.18 - else
   167.1 --- a/patches/gdb/6.3/400-mips-coredump.patch-2.4.23-29	Tue Aug 14 19:32:22 2007 +0000
   167.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   167.3 @@ -1,28 +0,0 @@
   167.4 -Sometime around 2.4.22-23, the mips pt_regs.h fields were reordered, breaking
   167.5 -coredump handling by gdb for current kernels.  Update the hardcoded constants
   167.6 -to reflect the change.
   167.7 ---- gdb-6.2.1/gdb/mips-linux-tdep.c-orig	2004-10-29 14:23:55.000000000 -0500
   167.8 -+++ gdb-6.2.1/gdb/mips-linux-tdep.c	2004-10-29 14:26:44.000000000 -0500
   167.9 -@@ -53,12 +53,22 @@
  167.10 - 
  167.11 - #define EF_REG0			6
  167.12 - #define EF_REG31		37
  167.13 -+
  167.14 -+#if 0
  167.15 - #define EF_LO			38
  167.16 - #define EF_HI			39
  167.17 - #define EF_CP0_EPC		40
  167.18 - #define EF_CP0_BADVADDR		41
  167.19 - #define EF_CP0_STATUS		42
  167.20 - #define EF_CP0_CAUSE		43
  167.21 -+#else
  167.22 -+#define EF_CP0_STATUS		38
  167.23 -+#define EF_LO			39
  167.24 -+#define EF_HI			40
  167.25 -+#define EF_CP0_BADVADDR		41
  167.26 -+#define EF_CP0_CAUSE		42
  167.27 -+#define EF_CP0_EPC		43
  167.28 -+#endif
  167.29 - 
  167.30 - #define EF_SIZE			180
  167.31 - 
   168.1 --- a/patches/gdb/6.3/500-thread-timeout.patch	Tue Aug 14 19:32:22 2007 +0000
   168.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.3 @@ -1,34 +0,0 @@
   168.4 ---- gdb-6.3.org/gdb/gdbserver/thread-db.c	2004-10-17 02:42:00.000000000 +0900
   168.5 -+++ gdb-6.3/gdb/gdbserver/thread-db.c	2005-01-27 12:19:29.000000000 +0900
   168.6 -@@ -21,6 +21,7 @@
   168.7 -    Foundation, Inc., 59 Temple Place - Suite 330,
   168.8 -    Boston, MA 02111-1307, USA.  */
   168.9 - 
  168.10 -+#include <unistd.h>
  168.11 - #include "server.h"
  168.12 - 
  168.13 - #include "linux-low.h"
  168.14 -@@ -142,6 +143,7 @@
  168.15 -   td_event_msg_t msg;
  168.16 -   td_err_e err;
  168.17 -   struct inferior_linux_data *tdata;
  168.18 -+  int timeout;
  168.19 - 
  168.20 -   if (debug_threads)
  168.21 -     fprintf (stderr, "Thread creation event.\n");
  168.22 -@@ -152,7 +154,13 @@
  168.23 -      In the LinuxThreads implementation, this is safe,
  168.24 -      because all events come from the manager thread
  168.25 -      (except for its own creation, of course).  */
  168.26 --  err = td_ta_event_getmsg (thread_agent, &msg);
  168.27 -+  for (timeout = 0; timeout < 50000; timeout++)
  168.28 -+    {
  168.29 -+      err = td_ta_event_getmsg (thread_agent, &msg);
  168.30 -+      if (err != TD_NOMSG)
  168.31 -+	break;
  168.32 -+      usleep(1000);
  168.33 -+    }
  168.34 -   if (err != TD_OK)
  168.35 -     fprintf (stderr, "thread getmsg err: %s\n",
  168.36 - 	     thread_db_err_str (err));
  168.37 -
   169.1 --- a/patches/gdb/6.3/600-debian_10.selected-frame.patch	Tue Aug 14 19:32:22 2007 +0000
   169.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.3 @@ -1,552 +0,0 @@
   169.4 -2004-10-11
   169.5 -
   169.6 -This patch is not submitted.  Many of these functions should be passing
   169.7 -a frame around rather than calling get_selected_frame, but at least it
   169.8 -is an improvement over deprecated_selected_frame.
   169.9 -
  169.10 -Index: gdb-6.3/gdb/breakpoint.c
  169.11 -===================================================================
  169.12 ---- gdb-6.3.orig/gdb/breakpoint.c	2004-10-08 13:30:46.000000000 -0400
  169.13 -+++ gdb-6.3/gdb/breakpoint.c	2004-11-09 22:55:11.231620957 -0500
  169.14 -@@ -922,7 +922,7 @@ insert_bp_location (struct bp_location *
  169.15 -       /* FIXME drow/2003-09-09: It would be nice if evaluate_expression
  169.16 - 	 took a frame parameter, so that we didn't have to change the
  169.17 - 	 selected frame.  */
  169.18 --      saved_frame_id = get_frame_id (deprecated_selected_frame);
  169.19 -+      saved_frame_id = get_frame_id (get_selected_frame ());
  169.20 - 
  169.21 -       /* Determine if the watchpoint is within scope.  */
  169.22 -       if (bpt->owner->exp_valid_block == NULL)
  169.23 -@@ -5464,14 +5464,9 @@ break_at_finish_at_depth_command_1 (char
  169.24 - 
  169.25 -       if (default_breakpoint_valid)
  169.26 - 	{
  169.27 --	  if (deprecated_selected_frame)
  169.28 --	    {
  169.29 --	      selected_pc = get_frame_pc (deprecated_selected_frame);
  169.30 --	      if (arg)
  169.31 --		if_arg = 1;
  169.32 --	    }
  169.33 --	  else
  169.34 --	    error ("No selected frame.");
  169.35 -+	  selected_pc = get_frame_pc (get_selected_frame ());
  169.36 -+	  if (arg)
  169.37 -+	    if_arg = 1;
  169.38 - 	}
  169.39 -       else
  169.40 - 	error ("No default breakpoint address now.");
  169.41 -@@ -5542,15 +5537,10 @@ break_at_finish_command_1 (char *arg, in
  169.42 -     {
  169.43 -       if (default_breakpoint_valid)
  169.44 - 	{
  169.45 --	  if (deprecated_selected_frame)
  169.46 --	    {
  169.47 --	      addr_string = xstrprintf ("*0x%s",
  169.48 --					paddr_nz (get_frame_pc (deprecated_selected_frame)));
  169.49 --	      if (arg)
  169.50 --		if_arg = 1;
  169.51 --	    }
  169.52 --	  else
  169.53 --	    error ("No selected frame.");
  169.54 -+	  addr_string = xstrprintf ("*0x%s",
  169.55 -+				    paddr_nz (get_frame_pc (get_selected_frame ())));
  169.56 -+	  if (arg)
  169.57 -+	    if_arg = 1;
  169.58 - 	}
  169.59 -       else
  169.60 - 	error ("No default breakpoint address now.");
  169.61 -@@ -6082,7 +6072,7 @@ until_break_command (char *arg, int from
  169.62 - {
  169.63 -   struct symtabs_and_lines sals;
  169.64 -   struct symtab_and_line sal;
  169.65 --  struct frame_info *prev_frame = get_prev_frame (deprecated_selected_frame);
  169.66 -+  struct frame_info *prev_frame = get_prev_frame (get_selected_frame ());
  169.67 -   struct breakpoint *breakpoint;
  169.68 -   struct cleanup *old_chain;
  169.69 -   struct continuation_arg *arg1;
  169.70 -@@ -6119,7 +6109,7 @@ until_break_command (char *arg, int from
  169.71 -     /* Otherwise, specify the current frame, because we want to stop only
  169.72 -        at the very same frame.  */
  169.73 -     breakpoint = set_momentary_breakpoint (sal,
  169.74 --					   get_frame_id (deprecated_selected_frame),
  169.75 -+					   get_frame_id (get_selected_frame ()),
  169.76 - 					   bp_until);
  169.77 - 
  169.78 -   if (!target_can_async_p ())
  169.79 -Index: gdb-6.3/gdb/cli/cli-cmds.c
  169.80 -===================================================================
  169.81 ---- gdb-6.3.orig/gdb/cli/cli-cmds.c	2004-09-11 06:24:53.000000000 -0400
  169.82 -+++ gdb-6.3/gdb/cli/cli-cmds.c	2004-11-09 22:51:07.323246218 -0500
  169.83 -@@ -845,10 +845,7 @@ disassemble_command (char *arg, int from
  169.84 -   name = NULL;
  169.85 -   if (!arg)
  169.86 -     {
  169.87 --      if (!deprecated_selected_frame)
  169.88 --	error ("No frame selected.\n");
  169.89 --
  169.90 --      pc = get_frame_pc (deprecated_selected_frame);
  169.91 -+      pc = get_frame_pc (get_selected_frame ());
  169.92 -       if (find_pc_partial_function (pc, &name, &low, &high) == 0)
  169.93 - 	error ("No function contains program counter for selected frame.\n");
  169.94 - #if defined(TUI)
  169.95 -Index: gdb-6.3/gdb/f-valprint.c
  169.96 -===================================================================
  169.97 ---- gdb-6.3.orig/gdb/f-valprint.c	2003-10-14 02:51:14.000000000 -0400
  169.98 -+++ gdb-6.3/gdb/f-valprint.c	2004-11-09 22:51:07.326245632 -0500
  169.99 -@@ -76,7 +76,7 @@ f77_get_dynamic_lowerbound (struct type 
 169.100 -   switch (TYPE_ARRAY_LOWER_BOUND_TYPE (type))
 169.101 -     {
 169.102 -     case BOUND_BY_VALUE_ON_STACK:
 169.103 --      current_frame_addr = get_frame_base (deprecated_selected_frame);
 169.104 -+      current_frame_addr = get_frame_base (get_selected_frame ());
 169.105 -       if (current_frame_addr > 0)
 169.106 - 	{
 169.107 - 	  *lower_bound =
 169.108 -@@ -100,7 +100,7 @@ f77_get_dynamic_lowerbound (struct type 
 169.109 -       break;
 169.110 - 
 169.111 -     case BOUND_BY_REF_ON_STACK:
 169.112 --      current_frame_addr = get_frame_base (deprecated_selected_frame);
 169.113 -+      current_frame_addr = get_frame_base (get_selected_frame ());
 169.114 -       if (current_frame_addr > 0)
 169.115 - 	{
 169.116 - 	  ptr_to_lower_bound =
 169.117 -@@ -134,7 +134,7 @@ f77_get_dynamic_upperbound (struct type 
 169.118 -   switch (TYPE_ARRAY_UPPER_BOUND_TYPE (type))
 169.119 -     {
 169.120 -     case BOUND_BY_VALUE_ON_STACK:
 169.121 --      current_frame_addr = get_frame_base (deprecated_selected_frame);
 169.122 -+      current_frame_addr = get_frame_base (get_selected_frame ());
 169.123 -       if (current_frame_addr > 0)
 169.124 - 	{
 169.125 - 	  *upper_bound =
 169.126 -@@ -163,7 +163,7 @@ f77_get_dynamic_upperbound (struct type 
 169.127 -       break;
 169.128 - 
 169.129 -     case BOUND_BY_REF_ON_STACK:
 169.130 --      current_frame_addr = get_frame_base (deprecated_selected_frame);
 169.131 -+      current_frame_addr = get_frame_base (get_selected_frame ());
 169.132 -       if (current_frame_addr > 0)
 169.133 - 	{
 169.134 - 	  ptr_to_upper_bound =
 169.135 -@@ -630,10 +630,7 @@ info_common_command (char *comname, int 
 169.136 -      first make sure that it is visible and if so, let 
 169.137 -      us display its contents */
 169.138 - 
 169.139 --  fi = deprecated_selected_frame;
 169.140 --
 169.141 --  if (fi == NULL)
 169.142 --    error ("No frame selected");
 169.143 -+  fi = get_selected_frame ();
 169.144 - 
 169.145 -   /* The following is generally ripped off from stack.c's routine 
 169.146 -      print_frame_info() */
 169.147 -@@ -722,10 +719,7 @@ there_is_a_visible_common_named (char *c
 169.148 -   if (comname == NULL)
 169.149 -     error ("Cannot deal with NULL common name!");
 169.150 - 
 169.151 --  fi = deprecated_selected_frame;
 169.152 --
 169.153 --  if (fi == NULL)
 169.154 --    error ("No frame selected");
 169.155 -+  fi = get_selected_frame ();
 169.156 - 
 169.157 -   /* The following is generally ripped off from stack.c's routine 
 169.158 -      print_frame_info() */
 169.159 -Index: gdb-6.3/gdb/infcmd.c
 169.160 -===================================================================
 169.161 ---- gdb-6.3.orig/gdb/infcmd.c	2004-09-13 14:26:28.000000000 -0400
 169.162 -+++ gdb-6.3/gdb/infcmd.c	2004-11-09 22:57:37.274099559 -0500
 169.163 -@@ -1214,10 +1214,8 @@ finish_command (char *arg, int from_tty)
 169.164 -     error ("The \"finish\" command does not take any arguments.");
 169.165 -   if (!target_has_execution)
 169.166 -     error ("The program is not running.");
 169.167 --  if (deprecated_selected_frame == NULL)
 169.168 --    error ("No selected frame.");
 169.169 - 
 169.170 --  frame = get_prev_frame (deprecated_selected_frame);
 169.171 -+  frame = get_prev_frame (get_selected_frame ());
 169.172 -   if (frame == 0)
 169.173 -     error ("\"finish\" not meaningful in the outermost frame.");
 169.174 - 
 169.175 -@@ -1235,7 +1233,7 @@ finish_command (char *arg, int from_tty)
 169.176 - 
 169.177 -   /* Find the function we will return from.  */
 169.178 - 
 169.179 --  function = find_pc_function (get_frame_pc (deprecated_selected_frame));
 169.180 -+  function = find_pc_function (get_frame_pc (get_selected_frame ()));
 169.181 - 
 169.182 -   /* Print info on the selected frame, including level number but not
 169.183 -      source.  */
 169.184 -@@ -1600,13 +1598,11 @@ registers_info (char *addr_exp, int fpre
 169.185 - 
 169.186 -   if (!target_has_registers)
 169.187 -     error ("The program has no registers now.");
 169.188 --  if (deprecated_selected_frame == NULL)
 169.189 --    error ("No selected frame.");
 169.190 - 
 169.191 -   if (!addr_exp)
 169.192 -     {
 169.193 -       gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
 169.194 --				    deprecated_selected_frame, -1, fpregs);
 169.195 -+				    get_selected_frame (), -1, fpregs);
 169.196 -       return;
 169.197 -     }
 169.198 - 
 169.199 -@@ -1644,7 +1640,7 @@ registers_info (char *addr_exp, int fpre
 169.200 - 	if (regnum >= 0)
 169.201 - 	  {
 169.202 - 	    gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
 169.203 --					  deprecated_selected_frame, regnum, fpregs);
 169.204 -+					  get_selected_frame (), regnum, fpregs);
 169.205 - 	    continue;
 169.206 - 	  }
 169.207 -       }
 169.208 -@@ -1658,7 +1654,7 @@ registers_info (char *addr_exp, int fpre
 169.209 - 	    && regnum < NUM_REGS + NUM_PSEUDO_REGS)
 169.210 - 	  {
 169.211 - 	    gdbarch_print_registers_info (current_gdbarch, gdb_stdout,
 169.212 --					  deprecated_selected_frame, regnum, fpregs);
 169.213 -+					  get_selected_frame (), regnum, fpregs);
 169.214 - 	    continue;
 169.215 - 	  }
 169.216 -       }
 169.217 -@@ -1684,7 +1680,7 @@ registers_info (char *addr_exp, int fpre
 169.218 - 		if (gdbarch_register_reggroup_p (current_gdbarch, regnum,
 169.219 - 						 group))
 169.220 - 		  gdbarch_print_registers_info (current_gdbarch,
 169.221 --						gdb_stdout, deprecated_selected_frame,
 169.222 -+						gdb_stdout, get_selected_frame (),
 169.223 - 						regnum, fpregs);
 169.224 - 	      }
 169.225 - 	    continue;
 169.226 -@@ -1714,8 +1710,6 @@ print_vector_info (struct gdbarch *gdbar
 169.227 - {
 169.228 -   if (!target_has_registers)
 169.229 -     error ("The program has no registers now.");
 169.230 --  if (deprecated_selected_frame == NULL)
 169.231 --    error ("No selected frame.");
 169.232 - 
 169.233 -   if (gdbarch_print_vector_info_p (gdbarch))
 169.234 -     gdbarch_print_vector_info (gdbarch, file, frame, args);
 169.235 -@@ -1740,7 +1734,7 @@ print_vector_info (struct gdbarch *gdbar
 169.236 - static void
 169.237 - vector_info (char *args, int from_tty)
 169.238 - {
 169.239 --  print_vector_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
 169.240 -+  print_vector_info (current_gdbarch, gdb_stdout, get_selected_frame (), args);
 169.241 - }
 169.242 - 
 169.243 - 
 169.244 -@@ -1910,8 +1904,6 @@ print_float_info (struct gdbarch *gdbarc
 169.245 - {
 169.246 -   if (!target_has_registers)
 169.247 -     error ("The program has no registers now.");
 169.248 --  if (deprecated_selected_frame == NULL)
 169.249 --    error ("No selected frame.");
 169.250 - 
 169.251 -   if (gdbarch_print_float_info_p (gdbarch))
 169.252 -     gdbarch_print_float_info (gdbarch, file, frame, args);
 169.253 -@@ -1937,7 +1929,7 @@ No floating-point info available for thi
 169.254 - static void
 169.255 - float_info (char *args, int from_tty)
 169.256 - {
 169.257 --  print_float_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
 169.258 -+  print_float_info (current_gdbarch, gdb_stdout, get_selected_frame (), args);
 169.259 - }
 169.260 - 
 169.261 - static void
 169.262 -Index: gdb-6.3/gdb/inflow.c
 169.263 -===================================================================
 169.264 ---- gdb-6.3.orig/gdb/inflow.c	2004-08-11 05:00:57.000000000 -0400
 169.265 -+++ gdb-6.3/gdb/inflow.c	2004-11-09 22:58:37.488338883 -0500
 169.266 -@@ -591,10 +591,7 @@ kill_command (char *arg, int from_tty)
 169.267 -   if (target_has_stack)
 169.268 -     {
 169.269 -       printf_filtered ("In %s,\n", target_longname);
 169.270 --      if (deprecated_selected_frame == NULL)
 169.271 --	fputs_filtered ("No selected stack frame.\n", gdb_stdout);
 169.272 --      else
 169.273 --	print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
 169.274 -+      print_stack_frame (get_selected_frame (), 1, SRC_AND_LOC);
 169.275 -     }
 169.276 -   bfd_cache_close_all ();
 169.277 - }
 169.278 -Index: gdb-6.3/gdb/infrun.c
 169.279 -===================================================================
 169.280 ---- gdb-6.3.orig/gdb/infrun.c	2004-09-27 13:58:08.000000000 -0400
 169.281 -+++ gdb-6.3/gdb/infrun.c	2004-11-09 22:51:07.351240752 -0500
 169.282 -@@ -3485,7 +3485,7 @@ save_inferior_status (int restore_stack_
 169.283 - 
 169.284 -   inf_status->registers = regcache_dup (current_regcache);
 169.285 - 
 169.286 --  inf_status->selected_frame_id = get_frame_id (deprecated_selected_frame);
 169.287 -+  inf_status->selected_frame_id = get_frame_id (get_selected_frame ());
 169.288 -   return inf_status;
 169.289 - }
 169.290 - 
 169.291 -Index: gdb-6.3/gdb/mi/mi-main.c
 169.292 -===================================================================
 169.293 ---- gdb-6.3.orig/gdb/mi/mi-main.c	2004-09-12 11:00:42.000000000 -0400
 169.294 -+++ gdb-6.3/gdb/mi/mi-main.c	2004-11-09 22:53:29.998389013 -0500
 169.295 -@@ -388,7 +388,7 @@ register_changed_p (int regnum)
 169.296 - {
 169.297 -   char raw_buffer[MAX_REGISTER_SIZE];
 169.298 - 
 169.299 --  if (! frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
 169.300 -+  if (! frame_register_read (get_selected_frame (), regnum, raw_buffer))
 169.301 -     return -1;
 169.302 - 
 169.303 -   if (memcmp (&old_regs[DEPRECATED_REGISTER_BYTE (regnum)], raw_buffer,
 169.304 -@@ -509,7 +509,7 @@ get_register (int regnum, int format)
 169.305 -   if (format == 'N')
 169.306 -     format = 0;
 169.307 - 
 169.308 --  frame_register (deprecated_selected_frame, regnum, &optim, &lval, &addr,
 169.309 -+  frame_register (get_selected_frame (), regnum, &optim, &lval, &addr,
 169.310 - 		  &realnum, buffer);
 169.311 - 
 169.312 -   if (optim)
 169.313 -Index: gdb-6.3/gdb/mn10300-tdep.c
 169.314 -===================================================================
 169.315 ---- gdb-6.3.orig/gdb/mn10300-tdep.c	2004-08-02 22:02:22.000000000 -0400
 169.316 -+++ gdb-6.3/gdb/mn10300-tdep.c	2004-11-09 22:51:07.356239776 -0500
 169.317 -@@ -1154,7 +1154,7 @@ mn10300_print_register (const char *name
 169.318 -     printf_filtered ("%s: ", name);
 169.319 - 
 169.320 -   /* Get the data */
 169.321 --  if (!frame_register_read (deprecated_selected_frame, regnum, raw_buffer))
 169.322 -+  if (!frame_register_read (get_selected_frame (), regnum, raw_buffer))
 169.323 -     {
 169.324 -       printf_filtered ("[invalid]");
 169.325 -       return;
 169.326 -Index: gdb-6.3/gdb/stack.c
 169.327 -===================================================================
 169.328 ---- gdb-6.3.orig/gdb/stack.c	2004-08-02 20:57:26.000000000 -0400
 169.329 -+++ gdb-6.3/gdb/stack.c	2004-11-09 22:51:07.361238800 -0500
 169.330 -@@ -758,9 +758,7 @@ parse_frame_specification (char *frame_e
 169.331 -   switch (numargs)
 169.332 -     {
 169.333 -     case 0:
 169.334 --      if (deprecated_selected_frame == NULL)
 169.335 --	error ("No selected frame.");
 169.336 --      return deprecated_selected_frame;
 169.337 -+      return get_selected_frame ();
 169.338 -       /* NOTREACHED */
 169.339 -     case 1:
 169.340 -       {
 169.341 -@@ -902,10 +900,10 @@ frame_info (char *addr_exp, int from_tty
 169.342 -     }
 169.343 -   calling_frame_info = get_prev_frame (fi);
 169.344 - 
 169.345 --  if (!addr_exp && frame_relative_level (deprecated_selected_frame) >= 0)
 169.346 -+  if (!addr_exp && frame_relative_level (get_selected_frame ()) >= 0)
 169.347 -     {
 169.348 -       printf_filtered ("Stack level %d, frame at ",
 169.349 --		       frame_relative_level (deprecated_selected_frame));
 169.350 -+		       frame_relative_level (get_selected_frame ()));
 169.351 -       print_address_numeric (get_frame_base (fi), 1, gdb_stdout);
 169.352 -       printf_filtered (":\n");
 169.353 -     }
 169.354 -@@ -1445,9 +1443,7 @@ print_frame_label_vars (struct frame_inf
 169.355 - void
 169.356 - locals_info (char *args, int from_tty)
 169.357 - {
 169.358 --  if (!deprecated_selected_frame)
 169.359 --    error ("No frame selected.");
 169.360 --  print_frame_local_vars (deprecated_selected_frame, 0, gdb_stdout);
 169.361 -+  print_frame_local_vars (get_selected_frame (), 0, gdb_stdout);
 169.362 - }
 169.363 - 
 169.364 - static void
 169.365 -@@ -1470,7 +1466,7 @@ catch_info (char *ignore, int from_tty)
 169.366 -       if (!deprecated_selected_frame)
 169.367 - 	error ("No frame selected.");
 169.368 - 
 169.369 --      print_frame_label_vars (deprecated_selected_frame, 0, gdb_stdout);
 169.370 -+      print_frame_label_vars (get_selected_frame (), 0, gdb_stdout);
 169.371 -     }
 169.372 - }
 169.373 - 
 169.374 -@@ -1537,9 +1533,7 @@ print_frame_arg_vars (struct frame_info 
 169.375 - void
 169.376 - args_info (char *ignore, int from_tty)
 169.377 - {
 169.378 --  if (!deprecated_selected_frame)
 169.379 --    error ("No frame selected.");
 169.380 --  print_frame_arg_vars (deprecated_selected_frame, gdb_stdout);
 169.381 -+  print_frame_arg_vars (get_selected_frame (), gdb_stdout);
 169.382 - }
 169.383 - 
 169.384 - 
 169.385 -@@ -1724,7 +1718,7 @@ down_silently_base (char *count_exp)
 169.386 -   if (target_has_stack == 0 || deprecated_selected_frame == 0)
 169.387 -     error ("No stack.");
 169.388 - 
 169.389 --  frame = find_relative_frame (deprecated_selected_frame, &count1);
 169.390 -+  frame = find_relative_frame (get_selected_frame (), &count1);
 169.391 -   if (count1 != 0 && count_exp == 0)
 169.392 -     {
 169.393 - 
 169.394 -@@ -1944,7 +1938,7 @@ func_command (char *arg, int from_tty)
 169.395 - 
 169.396 -   if (!found)
 169.397 -     printf_filtered ("'%s' not within current stack frame.\n", arg);
 169.398 --  else if (fp != deprecated_selected_frame)
 169.399 -+  else if (fp != get_selected_frame ())
 169.400 -     select_and_print_frame (fp);
 169.401 - }
 169.402 - 
 169.403 -@@ -1965,7 +1959,7 @@ get_frame_language (void)
 169.404 -          instruction of another function.  So we rely on
 169.405 -          get_frame_address_in_block(), it provides us with a PC which is
 169.406 -          guaranteed to be inside the frame's code block.  */
 169.407 --      s = find_pc_symtab (get_frame_address_in_block (deprecated_selected_frame));
 169.408 -+      s = find_pc_symtab (get_frame_address_in_block (get_selected_frame ()));
 169.409 -       if (s)
 169.410 - 	flang = s->language;
 169.411 -       else
 169.412 -Index: gdb-6.3/gdb/tui/tui-disasm.c
 169.413 -===================================================================
 169.414 ---- gdb-6.3.orig/gdb/tui/tui-disasm.c	2004-02-24 20:10:01.000000000 -0500
 169.415 -+++ gdb-6.3/gdb/tui/tui-disasm.c	2004-11-09 22:51:07.370237044 -0500
 169.416 -@@ -382,7 +382,7 @@ tui_vertical_disassem_scroll (enum tui_s
 169.417 - 
 169.418 -       content = (tui_win_content) TUI_DISASM_WIN->generic.content;
 169.419 -       if (cursal.symtab == (struct symtab *) NULL)
 169.420 --	s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
 169.421 -+	s = find_pc_symtab (get_frame_pc (get_selected_frame ()));
 169.422 -       else
 169.423 - 	s = cursal.symtab;
 169.424 - 
 169.425 -Index: gdb-6.3/gdb/tui/tui-source.c
 169.426 -===================================================================
 169.427 ---- gdb-6.3.orig/gdb/tui/tui-source.c	2004-02-16 16:05:09.000000000 -0500
 169.428 -+++ gdb-6.3/gdb/tui/tui-source.c	2004-11-09 22:51:07.370237044 -0500
 169.429 -@@ -326,7 +326,7 @@ tui_vertical_source_scroll (enum tui_scr
 169.430 -       struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 169.431 - 
 169.432 -       if (cursal.symtab == (struct symtab *) NULL)
 169.433 --	s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
 169.434 -+	s = find_pc_symtab (get_frame_pc (get_selected_frame ()));
 169.435 -       else
 169.436 - 	s = cursal.symtab;
 169.437 - 
 169.438 -Index: gdb-6.3/gdb/tui/tui-winsource.c
 169.439 -===================================================================
 169.440 ---- gdb-6.3.orig/gdb/tui/tui-winsource.c	2004-02-16 16:05:09.000000000 -0500
 169.441 -+++ gdb-6.3/gdb/tui/tui-winsource.c	2004-11-09 22:51:07.371236848 -0500
 169.442 -@@ -311,7 +311,7 @@ tui_horizontal_source_scroll (struct tui
 169.443 -       struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 169.444 - 
 169.445 -       if (cursal.symtab == (struct symtab *) NULL)
 169.446 --	s = find_pc_symtab (get_frame_pc (deprecated_selected_frame));
 169.447 -+	s = find_pc_symtab (get_frame_pc (get_selected_frame ()));
 169.448 -       else
 169.449 - 	s = cursal.symtab;
 169.450 - 
 169.451 -Index: gdb-6.3/gdb/valops.c
 169.452 -===================================================================
 169.453 ---- gdb-6.3.orig/gdb/valops.c	2004-09-13 23:01:48.000000000 -0400
 169.454 -+++ gdb-6.3/gdb/valops.c	2004-11-09 22:51:07.374236263 -0500
 169.455 -@@ -2663,15 +2663,10 @@ value_of_local (const char *name, int co
 169.456 -   struct block *b;
 169.457 -   struct value * ret;
 169.458 - 
 169.459 --  if (deprecated_selected_frame == 0)
 169.460 --    {
 169.461 --      if (complain)
 169.462 --	error ("no frame selected");
 169.463 --      else
 169.464 --	return 0;
 169.465 --    }
 169.466 -+  if (!complain && deprecated_selected_frame == 0)
 169.467 -+    return 0;
 169.468 - 
 169.469 --  func = get_frame_function (deprecated_selected_frame);
 169.470 -+  func = get_frame_function (get_selected_frame ());
 169.471 -   if (!func)
 169.472 -     {
 169.473 -       if (complain)
 169.474 -@@ -2700,7 +2695,7 @@ value_of_local (const char *name, int co
 169.475 - 	return NULL;
 169.476 -     }
 169.477 - 
 169.478 --  ret = read_var_value (sym, deprecated_selected_frame);
 169.479 -+  ret = read_var_value (sym, get_selected_frame ());
 169.480 -   if (ret == 0 && complain)
 169.481 -     error ("`%s' argument unreadable", name);
 169.482 -   return ret;
 169.483 -Index: gdb-6.3/gdb/varobj.c
 169.484 -===================================================================
 169.485 ---- gdb-6.3.orig/gdb/varobj.c	2004-07-26 10:53:06.000000000 -0400
 169.486 -+++ gdb-6.3/gdb/varobj.c	2004-11-09 22:51:07.377235677 -0500
 169.487 -@@ -488,7 +488,7 @@ varobj_create (char *objname,
 169.488 -       if (fi != NULL)
 169.489 - 	{
 169.490 - 	  var->root->frame = get_frame_id (fi);
 169.491 --	  old_fi = deprecated_selected_frame;
 169.492 -+	  old_fi = get_selected_frame ();
 169.493 - 	  select_frame (fi);
 169.494 - 	}
 169.495 - 
 169.496 -Index: gdb-6.3/gdb/testsuite/gdb.base/default.exp
 169.497 -===================================================================
 169.498 ---- gdb-6.3.orig/gdb/testsuite/gdb.base/default.exp	2003-03-20 09:45:50.000000000 -0500
 169.499 -+++ gdb-6.3/gdb/testsuite/gdb.base/default.exp	2004-11-09 22:51:07.379235287 -0500
 169.500 -@@ -167,7 +167,7 @@ gdb_test "disable breakpoints" "" "disab
 169.501 - #test disable display
 169.502 - gdb_test "disable display" "" "disable display"
 169.503 - #test disassemble
 169.504 --gdb_test "disassemble" "No frame selected." "disassemble"
 169.505 -+gdb_test "disassemble" "No (frame selected|registers)." "disassemble"
 169.506 - #test display
 169.507 - gdb_test "display" "" "display"
 169.508 - #test do
 169.509 -@@ -229,9 +229,9 @@ gdb_expect {
 169.510 - }
 169.511 - 
 169.512 - #test frame "f" abbreviation
 169.513 --gdb_test "f" "No stack." "frame \"f\" abbreviation"
 169.514 -+gdb_test "f" "No (stack|registers)." "frame \"f\" abbreviation"
 169.515 - #test frame
 169.516 --gdb_test "frame" "No stack." "frame"
 169.517 -+gdb_test "frame" "No (stack|registers)." "frame"
 169.518 - #test fg
 169.519 - gdb_test "fg" "The program is not being run." "fg"
 169.520 - # FIXME: fg kills the udi connection
 169.521 -@@ -294,9 +294,9 @@ gdb_test "ignore" "Argument required .a 
 169.522 - #test info address
 169.523 - gdb_test "info address" "Argument required." "info address"
 169.524 - #test info all-registers
 169.525 --gdb_test "info all-registers" "The program has no registers now." "info all-registers"
 169.526 -+gdb_test "info all-registers" "(The program has no registers now|No registers)." "info all-registers"
 169.527 - #test info args
 169.528 --gdb_test "info args" "No frame selected." "info args"
 169.529 -+gdb_test "info args" "No (frame selected|registers)." "info args"
 169.530 - #test info bogus-gdb-command
 169.531 - gdb_test "info bogus-gdb-command" "Undefined info command: \"bogus-gdb-command\".  Try \"help info\".*" "info bogus-gdb-command"
 169.532 - #test info breakpoints
 169.533 -@@ -320,11 +320,11 @@ gdb_test "info frame" "No stack.|No sele
 169.534 - #test info files
 169.535 - gdb_test "info files" "" "info files"
 169.536 - #test info float
 169.537 --gdb_test "info float" "The program has no registers now." "info float"
 169.538 -+gdb_test "info float" "(The program has no registers now|No registers)." "info float"
 169.539 - #test info functions
 169.540 - gdb_test "info functions" "All defined functions:" "info functions"
 169.541 - #test info locals
 169.542 --gdb_test "info locals" "No frame selected." "info locals"
 169.543 -+gdb_test "info locals" "(No frame selected|No registers)." "info locals"
 169.544 - #test info program
 169.545 - gdb_test "info program" "The program being debugged is not being run." "info program"
 169.546 - #test info registers
 169.547 -@@ -352,7 +352,7 @@ gdb_test "info types" "All defined types
 169.548 - #test info variables
 169.549 - gdb_test "info variables" "All defined variables:" "info variables"
 169.550 - #test info vector
 169.551 --gdb_test "info vector" "The program has no registers now." "info vector"
 169.552 -+gdb_test "info vector" "(The program has no registers now|No registers)." "info vector"
 169.553 - #test info warranty
 169.554 - gdb_test "info warranty" "NO WARRANTY(\[^\r\n\]*\[\r\n\])+  *11.  *BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY(\[^\r\n\]*\[\r\n\])+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN(\[^\r\n\]*\[\r\n\])+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES(\[^\r\n\]*\[\r\n\])+PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED(\[^\r\n\]*\[\r\n\])+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF(\[^\r\n\]*\[\r\n\])+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS(\[^\r\n\]*\[\r\n\])+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE(\[^\r\n\]*\[\r\n\])+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,(\[^\r\n\]*\[\r\n\])+REPAIR OR CORRECTION.(\[^\r\n\]*\[\r\n\])+  *12.  *IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING(\[^\r\n\]*\[\r\n\])+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR(\[^\r\n\]*\[\r\n\])+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,(\[^\r\n\]*\[\r\n\])+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING(\[^\r\n\]*\[\r\n\])+OUT OF THE USE OR INABILITY TO USE THE PROGRAM .INCLUDING BUT NOT LIMITED(\[^\r\n\]*\[\r\n\])+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY(\[^\r\n\]*\[\r\n\])+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER(\[^\r\n\]*\[\r\n\])+PROGRAMS., EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE(\[^\r\n\]*\[\r\n\])+POSSIBILITY OF SUCH DAMAGES.*" "info warranty"
 169.555 - #test info watchpoints
   170.1 --- a/patches/gdb/6.3/620-debian_static-thread-db.patch	Tue Aug 14 19:32:22 2007 +0000
   170.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.3 @@ -1,156 +0,0 @@
   170.4 -Status: submitted similar patch 2004-12-08
   170.5 -
   170.6 -This patch cleans up the initialization of thread_db.  It works for static
   170.7 -binaries now.  The vsyscall patches hide this problem, since new static
   170.8 -binaries will load the vsyscall DSO and then trigger thread_db; but
   170.9 -this is still a good cleanup.
  170.10 -
  170.11 -Index: gdb-6.3/gdb/thread-db.c
  170.12 -===================================================================
  170.13 ---- gdb-6.3.orig/gdb/thread-db.c	2004-10-08 16:29:56.000000000 -0400
  170.14 -+++ gdb-6.3/gdb/thread-db.c	2004-11-10 00:19:30.626530413 -0500
  170.15 -@@ -34,6 +34,7 @@
  170.16 - #include "target.h"
  170.17 - #include "regcache.h"
  170.18 - #include "solib-svr4.h"
  170.19 -+#include "observer.h"
  170.20 - 
  170.21 - #ifdef HAVE_GNU_LIBC_VERSION_H
  170.22 - #include <gnu/libc-version.h>
  170.23 -@@ -627,59 +628,49 @@ check_thread_signals (void)
  170.24 - #endif
  170.25 - }
  170.26 - 
  170.27 -+/* Check whether thread_db is usable.  This function is called when
  170.28 -+   an inferior is created (or otherwise acquired, e.g. attached to)
  170.29 -+   and when new shared libraries are loaded into a running process.  */
  170.30 -+
  170.31 - static void
  170.32 --thread_db_new_objfile (struct objfile *objfile)
  170.33 -+check_for_thread_db (void)
  170.34 - {
  170.35 -   td_err_e err;
  170.36 -+  static int already_loaded;
  170.37 - 
  170.38 -   /* First time through, report that libthread_db was successfuly
  170.39 -      loaded.  Can't print this in in thread_db_load as, at that stage,
  170.40 --     the interpreter and it's console haven't started.  The real
  170.41 --     problem here is that libthread_db is loaded too early - it should
  170.42 --     only be loaded when there is a program to debug.  */
  170.43 --  {
  170.44 --    static int dejavu;
  170.45 --    if (!dejavu)
  170.46 --      {
  170.47 --	Dl_info info;
  170.48 --	const char *library = NULL;
  170.49 --	/* Try dladdr.  */
  170.50 --	if (dladdr ((*td_ta_new_p), &info) != 0)
  170.51 --	  library = info.dli_fname;
  170.52 --	/* Try dlinfo?  */
  170.53 --	if (library == NULL)
  170.54 --	  /* Paranoid - don't let a NULL path slip through.  */
  170.55 --	  library = LIBTHREAD_DB_SO;
  170.56 --	printf_unfiltered ("Using host libthread_db library \"%s\".\n",
  170.57 --			   library);
  170.58 --	dejavu = 1;
  170.59 --      }
  170.60 --  }
  170.61 -+     the interpreter and it's console haven't started.  */
  170.62 - 
  170.63 --  /* Don't attempt to use thread_db on targets which can not run
  170.64 --     (core files).  */
  170.65 --  if (objfile == NULL || !target_has_execution)
  170.66 -+  if (!already_loaded)
  170.67 -     {
  170.68 --      /* All symbols have been discarded.  If the thread_db target is
  170.69 --         active, deactivate it now.  */
  170.70 --      if (using_thread_db)
  170.71 --	{
  170.72 --	  gdb_assert (proc_handle.pid == 0);
  170.73 --	  unpush_target (&thread_db_ops);
  170.74 --	  using_thread_db = 0;
  170.75 --	}
  170.76 -+      Dl_info info;
  170.77 -+      const char *library = NULL;
  170.78 -+      if (dladdr ((*td_ta_new_p), &info) != 0)
  170.79 -+	library = info.dli_fname;
  170.80 -+
  170.81 -+      /* Try dlinfo?  */
  170.82 - 
  170.83 --      goto quit;
  170.84 -+      if (library == NULL)
  170.85 -+	/* Paranoid - don't let a NULL path slip through.  */
  170.86 -+	library = LIBTHREAD_DB_SO;
  170.87 -+
  170.88 -+      printf_unfiltered ("Using host libthread_db library \"%s\".\n",
  170.89 -+			 library);
  170.90 -+      already_loaded = 1;
  170.91 -     }
  170.92 - 
  170.93 -   if (using_thread_db)
  170.94 -     /* Nothing to do.  The thread library was already detected and the
  170.95 -        target vector was already activated.  */
  170.96 --    goto quit;
  170.97 -+    return;
  170.98 -+
  170.99 -+  /* Don't attempt to use thread_db on targets which can not run
 170.100 -+     (executables not running yet, core files) for now.  */
 170.101 -+  if (!target_has_execution)
 170.102 -+    return;
 170.103 - 
 170.104 --  /* Initialize the structure that identifies the child process.  Note
 170.105 --     that at this point there is no guarantee that we actually have a
 170.106 --     child process.  */
 170.107 -+  /* Initialize the structure that identifies the child process.  */
 170.108 -   proc_handle.pid = GET_PID (inferior_ptid);
 170.109 - 
 170.110 -   /* Now attempt to open a connection to the thread library.  */
 170.111 -@@ -706,12 +697,24 @@ thread_db_new_objfile (struct objfile *o
 170.112 - 	       thread_db_err_str (err));
 170.113 -       break;
 170.114 -     }
 170.115 -+}
 170.116 -+
 170.117 -+static void
 170.118 -+thread_db_new_objfile (struct objfile *objfile)
 170.119 -+{
 170.120 -+  if (objfile != NULL)
 170.121 -+    check_for_thread_db ();
 170.122 - 
 170.123 --quit:
 170.124 -   if (target_new_objfile_chain)
 170.125 -     target_new_objfile_chain (objfile);
 170.126 - }
 170.127 - 
 170.128 -+static void
 170.129 -+check_for_thread_db_observer (struct target_ops *target, int from_tty)
 170.130 -+{
 170.131 -+  check_for_thread_db ();
 170.132 -+}
 170.133 -+
 170.134 - /* Attach to a new thread.  This function is called when we receive a
 170.135 -    TD_CREATE event or when we iterate over all threads and find one
 170.136 -    that wasn't already in our list.  */
 170.137 -@@ -1366,5 +1369,8 @@ _initialize_thread_db (void)
 170.138 -       /* Add ourselves to objfile event chain.  */
 170.139 -       target_new_objfile_chain = deprecated_target_new_objfile_hook;
 170.140 -       deprecated_target_new_objfile_hook = thread_db_new_objfile;
 170.141 -+
 170.142 -+      /* Register ourselves for the new inferior observer.  */
 170.143 -+      observer_attach_inferior_created (check_for_thread_db_observer);
 170.144 -     }
 170.145 - }
 170.146 -Index: gdb-6.3/gdb/Makefile.in
 170.147 -===================================================================
 170.148 ---- gdb-6.3.orig/gdb/Makefile.in	2004-11-09 23:04:57.000000000 -0500
 170.149 -+++ gdb-6.3/gdb/Makefile.in	2004-11-10 00:19:26.440347022 -0500
 170.150 -@@ -2626,7 +2626,8 @@ thread.o: thread.c $(defs_h) $(symtab_h)
 170.151 - 	$(gdbcmd_h) $(regcache_h) $(gdb_h) $(gdb_string_h) $(ui_out_h)
 170.152 - thread-db.o: thread-db.c $(defs_h) $(gdb_assert_h) $(gdb_proc_service_h) \
 170.153 - 	$(gdb_thread_db_h) $(bfd_h) $(gdbthread_h) $(inferior_h) \
 170.154 --	$(symfile_h) $(objfiles_h) $(target_h) $(regcache_h) $(solib_svr4_h)
 170.155 -+	$(symfile_h) $(objfiles_h) $(target_h) $(regcache_h) $(solib_svr4_h) \
 170.156 -+	$(observer_h)
 170.157 - top.o: top.c $(defs_h) $(gdbcmd_h) $(call_cmds_h) $(cli_cmds_h) \
 170.158 - 	$(cli_script_h) $(cli_setshow_h) $(cli_decode_h) $(symtab_h) \
 170.159 - 	$(inferior_h) $(target_h) $(breakpoint_h) $(gdbtypes_h) \
   171.1 --- a/patches/gdb/6.3/630-debian_24.tracepoint-segv.patch	Tue Aug 14 19:32:22 2007 +0000
   171.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.3 @@ -1,15 +0,0 @@
   171.4 -Trivial.  Still need to submit this.
   171.5 -
   171.6 -Index: gdb-6.1/gdb/tracepoint.c
   171.7 -===================================================================
   171.8 ---- gdb-6.1.orig/gdb/tracepoint.c	2004-04-05 13:26:43.000000000 -0400
   171.9 -+++ gdb-6.1/gdb/tracepoint.c	2004-04-05 13:26:45.000000000 -0400
  171.10 -@@ -853,6 +853,8 @@ read_actions (struct tracepoint *t)
  171.11 -       else
  171.12 - 	line = gdb_readline (0);
  171.13 - 
  171.14 -+      if (line == NULL || *line == EOF)
  171.15 -+	break;
  171.16 -       linetype = validate_actionline (&line, t);
  171.17 -       if (linetype == BADLINE)
  171.18 - 	continue;		/* already warned -- collect another line */
   172.1 --- a/patches/gdb/6.3/640-debian_dwarf2-frame-signal-unwinder.patch	Tue Aug 14 19:32:22 2007 +0000
   172.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   172.3 @@ -1,120 +0,0 @@
   172.4 -Status: Checked in to HEAD after 6.3.
   172.5 -
   172.6 -2004-11-07  Daniel Jacobowitz  <dan@debian.org>
   172.7 -
   172.8 -	* dwarf2-frame.c (struct dwarf2_frame_ops): Add signal_frame_p.
   172.9 -	(dwarf2_frame_set_signal_frame_p, dwarf2_frame_signal_frame_p)
  172.10 -	(dwarf2_signal_frame_unwind): New.
  172.11 -	(dwarf2_frame_sniffer): Use dwarf2_frame_signal_frame_p.
  172.12 -	* dwarf2-frame.h (dwarf2_frame_set_signal_frame_p): New prototype.
  172.13 -
  172.14 -Index: src/gdb/dwarf2-frame.c
  172.15 -===================================================================
  172.16 -RCS file: /big/fsf/rsync/src-cvs/src/gdb/dwarf2-frame.c,v
  172.17 -retrieving revision 1.41
  172.18 -diff -u -p -r1.41 dwarf2-frame.c
  172.19 ---- src/gdb/dwarf2-frame.c	4 Nov 2004 21:15:15 -0000	1.41
  172.20 -+++ src/gdb/dwarf2-frame.c	7 Nov 2004 17:41:58 -0000
  172.21 -@@ -471,6 +471,10 @@ struct dwarf2_frame_ops
  172.22 - {
  172.23 -   /* Pre-initialize the register state REG for register REGNUM.  */
  172.24 -   void (*init_reg) (struct gdbarch *, int, struct dwarf2_frame_state_reg *);
  172.25 -+
  172.26 -+  /* Check whether the frame preceding NEXT_FRAME will be a signal
  172.27 -+     trampoline.  */
  172.28 -+  int (*signal_frame_p) (struct gdbarch *, struct frame_info *);
  172.29 - };
  172.30 - 
  172.31 - /* Default architecture-specific register state initialization
  172.32 -@@ -547,6 +551,33 @@ dwarf2_frame_init_reg (struct gdbarch *g
  172.33 - 
  172.34 -   ops->init_reg (gdbarch, regnum, reg);
  172.35 - }
  172.36 -+
  172.37 -+/* Set the architecture-specific signal trampoline recognition
  172.38 -+   function for GDBARCH to SIGNAL_FRAME_P.  */
  172.39 -+
  172.40 -+void
  172.41 -+dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
  172.42 -+				 int (*signal_frame_p) (struct gdbarch *,
  172.43 -+							struct frame_info *))
  172.44 -+{
  172.45 -+  struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data);
  172.46 -+
  172.47 -+  ops->signal_frame_p = signal_frame_p;
  172.48 -+}
  172.49 -+
  172.50 -+/* Query the architecture-specific signal frame recognizer for
  172.51 -+   NEXT_FRAME.  */
  172.52 -+
  172.53 -+static int
  172.54 -+dwarf2_frame_signal_frame_p (struct gdbarch *gdbarch,
  172.55 -+			     struct frame_info *next_frame)
  172.56 -+{
  172.57 -+  struct dwarf2_frame_ops *ops = gdbarch_data (gdbarch, dwarf2_frame_data);
  172.58 -+
  172.59 -+  if (ops->signal_frame_p == NULL)
  172.60 -+    return 0;
  172.61 -+  return ops->signal_frame_p (gdbarch, next_frame);
  172.62 -+}
  172.63 - 
  172.64 - 
  172.65 - struct dwarf2_frame_cache
  172.66 -@@ -841,6 +872,13 @@ static const struct frame_unwind dwarf2_
  172.67 -   dwarf2_frame_prev_register
  172.68 - };
  172.69 - 
  172.70 -+static const struct frame_unwind dwarf2_signal_frame_unwind =
  172.71 -+{
  172.72 -+  SIGTRAMP_FRAME,
  172.73 -+  dwarf2_frame_this_id,
  172.74 -+  dwarf2_frame_prev_register
  172.75 -+};
  172.76 -+
  172.77 - const struct frame_unwind *
  172.78 - dwarf2_frame_sniffer (struct frame_info *next_frame)
  172.79 - {
  172.80 -@@ -848,10 +886,18 @@ dwarf2_frame_sniffer (struct frame_info 
  172.81 -      function.  frame_pc_unwind(), for a no-return next function, can
  172.82 -      end up returning something past the end of this function's body.  */
  172.83 -   CORE_ADDR block_addr = frame_unwind_address_in_block (next_frame);
  172.84 --  if (dwarf2_frame_find_fde (&block_addr))
  172.85 --    return &dwarf2_frame_unwind;
  172.86 -+  if (!dwarf2_frame_find_fde (&block_addr))
  172.87 -+    return NULL;
  172.88 - 
  172.89 --  return NULL;
  172.90 -+  /* On some targets, signal trampolines may have unwind information.
  172.91 -+     We need to recognize them so that we set the frame type
  172.92 -+     correctly.  */
  172.93 -+
  172.94 -+  if (dwarf2_frame_signal_frame_p (get_frame_arch (next_frame),
  172.95 -+				   next_frame))
  172.96 -+    return &dwarf2_signal_frame_unwind;
  172.97 -+
  172.98 -+  return &dwarf2_frame_unwind;
  172.99 - }
 172.100 - 
 172.101 - 
 172.102 -Index: src/gdb/dwarf2-frame.h
 172.103 -===================================================================
 172.104 -RCS file: /big/fsf/rsync/src-cvs/src/gdb/dwarf2-frame.h,v
 172.105 -retrieving revision 1.6
 172.106 -diff -u -p -r1.6 dwarf2-frame.h
 172.107 ---- src/gdb/dwarf2-frame.h	28 Feb 2004 16:59:32 -0000	1.6
 172.108 -+++ src/gdb/dwarf2-frame.h	7 Nov 2004 17:40:41 -0000
 172.109 -@@ -79,6 +79,14 @@ extern void dwarf2_frame_set_init_reg (s
 172.110 - 				       void (*init_reg) (struct gdbarch *, int,
 172.111 - 					     struct dwarf2_frame_state_reg *));
 172.112 - 
 172.113 -+/* Set the architecture-specific signal trampoline recognition
 172.114 -+   function for GDBARCH to SIGNAL_FRAME_P.  */
 172.115 -+
 172.116 -+extern void
 172.117 -+  dwarf2_frame_set_signal_frame_p (struct gdbarch *gdbarch,
 172.118 -+				   int (*signal_frame_p) (struct gdbarch *,
 172.119 -+							  struct frame_info *));
 172.120 -+
 172.121 - /* Return the frame unwind methods for the function that contains PC,
 172.122 -    or NULL if it can't be handled by DWARF CFI frame unwinder.  */
 172.123 - 
   173.1 --- a/patches/gdb/6.3/650-debian_vsyscall-gdb-support.patch	Tue Aug 14 19:32:22 2007 +0000
   173.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   173.3 @@ -1,245 +0,0 @@
   173.4 -Status: Checked in to HEAD after 6.3.
   173.5 -
   173.6 -2004-11-07  Andrew Cagney  <cagney@redhat.com>
   173.7 -	    Daniel Jacobowitz  <dan@debian.org>
   173.8 -	    Roland McGrath  <roland@redhat.com>
   173.9 -
  173.10 -	* Makefile.in (symfile-mem.o): Update dependencies.
  173.11 -	* i386-linux-tdep.c (i386_linux_dwarf_signal_frame_p): New.
  173.12 -	(i386_linux_init_abi): Call dwarf2_frame_set_signal_frame_p.
  173.13 -	* inf-ptrace.c (inf_ptrace_attach): Call
  173.14 -	observer_notify_inferior_created.
  173.15 -	* inftarg.c (child_attach): Likewise.
  173.16 -	* symfile-mem.c: Include "observer.h", "auxv.h", and "elf/common.h".
  173.17 -	(symbol_file_add_from_memory): Take NAME argument.  Use it for
  173.18 -	the new BFD's filename.
  173.19 -	(add_symbol_file_from_memory_command): Update call to
  173.20 -	symbol_file_add_from_memory.
  173.21 -	(struct symbol_file_add_from_memory_args, add_vsyscall_page)
  173.22 -	(symbol_file_add_from_memory_wrapper): New.
  173.23 -	(_initialize_symfile_mem): Register add_vsyscall_page as an
  173.24 -	inferior_created observer.
  173.25 -
  173.26 -Index: gdb-6.3/gdb/i386-linux-tdep.c
  173.27 -===================================================================
  173.28 ---- gdb-6.3.orig/gdb/i386-linux-tdep.c	2004-08-06 16:58:28.000000000 -0400
  173.29 -+++ gdb-6.3/gdb/i386-linux-tdep.c	2004-11-10 00:55:06.669398770 -0500
  173.30 -@@ -27,6 +27,7 @@
  173.31 - #include "inferior.h"
  173.32 - #include "osabi.h"
  173.33 - #include "reggroups.h"
  173.34 -+#include "dwarf2-frame.h"
  173.35 - 
  173.36 - #include "gdb_string.h"
  173.37 - 
  173.38 -@@ -244,6 +245,27 @@ i386_linux_sigtramp_p (struct frame_info
  173.39 - 	  || strcmp ("__restore_rt", name) == 0);
  173.40 - }
  173.41 - 
  173.42 -+/* Return one if the unwound PC from NEXT_FRAME is in a signal trampoline
  173.43 -+   which may have DWARF-2 CFI.  */
  173.44 -+
  173.45 -+static int
  173.46 -+i386_linux_dwarf_signal_frame_p (struct gdbarch *gdbarch,
  173.47 -+				 struct frame_info *next_frame)
  173.48 -+{
  173.49 -+  CORE_ADDR pc = frame_pc_unwind (next_frame);
  173.50 -+  char *name;
  173.51 -+
  173.52 -+  find_pc_partial_function (pc, &name, NULL, NULL);
  173.53 -+
  173.54 -+  /* If a vsyscall DSO is in use, the signal trampolines may have these
  173.55 -+     names.  */
  173.56 -+  if (name && (strcmp (name, "__kernel_sigreturn") == 0
  173.57 -+	       || strcmp (name, "__kernel_rt_sigreturn") == 0))
  173.58 -+    return 1;
  173.59 -+
  173.60 -+  return 0;
  173.61 -+}
  173.62 -+
  173.63 - /* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>.  */
  173.64 - #define I386_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 20
  173.65 - 
  173.66 -@@ -414,6 +436,8 @@ i386_linux_init_abi (struct gdbarch_info
  173.67 - 
  173.68 -   /* GNU/Linux uses the dynamic linker included in the GNU C Library.  */
  173.69 -   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
  173.70 -+
  173.71 -+  dwarf2_frame_set_signal_frame_p (gdbarch, i386_linux_dwarf_signal_frame_p);
  173.72 - }
  173.73 - 
  173.74 - /* Provide a prototype to silence -Wmissing-prototypes.  */
  173.75 -Index: gdb-6.3/gdb/inf-ptrace.c
  173.76 -===================================================================
  173.77 ---- gdb-6.3.orig/gdb/inf-ptrace.c	2004-10-15 09:29:33.000000000 -0400
  173.78 -+++ gdb-6.3/gdb/inf-ptrace.c	2004-11-10 00:53:43.697615843 -0500
  173.79 -@@ -220,6 +220,10 @@ inf_ptrace_attach (char *args, int from_
  173.80 - 
  173.81 -   inferior_ptid = pid_to_ptid (pid);
  173.82 -   push_target (ptrace_ops_hack);
  173.83 -+
  173.84 -+  /* Do this first, before anything has had a chance to query the
  173.85 -+     inferior's symbol table or similar.  */
  173.86 -+  observer_notify_inferior_created (&current_target, from_tty);
  173.87 - }
  173.88 - 
  173.89 - static void
  173.90 -Index: gdb-6.3/gdb/inftarg.c
  173.91 -===================================================================
  173.92 ---- gdb-6.3.orig/gdb/inftarg.c	2004-10-08 16:29:47.000000000 -0400
  173.93 -+++ gdb-6.3/gdb/inftarg.c	2004-11-10 00:53:43.711613107 -0500
  173.94 -@@ -211,6 +211,10 @@ child_attach (char *args, int from_tty)
  173.95 -   
  173.96 -   inferior_ptid = pid_to_ptid (pid);
  173.97 -   push_target (&deprecated_child_ops);
  173.98 -+
  173.99 -+  /* Do this first, before anything has had a chance to query the
 173.100 -+     inferior's symbol table or similar.  */
 173.101 -+  observer_notify_inferior_created (&current_target, from_tty);
 173.102 - }
 173.103 - 
 173.104 - #if !defined(CHILD_POST_ATTACH)
 173.105 -Index: gdb-6.3/gdb/symfile-mem.c
 173.106 -===================================================================
 173.107 ---- gdb-6.3.orig/gdb/symfile-mem.c	2004-07-17 10:24:07.000000000 -0400
 173.108 -+++ gdb-6.3/gdb/symfile-mem.c	2004-11-10 00:53:43.722610958 -0500
 173.109 -@@ -52,13 +52,19 @@
 173.110 - #include "target.h"
 173.111 - #include "value.h"
 173.112 - #include "symfile.h"
 173.113 -+#include "observer.h"
 173.114 -+#include "auxv.h"
 173.115 -+#include "elf/common.h"
 173.116 - 
 173.117 - 
 173.118 - /* Read inferior memory at ADDR to find the header of a loaded object file
 173.119 -    and read its in-core symbols out of inferior memory.  TEMPL is a bfd
 173.120 --   representing the target's format.  */
 173.121 -+   representing the target's format.  NAME is the name to use for this
 173.122 -+   symbol file in messages; it can be NULL or a malloc-allocated string
 173.123 -+   which will be attached to the BFD.  */
 173.124 - static struct objfile *
 173.125 --symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr, int from_tty)
 173.126 -+symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr, char *name,
 173.127 -+			     int from_tty)
 173.128 - {
 173.129 -   struct objfile *objf;
 173.130 -   struct bfd *nbfd;
 173.131 -@@ -75,7 +81,10 @@ symbol_file_add_from_memory (struct bfd 
 173.132 -   if (nbfd == NULL)
 173.133 -     error ("Failed to read a valid object file image from memory.");
 173.134 - 
 173.135 --  nbfd->filename = xstrdup ("shared object read from target memory");
 173.136 -+  if (name == NULL)
 173.137 -+    nbfd->filename = xstrdup ("shared object read from target memory");
 173.138 -+  else
 173.139 -+    nbfd->filename = name;
 173.140 - 
 173.141 -   if (!bfd_check_format (nbfd, bfd_object))
 173.142 -     {
 173.143 -@@ -129,7 +138,73 @@ add_symbol_file_from_memory_command (cha
 173.144 -     error ("\
 173.145 - Must use symbol-file or exec-file before add-symbol-file-from-memory.");
 173.146 - 
 173.147 --  symbol_file_add_from_memory (templ, addr, from_tty);
 173.148 -+  symbol_file_add_from_memory (templ, addr, NULL, from_tty);
 173.149 -+}
 173.150 -+
 173.151 -+/* Arguments for symbol_file_add_from_memory_wrapper.  */
 173.152 -+
 173.153 -+struct symbol_file_add_from_memory_args
 173.154 -+{
 173.155 -+  struct bfd *bfd;
 173.156 -+  CORE_ADDR sysinfo_ehdr;
 173.157 -+  char *name;
 173.158 -+  int from_tty;
 173.159 -+};
 173.160 -+
 173.161 -+/* Wrapper function for symbol_file_add_from_memory, for
 173.162 -+   catch_exceptions.  */
 173.163 -+
 173.164 -+static int
 173.165 -+symbol_file_add_from_memory_wrapper (struct ui_out *uiout, void *data)
 173.166 -+{
 173.167 -+  struct symbol_file_add_from_memory_args *args = data;
 173.168 -+
 173.169 -+  symbol_file_add_from_memory (args->bfd, args->sysinfo_ehdr, args->name,
 173.170 -+			       args->from_tty);
 173.171 -+  return 0;
 173.172 -+}
 173.173 -+
 173.174 -+/* Try to add the symbols for the vsyscall page, if there is one.  This function
 173.175 -+   is called via the inferior_created observer.  */
 173.176 -+
 173.177 -+static void
 173.178 -+add_vsyscall_page (struct target_ops *target, int from_tty)
 173.179 -+{
 173.180 -+  CORE_ADDR sysinfo_ehdr;
 173.181 -+
 173.182 -+  if (target_auxv_search (target, AT_SYSINFO_EHDR, &sysinfo_ehdr) > 0
 173.183 -+      && sysinfo_ehdr != (CORE_ADDR) 0)
 173.184 -+    {
 173.185 -+      struct bfd *bfd;
 173.186 -+      struct symbol_file_add_from_memory_args args;
 173.187 -+
 173.188 -+      if (core_bfd != NULL)
 173.189 -+	bfd = core_bfd;
 173.190 -+      else if (exec_bfd != NULL)
 173.191 -+	bfd = exec_bfd;
 173.192 -+      else
 173.193 -+       /* FIXME: cagney/2004-05-06: Should not require an existing
 173.194 -+	  BFD when trying to create a run-time BFD of the VSYSCALL
 173.195 -+	  page in the inferior.  Unfortunately that's the current
 173.196 -+	  interface so for the moment bail.  Introducing a
 173.197 -+	  ``bfd_runtime'' (a BFD created using the loaded image) file
 173.198 -+	  format should fix this.  */
 173.199 -+	{
 173.200 -+	  warning ("could not load vsyscall page because no executable was specified");
 173.201 -+	  warning ("try using the \"file\" command first");
 173.202 -+	  return;
 173.203 -+	}
 173.204 -+      args.bfd = bfd;
 173.205 -+      args.sysinfo_ehdr = sysinfo_ehdr;
 173.206 -+      xasprintf (&args.name, "system-supplied DSO at 0x%s",
 173.207 -+		 paddr_nz (sysinfo_ehdr));
 173.208 -+      /* Pass zero for FROM_TTY, because the action of loading the
 173.209 -+	 vsyscall DSO was not triggered by the user, even if the user
 173.210 -+	 typed "run" at the TTY.  */
 173.211 -+      args.from_tty = 0;
 173.212 -+      catch_exceptions (uiout, symbol_file_add_from_memory_wrapper,
 173.213 -+			&args, NULL, RETURN_MASK_ALL);
 173.214 -+    }
 173.215 - }
 173.216 - 
 173.217 - 
 173.218 -@@ -143,4 +218,7 @@ Load the symbols out of memory from a dy
 173.219 - Give an expression for the address of the file's shared object file header.",
 173.220 -            &cmdlist);
 173.221 - 
 173.222 -+  /* Want to know of each new inferior so that its vsyscall info can
 173.223 -+     be extracted.  */
 173.224 -+  observer_attach_inferior_created (add_vsyscall_page);
 173.225 - }
 173.226 -Index: gdb-6.3/gdb/Makefile.in
 173.227 -===================================================================
 173.228 ---- gdb-6.3.orig/gdb/Makefile.in	2004-11-10 00:29:00.000000000 -0500
 173.229 -+++ gdb-6.3/gdb/Makefile.in	2004-11-10 00:54:47.728100986 -0500
 173.230 -@@ -2020,7 +2020,7 @@ i386-linux-nat.o: i386-linux-nat.c $(def
 173.231 - i386-linux-tdep.o: i386-linux-tdep.c $(defs_h) $(gdbcore_h) $(frame_h) \
 173.232 - 	$(value_h) $(regcache_h) $(inferior_h) $(osabi_h) $(reggroups_h) \
 173.233 - 	$(gdb_string_h) $(i386_tdep_h) $(i386_linux_tdep_h) $(glibc_tdep_h) \
 173.234 --	$(solib_svr4_h)
 173.235 -+	$(solib_svr4_h) $(dwarf2_frame_h)
 173.236 - i386ly-tdep.o: i386ly-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h) \
 173.237 - 	$(regcache_h) $(target_h) $(osabi_h) $(i386_tdep_h)
 173.238 - i386-nat.o: i386-nat.c $(defs_h) $(breakpoint_h) $(command_h) $(gdbcmd_h)
 173.239 -@@ -2606,7 +2606,8 @@ symfile.o: symfile.c $(defs_h) $(bfdlink
 173.240 - 	$(hashtab_h) $(readline_h) $(gdb_assert_h) $(block_h) \
 173.241 - 	$(gdb_string_h) $(gdb_stat_h)
 173.242 - symfile-mem.o: symfile-mem.c $(defs_h) $(symtab_h) $(gdbcore_h) \
 173.243 --	$(objfiles_h) $(gdbcmd_h) $(target_h) $(value_h) $(symfile_h)
 173.244 -+	$(objfiles_h) $(gdbcmd_h) $(target_h) $(value_h) $(symfile_h) \
 173.245 -+	$(observer_h) $(auxv_h) $(elf_common_h)
 173.246 - symmisc.o: symmisc.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(bfd_h) \
 173.247 - 	$(symfile_h) $(objfiles_h) $(breakpoint_h) $(command_h) \
 173.248 - 	$(gdb_obstack_h) $(language_h) $(bcache_h) $(block_h) $(gdb_regex_h) \
   174.1 --- a/patches/gdb/6.3/660-debian_dwarf-cfa-restore.patch	Tue Aug 14 19:32:22 2007 +0000
   174.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   174.3 @@ -1,23 +0,0 @@
   174.4 -Status: Checked in to HEAD after 6.3.
   174.5 -
   174.6 -2004-11-09  Daniel Jacobowitz  <dan@debian.org>
   174.7 -
   174.8 -	* dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Correct allocated
   174.9 -	size.
  174.10 -
  174.11 -Index: src/gdb/dwarf2-frame.c
  174.12 -===================================================================
  174.13 -RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
  174.14 -retrieving revision 1.45
  174.15 -diff -u -p -r1.45 dwarf2-frame.c
  174.16 ---- src/gdb/dwarf2-frame.c	7 Nov 2004 21:16:11 -0000	1.45
  174.17 -+++ src/gdb/dwarf2-frame.c	9 Nov 2004 14:42:52 -0000
  174.18 -@@ -162,7 +162,7 @@ dwarf2_frame_state_alloc_regs (struct dw
  174.19 - static struct dwarf2_frame_state_reg *
  174.20 - dwarf2_frame_state_copy_regs (struct dwarf2_frame_state_reg_info *rs)
  174.21 - {
  174.22 --  size_t size = rs->num_regs * sizeof (struct dwarf2_frame_state_reg_info);
  174.23 -+  size_t size = rs->num_regs * sizeof (struct dwarf2_frame_state_reg);
  174.24 -   struct dwarf2_frame_state_reg *reg;
  174.25 - 
  174.26 -   reg = (struct dwarf2_frame_state_reg *) xmalloc (size);
   175.1 --- a/patches/gdb/6.3/680-debian_sim-destdir.patch	Tue Aug 14 19:32:22 2007 +0000
   175.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.3 @@ -1,53 +0,0 @@
   175.4 -Fix some missing uses of DESTDIR in the sim/ directories.  The Debian
   175.5 -packages use DESTDIR to build.
   175.6 -
   175.7 -%patch
   175.8 -Index: gdb-6.3/sim/Makefile.in
   175.9 -===================================================================
  175.10 ---- gdb-6.3.orig/sim/Makefile.in	2003-09-03 14:46:52.000000000 -0400
  175.11 -+++ gdb-6.3/sim/Makefile.in	2004-11-10 00:39:25.381315738 -0500
  175.12 -@@ -93,6 +93,7 @@ FLAGS_TO_PASS = \
  175.13 - 	"CC=$(CC)" \
  175.14 - 	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
  175.15 - 	"CFLAGS=$(CFLAGS)" \
  175.16 -+	"DESTDIR=$(DESTDIR)" \
  175.17 - 	"RANLIB=$(RANLIB)" \
  175.18 - 	"MAKEINFO=$(MAKEINFO)" \
  175.19 - 	"INSTALL=$(INSTALL)" \
  175.20 -Index: gdb-6.3/sim/common/Make-common.in
  175.21 -===================================================================
  175.22 ---- gdb-6.3.orig/sim/common/Make-common.in	2003-09-08 13:24:59.000000000 -0400
  175.23 -+++ gdb-6.3/sim/common/Make-common.in	2004-11-10 00:39:25.383315347 -0500
  175.24 -@@ -581,14 +581,14 @@ install: install-common $(SIM_EXTRA_INST
  175.25 - 
  175.26 - install-common: installdirs
  175.27 - 	n=`echo run | sed '$(program_transform_name)'`; \
  175.28 --	$(INSTALL_PROGRAM) run$(EXEEXT) $(bindir)/$$n$(EXEEXT)
  175.29 -+	$(INSTALL_PROGRAM) run$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
  175.30 - 	n=`echo libsim.a | sed s/libsim.a/lib$(target_alias)-sim.a/`; \
  175.31 --	$(INSTALL_DATA) libsim.a $(libdir)/$$n ; \
  175.32 --	( cd $(libdir) ; $(RANLIB) $$n )
  175.33 -+	$(INSTALL_DATA) libsim.a $(DESTDIR)$(libdir)/$$n ; \
  175.34 -+	( cd $(DESTDIR)$(libdir) ; $(RANLIB) $$n )
  175.35 - 
  175.36 - installdirs:
  175.37 --	$(SHELL) $(srcdir)/../../mkinstalldirs $(bindir)
  175.38 --	$(SHELL) $(srcdir)/../../mkinstalldirs $(libdir)
  175.39 -+	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(bindir)
  175.40 -+	$(SHELL) $(srcdir)/../../mkinstalldirs $(DESTDIR)$(libdir)
  175.41 - 
  175.42 - check:
  175.43 - 	cd ../testsuite && $(MAKE) check RUNTESTFLAGS="$(RUNTESTFLAGS)"
  175.44 -Index: gdb-6.3/sim/erc32/Makefile.in
  175.45 -===================================================================
  175.46 ---- gdb-6.3.orig/sim/erc32/Makefile.in	2000-03-07 10:32:49.000000000 -0500
  175.47 -+++ gdb-6.3/sim/erc32/Makefile.in	2004-11-10 00:39:25.385314957 -0500
  175.48 -@@ -53,7 +53,7 @@ end.h: end
  175.49 - # Copy the files into directories where they will be run.
  175.50 - install-sis: installdirs
  175.51 - 	n=`echo sis | sed '$(program_transform_name)'`; \
  175.52 --	$(INSTALL_PROGRAM) sis$(EXEEXT) $(bindir)/$$n$(EXEEXT)
  175.53 -+	$(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
  175.54 - 
  175.55 - clean-sis:
  175.56 - 	rm -f sis end end.h
   176.1 --- a/patches/gdb/6.3/690-debian_member-field-symtab.patch	Tue Aug 14 19:32:22 2007 +0000
   176.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.3 @@ -1,35 +0,0 @@
   176.4 -Status: unsubmitted
   176.5 -
   176.6 -This patch was for Debian bug #239535.  It needs to be tested, and
   176.7 -submitted.
   176.8 -
   176.9 -Index: gdb-6.3/gdb/valops.c
  176.10 -===================================================================
  176.11 ---- gdb-6.3.orig/gdb/valops.c	2004-11-09 22:51:07.000000000 -0500
  176.12 -+++ gdb-6.3/gdb/valops.c	2004-11-10 00:43:54.036837699 -0500
  176.13 -@@ -2314,8 +2314,10 @@ check_field_in (struct type *type, const
  176.14 - 	return 1;
  176.15 -     }
  176.16 - 
  176.17 -+  /* Check each baseclass.  Call check_typedef, which will follow typedefs
  176.18 -+     and do opaque/stub type resolution.  */
  176.19 -   for (i = TYPE_N_BASECLASSES (type) - 1; i >= 0; i--)
  176.20 --    if (check_field_in (TYPE_BASECLASS (type, i), name))
  176.21 -+    if (check_field_in (check_typedef (TYPE_BASECLASS (type, i)), name))
  176.22 -       return 1;
  176.23 - 
  176.24 -   return 0;
  176.25 -Index: gdb-6.3/gdb/dwarf2read.c
  176.26 -===================================================================
  176.27 ---- gdb-6.3.orig/gdb/dwarf2read.c	2004-10-15 20:41:00.000000000 -0400
  176.28 -+++ gdb-6.3/gdb/dwarf2read.c	2004-11-10 00:46:21.970935829 -0500
  176.29 -@@ -2099,8 +2099,8 @@ guess_structure_name (struct partial_die
  176.30 - 				    strlen (actual_class_name),
  176.31 - 				    &cu->comp_unit_obstack);
  176.32 - 		  xfree (actual_class_name);
  176.33 -+		  break;
  176.34 - 		}
  176.35 --	      break;
  176.36 - 	    }
  176.37 - 
  176.38 - 	  child_pdi = child_pdi->die_sibling;
   177.1 --- a/patches/gdb/6.3/700-debian_cp-pass-by-reference.patch	Tue Aug 14 19:32:22 2007 +0000
   177.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   177.3 @@ -1,464 +0,0 @@
   177.4 -This patch needs to be submitted for the FSF.  Also, there may be testcases
   177.5 -already in the GDB testsuite (currently disabled) that it would probably fix.
   177.6 -
   177.7 -Index: gdb-6.3/gdb/infcall.c
   177.8 -===================================================================
   177.9 ---- gdb-6.3.orig/gdb/infcall.c	2004-10-08 04:15:56.000000000 -0400
  177.10 -+++ gdb-6.3/gdb/infcall.c	2004-11-10 12:30:07.000000000 -0500
  177.11 -@@ -36,6 +36,7 @@
  177.12 - #include "gdb_string.h"
  177.13 - #include "infcall.h"
  177.14 - #include "dummy-frame.h"
  177.15 -+#include "cp-abi.h"
  177.16 - 
  177.17 - /* NOTE: cagney/2003-04-16: What's the future of this code?
  177.18 - 
  177.19 -@@ -297,8 +298,8 @@ call_function_by_hand (struct value *fun
  177.20 - {
  177.21 -   CORE_ADDR sp;
  177.22 -   CORE_ADDR dummy_addr;
  177.23 --  struct type *value_type;
  177.24 --  unsigned char struct_return;
  177.25 -+  struct type *value_type, *target_value_type;
  177.26 -+  unsigned char struct_return = 0, cp_struct_return = 0;
  177.27 -   CORE_ADDR struct_addr = 0;
  177.28 -   struct regcache *retbuf;
  177.29 -   struct cleanup *retbuf_cleanup;
  177.30 -@@ -312,6 +313,7 @@ call_function_by_hand (struct value *fun
  177.31 -   struct regcache *caller_regcache;
  177.32 -   struct cleanup *caller_regcache_cleanup;
  177.33 -   struct frame_id dummy_id;
  177.34 -+  struct cleanup *args_cleanup;
  177.35 - 
  177.36 -   if (!target_has_execution)
  177.37 -     noprocess ();
  177.38 -@@ -410,10 +412,31 @@ call_function_by_hand (struct value *fun
  177.39 -     using_gcc = (b == NULL ? 2 : BLOCK_GCC_COMPILED (b));
  177.40 -   }
  177.41 - 
  177.42 --  /* Are we returning a value using a structure return or a normal
  177.43 --     value return? */
  177.44 -+  /* Are we returning a value using a structure return (passing a
  177.45 -+     hidden argument pointing to storage) or a normal value return?
  177.46 -+     There are two cases: C++ ABI mandated structure return and
  177.47 -+     target ABI structure return.  The variable STRUCT_RETURN only
  177.48 -+     describes the latter.  The C++ version is handled by passing
  177.49 -+     the return location as the first parameter to the function,
  177.50 -+     even preceding "this".  This is different from the target
  177.51 -+     ABI version, which is target-specific; for instance, on ia64
  177.52 -+     the first argument is passed in out0 but the hidden structure
  177.53 -+     return pointer would normally be passed in r8.  */
  177.54 - 
  177.55 --  struct_return = using_struct_return (value_type, using_gcc);
  177.56 -+  if (current_language->la_language == language_cplus
  177.57 -+      && cp_pass_by_reference (value_type))
  177.58 -+    {
  177.59 -+      cp_struct_return = 1;
  177.60 -+
  177.61 -+      /* Tell the target specific argument pushing routine not to
  177.62 -+	 expect a value.  */
  177.63 -+      target_value_type = builtin_type_void;
  177.64 -+    }
  177.65 -+  else
  177.66 -+    {
  177.67 -+      struct_return = using_struct_return (value_type, using_gcc);
  177.68 -+      target_value_type = value_type;
  177.69 -+    }
  177.70 - 
  177.71 -   /* Determine the location of the breakpoint (and possibly other
  177.72 -      stuff) that the called function will return to.  The SPARC, for a
  177.73 -@@ -432,7 +455,7 @@ call_function_by_hand (struct value *fun
  177.74 -       if (INNER_THAN (1, 2))
  177.75 - 	{
  177.76 - 	  sp = push_dummy_code (current_gdbarch, sp, funaddr,
  177.77 --				using_gcc, args, nargs, value_type,
  177.78 -+				using_gcc, args, nargs, target_value_type,
  177.79 - 				&real_pc, &bp_addr);
  177.80 - 	  dummy_addr = sp;
  177.81 - 	}
  177.82 -@@ -440,7 +463,7 @@ call_function_by_hand (struct value *fun
  177.83 - 	{
  177.84 - 	  dummy_addr = sp;
  177.85 - 	  sp = push_dummy_code (current_gdbarch, sp, funaddr,
  177.86 --				using_gcc, args, nargs, value_type,
  177.87 -+				using_gcc, args, nargs, target_value_type,
  177.88 - 				&real_pc, &bp_addr);
  177.89 - 	}
  177.90 -       break;
  177.91 -@@ -507,9 +530,15 @@ call_function_by_hand (struct value *fun
  177.92 - 	  param_type = TYPE_FIELD_TYPE (ftype, i);
  177.93 - 	else
  177.94 - 	  param_type = NULL;
  177.95 --	
  177.96 -+
  177.97 - 	args[i] = value_arg_coerce (args[i], param_type, prototyped);
  177.98 - 
  177.99 -+	/* FIXME: Is current_language the right language?  */
 177.100 -+	if (current_language->la_language == language_cplus
 177.101 -+	    && param_type != NULL
 177.102 -+	    && cp_pass_by_reference (param_type))
 177.103 -+	  args[i] = value_addr (args[i]);
 177.104 -+
 177.105 - 	/* elz: this code is to handle the case in which the function
 177.106 - 	   to be called has a pointer to function as parameter and the
 177.107 - 	   corresponding actual argument is the address of a function
 177.108 -@@ -607,7 +636,7 @@ You must use a pointer to function type 
 177.109 -      stack, if necessary.  Make certain that the value is correctly
 177.110 -      aligned. */
 177.111 - 
 177.112 --  if (struct_return)
 177.113 -+  if (struct_return || cp_struct_return)
 177.114 -     {
 177.115 -       int len = TYPE_LENGTH (value_type);
 177.116 -       if (INNER_THAN (1, 2))
 177.117 -@@ -632,6 +661,22 @@ You must use a pointer to function type 
 177.118 - 	}
 177.119 -     }
 177.120 - 
 177.121 -+  if (cp_struct_return)
 177.122 -+    {
 177.123 -+      struct value **new_args;
 177.124 -+
 177.125 -+      /* Add the new argument to the front of the argument list.  */
 177.126 -+      new_args = xmalloc (sizeof (struct value *) * (nargs + 1));
 177.127 -+      new_args[0] = value_from_pointer (lookup_pointer_type (value_type),
 177.128 -+					struct_addr);
 177.129 -+      memcpy (&new_args[1], &args[0], sizeof (struct value *) * nargs);
 177.130 -+      args = new_args;
 177.131 -+      nargs++;
 177.132 -+      args_cleanup = make_cleanup (xfree, args);
 177.133 -+    }
 177.134 -+  else
 177.135 -+    args_cleanup = make_cleanup (null_cleanup, NULL);
 177.136 -+
 177.137 -   /* Create the dummy stack frame.  Pass in the call dummy address as,
 177.138 -      presumably, the ABI code knows where, in the call dummy, the
 177.139 -      return address should be pointed.  */
 177.140 -@@ -649,6 +694,8 @@ You must use a pointer to function type 
 177.141 -   else
 177.142 -     error ("This target does not support function calls");
 177.143 - 
 177.144 -+  do_cleanups (args_cleanup);
 177.145 -+
 177.146 -   /* Set up a frame ID for the dummy frame so we can pass it to
 177.147 -      set_momentary_breakpoint.  We need to give the breakpoint a frame
 177.148 -      ID so that the breakpoint code can correctly re-identify the
 177.149 -@@ -839,11 +886,7 @@ the function call).", name);
 177.150 -   /* Figure out the value returned by the function, return that.  */
 177.151 -   {
 177.152 -     struct value *retval;
 177.153 --    if (TYPE_CODE (value_type) == TYPE_CODE_VOID)
 177.154 --      /* If the function returns void, don't bother fetching the
 177.155 --	 return value.  */
 177.156 --      retval = allocate_value (value_type);
 177.157 --    else if (struct_return)
 177.158 -+    if (struct_return || cp_struct_return)
 177.159 -       /* NOTE: cagney/2003-09-27: This assumes that PUSH_DUMMY_CALL
 177.160 - 	 has correctly stored STRUCT_ADDR in the target.  In the past
 177.161 - 	 that hasn't been the case, the old MIPS PUSH_ARGUMENTS
 177.162 -@@ -853,6 +896,10 @@ the function call).", name);
 177.163 - 	 "struct return convention", check that PUSH_DUMMY_CALL isn't
 177.164 - 	 playing tricks.  */
 177.165 -       retval = value_at (value_type, struct_addr, NULL);
 177.166 -+    else if (TYPE_CODE (value_type) == TYPE_CODE_VOID)
 177.167 -+      /* If the function returns void, don't bother fetching the
 177.168 -+	 return value.  */
 177.169 -+      retval = allocate_value (value_type);
 177.170 -     else
 177.171 -       {
 177.172 - 	/* This code only handles "register convention".  */
 177.173 -Index: gdb-6.3/gdb/cp-abi.h
 177.174 -===================================================================
 177.175 ---- gdb-6.3.orig/gdb/cp-abi.h	2003-04-12 13:41:25.000000000 -0400
 177.176 -+++ gdb-6.3/gdb/cp-abi.h	2004-11-10 12:30:07.000000000 -0500
 177.177 -@@ -1,7 +1,7 @@
 177.178 - /* Abstraction of various C++ ABI's we support, and the info we need
 177.179 -    to get from them.
 177.180 -    Contributed by Daniel Berlin <dberlin@redhat.com>
 177.181 --   Copyright 2001 Free Software Foundation, Inc.
 177.182 -+   Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 177.183 - 
 177.184 -    This file is part of GDB.
 177.185 - 
 177.186 -@@ -145,6 +145,10 @@ extern struct type *value_rtti_type (str
 177.187 - extern int baseclass_offset (struct type *type, int index, char *valaddr,
 177.188 - 			     CORE_ADDR address);
 177.189 -                   
 177.190 -+/* Return non-zero if an argument of type TYPE should be passed by reference
 177.191 -+   instead of value.  */
 177.192 -+extern int cp_pass_by_reference (struct type *type);
 177.193 -+
 177.194 - struct cp_abi_ops
 177.195 - {
 177.196 -   const char *shortname;
 177.197 -@@ -162,6 +166,7 @@ struct cp_abi_ops
 177.198 - 			     int *using_enc);
 177.199 -   int (*baseclass_offset) (struct type *type, int index, char *valaddr,
 177.200 - 			   CORE_ADDR address);
 177.201 -+  int (*pass_by_reference) (struct type *type);
 177.202 - };
 177.203 - 
 177.204 - 
 177.205 -Index: gdb-6.3/gdb/cp-abi.c
 177.206 -===================================================================
 177.207 ---- gdb-6.3.orig/gdb/cp-abi.c	2003-11-26 17:04:00.000000000 -0500
 177.208 -+++ gdb-6.3/gdb/cp-abi.c	2004-11-10 12:30:07.000000000 -0500
 177.209 -@@ -1,5 +1,5 @@
 177.210 - /* Generic code for supporting multiple C++ ABI's
 177.211 --   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 177.212 -+   Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 177.213 - 
 177.214 -    This file is part of GDB.
 177.215 - 
 177.216 -@@ -94,6 +94,14 @@ value_rtti_type (struct value *v, int *f
 177.217 -   return (*current_cp_abi.rtti_type) (v, full, top, using_enc);
 177.218 - }
 177.219 - 
 177.220 -+int
 177.221 -+cp_pass_by_reference (struct type *type)
 177.222 -+{
 177.223 -+  if ((current_cp_abi.pass_by_reference) == NULL)
 177.224 -+    return 0;
 177.225 -+  return (*current_cp_abi.pass_by_reference) (type);
 177.226 -+}
 177.227 -+
 177.228 - /* Set the current C++ ABI to SHORT_NAME.  */
 177.229 - 
 177.230 - static int
 177.231 -Index: gdb-6.3/gdb/gnu-v3-abi.c
 177.232 -===================================================================
 177.233 ---- gdb-6.3.orig/gdb/gnu-v3-abi.c	2004-03-15 15:38:08.000000000 -0500
 177.234 -+++ gdb-6.3/gdb/gnu-v3-abi.c	2004-11-10 12:30:07.000000000 -0500
 177.235 -@@ -1,7 +1,7 @@
 177.236 - /* Abstraction of GNU v3 abi.
 177.237 -    Contributed by Jim Blandy <jimb@redhat.com>
 177.238 - 
 177.239 --   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 177.240 -+   Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 177.241 - 
 177.242 -    This file is part of GDB.
 177.243 - 
 177.244 -@@ -419,6 +419,84 @@ gnuv3_baseclass_offset (struct type *typ
 177.245 -   return base_offset;
 177.246 - }
 177.247 - 
 177.248 -+/* Return nonzero if a type should be passed by reference.
 177.249 -+
 177.250 -+   The rule in the v3 ABI document comes from section 3.1.1.  If the
 177.251 -+   type has a non-trivial copy constructor or destructor, then the
 177.252 -+   caller must make a copy (by calling the copy constructor if there
 177.253 -+   is one or perform the copy itself otherwise), pass the address of
 177.254 -+   the copy, and then destroy the temporary (if necessary).
 177.255 -+
 177.256 -+   For return values with non-trivial copy constructors or
 177.257 -+   destructors, space will be allocated in the caller, and a pointer
 177.258 -+   will be passed as the first argument (preceding "this").
 177.259 -+
 177.260 -+   We don't have a bulletproof mechanism for determining whether a
 177.261 -+   constructor or destructor is trivial.  For GCC and DWARF2 debug
 177.262 -+   information, we can check the artificial flag.
 177.263 -+
 177.264 -+   We don't do anything with the constructors or destructors yet,
 177.265 -+   but we have to get the argument passing right anyway.  */
 177.266 -+static int
 177.267 -+gnuv3_pass_by_reference (struct type *type)
 177.268 -+{
 177.269 -+  int fieldnum, fieldelem, basenum;
 177.270 -+
 177.271 -+  CHECK_TYPEDEF (type);
 177.272 -+
 177.273 -+  /* We're only interested in things that can have methods.  */
 177.274 -+  if (TYPE_CODE (type) != TYPE_CODE_STRUCT
 177.275 -+      && TYPE_CODE (type) != TYPE_CODE_CLASS
 177.276 -+      && TYPE_CODE (type) != TYPE_CODE_UNION)
 177.277 -+    return 0;
 177.278 -+
 177.279 -+  for (fieldnum = 0; fieldnum < TYPE_NFN_FIELDS (type); fieldnum++)
 177.280 -+    for (fieldelem = 0; fieldelem < TYPE_FN_FIELDLIST_LENGTH (type, fieldnum);
 177.281 -+	 fieldelem++)
 177.282 -+      {
 177.283 -+	struct fn_field *fn = TYPE_FN_FIELDLIST1 (type, fieldnum);
 177.284 -+	char *name = TYPE_FN_FIELDLIST_NAME (type, fieldnum);
 177.285 -+	struct type *fieldtype = TYPE_FN_FIELD_TYPE (fn, fieldelem);
 177.286 -+
 177.287 -+	/* If this function is marked as artificial, it is compiler-generated,
 177.288 -+	   and we assume it is trivial.  */
 177.289 -+	if (TYPE_FN_FIELD_ARTIFICIAL (fn, fieldelem))
 177.290 -+	  continue;
 177.291 -+
 177.292 -+	/* If we've found a destructor, we must pass this by reference.  */
 177.293 -+	if (name[0] == '~')
 177.294 -+	  return 1;
 177.295 -+
 177.296 -+	/* If the mangled name of this method doesn't indicate that it
 177.297 -+	   is a constructor, we're not interested.
 177.298 -+
 177.299 -+	   FIXME drow/2004-05-27: We could do this using the name of
 177.300 -+	   the method and the name of the class instead of dealing
 177.301 -+	   with the mangled name.  We don't have a convenient function
 177.302 -+	   to strip off both leading scope qualifiers and trailing
 177.303 -+	   template arguments yet.  */
 177.304 -+	if (!is_constructor_name (TYPE_FN_FIELD_PHYSNAME (fn, fieldelem)))
 177.305 -+	  continue;
 177.306 -+
 177.307 -+	/* If this method takes two arguments, and the second argument is
 177.308 -+	   a reference to this class, then it is a copy constructor.  */
 177.309 -+	if (TYPE_NFIELDS (fieldtype) == 2
 177.310 -+	    && TYPE_CODE (TYPE_FIELD_TYPE (fieldtype, 1)) == TYPE_CODE_REF
 177.311 -+	    && check_typedef (TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (fieldtype, 1))) == type)
 177.312 -+	  return 1;
 177.313 -+      }
 177.314 -+
 177.315 -+  /* Even if all the constructors and destructors were artificial, one
 177.316 -+     of them may have invoked a non-artificial constructor or
 177.317 -+     destructor in a base class.  If any base class needs to be passed
 177.318 -+     by reference, so does this class.  */
 177.319 -+  for (basenum = 0; basenum < TYPE_N_BASECLASSES (type); basenum++)
 177.320 -+    if (gnuv3_pass_by_reference (TYPE_BASECLASS (type, basenum)))
 177.321 -+      return 1;
 177.322 -+
 177.323 -+  return 0;
 177.324 -+}
 177.325 -+
 177.326 - static void
 177.327 - init_gnuv3_ops (void)
 177.328 - {
 177.329 -@@ -434,6 +512,7 @@ init_gnuv3_ops (void)
 177.330 -   gnu_v3_abi_ops.rtti_type = gnuv3_rtti_type;
 177.331 -   gnu_v3_abi_ops.virtual_fn_field = gnuv3_virtual_fn_field;
 177.332 -   gnu_v3_abi_ops.baseclass_offset = gnuv3_baseclass_offset;
 177.333 -+  gnu_v3_abi_ops.pass_by_reference = gnuv3_pass_by_reference;
 177.334 - }
 177.335 - 
 177.336 - extern initialize_file_ftype _initialize_gnu_v3_abi; /* -Wmissing-prototypes */
 177.337 -Index: gdb-6.3/gdb/hpacc-abi.c
 177.338 -===================================================================
 177.339 ---- gdb-6.3.orig/gdb/hpacc-abi.c	2003-06-08 14:27:13.000000000 -0400
 177.340 -+++ gdb-6.3/gdb/hpacc-abi.c	2004-11-10 12:30:07.000000000 -0500
 177.341 -@@ -3,7 +3,7 @@
 177.342 -    Most of the real code is from HP, i've just fiddled it to fit in
 177.343 -    the C++ ABI abstraction framework.
 177.344 - 
 177.345 --   Copyright 2001 Free Software Foundation, Inc.
 177.346 -+   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 177.347 - 
 177.348 -    This file is part of GDB.
 177.349 - 
 177.350 -Index: gdb-6.3/gdb/Makefile.in
 177.351 -===================================================================
 177.352 ---- gdb-6.3.orig/gdb/Makefile.in	2004-11-10 12:30:06.000000000 -0500
 177.353 -+++ gdb-6.3/gdb/Makefile.in	2004-11-10 12:30:07.000000000 -0500
 177.354 -@@ -2073,7 +2073,7 @@ ia64-tdep.o: ia64-tdep.c $(defs_h) $(inf
 177.355 - infcall.o: infcall.c $(defs_h) $(breakpoint_h) $(target_h) $(regcache_h) \
 177.356 - 	$(inferior_h) $(gdb_assert_h) $(block_h) $(gdbcore_h) $(language_h) \
 177.357 - 	$(objfiles_h) $(gdbcmd_h) $(command_h) $(gdb_string_h) $(infcall_h) \
 177.358 --	$(dummy_frame_h)
 177.359 -+	$(dummy_frame_h) $(cp_abi_h)
 177.360 - inf-child.o: inf-child.c $(defs_h) $(regcache_h) $(memattr_h) $(symtab_h) \
 177.361 - 	$(target_h) $(inferior_h) $(gdb_string_h)
 177.362 - infcmd.o: infcmd.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \
 177.363 -Index: gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.exp
 177.364 -===================================================================
 177.365 ---- /dev/null	1970-01-01 00:00:00.000000000 +0000
 177.366 -+++ gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.exp	2004-11-11 09:48:00.498518899 -0500
 177.367 -@@ -0,0 +1,38 @@
 177.368 -+# This testcase is part of GDB, the GNU debugger.
 177.369 -+
 177.370 -+# Copyright 2004 Free Software Foundation, Inc.
 177.371 -+
 177.372 -+# This program is free software; you can redistribute it and/or modify
 177.373 -+# it under the terms of the GNU General Public License as published by
 177.374 -+# the Free Software Foundation; either version 2 of the License, or
 177.375 -+# (at your option) any later version.
 177.376 -+#
 177.377 -+# This program is distributed in the hope that it will be useful,
 177.378 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
 177.379 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 177.380 -+# GNU General Public License for more details.
 177.381 -+#
 177.382 -+# You should have received a copy of the GNU General Public License
 177.383 -+# along with this program; if not, write to the Free Software
 177.384 -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
 177.385 -+
 177.386 -+# Check that GDB can call C++ functions whose parameters have
 177.387 -+# object type, but are passed by reference.
 177.388 -+
 177.389 -+set testfile "pass-by-ref"
 177.390 -+set srcfile ${testfile}.cc
 177.391 -+set binfile ${objdir}/${subdir}/${testfile}
 177.392 -+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
 177.393 -+    return -1
 177.394 -+}
 177.395 -+
 177.396 -+gdb_exit
 177.397 -+gdb_start
 177.398 -+gdb_reinitialize_dir $srcdir/$subdir
 177.399 -+gdb_load ${binfile}
 177.400 -+
 177.401 -+if ![runto_main] then {
 177.402 -+    return -1
 177.403 -+}
 177.404 -+
 177.405 -+gdb_test "print foo (global_obj)" " = 3" "call function"
 177.406 -Index: gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.cc
 177.407 -===================================================================
 177.408 ---- /dev/null	1970-01-01 00:00:00.000000000 +0000
 177.409 -+++ gdb-6.3/gdb/testsuite/gdb.cp/pass-by-ref.cc	2004-11-11 09:44:17.815014667 -0500
 177.410 -@@ -0,0 +1,57 @@
 177.411 -+/* This testcase is part of GDB, the GNU debugger.
 177.412 -+
 177.413 -+   Copyright 2004 Free Software Foundation, Inc.
 177.414 -+
 177.415 -+   This program is free software; you can redistribute it and/or modify
 177.416 -+   it under the terms of the GNU General Public License as published by
 177.417 -+   the Free Software Foundation; either version 2 of the License, or
 177.418 -+   (at your option) any later version.
 177.419 -+
 177.420 -+   This program is distributed in the hope that it will be useful,
 177.421 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 177.422 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 177.423 -+   GNU General Public License for more details.
 177.424 -+ 
 177.425 -+   You should have received a copy of the GNU General Public License
 177.426 -+   along with this program; if not, write to the Free Software
 177.427 -+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 177.428 -+   USA.  */
 177.429 -+
 177.430 -+class Obj {
 177.431 -+public:
 177.432 -+  Obj ();
 177.433 -+  Obj (const Obj &);
 177.434 -+  ~Obj ();
 177.435 -+  int var[2];
 177.436 -+};
 177.437 -+
 177.438 -+int foo (Obj arg)
 177.439 -+{
 177.440 -+  return arg.var[0] + arg.var[1];
 177.441 -+}
 177.442 -+
 177.443 -+Obj::Obj ()
 177.444 -+{
 177.445 -+  var[0] = 1;
 177.446 -+  var[1] = 2;
 177.447 -+}
 177.448 -+
 177.449 -+Obj::Obj (const Obj &obj)
 177.450 -+{
 177.451 -+  var[0] = obj.var[0];
 177.452 -+  var[1] = obj.var[1];
 177.453 -+}
 177.454 -+
 177.455 -+Obj::~Obj ()
 177.456 -+{
 177.457 -+
 177.458 -+}
 177.459 -+
 177.460 -+Obj global_obj;
 177.461 -+
 177.462 -+int
 177.463 -+main ()
 177.464 -+{
 177.465 -+  int bar = foo (global_obj);
 177.466 -+  return bar;
 177.467 -+}
   178.1 --- a/patches/gdb/6.3/710-debian_thread-db-multiple-libraries.patch	Tue Aug 14 19:32:22 2007 +0000
   178.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.3 @@ -1,593 +0,0 @@
   178.4 -Support loading two libthread_db DSOs.  In this case, the LinuxThreads
   178.5 -and NPTL ones.
   178.6 -
   178.7 -Index: gdb-6.3/gdb/thread-db.c
   178.8 -===================================================================
   178.9 ---- gdb-6.3.orig/gdb/thread-db.c	2004-11-10 10:46:24.000000000 -0500
  178.10 -+++ gdb-6.3/gdb/thread-db.c	2004-11-10 11:22:34.858812426 -0500
  178.11 -@@ -79,53 +79,63 @@ static td_thragent_t *thread_agent;
  178.12 - 
  178.13 - /* Pointers to the libthread_db functions.  */
  178.14 - 
  178.15 --static td_err_e (*td_init_p) (void);
  178.16 -+struct thread_db_pointers
  178.17 -+{
  178.18 -+  const char *filename;
  178.19 -+
  178.20 -+  td_err_e (*td_init_p) (void);
  178.21 - 
  178.22 --static td_err_e (*td_ta_new_p) (struct ps_prochandle * ps,
  178.23 --				td_thragent_t **ta);
  178.24 --static td_err_e (*td_ta_map_id2thr_p) (const td_thragent_t *ta, thread_t pt,
  178.25 --				       td_thrhandle_t *__th);
  178.26 --static td_err_e (*td_ta_map_lwp2thr_p) (const td_thragent_t *ta,
  178.27 --					lwpid_t lwpid, td_thrhandle_t *th);
  178.28 --static td_err_e (*td_ta_thr_iter_p) (const td_thragent_t *ta,
  178.29 --				     td_thr_iter_f *callback, void *cbdata_p,
  178.30 --				     td_thr_state_e state, int ti_pri,
  178.31 --				     sigset_t *ti_sigmask_p,
  178.32 --				     unsigned int ti_user_flags);
  178.33 --static td_err_e (*td_ta_event_addr_p) (const td_thragent_t *ta,
  178.34 --				       td_event_e event, td_notify_t *ptr);
  178.35 --static td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
  178.36 --				      td_thr_events_t *event);
  178.37 --static td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
  178.38 --					 td_event_msg_t *msg);
  178.39 --
  178.40 --static td_err_e (*td_thr_validate_p) (const td_thrhandle_t *th);
  178.41 --static td_err_e (*td_thr_get_info_p) (const td_thrhandle_t *th,
  178.42 --				      td_thrinfo_t *infop);
  178.43 --static td_err_e (*td_thr_getfpregs_p) (const td_thrhandle_t *th,
  178.44 --				       gdb_prfpregset_t *regset);
  178.45 --static td_err_e (*td_thr_getgregs_p) (const td_thrhandle_t *th,
  178.46 --				      prgregset_t gregs);
  178.47 --static td_err_e (*td_thr_setfpregs_p) (const td_thrhandle_t *th,
  178.48 --				       const gdb_prfpregset_t *fpregs);
  178.49 --static td_err_e (*td_thr_setgregs_p) (const td_thrhandle_t *th,
  178.50 --				      prgregset_t gregs);
  178.51 --static td_err_e (*td_thr_event_enable_p) (const td_thrhandle_t *th,
  178.52 --					  int event);
  178.53 --
  178.54 --static td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
  178.55 --					  void *map_address,
  178.56 --					  size_t offset, void **address);
  178.57 -+  td_err_e (*td_ta_new_p) (struct ps_prochandle * ps,
  178.58 -+			   td_thragent_t **ta);
  178.59 -+  td_err_e (*td_ta_map_id2thr_p) (const td_thragent_t *ta, thread_t pt,
  178.60 -+				  td_thrhandle_t *__th);
  178.61 -+  td_err_e (*td_ta_map_lwp2thr_p) (const td_thragent_t *ta,
  178.62 -+				   lwpid_t lwpid, td_thrhandle_t *th);
  178.63 -+
  178.64 -+  td_err_e (*td_ta_thr_iter_p) (const td_thragent_t *ta,
  178.65 -+				td_thr_iter_f *callback, void *cbdata_p,
  178.66 -+				td_thr_state_e state, int ti_pri,
  178.67 -+				sigset_t *ti_sigmask_p,
  178.68 -+				unsigned int ti_user_flags);
  178.69 -+  td_err_e (*td_ta_event_addr_p) (const td_thragent_t *ta,
  178.70 -+				  td_event_e event, td_notify_t *ptr);
  178.71 -+  td_err_e (*td_ta_set_event_p) (const td_thragent_t *ta,
  178.72 -+				 td_thr_events_t *event);
  178.73 -+  td_err_e (*td_ta_event_getmsg_p) (const td_thragent_t *ta,
  178.74 -+				    td_event_msg_t *msg);
  178.75 -+
  178.76 -+  td_err_e (*td_thr_validate_p) (const td_thrhandle_t *th);
  178.77 -+  td_err_e (*td_thr_get_info_p) (const td_thrhandle_t *th,
  178.78 -+				 td_thrinfo_t *infop);
  178.79 -+  td_err_e (*td_thr_getfpregs_p) (const td_thrhandle_t *th,
  178.80 -+				  gdb_prfpregset_t *regset);
  178.81 -+  td_err_e (*td_thr_getgregs_p) (const td_thrhandle_t *th,
  178.82 -+				 prgregset_t gregs);
  178.83 -+  td_err_e (*td_thr_setfpregs_p) (const td_thrhandle_t *th,
  178.84 -+				  const gdb_prfpregset_t *fpregs);
  178.85 -+  td_err_e (*td_thr_setgregs_p) (const td_thrhandle_t *th,
  178.86 -+				 prgregset_t gregs);
  178.87 -+  td_err_e (*td_thr_event_enable_p) (const td_thrhandle_t *th,
  178.88 -+				     int event);
  178.89 -+
  178.90 -+  td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th,
  178.91 -+				     void *map_address,
  178.92 -+				     size_t offset, void **address);
  178.93 -+
  178.94 -+  struct thread_db_pointers *next;
  178.95 -+};
  178.96 - 
  178.97 - /* Location of the thread creation event breakpoint.  The code at this
  178.98 -    location in the child process will be called by the pthread library
  178.99 -    whenever a new thread is created.  By setting a special breakpoint
 178.100 -    at this location, GDB can detect when a new thread is created.  We
 178.101 -    obtain this location via the td_ta_event_addr call.  */
 178.102 --static CORE_ADDR td_create_bp_addr;
 178.103 -+CORE_ADDR td_create_bp_addr;
 178.104 - 
 178.105 - /* Location of the thread death event breakpoint.  */
 178.106 --static CORE_ADDR td_death_bp_addr;
 178.107 -+CORE_ADDR td_death_bp_addr;
 178.108 -+
 178.109 -+static struct thread_db_pointers *current_pointers, *all_pointers;
 178.110 - 
 178.111 - /* Prototypes for local functions.  */
 178.112 - static void thread_db_find_new_threads (void);
 178.113 -@@ -262,7 +272,7 @@ thread_get_info_callback (const td_thrha
 178.114 -   struct thread_info *thread_info;
 178.115 -   ptid_t thread_ptid;
 178.116 - 
 178.117 --  err = td_thr_get_info_p (thp, &ti);
 178.118 -+  err = current_pointers->td_thr_get_info_p (thp, &ti);
 178.119 -   if (err != TD_OK)
 178.120 -     error ("thread_get_info_callback: cannot get thread info: %s",
 178.121 - 	   thread_db_err_str (err));
 178.122 -@@ -316,8 +326,9 @@ thread_db_map_id2thr (struct thread_info
 178.123 -   if (thread_info->private->th_valid)
 178.124 -     return;
 178.125 - 
 178.126 --  err = td_ta_map_id2thr_p (thread_agent, GET_THREAD (thread_info->ptid),
 178.127 --			    &thread_info->private->th);
 178.128 -+  err = current_pointers->td_ta_map_id2thr_p (thread_agent,
 178.129 -+					      GET_THREAD (thread_info->ptid),
 178.130 -+					      &thread_info->private->th);
 178.131 -   if (err != TD_OK)
 178.132 -     {
 178.133 -       if (fatal)
 178.134 -@@ -340,8 +351,8 @@ thread_db_get_info (struct thread_info *
 178.135 -   if (!thread_info->private->th_valid)
 178.136 -     thread_db_map_id2thr (thread_info, 1);
 178.137 - 
 178.138 --  err =
 178.139 --    td_thr_get_info_p (&thread_info->private->th, &thread_info->private->ti);
 178.140 -+  err = current_pointers->td_thr_get_info_p (&thread_info->private->th,
 178.141 -+					     &thread_info->private->ti);
 178.142 -   if (err != TD_OK)
 178.143 -     error ("thread_db_get_info: cannot get thread info: %s",
 178.144 - 	   thread_db_err_str (err));
 178.145 -@@ -365,7 +376,8 @@ thread_from_lwp (ptid_t ptid)
 178.146 - 
 178.147 -   gdb_assert (is_lwp (ptid));
 178.148 - 
 178.149 --  err = td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid), &th);
 178.150 -+  err = current_pointers->td_ta_map_lwp2thr_p (thread_agent, GET_LWP (ptid),
 178.151 -+					       &th);
 178.152 -   if (err != TD_OK)
 178.153 -     error ("Cannot find user-level thread for LWP %ld: %s",
 178.154 - 	   GET_LWP (ptid), thread_db_err_str (err));
 178.155 -@@ -420,85 +432,102 @@ verbose_dlsym (void *handle, const char 
 178.156 -   return sym;
 178.157 - }
 178.158 - 
 178.159 --static int
 178.160 --thread_db_load (void)
 178.161 -+static struct thread_db_pointers *
 178.162 -+thread_db_load (const char *name)
 178.163 - {
 178.164 -+  struct thread_db_pointers *ptrs;
 178.165 -+  Dl_info info;
 178.166 -   void *handle;
 178.167 -   td_err_e err;
 178.168 - 
 178.169 --  handle = dlopen (LIBTHREAD_DB_SO, RTLD_NOW);
 178.170 -+  ptrs = xcalloc (1, sizeof (struct thread_db_pointers));
 178.171 -+
 178.172 -+  handle = dlopen (name, RTLD_NOW);
 178.173 -   if (handle == NULL)
 178.174 -     {
 178.175 --      fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n",
 178.176 --			LIBTHREAD_DB_SO, dlerror ());
 178.177 --      fprintf_filtered (gdb_stderr,
 178.178 --			"GDB will not be able to debug pthreads.\n\n");
 178.179 -+      if (all_pointers == NULL)
 178.180 -+	{
 178.181 -+	  fprintf_filtered (gdb_stderr, "\n\ndlopen failed on '%s' - %s\n",
 178.182 -+			    name, dlerror ());
 178.183 -+	  fprintf_filtered (gdb_stderr,
 178.184 -+			    "GDB will not be able to debug pthreads.\n\n");
 178.185 -+	}
 178.186 -       return 0;
 178.187 -     }
 178.188 - 
 178.189 -   /* Initialize pointers to the dynamic library functions we will use.
 178.190 -      Essential functions first.  */
 178.191 - 
 178.192 --  td_init_p = verbose_dlsym (handle, "td_init");
 178.193 --  if (td_init_p == NULL)
 178.194 -+  ptrs->td_init_p = verbose_dlsym (handle, "td_init");
 178.195 -+  if (ptrs->td_init_p == NULL)
 178.196 -     return 0;
 178.197 - 
 178.198 --  td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
 178.199 --  if (td_ta_new_p == NULL)
 178.200 -+  ptrs->td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
 178.201 -+  if (ptrs->td_ta_new_p == NULL)
 178.202 -     return 0;
 178.203 - 
 178.204 --  td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
 178.205 --  if (td_ta_map_id2thr_p == NULL)
 178.206 -+  ptrs->td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
 178.207 -+  if (ptrs->td_ta_map_id2thr_p == NULL)
 178.208 -     return 0;
 178.209 - 
 178.210 --  td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
 178.211 --  if (td_ta_map_lwp2thr_p == NULL)
 178.212 -+  ptrs->td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
 178.213 -+  if (ptrs->td_ta_map_lwp2thr_p == NULL)
 178.214 -     return 0;
 178.215 - 
 178.216 --  td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
 178.217 --  if (td_ta_thr_iter_p == NULL)
 178.218 -+  ptrs->td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
 178.219 -+  if (ptrs->td_ta_thr_iter_p == NULL)
 178.220 -     return 0;
 178.221 - 
 178.222 --  td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
 178.223 --  if (td_thr_validate_p == NULL)
 178.224 -+  ptrs->td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
 178.225 -+  if (ptrs->td_thr_validate_p == NULL)
 178.226 -     return 0;
 178.227 - 
 178.228 --  td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
 178.229 --  if (td_thr_get_info_p == NULL)
 178.230 -+  ptrs->td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
 178.231 -+  if (ptrs->td_thr_get_info_p == NULL)
 178.232 -     return 0;
 178.233 - 
 178.234 --  td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
 178.235 --  if (td_thr_getfpregs_p == NULL)
 178.236 -+  ptrs->td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
 178.237 -+  if (ptrs->td_thr_getfpregs_p == NULL)
 178.238 -     return 0;
 178.239 - 
 178.240 --  td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
 178.241 --  if (td_thr_getgregs_p == NULL)
 178.242 -+  ptrs->td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
 178.243 -+  if (ptrs->td_thr_getgregs_p == NULL)
 178.244 -     return 0;
 178.245 - 
 178.246 --  td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
 178.247 --  if (td_thr_setfpregs_p == NULL)
 178.248 -+  ptrs->td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
 178.249 -+  if (ptrs->td_thr_setfpregs_p == NULL)
 178.250 -     return 0;
 178.251 - 
 178.252 --  td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
 178.253 --  if (td_thr_setgregs_p == NULL)
 178.254 -+  ptrs->td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
 178.255 -+  if (ptrs->td_thr_setgregs_p == NULL)
 178.256 -     return 0;
 178.257 - 
 178.258 -   /* Initialize the library.  */
 178.259 --  err = td_init_p ();
 178.260 -+  err = ptrs->td_init_p ();
 178.261 -   if (err != TD_OK)
 178.262 -     {
 178.263 -       warning ("Cannot initialize libthread_db: %s", thread_db_err_str (err));
 178.264 -+      xfree (ptrs);
 178.265 -       return 0;
 178.266 -     }
 178.267 - 
 178.268 -   /* These are not essential.  */
 178.269 --  td_ta_event_addr_p = dlsym (handle, "td_ta_event_addr");
 178.270 --  td_ta_set_event_p = dlsym (handle, "td_ta_set_event");
 178.271 --  td_ta_event_getmsg_p = dlsym (handle, "td_ta_event_getmsg");
 178.272 --  td_thr_event_enable_p = dlsym (handle, "td_thr_event_enable");
 178.273 --  td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr");
 178.274 -+  ptrs->td_ta_event_addr_p = dlsym (handle, "td_ta_event_addr");
 178.275 -+  ptrs->td_ta_set_event_p = dlsym (handle, "td_ta_set_event");
 178.276 -+  ptrs->td_ta_event_getmsg_p = dlsym (handle, "td_ta_event_getmsg");
 178.277 -+  ptrs->td_thr_event_enable_p = dlsym (handle, "td_thr_event_enable");
 178.278 -+  ptrs->td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr");
 178.279 -+
 178.280 -+  if (dladdr (ptrs->td_ta_new_p, &info) != 0)
 178.281 -+    ptrs->filename = info.dli_fname;
 178.282 -+
 178.283 -+  /* Try dlinfo?  */
 178.284 -+
 178.285 -+  if (ptrs->filename == NULL)
 178.286 -+    /* Paranoid - don't let a NULL path slip through.  */
 178.287 -+    ptrs->filename = name;
 178.288 - 
 178.289 --  return 1;
 178.290 -+  return ptrs;
 178.291 - }
 178.292 - 
 178.293 - static td_err_e
 178.294 -@@ -508,7 +537,7 @@ enable_thread_event (td_thragent_t *thre
 178.295 -   td_err_e err;
 178.296 - 
 178.297 -   /* Get the breakpoint address for thread EVENT.  */
 178.298 --  err = td_ta_event_addr_p (thread_agent, event, &notify);
 178.299 -+  err = current_pointers->td_ta_event_addr_p (thread_agent, event, &notify);
 178.300 -   if (err != TD_OK)
 178.301 -     return err;
 178.302 - 
 178.303 -@@ -534,8 +563,10 @@ enable_thread_event_reporting (void)
 178.304 - 
 178.305 -   /* We cannot use the thread event reporting facility if these
 178.306 -      functions aren't available.  */
 178.307 --  if (td_ta_event_addr_p == NULL || td_ta_set_event_p == NULL
 178.308 --      || td_ta_event_getmsg_p == NULL || td_thr_event_enable_p == NULL)
 178.309 -+  if (current_pointers->td_ta_event_addr_p == NULL
 178.310 -+      || current_pointers->td_ta_set_event_p == NULL
 178.311 -+      || current_pointers->td_ta_event_getmsg_p == NULL
 178.312 -+      || current_pointers->td_thr_event_enable_p == NULL)
 178.313 -     return;
 178.314 - 
 178.315 -   /* Set the process wide mask saying which events we're interested in.  */
 178.316 -@@ -552,7 +583,7 @@ enable_thread_event_reporting (void)
 178.317 - #endif
 178.318 -     td_event_addset (&events, TD_DEATH);
 178.319 - 
 178.320 --  err = td_ta_set_event_p (thread_agent, &events);
 178.321 -+  err = current_pointers->td_ta_set_event_p (thread_agent, &events);
 178.322 -   if (err != TD_OK)
 178.323 -     {
 178.324 -       warning ("Unable to set global thread event mask: %s",
 178.325 -@@ -592,7 +623,7 @@ disable_thread_event_reporting (void)
 178.326 -   /* Set the process wide mask saying we aren't interested in any
 178.327 -      events anymore.  */
 178.328 -   td_event_emptyset (&events);
 178.329 --  td_ta_set_event_p (thread_agent, &events);
 178.330 -+  current_pointers->td_ta_set_event_p (thread_agent, &events);
 178.331 - 
 178.332 -   /* Delete thread event breakpoints, if any.  */
 178.333 -   remove_thread_event_breakpoints ();
 178.334 -@@ -635,7 +666,6 @@ check_thread_signals (void)
 178.335 - static void
 178.336 - check_for_thread_db (void)
 178.337 - {
 178.338 --  td_err_e err;
 178.339 -   static int already_loaded;
 178.340 - 
 178.341 -   /* First time through, report that libthread_db was successfuly
 178.342 -@@ -644,19 +674,8 @@ check_for_thread_db (void)
 178.343 - 
 178.344 -   if (!already_loaded)
 178.345 -     {
 178.346 --      Dl_info info;
 178.347 --      const char *library = NULL;
 178.348 --      if (dladdr ((*td_ta_new_p), &info) != 0)
 178.349 --	library = info.dli_fname;
 178.350 --
 178.351 --      /* Try dlinfo?  */
 178.352 --
 178.353 --      if (library == NULL)
 178.354 --	/* Paranoid - don't let a NULL path slip through.  */
 178.355 --	library = LIBTHREAD_DB_SO;
 178.356 --
 178.357 -       printf_unfiltered ("Using host libthread_db library \"%s\".\n",
 178.358 --			 library);
 178.359 -+			 all_pointers->filename);
 178.360 -       already_loaded = 1;
 178.361 -     }
 178.362 - 
 178.363 -@@ -674,28 +693,34 @@ check_for_thread_db (void)
 178.364 -   proc_handle.pid = GET_PID (inferior_ptid);
 178.365 - 
 178.366 -   /* Now attempt to open a connection to the thread library.  */
 178.367 --  err = td_ta_new_p (&proc_handle, &thread_agent);
 178.368 --  switch (err)
 178.369 -+  for (current_pointers = all_pointers;
 178.370 -+       current_pointers != NULL;
 178.371 -+       current_pointers = current_pointers->next)
 178.372 -     {
 178.373 --    case TD_NOLIBTHREAD:
 178.374 --      /* No thread library was detected.  */
 178.375 --      break;
 178.376 --
 178.377 --    case TD_OK:
 178.378 --      printf_unfiltered ("[Thread debugging using libthread_db enabled]\n");
 178.379 -+      td_err_e err;
 178.380 -+      err = current_pointers->td_ta_new_p (&proc_handle, &thread_agent);
 178.381 -+      switch (err)
 178.382 -+	{
 178.383 -+	case TD_NOLIBTHREAD:
 178.384 -+	  /* No thread library was detected.  */
 178.385 -+	  break;
 178.386 - 
 178.387 --      /* The thread library was detected.  Activate the thread_db target.  */
 178.388 --      push_target (&thread_db_ops);
 178.389 --      using_thread_db = 1;
 178.390 -+	case TD_OK:
 178.391 -+	  printf_unfiltered ("[Thread debugging using libthread_db enabled]\n");
 178.392 - 
 178.393 --      enable_thread_event_reporting ();
 178.394 --      thread_db_find_new_threads ();
 178.395 --      break;
 178.396 -+	  /* The thread library was detected.  Activate the thread_db target.  */
 178.397 -+	  push_target (&thread_db_ops);
 178.398 -+	  using_thread_db = 1;
 178.399 -+
 178.400 -+	  enable_thread_event_reporting ();
 178.401 -+	  thread_db_find_new_threads ();
 178.402 -+	  return;
 178.403 - 
 178.404 --    default:
 178.405 --      warning ("Cannot initialize thread debugging library: %s",
 178.406 --	       thread_db_err_str (err));
 178.407 --      break;
 178.408 -+	default:
 178.409 -+	  warning ("Cannot initialize thread debugging library: %s",
 178.410 -+		   thread_db_err_str (err));
 178.411 -+	  break;
 178.412 -+	}
 178.413 -     }
 178.414 - }
 178.415 - 
 178.416 -@@ -766,7 +791,7 @@ attach_thread (ptid_t ptid, const td_thr
 178.417 - #endif
 178.418 - 
 178.419 -   /* Enable thread event reporting for this thread.  */
 178.420 --  err = td_thr_event_enable_p (th_p, 1);
 178.421 -+  err = current_pointers->td_thr_event_enable_p (th_p, 1);
 178.422 -   if (err != TD_OK)
 178.423 -     error ("Cannot enable thread event reporting for %s: %s",
 178.424 - 	   target_pid_to_str (ptid), thread_db_err_str (err));
 178.425 -@@ -892,7 +917,7 @@ check_event (ptid_t ptid)
 178.426 - 
 178.427 -   do
 178.428 -     {
 178.429 --      err = td_ta_event_getmsg_p (thread_agent, &msg);
 178.430 -+      err = current_pointers->td_ta_event_getmsg_p (thread_agent, &msg);
 178.431 -       if (err != TD_OK)
 178.432 - 	{
 178.433 - 	  if (err == TD_NOMSG)
 178.434 -@@ -902,7 +927,7 @@ check_event (ptid_t ptid)
 178.435 - 		 thread_db_err_str (err));
 178.436 - 	}
 178.437 - 
 178.438 --      err = td_thr_get_info_p (msg.th_p, &ti);
 178.439 -+      err = current_pointers->td_thr_get_info_p (msg.th_p, &ti);
 178.440 -       if (err != TD_OK)
 178.441 - 	error ("Cannot get thread info: %s", thread_db_err_str (err));
 178.442 - 
 178.443 -@@ -1015,12 +1040,14 @@ thread_db_fetch_registers (int regno)
 178.444 -   thread_info = find_thread_pid (inferior_ptid);
 178.445 -   thread_db_map_id2thr (thread_info, 1);
 178.446 - 
 178.447 --  err = td_thr_getgregs_p (&thread_info->private->th, gregset);
 178.448 -+  err = current_pointers->td_thr_getgregs_p (&thread_info->private->th,
 178.449 -+					     gregset);
 178.450 -   if (err != TD_OK)
 178.451 -     error ("Cannot fetch general-purpose registers for thread %ld: %s",
 178.452 - 	   (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
 178.453 - 
 178.454 --  err = td_thr_getfpregs_p (&thread_info->private->th, &fpregset);
 178.455 -+  err = current_pointers->td_thr_getfpregs_p (&thread_info->private->th,
 178.456 -+					      &fpregset);
 178.457 -   if (err != TD_OK)
 178.458 -     error ("Cannot get floating-point registers for thread %ld: %s",
 178.459 - 	   (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
 178.460 -@@ -1062,11 +1089,13 @@ thread_db_store_registers (int regno)
 178.461 -   fill_gregset ((gdb_gregset_t *) gregset, -1);
 178.462 -   fill_fpregset (&fpregset, -1);
 178.463 - 
 178.464 --  err = td_thr_setgregs_p (&thread_info->private->th, gregset);
 178.465 -+  err = current_pointers->td_thr_setgregs_p (&thread_info->private->th,
 178.466 -+					     gregset);
 178.467 -   if (err != TD_OK)
 178.468 -     error ("Cannot store general-purpose registers for thread %ld: %s",
 178.469 - 	   (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
 178.470 --  err = td_thr_setfpregs_p (&thread_info->private->th, &fpregset);
 178.471 -+  err = current_pointers->td_thr_setfpregs_p (&thread_info->private->th,
 178.472 -+					      &fpregset);
 178.473 -   if (err != TD_OK)
 178.474 -     error ("Cannot store floating-point registers  for thread %ld: %s",
 178.475 - 	   (long) GET_THREAD (inferior_ptid), thread_db_err_str (err));
 178.476 -@@ -1136,15 +1165,14 @@ thread_db_thread_alive (ptid_t ptid)
 178.477 -       if (!thread_info->private->th_valid)
 178.478 - 	return 0;
 178.479 - 
 178.480 --      err = td_thr_validate_p (&thread_info->private->th);
 178.481 -+      err = current_pointers->td_thr_validate_p (&thread_info->private->th);
 178.482 -       if (err != TD_OK)
 178.483 - 	return 0;
 178.484 - 
 178.485 -       if (!thread_info->private->ti_valid)
 178.486 - 	{
 178.487 --	  err =
 178.488 --	    td_thr_get_info_p (&thread_info->private->th,
 178.489 --			       &thread_info->private->ti);
 178.490 -+	  err = current_pointers->td_thr_get_info_p
 178.491 -+	    (&thread_info->private->th, &thread_info->private->ti);
 178.492 - 	  if (err != TD_OK)
 178.493 - 	    return 0;
 178.494 - 	  thread_info->private->ti_valid = 1;
 178.495 -@@ -1170,7 +1198,7 @@ find_new_threads_callback (const td_thrh
 178.496 -   td_err_e err;
 178.497 -   ptid_t ptid;
 178.498 - 
 178.499 --  err = td_thr_get_info_p (th_p, &ti);
 178.500 -+  err = current_pointers->td_thr_get_info_p (th_p, &ti);
 178.501 -   if (err != TD_OK)
 178.502 -     error ("find_new_threads_callback: cannot get thread info: %s",
 178.503 - 	   thread_db_err_str (err));
 178.504 -@@ -1192,9 +1220,10 @@ thread_db_find_new_threads (void)
 178.505 -   td_err_e err;
 178.506 - 
 178.507 -   /* Iterate over all user-space threads to discover new threads.  */
 178.508 --  err = td_ta_thr_iter_p (thread_agent, find_new_threads_callback, NULL,
 178.509 --			  TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
 178.510 --			  TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
 178.511 -+  err = current_pointers->td_ta_thr_iter_p
 178.512 -+    (thread_agent, find_new_threads_callback, NULL,
 178.513 -+     TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY,
 178.514 -+     TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
 178.515 -   if (err != TD_OK)
 178.516 -     error ("Cannot find new threads: %s", thread_db_err_str (err));
 178.517 - }
 178.518 -@@ -1257,7 +1286,7 @@ thread_db_get_thread_local_address (ptid
 178.519 -       struct thread_info *thread_info;
 178.520 - 
 178.521 -       /* glibc doesn't provide the needed interface.  */
 178.522 --      if (!td_thr_tls_get_addr_p)
 178.523 -+      if (!current_pointers->td_thr_tls_get_addr_p)
 178.524 - 	error ("Cannot find thread-local variables in this thread library.");
 178.525 - 
 178.526 -       /* Get the address of the link map for this objfile.  */
 178.527 -@@ -1279,8 +1308,8 @@ thread_db_get_thread_local_address (ptid
 178.528 -       thread_db_map_id2thr (thread_info, 1);
 178.529 - 
 178.530 -       /* Finally, get the address of the variable.  */
 178.531 --      err = td_thr_tls_get_addr_p (&thread_info->private->th, (void *) lm,
 178.532 --				   offset, &address);
 178.533 -+      err = current_pointers->td_thr_tls_get_addr_p
 178.534 -+	(&thread_info->private->th, (void *) lm, offset, &address);
 178.535 - 
 178.536 - #ifdef THREAD_DB_HAS_TD_NOTALLOC
 178.537 -       /* The memory hasn't been allocated, yet.  */
 178.538 -@@ -1360,17 +1389,49 @@ init_thread_db_ops (void)
 178.539 - void
 178.540 - _initialize_thread_db (void)
 178.541 - {
 178.542 -+  struct thread_db_pointers *ptrs;
 178.543 -+  const char *p;
 178.544 -+
 178.545 -   /* Only initialize the module if we can load libthread_db.  */
 178.546 --  if (thread_db_load ())
 178.547 --    {
 178.548 --      init_thread_db_ops ();
 178.549 --      add_target (&thread_db_ops);
 178.550 -+  ptrs = thread_db_load (LIBTHREAD_DB_SO);
 178.551 -+  if (ptrs == NULL)
 178.552 -+    return;
 178.553 -+
 178.554 -+  all_pointers = ptrs;
 178.555 - 
 178.556 --      /* Add ourselves to objfile event chain.  */
 178.557 --      target_new_objfile_chain = deprecated_target_new_objfile_hook;
 178.558 --      deprecated_target_new_objfile_hook = thread_db_new_objfile;
 178.559 -+  /* Some GNU/Linux systems have more than one binary-compatible copy
 178.560 -+     of libthread_db.  If we can find a second one, load that too.
 178.561 -+     The inferior may force the use of a different threading package
 178.562 -+     than we expect.  Our guess for the location is somewhat hokey:
 178.563 -+     strip out anything between /lib (or /lib64) and LIBTHREAD_DB_SO.
 178.564 -+     If we loaded the NPTL libthread_db by default, this may find us
 178.565 -+     the LinuxThreads copy.  */
 178.566 -+  p = strrchr (ptrs->filename, '/');
 178.567 -+  while (p != NULL && p > ptrs->filename)
 178.568 -+    {
 178.569 -+      const char *component;
 178.570 - 
 178.571 --      /* Register ourselves for the new inferior observer.  */
 178.572 --      observer_attach_inferior_created (check_for_thread_db_observer);
 178.573 -+      component = memrchr (ptrs->filename, '/', p - ptrs->filename);
 178.574 -+      if (component != NULL && strncmp (component, "/lib", 4) == 0)
 178.575 -+	{
 178.576 -+	  char *new_name = xmalloc (p - ptrs->filename + 2
 178.577 -+				    + strlen (LIBTHREAD_DB_SO));
 178.578 -+	  memcpy (new_name, ptrs->filename, p - ptrs->filename + 1);
 178.579 -+	  strcpy (new_name + (p - ptrs->filename) + 1, LIBTHREAD_DB_SO);
 178.580 -+	  ptrs->next = thread_db_load (new_name);
 178.581 -+	  xfree (new_name);
 178.582 -+	  break;
 178.583 -+	}
 178.584 -+      p = component;
 178.585 -     }
 178.586 -+
 178.587 -+  init_thread_db_ops ();
 178.588 -+  add_target (&thread_db_ops);
 178.589 -+
 178.590 -+  /* Add ourselves to objfile event chain.  */
 178.591 -+  target_new_objfile_chain = deprecated_target_new_objfile_hook;
 178.592 -+  deprecated_target_new_objfile_hook = thread_db_new_objfile;
 178.593 -+
 178.594 -+  /* Register ourselves for the new inferior observer.  */
 178.595 -+  observer_attach_inferior_created (check_for_thread_db_observer);
 178.596 - }
   179.1 --- a/patches/gdb/6.3/720-debian_static-threads-test.patch	Tue Aug 14 19:32:22 2007 +0000
   179.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   179.3 @@ -1,36 +0,0 @@
   179.4 -Update staticthreads.exp to handle debugging info in libpthread.a.
   179.5 -
   179.6 -Index: gdb-6.3/gdb/testsuite/gdb.threads/staticthreads.exp
   179.7 -===================================================================
   179.8 ---- gdb-6.3.orig/gdb/testsuite/gdb.threads/staticthreads.exp	2004-11-10 10:35:15.000000000 -0500
   179.9 -+++ gdb-6.3/gdb/testsuite/gdb.threads/staticthreads.exp	2004-11-10 11:22:48.671121466 -0500
  179.10 -@@ -53,6 +53,10 @@ gdb_test_multiple "continue" "$test" {
  179.11 -     -re " sem_post .*$gdb_prompt " {
  179.12 - 	pass "$test"
  179.13 -     }
  179.14 -+    -re " (.*_)sem_post .*$gdb_prompt " {
  179.15 -+	# Glibc uses aliases for internal symbols; match __new_sem_post.
  179.16 -+	pass "$test"
  179.17 -+    }
  179.18 -     -re "Program received signal .*$gdb_prompt " {
  179.19 - 	kfail gdb/1328 "$test"
  179.20 -     }
  179.21 -@@ -64,8 +68,16 @@ gdb_test_multiple "continue" "$test" {
  179.22 - 
  179.23 - rerun_to_main
  179.24 - gdb_test "handle SIG32 nostop noprint pass"
  179.25 --set test "Handle SIG32 helps"
  179.26 --gdb_test "continue" " sem_post .*" "handle SIG32 helps"
  179.27 -+set test "handle SIG32 helps"
  179.28 -+gdb_test_multiple "continue" "$test" {
  179.29 -+    -re " sem_post .*$gdb_prompt $" {
  179.30 -+	pass "$test"
  179.31 -+    }
  179.32 -+    -re " (.*_)sem_post .*$gdb_prompt $" {
  179.33 -+	# Glibc uses aliases for internal symbols; match __new_sem_post.
  179.34 -+	pass "$test"
  179.35 -+    }
  179.36 -+}
  179.37 - 
  179.38 - 
  179.39 - # See if info threads produces anything approaching a thread list.
   180.1 --- a/patches/gdb/6.3/730-debian_gdb-fix-tracefork-check.patch	Tue Aug 14 19:32:22 2007 +0000
   180.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   180.3 @@ -1,225 +0,0 @@
   180.4 -Status: submitted for comments
   180.5 -
   180.6 -2004-11-12  Daniel Jacobowitz  <dan@debian.org>
   180.7 -
   180.8 -	* linux-nat.c (my_waitpid): New function.
   180.9 -	(linux_test_for_tracefork): Make more robust and verbose.  Take
  180.10 -	an ORIGINAL_PID argument and test for PTRACE_SETOPTIONS first.
  180.11 -	(linux_supports_tracefork, linux_supports_tracevforkdone): Take a PID
  180.12 -	argument.  Update calls to linux_test_for_tracefork.
  180.13 -	(linux_enable_event_reporting, child_follow_fork)
  180.14 -	(child_insert_fork_catchpoint, child_insert_vfork_catchpoint)
  180.15 -	(child_insert_exec_catchpoint): Update calls to
  180.16 -	linux_supports_tracefork and linux_supports_tracevforkdone.
  180.17 -
  180.18 -Index: gdb-6.3/gdb/linux-nat.c
  180.19 -===================================================================
  180.20 ---- gdb-6.3.orig/gdb/linux-nat.c	2004-10-08 16:29:47.000000000 -0400
  180.21 -+++ gdb-6.3/gdb/linux-nat.c	2004-11-13 16:41:51.368720845 -0500
  180.22 -@@ -150,18 +150,47 @@ linux_tracefork_child (void)
  180.23 -   exit (0);
  180.24 - }
  180.25 - 
  180.26 --/* Determine if PTRACE_O_TRACEFORK can be used to follow fork events.  We
  180.27 -+/* Wrapper function for waitpid which handles EINTR.  */
  180.28 -+
  180.29 -+static int
  180.30 -+my_waitpid (int pid, int *status, int flags)
  180.31 -+{
  180.32 -+  int ret;
  180.33 -+  do
  180.34 -+    {
  180.35 -+      ret = waitpid (pid, status, flags);
  180.36 -+    }
  180.37 -+  while (ret == -1 && errno == EINTR);
  180.38 -+
  180.39 -+  return ret;
  180.40 -+}
  180.41 -+
  180.42 -+/* Determine if PTRACE_O_TRACEFORK can be used to follow fork events.
  180.43 -+
  180.44 -+   First, we try to enable fork tracing on ORIGINAL_PID.  If this fails,
  180.45 -+   we know that the feature is not available.  This may change the tracing
  180.46 -+   options for ORIGINAL_PID, but we'll be setting them shortly anyway.
  180.47 -+
  180.48 -+   However, if it succeeds, we don't know for sure that the feature is
  180.49 -+   available; old versions of PTRACE_SETOPTIONS ignored unknown options.  We
  180.50 -    create a child process, attach to it, use PTRACE_SETOPTIONS to enable
  180.51 --   fork tracing, and let it fork.  If the process exits, we assume that
  180.52 --   we can't use TRACEFORK; if we get the fork notification, and we can
  180.53 --   extract the new child's PID, then we assume that we can.  */
  180.54 -+   fork tracing, and let it fork.  If the process exits, we assume that we
  180.55 -+   can't use TRACEFORK; if we get the fork notification, and we can extract
  180.56 -+   the new child's PID, then we assume that we can.  */
  180.57 - 
  180.58 - static void
  180.59 --linux_test_for_tracefork (void)
  180.60 -+linux_test_for_tracefork (int original_pid)
  180.61 - {
  180.62 -   int child_pid, ret, status;
  180.63 -   long second_pid;
  180.64 - 
  180.65 -+  linux_supports_tracefork_flag = 0;
  180.66 -+  linux_supports_tracevforkdone_flag = 0;
  180.67 -+
  180.68 -+  ret = ptrace (PTRACE_SETOPTIONS, original_pid, 0, PTRACE_O_TRACEFORK);
  180.69 -+  if (ret != 0)
  180.70 -+    return;
  180.71 -+
  180.72 -   child_pid = fork ();
  180.73 -   if (child_pid == -1)
  180.74 -     perror_with_name ("linux_test_for_tracefork: fork");
  180.75 -@@ -169,7 +198,7 @@ linux_test_for_tracefork (void)
  180.76 -   if (child_pid == 0)
  180.77 -     linux_tracefork_child ();
  180.78 - 
  180.79 --  ret = waitpid (child_pid, &status, 0);
  180.80 -+  ret = my_waitpid (child_pid, &status, 0);
  180.81 -   if (ret == -1)
  180.82 -     perror_with_name ("linux_test_for_tracefork: waitpid");
  180.83 -   else if (ret != child_pid)
  180.84 -@@ -177,13 +206,23 @@ linux_test_for_tracefork (void)
  180.85 -   if (! WIFSTOPPED (status))
  180.86 -     error ("linux_test_for_tracefork: waitpid: unexpected status %d.", status);
  180.87 - 
  180.88 --  linux_supports_tracefork_flag = 0;
  180.89 --
  180.90 -   ret = ptrace (PTRACE_SETOPTIONS, child_pid, 0, PTRACE_O_TRACEFORK);
  180.91 -   if (ret != 0)
  180.92 -     {
  180.93 --      ptrace (PTRACE_KILL, child_pid, 0, 0);
  180.94 --      waitpid (child_pid, &status, 0);
  180.95 -+      ret = ptrace (PTRACE_KILL, child_pid, 0, 0);
  180.96 -+      if (ret != 0)
  180.97 -+	{
  180.98 -+	  warning ("linux_test_for_tracefork: failed to kill child");
  180.99 -+	  return;
 180.100 -+	}
 180.101 -+
 180.102 -+      ret = my_waitpid (child_pid, &status, 0);
 180.103 -+      if (ret != child_pid)
 180.104 -+	warning ("linux_test_for_tracefork: failed to wait for killed child");
 180.105 -+      else if (!WIFSIGNALED (status))
 180.106 -+	warning ("linux_test_for_tracefork: unexpected wait status 0x%x from "
 180.107 -+		 "killed child", status);
 180.108 -+
 180.109 -       return;
 180.110 -     }
 180.111 - 
 180.112 -@@ -192,8 +231,12 @@ linux_test_for_tracefork (void)
 180.113 - 		PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORKDONE);
 180.114 -   linux_supports_tracevforkdone_flag = (ret == 0);
 180.115 - 
 180.116 --  ptrace (PTRACE_CONT, child_pid, 0, 0);
 180.117 --  ret = waitpid (child_pid, &status, 0);
 180.118 -+  ret = ptrace (PTRACE_CONT, child_pid, 0, 0);
 180.119 -+  if (ret != 0)
 180.120 -+    warning ("linux_test_for_tracefork: failed to resume child");
 180.121 -+
 180.122 -+  ret = my_waitpid (child_pid, &status, 0);
 180.123 -+
 180.124 -   if (ret == child_pid && WIFSTOPPED (status)
 180.125 -       && status >> 16 == PTRACE_EVENT_FORK)
 180.126 -     {
 180.127 -@@ -204,34 +247,38 @@ linux_test_for_tracefork (void)
 180.128 - 	  int second_status;
 180.129 - 
 180.130 - 	  linux_supports_tracefork_flag = 1;
 180.131 --	  waitpid (second_pid, &second_status, 0);
 180.132 --	  ptrace (PTRACE_DETACH, second_pid, 0, 0);
 180.133 -+	  my_waitpid (second_pid, &second_status, 0);
 180.134 -+	  ret = ptrace (PTRACE_KILL, second_pid, 0, 0);
 180.135 -+	  if (ret != 0)
 180.136 -+	    warning ("linux_test_for_tracefork: failed to kill second child");
 180.137 - 	}
 180.138 -     }
 180.139 -+  else
 180.140 -+    warning ("linux_test_for_tracefork: unexpected result from waitpid "
 180.141 -+	     "(%d, status 0x%x)", ret, status);
 180.142 - 
 180.143 --  if (WIFSTOPPED (status))
 180.144 --    {
 180.145 --      ptrace (PTRACE_DETACH, child_pid, 0, 0);
 180.146 --      waitpid (child_pid, &status, 0);
 180.147 --    }
 180.148 -+  ret = ptrace (PTRACE_KILL, child_pid, 0, 0);
 180.149 -+  if (ret != 0)
 180.150 -+    warning ("linux_test_for_tracefork: failed to kill child");
 180.151 -+  my_waitpid (child_pid, &status, 0);
 180.152 - }
 180.153 - 
 180.154 - /* Return non-zero iff we have tracefork functionality available.
 180.155 -    This function also sets linux_supports_tracefork_flag.  */
 180.156 - 
 180.157 - static int
 180.158 --linux_supports_tracefork (void)
 180.159 -+linux_supports_tracefork (int pid)
 180.160 - {
 180.161 -   if (linux_supports_tracefork_flag == -1)
 180.162 --    linux_test_for_tracefork ();
 180.163 -+    linux_test_for_tracefork (pid);
 180.164 -   return linux_supports_tracefork_flag;
 180.165 - }
 180.166 - 
 180.167 - static int
 180.168 --linux_supports_tracevforkdone (void)
 180.169 -+linux_supports_tracevforkdone (int pid)
 180.170 - {
 180.171 -   if (linux_supports_tracefork_flag == -1)
 180.172 --    linux_test_for_tracefork ();
 180.173 -+    linux_test_for_tracefork (pid);
 180.174 -   return linux_supports_tracevforkdone_flag;
 180.175 - }
 180.176 - 
 180.177 -@@ -242,12 +289,12 @@ linux_enable_event_reporting (ptid_t pti
 180.178 -   int pid = ptid_get_pid (ptid);
 180.179 -   int options;
 180.180 - 
 180.181 --  if (! linux_supports_tracefork ())
 180.182 -+  if (! linux_supports_tracefork (pid))
 180.183 -     return;
 180.184 - 
 180.185 -   options = PTRACE_O_TRACEFORK | PTRACE_O_TRACEVFORK | PTRACE_O_TRACEEXEC
 180.186 -     | PTRACE_O_TRACECLONE;
 180.187 --  if (linux_supports_tracevforkdone ())
 180.188 -+  if (linux_supports_tracevforkdone (pid))
 180.189 -     options |= PTRACE_O_TRACEVFORKDONE;
 180.190 - 
 180.191 -   /* Do not enable PTRACE_O_TRACEEXIT until GDB is more prepared to support
 180.192 -@@ -308,7 +355,8 @@ child_follow_fork (int follow_child)
 180.193 - 
 180.194 -       if (has_vforked)
 180.195 - 	{
 180.196 --	  if (linux_supports_tracevforkdone ())
 180.197 -+	  gdb_assert (linux_supports_tracefork_flag >= 0);
 180.198 -+	  if (linux_supports_tracevforkdone (0))
 180.199 - 	    {
 180.200 - 	      int status;
 180.201 - 
 180.202 -@@ -476,7 +524,7 @@ linux_handle_extended_wait (int pid, int
 180.203 - int
 180.204 - child_insert_fork_catchpoint (int pid)
 180.205 - {
 180.206 --  if (! linux_supports_tracefork ())
 180.207 -+  if (! linux_supports_tracefork (pid))
 180.208 -     error ("Your system does not support fork catchpoints.");
 180.209 - 
 180.210 -   return 0;
 180.211 -@@ -485,7 +533,7 @@ child_insert_fork_catchpoint (int pid)
 180.212 - int
 180.213 - child_insert_vfork_catchpoint (int pid)
 180.214 - {
 180.215 --  if (!linux_supports_tracefork ())
 180.216 -+  if (!linux_supports_tracefork (pid))
 180.217 -     error ("Your system does not support vfork catchpoints.");
 180.218 - 
 180.219 -   return 0;
 180.220 -@@ -494,7 +542,7 @@ child_insert_vfork_catchpoint (int pid)
 180.221 - int
 180.222 - child_insert_exec_catchpoint (int pid)
 180.223 - {
 180.224 --  if (!linux_supports_tracefork ())
 180.225 -+  if (!linux_supports_tracefork (pid))
 180.226 -     error ("Your system does not support exec catchpoints.");
 180.227 - 
 180.228 -   return 0;
   181.1 --- a/patches/gdb/6.3/740-debian_make-cv-type-crash.patch	Tue Aug 14 19:32:22 2007 +0000
   181.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.3 @@ -1,132 +0,0 @@
   181.4 -2004-11-04  Jim Blandy  <jimb@redhat.com>
   181.5 -
   181.6 -	* gdbtypes.c (make_qualified_type): Doc fix.  Add assertion to
   181.7 -	prevent cross-objfile references.
   181.8 -	(make_cv_type): Doc fix.  Don't create cross-objfile references,
   181.9 -	even for stub types.
  181.10 -	(replace_type): Add assertion to prevent cross-objfile references.
  181.11 -	(check_typedef): Never resolve a stub type by copying over a type
  181.12 -	from another file.
  181.13 -
  181.14 -Index: src/gdb/gdbtypes.c
  181.15 -===================================================================
  181.16 -RCS file: /big/fsf/rsync/src-cvs/src/gdb/gdbtypes.c,v
  181.17 -retrieving revision 1.92
  181.18 -retrieving revision 1.93
  181.19 -diff -u -p -r1.92 -r1.93
  181.20 ---- src/gdb/gdbtypes.c	8 Aug 2004 17:18:16 -0000	1.92
  181.21 -+++ src/gdb/gdbtypes.c	4 Nov 2004 17:50:16 -0000	1.93
  181.22 -@@ -433,7 +433,9 @@ address_space_int_to_name (int space_fla
  181.23 - }
  181.24 - 
  181.25 - /* Create a new type with instance flags NEW_FLAGS, based on TYPE.
  181.26 --   If STORAGE is non-NULL, create the new type instance there.  */
  181.27 -+
  181.28 -+   If STORAGE is non-NULL, create the new type instance there.
  181.29 -+   STORAGE must be in the same obstack as TYPE.  */
  181.30 - 
  181.31 - static struct type *
  181.32 - make_qualified_type (struct type *type, int new_flags,
  181.33 -@@ -453,6 +455,12 @@ make_qualified_type (struct type *type, 
  181.34 -     ntype = alloc_type_instance (type);
  181.35 -   else
  181.36 -     {
  181.37 -+      /* If STORAGE was provided, it had better be in the same objfile as
  181.38 -+	 TYPE.  Otherwise, we can't link it into TYPE's cv chain: if one
  181.39 -+	 objfile is freed and the other kept, we'd have dangling
  181.40 -+	 pointers.  */
  181.41 -+      gdb_assert (TYPE_OBJFILE (type) == TYPE_OBJFILE (storage));
  181.42 -+
  181.43 -       ntype = storage;
  181.44 -       TYPE_MAIN_TYPE (ntype) = TYPE_MAIN_TYPE (type);
  181.45 -       TYPE_CHAIN (ntype) = ntype;
  181.46 -@@ -501,11 +509,12 @@ make_type_with_address_space (struct typ
  181.47 -    CNST is a flag for setting the const attribute
  181.48 -    VOLTL is a flag for setting the volatile attribute
  181.49 -    TYPE is the base type whose variant we are creating.
  181.50 --   TYPEPTR, if nonzero, points
  181.51 --   to a pointer to memory where the reference type should be stored.
  181.52 --   If *TYPEPTR is zero, update it to point to the reference type we return.
  181.53 --   We allocate new memory if needed.  */
  181.54 - 
  181.55 -+   If TYPEPTR and *TYPEPTR are non-zero, then *TYPEPTR points to
  181.56 -+   storage to hold the new qualified type; *TYPEPTR and TYPE must be
  181.57 -+   in the same objfile.  Otherwise, allocate fresh memory for the new
  181.58 -+   type whereever TYPE lives.  If TYPEPTR is non-zero, set it to the
  181.59 -+   new type we construct.  */
  181.60 - struct type *
  181.61 - make_cv_type (int cnst, int voltl, struct type *type, struct type **typeptr)
  181.62 - {
  181.63 -@@ -524,20 +533,19 @@ make_cv_type (int cnst, int voltl, struc
  181.64 - 
  181.65 -   if (typeptr && *typeptr != NULL)
  181.66 -     {
  181.67 --      /* Objfile is per-core-type.  This const-qualified type had best
  181.68 --	 belong to the same objfile as the type it is qualifying, unless
  181.69 --	 we are overwriting a stub type, in which case the safest thing
  181.70 --	 to do is to copy the core type into the new objfile.  */
  181.71 --
  181.72 --      gdb_assert (TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type)
  181.73 --		  || TYPE_STUB (*typeptr));
  181.74 --      if (TYPE_OBJFILE (*typeptr) != TYPE_OBJFILE (type))
  181.75 --	{
  181.76 --	  TYPE_MAIN_TYPE (*typeptr)
  181.77 --	    = TYPE_ALLOC (*typeptr, sizeof (struct main_type));
  181.78 --	  *TYPE_MAIN_TYPE (*typeptr)
  181.79 --	    = *TYPE_MAIN_TYPE (type);
  181.80 --	}
  181.81 -+      /* TYPE and *TYPEPTR must be in the same objfile.  We can't have
  181.82 -+	 a C-V variant chain that threads across objfiles: if one
  181.83 -+	 objfile gets freed, then the other has a broken C-V chain.
  181.84 -+
  181.85 -+	 This code used to try to copy over the main type from TYPE to
  181.86 -+	 *TYPEPTR if they were in different objfiles, but that's
  181.87 -+	 wrong, too: TYPE may have a field list or member function
  181.88 -+	 lists, which refer to types of their own, etc. etc.  The
  181.89 -+	 whole shebang would need to be copied over recursively; you
  181.90 -+	 can't have inter-objfile pointers.  The only thing to do is
  181.91 -+	 to leave stub types as stub types, and look them up afresh by
  181.92 -+	 name each time you encounter them.  */
  181.93 -+      gdb_assert (TYPE_OBJFILE (*typeptr) == TYPE_OBJFILE (type));
  181.94 -     }
  181.95 -   
  181.96 -   ntype = make_qualified_type (type, new_flags, typeptr ? *typeptr : NULL);
  181.97 -@@ -562,6 +570,12 @@ replace_type (struct type *ntype, struct
  181.98 - {
  181.99 -   struct type *chain;
 181.100 - 
 181.101 -+  /* These two types had better be in the same objfile.  Otherwise,
 181.102 -+     the assignment of one type's main type structure to the other
 181.103 -+     will produce a type with references to objects (names; field
 181.104 -+     lists; etc.) allocated on an objfile other than its own.  */
 181.105 -+  gdb_assert (TYPE_OBJFILE (ntype) == TYPE_OBJFILE (ntype));
 181.106 -+
 181.107 -   *TYPE_MAIN_TYPE (ntype) = *TYPE_MAIN_TYPE (type);
 181.108 - 
 181.109 -   /* The type length is not a part of the main type.  Update it for each
 181.110 -@@ -1416,8 +1430,24 @@ check_typedef (struct type *type)
 181.111 - 	  return type;
 181.112 - 	}
 181.113 -       newtype = lookup_transparent_type (name);
 181.114 -+
 181.115 -       if (newtype)
 181.116 --	make_cv_type (is_const, is_volatile, newtype, &type);
 181.117 -+	{
 181.118 -+	  /* If the resolved type and the stub are in the same objfile,
 181.119 -+	     then replace the stub type with the real deal.  But if
 181.120 -+	     they're in separate objfiles, leave the stub alone; we'll
 181.121 -+	     just look up the transparent type every time we call
 181.122 -+	     check_typedef.  We can't create pointers between types
 181.123 -+	     allocated to different objfiles, since they may have
 181.124 -+	     different lifetimes.  Trying to copy NEWTYPE over to TYPE's
 181.125 -+	     objfile is pointless, too, since you'll have to move over any
 181.126 -+	     other types NEWTYPE refers to, which could be an unbounded
 181.127 -+	     amount of stuff.  */
 181.128 -+	  if (TYPE_OBJFILE (newtype) == TYPE_OBJFILE (type))
 181.129 -+	    make_cv_type (is_const, is_volatile, newtype, &type);
 181.130 -+	  else
 181.131 -+	    type = newtype;
 181.132 -+	}
 181.133 -     }
 181.134 -   /* Otherwise, rely on the stub flag being set for opaque/stubbed types */
 181.135 -   else if (TYPE_STUB (type) && !currently_reading_symtab)
   182.1 --- a/patches/gdb/6.3/750-debian_sparc-singlestep.patch	Tue Aug 14 19:32:22 2007 +0000
   182.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   182.3 @@ -1,37 +0,0 @@
   182.4 -Status: submitted for comments
   182.5 -
   182.6 -2004-11-13  Daniel Jacobowitz  <dan@debian.org>
   182.7 -
   182.8 -	* sparc-tdep.c (sparc_software_single_step): Handle stepping to NULL.
   182.9 -
  182.10 -Index: gdb-6.3/gdb/sparc-tdep.c
  182.11 -===================================================================
  182.12 ---- gdb-6.3.orig/gdb/sparc-tdep.c	2004-06-06 22:02:55.000000000 -0400
  182.13 -+++ gdb-6.3/gdb/sparc-tdep.c	2004-11-13 17:06:05.000000000 -0500
  182.14 -@@ -1026,10 +1026,10 @@
  182.15 - 
  182.16 -   if (insert_breakpoints_p)
  182.17 -     {
  182.18 --      CORE_ADDR pc;
  182.19 -+      CORE_ADDR pc, orig_npc;
  182.20 - 
  182.21 -       pc = sparc_address_from_register (tdep->pc_regnum);
  182.22 --      npc = sparc_address_from_register (tdep->npc_regnum);
  182.23 -+      orig_npc = npc = sparc_address_from_register (tdep->npc_regnum);
  182.24 - 
  182.25 -       /* Analyze the instruction at PC.  */
  182.26 -       nnpc = sparc_analyze_control_transfer (pc, &npc);
  182.27 -@@ -1039,9 +1039,10 @@
  182.28 - 	target_insert_breakpoint (nnpc, nnpc_save);
  182.29 - 
  182.30 -       /* Assert that we have set at least one breakpoint, and that
  182.31 --         they're not set at the same spot.  */
  182.32 --      gdb_assert (npc != 0 || nnpc != 0);
  182.33 --      gdb_assert (nnpc != npc);
  182.34 -+         they're not set at the same spot - unless we're going
  182.35 -+	 from here straight to NULL, i.e. a call or jump to 0.  */
  182.36 -+      gdb_assert (npc != 0 || nnpc != 0 || orig_npc == 0);
  182.37 -+      gdb_assert (nnpc != npc || orig_npc == 0);
  182.38 -     }
  182.39 -   else
  182.40 -     {
   183.1 --- a/patches/gdb/6.3/760-debian_vsyscall-bfd-close-result.patch	Tue Aug 14 19:32:22 2007 +0000
   183.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   183.3 @@ -1,20 +0,0 @@
   183.4 -2004-10-24  Daniel Jacobowitz  <dan@debian.org>
   183.5 -
   183.6 -	* opncls.c (bfd_close): Return TRUE for BFD_IN_MEMORY.
   183.7 -
   183.8 -Index: src/bfd/opncls.c
   183.9 -===================================================================
  183.10 -RCS file: /big/fsf/rsync/src-cvs/src/bfd/opncls.c,v
  183.11 -retrieving revision 1.25
  183.12 -diff -u -p -r1.25 opncls.c
  183.13 ---- src/bfd/opncls.c	10 Oct 2004 13:58:05 -0000	1.25
  183.14 -+++ src/bfd/opncls.c	24 Oct 2004 17:52:53 -0000
  183.15 -@@ -598,7 +598,7 @@ bfd_close (bfd *abfd)
  183.16 -   if (!(abfd->flags & BFD_IN_MEMORY))
  183.17 -     ret = abfd->iovec->bclose (abfd);
  183.18 -   else
  183.19 --    ret = 0;
  183.20 -+    ret = TRUE;
  183.21 - 
  183.22 -   /* If the file was open for writing and is now executable,
  183.23 -      make it so.  */
   184.1 --- a/patches/gdb/6.3/770-debian_vfork-done-spelling.patch	Tue Aug 14 19:32:22 2007 +0000
   184.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   184.3 @@ -1,31 +0,0 @@
   184.4 -Index: gdb-6.3/gdb/linux-nat.c
   184.5 -===================================================================
   184.6 ---- gdb-6.3.orig/gdb/linux-nat.c	2004-11-14 00:36:41.000000000 -0500
   184.7 -+++ gdb-6.3/gdb/linux-nat.c	2004-11-15 11:51:43.954161476 -0500
   184.8 -@@ -69,7 +69,7 @@
   184.9 - #define PTRACE_EVENT_VFORK	2
  184.10 - #define PTRACE_EVENT_CLONE	3
  184.11 - #define PTRACE_EVENT_EXEC	4
  184.12 --#define PTRACE_EVENT_VFORKDONE	5
  184.13 -+#define PTRACE_EVENT_VFORK_DONE	5
  184.14 - #define PTRACE_EVENT_EXIT	6
  184.15 - 
  184.16 - #endif /* PTRACE_EVENT_FORK */
  184.17 -@@ -362,7 +362,7 @@ child_follow_fork (int follow_child)
  184.18 - 
  184.19 - 	      ptrace (PTRACE_CONT, parent_pid, 0, 0);
  184.20 - 	      waitpid (parent_pid, &status, __WALL);
  184.21 --	      if ((status >> 16) != PTRACE_EVENT_VFORKDONE)
  184.22 -+	      if ((status >> 16) != PTRACE_EVENT_VFORK_DONE)
  184.23 - 		warning ("Unexpected waitpid result %06x when waiting for "
  184.24 - 			 "vfork-done", status);
  184.25 - 	    }
  184.26 -@@ -434,7 +434,7 @@ child_follow_fork (int follow_child)
  184.27 - 	 generally not encounter vfork (vfork is defined to fork
  184.28 - 	 in libpthread.so).
  184.29 - 
  184.30 --	 The holding part is very easy if we have VFORKDONE events;
  184.31 -+	 The holding part is very easy if we have VFORK_DONE events;
  184.32 - 	 but keeping track of both processes is beyond GDB at the
  184.33 - 	 moment.  So we don't expose the parent to the rest of GDB.
  184.34 - 	 Instead we quietly hold onto it until such time as we can
   185.1 --- a/patches/gdb/6.3/780-debian_gdbserver-rdynamic.patch	Tue Aug 14 19:32:22 2007 +0000
   185.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   185.3 @@ -1,675 +0,0 @@
   185.4 -Status: Commited to GDB after 6.3.
   185.5 -
   185.6 -Index: gdb-6.3/gdb/gdbserver/acinclude.m4
   185.7 -===================================================================
   185.8 ---- gdb-6.3.orig/gdb/gdbserver/acinclude.m4	2002-06-11 13:32:39.000000000 -0400
   185.9 -+++ gdb-6.3/gdb/gdbserver/acinclude.m4	2004-12-07 17:19:31.115089905 -0500
  185.10 -@@ -13,6 +13,7 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
  185.11 -    void ps_lsetregs() {}
  185.12 -    void ps_lgetfpregs() {}
  185.13 -    void ps_lsetfpregs() {}
  185.14 -+   void ps_get_thread_area() {}
  185.15 -    void ps_getpid() {}],
  185.16 -   [td_ta_new();],
  185.17 -   [srv_cv_thread_db="-lthread_db"],
  185.18 -@@ -32,10 +33,11 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
  185.19 -    void ps_lsetregs() {}
  185.20 -    void ps_lgetfpregs() {}
  185.21 -    void ps_lsetfpregs() {}
  185.22 -+   void ps_get_thread_area() {}
  185.23 -    void ps_getpid() {}],
  185.24 -   [td_ta_new();],
  185.25 -   [srv_cv_thread_db="$thread_db"],
  185.26 -   [srv_cv_thread_db=no])
  185.27 -+  ]])
  185.28 -  LIBS="$old_LIBS"
  185.29 -- ]])
  185.30 - )])
  185.31 -Index: gdb-6.3/gdb/gdbserver/configure
  185.32 -===================================================================
  185.33 ---- gdb-6.3.orig/gdb/gdbserver/configure	2004-10-16 12:18:54.000000000 -0400
  185.34 -+++ gdb-6.3/gdb/gdbserver/configure	2004-12-07 17:22:17.343129771 -0500
  185.35 -@@ -28,6 +28,7 @@ program_suffix=NONE
  185.36 - program_transform_name=s,x,x,
  185.37 - silent=
  185.38 - site=
  185.39 -+sitefile=
  185.40 - srcdir=
  185.41 - target=NONE
  185.42 - verbose=
  185.43 -@@ -142,6 +143,7 @@ Configuration:
  185.44 -   --help                  print this message
  185.45 -   --no-create             do not create output files
  185.46 -   --quiet, --silent       do not print \`checking...' messages
  185.47 -+  --site-file=FILE        use FILE as the site file
  185.48 -   --version               print the version of autoconf that created configure
  185.49 - Directory and file names:
  185.50 -   --prefix=PREFIX         install architecture-independent files in PREFIX
  185.51 -@@ -312,6 +314,11 @@ EOF
  185.52 -   -site=* | --site=* | --sit=*)
  185.53 -     site="$ac_optarg" ;;
  185.54 - 
  185.55 -+  -site-file | --site-file | --site-fil | --site-fi | --site-f)
  185.56 -+    ac_prev=sitefile ;;
  185.57 -+  -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*)
  185.58 -+    sitefile="$ac_optarg" ;;
  185.59 -+
  185.60 -   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
  185.61 -     ac_prev=srcdir ;;
  185.62 -   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
  185.63 -@@ -477,12 +484,16 @@ fi
  185.64 - srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
  185.65 - 
  185.66 - # Prefer explicitly selected file to automatically selected ones.
  185.67 --if test -z "$CONFIG_SITE"; then
  185.68 --  if test "x$prefix" != xNONE; then
  185.69 --    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
  185.70 --  else
  185.71 --    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
  185.72 -+if test -z "$sitefile"; then
  185.73 -+  if test -z "$CONFIG_SITE"; then
  185.74 -+    if test "x$prefix" != xNONE; then
  185.75 -+      CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
  185.76 -+    else
  185.77 -+      CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
  185.78 -+    fi
  185.79 -   fi
  185.80 -+else
  185.81 -+  CONFIG_SITE="$sitefile"
  185.82 - fi
  185.83 - for ac_site_file in $CONFIG_SITE; do
  185.84 -   if test -r "$ac_site_file"; then
  185.85 -@@ -526,7 +537,7 @@ fi
  185.86 - # Extract the first word of "gcc", so it can be a program name with args.
  185.87 - set dummy gcc; ac_word=$2
  185.88 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  185.89 --echo "configure:530: checking for $ac_word" >&5
  185.90 -+echo "configure:541: checking for $ac_word" >&5
  185.91 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
  185.92 -   echo $ac_n "(cached) $ac_c" 1>&6
  185.93 - else
  185.94 -@@ -556,7 +567,7 @@ if test -z "$CC"; then
  185.95 -   # Extract the first word of "cc", so it can be a program name with args.
  185.96 - set dummy cc; ac_word=$2
  185.97 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  185.98 --echo "configure:560: checking for $ac_word" >&5
  185.99 -+echo "configure:571: checking for $ac_word" >&5
 185.100 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
 185.101 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.102 - else
 185.103 -@@ -607,7 +618,7 @@ fi
 185.104 -       # Extract the first word of "cl", so it can be a program name with args.
 185.105 - set dummy cl; ac_word=$2
 185.106 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 185.107 --echo "configure:611: checking for $ac_word" >&5
 185.108 -+echo "configure:622: checking for $ac_word" >&5
 185.109 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
 185.110 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.111 - else
 185.112 -@@ -639,7 +650,7 @@ fi
 185.113 - fi
 185.114 - 
 185.115 - echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 185.116 --echo "configure:643: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 185.117 -+echo "configure:654: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 185.118 - 
 185.119 - ac_ext=c
 185.120 - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 185.121 -@@ -650,12 +661,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 185.122 - 
 185.123 - cat > conftest.$ac_ext << EOF
 185.124 - 
 185.125 --#line 654 "configure"
 185.126 -+#line 665 "configure"
 185.127 - #include "confdefs.h"
 185.128 - 
 185.129 - main(){return(0);}
 185.130 - EOF
 185.131 --if { (eval echo configure:659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.132 -+if { (eval echo configure:670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.133 -   ac_cv_prog_cc_works=yes
 185.134 -   # If we can't run a trivial program, we are probably using a cross compiler.
 185.135 -   if (./conftest; exit) 2>/dev/null; then
 185.136 -@@ -681,12 +692,12 @@ if test $ac_cv_prog_cc_works = no; then
 185.137 -   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 185.138 - fi
 185.139 - echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
 185.140 --echo "configure:685: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 185.141 -+echo "configure:696: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 185.142 - echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 185.143 - cross_compiling=$ac_cv_prog_cc_cross
 185.144 - 
 185.145 - echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
 185.146 --echo "configure:690: checking whether we are using GNU C" >&5
 185.147 -+echo "configure:701: checking whether we are using GNU C" >&5
 185.148 - if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
 185.149 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.150 - else
 185.151 -@@ -695,7 +706,7 @@ else
 185.152 -   yes;
 185.153 - #endif
 185.154 - EOF
 185.155 --if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
 185.156 -+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
 185.157 -   ac_cv_prog_gcc=yes
 185.158 - else
 185.159 -   ac_cv_prog_gcc=no
 185.160 -@@ -714,7 +725,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 185.161 - ac_save_CFLAGS="$CFLAGS"
 185.162 - CFLAGS=
 185.163 - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
 185.164 --echo "configure:718: checking whether ${CC-cc} accepts -g" >&5
 185.165 -+echo "configure:729: checking whether ${CC-cc} accepts -g" >&5
 185.166 - if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
 185.167 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.168 - else
 185.169 -@@ -793,7 +804,7 @@ else { echo "configure: error: can not r
 185.170 - fi
 185.171 - 
 185.172 - echo $ac_n "checking host system type""... $ac_c" 1>&6
 185.173 --echo "configure:797: checking host system type" >&5
 185.174 -+echo "configure:808: checking host system type" >&5
 185.175 - 
 185.176 - host_alias=$host
 185.177 - case "$host_alias" in
 185.178 -@@ -814,7 +825,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
 185.179 - echo "$ac_t""$host" 1>&6
 185.180 - 
 185.181 - echo $ac_n "checking target system type""... $ac_c" 1>&6
 185.182 --echo "configure:818: checking target system type" >&5
 185.183 -+echo "configure:829: checking target system type" >&5
 185.184 - 
 185.185 - target_alias=$target
 185.186 - case "$target_alias" in
 185.187 -@@ -832,7 +843,7 @@ target_os=`echo $target | sed 's/^\([^-]
 185.188 - echo "$ac_t""$target" 1>&6
 185.189 - 
 185.190 - echo $ac_n "checking build system type""... $ac_c" 1>&6
 185.191 --echo "configure:836: checking build system type" >&5
 185.192 -+echo "configure:847: checking build system type" >&5
 185.193 - 
 185.194 - build_alias=$build
 185.195 - case "$build_alias" in
 185.196 -@@ -867,7 +878,7 @@ test "$host_alias" != "$target_alias" &&
 185.197 - # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 185.198 - # ./install, which can be erroneously created by make from ./install.sh.
 185.199 - echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
 185.200 --echo "configure:871: checking for a BSD compatible install" >&5
 185.201 -+echo "configure:882: checking for a BSD compatible install" >&5
 185.202 - if test -z "$INSTALL"; then
 185.203 - if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
 185.204 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.205 -@@ -921,7 +932,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA=
 185.206 - 
 185.207 - 
 185.208 - echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
 185.209 --echo "configure:925: checking how to run the C preprocessor" >&5
 185.210 -+echo "configure:936: checking how to run the C preprocessor" >&5
 185.211 - # On Suns, sometimes $CPP names a directory.
 185.212 - if test -n "$CPP" && test -d "$CPP"; then
 185.213 -   CPP=
 185.214 -@@ -936,13 +947,13 @@ else
 185.215 -   # On the NeXT, cc -E runs the code through the compiler's parser,
 185.216 -   # not just through cpp.
 185.217 -   cat > conftest.$ac_ext <<EOF
 185.218 --#line 940 "configure"
 185.219 -+#line 951 "configure"
 185.220 - #include "confdefs.h"
 185.221 - #include <assert.h>
 185.222 - Syntax Error
 185.223 - EOF
 185.224 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 185.225 --{ (eval echo configure:946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.226 -+{ (eval echo configure:957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.227 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 185.228 - if test -z "$ac_err"; then
 185.229 -   :
 185.230 -@@ -953,13 +964,13 @@ else
 185.231 -   rm -rf conftest*
 185.232 -   CPP="${CC-cc} -E -traditional-cpp"
 185.233 -   cat > conftest.$ac_ext <<EOF
 185.234 --#line 957 "configure"
 185.235 -+#line 968 "configure"
 185.236 - #include "confdefs.h"
 185.237 - #include <assert.h>
 185.238 - Syntax Error
 185.239 - EOF
 185.240 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 185.241 --{ (eval echo configure:963: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.242 -+{ (eval echo configure:974: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.243 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 185.244 - if test -z "$ac_err"; then
 185.245 -   :
 185.246 -@@ -970,13 +981,13 @@ else
 185.247 -   rm -rf conftest*
 185.248 -   CPP="${CC-cc} -nologo -E"
 185.249 -   cat > conftest.$ac_ext <<EOF
 185.250 --#line 974 "configure"
 185.251 -+#line 985 "configure"
 185.252 - #include "confdefs.h"
 185.253 - #include <assert.h>
 185.254 - Syntax Error
 185.255 - EOF
 185.256 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 185.257 --{ (eval echo configure:980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.258 -+{ (eval echo configure:991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.259 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 185.260 - if test -z "$ac_err"; then
 185.261 -   :
 185.262 -@@ -1001,12 +1012,12 @@ fi
 185.263 - echo "$ac_t""$CPP" 1>&6
 185.264 - 
 185.265 - echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
 185.266 --echo "configure:1005: checking for ANSI C header files" >&5
 185.267 -+echo "configure:1016: checking for ANSI C header files" >&5
 185.268 - if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
 185.269 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.270 - else
 185.271 -   cat > conftest.$ac_ext <<EOF
 185.272 --#line 1010 "configure"
 185.273 -+#line 1021 "configure"
 185.274 - #include "confdefs.h"
 185.275 - #include <stdlib.h>
 185.276 - #include <stdarg.h>
 185.277 -@@ -1014,7 +1025,7 @@ else
 185.278 - #include <float.h>
 185.279 - EOF
 185.280 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 185.281 --{ (eval echo configure:1018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.282 -+{ (eval echo configure:1029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.283 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 185.284 - if test -z "$ac_err"; then
 185.285 -   rm -rf conftest*
 185.286 -@@ -1031,7 +1042,7 @@ rm -f conftest*
 185.287 - if test $ac_cv_header_stdc = yes; then
 185.288 -   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 185.289 - cat > conftest.$ac_ext <<EOF
 185.290 --#line 1035 "configure"
 185.291 -+#line 1046 "configure"
 185.292 - #include "confdefs.h"
 185.293 - #include <string.h>
 185.294 - EOF
 185.295 -@@ -1049,7 +1060,7 @@ fi
 185.296 - if test $ac_cv_header_stdc = yes; then
 185.297 -   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 185.298 - cat > conftest.$ac_ext <<EOF
 185.299 --#line 1053 "configure"
 185.300 -+#line 1064 "configure"
 185.301 - #include "confdefs.h"
 185.302 - #include <stdlib.h>
 185.303 - EOF
 185.304 -@@ -1070,7 +1081,7 @@ if test "$cross_compiling" = yes; then
 185.305 -   :
 185.306 - else
 185.307 -   cat > conftest.$ac_ext <<EOF
 185.308 --#line 1074 "configure"
 185.309 -+#line 1085 "configure"
 185.310 - #include "confdefs.h"
 185.311 - #include <ctype.h>
 185.312 - #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 185.313 -@@ -1081,7 +1092,7 @@ if (XOR (islower (i), ISLOWER (i)) || to
 185.314 - exit (0); }
 185.315 - 
 185.316 - EOF
 185.317 --if { (eval echo configure:1085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 185.318 -+if { (eval echo configure:1096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 185.319 - then
 185.320 -   :
 185.321 - else
 185.322 -@@ -1109,17 +1120,17 @@ for ac_hdr in sgtty.h termio.h termios.h
 185.323 - do
 185.324 - ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 185.325 - echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 185.326 --echo "configure:1113: checking for $ac_hdr" >&5
 185.327 -+echo "configure:1124: checking for $ac_hdr" >&5
 185.328 - if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
 185.329 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.330 - else
 185.331 -   cat > conftest.$ac_ext <<EOF
 185.332 --#line 1118 "configure"
 185.333 -+#line 1129 "configure"
 185.334 - #include "confdefs.h"
 185.335 - #include <$ac_hdr>
 185.336 - EOF
 185.337 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 185.338 --{ (eval echo configure:1123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.339 -+{ (eval echo configure:1134: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 185.340 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 185.341 - if test -z "$ac_err"; then
 185.342 -   rm -rf conftest*
 185.343 -@@ -1147,12 +1158,12 @@ done
 185.344 - 
 185.345 - 
 185.346 - echo $ac_n "checking whether strerror must be declared""... $ac_c" 1>&6
 185.347 --echo "configure:1151: checking whether strerror must be declared" >&5
 185.348 -+echo "configure:1162: checking whether strerror must be declared" >&5
 185.349 - if eval "test \"`echo '$''{'bfd_cv_decl_needed_strerror'+set}'`\" = set"; then
 185.350 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.351 - else
 185.352 -   cat > conftest.$ac_ext <<EOF
 185.353 --#line 1156 "configure"
 185.354 -+#line 1167 "configure"
 185.355 - #include "confdefs.h"
 185.356 - 
 185.357 - #include <stdio.h>
 185.358 -@@ -1173,7 +1184,7 @@ int main() {
 185.359 - char *(*pfn) = (char *(*)) strerror
 185.360 - ; return 0; }
 185.361 - EOF
 185.362 --if { (eval echo configure:1177: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.363 -+if { (eval echo configure:1188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.364 -   rm -rf conftest*
 185.365 -   bfd_cv_decl_needed_strerror=no
 185.366 - else
 185.367 -@@ -1205,19 +1216,19 @@ fi
 185.368 - 
 185.369 - if test "${srv_linux_regsets}" = "yes"; then
 185.370 -   echo $ac_n "checking for PTRACE_GETREGS""... $ac_c" 1>&6
 185.371 --echo "configure:1209: checking for PTRACE_GETREGS" >&5
 185.372 -+echo "configure:1220: checking for PTRACE_GETREGS" >&5
 185.373 -   if eval "test \"`echo '$''{'gdbsrv_cv_have_ptrace_getregs'+set}'`\" = set"; then
 185.374 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.375 - else
 185.376 -   cat > conftest.$ac_ext <<EOF
 185.377 --#line 1214 "configure"
 185.378 -+#line 1225 "configure"
 185.379 - #include "confdefs.h"
 185.380 - #include <sys/ptrace.h>
 185.381 - int main() {
 185.382 - PTRACE_GETREGS;
 185.383 - ; return 0; }
 185.384 - EOF
 185.385 --if { (eval echo configure:1221: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.386 -+if { (eval echo configure:1232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.387 -   rm -rf conftest*
 185.388 -   gdbsrv_cv_have_ptrace_getregs=yes
 185.389 - else
 185.390 -@@ -1238,19 +1249,19 @@ EOF
 185.391 -   fi
 185.392 - 
 185.393 -   echo $ac_n "checking for PTRACE_GETFPXREGS""... $ac_c" 1>&6
 185.394 --echo "configure:1242: checking for PTRACE_GETFPXREGS" >&5
 185.395 -+echo "configure:1253: checking for PTRACE_GETFPXREGS" >&5
 185.396 -   if eval "test \"`echo '$''{'gdbsrv_cv_have_ptrace_getfpxregs'+set}'`\" = set"; then
 185.397 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.398 - else
 185.399 -   cat > conftest.$ac_ext <<EOF
 185.400 --#line 1247 "configure"
 185.401 -+#line 1258 "configure"
 185.402 - #include "confdefs.h"
 185.403 - #include <sys/ptrace.h>
 185.404 - int main() {
 185.405 - PTRACE_GETFPXREGS;
 185.406 - ; return 0; }
 185.407 - EOF
 185.408 --if { (eval echo configure:1254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.409 -+if { (eval echo configure:1265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.410 -   rm -rf conftest*
 185.411 -   gdbsrv_cv_have_ptrace_getfpxregs=yes
 185.412 - else
 185.413 -@@ -1273,12 +1284,12 @@ fi
 185.414 - 
 185.415 - if test "$ac_cv_header_sys_procfs_h" = yes; then
 185.416 -   echo $ac_n "checking for lwpid_t in sys/procfs.h""... $ac_c" 1>&6
 185.417 --echo "configure:1277: checking for lwpid_t in sys/procfs.h" >&5
 185.418 -+echo "configure:1288: checking for lwpid_t in sys/procfs.h" >&5
 185.419 -  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpid_t'+set}'`\" = set"; then
 185.420 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.421 - else
 185.422 -   cat > conftest.$ac_ext <<EOF
 185.423 --#line 1282 "configure"
 185.424 -+#line 1293 "configure"
 185.425 - #include "confdefs.h"
 185.426 - 
 185.427 - #define _SYSCALL32
 185.428 -@@ -1287,7 +1298,7 @@ int main() {
 185.429 - lwpid_t avar
 185.430 - ; return 0; }
 185.431 - EOF
 185.432 --if { (eval echo configure:1291: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.433 -+if { (eval echo configure:1302: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.434 -   rm -rf conftest*
 185.435 -   bfd_cv_have_sys_procfs_type_lwpid_t=yes
 185.436 - else
 185.437 -@@ -1309,12 +1320,12 @@ EOF
 185.438 -  echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpid_t" 1>&6
 185.439 - 
 185.440 -   echo $ac_n "checking for psaddr_t in sys/procfs.h""... $ac_c" 1>&6
 185.441 --echo "configure:1313: checking for psaddr_t in sys/procfs.h" >&5
 185.442 -+echo "configure:1324: checking for psaddr_t in sys/procfs.h" >&5
 185.443 -  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psaddr_t'+set}'`\" = set"; then
 185.444 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.445 - else
 185.446 -   cat > conftest.$ac_ext <<EOF
 185.447 --#line 1318 "configure"
 185.448 -+#line 1329 "configure"
 185.449 - #include "confdefs.h"
 185.450 - 
 185.451 - #define _SYSCALL32
 185.452 -@@ -1323,7 +1334,7 @@ int main() {
 185.453 - psaddr_t avar
 185.454 - ; return 0; }
 185.455 - EOF
 185.456 --if { (eval echo configure:1327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.457 -+if { (eval echo configure:1338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.458 -   rm -rf conftest*
 185.459 -   bfd_cv_have_sys_procfs_type_psaddr_t=yes
 185.460 - else
 185.461 -@@ -1345,12 +1356,12 @@ EOF
 185.462 -  echo "$ac_t""$bfd_cv_have_sys_procfs_type_psaddr_t" 1>&6
 185.463 - 
 185.464 -   echo $ac_n "checking for prgregset_t in sys/procfs.h""... $ac_c" 1>&6
 185.465 --echo "configure:1349: checking for prgregset_t in sys/procfs.h" >&5
 185.466 -+echo "configure:1360: checking for prgregset_t in sys/procfs.h" >&5
 185.467 -  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prgregset_t'+set}'`\" = set"; then
 185.468 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.469 - else
 185.470 -   cat > conftest.$ac_ext <<EOF
 185.471 --#line 1354 "configure"
 185.472 -+#line 1365 "configure"
 185.473 - #include "confdefs.h"
 185.474 - 
 185.475 - #define _SYSCALL32
 185.476 -@@ -1359,7 +1370,7 @@ int main() {
 185.477 - prgregset_t avar
 185.478 - ; return 0; }
 185.479 - EOF
 185.480 --if { (eval echo configure:1363: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.481 -+if { (eval echo configure:1374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.482 -   rm -rf conftest*
 185.483 -   bfd_cv_have_sys_procfs_type_prgregset_t=yes
 185.484 - else
 185.485 -@@ -1381,12 +1392,12 @@ EOF
 185.486 -  echo "$ac_t""$bfd_cv_have_sys_procfs_type_prgregset_t" 1>&6
 185.487 - 
 185.488 -   echo $ac_n "checking for prfpregset_t in sys/procfs.h""... $ac_c" 1>&6
 185.489 --echo "configure:1385: checking for prfpregset_t in sys/procfs.h" >&5
 185.490 -+echo "configure:1396: checking for prfpregset_t in sys/procfs.h" >&5
 185.491 -  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prfpregset_t'+set}'`\" = set"; then
 185.492 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.493 - else
 185.494 -   cat > conftest.$ac_ext <<EOF
 185.495 --#line 1390 "configure"
 185.496 -+#line 1401 "configure"
 185.497 - #include "confdefs.h"
 185.498 - 
 185.499 - #define _SYSCALL32
 185.500 -@@ -1395,7 +1406,7 @@ int main() {
 185.501 - prfpregset_t avar
 185.502 - ; return 0; }
 185.503 - EOF
 185.504 --if { (eval echo configure:1399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.505 -+if { (eval echo configure:1410: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.506 -   rm -rf conftest*
 185.507 -   bfd_cv_have_sys_procfs_type_prfpregset_t=yes
 185.508 - else
 185.509 -@@ -1421,7 +1432,7 @@ EOF
 185.510 -         
 185.511 -   if test $bfd_cv_have_sys_procfs_type_prfpregset_t = yes; then
 185.512 -     echo $ac_n "checking whether prfpregset_t type is broken""... $ac_c" 1>&6
 185.513 --echo "configure:1425: checking whether prfpregset_t type is broken" >&5
 185.514 -+echo "configure:1436: checking whether prfpregset_t type is broken" >&5
 185.515 -     if eval "test \"`echo '$''{'gdb_cv_prfpregset_t_broken'+set}'`\" = set"; then
 185.516 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.517 - else
 185.518 -@@ -1429,7 +1440,7 @@ else
 185.519 -   gdb_cv_prfpregset_t_broken=yes
 185.520 - else
 185.521 -   cat > conftest.$ac_ext <<EOF
 185.522 --#line 1433 "configure"
 185.523 -+#line 1444 "configure"
 185.524 - #include "confdefs.h"
 185.525 - #include <sys/procfs.h>
 185.526 -        int main ()
 185.527 -@@ -1439,7 +1450,7 @@ else
 185.528 -          return 0;
 185.529 -        }
 185.530 - EOF
 185.531 --if { (eval echo configure:1443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 185.532 -+if { (eval echo configure:1454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 185.533 - then
 185.534 -   gdb_cv_prfpregset_t_broken=no
 185.535 - else
 185.536 -@@ -1463,12 +1474,12 @@ EOF
 185.537 -   fi
 185.538 - 
 185.539 -   echo $ac_n "checking for elf_fpregset_t in sys/procfs.h""... $ac_c" 1>&6
 185.540 --echo "configure:1467: checking for elf_fpregset_t in sys/procfs.h" >&5
 185.541 -+echo "configure:1478: checking for elf_fpregset_t in sys/procfs.h" >&5
 185.542 -  if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_elf_fpregset_t'+set}'`\" = set"; then
 185.543 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.544 - else
 185.545 -   cat > conftest.$ac_ext <<EOF
 185.546 --#line 1472 "configure"
 185.547 -+#line 1483 "configure"
 185.548 - #include "confdefs.h"
 185.549 - 
 185.550 - #define _SYSCALL32
 185.551 -@@ -1477,7 +1488,7 @@ int main() {
 185.552 - elf_fpregset_t avar
 185.553 - ; return 0; }
 185.554 - EOF
 185.555 --if { (eval echo configure:1481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.556 -+if { (eval echo configure:1492: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 185.557 -   rm -rf conftest*
 185.558 -   bfd_cv_have_sys_procfs_type_elf_fpregset_t=yes
 185.559 - else
 185.560 -@@ -1506,14 +1517,14 @@ USE_THREAD_DB=
 185.561 - 
 185.562 - if test "$srv_linux_thread_db" = "yes"; then
 185.563 -   echo $ac_n "checking for libthread_db""... $ac_c" 1>&6
 185.564 --echo "configure:1510: checking for libthread_db" >&5
 185.565 -+echo "configure:1521: checking for libthread_db" >&5
 185.566 - if eval "test \"`echo '$''{'srv_cv_thread_db'+set}'`\" = set"; then
 185.567 -   echo $ac_n "(cached) $ac_c" 1>&6
 185.568 - else
 185.569 -   old_LIBS="$LIBS"
 185.570 -   LIBS="$LIBS -lthread_db"
 185.571 -   cat > conftest.$ac_ext <<EOF
 185.572 --#line 1517 "configure"
 185.573 -+#line 1528 "configure"
 185.574 - #include "confdefs.h"
 185.575 - void ps_pglobal_lookup() {}
 185.576 -    void ps_pdread() {}
 185.577 -@@ -1522,12 +1533,13 @@ void ps_pglobal_lookup() {}
 185.578 -    void ps_lsetregs() {}
 185.579 -    void ps_lgetfpregs() {}
 185.580 -    void ps_lsetfpregs() {}
 185.581 -+   void ps_get_thread_area() {}
 185.582 -    void ps_getpid() {}
 185.583 - int main() {
 185.584 - td_ta_new();
 185.585 - ; return 0; }
 185.586 - EOF
 185.587 --if { (eval echo configure:1531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.588 -+if { (eval echo configure:1543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.589 -   rm -rf conftest*
 185.590 -   srv_cv_thread_db="-lthread_db"
 185.591 - else
 185.592 -@@ -1543,7 +1555,7 @@ else
 185.593 -  fi
 185.594 -  LIBS="$old_LIBS `eval echo "$thread_db"`"
 185.595 -  cat > conftest.$ac_ext <<EOF
 185.596 --#line 1547 "configure"
 185.597 -+#line 1559 "configure"
 185.598 - #include "confdefs.h"
 185.599 - void ps_pglobal_lookup() {}
 185.600 -    void ps_pdread() {}
 185.601 -@@ -1552,12 +1564,13 @@ void ps_pglobal_lookup() {}
 185.602 -    void ps_lsetregs() {}
 185.603 -    void ps_lgetfpregs() {}
 185.604 -    void ps_lsetfpregs() {}
 185.605 -+   void ps_get_thread_area() {}
 185.606 -    void ps_getpid() {}
 185.607 - int main() {
 185.608 - td_ta_new();
 185.609 - ; return 0; }
 185.610 - EOF
 185.611 --if { (eval echo configure:1561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.612 -+if { (eval echo configure:1574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.613 -   rm -rf conftest*
 185.614 -   srv_cv_thread_db="$thread_db"
 185.615 - else
 185.616 -@@ -1567,11 +1580,11 @@ else
 185.617 -   srv_cv_thread_db=no
 185.618 - fi
 185.619 - rm -f conftest*
 185.620 -- LIBS="$old_LIBS"
 185.621 -- 
 185.622 -+  
 185.623 - fi
 185.624 - 
 185.625 - echo "$ac_t""$srv_cv_thread_db" 1>&6
 185.626 -+ LIBS="$old_LIBS"
 185.627 - 
 185.628 - fi
 185.629 - rm -f conftest*
 185.630 -@@ -1585,14 +1598,14 @@ rm -f conftest*
 185.631 -   old_LDFLAGS="$LDFLAGS"
 185.632 -   LDFLAGS="$LDFLAGS -rdynamic"
 185.633 -   cat > conftest.$ac_ext <<EOF
 185.634 --#line 1589 "configure"
 185.635 -+#line 1602 "configure"
 185.636 - #include "confdefs.h"
 185.637 - 
 185.638 - int main() {
 185.639 - 
 185.640 - ; return 0; }
 185.641 - EOF
 185.642 --if { (eval echo configure:1596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.643 -+if { (eval echo configure:1609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 185.644 -   rm -rf conftest*
 185.645 -   RDYNAMIC=-rdynamic
 185.646 - else
 185.647 -Index: gdb-6.3/gdb/gdbserver/aclocal.m4
 185.648 -===================================================================
 185.649 ---- gdb-6.3.orig/gdb/gdbserver/aclocal.m4	2002-06-11 13:32:39.000000000 -0400
 185.650 -+++ gdb-6.3/gdb/gdbserver/aclocal.m4	2004-12-07 17:22:00.382495519 -0500
 185.651 -@@ -1,4 +1,4 @@
 185.652 --dnl aclocal.m4 generated automatically by aclocal 1.4-p4
 185.653 -+dnl aclocal.m4 generated automatically by aclocal 1.4
 185.654 - 
 185.655 - dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 185.656 - dnl This file is free software; the Free Software Foundation
 185.657 -@@ -25,6 +25,7 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
 185.658 -    void ps_lsetregs() {}
 185.659 -    void ps_lgetfpregs() {}
 185.660 -    void ps_lsetfpregs() {}
 185.661 -+   void ps_get_thread_area() {}
 185.662 -    void ps_getpid() {}],
 185.663 -   [td_ta_new();],
 185.664 -   [srv_cv_thread_db="-lthread_db"],
 185.665 -@@ -44,11 +45,12 @@ AC_DEFUN([SRV_CHECK_THREAD_DB],
 185.666 -    void ps_lsetregs() {}
 185.667 -    void ps_lgetfpregs() {}
 185.668 -    void ps_lsetfpregs() {}
 185.669 -+   void ps_get_thread_area() {}
 185.670 -    void ps_getpid() {}],
 185.671 -   [td_ta_new();],
 185.672 -   [srv_cv_thread_db="$thread_db"],
 185.673 -   [srv_cv_thread_db=no])
 185.674 -+  ]])
 185.675 -  LIBS="$old_LIBS"
 185.676 -- ]])
 185.677 - )])
 185.678 - 
   186.1 --- a/patches/gdb/6.3/790-debian_dwarf2-cfi-warning.patch	Tue Aug 14 19:32:22 2007 +0000
   186.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   186.3 @@ -1,39 +0,0 @@
   186.4 -Status: Unsuitable for upstream (at least, without a lot of arguing).
   186.5 -
   186.6 -GCC does not specify the state of every last register in the CIE.  Since
   186.7 -GCC's focus is on correctness of runtime unwinding, any registers which
   186.8 -have to be unwound will be specified; but unmodified registers will not
   186.9 -be explicitly marked.  (How about modified, call-clobbered registers?
  186.10 -I'm not sure if they are marked as unavailable.)
  186.11 -
  186.12 -GDB issues a noisy warning about this.  The warning is generally not useful,
  186.13 -and we can get it extremely frequently (any time we load a new CIE).
  186.14 -
  186.15 -This patch disables the warning.  Alternately we could set the complaints
  186.16 -threshold to zero, or implement a default frame init-register method for
  186.17 -every architecture.  But someday the compiler will support using different
  186.18 -calling conventions for internal functions, so that's not much of a stopgap. 
  186.19 -ARM has a complex algorithm for handling this, involving scanning all CIEs -
  186.20 -benefit not completely clear outside of the ARM context of flexible register
  186.21 -sets.
  186.22 -
  186.23 -Index: gdb-6.3/gdb/dwarf2-frame.c
  186.24 -===================================================================
  186.25 ---- gdb-6.3.orig/gdb/dwarf2-frame.c	2004-11-15 11:54:57.000000000 -0500
  186.26 -+++ gdb-6.3/gdb/dwarf2-frame.c	2004-12-08 18:02:23.896409471 -0500
  186.27 -@@ -705,9 +705,12 @@ dwarf2_frame_cache (struct frame_info *n
  186.28 - 	   table.  We need a way of iterating through all the valid
  186.29 - 	   DWARF2 register numbers.  */
  186.30 - 	if (fs->regs.reg[column].how == DWARF2_FRAME_REG_UNSPECIFIED)
  186.31 --	  complaint (&symfile_complaints,
  186.32 --		     "Incomplete CFI data; unspecified registers at 0x%s",
  186.33 --		     paddr (fs->pc));
  186.34 -+	  {
  186.35 -+	    if (0)
  186.36 -+	      complaint (&symfile_complaints,
  186.37 -+			 "Incomplete CFI data; unspecified registers at 0x%s",
  186.38 -+			 paddr (fs->pc));
  186.39 -+	  }
  186.40 - 	else
  186.41 - 	  cache->reg[regnum] = fs->regs.reg[column];
  186.42 -       }
   187.1 --- a/patches/gdb/6.3/800-debian_linux-use-underscore-exit.patch	Tue Aug 14 19:32:22 2007 +0000
   187.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   187.3 @@ -1,22 +0,0 @@
   187.4 -Status: committed upstream after 6.3.  Fixes some terminal mangling in
   187.5 -gdbtui.
   187.6 -
   187.7 -2004-12-04  Daniel Jacobowitz  <dan@debian.org>
   187.8 -
   187.9 -	PR tui/1703
  187.10 -	* linux-nat.c (linux_tracefork_child): Use _exit instead of exit.
  187.11 -	Suggested by Joshua Neuheisel.
  187.12 -
  187.13 -Index: gdb-6.3/gdb/linux-nat.c
  187.14 -===================================================================
  187.15 ---- gdb-6.3.orig/gdb/linux-nat.c	2004-12-08 18:22:04.996973094 -0500
  187.16 -+++ gdb-6.3/gdb/linux-nat.c	2004-12-08 18:22:20.386956067 -0500
  187.17 -@@ -147,7 +147,7 @@ linux_tracefork_child (void)
  187.18 -   ptrace (PTRACE_TRACEME, 0, 0, 0);
  187.19 -   kill (getpid (), SIGSTOP);
  187.20 -   fork ();
  187.21 --  exit (0);
  187.22 -+  _exit (0);
  187.23 - }
  187.24 - 
  187.25 - /* Wrapper function for waitpid which handles EINTR.  */
   188.1 --- a/patches/gdb/6.3/810-debian_bfd-no-kylix-crash.patch	Tue Aug 14 19:32:22 2007 +0000
   188.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   188.3 @@ -1,47 +0,0 @@
   188.4 -Status: committed upstream after 6.3.
   188.5 -
   188.6 -Fix a crash triggered by Kylix libraries.
   188.7 -
   188.8 -2004-12-06  Daniel Jacobowitz  <dan@debian.org>
   188.9 -
  188.10 -	Suggested by Fergal Daly <fergal@esatclear.ie>:
  188.11 -	* simple.c (simple_dummy_multiple_definition): New function.
  188.12 -	(bfd_simple_get_relocated_section_contents): Use it.
  188.13 -
  188.14 -Index: src/bfd/simple.c
  188.15 -===================================================================
  188.16 -RCS file: /cvs/src/src/bfd/simple.c,v
  188.17 -retrieving revision 1.19
  188.18 -retrieving revision 1.20
  188.19 -Index: gdb-6.3/bfd/simple.c
  188.20 -===================================================================
  188.21 ---- gdb-6.3.orig/bfd/simple.c	2004-09-24 03:07:19.000000000 -0400
  188.22 -+++ gdb-6.3/bfd/simple.c	2004-12-08 18:25:58.415216808 -0500
  188.23 -@@ -78,6 +78,19 @@ simple_dummy_unattached_reloc (struct bf
  188.24 -   return TRUE;
  188.25 - }
  188.26 - 
  188.27 -+static bfd_boolean
  188.28 -+simple_dummy_multiple_definition (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
  188.29 -+				  const char *name ATTRIBUTE_UNUSED,
  188.30 -+				  bfd *obfd ATTRIBUTE_UNUSED,
  188.31 -+				  asection *osec ATTRIBUTE_UNUSED,
  188.32 -+				  bfd_vma oval ATTRIBUTE_UNUSED,
  188.33 -+				  bfd *nbfd ATTRIBUTE_UNUSED,
  188.34 -+				  asection *nsec ATTRIBUTE_UNUSED,
  188.35 -+				  bfd_vma nval ATTRIBUTE_UNUSED)
  188.36 -+{
  188.37 -+  return TRUE;
  188.38 -+}
  188.39 -+
  188.40 - struct saved_output_info
  188.41 - {
  188.42 -   bfd_vma offset;
  188.43 -@@ -172,6 +185,7 @@ bfd_simple_get_relocated_section_content
  188.44 -   callbacks.reloc_overflow = simple_dummy_reloc_overflow;
  188.45 -   callbacks.reloc_dangerous = simple_dummy_reloc_dangerous;
  188.46 -   callbacks.unattached_reloc = simple_dummy_unattached_reloc;
  188.47 -+  callbacks.multiple_definition = simple_dummy_multiple_definition;
  188.48 - 
  188.49 -   memset (&link_order, 0, sizeof (link_order));
  188.50 -   link_order.next = NULL;
   189.1 --- a/patches/gdb/6.3/820-debian_disable-linux-fork-messages.patch	Tue Aug 14 19:32:22 2007 +0000
   189.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   189.3 @@ -1,46 +0,0 @@
   189.4 -Status: Proposed upstream after 6.3, not yet committed.
   189.5 -
   189.6 -2004-12-06  Daniel Jacobowitz  <dan@debian.org>
   189.7 -
   189.8 -	* linux-nat.c (child_follow_fork): Call target_terminal_ours before
   189.9 -	printing output.  Use fprintf_unfiltered.  Only print output when
  189.10 -	debugging.
  189.11 -
  189.12 -Index: gdb-6.3/gdb/linux-nat.c
  189.13 -===================================================================
  189.14 ---- gdb-6.3.orig/gdb/linux-nat.c	2004-12-08 18:22:20.386956067 -0500
  189.15 -+++ gdb-6.3/gdb/linux-nat.c	2004-12-08 18:28:49.995585970 -0500
  189.16 -@@ -347,9 +347,13 @@ child_follow_fork (int follow_child)
  189.17 - 	 also, but they'll be reinserted below.  */
  189.18 -       detach_breakpoints (child_pid);
  189.19 - 
  189.20 --      fprintf_filtered (gdb_stdout,
  189.21 --			"Detaching after fork from child process %d.\n",
  189.22 --			child_pid);
  189.23 -+      if (debug_linux_nat)
  189.24 -+	{
  189.25 -+	  target_terminal_ours ();
  189.26 -+	  fprintf_unfiltered (gdb_stdlog,
  189.27 -+			      "Detaching after fork from child process %d.\n",
  189.28 -+			      child_pid);
  189.29 -+	}
  189.30 - 
  189.31 -       ptrace (PTRACE_DETACH, child_pid, 0, 0);
  189.32 - 
  189.33 -@@ -418,9 +422,13 @@ child_follow_fork (int follow_child)
  189.34 -       /* Before detaching from the parent, remove all breakpoints from it. */
  189.35 -       remove_breakpoints ();
  189.36 - 
  189.37 --      fprintf_filtered (gdb_stdout,
  189.38 --			"Attaching after fork to child process %d.\n",
  189.39 --			child_pid);
  189.40 -+      if (debug_linux_nat)
  189.41 -+	{
  189.42 -+	  target_terminal_ours ();
  189.43 -+	  fprintf_unfiltered (gdb_stdlog,
  189.44 -+			      "Attaching after fork to child process %d.\n",
  189.45 -+			      child_pid);
  189.46 -+	}
  189.47 - 
  189.48 -       /* If we're vforking, we may want to hold on to the parent until
  189.49 - 	 the child exits or execs.  At exec time we can remove the old
   190.1 --- a/patches/glibc/2.1.3/README	Tue Aug 14 19:32:22 2007 +0000
   190.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   190.3 @@ -1,4 +0,0 @@
   190.4 -The files rh62*.patch are from the Red Hat 6.2 file glibc-2.1.3-28.src.rpm
   190.5 -I am trusting here that Red Hat's patches are appropriate for all CPU
   190.6 -types.  If I'm wrong, just remove the offending patch...
   190.7 -- Dan Kegel
   191.1 --- a/patches/glibc/2.1.3/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   191.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   191.3 @@ -1,51 +0,0 @@
   191.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   191.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   191.6 -Fixes following error:
   191.7 -
   191.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   191.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  191.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  191.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  191.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  191.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  191.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  191.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  191.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  191.17 -
  191.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  191.19 -
  191.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  191.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  191.22 -@@ -47,6 +47,12 @@
  191.23 - #include <asm/page.h>
  191.24 - #include <sys/sysctl.h>
  191.25 - 
  191.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  191.27 -+#include <linux/version.h>
  191.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  191.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  191.30 -+#endif
  191.31 -+
  191.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  191.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  191.34 - 
  191.35 -@@ -80,7 +86,7 @@
  191.36 -  * Initialize I/O system.  There are several ways to get the information
  191.37 -  * we need.  Each is tried in turn until one succeeds.
  191.38 -  *
  191.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  191.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  191.41 -  *    but not all kernels support it.
  191.42 -  *
  191.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  191.44 -@@ -100,8 +106,8 @@
  191.45 - {
  191.46 -   char systype[256];
  191.47 -   int i, n;
  191.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  191.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  191.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  191.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  191.52 -   size_t len = sizeof(io.base);
  191.53 - 
  191.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   192.1 --- a/patches/glibc/2.1.3/backport-config.sub.patch	Tue Aug 14 19:32:22 2007 +0000
   192.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   192.3 @@ -1,834 +0,0 @@
   192.4 -# Backport glibc-2.3.2's config.sub to glibc-2.1.3 
   192.5 -# Should fix nonfatal but annoying like
   192.6 -#   checking build system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized
   192.7 -#   ../glibc-2.1.3/configure: line 1227: test: i686-unknown-linux-gnu: unary operator expected
   192.8 -#   checking build system type... Configuration name missing.
   192.9 -
  192.10 -
  192.11 ---- glibc-2.1.3/scripts/config.sub	2004-03-24 13:27:06.000000000 -0800
  192.12 -+++ glibc-2.3.2/scripts/config.sub	2002-07-10 00:24:32.000000000 -0700
  192.13 -@@ -1,6 +1,10 @@
  192.14 - #! /bin/sh
  192.15 --# Configuration validation subroutine script, version 1.1.
  192.16 --#   Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
  192.17 -+# Configuration validation subroutine script.
  192.18 -+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
  192.19 -+#   2000, 2001, 2002 Free Software Foundation, Inc.
  192.20 -+
  192.21 -+timestamp='2002-07-03'
  192.22 -+
  192.23 - # This file is (in principle) common to ALL GNU software.
  192.24 - # The presence of a machine in this file suggests that SOME GNU software
  192.25 - # can handle that machine.  It does not imply ALL GNU software can.
  192.26 -@@ -25,6 +29,9 @@
  192.27 - # configuration script generated by Autoconf, you may include it under
  192.28 - # the same distribution terms that you use for the rest of that program.
  192.29 - 
  192.30 -+# Please send patches to <config-patches@gnu.org>.  Submit a context
  192.31 -+# diff and a properly formatted ChangeLog entry.
  192.32 -+#
  192.33 - # Configuration subroutine to validate and canonicalize a configuration type.
  192.34 - # Supply the specified configuration type as an argument.
  192.35 - # If it is invalid, we print an error message on stderr and exit with code 1.
  192.36 -@@ -45,30 +52,73 @@
  192.37 - #	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
  192.38 - # It is wrong to echo any other type of specification.
  192.39 - 
  192.40 --if [ x$1 = x ]
  192.41 --then
  192.42 --	echo Configuration name missing. 1>&2
  192.43 --	echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
  192.44 --	echo "or     $0 ALIAS" 1>&2
  192.45 --	echo where ALIAS is a recognized configuration type. 1>&2
  192.46 --	exit 1
  192.47 --fi
  192.48 -+me=`echo "$0" | sed -e 's,.*/,,'`
  192.49 - 
  192.50 --# First pass through any local machine types.
  192.51 --case $1 in
  192.52 --	*local*)
  192.53 --		echo $1
  192.54 --		exit 0
  192.55 --		;;
  192.56 --	*)
  192.57 --	;;
  192.58 -+usage="\
  192.59 -+Usage: $0 [OPTION] CPU-MFR-OPSYS
  192.60 -+       $0 [OPTION] ALIAS
  192.61 -+
  192.62 -+Canonicalize a configuration name.
  192.63 -+
  192.64 -+Operation modes:
  192.65 -+  -h, --help         print this help, then exit
  192.66 -+  -t, --time-stamp   print date of last modification, then exit
  192.67 -+  -v, --version      print version number, then exit
  192.68 -+
  192.69 -+Report bugs and patches to <config-patches@gnu.org>."
  192.70 -+
  192.71 -+version="\
  192.72 -+GNU config.sub ($timestamp)
  192.73 -+
  192.74 -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
  192.75 -+Free Software Foundation, Inc.
  192.76 -+
  192.77 -+This is free software; see the source for copying conditions.  There is NO
  192.78 -+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  192.79 -+
  192.80 -+help="
  192.81 -+Try \`$me --help' for more information."
  192.82 -+
  192.83 -+# Parse command line
  192.84 -+while test $# -gt 0 ; do
  192.85 -+  case $1 in
  192.86 -+    --time-stamp | --time* | -t )
  192.87 -+       echo "$timestamp" ; exit 0 ;;
  192.88 -+    --version | -v )
  192.89 -+       echo "$version" ; exit 0 ;;
  192.90 -+    --help | --h* | -h )
  192.91 -+       echo "$usage"; exit 0 ;;
  192.92 -+    -- )     # Stop option processing
  192.93 -+       shift; break ;;
  192.94 -+    - )	# Use stdin as input.
  192.95 -+       break ;;
  192.96 -+    -* )
  192.97 -+       echo "$me: invalid option $1$help"
  192.98 -+       exit 1 ;;
  192.99 -+
 192.100 -+    *local*)
 192.101 -+       # First pass through any local machine types.
 192.102 -+       echo $1
 192.103 -+       exit 0;;
 192.104 -+
 192.105 -+    * )
 192.106 -+       break ;;
 192.107 -+  esac
 192.108 -+done
 192.109 -+
 192.110 -+case $# in
 192.111 -+ 0) echo "$me: missing argument$help" >&2
 192.112 -+    exit 1;;
 192.113 -+ 1) ;;
 192.114 -+ *) echo "$me: too many arguments$help" >&2
 192.115 -+    exit 1;;
 192.116 - esac
 192.117 - 
 192.118 - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
 192.119 - # Here we must recognize all the valid KERNEL-OS combinations.
 192.120 - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 192.121 - case $maybe_os in
 192.122 --  linux-gnu*)
 192.123 -+  nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
 192.124 -     os=-$maybe_os
 192.125 -     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
 192.126 -     ;;
 192.127 -@@ -94,7 +144,7 @@
 192.128 - 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 192.129 - 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 192.130 - 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
 192.131 --	-apple)
 192.132 -+	-apple | -axis)
 192.133 - 		os=
 192.134 - 		basic_machine=$1
 192.135 - 		;;
 192.136 -@@ -108,6 +158,14 @@
 192.137 - 		os=-vxworks
 192.138 - 		basic_machine=$1
 192.139 - 		;;
 192.140 -+	-chorusos*)
 192.141 -+		os=-chorusos
 192.142 -+		basic_machine=$1
 192.143 -+		;;
 192.144 -+ 	-chorusrdb)
 192.145 -+ 		os=-chorusrdb
 192.146 -+		basic_machine=$1
 192.147 -+ 		;;
 192.148 - 	-hiux*)
 192.149 - 		os=-hiuxwe2
 192.150 - 		;;
 192.151 -@@ -166,27 +224,58 @@
 192.152 - case $basic_machine in
 192.153 - 	# Recognize the basic CPU types without company name.
 192.154 - 	# Some are omitted here because they have special meanings below.
 192.155 --	tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
 192.156 --		| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
 192.157 --		| 580 | i960 | h8300 \
 192.158 --		| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
 192.159 --		| alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
 192.160 --		| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
 192.161 --		| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
 192.162 --		| mips64orion | mips64orionel | mipstx39 | mipstx39el \
 192.163 --		| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
 192.164 --		| mips64vr5000 | miprs64vr5000el | mcore \
 192.165 --		| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
 192.166 --		| thumb | d10v | fr30)
 192.167 -+	1750a | 580 \
 192.168 -+	| a29k \
 192.169 -+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 192.170 -+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 192.171 -+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
 192.172 -+	| c4x | clipper \
 192.173 -+	| d10v | d30v | dlx | dsp16xx \
 192.174 -+	| fr30 | frv \
 192.175 -+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 192.176 -+	| i370 | i860 | i960 | ia64 \
 192.177 -+	| ip2k \
 192.178 -+	| m32r | m68000 | m68k | m88k | mcore \
 192.179 -+	| mips | mipsbe | mipseb | mipsel | mipsle \
 192.180 -+	| mips16 \
 192.181 -+	| mips64 | mips64el \
 192.182 -+	| mips64orion | mips64orionel \
 192.183 -+	| mips64vr4100 | mips64vr4100el \
 192.184 -+	| mips64vr4300 | mips64vr4300el \
 192.185 -+	| mips64vr5000 | mips64vr5000el \
 192.186 -+	| mipsisa32 | mipsisa32el \
 192.187 -+	| mipsisa64 | mipsisa64el \
 192.188 -+	| mipsisa64sb1 | mipsisa64sb1el \
 192.189 -+	| mipstx39 | mipstx39el \
 192.190 -+	| mn10200 | mn10300 \
 192.191 -+	| ns16k | ns32k \
 192.192 -+	| openrisc | or32 \
 192.193 -+	| pdp10 | pdp11 | pj | pjl \
 192.194 -+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 192.195 -+	| pyramid \
 192.196 -+	| sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
 192.197 -+	| sh64 | sh64le \
 192.198 -+	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
 192.199 -+	| strongarm \
 192.200 -+	| tahoe | thumb | tic80 | tron \
 192.201 -+	| v850 | v850e \
 192.202 -+	| we32k \
 192.203 -+	| x86 | xscale | xstormy16 | xtensa \
 192.204 -+	| z8k)
 192.205 -+		basic_machine=$basic_machine-unknown
 192.206 -+		;;
 192.207 -+	m6811 | m68hc11 | m6812 | m68hc12)
 192.208 -+		# Motorola 68HC11/12.
 192.209 - 		basic_machine=$basic_machine-unknown
 192.210 -+		os=-none
 192.211 - 		;;
 192.212 --	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
 192.213 -+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
 192.214 - 		;;
 192.215 - 
 192.216 - 	# We use `pc' rather than `unknown'
 192.217 - 	# because (1) that's what they normally are, and
 192.218 - 	# (2) the word "unknown" tends to confuse beginning users.
 192.219 --	i[34567]86)
 192.220 -+	i*86 | x86_64)
 192.221 - 	  basic_machine=$basic_machine-pc
 192.222 - 	  ;;
 192.223 - 	# Object if more than one company name word.
 192.224 -@@ -195,24 +284,54 @@
 192.225 - 		exit 1
 192.226 - 		;;
 192.227 - 	# Recognize the basic CPU types with company name.
 192.228 --	# FIXME: clean up the formatting here.
 192.229 --	vax-* | tahoe-* | i[34567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
 192.230 --	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
 192.231 --	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
 192.232 --	      | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
 192.233 --	      | xmp-* | ymp-* \
 192.234 --	      | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
 192.235 --	      | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67]-* \
 192.236 --	      | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
 192.237 --	      | clipper-* | orion-* \
 192.238 --	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
 192.239 --	      | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
 192.240 --	      | mips64el-* | mips64orion-* | mips64orionel-* \
 192.241 --	      | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
 192.242 --	      | mipstx39-* | mipstx39el-* | mcore-* \
 192.243 --	      | f301-* | armv*-* | t3e-* \
 192.244 --	      | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
 192.245 --	      | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
 192.246 -+	580-* \
 192.247 -+	| a29k-* \
 192.248 -+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 192.249 -+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
 192.250 -+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 192.251 -+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 192.252 -+	| avr-* \
 192.253 -+	| bs2000-* \
 192.254 -+	| c[123]* | c30-* | [cjt]90-* | c54x-* \
 192.255 -+	| clipper-* | cydra-* \
 192.256 -+	| d10v-* | d30v-* | dlx-* \
 192.257 -+	| elxsi-* \
 192.258 -+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
 192.259 -+	| h8300-* | h8500-* \
 192.260 -+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 192.261 -+	| i*86-* | i860-* | i960-* | ia64-* \
 192.262 -+	| ip2k-* \
 192.263 -+	| m32r-* \
 192.264 -+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 192.265 -+	| m88110-* | m88k-* | mcore-* \
 192.266 -+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 192.267 -+	| mips16-* \
 192.268 -+	| mips64-* | mips64el-* \
 192.269 -+	| mips64orion-* | mips64orionel-* \
 192.270 -+	| mips64vr4100-* | mips64vr4100el-* \
 192.271 -+	| mips64vr4300-* | mips64vr4300el-* \
 192.272 -+	| mips64vr5000-* | mips64vr5000el-* \
 192.273 -+	| mipsisa32-* | mipsisa32el-* \
 192.274 -+	| mipsisa64-* | mipsisa64el-* \
 192.275 -+	| mipsisa64sb1-* | mipsisa64sb1el-* \
 192.276 -+	| mipstx39 | mipstx39el \
 192.277 -+	| none-* | np1-* | ns16k-* | ns32k-* \
 192.278 -+	| orion-* \
 192.279 -+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 192.280 -+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 192.281 -+	| pyramid-* \
 192.282 -+	| romp-* | rs6000-* \
 192.283 -+	| sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
 192.284 -+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 192.285 -+	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
 192.286 -+	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
 192.287 -+	| tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
 192.288 -+	| v850-* | v850e-* | vax-* \
 192.289 -+	| we32k-* \
 192.290 -+	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
 192.291 -+	| xtensa-* \
 192.292 -+	| ymp-* \
 192.293 -+	| z8k-*)
 192.294 - 		;;
 192.295 - 	# Recognize the various machine names and aliases which stand
 192.296 - 	# for a CPU type and a company and sometimes even an OS.
 192.297 -@@ -249,14 +368,14 @@
 192.298 - 		os=-sysv
 192.299 - 		;;
 192.300 - 	amiga | amiga-*)
 192.301 --		basic_machine=m68k-cbm
 192.302 -+		basic_machine=m68k-unknown
 192.303 - 		;;
 192.304 - 	amigaos | amigados)
 192.305 --		basic_machine=m68k-cbm
 192.306 -+		basic_machine=m68k-unknown
 192.307 - 		os=-amigaos
 192.308 - 		;;
 192.309 - 	amigaunix | amix)
 192.310 --		basic_machine=m68k-cbm
 192.311 -+		basic_machine=m68k-unknown
 192.312 - 		os=-sysv4
 192.313 - 		;;
 192.314 - 	apollo68)
 192.315 -@@ -275,6 +394,10 @@
 192.316 - 		basic_machine=ns32k-sequent
 192.317 - 		os=-dynix
 192.318 - 		;;
 192.319 -+	c90)
 192.320 -+		basic_machine=c90-cray
 192.321 -+		os=-unicos
 192.322 -+		;;
 192.323 - 	convex-c1)
 192.324 - 		basic_machine=c1-convex
 192.325 - 		os=-bsd
 192.326 -@@ -295,27 +418,30 @@
 192.327 - 		basic_machine=c38-convex
 192.328 - 		os=-bsd
 192.329 - 		;;
 192.330 --	cray | ymp)
 192.331 --		basic_machine=ymp-cray
 192.332 --		os=-unicos
 192.333 --		;;
 192.334 --	cray2)
 192.335 --		basic_machine=cray2-cray
 192.336 --		os=-unicos
 192.337 --		;;
 192.338 --	[ctj]90-cray)
 192.339 --		basic_machine=c90-cray
 192.340 -+	cray | j90)
 192.341 -+		basic_machine=j90-cray
 192.342 - 		os=-unicos
 192.343 - 		;;
 192.344 - 	crds | unos)
 192.345 - 		basic_machine=m68k-crds
 192.346 - 		;;
 192.347 -+	cris | cris-* | etrax*)
 192.348 -+		basic_machine=cris-axis
 192.349 -+		;;
 192.350 - 	da30 | da30-*)
 192.351 - 		basic_machine=m68k-da30
 192.352 - 		;;
 192.353 - 	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
 192.354 - 		basic_machine=mips-dec
 192.355 - 		;;
 192.356 -+	decsystem10* | dec10*)
 192.357 -+		basic_machine=pdp10-dec
 192.358 -+		os=-tops10
 192.359 -+		;;
 192.360 -+	decsystem20* | dec20*)
 192.361 -+		basic_machine=pdp10-dec
 192.362 -+		os=-tops20
 192.363 -+		;;
 192.364 - 	delta | 3300 | motorola-3300 | motorola-delta \
 192.365 - 	      | 3300-motorola | delta-motorola)
 192.366 - 		basic_machine=m68k-motorola
 192.367 -@@ -357,6 +483,10 @@
 192.368 - 		basic_machine=tron-gmicro
 192.369 - 		os=-sysv
 192.370 - 		;;
 192.371 -+	go32)
 192.372 -+		basic_machine=i386-pc
 192.373 -+		os=-go32
 192.374 -+		;;
 192.375 - 	h3050r* | hiux*)
 192.376 - 		basic_machine=hppa1.1-hitachi
 192.377 - 		os=-hiuxwe2
 192.378 -@@ -432,19 +562,19 @@
 192.379 - 		basic_machine=i370-ibm
 192.380 - 		;;
 192.381 - # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
 192.382 --	i[34567]86v32)
 192.383 -+	i*86v32)
 192.384 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
 192.385 - 		os=-sysv32
 192.386 - 		;;
 192.387 --	i[34567]86v4*)
 192.388 -+	i*86v4*)
 192.389 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
 192.390 - 		os=-sysv4
 192.391 - 		;;
 192.392 --	i[34567]86v)
 192.393 -+	i*86v)
 192.394 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
 192.395 - 		os=-sysv
 192.396 - 		;;
 192.397 --	i[34567]86sol2)
 192.398 -+	i*86sol2)
 192.399 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
 192.400 - 		os=-solaris2
 192.401 - 		;;
 192.402 -@@ -456,17 +586,6 @@
 192.403 - 		basic_machine=i386-unknown
 192.404 - 		os=-vsta
 192.405 - 		;;
 192.406 --	i386-go32 | go32)
 192.407 --		basic_machine=i386-unknown
 192.408 --		os=-go32
 192.409 --		;;
 192.410 --	i386-mingw32 | mingw32)
 192.411 --		basic_machine=i386-unknown
 192.412 --		os=-mingw32
 192.413 --		;;
 192.414 --	i386-qnx | qnx)
 192.415 --		basic_machine=i386-qnx
 192.416 --		;;
 192.417 - 	iris | iris4d)
 192.418 - 		basic_machine=mips-sgi
 192.419 - 		case $os in
 192.420 -@@ -492,6 +611,10 @@
 192.421 - 		basic_machine=ns32k-utek
 192.422 - 		os=-sysv
 192.423 - 		;;
 192.424 -+	mingw32)
 192.425 -+		basic_machine=i386-pc
 192.426 -+		os=-mingw32
 192.427 -+		;;
 192.428 - 	miniframe)
 192.429 - 		basic_machine=m68000-convergent
 192.430 - 		;;
 192.431 -@@ -499,26 +622,26 @@
 192.432 - 		basic_machine=m68k-atari
 192.433 - 		os=-mint
 192.434 - 		;;
 192.435 --	mipsel*-linux*)
 192.436 --		basic_machine=mipsel-unknown
 192.437 --		os=-linux-gnu
 192.438 --		;;
 192.439 --	mips*-linux*)
 192.440 --		basic_machine=mips-unknown
 192.441 --		os=-linux-gnu
 192.442 --		;;
 192.443 - 	mips3*-*)
 192.444 - 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
 192.445 - 		;;
 192.446 - 	mips3*)
 192.447 - 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
 192.448 - 		;;
 192.449 -+	mmix*)
 192.450 -+		basic_machine=mmix-knuth
 192.451 -+		os=-mmixware
 192.452 -+		;;
 192.453 - 	monitor)
 192.454 - 		basic_machine=m68k-rom68k
 192.455 - 		os=-coff
 192.456 - 		;;
 192.457 -+	morphos)
 192.458 -+		basic_machine=powerpc-unknown
 192.459 -+		os=-morphos
 192.460 -+		;;
 192.461 - 	msdos)
 192.462 --		basic_machine=i386-unknown
 192.463 -+		basic_machine=i386-pc
 192.464 - 		os=-msdos
 192.465 - 		;;
 192.466 - 	mvs)
 192.467 -@@ -582,13 +705,24 @@
 192.468 - 		basic_machine=i960-intel
 192.469 - 		os=-mon960
 192.470 - 		;;
 192.471 -+	nonstopux)
 192.472 -+		basic_machine=mips-compaq
 192.473 -+		os=-nonstopux
 192.474 -+		;;
 192.475 - 	np1)
 192.476 - 		basic_machine=np1-gould
 192.477 - 		;;
 192.478 -+	nsr-tandem)
 192.479 -+		basic_machine=nsr-tandem
 192.480 -+		;;
 192.481 - 	op50n-* | op60c-*)
 192.482 - 		basic_machine=hppa1.1-oki
 192.483 - 		os=-proelf
 192.484 - 		;;
 192.485 -+	or32 | or32-*)
 192.486 -+		basic_machine=or32-unknown
 192.487 -+		os=-coff
 192.488 -+		;;
 192.489 - 	OSE68000 | ose68000)
 192.490 - 		basic_machine=m68000-ericsson
 192.491 - 		os=-ose
 192.492 -@@ -614,28 +748,28 @@
 192.493 -         pc532 | pc532-*)
 192.494 - 		basic_machine=ns32k-pc532
 192.495 - 		;;
 192.496 --	pentium | p5 | k5 | k6 | nexen)
 192.497 -+	pentium | p5 | k5 | k6 | nexgen | viac3)
 192.498 - 		basic_machine=i586-pc
 192.499 - 		;;
 192.500 --	pentiumpro | p6 | 6x86)
 192.501 -+	pentiumpro | p6 | 6x86 | athlon)
 192.502 - 		basic_machine=i686-pc
 192.503 - 		;;
 192.504 - 	pentiumii | pentium2)
 192.505 --		basic_machine=i786-pc
 192.506 -+		basic_machine=i686-pc
 192.507 - 		;;
 192.508 --	pentium-* | p5-* | k5-* | k6-* | nexen-*)
 192.509 -+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 192.510 - 		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.511 - 		;;
 192.512 --	pentiumpro-* | p6-* | 6x86-*)
 192.513 -+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
 192.514 - 		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.515 - 		;;
 192.516 - 	pentiumii-* | pentium2-*)
 192.517 --		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.518 -+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.519 - 		;;
 192.520 - 	pn)
 192.521 - 		basic_machine=pn-gould
 192.522 - 		;;
 192.523 --	power)	basic_machine=rs6000-ibm
 192.524 -+	power)	basic_machine=power-ibm
 192.525 - 		;;
 192.526 - 	ppc)	basic_machine=powerpc-unknown
 192.527 - 	        ;;
 192.528 -@@ -647,9 +781,23 @@
 192.529 - 	ppcle-* | powerpclittle-*)
 192.530 - 		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.531 - 		;;
 192.532 -+	ppc64)	basic_machine=powerpc64-unknown
 192.533 -+	        ;;
 192.534 -+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.535 -+		;;
 192.536 -+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
 192.537 -+		basic_machine=powerpc64le-unknown
 192.538 -+	        ;;
 192.539 -+	ppc64le-* | powerpc64little-*)
 192.540 -+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
 192.541 -+		;;
 192.542 - 	ps2)
 192.543 - 		basic_machine=i386-ibm
 192.544 - 		;;
 192.545 -+	pw32)
 192.546 -+		basic_machine=i586-unknown
 192.547 -+		os=-pw32
 192.548 -+		;;
 192.549 - 	rom68k)
 192.550 - 		basic_machine=m68k-rom68k
 192.551 - 		os=-coff
 192.552 -@@ -660,6 +808,12 @@
 192.553 - 	rtpc | rtpc-*)
 192.554 - 		basic_machine=romp-ibm
 192.555 - 		;;
 192.556 -+	s390 | s390-*)
 192.557 -+		basic_machine=s390-ibm
 192.558 -+		;;
 192.559 -+	s390x | s390x-*)
 192.560 -+		basic_machine=s390x-ibm
 192.561 -+		;;
 192.562 - 	sa29200)
 192.563 - 		basic_machine=a29k-amd
 192.564 - 		os=-udi
 192.565 -@@ -671,7 +825,7 @@
 192.566 - 		basic_machine=sh-hitachi
 192.567 - 		os=-hms
 192.568 - 		;;
 192.569 --	sparclite-wrs)
 192.570 -+	sparclite-wrs | simso-wrs)
 192.571 - 		basic_machine=sparclite-wrs
 192.572 - 		os=-vxworks
 192.573 - 		;;
 192.574 -@@ -729,20 +883,40 @@
 192.575 - 	sun386 | sun386i | roadrunner)
 192.576 - 		basic_machine=i386-sun
 192.577 - 		;;
 192.578 -+        sv1)
 192.579 -+		basic_machine=sv1-cray
 192.580 -+		os=-unicos
 192.581 -+		;;
 192.582 - 	symmetry)
 192.583 - 		basic_machine=i386-sequent
 192.584 - 		os=-dynix
 192.585 - 		;;
 192.586 -+	t3d)
 192.587 -+		basic_machine=alpha-cray
 192.588 -+		os=-unicos
 192.589 -+		;;
 192.590 - 	t3e)
 192.591 --		basic_machine=t3e-cray
 192.592 -+		basic_machine=alphaev5-cray
 192.593 -+		os=-unicos
 192.594 -+		;;
 192.595 -+	t90)
 192.596 -+		basic_machine=t90-cray
 192.597 - 		os=-unicos
 192.598 - 		;;
 192.599 -+	tic54x | c54x*)
 192.600 -+		basic_machine=tic54x-unknown
 192.601 -+		os=-coff
 192.602 -+		;;
 192.603 - 	tx39)
 192.604 - 		basic_machine=mipstx39-unknown
 192.605 - 		;;
 192.606 - 	tx39el)
 192.607 - 		basic_machine=mipstx39el-unknown
 192.608 - 		;;
 192.609 -+	toad1)
 192.610 -+		basic_machine=pdp10-xkl
 192.611 -+		os=-tops20
 192.612 -+		;;
 192.613 - 	tower | tower-32)
 192.614 - 		basic_machine=m68k-ncr
 192.615 - 		;;
 192.616 -@@ -789,13 +963,17 @@
 192.617 - 		basic_machine=hppa1.1-winbond
 192.618 - 		os=-proelf
 192.619 - 		;;
 192.620 --	xmp)
 192.621 --		basic_machine=xmp-cray
 192.622 --		os=-unicos
 192.623 -+	windows32)
 192.624 -+		basic_machine=i386-pc
 192.625 -+		os=-windows32-msvcrt
 192.626 - 		;;
 192.627 -         xps | xps100)
 192.628 - 		basic_machine=xps100-honeywell
 192.629 - 		;;
 192.630 -+	ymp)
 192.631 -+		basic_machine=ymp-cray
 192.632 -+		os=-unicos
 192.633 -+		;;
 192.634 - 	z8k-*-coff)
 192.635 - 		basic_machine=z8k-unknown
 192.636 - 		os=-sim
 192.637 -@@ -816,13 +994,6 @@
 192.638 - 	op60c)
 192.639 - 		basic_machine=hppa1.1-oki
 192.640 - 		;;
 192.641 --	mips)
 192.642 --		if [ x$os = x-linux-gnu ]; then
 192.643 --			basic_machine=mips-unknown
 192.644 --		else
 192.645 --			basic_machine=mips-mips
 192.646 --		fi
 192.647 --		;;
 192.648 - 	romp)
 192.649 - 		basic_machine=romp-ibm
 192.650 - 		;;
 192.651 -@@ -832,13 +1003,23 @@
 192.652 - 	vax)
 192.653 - 		basic_machine=vax-dec
 192.654 - 		;;
 192.655 -+	pdp10)
 192.656 -+		# there are many clones, so DEC is not a safe bet
 192.657 -+		basic_machine=pdp10-unknown
 192.658 -+		;;
 192.659 - 	pdp11)
 192.660 - 		basic_machine=pdp11-dec
 192.661 - 		;;
 192.662 - 	we32k)
 192.663 - 		basic_machine=we32k-att
 192.664 - 		;;
 192.665 --	sparc | sparcv9)
 192.666 -+	sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
 192.667 -+		basic_machine=sh-unknown
 192.668 -+		;;
 192.669 -+	sh64)
 192.670 -+		basic_machine=sh64-unknown
 192.671 -+		;;
 192.672 -+	sparc | sparcv9 | sparcv9b)
 192.673 - 		basic_machine=sparc-sun
 192.674 - 		;;
 192.675 -         cydra)
 192.676 -@@ -860,6 +1041,9 @@
 192.677 - 		basic_machine=c4x-none
 192.678 - 		os=-coff
 192.679 - 		;;
 192.680 -+	*-unknown)
 192.681 -+		# Make sure to match an already-canonicalized machine name.
 192.682 -+		;;
 192.683 - 	*)
 192.684 - 		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
 192.685 - 		exit 1
 192.686 -@@ -916,14 +1100,31 @@
 192.687 - 	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 192.688 - 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 192.689 - 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 192.690 -+	      | -chorusos* | -chorusrdb* \
 192.691 - 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 192.692 - 	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
 192.693 --	      | -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
 192.694 -+	      | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
 192.695 -+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 192.696 -+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 192.697 -+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 192.698 -+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
 192.699 - 	# Remember, each alternative MUST END IN *, to match a version number.
 192.700 - 		;;
 192.701 -+	-qnx*)
 192.702 -+		case $basic_machine in
 192.703 -+		    x86-* | i*86-*)
 192.704 -+			;;
 192.705 -+		    *)
 192.706 -+			os=-nto$os
 192.707 -+			;;
 192.708 -+		esac
 192.709 -+		;;
 192.710 -+	-nto*)
 192.711 -+		os=-nto-qnx
 192.712 -+		;;
 192.713 - 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
 192.714 - 	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
 192.715 --	      | -macos* | -mpw* | -magic* | -mon960* | -lnews*)
 192.716 -+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 192.717 - 		;;
 192.718 - 	-mac*)
 192.719 - 		os=`echo $os | sed -e 's|mac|macos|'`
 192.720 -@@ -940,6 +1141,9 @@
 192.721 - 	-opened*)
 192.722 - 		os=-openedition
 192.723 - 		;;
 192.724 -+	-wince*)
 192.725 -+		os=-wince
 192.726 -+		;;
 192.727 - 	-osfrose*)
 192.728 - 		os=-osfrose
 192.729 - 		;;
 192.730 -@@ -955,15 +1159,24 @@
 192.731 - 	-acis*)
 192.732 - 		os=-aos
 192.733 - 		;;
 192.734 -+	-atheos*)
 192.735 -+		os=-atheos
 192.736 -+		;;
 192.737 - 	-386bsd)
 192.738 - 		os=-bsd
 192.739 - 		;;
 192.740 - 	-ctix* | -uts*)
 192.741 - 		os=-sysv
 192.742 - 		;;
 192.743 -+	-nova*)
 192.744 -+		os=-rtmk-nova
 192.745 -+		;;
 192.746 - 	-ns2 )
 192.747 - 	        os=-nextstep2
 192.748 - 		;;
 192.749 -+	-nsk*)
 192.750 -+		os=-nsk
 192.751 -+		;;
 192.752 - 	# Preserve the version number of sinix5.
 192.753 - 	-sinix5.*)
 192.754 - 		os=`echo $os | sed -e 's|sinix|sysv|'`
 192.755 -@@ -977,9 +1190,6 @@
 192.756 - 	-oss*)
 192.757 - 		os=-sysv3
 192.758 - 		;;
 192.759 --        -qnx)
 192.760 --		os=-qnx4
 192.761 --		;;
 192.762 - 	-svr4)
 192.763 - 		os=-sysv4
 192.764 - 		;;
 192.765 -@@ -1001,7 +1211,7 @@
 192.766 - 	-xenix)
 192.767 - 		os=-xenix
 192.768 - 		;;
 192.769 --        -*mint | -*MiNT)
 192.770 -+        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
 192.771 - 	        os=-mint
 192.772 - 		;;
 192.773 - 	-none)
 192.774 -@@ -1035,6 +1245,10 @@
 192.775 - 	arm*-semi)
 192.776 - 		os=-aout
 192.777 - 		;;
 192.778 -+	# This must come before the *-dec entry.
 192.779 -+	pdp10-*)
 192.780 -+		os=-tops20
 192.781 -+		;;
 192.782 -         pdp11-*)
 192.783 - 		os=-none
 192.784 - 		;;
 192.785 -@@ -1062,6 +1276,9 @@
 192.786 - 	mips*-*)
 192.787 - 		os=-elf
 192.788 - 		;;
 192.789 -+	or32-*)
 192.790 -+		os=-coff
 192.791 -+		;;
 192.792 - 	*-tti)	# must be before sparc entry or we get the wrong os.
 192.793 - 		os=-sysv3
 192.794 - 		;;
 192.795 -@@ -1143,7 +1360,7 @@
 192.796 - 	*-masscomp)
 192.797 - 		os=-rtu
 192.798 - 		;;
 192.799 --	f301-fujitsu)
 192.800 -+	f30[01]-fujitsu | f700-fujitsu)
 192.801 - 		os=-uxpv
 192.802 - 		;;
 192.803 - 	*-rom68k)
 192.804 -@@ -1209,7 +1426,7 @@
 192.805 - 			-ptx*)
 192.806 - 				vendor=sequent
 192.807 - 				;;
 192.808 --			-vxsim* | -vxworks*)
 192.809 -+			-vxsim* | -vxworks* | -windiss*)
 192.810 - 				vendor=wrs
 192.811 - 				;;
 192.812 - 			-aux*)
 192.813 -@@ -1221,12 +1438,23 @@
 192.814 - 			-mpw* | -macos*)
 192.815 - 				vendor=apple
 192.816 - 				;;
 192.817 --			-*mint | -*MiNT)
 192.818 -+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
 192.819 - 				vendor=atari
 192.820 - 				;;
 192.821 -+			-vos*)
 192.822 -+				vendor=stratus
 192.823 -+				;;
 192.824 - 		esac
 192.825 - 		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
 192.826 - 		;;
 192.827 - esac
 192.828 - 
 192.829 - echo $basic_machine$os
 192.830 -+exit 0
 192.831 -+
 192.832 -+# Local variables:
 192.833 -+# eval: (add-hook 'write-file-hooks 'time-stamp)
 192.834 -+# time-stamp-start: "timestamp='"
 192.835 -+# time-stamp-format: "%:y-%02m-%02d"
 192.836 -+# time-stamp-end: "'"
 192.837 -+# End:
   193.1 --- a/patches/glibc/2.1.3/el.po.patch	Tue Aug 14 19:32:22 2007 +0000
   193.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   193.3 @@ -1,40 +0,0 @@
   193.4 -From
   193.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/po/Makefile.diff?r1=1.17&r2=1.18&cvsroot=glibc
   193.6 -
   193.7 -Fixes error
   193.8 -  msgfmt -o el.mo el.po
   193.9 -  el.po:538:31: invalid multibyte sequence
  193.10 -  el.po:539:21: invalid multibyte sequence
  193.11 -  el.po:1537:38: invalid multibyte sequence
  193.12 -  msgfmt: found 3 fatal errors
  193.13 -  make[2]: *** [el.mo] Error 1
  193.14 -  make[2]: Leaving directory
  193.15 -  `/home/dkegel/wk/crosstool-0.25/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/glibc-2.1.3/po'
  193.16 -
  193.17 -===================================================================
  193.18 -RCS file: /cvs/glibc/libc/po/Makefile,v
  193.19 -retrieving revision 1.17
  193.20 -retrieving revision 1.18
  193.21 -diff -u -r1.17 -r1.18
  193.22 ---- libc/po/Makefile	1999/09/13 08:48:40	1.17
  193.23 -+++ libc/po/Makefile	2001/04/20 04:45:54	1.18
  193.24 -@@ -1,4 +1,4 @@
  193.25 --# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
  193.26 -+# Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
  193.27 - # This file is part of the GNU C Library.
  193.28 - 
  193.29 - # The GNU C Library is free software; you can redistribute it and/or
  193.30 -@@ -20,8 +20,12 @@
  193.31 - 
  193.32 - subdir := po
  193.33 - 
  193.34 -+# List of languages that are currently broken (just run msgfmt from
  193.35 -+# GNU gettext 0.10.36 on them to see why)
  193.36 -+BROKEN_LINGUAS = el
  193.37 -+
  193.38 - # List of languages for which we have message catalogs of translations.
  193.39 --ALL_LINGUAS := $(basename $(wildcard *.po))
  193.40 -+ALL_LINGUAS := $(filter-out $(BROKEN_LINGUAS),$(basename $(wildcard *.po)))
  193.41 - 
  193.42 - # You can override this in configparms or the make command line to limit
  193.43 - # the languages which get installed.
   194.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-ac_cv_prog_cc_cross.patch	Tue Aug 14 19:32:22 2007 +0000
   194.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   194.3 @@ -1,44 +0,0 @@
   194.4 -Lets you work around the canadian cross build error
   194.5 -
   194.6 -.../gcc-3.4.0-glibc-2.1.3/build-glibc/elf/sln .../gcc-3.4.0-glibc-2.1.3/build-glibc/elf/symlink.list
   194.7 -make[1]: *** [install-symbolic-link] Segmentation fault
   194.8 -make[1]: Leaving directory `.../gcc-3.4.0-glibc-2.1.3/glibc-2.1.3'
   194.9 -make: *** [install] Error 2
  194.10 -
  194.11 -by setting --host != --build when running glibc-2.1.3/configure
  194.12 -instead of hoping that host and build aren't aliases for each other
  194.13 -and that running a host program on the build machine doesn't 
  194.14 -put up a dialog box or accidentally work.
  194.15 -
  194.16 -(cf. http://sources.redhat.com/ml/crossgcc/2002-08/msg00099.html, in which 
  194.17 -the run of conftest caused a dialog box to pop up and block the build on cygwin)
  194.18 -
  194.19 ---- glibc-2.1.3/configure.old	2004-05-26 19:30:45.000000000 -0700
  194.20 -+++ glibc-2.1.3/configure	2004-05-26 19:42:29.000000000 -0700
  194.21 -@@ -1224,7 +1224,7 @@
  194.22 - build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
  194.23 - echo "$ac_t""$build" 1>&6
  194.24 - 
  194.25 --if test $host != $build; then
  194.26 -+if test x$host_alias != x$build_alias; then
  194.27 -   ac_tool_prefix=${host_alias}-
  194.28 - else
  194.29 -   ac_tool_prefix=
  194.30 -@@ -1487,7 +1487,7 @@
  194.31 - if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  194.32 -   ac_cv_prog_cc_works=yes
  194.33 -   # If we can't run a trivial program, we are probably using a cross compiler.
  194.34 --  if (./conftest; exit) 2>/dev/null; then
  194.35 -+  if test x$host_alias == x$build_alias && (./conftest; exit) 2>/dev/null; then
  194.36 -     ac_cv_prog_cc_cross=no
  194.37 -   else
  194.38 -     ac_cv_prog_cc_cross=yes
  194.39 -@@ -1566,7 +1566,7 @@
  194.40 - build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
  194.41 - echo "$ac_t""$build" 1>&6
  194.42 - 
  194.43 --if test $host != $build; then
  194.44 -+if test x$host_alias != x$build_alias; then
  194.45 -   for ac_prog in gcc cc
  194.46 - do
  194.47 - # Extract the first word of "$ac_prog", so it can be a program name with args.
   195.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-db2.patch	Tue Aug 14 19:32:22 2007 +0000
   195.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   195.3 @@ -1,17 +0,0 @@
   195.4 -Fixes error compiling with gcc-3.4.0:
   195.5 -
   195.6 -os/os_oflags.c: In function `__db_oflags':
   195.7 -os/os_oflags.c:48: error: label at end of compound statement
   195.8 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/db2/os_oflags.os] Error 1
   195.9 -
  195.10 ---- glibc-2.1.3/db2/os/os_oflags.c.old	Sun Apr 11 19:56:44 2004
  195.11 -+++ glibc-2.1.3/db2/os/os_oflags.c	Sun Apr 11 19:57:06 2004
  195.12 -@@ -44,7 +44,7 @@
  195.13 - 	case O_RDWR:
  195.14 - 		break;
  195.15 - 	default:		/* Bogus flags value from user.  */
  195.16 --	  /* XXX no way to return error from here */
  195.17 -+		; /* XXX no way to return error from here */
  195.18 - 	}
  195.19 - 	if (oflags & O_CREAT)
  195.20 - 		dbflags |= DB_CREATE;
   196.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-dns.patch	Tue Aug 14 19:32:22 2007 +0000
   196.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   196.3 @@ -1,21 +0,0 @@
   196.4 -Fixes
   196.5 -
   196.6 -nss_dns/dns-host.c: In function `_nss_dns_gethostbyaddr_r':
   196.7 -nss_dns/dns-host.c:268: error: label at end of compound statement
   196.8 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/resolv/dns-host.os] Error 1
   196.9 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/resolv'
  196.10 -make[1]: *** [resolv/others] Error 2
  196.11 -
  196.12 -when building with gcc-3.4.0
  196.13 -
  196.14 ---- glibc-2.1.3/resolv/nss_dns/dns-host.c.old	Sun Apr 11 20:32:47 2004
  196.15 -+++ glibc-2.1.3/resolv/nss_dns/dns-host.c	Sun Apr 11 20:33:07 2004
  196.16 -@@ -264,7 +264,7 @@
  196.17 -       strcpy (qp, "ip6.int");
  196.18 -       break;
  196.19 -     default:
  196.20 --      /* Cannot happen.  */
  196.21 -+      ; /* Cannot happen.  */
  196.22 -     }
  196.23 - 
  196.24 -   host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
   197.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-fixup.patch	Tue Aug 14 19:32:22 2007 +0000
   197.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   197.3 @@ -1,70 +0,0 @@
   197.4 -Fixes
   197.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
   197.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
   197.7 -when building with gcc-3.4.0
   197.8 -
   197.9 -First hunk:
  197.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
  197.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
  197.12 -[rediffed against glibc-2.1.3]
  197.13 -
  197.14 -Second hunk:
  197.15 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
  197.16 -Use macro in fixup function definitions.
  197.17 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
  197.18 -[rediffed against glibc-2.3.2]
  197.19 -
  197.20 -===================================================================
  197.21 ---- glibc-2.1.3/sysdeps/i386/dl-machine.h.old	Sun Apr 11 18:58:45 2004
  197.22 -+++ glibc-2.1.3/sysdeps/i386/dl-machine.h	Sun Apr 11 18:59:51 2004
  197.23 -@@ -70,11 +70,14 @@
  197.24 - 
  197.25 -    We cannot use this scheme for profiling because the _mcount call
  197.26 -    destroys the passed register information.  */
  197.27 -+
  197.28 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
  197.29 -+
  197.30 - static ElfW(Addr) fixup (struct link_map *l, ElfW(Word) reloc_offset)
  197.31 --     __attribute__ ((regparm (2), unused));
  197.32 -+     ARCH_FIXUP_ATTRIBUTE;
  197.33 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
  197.34 - 				 ElfW(Addr) retaddr)
  197.35 --     __attribute__ ((regparm (3), unused));
  197.36 -+     ARCH_FIXUP_ATTRIBUTE;
  197.37 - #endif
  197.38 - 
  197.39 - /* Set up the loaded object described by L so its unrelocated PLT
  197.40 -===================================================================
  197.41 ---- glibc-2.1.3/elf/dl-runtime.c~	Thu Jul 15 11:32:41 1999
  197.42 -+++ glibc-2.1.3/elf/dl-runtime.c	Sun Apr 11 19:02:01 2004
  197.43 -@@ -31,6 +31,12 @@
  197.44 - # define VERSYMIDX(sym)	(DT_NUM + DT_PROCNUM + DT_VERSIONTAGIDX (sym))
  197.45 - #endif
  197.46 - 
  197.47 -+/* The fixup functions might have need special attributes.  If none
  197.48 -+   are provided define the macro as empty.  */
  197.49 -+#ifndef ARCH_FIXUP_ATTRIBUTE
  197.50 -+# define ARCH_FIXUP_ATTRIBUTE
  197.51 -+#endif
  197.52 -+
  197.53 - 
  197.54 - /* This function is called through a special trampoline from the PLT the
  197.55 -    first time each PLT entry is called.  We must perform the relocation
  197.56 -@@ -40,7 +46,7 @@
  197.57 -    function.  */
  197.58 - 
  197.59 - #ifndef ELF_MACHINE_NO_PLT
  197.60 --static ElfW(Addr) __attribute__ ((unused))
  197.61 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
  197.62 - fixup (
  197.63 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  197.64 -         ELF_MACHINE_RUNTIME_FIXUP_ARGS,
  197.65 -@@ -105,7 +111,7 @@
  197.66 - 
  197.67 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT
  197.68 - 
  197.69 --static ElfW(Addr) __attribute__ ((unused))
  197.70 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
  197.71 - profile_fixup (
  197.72 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  197.73 -        ELF_MACHINE_RUNTIME_FIXUP_ARGS,
   198.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-generic.patch	Tue Aug 14 19:32:22 2007 +0000
   198.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   198.3 @@ -1,157 +0,0 @@
   198.4 -Fixes following error when building with gcc-3.4.0:
   198.5 -../sysdeps/generic/strstr.c: In function `strstr':
   198.6 -../sysdeps/generic/strstr.c:85: error: label at end of compound statement
   198.7 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/string/strstr.o] Error 1
   198.8 -
   198.9 -
  198.10 ---------
  198.11 -CVSROOT:	/cvs/glibc
  198.12 -Module name:	libc
  198.13 -Changes by:	drepper@sources.redhat.com	2000-11-25 23:30:03
  198.14 -
  198.15 -Modified files:
  198.16 -	sysdeps/generic: _strerror.c memrchr.c strcasestr.c strstr.c 
  198.17 -
  198.18 -Log message:
  198.19 -	Add casts to avoid warnings.
  198.20 ---------
  198.21 -
  198.22 -Retrieved with
  198.23 - cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc diff -u -D"2000-11-24 23:30:03" -D"2000-11-26 23:30:03" 
  198.24 -then fixed paths and threw out first two hunks
  198.25 -
  198.26 -
  198.27 -#Index: _strerror.c
  198.28 -#===================================================================
  198.29 -#RCS file: /cvs/libc/sysdeps/generic/_strerror.c,v
  198.30 -#retrieving revision 1.16
  198.31 -#retrieving revision 1.17
  198.32 -#diff -u -r1.16 -r1.17
  198.33 -#--- libc/sysdeps/generic/_strerror.c	29 Aug 2000 01:09:56 -0000	1.16
  198.34 -#+++ libc/sysdeps/generic/_strerror.c	26 Nov 2000 07:30:03 -0000	1.17
  198.35 -#@@ -56,7 +56,7 @@
  198.36 -# 	 buffer size.  */
  198.37 -#       q = __mempcpy (buf, unk, MIN (unklen, buflen));
  198.38 -#       if (unklen < buflen)
  198.39 -#-	memcpy (q, p, MIN (&numbuf[21] - p, buflen - unklen));
  198.40 -#+	memcpy (q, p, MIN ((size_t) (&numbuf[21] - p), buflen - unklen));
  198.41 -# 
  198.42 -#       /* Terminate the string in any case.  */
  198.43 -#       if (buflen > 0)
  198.44 -#Index: memrchr.c
  198.45 -#===================================================================
  198.46 -#RCS file: /cvs/libc/sysdeps/generic/memrchr.c,v
  198.47 -#retrieving revision 1.5
  198.48 -#retrieving revision 1.6
  198.49 -#diff -u -r1.5 -r1.6
  198.50 -#--- libc/sysdeps/generic/memrchr.c	23 Oct 2000 23:07:32 -0000	1.5
  198.51 -#+++ libc/sysdeps/generic/memrchr.c	26 Nov 2000 07:30:03 -0000	1.6
  198.52 -#@@ -86,7 +86,7 @@
  198.53 -#   /* All these elucidatory comments refer to 4-byte longwords,
  198.54 -#      but the theory applies equally well to 8-byte longwords.  */
  198.55 -# 
  198.56 -#-  longword_ptr = (unsigned long int *) char_ptr;
  198.57 -#+  longword_ptr = (const unsigned long int *) char_ptr;
  198.58 -# 
  198.59 -#   /* Bits 31, 24, 16, and 8 of this number are zero.  Call these bits
  198.60 -#      the "holes."  Note that there is a hole just to the left of
  198.61 -Index: strcasestr.c
  198.62 -===================================================================
  198.63 -RCS file: /cvs/libc/sysdeps/generic/strcasestr.c,v
  198.64 -retrieving revision 1.3
  198.65 -retrieving revision 1.4
  198.66 -diff -u -r1.3 -r1.4
  198.67 ---- libc/sysdeps/generic/strcasestr.c	23 Jan 1999 22:16:03 -0000	1.3
  198.68 -+++ libc/sysdeps/generic/strcasestr.c	26 Nov 2000 07:30:03 -0000	1.4
  198.69 -@@ -1,5 +1,5 @@
  198.70 - /* Return the offset of one string within another.
  198.71 --   Copyright (C) 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
  198.72 -+   Copyright (C) 1994,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
  198.73 -    This file is part of the GNU C Library.
  198.74 - 
  198.75 -    The GNU C Library is free software; you can redistribute it and/or
  198.76 -@@ -62,7 +62,7 @@
  198.77 - 	  if (c == '\0')
  198.78 - 	    goto ret0;
  198.79 - 	}
  198.80 --      while (_tolower (c) != b);
  198.81 -+      while (_tolower (c) != (int) b);
  198.82 - 
  198.83 -       c = _tolower (*++needle);
  198.84 -       if (c == '\0')
  198.85 -@@ -80,40 +80,42 @@
  198.86 - 	      a = *++haystack;
  198.87 - 	      if (a == '\0')
  198.88 - 		goto ret0;
  198.89 --	      if (_tolower (a) == b)
  198.90 -+	      if (_tolower (a) == (int) b)
  198.91 - 		break;
  198.92 - 	      a = *++haystack;
  198.93 - 	      if (a == '\0')
  198.94 - 		goto ret0;
  198.95 --shloop:	    }
  198.96 --          while (_tolower (a) != b);
  198.97 -+shloop:
  198.98 -+	      ;
  198.99 -+	    }
 198.100 -+          while (_tolower (a) != (int) b);
 198.101 - 
 198.102 - jin:	  a = *++haystack;
 198.103 - 	  if (a == '\0')
 198.104 - 	    goto ret0;
 198.105 - 
 198.106 --	  if (_tolower (a) != c)
 198.107 -+	  if (_tolower (a) != (int) c)
 198.108 - 	    goto shloop;
 198.109 - 
 198.110 - 	  rhaystack = haystack-- + 1;
 198.111 - 	  rneedle = needle;
 198.112 - 	  a = _tolower (*rneedle);
 198.113 - 
 198.114 --	  if (_tolower (*rhaystack) == a)
 198.115 -+	  if (_tolower (*rhaystack) == (int) a)
 198.116 - 	    do
 198.117 - 	      {
 198.118 - 		if (a == '\0')
 198.119 - 		  goto foundneedle;
 198.120 - 		++rhaystack;
 198.121 - 		a = _tolower (*++needle);
 198.122 --		if (_tolower (*rhaystack) != a)
 198.123 -+		if (_tolower (*rhaystack) != (int) a)
 198.124 - 		  break;
 198.125 - 		if (a == '\0')
 198.126 - 		  goto foundneedle;
 198.127 - 		++rhaystack;
 198.128 - 		a = _tolower (*++needle);
 198.129 - 	      }
 198.130 --	    while (_tolower (*rhaystack) == a);
 198.131 -+	    while (_tolower (*rhaystack) == (int) a);
 198.132 - 
 198.133 - 	  needle = rneedle;		/* took the register-poor approach */
 198.134 - 
 198.135 -Index: strstr.c
 198.136 -===================================================================
 198.137 -RCS file: /cvs/libc/sysdeps/generic/strstr.c,v
 198.138 -retrieving revision 1.10
 198.139 -retrieving revision 1.11
 198.140 -diff -u -r1.10 -r1.11
 198.141 ---- libc/sysdeps/generic/strstr.c	11 Sep 1997 03:18:20 -0000	1.10
 198.142 -+++ libc/sysdeps/generic/strstr.c	26 Nov 2000 07:30:03 -0000	1.11
 198.143 -@@ -1,5 +1,5 @@
 198.144 - /* Return the offset of one string within another.
 198.145 --   Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
 198.146 -+   Copyright (C) 1994, 1996, 1997, 2000 Free Software Foundation, Inc.
 198.147 -    This file is part of the GNU C Library.
 198.148 - 
 198.149 -    The GNU C Library is free software; you can redistribute it and/or
 198.150 -@@ -82,7 +82,9 @@
 198.151 - 	      a = *++haystack;
 198.152 - 	      if (a == '\0')
 198.153 - 		goto ret0;
 198.154 --shloop:	    }
 198.155 -+shloop:
 198.156 -+	      ;
 198.157 -+	    }
 198.158 -           while (a != b);
 198.159 - 
 198.160 - jin:	  a = *++haystack;
   199.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-grp.patch	Tue Aug 14 19:32:22 2007 +0000
   199.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   199.3 @@ -1,56 +0,0 @@
   199.4 -Fixes
   199.5 -initgroups.c: In function `internal_getgrouplist':
   199.6 -initgroups.c:179: error: parse error before "__FUNCTION__"
   199.7 -
   199.8 -CVSROOT:	/cvs/glibc
   199.9 -Module name:	libc
  199.10 -Changes by:	roland@sources.redhat.com	2001-12-16 21:52:12
  199.11 -
  199.12 -Modified files:
  199.13 -	nss            : nsswitch.c 
  199.14 -	grp            : initgroups.c 
  199.15 -
  199.16 -Log message:
  199.17 -	2001-12-16  Roland McGrath  <roland@frob.com>
  199.18 -	
  199.19 -	* nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal.
  199.20 -	* grp/initgroups.c (internal_getgrouplist): Likewise.
  199.21 -
  199.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc
  199.23 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc
  199.24 -
  199.25 -Removed 2nd hunk for glibc-2.1.3 (it was just whitespace)
  199.26 -
  199.27 -===================================================================
  199.28 -RCS file: /cvs/glibc/libc/grp/initgroups.c,v
  199.29 -retrieving revision 1.26
  199.30 -retrieving revision 1.27
  199.31 -diff -u -r1.26 -r1.27
  199.32 ---- libc/grp/initgroups.c	2001/07/06 04:54:46	1.26
  199.33 -+++ libc/grp/initgroups.c	2001/12/17 05:52:11	1.27
  199.34 -@@ -176,7 +176,7 @@
  199.35 - 
  199.36 -       /* This is really only for debugging.  */
  199.37 -       if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
  199.38 --	__libc_fatal ("illegal status in " __FUNCTION__);
  199.39 -+	__libc_fatal ("illegal status in internal_getgrouplist");
  199.40 - 
  199.41 -       if (status != NSS_STATUS_SUCCESS
  199.42 - 	  && nss_next_action (nip, status) == NSS_ACTION_RETURN)
  199.43 -
  199.44 -===================================================================
  199.45 -RCS file: /cvs/glibc/libc/nss/nsswitch.c,v
  199.46 -retrieving revision 1.52
  199.47 -retrieving revision 1.53
  199.48 -diff -u -r1.52 -r1.53
  199.49 ---- libc/nss/nsswitch.c	2001/07/17 08:21:36	1.52
  199.50 -+++ libc/nss/nsswitch.c	2001/12/17 05:52:11	1.53
  199.51 -@@ -178,7 +178,7 @@
  199.52 -     {
  199.53 -       /* This is really only for debugging.  */
  199.54 -        if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
  199.55 --	 __libc_fatal ("illegal status in " __FUNCTION__);
  199.56 -+	 __libc_fatal ("illegal status in __nss_next");
  199.57 - 
  199.58 -        if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
  199.59 - 	 return 1;
   200.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-locale.patch	Tue Aug 14 19:32:22 2007 +0000
   200.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   200.3 @@ -1,33 +0,0 @@
   200.4 -programs/locfile.c: In function `locfile_read':
   200.5 -programs/locfile.c:863: error: label at end of compound statement
   200.6 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/locale/locfile.o] Error 1
   200.7 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/locale'
   200.8 -
   200.9 -programs/locale.c: In function `print_item':
  200.10 -programs/locale.c:666: error: label at end of compound statement
  200.11 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/locale/locale.o] Error 1
  200.12 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/locale'
  200.13 -
  200.14 -
  200.15 -Mechanical changes to quiet the errors.
  200.16 -
  200.17 ---- glibc-2.1.3/locale/programs/locfile.c.old	Sun Apr 11 20:03:52 2004
  200.18 -+++ glibc-2.1.3/locale/programs/locfile.c	Sun Apr 11 20:04:47 2004
  200.19 -@@ -860,6 +860,7 @@
  200.20 - 
  200.21 - 	    collate_end_weight (ldfile, result);
  200.22 - 	  illegal_weight:
  200.23 -+		;	/* gcc-3.4 requires a statement here */
  200.24 - 	  }
  200.25 - 	  continue;
  200.26 - 
  200.27 ---- glibc-2.1.3/locale/programs/locale.c.old	Sun Apr 11 20:08:48 2004
  200.28 -+++ glibc-2.1.3/locale/programs/locale.c	Sun Apr 11 20:09:04 2004
  200.29 -@@ -663,6 +663,7 @@
  200.30 - 	  }
  200.31 - 	  break;
  200.32 - 	default:
  200.33 -+		;       /* gcc-3.4 requires a statement here */
  200.34 - 	}
  200.35 -       putchar ('\n');
  200.36 -     }
   201.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-mntent.patch	Tue Aug 14 19:32:22 2007 +0000
   201.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   201.3 @@ -1,39 +0,0 @@
   201.4 -Fixes compilation with gcc-3.4.0:
   201.5 -
   201.6 -mntent_r.c: In function `__getmntent_r':
   201.7 -mntent_r.c:146: error: label at end of compound statement
   201.8 -mntent_r.c: In function `__addmntent':
   201.9 -mntent_r.c:214: warning: implicit declaration of function `alloca'
  201.10 -
  201.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/misc/mntent_r.c.diff?r1=1.9&r2=1.11&cvsroot=glibc
  201.12 -
  201.13 -===================================================================
  201.14 -RCS file: /cvs/glibc/libc/misc/mntent_r.c,v
  201.15 -retrieving revision 1.9
  201.16 -retrieving revision 1.11
  201.17 -diff -u -r1.9 -r1.11
  201.18 ---- libc/misc/mntent_r.c	1999/07/26 01:45:32	1.9
  201.19 -+++ libc/misc/mntent_r.c	2000/11/28 07:27:14	1.11
  201.20 -@@ -1,5 +1,5 @@
  201.21 - /* Utilities for reading/writing fstab, mtab, etc.
  201.22 --   Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
  201.23 -+   Copyright (C) 1995,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
  201.24 -    This file is part of the GNU C Library.
  201.25 - 
  201.26 -    The GNU C Library is free software; you can redistribute it and/or
  201.27 -@@ -17,6 +17,7 @@
  201.28 -    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  201.29 -    Boston, MA 02111-1307, USA.  */
  201.30 - 
  201.31 -+#include <alloca.h>
  201.32 - #include <mntent.h>
  201.33 - #include <stdio.h>
  201.34 - #include <string.h>
  201.35 -@@ -143,6 +144,7 @@
  201.36 -     case 1:
  201.37 -       mp->mnt_passno = 0;
  201.38 -     case 2:
  201.39 -+      break;
  201.40 -     }
  201.41 -   funlockfile (stream);
  201.42 - 
   202.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc-3.4-sunrpc.patch	Tue Aug 14 19:32:22 2007 +0000
   202.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   202.3 @@ -1,33 +0,0 @@
   202.4 -Fixes gcc-3.4.0 compilation errors
   202.5 -
   202.6 -rpc_hout.c: In function `print_funcdef':
   202.7 -rpc_hout.c:140: error: label at end of compound statement
   202.8 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/sunrpc/rpc_hout.o] Error 1
   202.9 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/sunrpc'
  202.10 -
  202.11 -rpc_cout.c: In function `emit_inline':
  202.12 -rpc_cout.c:743: error: label at end of compound statement
  202.13 -...
  202.14 -
  202.15 ---- glibc-2.1.3/sunrpc/rpc_hout.c.old	Sun Apr 11 22:06:26 2004
  202.16 -+++ glibc-2.1.3/sunrpc/rpc_hout.c	Sun Apr 11 22:06:42 2004
  202.17 -@@ -136,7 +136,7 @@
  202.18 -       pprogramdef (def);
  202.19 -       break;
  202.20 -     default:
  202.21 --      /* ?... shouldn't happen I guess */
  202.22 -+      ; /* ?... shouldn't happen I guess */
  202.23 -     }
  202.24 - }
  202.25 - 
  202.26 ---- glibc-2.1.3/sunrpc/rpc_cout.c.old	Sun Apr 11 22:10:39 2004
  202.27 -+++ glibc-2.1.3/sunrpc/rpc_cout.c	Sun Apr 11 22:10:53 2004
  202.28 -@@ -739,7 +739,7 @@
  202.29 -       f_print (fout, "}\n");
  202.30 -       break;
  202.31 -     default:
  202.32 --      /* ?... do nothing I guess */
  202.33 -+      ; /* ?... do nothing I guess */
  202.34 -     }
  202.35 - }
  202.36 - 
   203.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-configure.patch	Tue Aug 14 19:32:22 2007 +0000
   203.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   203.3 @@ -1,11 +0,0 @@
   203.4 ---- glibc-2.1.3/configure.old	2004-03-04 11:05:49.000000000 -0800
   203.5 -+++ glibc-2.1.3/configure	2004-03-04 11:07:58.000000000 -0800
   203.6 -@@ -1273,7 +1273,7 @@
   203.7 -   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustp-]*[0-9.]*\).*$/\1/p'`
   203.8 -   case $ac_prog_version in
   203.9 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  203.10 --    egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
  203.11 -+    egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[2-9]*|cygnus-2.9[1-9].*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9])
  203.12 -        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  203.13 -     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  203.14 - 
   204.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-dl-machine-i386.patch	Tue Aug 14 19:32:22 2007 +0000
   204.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   204.3 @@ -1,171 +0,0 @@
   204.4 -	* sysdeps/i386/dl-machine.h (RTLD_START): Don't use multi-line
   204.5 -	strings.
   204.6 -	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Likewise.
   204.7 -
   204.8 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.82&r2=1.83&cvsroot=glibc&hideattic=0
   204.9 -backported a bit
  204.10 -
  204.11 ---- glibc-2.1.3/sysdeps/i386/dl-machine.h.old	1999-02-20 10:19:47.000000000 -0800
  204.12 -+++ glibc-2.1.3/sysdeps/i386/dl-machine.h	2004-03-05 15:56:25.000000000 -0800
  204.13 -@@ -124,68 +124,68 @@
  204.14 -    and then redirect to the address it returns.  */
  204.15 - #ifndef PROF
  204.16 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
  204.17 --	.text
  204.18 --	.globl _dl_runtime_resolve
  204.19 --	.type _dl_runtime_resolve, @function
  204.20 --	.align 16
  204.21 --_dl_runtime_resolve:
  204.22 --	pushl %eax		# Preserve registers otherwise clobbered.
  204.23 --	pushl %ecx
  204.24 --	pushl %edx
  204.25 --	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note
  204.26 --	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.
  204.27 --	call fixup		# Call resolver.
  204.28 --	popl %edx		# Get register content back.
  204.29 --	popl %ecx
  204.30 --	xchgl %eax, (%esp)	# Get %eax contents end store function address.
  204.31 --	ret $8			# Jump to function address.
  204.32 --	.size _dl_runtime_resolve, .-_dl_runtime_resolve
  204.33 --
  204.34 --	.globl _dl_runtime_profile
  204.35 --	.type _dl_runtime_profile, @function
  204.36 --	.align 16
  204.37 --_dl_runtime_profile:
  204.38 --	pushl %eax		# Preserve registers otherwise clobbered.
  204.39 --	pushl %ecx
  204.40 --	pushl %edx
  204.41 --	movl 20(%esp), %ecx	# Load return address
  204.42 --	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note
  204.43 --	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.
  204.44 --	call profile_fixup	# Call resolver.
  204.45 --	popl %edx		# Get register content back.
  204.46 --	popl %ecx
  204.47 --	xchgl %eax, (%esp)	# Get %eax contents end store function address.
  204.48 --	ret $8			# Jump to function address.
  204.49 --	.size _dl_runtime_profile, .-_dl_runtime_profile
  204.50 --	.previous
  204.51 -+	.text\n\
  204.52 -+	.globl _dl_runtime_resolve\n\
  204.53 -+	.type _dl_runtime_resolve, @function\n\
  204.54 -+	.align 16\n\
  204.55 -+_dl_runtime_resolve:\n\
  204.56 -+	pushl %eax		# Preserve registers otherwise clobbered.\n\
  204.57 -+	pushl %ecx\n\
  204.58 -+	pushl %edx\n\
  204.59 -+	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note\n\
  204.60 -+	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.\n\
  204.61 -+	call fixup		# Call resolver.\n\
  204.62 -+	popl %edx		# Get register content back.\n\
  204.63 -+	popl %ecx\n\
  204.64 -+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
  204.65 -+	ret $8			# Jump to function address.\n\
  204.66 -+	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
  204.67 -+\n\
  204.68 -+	.globl _dl_runtime_profile\n\
  204.69 -+	.type _dl_runtime_profile, @function\n\
  204.70 -+	.align 16\n\
  204.71 -+_dl_runtime_profile:\n\
  204.72 -+	pushl %eax		# Preserve registers otherwise clobbered.\n\
  204.73 -+	pushl %ecx\n\
  204.74 -+	pushl %edx\n\
  204.75 -+	movl 20(%esp), %ecx	# Load return address\n\
  204.76 -+	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note\n\
  204.77 -+	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.\n\
  204.78 -+	call profile_fixup	# Call resolver.\n\
  204.79 -+	popl %edx		# Get register content back.\n\
  204.80 -+	popl %ecx\n\
  204.81 -+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
  204.82 -+	ret $8			# Jump to function address.\n\
  204.83 -+	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
  204.84 -+	.previous\n\
  204.85 - ");
  204.86 - #else
  204.87 --# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
  204.88 --	.text
  204.89 --	.globl _dl_runtime_resolve
  204.90 --	.globl _dl_runtime_profile
  204.91 --	.type _dl_runtime_resolve, @function
  204.92 --	.type _dl_runtime_profile, @function
  204.93 --	.align 16
  204.94 --_dl_runtime_resolve:
  204.95 --_dl_runtime_profile:
  204.96 --	pushl %eax		# Preserve registers otherwise clobbered.
  204.97 --	pushl %ecx
  204.98 --	pushl %edx
  204.99 --	movl 16(%esp), %edx	# Push the arguments for `fixup'
 204.100 --	movl 12(%esp), %eax
 204.101 --	pushl %edx
 204.102 --	pushl %eax
 204.103 --	call fixup		# Call resolver.
 204.104 --	popl %edx		# Pop the parameters
 204.105 --	popl %ecx
 204.106 --	popl %edx		# Get register content back.
 204.107 --	popl %ecx
 204.108 --	xchgl %eax, (%esp)	# Get %eax contents end store function address.
 204.109 --	ret $8			# Jump to function address.
 204.110 --	.size _dl_runtime_resolve, .-_dl_runtime_resolve
 204.111 --	.size _dl_runtime_profile, .-_dl_runtime_profile
 204.112 --	.previous
 204.113 -+# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\
 204.114 -+	.text\n\
 204.115 -+	.globl _dl_runtime_resolve\n\
 204.116 -+	.globl _dl_runtime_profile\n\
 204.117 -+	.type _dl_runtime_resolve, @function\n\
 204.118 -+	.type _dl_runtime_profile, @function\n\
 204.119 -+	.align 16\n\
 204.120 -+_dl_runtime_resolve:\n\
 204.121 -+_dl_runtime_profile:\n\
 204.122 -+	pushl %eax		# Preserve registers otherwise clobbered.\n\
 204.123 -+	pushl %ecx\n\
 204.124 -+	pushl %edx\n\
 204.125 -+	movl 16(%esp), %edx	# Push the arguments for `fixup'\n\
 204.126 -+	movl 12(%esp), %eax\n\
 204.127 -+	pushl %edx\n\
 204.128 -+	pushl %eax\n\
 204.129 -+	call fixup		# Call resolver.\n\
 204.130 -+	popl %edx		# Pop the parameters\n\
 204.131 -+	popl %ecx\n\
 204.132 -+	popl %edx		# Get register content back.\n\
 204.133 -+	popl %ecx\n\
 204.134 -+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
 204.135 -+	ret $8			# Jump to function address.\n\
 204.136 -+	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
 204.137 -+	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
 204.138 -+	.previous\n\
 204.139 - ");
 204.140 - #endif
 204.141 - 
 204.142 -@@ -197,10 +197,10 @@
 204.143 -    The C function `_dl_start' is the real entry point;
 204.144 -    its return value is the user program's entry point.  */
 204.145 - 
 204.146 --#define RTLD_START asm ("\
 204.147 --.text\n\
 204.148 --.globl _start\n\
 204.149 --.globl _dl_start_user\n\
 204.150 -+#define RTLD_START asm ("\n\
 204.151 -+	.text\n\
 204.152 -+	.globl _start\n\
 204.153 -+	.globl _dl_start_user\n\
 204.154 - _start:\n\
 204.155 - 	pushl %esp\n\
 204.156 - 	call _dl_start\n\
 204.157 -@@ -208,7 +208,7 @@
 204.158 - _dl_start_user:\n\
 204.159 - 	# Save the user entry point address in %edi.\n\
 204.160 - 	movl %eax, %edi\n\
 204.161 --	# Point %ebx at the GOT.
 204.162 -+	# Point %ebx at the GOT.\n\
 204.163 - 	call 0f\n\
 204.164 - 0:	popl %ebx\n\
 204.165 - 	addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx\n\
 204.166 -@@ -255,7 +255,7 @@
 204.167 - 	movl _dl_fini@GOT(%ebx), %edx\n\
 204.168 - 	# Jump to the user's entry point.\n\
 204.169 - 	jmp *%edi\n\
 204.170 --.previous\n\
 204.171 -+	.previous\n\
 204.172 - ");
 204.173 - 
 204.174 - /* Nonzero iff TYPE should not be allowed to resolve to one of
   205.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-errlist.patch	Tue Aug 14 19:32:22 2007 +0000
   205.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   205.3 @@ -1,48 +0,0 @@
   205.4 -Backport from cvs 
   205.5 -
   205.6 -Fixes:
   205.7 -
   205.8 -../sysdeps/unix/sysv/linux/errlist.c:41: weak declaration of `_old_sys_nerr' must precede definition
   205.9 -make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/stdio-common/errlist.os] Error 1
  205.10 -
  205.11 -as well as breakage on arches where ; is a comment char in asm
  205.12 -
  205.13 ---- glibc-2.1.3/sysdeps/unix/sysv/linux/errlist.c.old	2004-03-05 15:32:21.000000000 -0800
  205.14 -+++ glibc-2.1.3/sysdeps/unix/sysv/linux/errlist.c	2004-03-05 15:39:39.000000000 -0800
  205.15 -@@ -24,13 +24,13 @@
  205.16 - # define SYS_ERRLIST __new_sys_errlist
  205.17 - # define SYS_NERR __new_sys_nerr
  205.18 - 
  205.19 --asm (".data; .globl __old_sys_errlist;  __old_sys_errlist:");
  205.20 -+asm (".data\n\t.globl __old_sys_errlist\n\t __old_sys_errlist:");
  205.21 - #endif
  205.22 - 
  205.23 - #include <sysdeps/gnu/errlist.c>
  205.24 - 
  205.25 - #if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
  205.26 --asm (".type __old_sys_errlist,@object;.size __old_sys_errlist,"
  205.27 -+asm (".type __old_sys_errlist,@object\n\t.size __old_sys_errlist,"
  205.28 -      OLD_ERRLIST_SIZE_STR "*" PTR_SIZE_STR);
  205.29 - 
  205.30 - extern const char *const *__old_sys_errlist;
  205.31 -@@ -38,17 +38,16 @@
  205.32 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
  205.33 - 
  205.34 - strong_alias (__old_sys_nerr, _old_sys_nerr);
  205.35 --weak_alias (__old_sys_nerr, _old_sys_nerr)
  205.36 - symbol_version (__old_sys_nerr, _sys_nerr, GLIBC_2.0);
  205.37 - symbol_version (_old_sys_nerr, sys_nerr, GLIBC_2.0);
  205.38 --weak_alias (__old_sys_errlist, _old_sys_errlist);
  205.39 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
  205.40 - symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0);
  205.41 - symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0);
  205.42 - 
  205.43 --weak_alias (__new_sys_nerr, _new_sys_nerr)
  205.44 -+strong_alias (__new_sys_nerr, _new_sys_nerr)
  205.45 - default_symbol_version (__new_sys_nerr, _sys_nerr, GLIBC_2.1);
  205.46 - default_symbol_version (_new_sys_nerr, sys_nerr, GLIBC_2.1);
  205.47 --weak_alias (__new_sys_errlist, _new_sys_errlist)
  205.48 -+strong_alias (__new_sys_errlist, _new_sys_errlist)
  205.49 - default_symbol_version (__new_sys_errlist, _sys_errlist, GLIBC_2.1);
  205.50 - default_symbol_version (_new_sys_errlist, sys_errlist, GLIBC_2.1);
  205.51 - 
   206.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-longlong.patch	Tue Aug 14 19:32:22 2007 +0000
   206.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   206.3 @@ -1,774 +0,0 @@
   206.4 ---- glibc-2.1.3/stdlib/longlong.h.old	2004-03-05 14:49:14.000000000 -0800
   206.5 -+++ glibc-2.1.3/stdlib/longlong.h	2004-03-05 15:19:26.000000000 -0800
   206.6 -@@ -106,8 +106,8 @@
   206.7 - 
   206.8 - #if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
   206.9 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  206.10 --  __asm__ ("add %1,%4,%5
  206.11 --	addc %0,%2,%3"							\
  206.12 -+  __asm__ ("add %1,%4,%5\n"						\
  206.13 -+	"addc %0,%2,%3"							\
  206.14 - 	   : "=r" ((USItype)(sh)),					\
  206.15 - 	    "=&r" ((USItype)(sl))					\
  206.16 - 	   : "%r" ((USItype)(ah)),					\
  206.17 -@@ -115,8 +115,8 @@
  206.18 - 	     "%r" ((USItype)(al)),					\
  206.19 - 	     "rI" ((USItype)(bl)))
  206.20 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
  206.21 --  __asm__ ("sub %1,%4,%5
  206.22 --	subc %0,%2,%3"							\
  206.23 -+  __asm__ ("sub %1,%4,%5\n"						\
  206.24 -+	"subc %0,%2,%3"							\
  206.25 - 	   : "=r" ((USItype)(sh)),					\
  206.26 - 	     "=&r" ((USItype)(sl))					\
  206.27 - 	   : "r" ((USItype)(ah)),					\
  206.28 -@@ -173,8 +173,8 @@
  206.29 - 
  206.30 - #if defined (__arm__) && W_TYPE_SIZE == 32
  206.31 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  206.32 --  __asm__ ("adds	%1, %4, %5
  206.33 --	adc	%0, %2, %3"						\
  206.34 -+  __asm__ ("adds	%1, %4, %5\n"					\
  206.35 -+	"adc	%0, %2, %3"						\
  206.36 - 	   : "=r" ((USItype)(sh)),					\
  206.37 - 	     "=&r" ((USItype)(sl))					\
  206.38 - 	   : "%r" ((USItype)(ah)),					\
  206.39 -@@ -182,8 +182,8 @@
  206.40 - 	     "%r" ((USItype)(al)),					\
  206.41 - 	     "rI" ((USItype)(bl)))
  206.42 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
  206.43 --  __asm__ ("subs	%1, %4, %5
  206.44 --	sbc	%0, %2, %3"						\
  206.45 -+  __asm__ ("subs	%1, %4, %5\n"					\
  206.46 -+	"sbc	%0, %2, %3"						\
  206.47 - 	   : "=r" ((USItype)(sh)),					\
  206.48 - 	     "=&r" ((USItype)(sl))					\
  206.49 - 	   : "r" ((USItype)(ah)),					\
  206.50 -@@ -192,19 +192,19 @@
  206.51 - 	     "rI" ((USItype)(bl)))
  206.52 - #if 0
  206.53 - #define umul_ppmm(xh, xl, a, b) \
  206.54 --  __asm__ ("%@ Inlined umul_ppmm
  206.55 --	mov	%|r0, %2, lsr #16
  206.56 --	mov	%|r2, %3, lsr #16
  206.57 --	bic	%|r1, %2, %|r0, lsl #16
  206.58 --	bic	%|r2, %3, %|r2, lsl #16
  206.59 --	mul	%1, %|r1, %|r2
  206.60 --	mul	%|r2, %|r0, %|r2
  206.61 --	mul	%|r1, %0, %|r1
  206.62 --	mul	%0, %|r0, %0
  206.63 --	adds	%|r1, %|r2, %|r1
  206.64 --	addcs	%0, %0, #65536
  206.65 --	adds	%1, %1, %|r1, lsl #16
  206.66 --	adc	%0, %0, %|r1, lsr #16"					\
  206.67 -+  __asm__ ("%@ Inlined umul_ppmm\n"					\
  206.68 -+	"mov	%|r0, %2, lsr #16\n"					\
  206.69 -+	"mov	%|r2, %3, lsr #16\n"					\
  206.70 -+	"bic	%|r1, %2, %|r0, lsl #16\n"				\
  206.71 -+	"bic	%|r2, %3, %|r2, lsl #16\n"				\
  206.72 -+	"mul	%1, %|r1, %|r2\n"					\
  206.73 -+	"mul	%|r2, %|r0, %|r2\n"					\
  206.74 -+	"mul	%|r1, %0, %|r1\n"					\
  206.75 -+	"mul	%0, %|r0, %0\n"						\
  206.76 -+	"adds	%|r1, %|r2, %|r1\n"					\
  206.77 -+	"addcs	%0, %0, #65536\n"					\
  206.78 -+	"adds	%1, %1, %|r1, lsl #16\n"				\
  206.79 -+	"adc	%0, %0, %|r1, lsr #16"					\
  206.80 - 	   : "=&r" ((USItype)(xh)),					\
  206.81 - 	     "=r" ((USItype)(xl))					\
  206.82 - 	   : "r" ((USItype)(a)),					\
  206.83 -@@ -245,8 +245,8 @@
  206.84 - 
  206.85 - #if defined (__gmicro__) && W_TYPE_SIZE == 32
  206.86 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  206.87 --  __asm__ ("add.w %5,%1
  206.88 --	addx %3,%0"							\
  206.89 -+  __asm__ ("add.w %5,%1\n"						\
  206.90 -+	"addx %3,%0"							\
  206.91 - 	   : "=g" ((USItype)(sh)),					\
  206.92 - 	     "=&g" ((USItype)(sl))					\
  206.93 - 	   : "%0" ((USItype)(ah)),					\
  206.94 -@@ -254,8 +254,8 @@
  206.95 - 	     "%1" ((USItype)(al)),					\
  206.96 - 	     "g" ((USItype)(bl)))
  206.97 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
  206.98 --  __asm__ ("sub.w %5,%1
  206.99 --	subx %3,%0"							\
 206.100 -+  __asm__ ("sub.w %5,%1\n"						\
 206.101 -+	"subx %3,%0"							\
 206.102 - 	   : "=g" ((USItype)(sh)),					\
 206.103 - 	     "=&g" ((USItype)(sl))					\
 206.104 - 	   : "0" ((USItype)(ah)),					\
 206.105 -@@ -284,8 +284,8 @@
 206.106 - 
 206.107 - #if defined (__hppa) && W_TYPE_SIZE == 32
 206.108 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.109 --  __asm__ ("add %4,%5,%1
 206.110 --	addc %2,%3,%0"							\
 206.111 -+  __asm__ ("add %4,%5,%1\n"						\
 206.112 -+	"addc %2,%3,%0"							\
 206.113 - 	   : "=r" ((USItype)(sh)),					\
 206.114 - 	     "=&r" ((USItype)(sl))					\
 206.115 - 	   : "%rM" ((USItype)(ah)),					\
 206.116 -@@ -293,8 +293,8 @@
 206.117 - 	     "%rM" ((USItype)(al)),					\
 206.118 - 	     "rM" ((USItype)(bl)))
 206.119 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.120 --  __asm__ ("sub %4,%5,%1
 206.121 --	subb %2,%3,%0"							\
 206.122 -+  __asm__ ("sub %4,%5,%1\n"						\
 206.123 -+	"subb %2,%3,%0"							\
 206.124 - 	   : "=r" ((USItype)(sh)),					\
 206.125 - 	     "=&r" ((USItype)(sl))					\
 206.126 - 	   : "rM" ((USItype)(ah)),					\
 206.127 -@@ -332,22 +332,22 @@
 206.128 -   do {									\
 206.129 -     USItype __tmp;							\
 206.130 -     __asm__ (								\
 206.131 --       "ldi		1,%0
 206.132 --	extru,=		%1,15,16,%%r0		; Bits 31..16 zero?
 206.133 --	extru,tr	%1,15,16,%1		; No.  Shift down, skip add.
 206.134 --	ldo		16(%0),%0		; Yes.  Perform add.
 206.135 --	extru,=		%1,23,8,%%r0		; Bits 15..8 zero?
 206.136 --	extru,tr	%1,23,8,%1		; No.  Shift down, skip add.
 206.137 --	ldo		8(%0),%0		; Yes.  Perform add.
 206.138 --	extru,=		%1,27,4,%%r0		; Bits 7..4 zero?
 206.139 --	extru,tr	%1,27,4,%1		; No.  Shift down, skip add.
 206.140 --	ldo		4(%0),%0		; Yes.  Perform add.
 206.141 --	extru,=		%1,29,2,%%r0		; Bits 3..2 zero?
 206.142 --	extru,tr	%1,29,2,%1		; No.  Shift down, skip add.
 206.143 --	ldo		2(%0),%0		; Yes.  Perform add.
 206.144 --	extru		%1,30,1,%1		; Extract bit 1.
 206.145 --	sub		%0,%1,%0		; Subtract it.
 206.146 --	" : "=r" (count), "=r" (__tmp) : "1" (x));			\
 206.147 -+       "ldi		1,%0\n"						\
 206.148 -+	"extru,=	%1,15,16,%%r0		; Bits 31..16 zero?\n"			\
 206.149 -+	"extru,tr	%1,15,16,%1		; No.  Shift down, skip add.\n"		\
 206.150 -+	"ldo		16(%0),%0		; Yes.  Perform add.\n"			\
 206.151 -+	"extru,=	%1,23,8,%%r0		; Bits 15..8 zero?\n"			\
 206.152 -+	"extru,tr	%1,23,8,%1		; No.  Shift down, skip add.\n"		\
 206.153 -+	"ldo		8(%0),%0		; Yes.  Perform add.\n"			\
 206.154 -+	"extru,=	%1,27,4,%%r0		; Bits 7..4 zero?\n"			\
 206.155 -+	"extru,tr	%1,27,4,%1		; No.  Shift down, skip add.\n"		\
 206.156 -+	"ldo		4(%0),%0		; Yes.  Perform add.\n"			\
 206.157 -+	"extru,=	%1,29,2,%%r0		; Bits 3..2 zero?\n"			\
 206.158 -+	"extru,tr	%1,29,2,%1		; No.  Shift down, skip add.\n"		\
 206.159 -+	"ldo		2(%0),%0		; Yes.  Perform add.\n"			\
 206.160 -+	"extru		%1,30,1,%1		; Extract bit 1.\n"			\
 206.161 -+	"sub		%0,%1,%0		; Subtract it.\n"			\
 206.162 -+	: "=r" (count), "=r" (__tmp) : "1" (x));			\
 206.163 -   } while (0)
 206.164 - #endif /* hppa */
 206.165 - 
 206.166 -@@ -394,8 +394,8 @@
 206.167 - 
 206.168 - #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
 206.169 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.170 --  __asm__ ("addl %5,%1
 206.171 --	adcl %3,%0"							\
 206.172 -+  __asm__ ("addl %5,%1\n"						\
 206.173 -+	"adcl %3,%0"							\
 206.174 - 	   : "=r" ((USItype)(sh)),					\
 206.175 - 	     "=&r" ((USItype)(sl))					\
 206.176 - 	   : "%0" ((USItype)(ah)),					\
 206.177 -@@ -403,8 +403,8 @@
 206.178 - 	     "%1" ((USItype)(al)),					\
 206.179 - 	     "g" ((USItype)(bl)))
 206.180 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.181 --  __asm__ ("subl %5,%1
 206.182 --	sbbl %3,%0"							\
 206.183 -+  __asm__ ("subl %5,%1\n"						\
 206.184 -+	"sbbl %3,%0"							\
 206.185 - 	   : "=r" ((USItype)(sh)),					\
 206.186 - 	     "=&r" ((USItype)(sl))					\
 206.187 - 	   : "0" ((USItype)(ah)),					\
 206.188 -@@ -516,8 +516,8 @@
 206.189 - 
 206.190 - #if (defined (__mc68000__) || defined (__mc68020__) || defined (__NeXT__) || defined(mc68020)) && W_TYPE_SIZE == 32
 206.191 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.192 --  __asm__ ("add%.l %5,%1
 206.193 --	addx%.l %3,%0"							\
 206.194 -+  __asm__ ("add%.l %5,%1\n"						\
 206.195 -+	"addx%.l %3,%0"							\
 206.196 - 	   : "=d" ((USItype)(sh)),					\
 206.197 - 	     "=&d" ((USItype)(sl))					\
 206.198 - 	   : "%0" ((USItype)(ah)),					\
 206.199 -@@ -525,8 +525,8 @@
 206.200 - 	     "%1" ((USItype)(al)),					\
 206.201 - 	     "g" ((USItype)(bl)))
 206.202 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.203 --  __asm__ ("sub%.l %5,%1
 206.204 --	subx%.l %3,%0"							\
 206.205 -+  __asm__ ("sub%.l %5,%1\n"						\
 206.206 -+	"subx%.l %3,%0"							\
 206.207 - 	   : "=d" ((USItype)(sh)),					\
 206.208 - 	     "=&d" ((USItype)(sl))					\
 206.209 - 	   : "0" ((USItype)(ah)),					\
 206.210 -@@ -564,28 +564,28 @@
 206.211 - #else /* not mc68020 */
 206.212 - #define umul_ppmm(xh, xl, a, b) \
 206.213 -   do { USItype __umul_tmp1, __umul_tmp2;				\
 206.214 --	__asm__ ("| Inlined umul_ppmm
 206.215 --	move%.l	%5,%3
 206.216 --	move%.l	%2,%0
 206.217 --	move%.w	%3,%1
 206.218 --	swap	%3
 206.219 --	swap	%0
 206.220 --	mulu	%2,%1
 206.221 --	mulu	%3,%0
 206.222 --	mulu	%2,%3
 206.223 --	swap	%2
 206.224 --	mulu	%5,%2
 206.225 --	add%.l	%3,%2
 206.226 --	jcc	1f
 206.227 --	add%.l	%#0x10000,%0
 206.228 --1:	move%.l	%2,%3
 206.229 --	clr%.w	%2
 206.230 --	swap	%2
 206.231 --	swap	%3
 206.232 --	clr%.w	%3
 206.233 --	add%.l	%3,%1
 206.234 --	addx%.l	%2,%0
 206.235 --	| End inlined umul_ppmm"					\
 206.236 -+	__asm__ ("| Inlined umul_ppmm\n"				\
 206.237 -+	"move%.l	%5,%3\n"					\
 206.238 -+	"move%.l	%2,%0\n"					\
 206.239 -+	"move%.w	%3,%1\n"					\
 206.240 -+	"swap	%3\n"							\
 206.241 -+	"swap	%0\n"							\
 206.242 -+	"mulu	%2,%1\n"						\
 206.243 -+	"mulu	%3,%0\n"						\
 206.244 -+	"mulu	%2,%3\n"						\
 206.245 -+	"swap	%2\n"							\
 206.246 -+	"mulu	%5,%2\n"						\
 206.247 -+	"add%.l	%3,%2\n"						\
 206.248 -+	"jcc	1f\n"							\
 206.249 -+	"add%.l	%#0x10000,%0\n"						\
 206.250 -+"1:	move%.l	%2,%3\n"						\
 206.251 -+	"clr%.w	%2\n"							\
 206.252 -+	"swap	%2\n"							\
 206.253 -+	"swap	%3\n"							\
 206.254 -+	"clr%.w	%3\n"							\
 206.255 -+	"add%.l	%3,%1\n"						\
 206.256 -+	"addx%.l	%2,%0\n"					\
 206.257 -+	"| End inlined umul_ppmm"					\
 206.258 - 	      : "=&d" ((USItype)(xh)), "=&d" ((USItype)(xl)),		\
 206.259 - 		"=d" (__umul_tmp1), "=&d" (__umul_tmp2)			\
 206.260 - 	      : "%2" ((USItype)(a)), "d" ((USItype)(b)));		\
 206.261 -@@ -597,8 +597,8 @@
 206.262 - 
 206.263 - #if defined (__m88000__) && W_TYPE_SIZE == 32
 206.264 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.265 --  __asm__ ("addu.co %1,%r4,%r5
 206.266 --	addu.ci %0,%r2,%r3"						\
 206.267 -+  __asm__ ("addu.co %1,%r4,%r5\n"					\
 206.268 -+	"addu.ci %0,%r2,%r3"						\
 206.269 - 	   : "=r" ((USItype)(sh)),					\
 206.270 - 	     "=&r" ((USItype)(sl))					\
 206.271 - 	   : "%rJ" ((USItype)(ah)),					\
 206.272 -@@ -606,8 +606,8 @@
 206.273 - 	     "%rJ" ((USItype)(al)),					\
 206.274 - 	     "rJ" ((USItype)(bl)))
 206.275 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.276 --  __asm__ ("subu.co %1,%r4,%r5
 206.277 --	subu.ci %0,%r2,%r3"						\
 206.278 -+  __asm__ ("subu.co %1,%r4,%r5\n"					\
 206.279 -+	"subu.ci %0,%r2,%r3"						\
 206.280 - 	   : "=r" ((USItype)(sh)),					\
 206.281 - 	     "=&r" ((USItype)(sl))					\
 206.282 - 	   : "rJ" ((USItype)(ah)),					\
 206.283 -@@ -665,9 +665,9 @@
 206.284 - 	     "d" ((USItype)(v)))
 206.285 - #else
 206.286 - #define umul_ppmm(w1, w0, u, v) \
 206.287 --  __asm__ ("multu %2,%3
 206.288 --	mflo %0
 206.289 --	mfhi %1"							\
 206.290 -+  __asm__ ("multu %2,%3\n"						\
 206.291 -+	"mflo %0\n"							\
 206.292 -+	"mfhi %1"							\
 206.293 - 	   : "=d" ((USItype)(w0)),					\
 206.294 - 	     "=d" ((USItype)(w1))					\
 206.295 - 	   : "d" ((USItype)(u)),					\
 206.296 -@@ -687,9 +687,9 @@
 206.297 - 	     "d" ((UDItype)(v)))
 206.298 - #else
 206.299 - #define umul_ppmm(w1, w0, u, v) \
 206.300 --  __asm__ ("dmultu %2,%3
 206.301 --	mflo %0
 206.302 --	mfhi %1"							\
 206.303 -+  __asm__ ("dmultu %2,%3\n"						\
 206.304 -+	"mflo %0\n"							\
 206.305 -+	"mfhi %1"							\
 206.306 - 	   : "=d" ((UDItype)(w0)),					\
 206.307 - 	     "=d" ((UDItype)(w1))					\
 206.308 - 	   : "d" ((UDItype)(u)),					\
 206.309 -@@ -857,8 +857,8 @@
 206.310 - 
 206.311 - #if defined (__pyr__) && W_TYPE_SIZE == 32
 206.312 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.313 --  __asm__ ("addw	%5,%1
 206.314 --	addwc	%3,%0"							\
 206.315 -+  __asm__ ("addw	%5,%1\n"					\
 206.316 -+	"addwc	%3,%0"							\
 206.317 - 	   : "=r" ((USItype)(sh)),					\
 206.318 - 	     "=&r" ((USItype)(sl))					\
 206.319 - 	   : "%0" ((USItype)(ah)),					\
 206.320 -@@ -866,8 +866,8 @@
 206.321 - 	     "%1" ((USItype)(al)),					\
 206.322 - 	     "g" ((USItype)(bl)))
 206.323 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.324 --  __asm__ ("subw	%5,%1
 206.325 --	subwb	%3,%0"							\
 206.326 -+  __asm__ ("subw	%5,%1\n"					\
 206.327 -+	"subwb	%3,%0"							\
 206.328 - 	   : "=r" ((USItype)(sh)),					\
 206.329 - 	     "=&r" ((USItype)(sl))					\
 206.330 - 	   : "0" ((USItype)(ah)),					\
 206.331 -@@ -879,8 +879,8 @@
 206.332 -   ({union {UDItype __ll;						\
 206.333 - 	   struct {USItype __h, __l;} __i;				\
 206.334 - 	  } __xx;							\
 206.335 --  __asm__ ("movw %1,%R0
 206.336 --	uemul %2,%0"							\
 206.337 -+  __asm__ ("movw %1,%R0\n"						\
 206.338 -+	"uemul %2,%0"							\
 206.339 - 	   : "=&r" (__xx.__ll)						\
 206.340 - 	   : "g" ((USItype) (u)),					\
 206.341 - 	     "g" ((USItype)(v)));					\
 206.342 -@@ -889,8 +889,8 @@
 206.343 - 
 206.344 - #if defined (__ibm032__) /* RT/ROMP */  && W_TYPE_SIZE == 32
 206.345 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.346 --  __asm__ ("a %1,%5
 206.347 --	ae %0,%3"							\
 206.348 -+  __asm__ ("a %1,%5\n"							\
 206.349 -+	"ae %0,%3"							\
 206.350 - 	   : "=r" ((USItype)(sh)),					\
 206.351 - 	     "=&r" ((USItype)(sl))					\
 206.352 - 	   : "%0" ((USItype)(ah)),					\
 206.353 -@@ -898,8 +898,8 @@
 206.354 - 	     "%1" ((USItype)(al)),					\
 206.355 - 	     "r" ((USItype)(bl)))
 206.356 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.357 --  __asm__ ("s %1,%5
 206.358 --	se %0,%3"							\
 206.359 -+  __asm__ ("s %1,%5\n"							\
 206.360 -+	"se %0,%3"							\
 206.361 - 	   : "=r" ((USItype)(sh)),					\
 206.362 - 	     "=&r" ((USItype)(sl))					\
 206.363 - 	   : "0" ((USItype)(ah)),					\
 206.364 -@@ -910,26 +910,26 @@
 206.365 -   do {									\
 206.366 -     USItype __m0 = (m0), __m1 = (m1);					\
 206.367 -     __asm__ (								\
 206.368 --       "s	r2,r2
 206.369 --	mts	r10,%2
 206.370 --	m	r2,%3
 206.371 --	m	r2,%3
 206.372 --	m	r2,%3
 206.373 --	m	r2,%3
 206.374 --	m	r2,%3
 206.375 --	m	r2,%3
 206.376 --	m	r2,%3
 206.377 --	m	r2,%3
 206.378 --	m	r2,%3
 206.379 --	m	r2,%3
 206.380 --	m	r2,%3
 206.381 --	m	r2,%3
 206.382 --	m	r2,%3
 206.383 --	m	r2,%3
 206.384 --	m	r2,%3
 206.385 --	m	r2,%3
 206.386 --	cas	%0,r2,r0
 206.387 --	mfs	r10,%1"							\
 206.388 -+       "s	r2,r2\n"						\
 206.389 -+	"mts	r10,%2\n"						\
 206.390 -+	"m	r2,%3\n"						\
 206.391 -+	"m	r2,%3\n"						\
 206.392 -+	"m	r2,%3\n"						\
 206.393 -+	"m	r2,%3\n"						\
 206.394 -+	"m	r2,%3\n"						\
 206.395 -+	"m	r2,%3\n"						\
 206.396 -+	"m	r2,%3\n"						\
 206.397 -+	"m	r2,%3\n"						\
 206.398 -+	"m	r2,%3\n"						\
 206.399 -+	"m	r2,%3\n"						\
 206.400 -+	"m	r2,%3\n"						\
 206.401 -+	"m	r2,%3\n"						\
 206.402 -+	"m	r2,%3\n"						\
 206.403 -+	"m	r2,%3\n"						\
 206.404 -+	"m	r2,%3\n"						\
 206.405 -+	"m	r2,%3\n"						\
 206.406 -+	"cas	%0,r2,r0\n"						\
 206.407 -+	"mfs	r10,%1"							\
 206.408 - 	     : "=r" ((USItype)(ph)),					\
 206.409 - 	       "=r" ((USItype)(pl))					\
 206.410 - 	     : "%r" (__m0),						\
 206.411 -@@ -959,9 +959,9 @@
 206.412 - #if defined (__sh2__) && W_TYPE_SIZE == 32
 206.413 - #define umul_ppmm(w1, w0, u, v) \
 206.414 -   __asm__ (								\
 206.415 --       "dmulu.l	%2,%3
 206.416 --	sts	macl,%1
 206.417 --	sts	mach,%0"						\
 206.418 -+       "dmulu.l	%2,%3\n"						\
 206.419 -+	"sts	macl,%1\n"						\
 206.420 -+	"sts	mach,%0"						\
 206.421 - 	   : "=r" ((USItype)(w1)),					\
 206.422 - 	     "=r" ((USItype)(w0))					\
 206.423 - 	   : "r" ((USItype)(u)),					\
 206.424 -@@ -972,8 +972,8 @@
 206.425 - 
 206.426 - #if defined (__sparc__) && W_TYPE_SIZE == 32
 206.427 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.428 --  __asm__ ("addcc %r4,%5,%1
 206.429 --	addx %r2,%3,%0"							\
 206.430 -+  __asm__ ("addcc %r4,%5,%1\n"						\
 206.431 -+	"addx %r2,%3,%0"							\
 206.432 - 	   : "=r" ((USItype)(sh)),					\
 206.433 - 	     "=&r" ((USItype)(sl))					\
 206.434 - 	   : "%rJ" ((USItype)(ah)),					\
 206.435 -@@ -982,8 +982,8 @@
 206.436 - 	     "rI" ((USItype)(bl))					\
 206.437 - 	   __CLOBBER_CC)
 206.438 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.439 --  __asm__ ("subcc %r4,%5,%1
 206.440 --	subx %r2,%3,%0"							\
 206.441 -+  __asm__ ("subcc %r4,%5,%1\n"						\
 206.442 -+	"subx %r2,%3,%0"							\
 206.443 - 	   : "=r" ((USItype)(sh)),					\
 206.444 - 	     "=&r" ((USItype)(sl))					\
 206.445 - 	   : "rJ" ((USItype)(ah)),					\
 206.446 -@@ -1029,45 +1029,45 @@
 206.447 - 	     "r" ((USItype)(v)))
 206.448 - #define UMUL_TIME 5
 206.449 - #define udiv_qrnnd(q, r, n1, n0, d) \
 206.450 --  __asm__ ("! Inlined udiv_qrnnd
 206.451 --	wr	%%g0,%2,%%y	! Not a delayed write for sparclite
 206.452 --	tst	%%g0
 206.453 --	divscc	%3,%4,%%g1
 206.454 --	divscc	%%g1,%4,%%g1
 206.455 --	divscc	%%g1,%4,%%g1
 206.456 --	divscc	%%g1,%4,%%g1
 206.457 --	divscc	%%g1,%4,%%g1
 206.458 --	divscc	%%g1,%4,%%g1
 206.459 --	divscc	%%g1,%4,%%g1
 206.460 --	divscc	%%g1,%4,%%g1
 206.461 --	divscc	%%g1,%4,%%g1
 206.462 --	divscc	%%g1,%4,%%g1
 206.463 --	divscc	%%g1,%4,%%g1
 206.464 --	divscc	%%g1,%4,%%g1
 206.465 --	divscc	%%g1,%4,%%g1
 206.466 --	divscc	%%g1,%4,%%g1
 206.467 --	divscc	%%g1,%4,%%g1
 206.468 --	divscc	%%g1,%4,%%g1
 206.469 --	divscc	%%g1,%4,%%g1
 206.470 --	divscc	%%g1,%4,%%g1
 206.471 --	divscc	%%g1,%4,%%g1
 206.472 --	divscc	%%g1,%4,%%g1
 206.473 --	divscc	%%g1,%4,%%g1
 206.474 --	divscc	%%g1,%4,%%g1
 206.475 --	divscc	%%g1,%4,%%g1
 206.476 --	divscc	%%g1,%4,%%g1
 206.477 --	divscc	%%g1,%4,%%g1
 206.478 --	divscc	%%g1,%4,%%g1
 206.479 --	divscc	%%g1,%4,%%g1
 206.480 --	divscc	%%g1,%4,%%g1
 206.481 --	divscc	%%g1,%4,%%g1
 206.482 --	divscc	%%g1,%4,%%g1
 206.483 --	divscc	%%g1,%4,%%g1
 206.484 --	divscc	%%g1,%4,%0
 206.485 --	rd	%%y,%1
 206.486 --	bl,a 1f
 206.487 --	add	%1,%4,%1
 206.488 --1:	! End of inline udiv_qrnnd"					\
 206.489 -+  __asm__ ("! Inlined udiv_qrnnd\n"					\
 206.490 -+	"wr	%%g0,%2,%%y	! Not a delayed write for sparclite\n"	\
 206.491 -+	"tst	%%g0\n"							\
 206.492 -+	"divscc	%3,%4,%%g1\n"						\
 206.493 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.494 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.495 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.496 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.497 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.498 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.499 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.500 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.501 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.502 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.503 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.504 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.505 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.506 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.507 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.508 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.509 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.510 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.511 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.512 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.513 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.514 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.515 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.516 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.517 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.518 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.519 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.520 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.521 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.522 -+	"divscc	%%g1,%4,%%g1\n"						\
 206.523 -+	"divscc	%%g1,%4,%0\n"						\
 206.524 -+	"rd	%%y,%1\n"						\
 206.525 -+	"bl,a 1f\n"							\
 206.526 -+	"add	%1,%4,%1\n"						\
 206.527 -+"1:	! End of inline udiv_qrnnd"					\
 206.528 - 	   : "=r" ((USItype)(q)),					\
 206.529 - 	     "=r" ((USItype)(r))					\
 206.530 - 	   : "r" ((USItype)(n1)),					\
 206.531 -@@ -1087,46 +1087,46 @@
 206.532 - /* Default to sparc v7 versions of umul_ppmm and udiv_qrnnd.  */
 206.533 - #ifndef umul_ppmm
 206.534 - #define umul_ppmm(w1, w0, u, v) \
 206.535 --  __asm__ ("! Inlined umul_ppmm
 206.536 --	wr	%%g0,%2,%%y	! SPARC has 0-3 delay insn after a wr
 206.537 --	sra	%3,31,%%g2	! Don't move this insn
 206.538 --	and	%2,%%g2,%%g2	! Don't move this insn
 206.539 --	andcc	%%g0,0,%%g1	! Don't move this insn
 206.540 --	mulscc	%%g1,%3,%%g1
 206.541 --	mulscc	%%g1,%3,%%g1
 206.542 --	mulscc	%%g1,%3,%%g1
 206.543 --	mulscc	%%g1,%3,%%g1
 206.544 --	mulscc	%%g1,%3,%%g1
 206.545 --	mulscc	%%g1,%3,%%g1
 206.546 --	mulscc	%%g1,%3,%%g1
 206.547 --	mulscc	%%g1,%3,%%g1
 206.548 --	mulscc	%%g1,%3,%%g1
 206.549 --	mulscc	%%g1,%3,%%g1
 206.550 --	mulscc	%%g1,%3,%%g1
 206.551 --	mulscc	%%g1,%3,%%g1
 206.552 --	mulscc	%%g1,%3,%%g1
 206.553 --	mulscc	%%g1,%3,%%g1
 206.554 --	mulscc	%%g1,%3,%%g1
 206.555 --	mulscc	%%g1,%3,%%g1
 206.556 --	mulscc	%%g1,%3,%%g1
 206.557 --	mulscc	%%g1,%3,%%g1
 206.558 --	mulscc	%%g1,%3,%%g1
 206.559 --	mulscc	%%g1,%3,%%g1
 206.560 --	mulscc	%%g1,%3,%%g1
 206.561 --	mulscc	%%g1,%3,%%g1
 206.562 --	mulscc	%%g1,%3,%%g1
 206.563 --	mulscc	%%g1,%3,%%g1
 206.564 --	mulscc	%%g1,%3,%%g1
 206.565 --	mulscc	%%g1,%3,%%g1
 206.566 --	mulscc	%%g1,%3,%%g1
 206.567 --	mulscc	%%g1,%3,%%g1
 206.568 --	mulscc	%%g1,%3,%%g1
 206.569 --	mulscc	%%g1,%3,%%g1
 206.570 --	mulscc	%%g1,%3,%%g1
 206.571 --	mulscc	%%g1,%3,%%g1
 206.572 --	mulscc	%%g1,0,%%g1
 206.573 --	add	%%g1,%%g2,%0
 206.574 --	rd	%%y,%1"							\
 206.575 -+  __asm__ ("! Inlined umul_ppmm\n"					\
 206.576 -+	"wr	%%g0,%2,%%y	! SPARC has 0-3 delay insn after a wr\n" \
 206.577 -+	"sra	%3,31,%%g2	! Don't move this insn\n"		\
 206.578 -+	"and	%2,%%g2,%%g2	! Don't move this insn\n"		\
 206.579 -+	"andcc	%%g0,0,%%g1	! Don't move this insn\n"		\
 206.580 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.581 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.582 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.583 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.584 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.585 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.586 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.587 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.588 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.589 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.590 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.591 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.592 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.593 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.594 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.595 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.596 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.597 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.598 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.599 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.600 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.601 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.602 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.603 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.604 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.605 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.606 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.607 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.608 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.609 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.610 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.611 -+	"mulscc	%%g1,%3,%%g1\n"						\
 206.612 -+	"mulscc	%%g1,0,%%g1\n"						\
 206.613 -+	"add	%%g1,%%g2,%0\n"						\
 206.614 -+	"rd	%%y,%1"							\
 206.615 - 	   : "=r" ((USItype)(w1)),					\
 206.616 - 	     "=r" ((USItype)(w0))					\
 206.617 - 	   : "%rI" ((USItype)(u)),					\
 206.618 -@@ -1138,30 +1138,30 @@
 206.619 - /* It's quite necessary to add this much assembler for the sparc.
 206.620 -    The default udiv_qrnnd (in C) is more than 10 times slower!  */
 206.621 - #define udiv_qrnnd(q, r, n1, n0, d) \
 206.622 --  __asm__ ("! Inlined udiv_qrnnd
 206.623 --	mov	32,%%g1
 206.624 --	subcc	%1,%2,%%g0
 206.625 --1:	bcs	5f
 206.626 --	 addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb
 206.627 --	sub	%1,%2,%1	! this kills msb of n
 206.628 --	addx	%1,%1,%1	! so this can't give carry
 206.629 --	subcc	%%g1,1,%%g1
 206.630 --2:	bne	1b
 206.631 --	 subcc	%1,%2,%%g0
 206.632 --	bcs	3f
 206.633 --	 addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb
 206.634 --	b	3f
 206.635 --	 sub	%1,%2,%1	! this kills msb of n
 206.636 --4:	sub	%1,%2,%1
 206.637 --5:	addxcc	%1,%1,%1
 206.638 --	bcc	2b
 206.639 --	 subcc	%%g1,1,%%g1
 206.640 --! Got carry from n.  Subtract next step to cancel this carry.
 206.641 --	bne	4b
 206.642 --	 addcc	%0,%0,%0	! shift n1n0 and a 0-bit in lsb
 206.643 --	sub	%1,%2,%1
 206.644 --3:	xnor	%0,0,%0
 206.645 --	! End of inline udiv_qrnnd"					\
 206.646 -+  __asm__ ("! Inlined udiv_qrnnd\n"					\
 206.647 -+	"mov	32,%%g1\n"						\
 206.648 -+	"subcc	%1,%2,%%g0\n"						\
 206.649 -+"1:	bcs	5f\n"							\
 206.650 -+	"addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb\n"	\
 206.651 -+	"sub	%1,%2,%1	! this kills msb of n\n"		\
 206.652 -+	"addx	%1,%1,%1	! so this can't give carry\n"		\
 206.653 -+	"subcc	%%g1,1,%%g1\n"						\
 206.654 -+"2:	bne	1b\n"							\
 206.655 -+	"subcc	%1,%2,%%g0\n"						\
 206.656 -+	"bcs	3f\n"							\
 206.657 -+	"addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb\n"	\
 206.658 -+	"b	3f\n"							\
 206.659 -+	"sub	%1,%2,%1	! this kills msb of n\n"		\
 206.660 -+"4:	sub	%1,%2,%1\n"						\
 206.661 -+"5:	addxcc	%1,%1,%1\n"						\
 206.662 -+	"bcc	2b\n"							\
 206.663 -+	"subcc	%%g1,1,%%g1\n"						\
 206.664 -+"! Got carry from n.  Subtract next step to cancel this carry.\n"	\
 206.665 -+	"bne	4b\n"							\
 206.666 -+	"addcc	%0,%0,%0	! shift n1n0 and a 0-bit in lsb\n"	\
 206.667 -+	"sub	%1,%2,%1\n"						\
 206.668 -+"3:	xnor	%0,0,%0\n"						\
 206.669 -+	"! End of inline udiv_qrnnd"					\
 206.670 - 	   : "=&r" ((USItype)(q)),					\
 206.671 - 	     "=&r" ((USItype)(r))					\
 206.672 - 	   : "r" ((USItype)(d)),					\
 206.673 -@@ -1179,11 +1179,11 @@
 206.674 - #if (defined (__sparc_v9__) || (defined (__sparc__) && defined (__arch64__)) \
 206.675 -     || defined (__sparcv9)) && W_TYPE_SIZE == 64
 206.676 - #define add_ssaaaa(sh, sl, ah, al, bh, bl)				\
 206.677 --  __asm__ ("addcc %r4,%5,%1
 206.678 --  	    add %r2,%3,%0
 206.679 --  	    bcs,a,pn %%xcc, 1f
 206.680 --  	    add %0, 1, %0
 206.681 --  	    1:"								\
 206.682 -+  __asm__ ("addcc %r4,%5,%1\n"						\
 206.683 -+  	    "add %r2,%3,%0\n"						\
 206.684 -+  	    "bcs,a,pn %%xcc, 1f\n"					\
 206.685 -+  	    "add %0, 1, %0\n"						\
 206.686 -+  	    "1:"							\
 206.687 - 	   : "=r" ((UDItype)(sh)),				      	\
 206.688 - 	     "=&r" ((UDItype)(sl))				      	\
 206.689 - 	   : "r" ((UDItype)(ah)),				     	\
 206.690 -@@ -1193,11 +1193,11 @@
 206.691 - 	   : "cc")
 206.692 - 
 206.693 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) 				\
 206.694 --  __asm__ ("subcc %r4,%5,%1
 206.695 --  	    sub %r2,%3,%0
 206.696 --  	    bcs,a,pn %%xcc, 1f
 206.697 --  	    sub %0, 1, %0
 206.698 --  	    1:"								\
 206.699 -+  __asm__ ("subcc %r4,%5,%1\n"						\
 206.700 -+  	    "sub %r2,%3,%0\n"						\
 206.701 -+  	    "bcs,a,pn %%xcc, 1f\n"					\
 206.702 -+  	    "sub %0, 1, %0\n"						\
 206.703 -+  	    "1:"							\
 206.704 - 	   : "=r" ((UDItype)(sh)),				      	\
 206.705 - 	     "=&r" ((UDItype)(sl))				      	\
 206.706 - 	   : "r" ((UDItype)(ah)),				     	\
 206.707 -@@ -1210,27 +1210,27 @@
 206.708 -   do {									\
 206.709 - 	  UDItype tmp1, tmp2, tmp3, tmp4;				\
 206.710 - 	  __asm__ __volatile__ (					\
 206.711 --		   "srl %7,0,%3
 206.712 --		    mulx %3,%6,%1
 206.713 --		    srlx %6,32,%2
 206.714 --		    mulx %2,%3,%4
 206.715 --		    sllx %4,32,%5
 206.716 --		    srl %6,0,%3
 206.717 --		    sub %1,%5,%5
 206.718 --		    srlx %5,32,%5
 206.719 --		    addcc %4,%5,%4
 206.720 --		    srlx %7,32,%5
 206.721 --		    mulx %3,%5,%3
 206.722 --		    mulx %2,%5,%5
 206.723 --		    sethi %%hi(0x80000000),%2
 206.724 --		    addcc %4,%3,%4
 206.725 --		    srlx %4,32,%4
 206.726 --		    add %2,%2,%2
 206.727 --		    movcc %%xcc,%%g0,%2
 206.728 --		    addcc %5,%4,%5
 206.729 --		    sllx %3,32,%3
 206.730 --		    add %1,%3,%1
 206.731 --		    add %5,%2,%0"					\
 206.732 -+		   "srl %7,0,%3\n"					\
 206.733 -+		    "mulx %3,%6,%1\n"					\
 206.734 -+		    "srlx %6,32,%2\n"					\
 206.735 -+		    "mulx %2,%3,%4\n"					\
 206.736 -+		    "sllx %4,32,%5\n"					\
 206.737 -+		    "srl %6,0,%3\n"					\
 206.738 -+		    "sub %1,%5,%5\n"					\
 206.739 -+		    "srlx %5,32,%5\n"					\
 206.740 -+		    "addcc %4,%5,%4\n"					\
 206.741 -+		    "srlx %7,32,%5\n"					\
 206.742 -+		    "mulx %3,%5,%3\n"					\
 206.743 -+		    "mulx %2,%5,%5\n"					\
 206.744 -+		    "sethi %%hi(0x80000000),%2\n"			\
 206.745 -+		    "addcc %4,%3,%4\n"					\
 206.746 -+		    "srlx %4,32,%4\n"					\
 206.747 -+		    "add %2,%2,%2\n"					\
 206.748 -+		    "movcc %%xcc,%%g0,%2\n"				\
 206.749 -+		    "addcc %5,%4,%5\n"					\
 206.750 -+		    "sllx %3,32,%3\n"					\
 206.751 -+		    "add %1,%3,%1\n"					\
 206.752 -+		    "add %5,%2,%0"					\
 206.753 - 	   : "=r" ((UDItype)(wh)),					\
 206.754 - 	     "=&r" ((UDItype)(wl)),					\
 206.755 - 	     "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4)	\
 206.756 -@@ -1244,8 +1244,8 @@
 206.757 - 
 206.758 - #if defined (__vax__) && W_TYPE_SIZE == 32
 206.759 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 206.760 --  __asm__ ("addl2 %5,%1
 206.761 --	adwc %3,%0"							\
 206.762 -+  __asm__ ("addl2 %5,%1\n"						\
 206.763 -+	"adwc %3,%0"							\
 206.764 - 	   : "=g" ((USItype)(sh)),					\
 206.765 - 	     "=&g" ((USItype)(sl))					\
 206.766 - 	   : "%0" ((USItype)(ah)),					\
 206.767 -@@ -1253,8 +1253,8 @@
 206.768 - 	     "%1" ((USItype)(al)),					\
 206.769 - 	     "g" ((USItype)(bl)))
 206.770 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 206.771 --  __asm__ ("subl2 %5,%1
 206.772 --	sbwc %3,%0"							\
 206.773 -+  __asm__ ("subl2 %5,%1\n"						\
 206.774 -+	"sbwc %3,%0"							\
 206.775 - 	   : "=g" ((USItype)(sh)),					\
 206.776 - 	     "=&g" ((USItype)(sl))					\
 206.777 - 	   : "0" ((USItype)(ah)),					\
   207.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-sscanf.patch	Tue Aug 14 19:32:22 2007 +0000
   207.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   207.3 @@ -1,73 +0,0 @@
   207.4 -http://sources.redhat.com/ml/bug-glibc/2003-08/msg00087.html
   207.5 -
   207.6 -From: Gernot Hillier <gernot dot hillier at siemens dot com>
   207.7 -Organization: Siemens AG
   207.8 -To: Jeffrey Bedard <jefbed at e-list dot net>, bug-glibc at gnu dot org
   207.9 -Date: Mon, 18 Aug 2003 08:50:03 +0200
  207.10 -References: <3F3D0899.6020004@e-list.net>
  207.11 -Message-Id: <200308180850.03431.gernot.hillier@siemens.com>
  207.12 -Subject: Re: Build Fails with gcc 3.3.1
  207.13 -X-BeenThere: bug-glibc@gnu.org
  207.14 -
  207.15 -Hi!
  207.16 -
  207.17 -Am Freitag, 15. August 2003 18:21 schrieb Jeffrey Bedard:
  207.18 -> gcc sscanf.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes
  207.19 -[...]
  207.20 -> sscanf.c:31: warning: conflicting types for built-in function `sscanf'
  207.21 -> sscanf.c: In function `sscanf':
  207.22 -> sscanf.c:37: error: `va_start' used in function with fixed args
  207.23 -> .../stdio-common/_itoa.h: At top level:
  207.24 -> .../stdio-common/_itoa.h:40: warning: inlining failed in call to
  207.25 -> `_itoa_word' .../stdio-common/_itoa.h:76: warning: called from here
  207.26 -> make[2]: ***
  207.27 -> [/home/jefbed/src/packages/glibc-build/stdio-common/sscanf.o] Error 1
  207.28 -
  207.29 -You can find the fitting patch in the glibc CVS. You have to replace some 
  207.30 -function headers. 
  207.31 -
  207.32 -I created a patch for glibc-2.2.5 for the same reason. I don't know if it 
  207.33 -applies cleanly, but if not it should at least show you what to do...
  207.34 -
  207.35 --- 
  207.36 -Bye,
  207.37 -
  207.38 -Gernot Hillier
  207.39 -Siemens AG
  207.40 -
  207.41 -
  207.42 -
  207.43 -
  207.44 -Content-Disposition: attachment; filename="glibc-2.2.5-gcc-3.3.diff"
  207.45 -
  207.46 -diff -ur glibc-2.2.5.orig/stdio-common/sprintf.c glibc-2.2.5/stdio-common/sprintf.c
  207.47 ---- glibc-2.2.5.orig/stdio-common/sprintf.c	2001-07-06 06:55:41.000000000 +0200
  207.48 -+++ glibc-2.2.5/stdio-common/sprintf.c	2003-08-11 13:25:48.000000000 +0200
  207.49 -@@ -27,9 +27,7 @@
  207.50 - /* Write formatted output into S, according to the format string FORMAT.  */
  207.51 - /* VARARGS2 */
  207.52 - int
  207.53 --sprintf (s, format)
  207.54 --     char *s;
  207.55 --     const char *format;
  207.56 -+sprintf (char *s, const char *format,...)
  207.57 - {
  207.58 -   va_list arg;
  207.59 -   int done;
  207.60 -Only in glibc-2.2.5/stdio-common: sprintf.c.orig
  207.61 -Only in glibc-2.2.5/stdio-common: sprintf.c.rej
  207.62 -diff -ur glibc-2.2.5.orig/stdio-common/sscanf.c glibc-2.2.5/stdio-common/sscanf.c
  207.63 ---- glibc-2.2.5.orig/stdio-common/sscanf.c	2001-07-06 06:55:41.000000000 +0200
  207.64 -+++ glibc-2.2.5/stdio-common/sscanf.c	2003-08-11 13:27:58.000000000 +0200
  207.65 -@@ -27,9 +27,7 @@
  207.66 - /* Read formatted input from S, according to the format string FORMAT.  */
  207.67 - /* VARARGS2 */
  207.68 - int
  207.69 --sscanf (s, format)
  207.70 --     const char *s;
  207.71 --     const char *format;
  207.72 -+sscanf (const char *s, const char *format,...)
  207.73 - {
  207.74 -   va_list arg;
  207.75 -   int done;
  207.76 -
   208.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-syscall.patch	Tue Aug 14 19:32:22 2007 +0000
   208.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   208.3 @@ -1,29 +0,0 @@
   208.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/i386/sysdep.h.diff?r1=1.40&r2=1.41&cvsroot=glibc
   208.5 -See also http://gcc.gnu.org/PR12928, comment 6 (which says this is a glibc bug, not a gcc bug)
   208.6 -
   208.7 -Fixes
   208.8 -/tmp/ccdGVIRa.s: Assembler messages:
   208.9 -/tmp/ccdGVIRa.s:82: Error: non-constant expression in ".if" statement
  208.10 -/tmp/ccdGVIRa.s:83: Error: non-constant expression in ".if" statement
  208.11 -/tmp/ccdGVIRa.s:86: Error: non-constant expression in ".if" statement
  208.12 -make[2]: *** [/crosstool-0.28-pre4/build/i686-unknown-linux-gnu/gcc-3.3.3-glibc-2.1.3/build-glibc/signal/sigsuspend.o] Error 1
  208.13 -
  208.14 -===================================================================
  208.15 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/i386/sysdep.h,v
  208.16 -retrieving revision 1.40
  208.17 -retrieving revision 1.41
  208.18 -diff -u -r1.40 -r1.41
  208.19 ---- libc/sysdeps/unix/sysv/linux/i386/sysdep.h	2002/10/16 08:57:25	1.40
  208.20 -+++ libc/sysdeps/unix/sysv/linux/i386/sysdep.h	2002/11/28 05:21:48	1.41
  208.21 -@@ -347,9 +347,9 @@
  208.22 - #define ASMFMT_1(arg1) \
  208.23 - 	, "acdSD" (arg1)
  208.24 - #define ASMFMT_2(arg1, arg2) \
  208.25 --	, "adCD" (arg1), "c" (arg2)
  208.26 -+	, "adSD" (arg1), "c" (arg2)
  208.27 - #define ASMFMT_3(arg1, arg2, arg3) \
  208.28 --	, "aCD" (arg1), "c" (arg2), "d" (arg3)
  208.29 -+	, "aSD" (arg1), "c" (arg2), "d" (arg3)
  208.30 - #define ASMFMT_4(arg1, arg2, arg3, arg4) \
  208.31 - 	, "aD" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)
  208.32 - #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
   209.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-allow-gcc3-versioninfo.patch	Tue Aug 14 19:32:22 2007 +0000
   209.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   209.3 @@ -1,17 +0,0 @@
   209.4 -# gcc-3.x doesn't like run-on strings
   209.5 -# See also http://sources.redhat.com/ml/libc-alpha/2004-01/msg00032.html
   209.6 -
   209.7 ---- glibc-2.1.3/csu/Makefile.old	2004-03-04 12:18:52.000000000 -0800
   209.8 -+++ glibc-2.1.3/csu/Makefile	2004-03-04 12:19:35.000000000 -0800
   209.9 -@@ -188,8 +188,8 @@
  209.10 - 	 esac; \
  209.11 - 	 files="$(all-Banner-files)";				\
  209.12 - 	 if test -n "$$files"; then				\
  209.13 --	   echo "\"Available extensions:";			\
  209.14 --	   sed -e '/^#/d' -e 's/^[[:space:]]*/	/' $$files;	\
  209.15 --	   echo "\"";						\
  209.16 -+	   echo -e "\"Available extensions:\\\\n\"";		\
  209.17 -+  	   sed -e '/^#/d' -e 's/^[[:space:]]*/	/'		\
  209.18 -+	       -e 's/^\(.*\)$$/\"\1\\n\"/' $$files;		\
  209.19 - 	 fi) > $@T
  209.20 - 	mv -f $@T $@
   210.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   210.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   210.3 @@ -1,80 +0,0 @@
   210.4 -Fixes
   210.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   210.6 -...
   210.7 -when building glibc-2.1.3 on cygwin
   210.8 -
   210.9 -Idea from
  210.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  210.11 -backported to glibc-2.1.3.
  210.12 -Basically, make glibc use .oST as suffix for 'object static'
  210.13 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  210.14 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  210.15 -
  210.16 -
  210.17 ---- glibc-2.1.3/Makeconfig.old 	1999-11-29 11:19:20.000000000 -0800
  210.18 -+++ glibc-2.1.3/Makeconfig	2004-03-14 16:38:43.218750000 -0800
  210.19 -@@ -406,7 +406,7 @@
  210.20 - # run the linked programs.
  210.21 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  210.22 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  210.23 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  210.24 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  210.25 - # Choose the default search path for the dynamic linker based on
  210.26 - # where we will install libraries.
  210.27 - ifneq ($(libdir),$(slibdir))
  210.28 -@@ -586,7 +586,7 @@
  210.29 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  210.30 - # to pass different flags for each flavor.
  210.31 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  210.32 --all-object-suffixes := .o .os .op .og .ob .oS
  210.33 -+all-object-suffixes := .o .os .op .og .ob .oST
  210.34 - object-suffixes :=
  210.35 - CPPFLAGS-.o = $(pic-default)
  210.36 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  210.37 -@@ -636,14 +636,14 @@
  210.38 - 
  210.39 - ifeq (yes,$(build-shared))
  210.40 - # Build special library that contains the static-only routines for libc.
  210.41 --object-suffixes-for-libc += .oS
  210.42 -+object-suffixes-for-libc += .oST
  210.43 - 
  210.44 - # Must build the routines as PIC, though, because they can end up in (users')
  210.45 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  210.46 - # example, make that processor-specific.
  210.47 --CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
  210.48 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
  210.49 --libtype.oS = lib%_nonshared.a
  210.50 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  210.51 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC
  210.52 -+libtype.oST = lib%_nonshared.a
  210.53 - endif
  210.54 - 
  210.55 - 
  210.56 ---- glibc-2.1.3/Makerules.old 	1999-08-01 15:12:23.000000000 -0700
  210.57 -+++ glibc-2.1.3/Makerules	2004-03-14 16:39:07.906250000 -0800
  210.58 -@@ -386,7 +386,7 @@
  210.59 - static-only-routines =
  210.60 - endif
  210.61 - 
  210.62 --elide-routines.oS += $(filter-out $(static-only-routines),\
  210.63 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  210.64 - 				  $(routines) $(aux) $(sysdep_routines))
  210.65 - elide-routines.os += $(static-only-routines)
  210.66 - 
  210.67 -@@ -694,14 +694,14 @@
  210.68 - # of the files are taken by the linker.
  210.69 - install: $(inst_libdir)/libc.so
  210.70 - $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
  210.71 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  210.72 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  210.73 - 						  $(libprefix)$(libc-name)) \
  210.74 - 			$(+force)
  210.75 - 	(echo '/* GNU ld script';\
  210.76 - 	 echo '   Use the shared library, but some functions are only in';\
  210.77 - 	 echo '   the static library, so try that secondarily.  */';\
  210.78 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  210.79 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  210.80 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  210.81 - 	      ')' \
  210.82 - 	) > $@.new
  210.83 - 	mv -f $@.new $@
   211.1 --- a/patches/glibc/2.1.3/glibc-2.1.3-override.patch	Tue Aug 14 19:32:22 2007 +0000
   211.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   211.3 @@ -1,48 +0,0 @@
   211.4 -The error
   211.5 -
   211.6 -make[2]: *** [.../gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/share/zoneinfo/Africa/Algiers] Segmentation fault
   211.7 -make[2]: Leaving directory `.../gcc-3.3.3-glibc-2.1.3/glibc-2.1.3/timezone'
   211.8 -make[1]: *** [timezone/subdir_install] Error 2
   211.9 -
  211.10 -is caused by glibc trying to run something it just compiled.
  211.11 -A crude workaround for this was posted at
  211.12 -http://lists.scratchbox.org/pipermail/scratchbox-users/2004-February/000018.html
  211.13 -but the following patch lets you optionally override these programs at
  211.14 -make time by setting environment variables 
  211.15 -  localedef_FOR_BUILD rpcgen_FOR_BUILD zic_FOR_BUILD
  211.16 -and maybe a few others to point to versions of those programs
  211.17 -that can run on the build machine.
  211.18 -Thanks to http://groups.google.com/groups?selm=9012160052.AA23106%40kaos.ksr.com
  211.19 -for pointing out the idiom for inline $(ifdef ...) in GNU Make.
  211.20 -
  211.21 -Dan Kegel 2004-05-17
  211.22 -
  211.23 ---- glibc-2.1.3/Makeconfig.old	1999-11-29 11:19:20.000000000 -0800
  211.24 -+++ glibc-2.1.3/Makeconfig	2004-05-17 15:57:53.000000000 -0700
  211.25 -@@ -470,20 +470,24 @@
  211.26 - # The program binary is assumed to be $(word 2,$^).
  211.27 - built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
  211.28 - ifneq (yes,$(build-shared))
  211.29 --built-program-cmd = $(built-program-file)
  211.30 -+built-program-real = $(built-program-file)
  211.31 - else
  211.32 - comma = ,
  211.33 - sysdep-library-path = \
  211.34 - $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
  211.35 - 				       $(filter -Wl$(comma)-rpath-link=%,\
  211.36 - 						$(sysdep-LDFLAGS)))))
  211.37 --define built-program-cmd
  211.38 -+define built-program-real
  211.39 - $(elf-objpfx)$(rtld-installed-name) \
  211.40 - 	--library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
  211.41 - 	$(built-program-file)
  211.42 - endef
  211.43 - endif
  211.44 - 
  211.45 -+# If user set foo_FOR_BUILD, use that instead of actually running the program we just linked.
  211.46 -+built-program-override-name = $(notdir $(word 2,$^))_FOR_BUILD
  211.47 -+built-program-cmd = $(if $(findstring undefined,$(origin $(built-program-override-name))),$(built-program-real),$($(built-program-override-name)))
  211.48 -+
  211.49 - ifndef LD
  211.50 - LD := ld -X
  211.51 - endif
   212.1 --- a/patches/glibc/2.1.3/glibc-2.2.2-export_fp_hw.patch	Tue Aug 14 19:32:22 2007 +0000
   212.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   212.3 @@ -1,30 +0,0 @@
   212.4 -Fixes undefined symbol _fp_hw required by the ABI:
   212.5 -readelf -s /opt/crosstool/i686-pc-linux-gnu/i686-unknown-linux-gnu/gcc-3.4.3-glibc-2.2.2/i686-unknown-linux-gnu/lib/crt1.o | grep fp_hw
   212.6 -    29: 00000000     4 NOTYPE  GLOBAL DEFAULT  UND _fp_hw 
   212.7 -Rumored to fix problems with icc, which gets upset at any symbol
   212.8 -which is undefined, even if nobody cares about it.
   212.9 -
  212.10 -Revision 1.16, Thu Feb 22 19:57:34 2001 UTC (4 years, 2 months ago) by drepper
  212.11 -Branch: MAIN
  212.12 -CVS Tags: glibc-2_2_3
  212.13 -Changes since 1.15: +1 -1 lines
  212.14 -Diff to previous 1.15 (colored)
  212.15 -
  212.16 -(_fp_hw): Actually define label.
  212.17 -
  212.18 -===================================================================
  212.19 -RCS file: /cvs/glibc/libc/sysdeps/i386/elf/start.S,v
  212.20 -retrieving revision 1.15
  212.21 -retrieving revision 1.16
  212.22 -diff -u -r1.15 -r1.16
  212.23 ---- libc/sysdeps/i386/elf/start.S	2001/02/03 21:34:54	1.15
  212.24 -+++ libc/sysdeps/i386/elf/start.S	2001/02/22 19:57:34	1.16
  212.25 -@@ -85,7 +85,7 @@
  212.26 -    meaningless since we don't support machines < 80386.  */
  212.27 - 	.section .rodata
  212.28 - 	.globl _fp_hw
  212.29 --	.long 3
  212.30 -+_fp_hw:	.long 3
  212.31 - 	.size _fp_hw, 4
  212.32 - 
  212.33 - /* Define a symbol for the first piece of initialized data.  */
   213.1 --- a/patches/glibc/2.1.3/glibc-manual-stdin.texi-1.127.patch	Tue Aug 14 19:32:22 2007 +0000
   213.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   213.3 @@ -1,26 +0,0 @@
   213.4 -Fixes 
   213.5 -./stdio.texi:2491: First argument to cross-reference may not be empty.
   213.6 -./stdio.texi:2492: First argument to cross-reference may not be empty.
   213.7 -makeinfo: Removing output file `/home/dank/crosstool-0.25/build/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/glibc-2.1.3/manual/libc.info' due to errors; use --force to preserve.
   213.8 -make[2]: *** [libc.info] Error 2
   213.9 -
  213.10 -Patch from glib-2.2; Line numbers adjusted.
  213.11 -
  213.12 -===================================================================
  213.13 -RCS file: /cvs/glibc/libc/manual/stdio.texi,v
  213.14 -retrieving revision 1.126
  213.15 -retrieving revision 1.127
  213.16 -diff -u -r1.126 -r1.127
  213.17 ---- libc/manual/stdio.texi	2001/06/06 07:11:00
  213.18 -+++ libc/manual/stdio.texi	2001/07/31 18:57:00
  213.19 -@@ -2487,8 +2487,8 @@
  213.20 - If you are trying to read input that doesn't match a single, fixed
  213.21 - pattern, you may be better off using a tool such as Flex to generate a
  213.22 - lexical scanner, or Bison to generate a parser, rather than using
  213.23 --@code{scanf}.  For more information about these tools, see @ref{, , ,
  213.24 --flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , ,
  213.25 -+@code{scanf}.  For more information about these tools, see @ref{Top, , ,
  213.26 -+flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , ,
  213.27 - bison.info, The Bison Reference Manual}.
  213.28 - 
  213.29 - @node Input Conversion Syntax
   214.1 --- a/patches/glibc/2.1.3/glibc-rpcgen-cpp.patch	Tue Aug 14 19:32:22 2007 +0000
   214.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   214.3 @@ -1,14 +0,0 @@
   214.4 ---- glibc-2.1.3/sunrpc/Makefile.orig	2004-05-12 12:26:58.000000000 -0700
   214.5 -+++ glibc-2.1.3/sunrpc/Makefile	2004-05-12 12:29:05.000000000 -0700
   214.6 -@@ -123,9 +123,8 @@
   214.7 -   $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
   214.8 - 	$(+link)
   214.9 - 
  214.10 --# Tell rpcgen where to find the C preprocessor.
  214.11 --rpcgen-cmd = $(built-program-cmd) -Y `$(CC) -print-file-name=cpp | \
  214.12 --				      sed "s|/cpp$$||"`
  214.13 -+# Don't tell rpcgen where to find the C preprocessor -- let it find it itself.
  214.14 -+rpcgen-cmd = $(built-program-cmd) 
  214.15 - 
  214.16 - # Install the rpc data base file.
  214.17 - $(inst_sysconfdir)/rpc: etc.rpc $(+force)
   215.1 Binary file patches/glibc/2.1.3/rh62-00-glibc-2.1.3.patch has changed
   216.1 --- a/patches/glibc/2.1.3/rh62-01-glibc-2.1.3-security.patch	Tue Aug 14 19:32:22 2007 +0000
   216.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   216.3 @@ -1,32 +0,0 @@
   216.4 -2000-05-03  Ulrich Drepper  <drepper@redhat.com>
   216.5 -
   216.6 -	* sysdeps/generic/dl-environ.c (unsetenv): Follow change to the
   216.7 -	real unsetenv implementation from 1999-07-29 [PR libc/1714].
   216.8 -
   216.9 ---- glibc-2.1.3/sysdeps/generic/dl-environ.c.jj	Thu Jul 23 16:56:52 1998
  216.10 -+++ glibc-2.1.3/sysdeps/generic/dl-environ.c	Tue May  9 13:48:11 2000
  216.11 -@@ -1,5 +1,5 @@
  216.12 --/*Environment handling for dynamic loader.
  216.13 --   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
  216.14 -+/* Environment handling for dynamic loader.
  216.15 -+   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
  216.16 -    This file is part of the GNU C Library.
  216.17 - 
  216.18 -    The GNU C Library is free software; you can redistribute it and/or
  216.19 -@@ -55,7 +55,8 @@ unsetenv (const char *name)
  216.20 -   const size_t len = strlen (name);
  216.21 -   char **ep;
  216.22 - 
  216.23 --  for (ep = _environ; *ep != NULL; ++ep)
  216.24 -+  ep = _environ;
  216.25 -+  while (*ep != NULL)
  216.26 -     if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
  216.27 -       {
  216.28 - 	/* Found it.  Remove this pointer by moving later ones back.  */
  216.29 -@@ -66,4 +67,6 @@ unsetenv (const char *name)
  216.30 - 	while (*dp++);
  216.31 - 	/* Continue the loop in case NAME appears again.  */
  216.32 -       }
  216.33 -+    else
  216.34 -+      ++ep;
  216.35 - }
   217.1 --- a/patches/glibc/2.1.3/rh62-02-glibc-2.1.3-locale.patch	Tue Aug 14 19:32:22 2007 +0000
   217.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   217.3 @@ -1,76 +0,0 @@
   217.4 -2000-08-27  Ulrich Drepper  <drepper@redhat.com>
   217.5 -
   217.6 -	* intl/dcgettext.c (DCGETTEXT): Remove _nl_find_language in code
   217.7 -	to determine invalid locale name.
   217.8 -	* locale/findlocale.c (_nl_find_locale): Likewise.
   217.9 -
  217.10 -2000-08-21  Ulrich Drepper  <drepper@redhat.com>
  217.11 -
  217.12 -	* catgets/catgets.c (catopen): Filter out env_var values with / if
  217.13 -	necessary.
  217.14 -
  217.15 -	* locale/findlocale.c (_nl_find_locale): Move test for unusable
  217.16 -	locale name after all getenvs.
  217.17 -
  217.18 ---- glibc-2.1.3/catgets/catgets.c	2000/01/29 11:56:33	1.15
  217.19 -+++ glibc-2.1.3/catgets/catgets.c	2000/08/21 20:55:30	1.16
  217.20 -@@ -50,7 +50,8 @@
  217.21 - 	/* Use the LANG environment variable.  */
  217.22 - 	env_var = getenv ("LANG");
  217.23 - 
  217.24 --      if (env_var == NULL)
  217.25 -+      if (env_var == NULL || *env_var == '\0'
  217.26 -+	  || (__libc_enable_secure && strchr (env_var, '/') != NULL))
  217.27 - 	env_var = "C";
  217.28 - 
  217.29 -       env_var_len = strlen (env_var) + 1;
  217.30 ---- glibc-2.1.3/locale/findlocale.c	1999/11/08 23:45:13	1.10.2.1
  217.31 -+++ glibc-2.1.3/locale/findlocale.c	2000/08/21 21:02:42	1.10.2.2
  217.32 -@@ -1,4 +1,4 @@
  217.33 --/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
  217.34 -+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  217.35 -    This file is part of the GNU C Library.
  217.36 -    Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
  217.37 - 
  217.38 -@@ -54,11 +54,7 @@
  217.39 -   const char *revision;
  217.40 -   struct loaded_l10nfile *locale_file;
  217.41 - 
  217.42 --  if ((*name)[0] == '\0'
  217.43 --      /* In SUID binaries we must not allow people to access files
  217.44 --	 outside the dedicated locale directories.  */
  217.45 --      || (__libc_enable_secure
  217.46 --	  && memchr (*name, '/', _nl_find_language (*name) - *name) != NULL))
  217.47 -+  if ((*name)[0] == '\0')
  217.48 -     {
  217.49 -       /* The user decides which locale to use by setting environment
  217.50 - 	 variables.  */
  217.51 -@@ -67,9 +63,12 @@
  217.52 - 	*name = getenv (_nl_category_names[category]);
  217.53 -       if (*name == NULL || (*name)[0] == '\0')
  217.54 - 	*name = getenv ("LANG");
  217.55 --      if (*name == NULL || (*name)[0] == '\0')
  217.56 --	*name = (char *) _nl_C_name;
  217.57 -     }
  217.58 -+
  217.59 -+  if (*name == NULL || (*name)[0] == '\0'
  217.60 -+      || (__builtin_expect (__libc_enable_secure, 0)
  217.61 -+	  && strchr (*name, '/') != NULL))
  217.62 -+    *name = (char *) _nl_C_name;
  217.63 - 
  217.64 -   if (strcmp (*name, _nl_C_name) == 0 || strcmp (*name, _nl_POSIX_name) == 0)
  217.65 -     {
  217.66 ---- glibc-2.1.3/intl/dcgettext.c	Sun Aug 27 23:15:33 2000
  217.67 -+++ glibc-2.1.3/intl/dcgettext.c	Sun Aug 27 23:16:34 2000
  217.68 -@@ -371,10 +371,7 @@
  217.69 - 
  217.70 - 	  /* When this is a SUID binary we must not allow accessing files
  217.71 - 	     outside the dedicated directories.  */
  217.72 --	  if (ENABLE_SECURE
  217.73 --	      && (memchr (single_locale, '/',
  217.74 --			  _nl_find_language (single_locale) - single_locale)
  217.75 --		  != NULL))
  217.76 -+	  if (ENABLE_SECURE && strchr (single_locale, '/') != NULL)
  217.77 - 	    /* Ingore this entry.  */
  217.78 - 	    continue;
  217.79 - 	}
   218.1 --- a/patches/glibc/2.1.3/rh62-03-glibc-2.1.3-crypt.patch	Tue Aug 14 19:32:22 2007 +0000
   218.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   218.3 @@ -1,207 +0,0 @@
   218.4 ---- glibc-2.1.3/md5-crypt/md5-crypt.c	2000/03/04 00:47:30	1.1
   218.5 -+++ glibc-2.1.3/md5-crypt/md5-crypt.c	2000/08/24 06:10:02	1.8
   218.6 -@@ -1,5 +1,5 @@
   218.7 - /* One way encryption based on MD5 sum.
   218.8 --   Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
   218.9 -+   Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
  218.10 -    This file is part of the GNU C Library.
  218.11 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
  218.12 - 
  218.13 -@@ -18,6 +18,7 @@
  218.14 -    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  218.15 -    Boston, MA 02111-1307, USA.  */
  218.16 - 
  218.17 -+#include <assert.h>
  218.18 - #include <errno.h>
  218.19 - #include <stdlib.h>
  218.20 - #include <string.h>
  218.21 -@@ -37,9 +38,9 @@
  218.22 - 
  218.23 - 
  218.24 - /* Prototypes for local functions.  */
  218.25 --extern char *__md5_crypt_r __P ((const char *key, const char *salt,
  218.26 --				 char *buffer, int buflen));
  218.27 --extern char *__md5_crypt __P ((const char *key, const char *salt));
  218.28 -+extern char *__md5_crypt_r (const char *key, const char *salt,
  218.29 -+			    char *buffer, int buflen);
  218.30 -+extern char *__md5_crypt (const char *key, const char *salt);
  218.31 - 
  218.32 - 
  218.33 - /* This entry point is equivalent to the `crypt' function in Unix
  218.34 -@@ -51,13 +52,16 @@
  218.35 -      char *buffer;
  218.36 -      int buflen;
  218.37 - {
  218.38 --  unsigned char alt_result[16];
  218.39 -+  unsigned char alt_result[16]
  218.40 -+    __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
  218.41 -   struct md5_ctx ctx;
  218.42 -   struct md5_ctx alt_ctx;
  218.43 -   size_t salt_len;
  218.44 -   size_t key_len;
  218.45 -   size_t cnt;
  218.46 -   char *cp;
  218.47 -+  char *copied_key = NULL;
  218.48 -+  char *copied_salt = NULL;
  218.49 - 
  218.50 -   /* Find beginning of salt string.  The prefix should normally always
  218.51 -      be present.  Just in case it is not.  */
  218.52 -@@ -68,6 +72,26 @@
  218.53 -   salt_len = MIN (strcspn (salt, "$"), 8);
  218.54 -   key_len = strlen (key);
  218.55 - 
  218.56 -+  if ((key - (char *) 0) % __alignof__ (md5_uint32) != 0)
  218.57 -+    {
  218.58 -+      char *tmp = (char *) alloca (key_len + __alignof__ (md5_uint32));
  218.59 -+      key = copied_key =
  218.60 -+	memcpy (tmp + __alignof__ (md5_uint32)
  218.61 -+		- (tmp - (char *) 0) % __alignof__ (md5_uint32),
  218.62 -+		key, key_len);
  218.63 -+      assert ((key - (char *) 0) % __alignof__ (md5_uint32) == 0);
  218.64 -+    }
  218.65 -+
  218.66 -+  if ((salt - (char *) 0) % __alignof__ (md5_uint32) != 0)
  218.67 -+    {
  218.68 -+      char *tmp = (char *) alloca (salt_len + __alignof__ (md5_uint32));
  218.69 -+      salt = copied_salt =
  218.70 -+	memcpy (tmp + __alignof__ (md5_uint32)
  218.71 -+		- (tmp - (char *) 0) % __alignof__ (md5_uint32),
  218.72 -+		salt, salt_len);
  218.73 -+      assert ((salt - (char *) 0) % __alignof__ (md5_uint32) == 0);
  218.74 -+    }
  218.75 -+
  218.76 -   /* Prepare for the real work.  */
  218.77 -   __md5_init_ctx (&ctx);
  218.78 - 
  218.79 -@@ -195,21 +219,30 @@
  218.80 - 
  218.81 -   /* Clear the buffer for the intermediate result so that people
  218.82 -      attaching to processes or reading core dumps cannot get any
  218.83 --     information.  */
  218.84 --  memset (alt_result, '\0', sizeof (alt_result));
  218.85 -+     information.  We do it in this way to clear correct_words[]
  218.86 -+     inside the MD5 implementation as well.  */
  218.87 -+  __md5_init_ctx (&ctx);
  218.88 -+  __md5_finish_ctx (&ctx, alt_result);
  218.89 -+  memset (&ctx, '\0', sizeof (ctx));
  218.90 -+  memset (&alt_ctx, '\0', sizeof (alt_ctx));
  218.91 -+  if (copied_key != NULL)
  218.92 -+    memset (copied_key, '\0', key_len);
  218.93 -+  if (copied_salt != NULL)
  218.94 -+    memset (copied_salt, '\0', salt_len);
  218.95 - 
  218.96 -   return buffer;
  218.97 - }
  218.98 - 
  218.99 - 
 218.100 -+static char *buffer;
 218.101 -+
 218.102 - char *
 218.103 - __md5_crypt (const char *key, const char *salt)
 218.104 - {
 218.105 -   /* We don't want to have an arbitrary limit in the size of the
 218.106 -      password.  We can compute the size of the result in advance and
 218.107 -      so we can prepare the buffer we pass to `md5_crypt_r'.  */
 218.108 --  static char *buffer = NULL;
 218.109 --  static int buflen = 0;
 218.110 -+  static int buflen;
 218.111 -   int needed = 3 + strlen (salt) + 1 + 26 + 1;
 218.112 - 
 218.113 -   if (buflen < needed)
 218.114 -@@ -220,4 +253,12 @@
 218.115 -     }
 218.116 - 
 218.117 -   return __md5_crypt_r (key, salt, buffer, buflen);
 218.118 -+}
 218.119 -+
 218.120 -+
 218.121 -+static void
 218.122 -+__attribute__ ((__destructor__))
 218.123 -+free_mem (void)
 218.124 -+{
 218.125 -+  free (buffer);
 218.126 - }
 218.127 ---- glibc-2.1.3/md5-crypt/md5.c	2000/03/04 00:47:30	1.1
 218.128 -+++ glibc-2.1.3/md5-crypt/md5.c	2000/07/04 18:22:44	1.2
 218.129 -@@ -1,6 +1,6 @@
 218.130 --/* md5.c - Functions to compute MD5 message digest of files or memory blocks
 218.131 -+/* Functions to compute MD5 message digest of files or memory blocks.
 218.132 -    according to the definition of MD5 in RFC 1321 from April 1992.
 218.133 --   Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
 218.134 -+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
 218.135 -    This file is part of the GNU C Library.
 218.136 - 
 218.137 -    The GNU C Library is free software; you can redistribute it and/or
 218.138 -@@ -217,6 +217,8 @@
 218.139 -      size_t len;
 218.140 -      struct md5_ctx *ctx;
 218.141 - {
 218.142 -+  //const void aligned_buffer = buffer;
 218.143 -+
 218.144 -   /* When we already have some bits in our internal buffer concatenate
 218.145 -      both inputs first.  */
 218.146 -   if (ctx->buflen != 0)
 218.147 -@@ -224,16 +226,20 @@
 218.148 -       size_t left_over = ctx->buflen;
 218.149 -       size_t add = 128 - left_over > len ? len : 128 - left_over;
 218.150 - 
 218.151 -+      /* Only put full words in the buffer.  */
 218.152 -+      add -= add % __alignof__ (md5_uint32);
 218.153 -+
 218.154 -       memcpy (&ctx->buffer[left_over], buffer, add);
 218.155 -       ctx->buflen += add;
 218.156 - 
 218.157 --      if (left_over + add > 64)
 218.158 -+      if (ctx->buflen > 64)
 218.159 - 	{
 218.160 --	  md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
 218.161 -+	  md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
 218.162 -+
 218.163 -+	  ctx->buflen &= 63;
 218.164 - 	  /* The regions in the following copy operation cannot overlap.  */
 218.165 - 	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
 218.166 --		  (left_over + add) & 63);
 218.167 --	  ctx->buflen = (left_over + add) & 63;
 218.168 -+		  ctx->buflen);
 218.169 - 	}
 218.170 - 
 218.171 -       buffer = (const char *) buffer + add;
 218.172 -@@ -251,8 +257,17 @@
 218.173 -   /* Move remaining bytes in internal buffer.  */
 218.174 -   if (len > 0)
 218.175 -     {
 218.176 --      memcpy (ctx->buffer, buffer, len);
 218.177 --      ctx->buflen = len;
 218.178 -+      size_t left_over = ctx->buflen;
 218.179 -+
 218.180 -+      memcpy (&ctx->buffer[left_over], buffer, len);
 218.181 -+      left_over += len;
 218.182 -+      if (left_over >= 64)
 218.183 -+	{
 218.184 -+	  md5_process_block (ctx->buffer, 64, ctx);
 218.185 -+	  left_over -= 64;
 218.186 -+	  memcpy (ctx->buffer, &ctx->buffer[64], left_over);
 218.187 -+	}
 218.188 -+      ctx->buflen = left_over;
 218.189 -     }
 218.190 - }
 218.191 - 
 218.192 ---- glibc-2.1.3/md5-crypt/md5.h	2000/03/04 00:47:30	1.1
 218.193 -+++ glibc-2.1.3/md5-crypt/md5.h	2000/07/04 18:22:44	1.2
 218.194 -@@ -1,6 +1,6 @@
 218.195 - /* Declaration of functions and data types used for MD5 sum computing
 218.196 -    library functions.
 218.197 --   Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
 218.198 -+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
 218.199 -    This file is part of the GNU C Library.
 218.200 - 
 218.201 -    The GNU C Library is free software; you can redistribute it and/or
 218.202 -@@ -87,7 +87,7 @@
 218.203 - 
 218.204 -   md5_uint32 total[2];
 218.205 -   md5_uint32 buflen;
 218.206 --  char buffer[128];
 218.207 -+  char buffer[128] __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
 218.208 - };
 218.209 - 
 218.210 - /*
   219.1 --- a/patches/glibc/2.1.3/rh62-04-glibc-2.1.3-tzfile.patch	Tue Aug 14 19:32:22 2007 +0000
   219.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   219.3 @@ -1,22 +0,0 @@
   219.4 -2000-08-09  Jakub Jelinek  <jakub@redhat.com>
   219.5 -
   219.6 -	* time/tzfile.c (__tzfile_compute): __tzstring zones
   219.7 -	from zone_names.
   219.8 -
   219.9 ---- glibc-2.1.3/time/tzfile.c.jj	Fri May  7 16:41:44 1999
  219.10 -+++ glibc-2.1.3/time/tzfile.c	Fri Aug 25 09:55:20 2000
  219.11 -@@ -1,4 +1,4 @@
  219.12 --/* Copyright (C) 1991,92,93,95,96,97,98,99 Free Software Foundation, Inc.
  219.13 -+/* Copyright (C) 1991,92,93,95,96,97,98,99,2000 Free Software Foundation, Inc.
  219.14 -    This file is part of the GNU C Library.
  219.15 - 
  219.16 -    The GNU C Library is free software; you can redistribute it and/or
  219.17 -@@ -498,7 +498,7 @@ __tzfile_compute (time_t timer, int use_
  219.18 - 	/* There is no daylight saving time.  */
  219.19 - 	__tzname[1] = __tzname[0];
  219.20 -       tp->tm_isdst = info->isdst;
  219.21 --      tp->tm_zone = &zone_names[info->idx];
  219.22 -+      tp->tm_zone = __tzstring (&zone_names[info->idx]);
  219.23 -       tp->tm_gmtoff = info->offset;
  219.24 -     }
  219.25 - 
   220.1 --- a/patches/glibc/2.1.3/rh62-06-glibc-2.1.3-preload.patch	Tue Aug 14 19:32:22 2007 +0000
   220.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   220.3 @@ -1,86 +0,0 @@
   220.4 -2001-01-08  Ulrich Drepper  <drepper@redhat.com>
   220.5 -
   220.6 -	* elf/rtld.c (process_envvars): Place output files for profiling
   220.7 -	in SUID binaries in /var/profile.
   220.8 -
   220.9 -	* elf/dl-load.c (_dl_map_object): Don't look in cache for
  220.10 -	preloading in SUID binaries.
  220.11 -
  220.12 -	* elf/dl-profile.c (_dl_start_profile): Open the output file with
  220.13 -	O_NOFOLLOW if possible.
  220.14 -
  220.15 -	* sysdeps/generic/segfault.c (install_handler): Check output file
  220.16 -	name with access().
  220.17 -
  220.18 ---- libc/elf/rtld.c	2000/03/15 05:42:01	1.148.2.7
  220.19 -+++ libc/elf/rtld.c	2001/01/10 07:45:19
  220.20 -@@ -1273,7 +1273,7 @@
  220.21 -   char *debug_output = NULL;
  220.22 - 
  220.23 -   /* This is the default place for profiling data file.  */
  220.24 --  _dl_profile_output = "/var/tmp";
  220.25 -+  _dl_profile_output = __libc_enable_secure ? "/var/profile" : "/var/tmp";
  220.26 - 
  220.27 -   while ((envline = _dl_next_ld_env_entry (&runp)) != NULL)
  220.28 -     {
  220.29 ---- libc/elf/dl-load.c	1999/11/20 02:26:38	1.103.2.5
  220.30 -+++ libc/elf/dl-load.c	2001/01/10 07:45:20
  220.31 -@@ -1338,7 +1338,7 @@
  220.32 -       if (fd == -1 && env_path_list != NULL)
  220.33 - 	fd = open_path (name, namelen, preloaded, env_path_list, &realname);
  220.34 - 
  220.35 --      if (fd == -1)
  220.36 -+      if (fd == -1 && (! preloaded || ! __libc_enable_secure))
  220.37 - 	{
  220.38 - 	  /* Check the list of libraries in the file /etc/ld.so.cache,
  220.39 - 	     for compatibility with Linux's ldconfig program.  */
  220.40 ---- libc/elf/dl-profile.c	1998/06/07 13:35:48	1.14
  220.41 -+++ libc/elf/dl-profile.c	2001/01/10 07:45:21
  220.42 -@@ -263,7 +263,12 @@
  220.43 -   *cp++ = '/';
  220.44 -   __stpcpy (__stpcpy (cp, _dl_profile), ".profile");
  220.45 - 
  220.46 --  fd = __open (filename, O_RDWR | O_CREAT, 0666);
  220.47 -+#ifdef O_NOFOLLOW
  220.48 -+# define EXTRA_FLAGS | O_NOFOLLOW
  220.49 -+#else
  220.50 -+# define EXTRA_FLAGS
  220.51 -+#endif
  220.52 -+  fd = __open (filename, O_RDWR | O_CREAT EXTRA_FLAGS, 0666);
  220.53 -   if (fd == -1)
  220.54 -     {
  220.55 -       /* We cannot write the profiling data so don't do anything.  */
  220.56 ---- libc/sysdeps/generic/segfault.c	2000/03/21 04:53:40	1.10.2.2
  220.57 -+++ libc/sysdeps/generic/segfault.c	2001/01/10 07:45:22
  220.58 -@@ -236,6 +236,7 @@
  220.59 - 
  220.60 -   /* Preserve the output file name if there is any given.  */
  220.61 -   name = getenv ("SEGFAULT_OUTPUT_NAME");
  220.62 --  if (name != NULL && name[0] != '\0')
  220.63 -+  if (name != NULL && name[0] != '\0'
  220.64 -+      && (!__libc_enable_secure || access (name, R_OK | W_OK) == 0))
  220.65 -     fname = __strdup (name);
  220.66 - }
  220.67 -
  220.68 ---- libc/sysdeps/unix/sysv/linux/i386/dl-librecon.h.jj	Wed Feb 24 23:01:58 1999
  220.69 -+++ libc/sysdeps/unix/sysv/linux/i386/dl-librecon.h	Mon Jan 15 04:30:57 2001
  220.70 -@@ -49,13 +49,17 @@
  220.71 - /* Recognizing extra environment variables.  */
  220.72 - #define EXTRA_LD_ENVVARS \
  220.73 -   case 15:								      \
  220.74 --    if (memcmp (&envline[3], "LIBRARY_VERSION", 15) == 0)		      \
  220.75 -+    if (!__libc_enable_secure						      \
  220.76 -+	&& memcmp (&envline[3], "LIBRARY_VERSION", 15) == 0)		      \
  220.77 -       {									      \
  220.78 - 	_dl_correct_cache_id = envline[19] == '5' ? 2 : 3;		      \
  220.79 - 	break;								      \
  220.80 -       }
  220.81 - 
  220.82 - /* Extra unsecure variables.  */
  220.83 --#define EXTRA_UNSECURE_ENVVARS "LD_AOUT_LIBRARY_PATH", "LD_AOUT_PRELOAD"
  220.84 -+#define EXTRA_UNSECURE_ENVVARS	\
  220.85 -+  "LD_AOUT_LIBRARY_PATH",	\
  220.86 -+  "LD_AOUT_PRELOAD",		\
  220.87 -+  "LD_LIBRARY_VERSION"
  220.88 - 
  220.89 - #endif /* dl-librecon.h */
   221.1 --- a/patches/glibc/2.1.3/rh62-07-glibc-2.1.3-alpha.patch	Tue Aug 14 19:32:22 2007 +0000
   221.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   221.3 @@ -1,124 +0,0 @@
   221.4 -2000-03-15  Cristian Gafton  <gafton@redhat.com>
   221.5 -
   221.6 -	* db2/mutex/alpha.gcc (TSL_SET): Backport from db3.
   221.7 -	* sysdeps/alpha/Makefile (CPPFLAGS): Define for db2 directory.
   221.8 -	* db2/mutex/mutex.c: Include alpha.gcc ifdef HAVE_ASSEM_ALPHA_GCC.
   221.9 -
  221.10 -2000-03-14  Ulrich Drepper  <drepper@redhat.com>
  221.11 -
  221.12 -	* sysdeps/unix/sysv/linux/alpha/ioperm.c (platform): Add entry for
  221.13 -	Nautilus.  Patch by Soohoon Lee <soohoon.lee@alpha-processor.com>.
  221.14 -
  221.15 ---- glibc-2.1.3-15/db2/mutex/alpha.gcc	Wed Aug 27 15:32:54 1997
  221.16 -+++ glibc-2.1.3-16/db2/mutex/alpha.gcc	Wed Mar 15 16:50:45 2000
  221.17 -@@ -1,52 +1,24 @@
  221.18 - /*
  221.19 -- * @(#)alpha.gcc	10.1 (Sleepycat) 4/12/97
  221.20 -- *
  221.21 -- * The code appearing below is taken from Richard L. Sites, ed.  "Alpha
  221.22 -- * Architecture Reference Manual", Digital Press, 1992, page 5-7 and 5-8.
  221.23 -- * There are 2 modifications:
  221.24 -- *
  221.25 -- * 1. The jump from blbs __r1,30f to !__r1, which is dictated by the way the
  221.26 -- * TSL_SET macro is used.  The code suggested in Sites includes the main loop
  221.27 -- * of the spin lock, whereas in this code the rest the loop is specified in C.
  221.28 -- * The generated code might be suboptimal if the compiler generates a forward
  221.29 -- * branch for the usual case in which the mutex is uncontested.
  221.30 -- *
  221.31 -- * 2. At label 20, Sites suggests including code for testing for an excessive
  221.32 -- * number of _processor_ lock conflicts.  (The seq_c instruction stores its
  221.33 -- * first argument provided that no other processor has written to a byte range
  221.34 -- * including its memory-location argument.)  Absent such checking the code
  221.35 -- * below could conceivably stall silently on a multiprocessor alpha, depending
  221.36 -- * on how often processor/processor conflicts occur in a particular byte range.
  221.37 -- *
  221.38 -- * Note that the mb ("memory-barrier") instruction in TSL_UNSET is critical to
  221.39 -- * correct operation in a multiprocessor alpha (as is, of course, the mb in
  221.40 -- * the TSL_SET macro).  Without the mb, changes to shared memory that occurred
  221.41 -- * inside the critical section (before the TSL_UNSET) might reach shared memory
  221.42 -- * _after_ the change of tsl to 0, thereby permitting another processor to see
  221.43 -- * an inconsistent view of the data protected by the mutex.
  221.44 -+ * @(#)alpha.gcc	11.1 (Sleepycat) 8/30/99
  221.45 -  *
  221.46 -  * For gcc/alpha, 0 is clear, 1 is set.
  221.47 -  */
  221.48 --#define TSL_SET(tsl) ({							\
  221.49 -+#ifdef __GNUC__
  221.50 -+#define	TSL_SET(tsl) ({							\
  221.51 - 	register tsl_t *__l = (tsl);					\
  221.52 --	register tsl_t __r1, __r2;					\
  221.53 --	__asm__ volatile("						\n\
  221.54 --	   10: ldq_l %0,(%2)						\n\
  221.55 --	       blbs  %0,30f						\n\
  221.56 --	       or    %0,1,%1						\n\
  221.57 --	       stq_c %1,(%2)						\n\
  221.58 --	       beq   %1,20f						\n\
  221.59 --	       mb							\n\
  221.60 --	       br    30f						\n\
  221.61 --	   20: br    10b						\n\
  221.62 --	   30: "							\
  221.63 --	  : "=&r" (__r1), "=&r" (__r2)					\
  221.64 --	  : "r" (__l));							\
  221.65 --	!__r1;								\
  221.66 -+	int __r;							\
  221.67 -+	asm volatile(							\
  221.68 -+		"1:	ldl_l	%0,%1\n"				\
  221.69 -+		"	blbs	%0,2f\n"				\
  221.70 -+		"	mov	1,%0\n"					\
  221.71 -+		"	stl_c	%0,%1\n"				\
  221.72 -+		"	bne	%0,1b\n"				\
  221.73 -+		"	mb\n"						\
  221.74 -+		"2:"							\
  221.75 -+		: "=&r"(__r), "=m"(*__l) : "m"(*__l) : "memory");	\
  221.76 -+	__r;								\
  221.77 - })
  221.78 -+#endif
  221.79 - 
  221.80 --#define TSL_UNSET(tsl) ({						\
  221.81 --	register tsl_t *__l = (tsl);					\
  221.82 --	__asm__ volatile("mb; stq $31,(%0);" : : "r" (__l));		\
  221.83 --})
  221.84 -+#define	TSL_UNSET(tsl)	(*(tsl) = 0)
  221.85 - #define	TSL_INIT(tsl)	TSL_UNSET(tsl)
  221.86 ---- glibc-2.1.3-15/db2/mutex/mutex.c	Wed Jun 30 11:51:07 1999
  221.87 -+++ glibc-2.1.3-16/db2/mutex/mutex.c	Wed Mar 15 16:50:45 2000
  221.88 -@@ -86,6 +86,10 @@ static const char sccsid[] = "@(#)mutex.
  221.89 - #include "sparc.gcc"
  221.90 - #endif
  221.91 - 
  221.92 -+#ifdef HAVE_ASSEM_ALPHA_GCC
  221.93 -+#include "alpha.gcc"
  221.94 -+#endif
  221.95 -+
  221.96 - #ifdef HAVE_ASSEM_UTS4_CC
  221.97 - #define TSL_INIT(x)
  221.98 - #define TSL_SET(x)	(!uts_lock(x, 1))
  221.99 ---- glibc-2.1.3-15/sysdeps/alpha/Makefile	Thu Jul  9 14:52:03 1998
 221.100 -+++ glibc-2.1.3-16/sysdeps/alpha/Makefile	Wed Mar 15 16:50:45 2000
 221.101 -@@ -17,6 +17,10 @@
 221.102 - # write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 221.103 - # Boston, MA 02111-1307, USA.
 221.104 - 
 221.105 -+ifeq ($(subdir),db2)
 221.106 -+CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_ALPHA_GCC=1
 221.107 -+endif
 221.108 -+
 221.109 - ifeq ($(subdir),gmon)
 221.110 - sysdep_routines += _mcount
 221.111 - endif
 221.112 ---- glibc-2.1.3-15/sysdeps/unix/sysv/linux/alpha/ioperm.c	Mon Oct 11 10:25:24 1999
 221.113 -+++ glibc-2.1.3-16/sysdeps/unix/sysv/linux/alpha/ioperm.c	Wed Mar 15 11:57:14 2000
 221.114 -@@ -1,4 +1,4 @@
 221.115 --/* Copyright (C) 1992, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
 221.116 -+/* Copyright (C) 1992, 1996-1999, 2000 Free Software Foundation, Inc.
 221.117 -    This file is part of the GNU C Library.
 221.118 -    Contributed by David Mosberger.
 221.119 - 
 221.120 -@@ -139,6 +139,7 @@ static struct platform {
 221.121 -   {"Sable",	IOSYS_CPUDEP},
 221.122 -   {"Miata",	IOSYS_CIA},
 221.123 -   {"Tsunami",	IOSYS_TSUNAMI},
 221.124 -+  {"Nautilus",	IOSYS_TSUNAMI},
 221.125 -   {"Rawhide",	IOSYS_MCPCIA},
 221.126 -   {"Ruffian",	IOSYS_CIA},
 221.127 -   {"Takara",	IOSYS_CIA},
   222.1 --- a/patches/glibc/2.1.3/rh62-08-glibc-2.1.3-glob.patch	Tue Aug 14 19:32:22 2007 +0000
   222.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   222.3 @@ -1,57 +0,0 @@
   222.4 -2001-11-29  Jakub Jelinek  <jakub@redhat.com>
   222.5 -
   222.6 -	* sysdeps/generic/glob.c (next_brace_sub): Return NULL if braces
   222.7 -	don't match, fix {{a,b},c} globbing, clean up.
   222.8 -	Patch by Flavio Veloso <flaviovs@magnux.com>.
   222.9 -
  222.10 ---- libc/sysdeps/generic/glob.c.jj	Thu Aug 23 18:49:29 2001
  222.11 -+++ libc/sysdeps/generic/glob.c	Thu Nov 29 13:17:21 2001
  222.12 -@@ -355,42 +355,14 @@ static
  222.13 - inline
  222.14 - #endif
  222.15 - const char *
  222.16 --next_brace_sub (begin)
  222.17 --     const char *begin;
  222.18 -+next_brace_sub (cp)
  222.19 -+     const char *cp;
  222.20 - {
  222.21 -   unsigned int depth = 0;
  222.22 --  const char *cp = begin;
  222.23 --
  222.24 --  while (1)
  222.25 --    {
  222.26 --      if (depth == 0)
  222.27 --	{
  222.28 --	  if (*cp != ',' && *cp != '}' && *cp != '\0')
  222.29 --	    {
  222.30 --	      if (*cp == '{')
  222.31 --		++depth;
  222.32 --	      ++cp;
  222.33 --	      continue;
  222.34 --	    }
  222.35 --	}
  222.36 --      else
  222.37 --	{
  222.38 --	  while (*cp != '\0' && (*cp != '}' || depth > 0))
  222.39 --	    {
  222.40 --	      if (*cp == '}')
  222.41 --		--depth;
  222.42 --	      ++cp;
  222.43 --	    }
  222.44 --	  if (*cp == '\0')
  222.45 --	    /* An incorrectly terminated brace expression.  */
  222.46 --	    return NULL;
  222.47 --
  222.48 --	  continue;
  222.49 --	}
  222.50 --      break;
  222.51 --    }
  222.52 --
  222.53 --  return cp;
  222.54 -+  while (*cp != '\0' && (*cp != '}' || depth--) && (*cp != ',' || depth))
  222.55 -+    if (*cp++ == '{')
  222.56 -+      depth++;
  222.57 -+  return *cp != '\0' ? cp : NULL;
  222.58 - }
  222.59 - 
  222.60 - #endif /* !GLOB_ONLY_P */
   223.1 --- a/patches/glibc/2.1.3/rh62-09-glibc-2.1.3-security2.patch	Tue Aug 14 19:32:22 2007 +0000
   223.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   223.3 @@ -1,66 +0,0 @@
   223.4 -2002-07-05  Tomohiro Kato <tomop@teamgedoh.net>
   223.5 -
   223.6 -	* glibc-compat/nss_dns/dns-network.c (getanswer_r): Reduce
   223.7 -	linebuflen in parallel to bumping up the buffer pointer.
   223.8 -	* glibc-compat/nss_dns/dns-host.c (getanswer_r): Likewise.
   223.9 -	Compare n with linebuflen instead of buflen.
  223.10 -
  223.11 -2002-07-02  Andreas Schwab  <schwab@suse.de>
  223.12 -
  223.13 -	* resolv/nss_dns/dns-network.c (getanswer_r): Reduce linebuflen
  223.14 -	in parallel to bumping up the buffer pointer.
  223.15 -
  223.16 ---- libc/glibc-compat/nss_dns/dns-network.c.jj	Wed Jan 10 11:58:20 2001
  223.17 -+++ libc/glibc-compat/nss_dns/dns-network.c	Tue Jul  9 10:31:15 2002
  223.18 -@@ -283,7 +283,9 @@ getanswer_r (const querybuf *answer, int
  223.19 - 	    }
  223.20 - 	  cp += n;
  223.21 - 	  *alias_pointer++ = bp;
  223.22 --	  bp += strlen (bp) + 1;
  223.23 -+	  n = strlen (bp) + 1;
  223.24 -+	  bp += n;
  223.25 -+	  linebuflen -= n;
  223.26 - 	  result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
  223.27 - 	  ++have_answer;
  223.28 - 	}
  223.29 ---- libc/glibc-compat/nss_dns/dns-host.c.jj	Wed Jan 10 11:58:20 2001
  223.30 -+++ libc/glibc-compat/nss_dns/dns-host.c	Tue Jul  9 10:36:41 2002
  223.31 -@@ -424,7 +424,7 @@ getanswer_r (const querybuf *answer, int
  223.32 - 	  linebuflen -= n;
  223.33 - 	  /* Get canonical name.  */
  223.34 - 	  n = strlen (tbuf) + 1;	/* For the \0.  */
  223.35 --	  if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
  223.36 -+	  if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
  223.37 - 	    {
  223.38 - 	      ++had_error;
  223.39 - 	      continue;
  223.40 -@@ -447,7 +447,7 @@ getanswer_r (const querybuf *answer, int
  223.41 - 	  cp += n;
  223.42 - 	  /* Get canonical name. */
  223.43 - 	  n = strlen (tbuf) + 1;   /* For the \0.  */
  223.44 --	  if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
  223.45 -+	  if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
  223.46 - 	    {
  223.47 - 	      ++had_error;
  223.48 - 	      continue;
  223.49 -@@ -542,6 +542,7 @@ getanswer_r (const querybuf *answer, int
  223.50 - 	      linebuflen -= nn;
  223.51 - 	    }
  223.52 - 
  223.53 -+	  linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align));
  223.54 - 	  bp += sizeof (align) - ((u_long) bp % sizeof (align));
  223.55 - 
  223.56 - 	  if (n >= linebuflen)
  223.57 ---- libc/resolv/nss_dns/dns-network.c.jj	Mon Jul  9 14:59:24 2001
  223.58 -+++ libc/resolv/nss_dns/dns-network.c	Tue Jul  9 10:30:31 2002
  223.59 -@@ -328,7 +328,9 @@ getanswer_r (const querybuf *answer, int
  223.60 - 	    }
  223.61 - 	  cp += n;
  223.62 - 	  *alias_pointer++ = bp;
  223.63 --	  bp += strlen (bp) + 1;
  223.64 -+	  n = strlen (bp) + 1;
  223.65 -+	  bp += n;
  223.66 -+	  linebuflen -= n;
  223.67 - 	  result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
  223.68 - 	  ++have_answer;
  223.69 - 	}
   224.1 --- a/patches/glibc/2.1.3/rh62-10-glibc-2.1.3-xdr_array.patch	Tue Aug 14 19:32:22 2007 +0000
   224.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   224.3 @@ -1,36 +0,0 @@
   224.4 ---- glibc-2.1.3/sunrpc/rpc/types.h	Fri Oct 16 13:43:49 1998
   224.5 -+++ glibc-2.1.3/sunrpc/rpc/types.h	Thu Aug  1 09:06:38 2002
   224.6 -@@ -55,6 +55,10 @@
   224.7 - 
   224.8 - #include <stdlib.h>		/* For malloc decl.  */
   224.9 - #define mem_alloc(bsize)	malloc(bsize)
  224.10 -+/*
  224.11 -+ * XXX: This must not use the second argument, or code in xdr_array.c needs
  224.12 -+ * to be modified.
  224.13 -+ */
  224.14 - #define mem_free(ptr, bsize)	free(ptr)
  224.15 - 
  224.16 - #ifndef makedev /* ie, we haven't already included it */
  224.17 ---- glibc-2.1.3/sunrpc/xdr_array.c	Thu Jul 16 15:23:51 1998
  224.18 -+++ glibc-2.1.3/sunrpc/xdr_array.c	Thu Aug  1 09:07:45 2002
  224.19 -@@ -44,6 +44,7 @@
  224.20 - #include <string.h>
  224.21 - #include <rpc/types.h>
  224.22 - #include <rpc/xdr.h>
  224.23 -+#include <limits.h>
  224.24 - 
  224.25 - #define LASTUNSIGNED	((u_int)0-1)
  224.26 - 
  224.27 -@@ -76,7 +77,11 @@
  224.28 -       return FALSE;
  224.29 -     }
  224.30 -   c = *sizep;
  224.31 --  if ((c > maxsize) && (xdrs->x_op != XDR_FREE))
  224.32 -+  /*
  224.33 -+   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
  224.34 -+   * doesn't actually use its second argument anyway.
  224.35 -+   */
  224.36 -+  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
  224.37 -     {
  224.38 -       return FALSE;
  224.39 -     }
   225.1 --- a/patches/glibc/2.1.3/rh62-11-glibc-2.1.3-calloc.patch	Tue Aug 14 19:32:22 2007 +0000
   225.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   225.3 @@ -1,35 +0,0 @@
   225.4 -diff -ur glibc-2.1.3.orig/malloc/malloc.c glibc-2.1.3/malloc/malloc.c
   225.5 ---- glibc-2.1.3.orig/malloc/malloc.c	Wed Feb 23 10:02:55 2000
   225.6 -+++ glibc-2.1.3/malloc/malloc.c	Thu Aug  1 09:24:10 2002
   225.7 -@@ -3656,12 +3656,20 @@
   225.8 - {
   225.9 -   arena *ar_ptr;
  225.10 -   mchunkptr p, oldtop;
  225.11 --  INTERNAL_SIZE_T sz, csz, oldtopsize;
  225.12 -+  INTERNAL_SIZE_T bytes, sz, csz, oldtopsize;
  225.13 -   Void_t* mem;
  225.14 - 
  225.15 -+  /* size_t is unsigned so the behavior on overflow is defined;
  225.16 -+   * request2size() uses similar post-checks anyway. */
  225.17 -+  bytes = n * elem_size;
  225.18 -+  if ((n | elem_size) >= 65536 && elem_size && bytes / elem_size != n) {
  225.19 -+    __set_errno (ENOMEM);
  225.20 -+    return 0;
  225.21 -+  }
  225.22 -+
  225.23 - #if defined _LIBC || defined MALLOC_HOOKS
  225.24 -   if (__malloc_hook != NULL) {
  225.25 --    sz = n * elem_size;
  225.26 -+    sz = bytes;
  225.27 - #if defined __GNUC__ && __GNUC__ >= 2
  225.28 -     mem = (*__malloc_hook)(sz, __builtin_return_address (0));
  225.29 - #else
  225.30 -@@ -3678,7 +3686,7 @@
  225.31 -   }
  225.32 - #endif
  225.33 - 
  225.34 --  if(request2size(n * elem_size, sz))
  225.35 -+  if(request2size(bytes, sz))
  225.36 -     return 0;
  225.37 -   arena_get(ar_ptr, sz);
  225.38 -   if(!ar_ptr)
   226.1 --- a/patches/glibc/2.1.3/rh62-12-glibc-2.1.3-maxpacket.patch	Tue Aug 14 19:32:22 2007 +0000
   226.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   226.3 @@ -1,512 +0,0 @@
   226.4 ---- libc/resolv/nss_dns/dns-host.c.jj	Tue Sep 14 03:05:08 1999
   226.5 -+++ libc/resolv/nss_dns/dns-host.c	Thu Oct 10 13:07:33 2002
   226.6 -@@ -129,9 +129,10 @@ _nss_dns_gethostbyname2_r (const char *n
   226.7 - 			   char *buffer, size_t buflen, int *errnop,
   226.8 - 			   int *h_errnop)
   226.9 - {
  226.10 --  querybuf host_buffer;
  226.11 -+  querybuf *host_buffer;
  226.12 -   int size, type, n;
  226.13 -   const char *cp;
  226.14 -+  enum nss_status status;
  226.15 - 
  226.16 -   switch (af) {
  226.17 -   case AF_INET:
  226.18 -@@ -159,16 +160,25 @@ _nss_dns_gethostbyname2_r (const char *n
  226.19 -   if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
  226.20 -     name = cp;
  226.21 - 
  226.22 --  n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
  226.23 -+  host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
  226.24 -+  if (host_buffer == NULL) {
  226.25 -+    *errnop = ENOMEM;
  226.26 -+    return NSS_STATUS_UNAVAIL;
  226.27 -+  }
  226.28 -+
  226.29 -+  n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
  226.30 -   if (n < 0)
  226.31 -     {
  226.32 -       *h_errnop = h_errno;
  226.33 -       *errnop = *h_errnop == TRY_AGAIN ? EAGAIN : ENOENT;
  226.34 -+      free (host_buffer);
  226.35 -       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
  226.36 -     }
  226.37 - 
  226.38 --  return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
  226.39 --		      errnop, h_errnop);
  226.40 -+  status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
  226.41 -+			errnop, h_errnop);
  226.42 -+  free (host_buffer);
  226.43 -+  return status; 
  226.44 - }
  226.45 - 
  226.46 - 
  226.47 -@@ -205,7 +215,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
  226.48 -     char *h_addr_ptrs[MAX_NR_ADDRS + 1];
  226.49 -     char linebuffer[0];
  226.50 -   } *host_data = (struct host_data *) buffer;
  226.51 --  querybuf host_buffer;
  226.52 -+  querybuf *host_buffer;
  226.53 -   char qbuf[MAXDNAME+1], *qp;
  226.54 -   size_t size;
  226.55 -   int n, status;
  226.56 -@@ -257,17 +267,25 @@ _nss_dns_gethostbyaddr_r (const char *ad
  226.57 -       /* Cannot happen.  */
  226.58 -     }
  226.59 - 
  226.60 --  n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
  226.61 --		 sizeof host_buffer);
  226.62 -+  host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
  226.63 -+  if (host_buffer == NULL) {
  226.64 -+    *errnop = ENOMEM;
  226.65 -+    return NSS_STATUS_UNAVAIL;
  226.66 -+  }
  226.67 -+
  226.68 -+  n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
  226.69 -+		 sizeof (host_buffer->buf));
  226.70 -   if (n < 0)
  226.71 -     {
  226.72 -       *h_errnop = h_errno;
  226.73 -       *errnop = errno;
  226.74 -+      free (host_buffer);
  226.75 -       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
  226.76 -     }
  226.77 - 
  226.78 --  status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
  226.79 -+  status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
  226.80 - 			errnop, h_errnop);
  226.81 -+  free (host_buffer);
  226.82 -   if (status != NSS_STATUS_SUCCESS)
  226.83 -     {
  226.84 -       *h_errnop = h_errno;
  226.85 ---- libc/resolv/nss_dns/dns-network.c.jj	Wed Jun 30 12:01:14 1999
  226.86 -+++ libc/resolv/nss_dns/dns-network.c	Thu Oct 10 13:09:49 2002
  226.87 -@@ -113,24 +113,36 @@ _nss_dns_getnetbyname_r (const char *nam
  226.88 - 			 char *buffer, size_t buflen, int *errnop)
  226.89 - {
  226.90 -   /* Return entry for network with NAME.  */
  226.91 --  querybuf net_buffer;
  226.92 -+  querybuf *net_buffer;
  226.93 -   int anslen;
  226.94 -   char *qbuf;
  226.95 -+  enum nss_status status;
  226.96 - 
  226.97 -   qbuf = strdupa (name);
  226.98 --  anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
  226.99 --		       sizeof (querybuf));
 226.100 -+
 226.101 -+  net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
 226.102 -+  if (net_buffer == NULL)
 226.103 -+    {
 226.104 -+      *errnop = ENOMEM;
 226.105 -+      return NSS_STATUS_UNAVAIL;
 226.106 -+    }
 226.107 -+
 226.108 -+  anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
 226.109 -+		       sizeof (net_buffer->buf));
 226.110 -   if (anslen < 0)
 226.111 -     {
 226.112 -       /* Nothing found.  */
 226.113 -       *errnop = errno;
 226.114 -+      free (net_buffer);
 226.115 -       return (errno == ECONNREFUSED
 226.116 - 	      || errno == EPFNOSUPPORT
 226.117 - 	      || errno == EAFNOSUPPORT)
 226.118 - 	? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.119 -     }
 226.120 - 
 226.121 --  return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
 226.122 -+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
 226.123 -+  free (net_buffer);
 226.124 -+  return status;
 226.125 - }
 226.126 - 
 226.127 - 
 226.128 -@@ -140,7 +152,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
 226.129 - {
 226.130 -   /* Return entry for network with NAME.  */
 226.131 -   enum nss_status status;
 226.132 --  querybuf net_buffer;
 226.133 -+  querybuf *net_buffer;
 226.134 -   unsigned int net_bytes[4];
 226.135 -   char qbuf[MAXDNAME];
 226.136 -   int cnt, anslen;
 226.137 -@@ -176,19 +188,28 @@ _nss_dns_getnetbyaddr_r (long net, int t
 226.138 -       break;
 226.139 -     }
 226.140 - 
 226.141 --  anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
 226.142 --		      sizeof (querybuf));
 226.143 -+  net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
 226.144 -+  if (net_buffer == NULL)
 226.145 -+    {
 226.146 -+      *errnop = ENOMEM;
 226.147 -+      return NSS_STATUS_UNAVAIL;
 226.148 -+    }
 226.149 -+
 226.150 -+  anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
 226.151 -+		      sizeof (net_buffer->buf));
 226.152 -   if (anslen < 0)
 226.153 -     {
 226.154 -       /* Nothing found.  */
 226.155 -       *errnop = errno;
 226.156 -+      free (net_buffer);
 226.157 -       return (errno == ECONNREFUSED
 226.158 - 	      || errno == EPFNOSUPPORT
 226.159 - 	      || errno == EAFNOSUPPORT)
 226.160 - 	? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.161 -     }
 226.162 - 
 226.163 --  status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
 226.164 -+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
 226.165 -+  free (net_buffer);
 226.166 -   if (status == NSS_STATUS_SUCCESS)
 226.167 -     {
 226.168 -       /* Strip trailing zeros.  */
 226.169 ---- libc/resolv/res_query.c.jj	Wed Jun 30 12:01:06 1999
 226.170 -+++ libc/resolv/res_query.c	Thu Oct 10 13:01:12 2002
 226.171 -@@ -106,7 +106,7 @@ res_query(name, class, type, answer, ans
 226.172 - 	u_char *answer;		/* buffer to put answer */
 226.173 - 	int anslen;		/* size of answer buffer */
 226.174 - {
 226.175 --	u_char buf[MAXPACKET];
 226.176 -+	u_char *buf;
 226.177 - 	register HEADER *hp = (HEADER *) answer;
 226.178 - 	int n;
 226.179 - 
 226.180 -@@ -121,17 +121,25 @@ res_query(name, class, type, answer, ans
 226.181 - 		printf(";; res_query(%s, %d, %d)\n", name, class, type);
 226.182 - #endif
 226.183 - 
 226.184 -+	buf = malloc (MAXPACKET);
 226.185 -+	if (buf == NULL) {
 226.186 -+		__set_h_errno (NETDB_INTERNAL);
 226.187 -+		return -1;
 226.188 -+	}
 226.189 -+
 226.190 - 	n = res_mkquery(QUERY, name, class, type, NULL, 0, NULL,
 226.191 --			buf, sizeof(buf));
 226.192 -+			buf, MAXPACKET);
 226.193 - 	if (n <= 0) {
 226.194 - #ifdef DEBUG
 226.195 - 		if (_res.options & RES_DEBUG)
 226.196 - 			printf(";; res_query: mkquery failed\n");
 226.197 - #endif
 226.198 - 		__set_h_errno (NO_RECOVERY);
 226.199 -+		free (buf);
 226.200 - 		return (n);
 226.201 - 	}
 226.202 - 	n = res_send(buf, n, answer, anslen);
 226.203 -+	free (buf);
 226.204 - 	if (n < 0) {
 226.205 - #ifdef DEBUG
 226.206 - 		if (_res.options & RES_DEBUG)
 226.207 ---- libc/resolv/gethnamaddr.c.jj	Tue Dec  7 11:50:36 1999
 226.208 -+++ libc/resolv/gethnamaddr.c	Thu Oct 10 15:05:50 2002
 226.209 -@@ -512,10 +512,11 @@ gethostbyname2(name, af)
 226.210 - 	const char *name;
 226.211 - 	int af;
 226.212 - {
 226.213 --	querybuf buf;
 226.214 -+	querybuf *buf;
 226.215 - 	register const char *cp;
 226.216 - 	char *bp;
 226.217 - 	int n, size, type, len;
 226.218 -+	struct hostent *ret;
 226.219 - 	extern struct hostent *_gethtbyname2();
 226.220 - 
 226.221 - 	if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
 226.222 -@@ -617,13 +618,22 @@ gethostbyname2(name, af)
 226.223 - 				break;
 226.224 - 		}
 226.225 - 
 226.226 --	if ((n = res_search(name, C_IN, type, buf.buf, sizeof(buf.buf))) < 0) {
 226.227 -+	buf = (querybuf *) malloc (sizeof (*buf));
 226.228 -+	if (buf == NULL) {
 226.229 -+		__set_h_errno (NETDB_INTERNAL);
 226.230 -+		return NULL;
 226.231 -+	}
 226.232 -+
 226.233 -+	if ((n = res_search(name, C_IN, type, buf->buf, sizeof(buf->buf))) < 0) {
 226.234 -+		free (buf);
 226.235 - 		dprintf("res_search failed (%d)\n", n);
 226.236 - 		if (errno == ECONNREFUSED)
 226.237 - 			return (_gethtbyname2(name, af));
 226.238 - 		return (NULL);
 226.239 - 	}
 226.240 --	return (getanswer(&buf, n, name, type));
 226.241 -+	ret = getanswer(buf, n, name, type);
 226.242 -+	free (buf);
 226.243 -+	return ret;
 226.244 - }
 226.245 - 
 226.246 - struct hostent *
 226.247 -@@ -636,7 +646,7 @@ gethostbyaddr(addr, len, af)
 226.248 - 	static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
 226.249 - 	static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
 226.250 - 	int n, size;
 226.251 --	querybuf buf;
 226.252 -+	querybuf *buf;
 226.253 - 	register struct hostent *hp;
 226.254 - 	char qbuf[MAXDNAME+1], *qp;
 226.255 - #ifdef SUNSECURITY
 226.256 -@@ -697,14 +707,24 @@ gethostbyaddr(addr, len, af)
 226.257 - 	default:
 226.258 - 		abort();
 226.259 - 	}
 226.260 --	n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf);
 226.261 -+
 226.262 -+	buf = (querybuf *) malloc (sizeof (*buf));
 226.263 -+	if (buf == NULL) {
 226.264 -+		__set_h_errno (NETDB_INTERNAL);
 226.265 -+		return NULL;
 226.266 -+	}
 226.267 -+
 226.268 -+	n = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf);
 226.269 - 	if (n < 0) {
 226.270 -+		free (buf);
 226.271 - 		dprintf("res_query failed (%d)\n", n);
 226.272 - 		if (errno == ECONNREFUSED)
 226.273 - 			return (_gethtbyaddr(addr, len, af));
 226.274 - 		return (NULL);
 226.275 - 	}
 226.276 --	if (!(hp = getanswer(&buf, n, qbuf, T_PTR)))
 226.277 -+	hp = getanswer(buf, n, qbuf, T_PTR);
 226.278 -+	free (buf);
 226.279 -+	if (!hp)
 226.280 - 		return (NULL);	/* h_errno was set by getanswer() */
 226.281 - #ifdef SUNSECURITY
 226.282 - 	if (af == AF_INET) {
 226.283 ---- libc/resolv/getnetnamadr.c.jj	Wed Jun 30 12:00:50 1999
 226.284 -+++ libc/resolv/getnetnamadr.c	Thu Oct 10 13:14:01 2002
 226.285 -@@ -210,7 +210,7 @@ getnetbyaddr(net, net_type)
 226.286 - {
 226.287 - 	unsigned int netbr[4];
 226.288 - 	int nn, anslen;
 226.289 --	querybuf buf;
 226.290 -+	querybuf *buf;
 226.291 - 	char qbuf[MAXDNAME];
 226.292 - 	u_int32_t net2;		/* Changed from unsigned long --roland */
 226.293 - 	struct netent *net_entry;
 226.294 -@@ -236,8 +236,15 @@ getnetbyaddr(net, net_type)
 226.295 - 		    netbr[1], netbr[0]);
 226.296 - 		break;
 226.297 - 	}
 226.298 --	anslen = res_query(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
 226.299 -+
 226.300 -+	buf = (querybuf *) malloc (sizeof (*buf));
 226.301 -+	if (buf == NULL) {
 226.302 -+		return NULL;
 226.303 -+	}
 226.304 -+
 226.305 -+	anslen = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
 226.306 - 	if (anslen < 0) {
 226.307 -+		free (buf);
 226.308 - #ifdef DEBUG
 226.309 - 		if (_res.options & RES_DEBUG)
 226.310 - 			printf("res_query failed\n");
 226.311 -@@ -246,7 +253,8 @@ getnetbyaddr(net, net_type)
 226.312 - 			return (_getnetbyaddr(net, net_type));
 226.313 - 		return (NULL);
 226.314 - 	}
 226.315 --	net_entry = getnetanswer(&buf, anslen, BYADDR);
 226.316 -+	net_entry = getnetanswer(buf, anslen, BYADDR);
 226.317 -+	free (buf);
 226.318 - 	if (net_entry) {
 226.319 - 		unsigned u_net = net;	/* maybe net should be unsigned ? */
 226.320 - 
 226.321 -@@ -264,7 +272,7 @@ getnetbyname(net)
 226.322 - 	register const char *net;
 226.323 - {
 226.324 - 	int anslen;
 226.325 --	querybuf buf;
 226.326 -+	querybuf *buf;
 226.327 - 	char qbuf[MAXDNAME];
 226.328 - 	struct netent *net_entry;
 226.329 - 
 226.330 -@@ -273,8 +281,13 @@ getnetbyname(net)
 226.331 - 		return (NULL);
 226.332 - 	}
 226.333 - 	strcpy(&qbuf[0], net);
 226.334 --	anslen = res_search(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
 226.335 -+	buf = (querybuf *) malloc (sizeof (*buf));
 226.336 -+	if (buf == NULL) {
 226.337 -+		return NULL;
 226.338 -+	}
 226.339 -+	anslen = res_search(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
 226.340 - 	if (anslen < 0) {
 226.341 -+		free (buf);
 226.342 - #ifdef DEBUG
 226.343 - 		if (_res.options & RES_DEBUG)
 226.344 - 			printf("res_query failed\n");
 226.345 -@@ -283,7 +296,8 @@ getnetbyname(net)
 226.346 - 			return (_getnetbyname(net));
 226.347 - 		return (_getnetbyname(net));
 226.348 - 	}
 226.349 --	net_entry = getnetanswer(&buf, anslen, BYNAME);
 226.350 -+	net_entry = getnetanswer(buf, anslen, BYNAME);
 226.351 -+	free (buf);
 226.352 - 	if (net_entry)
 226.353 - 		return (net_entry);
 226.354 - 	return (_getnetbyname(net));
 226.355 ---- libc/glibc-compat/nss_dns/dns-host.c.jj	Mon Jan  3 20:07:08 2000
 226.356 -+++ libc/glibc-compat/nss_dns/dns-host.c	Thu Oct 10 12:46:24 2002
 226.357 -@@ -126,9 +126,10 @@ enum nss_status
 226.358 - _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
 226.359 - 			   char *buffer, size_t buflen, int *h_errnop)
 226.360 - {
 226.361 --  querybuf host_buffer;
 226.362 -+  querybuf *host_buffer;
 226.363 -   int size, type, n;
 226.364 -   const char *cp;
 226.365 -+  enum nss_status status;
 226.366 - 
 226.367 -   switch (af) {
 226.368 -   case AF_INET:
 226.369 -@@ -156,15 +157,22 @@ _nss_dns_gethostbyname2_r (const char *n
 226.370 -   if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
 226.371 -     name = cp;
 226.372 - 
 226.373 --  n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
 226.374 -+  host_buffer = (querybuf *) malloc (sizeof (querybuf));
 226.375 -+  if (host_buffer == NULL)
 226.376 -+    return NSS_STATUS_UNAVAIL;
 226.377 -+
 226.378 -+  n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
 226.379 -   if (n < 0)
 226.380 -     {
 226.381 -       *h_errnop = h_errno;
 226.382 -+      free (host_buffer);
 226.383 -       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.384 -     }
 226.385 - 
 226.386 --  return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
 226.387 --		      h_errnop);
 226.388 -+  status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
 226.389 -+			h_errnop);
 226.390 -+  free (host_buffer);
 226.391 -+  return status;
 226.392 - }
 226.393 - 
 226.394 - 
 226.395 -@@ -200,7 +208,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
 226.396 -     char *h_addr_ptrs[MAX_NR_ADDRS + 1];
 226.397 -     char linebuffer[0];
 226.398 -   } *host_data = (struct host_data *) buffer;
 226.399 --  querybuf host_buffer;
 226.400 -+  querybuf *host_buffer;
 226.401 -   char qbuf[MAXDNAME+1], *qp;
 226.402 -   int size, n, status;
 226.403 - 
 226.404 -@@ -251,16 +259,22 @@ _nss_dns_gethostbyaddr_r (const char *ad
 226.405 -       /* Cannot happen.  */
 226.406 -     }
 226.407 - 
 226.408 --  n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
 226.409 --		 sizeof host_buffer);
 226.410 -+  host_buffer = (querybuf *) malloc (sizeof (querybuf));
 226.411 -+  if (host_buffer == NULL)
 226.412 -+    return NSS_STATUS_UNAVAIL;
 226.413 -+
 226.414 -+  n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
 226.415 -+		 sizeof (host_buffer->buf));
 226.416 -   if (n < 0)
 226.417 -     {
 226.418 -       *h_errnop = h_errno;
 226.419 -+      free (host_buffer);
 226.420 -       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.421 -     }
 226.422 - 
 226.423 --  status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
 226.424 -+  status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
 226.425 - 			h_errnop);
 226.426 -+  free (host_buffer);
 226.427 -   if (status != NSS_STATUS_SUCCESS)
 226.428 -     {
 226.429 -       *h_errnop = h_errno;
 226.430 ---- libc/glibc-compat/nss_dns/dns-network.c.jj	Mon Jan  3 20:07:08 2000
 226.431 -+++ libc/glibc-compat/nss_dns/dns-network.c	Thu Oct 10 12:46:24 2002
 226.432 -@@ -107,21 +107,32 @@ _nss_dns_getnetbyname_r (const char *nam
 226.433 - 			 char *buffer, size_t buflen)
 226.434 - {
 226.435 -   /* Return entry for network with NAME.  */
 226.436 --  querybuf net_buffer;
 226.437 -+  querybuf *net_buffer;
 226.438 -   int anslen;
 226.439 -   char *qbuf;
 226.440 -+  enum nss_status status;
 226.441 - 
 226.442 -   qbuf = strdupa (name);
 226.443 --  anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
 226.444 --		       sizeof (querybuf));
 226.445 -+
 226.446 -+  net_buffer = (querybuf *) malloc (sizeof (querybuf));
 226.447 -+  if (net_buffer == NULL)
 226.448 -+    return NSS_STATUS_UNAVAIL;
 226.449 -+
 226.450 -+  anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
 226.451 -+		       sizeof (net_buffer->buf));
 226.452 -   if (anslen < 0)
 226.453 --    /* Nothing found.  */
 226.454 --    return (errno == ECONNREFUSED
 226.455 --	    || errno == EPFNOSUPPORT
 226.456 --	    || errno == EAFNOSUPPORT)
 226.457 --      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.458 -+    {
 226.459 -+      free (net_buffer);
 226.460 -+      /* Nothing found.  */
 226.461 -+      return (errno == ECONNREFUSED
 226.462 -+	      || errno == EPFNOSUPPORT
 226.463 -+	      || errno == EAFNOSUPPORT)
 226.464 -+	      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.465 -+    }
 226.466 - 
 226.467 --  return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
 226.468 -+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
 226.469 -+  free (net_buffer);
 226.470 -+  return status;
 226.471 - }
 226.472 - 
 226.473 - 
 226.474 -@@ -131,7 +142,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
 226.475 - {
 226.476 -   /* Return entry for network with NAME.  */
 226.477 -   enum nss_status status;
 226.478 --  querybuf net_buffer;
 226.479 -+  querybuf *net_buffer;
 226.480 -   unsigned int net_bytes[4];
 226.481 -   char qbuf[MAXDNAME];
 226.482 -   int cnt, anslen;
 226.483 -@@ -167,16 +178,24 @@ _nss_dns_getnetbyaddr_r (long net, int t
 226.484 -       break;
 226.485 -     }
 226.486 - 
 226.487 --  anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
 226.488 --		      sizeof (querybuf));
 226.489 -+  net_buffer = (querybuf *) malloc (sizeof (querybuf));
 226.490 -+  if (net_buffer == NULL)
 226.491 -+    return NSS_STATUS_UNAVAIL;
 226.492 -+
 226.493 -+  anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
 226.494 -+		      sizeof (net_buffer->buf));
 226.495 -   if (anslen < 0)
 226.496 --    /* Nothing found.  */
 226.497 --    return (errno == ECONNREFUSED
 226.498 --	    || errno == EPFNOSUPPORT
 226.499 --	    || errno == EAFNOSUPPORT)
 226.500 --      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.501 -+    {
 226.502 -+      free (net_buffer);
 226.503 -+      /* Nothing found.  */
 226.504 -+      return (errno == ECONNREFUSED
 226.505 -+	      || errno == EPFNOSUPPORT
 226.506 -+	      || errno == EAFNOSUPPORT)
 226.507 -+	      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 226.508 -+    }
 226.509 - 
 226.510 --  status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
 226.511 -+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
 226.512 -+  free (net_buffer);
 226.513 -   if (status == NSS_STATUS_SUCCESS)
 226.514 -     {
 226.515 -       /* Strip trailing zeros.  */
   227.1 --- a/patches/glibc/2.1.3/rh62-99-glibc-2.1.3-allow-gcc-3.4-dns.patch	Tue Aug 14 19:32:22 2007 +0000
   227.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   227.3 @@ -1,11 +0,0 @@
   227.4 ---- glibc-2.1.3/glibc-compat/nss_dns/dns-host.c.old	Sun Apr 11 21:46:14 2004
   227.5 -+++ glibc-2.1.3/glibc-compat/nss_dns/dns-host.c	Sun Apr 11 21:46:26 2004
   227.6 -@@ -256,7 +256,7 @@
   227.7 -       strcpy(qp, "ip6.int");
   227.8 -       break;
   227.9 -     default:
  227.10 --      /* Cannot happen.  */
  227.11 -+      ; /* Cannot happen.  */
  227.12 -     }
  227.13 - 
  227.14 -   host_buffer = (querybuf *) malloc (sizeof (querybuf));
   228.1 --- a/patches/glibc/2.1.3/rh62-99-glibc-2.1.3-allow-gcc-3.4-gconv_stubs.patch	Tue Aug 14 19:32:22 2007 +0000
   228.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   228.3 @@ -1,44 +0,0 @@
   228.4 -"Fixes" gcc-3.4.0 errors:
   228.5 -gconv_stubs.c:49: error: conflicting types for '__gconv_close_transform'
   228.6 -../iconv/gconv_int.h:131: error: previous declaration of '__gconv_close_transform' was here
   228.7 -gconv_stubs.c:49: error: conflicting types for '__gconv_close_transform'
   228.8 -../iconv/gconv_int.h:131: error: previous declaration of '__gconv_close_transform' was here
   228.9 -gconv_stubs.c:52: error: conflicting types for '__gconv'
  228.10 -../iconv/gconv_int.h:112: error: previous declaration of '__gconv' was here
  228.11 -gconv_stubs.c:52: error: conflicting types for '__gconv'
  228.12 -../iconv/gconv_int.h:112: error: previous declaration of '__gconv' was here
  228.13 -gconv_stubs.c:54: error: conflicting types for '__gconv_find_transform'
  228.14 -../iconv/gconv_int.h:119: error: previous declaration of '__gconv_find_transform' was here
  228.15 -gconv_stubs.c:54: error: conflicting types for '__gconv_find_transform'
  228.16 -../iconv/gconv_int.h:119: error: previous declaration of '__gconv_find_transform' was here
  228.17 -gconv_stubs.c:56: error: conflicting types for '__gconv_open'
  228.18 -../iconv/gconv_int.h:99: error: previous declaration of '__gconv_open' was here
  228.19 -gconv_stubs.c:56: error: conflicting types for '__gconv_open'
  228.20 -../iconv/gconv_int.h:99: error: previous declaration of '__gconv_open' was here
  228.21 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/build-glibc/c_stubs/gconv_stubs.o] Error 1
  228.22 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc4h/build/i686-unknown-linux-gnu/gcc-3.4.0-20040406-glibc-2.1.3/glibc-2.1.3/c_stubs'
  228.23 -
  228.24 -although the right thing would probably be to declare the 
  228.25 -stubs to have the right attributes.
  228.26 -
  228.27 ---- glibc-2.1.3/c_stubs/gconv_stubs.c.old	Sun Apr 11 20:25:09 2004
  228.28 -+++ glibc-2.1.3/c_stubs/gconv_stubs.c	Sun Apr 11 20:29:35 2004
  228.29 -@@ -18,7 +18,18 @@
  228.30 -    Boston, MA 02111-1307, USA.  */
  228.31 - 
  228.32 - #include <features.h>
  228.33 -+
  228.34 -+/* strange hack workaround for gcc-3.4.0.  Might be a better way. */
  228.35 -+#define __gconv_close_transform foo__gconv_close_transform
  228.36 -+#define __gconv foo__gconv
  228.37 -+#define __gconv_find_transform foo__gconv_find_transform
  228.38 -+#define __gconv_open foo__gconv_open
  228.39 -+
  228.40 - #include <gconv_int.h>
  228.41 -+#undef __gconv_close_transform
  228.42 -+#undef __gconv
  228.43 -+#undef __gconv_find_transform
  228.44 -+#undef __gconv_open
  228.45 - 
  228.46 - /* hack for self identification */
  228.47 - int __c_stubs_is_compiled_in;
   229.1 --- a/patches/glibc/2.1.3/sk.po.patch	Tue Aug 14 19:32:22 2007 +0000
   229.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   229.3 @@ -1,6678 +0,0 @@
   229.4 -From
   229.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/po/sk.po.diff?r1=1.2&r2=1.3&cvsroot=glibc
   229.6 -
   229.7 -Fixes build error
   229.8 -  msgfmt -o sk.mo sk.po
   229.9 -  sk.po:2913: duplicate message definition
  229.10 -  sk.po:2909: ...this is the location of the first definition
  229.11 -  sk.po:3894: duplicate message definition
  229.12 -  sk.po:3070: ...this is the location of the first definition
  229.13 -  msgfmt: found 2 fatal errors
  229.14 -  make[2]: *** [sk.mo] Error 1
  229.15 -
  229.16 -===================================================================
  229.17 -RCS file: /cvs/glibc/libc/po/sk.po,v
  229.18 -retrieving revision 1.2
  229.19 -retrieving revision 1.3
  229.20 -diff -u -r1.2 -r1.3
  229.21 ---- libc/po/sk.po	1998/12/04 21:08:17	1.2
  229.22 -+++ libc/po/sk.po	2001/06/05 22:43:33	1.3
  229.23 -@@ -4,82 +4,82 @@
  229.24 - #
  229.25 - msgid ""
  229.26 - msgstr ""
  229.27 --"Project-Id-Version: libc 2.1\n"
  229.28 --"POT-Creation-Date: 1998-11-28 09:29-0800\n"
  229.29 --"PO-Revision-Date: 1998-12-02 22:02+01:00\n"
  229.30 -+"Project-Id-Version: libc 2.2.3\n"
  229.31 -+"POT-Creation-Date: 2001-01-21 08:03-0800\n"
  229.32 -+"PO-Revision-Date: 2001-06-05 17:57+02:00\n"
  229.33 - "Last-Translator: Stanislav Meduna <stano@eunet.sk>\n"
  229.34 - "Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n"
  229.35 - "MIME-Version: 1.0\n"
  229.36 - "Content-Type: text/plain; charset=ISO-8859-2\n"
  229.37 - "Content-Transfer-Encoding: 8bit\n"
  229.38 - 
  229.39 --#: nis/nis_print.c:273
  229.40 -+#: nis/nis_print.c:274
  229.41 - msgid "\t\tAccess Rights : "
  229.42 - msgstr "\t\tPrístupové práva : "
  229.43 - 
  229.44 --#: nis/nis_print.c:271
  229.45 -+#: nis/nis_print.c:272
  229.46 - msgid "\t\tAttributes    : "
  229.47 - msgstr "\t\tAtribúty         : "
  229.48 - 
  229.49 --#: sunrpc/rpc_main.c:1416
  229.50 -+#: sunrpc/rpc_main.c:1425
  229.51 - #, c-format
  229.52 - msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
  229.53 - msgstr "\t%s [-abkCLNTM][-Dnázov[=hodnota]] [-i veµkos»] [-I [-K sekundy]] [-Y cesta] vst_súbor\n"
  229.54 - 
  229.55 --#: sunrpc/rpc_main.c:1418
  229.56 -+#: sunrpc/rpc_main.c:1427
  229.57 - #, c-format
  229.58 - msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
  229.59 - msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o výst_súbor] [vst_súbor]\n"
  229.60 - 
  229.61 --#: sunrpc/rpc_main.c:1421
  229.62 -+#: sunrpc/rpc_main.c:1430
  229.63 - #, c-format
  229.64 - msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
  229.65 - msgstr "\t%s [-n netid]* [-o výst_súbor] [vst_súbor]\n"
  229.66 - 
  229.67 --#: sunrpc/rpc_main.c:1420
  229.68 -+#: sunrpc/rpc_main.c:1429
  229.69 - #, c-format
  229.70 - msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
  229.71 - msgstr "\t%s [-s nettype]* [-o výst_súbor] [vst_súbor]\n"
  229.72 - 
  229.73 --#: nis/nis_print.c:235
  229.74 -+#: nis/nis_print.c:236
  229.75 - msgid "\tAccess rights: "
  229.76 - msgstr "\tPrístupové práva: "
  229.77 - 
  229.78 --#: nis/nis_print.c:293
  229.79 -+#: nis/nis_print.c:294
  229.80 - #, c-format
  229.81 - msgid "\tEntry data of type %s\n"
  229.82 - msgstr "\tVstupné údaje typu %s\n"
  229.83 - 
  229.84 --#: nis/nis_print.c:171
  229.85 -+#: nis/nis_print.c:172
  229.86 - #, c-format
  229.87 - msgid "\tName       : %s\n"
  229.88 - msgstr "\tNázov         : %s\n"
  229.89 - 
  229.90 --#: nis/nis_print.c:172
  229.91 -+#: nis/nis_print.c:173
  229.92 - msgid "\tPublic Key : "
  229.93 - msgstr "\tVerejný kµúè  : "
  229.94 - 
  229.95 --#: nis/nis_print.c:234
  229.96 -+#: nis/nis_print.c:235
  229.97 - #, c-format
  229.98 - msgid "\tType         : %s\n"
  229.99 - msgstr "\tTyp             : %s\n"
 229.100 - 
 229.101 --#: nis/nis_print.c:201
 229.102 -+#: nis/nis_print.c:202
 229.103 - #, c-format
 229.104 - msgid "\tUniversal addresses (%u)\n"
 229.105 - msgstr "\tUniverzálne adresy (%u)\n"
 229.106 - 
 229.107 --#: nis/nis_print.c:269
 229.108 -+#: nis/nis_print.c:270
 229.109 - #, c-format
 229.110 - msgid "\t[%d]\tName          : %s\n"
 229.111 - msgstr "\t[%d]\tNázov            : %s\n"
 229.112 - 
 229.113 --#: nis/nis_print.c:296
 229.114 -+#: nis/nis_print.c:297
 229.115 - #, c-format
 229.116 - msgid "\t[%u] - [%u bytes] "
 229.117 - msgstr "\t[%u] - [%u bajtov] "
 229.118 - 
 229.119 --#: nscd/nscd_stat.c:153
 229.120 -+#: nscd/nscd_stat.c:154
 229.121 - msgid ""
 229.122 - "\n"
 229.123 - "%s cache:\n"
 229.124 -@@ -109,11 +109,11 @@
 229.125 - "%15ld%% úspe¹nos» cache\n"
 229.126 - "%15s  skontrolujte /etc/%s na zmeny\n"
 229.127 - 
 229.128 --#: nis/nis_print.c:251
 229.129 -+#: nis/nis_print.c:252
 229.130 - msgid "\nGroup Members :\n"
 229.131 - msgstr "\nÈlenovia skupín  :\n"
 229.132 - 
 229.133 --#: nis/nis_print.c:320
 229.134 -+#: nis/nis_print.c:323
 229.135 - msgid "\nTime to Live  : "
 229.136 - msgstr "\n®ivotnos»        : "
 229.137 - 
 229.138 -@@ -133,60 +133,60 @@
 229.139 - msgid "       rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
 229.140 - msgstr "       rpcinfo [ -n èíslo_portu ] -t poèítaè èíslo_programu [ èíslo_verzie ]\n"
 229.141 - 
 229.142 --#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147
 229.143 -+#: nscd/nscd_stat.c:146 nscd/nscd_stat.c:148
 229.144 - msgid "      no"
 229.145 - msgstr "      nie"
 229.146 - 
 229.147 --#: nscd/nscd_stat.c:145 nscd/nscd_stat.c:147
 229.148 -+#: nscd/nscd_stat.c:146 nscd/nscd_stat.c:148
 229.149 - msgid "     yes"
 229.150 - msgstr "     áno"
 229.151 - 
 229.152 --#: nis/nis_print.c:344
 229.153 -+#: nis/nis_print.c:349
 229.154 - #, c-format
 229.155 - msgid "    Data Length = %u\n"
 229.156 - msgstr "    Då¾ka údajov = %u\n"
 229.157 - 
 229.158 --#: nis/nis_print_group_entry.c:121
 229.159 -+#: nis/nis_print_group_entry.c:123
 229.160 - msgid "    Explicit members:\n"
 229.161 - msgstr "    Explicitní èlenovia:\n"
 229.162 - 
 229.163 --#: nis/nis_print_group_entry.c:145 nis/nis_print_group_entry.c:161
 229.164 -+#: nis/nis_print_group_entry.c:147 nis/nis_print_group_entry.c:163
 229.165 - msgid "    Explicit nonmembers:\n"
 229.166 - msgstr "    Explicitní neèlenovia:\n"
 229.167 - 
 229.168 --#: nis/nis_print_group_entry.c:129
 229.169 -+#: nis/nis_print_group_entry.c:131
 229.170 - msgid "    Implicit members:\n"
 229.171 - msgstr "    Implicitní èlenovia:\n"
 229.172 - 
 229.173 --#: nis/nis_print_group_entry.c:153
 229.174 -+#: nis/nis_print_group_entry.c:155
 229.175 - msgid "    Implicit nonmembers:\n"
 229.176 - msgstr "    Implicitní neèlenovia:\n"
 229.177 - 
 229.178 --#: nis/nis_print_group_entry.c:126
 229.179 -+#: nis/nis_print_group_entry.c:128
 229.180 - msgid "    No explicit members\n"
 229.181 - msgstr "    ®iadni explicitní èlenovia\n"
 229.182 - 
 229.183 --#: nis/nis_print_group_entry.c:150
 229.184 -+#: nis/nis_print_group_entry.c:152
 229.185 - msgid "    No explicit nonmembers\n"
 229.186 - msgstr "    ®iadni explicitní neèlenovia\n"
 229.187 - 
 229.188 --#: nis/nis_print_group_entry.c:134
 229.189 -+#: nis/nis_print_group_entry.c:136
 229.190 - msgid "    No implicit members\n"
 229.191 - msgstr "    ®iadni implicitní èlenovia\n"
 229.192 - 
 229.193 --#: nis/nis_print_group_entry.c:158
 229.194 -+#: nis/nis_print_group_entry.c:160
 229.195 - msgid "    No implicit nonmembers\n"
 229.196 - msgstr "    ®iadni implicitní neèlenovia\n"
 229.197 - 
 229.198 --#: nis/nis_print_group_entry.c:142
 229.199 -+#: nis/nis_print_group_entry.c:144
 229.200 - msgid "    No recursive members\n"
 229.201 - msgstr "    ®iadni rekurzívni èlenovia\n"
 229.202 - 
 229.203 --#: nis/nis_print_group_entry.c:166
 229.204 -+#: nis/nis_print_group_entry.c:168
 229.205 - msgid "    No recursive nonmembers\n"
 229.206 - msgstr "    ®iadni rekurzívni neèlenovia\n"
 229.207 - 
 229.208 --#: nis/nis_print_group_entry.c:137
 229.209 -+#: nis/nis_print_group_entry.c:139
 229.210 - msgid "    Recursive members:\n"
 229.211 - msgstr "    Rekurzívni èlenovia:\n"
 229.212 - 
 229.213 -@@ -194,138 +194,198 @@
 229.214 - msgid "   program vers proto   port\n"
 229.215 - msgstr "   program verz proto   port\n"
 229.216 - 
 229.217 --#: argp/argp-help.c:1571
 229.218 -+#: argp/argp-help.c:1572
 229.219 - msgid "  or: "
 229.220 - msgstr "  alebo: "
 229.221 - 
 229.222 -+#: elf/ldconfig.c:448
 229.223 -+msgid " (SKIPPED)\n"
 229.224 -+msgstr " (VYNECHANÉ)\n"
 229.225 -+
 229.226 -+#: elf/ldconfig.c:446
 229.227 -+msgid " (changed)\n"
 229.228 -+msgstr " (zmenené)\n"
 229.229 -+
 229.230 - #: timezone/zic.c:421
 229.231 - #, c-format
 229.232 - msgid " (rule from \"%s\", line %d)"
 229.233 - msgstr " (pravidlo z \"%s\", riadok %d)"
 229.234 - 
 229.235 --#: argp/argp-help.c:1583
 229.236 -+#: argp/argp-help.c:1584
 229.237 - msgid " [OPTION...]"
 229.238 - msgstr " [VO¥BA...]"
 229.239 - 
 229.240 --#: locale/programs/ld-collate.c:370 locale/programs/ld-ctype.c:1291
 229.241 --msgid " done\n"
 229.242 --msgstr " hotovo\n"
 229.243 --
 229.244 - #: timezone/zic.c:418
 229.245 - #, c-format
 229.246 - msgid "\"%s\", line %d: %s"
 229.247 - msgstr "\"%s\", riadok %d: %s"
 229.248 - 
 229.249 --#: timezone/zic.c:958
 229.250 -+#: timezone/zic.c:983
 229.251 - #, c-format
 229.252 - msgid "\"Zone %s\" line and -l option are mutually exclusive"
 229.253 - msgstr "Riadok \"Zone %s\" a voµba -l sa navzájom vyluèujú"
 229.254 - 
 229.255 --#: timezone/zic.c:966
 229.256 -+#: timezone/zic.c:991
 229.257 - #, c-format
 229.258 - msgid "\"Zone %s\" line and -p option are mutually exclusive"
 229.259 - msgstr "Riadok \"Zone %s\" a voµba -p sa navzájom vyluèujú"
 229.260 - 
 229.261 --#: sunrpc/rpc_main.c:1401
 229.262 -+#: sunrpc/rpc_main.c:1410
 229.263 - msgid "\"infile\" is required for template generation flags.\n"
 229.264 - msgstr "\"vst_súbor\" je vy¾adovaný pri pou¾ití príznakov tvorby vzoru.\n"
 229.265 - 
 229.266 --#: argp/argp-help.c:210
 229.267 -+#: argp/argp-help.c:209
 229.268 - #, c-format
 229.269 - msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
 229.270 - msgstr "%.*s: Parameter ARGP_HELP_FMT vy¾aduje hodnotu"
 229.271 - 
 229.272 --#: argp/argp-help.c:219
 229.273 -+#: argp/argp-help.c:218
 229.274 - #, c-format
 229.275 - msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
 229.276 - msgstr "%.*s: Neznámy parameter ARGP_HELP_FMT"
 229.277 - 
 229.278 --#: timezone/zic.c:768
 229.279 -+#: locale/programs/ld-address.c:576 locale/programs/ld-collate.c:2593
 229.280 -+#: locale/programs/ld-collate.c:3719 locale/programs/ld-ctype.c:2110
 229.281 -+#: locale/programs/ld-ctype.c:2847 locale/programs/ld-identification.c:440
 229.282 -+#: locale/programs/ld-measurement.c:232 locale/programs/ld-messages.c:326
 229.283 -+#: locale/programs/ld-monetary.c:934 locale/programs/ld-name.c:300
 229.284 -+#: locale/programs/ld-numeric.c:370 locale/programs/ld-paper.c:233
 229.285 -+#: locale/programs/ld-telephone.c:308 locale/programs/ld-time.c:1172
 229.286 -+#, c-format
 229.287 -+msgid "%1$s: definition does not end with `END %1$s'"
 229.288 -+msgstr "%1$s: Definícia nekonèí `END %1$s'"
 229.289 -+
 229.290 -+#: elf/cache.c:165 elf/cache.c:175
 229.291 -+#, c-format
 229.292 -+msgid "%d libs found in cache `%s'\n"
 229.293 -+msgstr "%d kni¾níc nájdených v cache `%s'\n"
 229.294 -+
 229.295 -+#: timezone/zic.c:793
 229.296 - #, c-format
 229.297 - msgid "%s in ruleless zone"
 229.298 - msgstr "%s v zóne bez pravidiel"
 229.299 - 
 229.300 --#: assert/assert.c:51
 229.301 -+#: elf/../sysdeps/generic/readelflib.c:65
 229.302 -+#, c-format
 229.303 -+msgid "%s is a 32 bit ELF file.\n"
 229.304 -+msgstr "%s je 32-bitový ELF súbor.\n"
 229.305 -+
 229.306 -+#: elf/../sysdeps/generic/readelflib.c:67
 229.307 -+#, c-format
 229.308 -+msgid "%s is a 64 bit ELF file.\n"
 229.309 -+msgstr "%s je 64-bitový ELF súbor.\n"
 229.310 -+
 229.311 -+#: elf/../sysdeps/unix/sysv/linux/i386/readelflib.c:48
 229.312 -+#, c-format
 229.313 -+msgid "%s is for unknown machine %d.\n"
 229.314 -+msgstr "%s je pre neznámy stroj %d.\n"
 229.315 -+
 229.316 -+#: elf/ldconfig.c:329
 229.317 -+#, c-format
 229.318 -+msgid "%s is not a known library type"
 229.319 -+msgstr "%s nie je známy typ kni¾nice"
 229.320 -+
 229.321 -+#: elf/../sysdeps/generic/readelflib.c:76
 229.322 -+#, c-format
 229.323 -+msgid "%s is not a shared object file (Type: %d).\n"
 229.324 -+msgstr "%s nie je zdieµaný objektový súbor (Typ: %d).\n"
 229.325 -+
 229.326 -+#: elf/ldconfig.c:415
 229.327 -+#, c-format
 229.328 -+msgid "%s is not a symbolic link\n"
 229.329 -+msgstr "%s nie je symbolický odkaz\n"
 229.330 -+
 229.331 -+#: elf/readlib.c:157
 229.332 -+#, c-format
 229.333 -+msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
 229.334 -+msgstr "%s nie je ELF súbor - na zaèiatku obsahujé chybné magické bajty.\n"
 229.335 -+
 229.336 -+#: assert/assert.c:52
 229.337 - #, c-format
 229.338 - msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
 229.339 - msgstr "%s%s%s:%u: %s%sPredpoklad `%s' nesplnený.\n"
 229.340 - 
 229.341 --#: assert/assert-perr.c:52
 229.342 -+#: assert/assert-perr.c:54
 229.343 - #, c-format
 229.344 - msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
 229.345 - msgstr "%s%s%s:%u: %s%sNeoèakávaná chyba: %s.\n"
 229.346 - 
 229.347 --#: stdio-common/psignal.c:47
 229.348 -+#: stdio-common/psignal.c:48
 229.349 - #, c-format
 229.350 - msgid "%s%sUnknown signal %d\n"
 229.351 - msgstr "%s%sNeznámy signál %d\n"
 229.352 - 
 229.353 --#: timezone/zic.c:2201
 229.354 -+#: timezone/zic.c:2228
 229.355 - #, c-format
 229.356 - msgid "%s: %d did not sign extend correctly\n"
 229.357 - msgstr "%s: nesprávne roz¹írenie znamienka pre %d\n"
 229.358 - 
 229.359 --#: locale/programs/charmap.c:261
 229.360 -+#: locale/programs/charmap.c:326
 229.361 - #, c-format
 229.362 - msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
 229.363 - msgstr "%s: <mb_cur_max> musí by» väè¹ie ako <mb_cur_min>\n"
 229.364 - 
 229.365 --#: sunrpc/rpc_main.c:422
 229.366 -+#: sunrpc/rpc_main.c:423
 229.367 - #, c-format
 229.368 - msgid "%s: C preprocessor failed with exit code %d\n"
 229.369 - msgstr "%s: C preprocesor zlyhal s výstupným kódom %d\n"
 229.370 - 
 229.371 --#: sunrpc/rpc_main.c:419
 229.372 -+#: sunrpc/rpc_main.c:420
 229.373 - #, c-format
 229.374 - msgid "%s: C preprocessor failed with signal %d\n"
 229.375 - msgstr "%s: C preprocesor zlyhal so signálom %d\n"
 229.376 - 
 229.377 --#: timezone/zic.c:1469
 229.378 -+#: timezone/zic.c:1494
 229.379 - #, c-format
 229.380 - msgid "%s: Can't create %s: %s\n"
 229.381 - msgstr "%s: Nie je mo¾né vytvori» %s: %s\n"
 229.382 - 
 229.383 --#: timezone/zic.c:2179
 229.384 -+#: timezone/zic.c:2206
 229.385 - #, c-format
 229.386 - msgid "%s: Can't create directory %s: %s\n"
 229.387 - msgstr "%s: Nie je mo¾né vytvori» adresár %s: %s\n"
 229.388 - 
 229.389 --#: timezone/zic.c:620
 229.390 -+#: timezone/zic.c:645
 229.391 - #, c-format
 229.392 - msgid "%s: Can't link from %s to %s: %s\n"
 229.393 - msgstr "%s: Nie je mo¾né vytvori» prepojenie z %s na %s: %s\n"
 229.394 - 
 229.395 --#: timezone/zic.c:794
 229.396 -+#: timezone/zic.c:819
 229.397 - #, c-format
 229.398 - msgid "%s: Can't open %s: %s\n"
 229.399 - msgstr "%s: Nie je mo¾né otvori» %s: %s\n"
 229.400 - 
 229.401 --#: timezone/zic.c:1459
 229.402 -+#: timezone/zic.c:1484
 229.403 - #, c-format
 229.404 - msgid "%s: Can't remove %s: %s\n"
 229.405 - msgstr "%s: Nie je mo¾né odstráni» %s: %s\n"
 229.406 - 
 229.407 --#: timezone/zic.c:863
 229.408 -+#: timezone/zic.c:630
 229.409 -+#, c-format
 229.410 -+msgid "%s: Can't unlink  %s: %s\n"
 229.411 -+msgstr "%s: Nie je mo¾né zmaza» %s: %s\n"
 229.412 -+
 229.413 -+#: timezone/zic.c:888
 229.414 - #, c-format
 229.415 - msgid "%s: Error closing %s: %s\n"
 229.416 - msgstr "%s: Chyba pri uzatváraní %s: %s\n"
 229.417 - 
 229.418 --#: timezone/zic.c:856
 229.419 -+#: timezone/zic.c:881
 229.420 - #, c-format
 229.421 - msgid "%s: Error reading %s\n"
 229.422 - msgstr "%s: Chyba pri èítaní %s\n"
 229.423 - 
 229.424 --#: timezone/zic.c:1535
 229.425 -+#: timezone/zdump.c:267
 229.426 - #, c-format
 229.427 --msgid "%s: Error writing %s\n"
 229.428 --msgstr "%s: Chyba pri zápise %s\n"
 229.429 -+msgid "%s: Error writing "
 229.430 -+msgstr "%s: Chyba pri zápise "
 229.431 - 
 229.432 --#: timezone/zdump.c:266
 229.433 -+#: timezone/zic.c:1560
 229.434 - #, c-format
 229.435 --msgid "%s: Error writing standard output "
 229.436 --msgstr "%s: Chyba pri zápise na ¹tandardný výstup "
 229.437 -+msgid "%s: Error writing %s\n"
 229.438 -+msgstr "%s: Chyba pri zápise %s\n"
 229.439 - 
 229.440 --#: timezone/zic.c:841
 229.441 -+#: timezone/zic.c:866
 229.442 - #, c-format
 229.443 - msgid "%s: Leap line in non leap seconds file %s\n"
 229.444 - msgstr "%s: Priestupný riadok v súbore nepriestupných sekúnd %s\n"
 229.445 -@@ -335,122 +395,551 @@
 229.446 - msgid "%s: Memory exhausted: %s\n"
 229.447 - msgstr "%s: Nedostatok pamäti: %s\n"
 229.448 - 
 229.449 --#: timezone/zic.c:524
 229.450 -+#: timezone/zic.c:525
 229.451 - #, c-format
 229.452 - msgid "%s: More than one -L option specified\n"
 229.453 - msgstr "%s: Voµba -L zadaná viac ako raz\n"
 229.454 - 
 229.455 --#: timezone/zic.c:484
 229.456 -+#: timezone/zic.c:485
 229.457 - #, c-format
 229.458 - msgid "%s: More than one -d option specified\n"
 229.459 - msgstr "%s: Voµba -d zadaná viac ako raz\n"
 229.460 - 
 229.461 --#: timezone/zic.c:494
 229.462 -+#: timezone/zic.c:495
 229.463 - #, c-format
 229.464 - msgid "%s: More than one -l option specified\n"
 229.465 - msgstr "%s: Voµba -l zadaná viac ako raz\n"
 229.466 - 
 229.467 --#: timezone/zic.c:504
 229.468 -+#: timezone/zic.c:505
 229.469 - #, c-format
 229.470 - msgid "%s: More than one -p option specified\n"
 229.471 - msgstr "%s: Voµba -p zadaná viac ako raz\n"
 229.472 - 
 229.473 --#: timezone/zic.c:514
 229.474 -+#: timezone/zic.c:515
 229.475 - #, c-format
 229.476 - msgid "%s: More than one -y option specified\n"
 229.477 - msgstr "%s: Voµba -y zadaná viac ako raz\n"
 229.478 - 
 229.479 --#: argp/argp-parse.c:640
 229.480 -+#: argp/argp-parse.c:646
 229.481 - #, c-format
 229.482 - msgid "%s: Too many arguments\n"
 229.483 - msgstr "%s: Priveµa argumentov\n"
 229.484 - 
 229.485 --#: login/programs/database.c:129
 229.486 -+#: locale/programs/ld-collate.c:457 locale/programs/ld-collate.c:483
 229.487 -+#: locale/programs/ld-collate.c:499
 229.488 -+#, c-format
 229.489 -+msgid "%s: `%s' mentioned more than once in definition of weight %d"
 229.490 -+msgstr "%s: `%s' spomenuté viac ako raz v definícii váhy %d"
 229.491 -+
 229.492 -+#: locale/programs/ld-collate.c:1323
 229.493 -+#, c-format
 229.494 -+msgid "%s: `%s' must be a character"
 229.495 -+msgstr "%s: `%s' musí by» znak"
 229.496 -+
 229.497 -+#: locale/programs/ld-address.c:248 locale/programs/ld-address.c:276
 229.498 -+#: locale/programs/ld-address.c:309 locale/programs/ld-address.c:321
 229.499 -+#, c-format
 229.500 -+msgid "%s: `%s' value does not match `%s' value"
 229.501 -+msgstr "%s: hodnota `%s' nezodpovedá hodnote `%s'"
 229.502 -+
 229.503 -+#: locale/programs/ld-monetary.c:835 locale/programs/ld-numeric.c:313
 229.504 -+#, c-format
 229.505 -+msgid "%s: `-1' must be last entry in `%s' field"
 229.506 -+msgstr "%s: `-1' musí by» posledným záznamom v poli `%s'"
 229.507 -+
 229.508 -+#: locale/programs/ld-collate.c:447 locale/programs/ld-collate.c:473
 229.509 -+#, c-format
 229.510 -+msgid "%s: `forward' and `backward' are mutually excluding each other"
 229.511 -+msgstr "%s: `forward' a `backward' sa navzájom vyluèujú"
 229.512 -+
 229.513 -+#: locale/programs/ld-collate.c:1515
 229.514 -+#, c-format
 229.515 -+msgid "%s: `position' must be used for a specific level in all sections or none"
 229.516 -+msgstr "%s: `position' musí by» pre danú úroveò pou¾itá vo v¹etkých sekciách, alebo v ¾iadnej"
 229.517 -+
 229.518 -+#: locale/programs/ld-ctype.c:2635 locale/programs/ld-ctype.c:2775
 229.519 -+#, c-format
 229.520 -+msgid "%s: `translit_start' section does not end with `translit_end'"
 229.521 -+msgstr "%s: sekcia `translit_start' nekonèí `translit_end'"
 229.522 -+
 229.523 -+#: locale/programs/ld-collate.c:1123
 229.524 -+#, c-format
 229.525 -+msgid "%s: byte sequence of first character of sequence is not lower than that of the last character"
 229.526 -+msgstr "%s: poradie bajtu prvého znaku sekvencie nie je men¹ie ako posledného"
 229.527 -+
 229.528 -+#: locale/programs/ld-collate.c:1081
 229.529 -+#, c-format
 229.530 -+msgid "%s: byte sequences of first and last character must have the same length"
 229.531 -+msgstr "%s: bajtové sekvencie prvého a posledného znaku musia ma» rovnakú då¾ku"
 229.532 -+
 229.533 -+#: locale/programs/ld-collate.c:3642
 229.534 -+#, c-format
 229.535 -+msgid "%s: cannot have `%s' as end of ellipsis range"
 229.536 -+msgstr "%s: `%s' nemô¾e by» koncovým znakom rozsahu pokraèovania"
 229.537 -+
 229.538 -+#: locale/programs/ld-collate.c:3308
 229.539 -+#, c-format
 229.540 -+msgid "%s: cannot reorder after %.*s: symbol not known"
 229.541 -+msgstr "%s: nie je mo¾né preradi» za %.*s: neznámy symbol"
 229.542 -+
 229.543 -+#: locale/programs/ld-ctype.c:2910 locale/programs/ld-ctype.c:2994
 229.544 -+#: locale/programs/ld-ctype.c:3014 locale/programs/ld-ctype.c:3035
 229.545 -+#: locale/programs/ld-ctype.c:3056 locale/programs/ld-ctype.c:3077
 229.546 -+#: locale/programs/ld-ctype.c:3098 locale/programs/ld-ctype.c:3138
 229.547 -+#: locale/programs/ld-ctype.c:3159 locale/programs/ld-ctype.c:3226
 229.548 -+#, c-format
 229.549 -+msgid "%s: character `%s' in charmap not representable with one byte"
 229.550 -+msgstr "%s: znak `%s' v znakovej mape nie je vyjadriteµný jedným bajtom"
 229.551 -+
 229.552 -+#: locale/programs/ld-ctype.c:3270 locale/programs/ld-ctype.c:3295
 229.553 - #, c-format
 229.554 --msgid "%s: cannot get modification time"
 229.555 --msgstr "%s: nie je mo¾né zisti» èas zmeny"
 229.556 -+msgid "%s: character `%s' needed as default value not representable with one byte"
 229.557 -+msgstr "%s: znak `%s' je potrebný ako prednastavená hodnota nevyjadriteµná jedným bajtom"
 229.558 - 
 229.559 --#: timezone/zic.c:1900
 229.560 -+#: locale/programs/ld-ctype.c:2905
 229.561 -+#, c-format
 229.562 -+msgid "%s: character `%s' not defined in charmap while needed as default value"
 229.563 -+msgstr "%s: znak `%s' nie je definovaný v mape znakov a je potrebný ako implicitná hodnota"
 229.564 -+
 229.565 -+#: locale/programs/ld-ctype.c:2989 locale/programs/ld-ctype.c:3009
 229.566 -+#: locale/programs/ld-ctype.c:3051 locale/programs/ld-ctype.c:3072
 229.567 -+#: locale/programs/ld-ctype.c:3093 locale/programs/ld-ctype.c:3133
 229.568 -+#: locale/programs/ld-ctype.c:3154 locale/programs/ld-ctype.c:3221
 229.569 -+#: locale/programs/ld-ctype.c:3263 locale/programs/ld-ctype.c:3288
 229.570 -+#, c-format
 229.571 -+msgid "%s: character `%s' not defined while needed as default value"
 229.572 -+msgstr "%s: znak `%s' nie je definovaný a je potrebný ako implicitná hodnota"
 229.573 -+
 229.574 -+#: timezone/zic.c:1927
 229.575 - #, c-format
 229.576 - msgid "%s: command was '%s', result was %d\n"
 229.577 - msgstr "%s: príkaz bol '%s', výsledok bol %d\n"
 229.578 - 
 229.579 --#: locale/programs/charmap.c:677 locale/programs/locfile.c:1008
 229.580 -+#: locale/programs/ld-time.c:225
 229.581 -+#, c-format
 229.582 -+msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
 229.583 -+msgstr "%s: príznak smeru v re»azci %Zd poµa `era' nie je '+' ani '-'"
 229.584 -+
 229.585 -+#: locale/programs/ld-time.c:237
 229.586 -+#, c-format
 229.587 -+msgid "%s: direction flag in string %Zd in `era' field is not a single character"
 229.588 -+msgstr "%s: príznak smeru v re»azci %Zd poµa `era' nie je jeden znak"
 229.589 -+
 229.590 -+#: locale/programs/ld-ctype.c:2727
 229.591 -+#, c-format
 229.592 -+msgid "%s: duplicate `default_missing' definition"
 229.593 -+msgstr "%s: duplicitná definícia `default_missing'"
 229.594 -+
 229.595 -+#: locale/programs/ld-identification.c:423
 229.596 -+#, c-format
 229.597 -+msgid "%s: duplicate category version definition"
 229.598 -+msgstr "%s: duplicitná definícia verzie kategórie"
 229.599 -+
 229.600 -+#: locale/programs/ld-collate.c:2711
 229.601 -+#, c-format
 229.602 -+msgid "%s: duplicate declaration of section `%s'"
 229.603 -+msgstr "%s: duplicitná deklarácia sekcie `%s'"
 229.604 -+
 229.605 -+#: locale/programs/ld-collate.c:2675
 229.606 -+#, c-format
 229.607 -+msgid "%s: duplicate definition of `%s'"
 229.608 -+msgstr "%s: duplicitná definícia `%s'"
 229.609 -+
 229.610 -+#: locale/programs/ld-collate.c:3691
 229.611 -+#, c-format
 229.612 -+msgid "%s: empty category description not allowed"
 229.613 -+msgstr "%s: prázdny popis kategórie nie je povolený"
 229.614 -+
 229.615 -+#: locale/programs/ld-collate.c:755
 229.616 -+#, c-format
 229.617 -+msgid "%s: empty weight string not allowed"
 229.618 -+msgstr "%s: prázdny re»azec váhy nie je povolený"
 229.619 -+
 229.620 -+#: locale/programs/charmap.c:831
 229.621 - #, c-format
 229.622 - msgid "%s: error in state machine"
 229.623 - msgstr "%s: chyba v stavovom automate"
 229.624 - 
 229.625 --#: posix/getopt.c:784
 229.626 -+#: locale/programs/ld-ctype.c:2483
 229.627 -+#, c-format
 229.628 -+msgid "%s: field `%s' declared more than once"
 229.629 -+msgstr "%s: pole `%s' deklarované viac ako raz"
 229.630 -+
 229.631 -+#: locale/programs/ld-ctype.c:1525 locale/programs/ld-ctype.c:1650
 229.632 -+#: locale/programs/ld-ctype.c:1756 locale/programs/ld-ctype.c:2346
 229.633 -+#: locale/programs/ld-ctype.c:3329
 229.634 -+#, c-format
 229.635 -+msgid "%s: field `%s' does not contain exactly ten entries"
 229.636 -+msgstr "%s: pole `%s' neobsahuje presne desa» polo¾iek"
 229.637 -+
 229.638 -+#: locale/programs/ld-address.c:154 locale/programs/ld-address.c:205
 229.639 -+#: locale/programs/ld-address.c:230 locale/programs/ld-address.c:259
 229.640 -+#: locale/programs/ld-name.c:115 locale/programs/ld-telephone.c:117
 229.641 -+#, c-format
 229.642 -+msgid "%s: field `%s' must not be empty"
 229.643 -+msgstr "%s: pole `%s' nesmie by» prázdne"
 229.644 -+
 229.645 -+#: locale/programs/ld-address.c:142 locale/programs/ld-address.c:197
 229.646 -+#: locale/programs/ld-address.c:224 locale/programs/ld-address.c:284
 229.647 -+#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:315
 229.648 -+#: locale/programs/ld-measurement.c:104 locale/programs/ld-monetary.c:244
 229.649 -+#: locale/programs/ld-monetary.c:260 locale/programs/ld-name.c:104
 229.650 -+#: locale/programs/ld-numeric.c:113 locale/programs/ld-numeric.c:127
 229.651 -+#: locale/programs/ld-paper.c:101 locale/programs/ld-paper.c:109
 229.652 -+#: locale/programs/ld-telephone.c:105
 229.653 -+#, c-format
 229.654 -+msgid "%s: field `%s' not defined"
 229.655 -+msgstr "%s: pole `%s' nie je definované"
 229.656 -+
 229.657 -+#: locale/programs/ld-messages.c:115 locale/programs/ld-messages.c:148
 229.658 -+#, c-format
 229.659 -+msgid "%s: field `%s' undefined"
 229.660 -+msgstr "%s: pole `%s' nedefinované"
 229.661 -+
 229.662 -+#: locale/programs/ld-time.c:258
 229.663 -+#, c-format
 229.664 -+msgid "%s: garbage at end of offset value in string %Zd in `era' field"
 229.665 -+msgstr "%s: smetie za koncom hodnoty posunutia v re»azci %Zd poµa `era'"
 229.666 -+
 229.667 -+#: locale/programs/ld-time.c:318
 229.668 -+#, c-format
 229.669 -+msgid "%s: garbage at end of starting date in string %Zd in `era' field "
 229.670 -+msgstr "%s: smetie za koncom poèiatoèného dátumu v re»azci %Zd poµa `era' "
 229.671 -+
 229.672 -+#: locale/programs/ld-time.c:395
 229.673 -+#, c-format
 229.674 -+msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
 229.675 -+msgstr "%s: smetie za koncom koncového dátumu v re»azci %Zd poµa `era'"
 229.676 -+
 229.677 -+#: posix/getopt.c:795
 229.678 - #, c-format
 229.679 - msgid "%s: illegal option -- %c\n"
 229.680 - msgstr "%s: neprípustná voµba -- %c\n"
 229.681 - 
 229.682 --#: posix/getopt.c:787
 229.683 -+#: locale/programs/ld-address.c:573 locale/programs/ld-collate.c:3717
 229.684 -+#: locale/programs/ld-ctype.c:2844 locale/programs/ld-identification.c:437
 229.685 -+#: locale/programs/ld-measurement.c:229 locale/programs/ld-messages.c:324
 229.686 -+#: locale/programs/ld-monetary.c:932 locale/programs/ld-name.c:298
 229.687 -+#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:231
 229.688 -+#: locale/programs/ld-telephone.c:306 locale/programs/ld-time.c:1170
 229.689 -+#, c-format
 229.690 -+msgid "%s: incomplete `END' line"
 229.691 -+msgstr "%s: nekompletný riadok `END'"
 229.692 -+
 229.693 -+#: locale/programs/ld-address.c:166
 229.694 -+msgid "%s: invalid escape `%%%c' sequence in field `%s'"
 229.695 -+msgstr "%s: neprípustná escape `%%%x' sekvencia v poli `%s'"
 229.696 -+
 229.697 -+#: locale/programs/ld-name.c:127 locale/programs/ld-telephone.c:126
 229.698 -+#: locale/programs/ld-telephone.c:150
 229.699 -+#, c-format
 229.700 -+msgid "%s: invalid escape sequence in field `%s'"
 229.701 -+msgstr "%s: chybná escape-sekvencia v poli `%s'"
 229.702 -+
 229.703 -+#: locale/programs/ld-time.c:250
 229.704 -+#, c-format
 229.705 -+msgid "%s: invalid number for offset in string %Zd in `era' field"
 229.706 -+msgstr "%s: neprípustné èíslo pre posunutie v re»azci %Zd poµa `era'"
 229.707 -+
 229.708 -+#: locale/programs/ld-collate.c:3143
 229.709 -+#, c-format
 229.710 -+msgid "%s: invalid number of sorting rules"
 229.711 -+msgstr "%s: chybný poèet pravidiel triedenia"
 229.712 -+
 229.713 -+#: posix/getopt.c:798
 229.714 - #, c-format
 229.715 - msgid "%s: invalid option -- %c\n"
 229.716 - msgstr "%s: chybná voµba -- %c\n"
 229.717 - 
 229.718 --#: posix/getopt.c:707
 229.719 -+#: locale/programs/ld-time.c:309
 229.720 -+#, c-format
 229.721 -+msgid "%s: invalid starting date in string %Zd in `era' field"
 229.722 -+msgstr "%s: neprípustný poèiatoèný dátum v re»azci %Zd poµa `era'"
 229.723 -+
 229.724 -+#: locale/programs/ld-time.c:386
 229.725 -+#, c-format
 229.726 -+msgid "%s: invalid stopping date in string %Zd in `era' field"
 229.727 -+msgstr "%s: neprípustný koncový dátum v re»azci %d poµa `era'"
 229.728 -+
 229.729 -+#: locale/programs/ld-measurement.c:112
 229.730 -+#, c-format
 229.731 -+msgid "%s: invalid value for field `%s'"
 229.732 -+msgstr "%s: neprípustná hodnota poµa `%s'"
 229.733 -+
 229.734 -+#: locale/programs/ld-address.c:242 locale/programs/ld-address.c:270
 229.735 -+#, c-format
 229.736 -+msgid "%s: language abbreviation `%s' not defined"
 229.737 -+msgstr "%s: skratka jazyka `%s' nie je definovaná"
 229.738 -+
 229.739 -+#: locale/programs/ld-collate.c:3223 locale/programs/ld-collate.c:3346
 229.740 -+#: locale/programs/ld-collate.c:3695
 229.741 -+#, c-format
 229.742 -+msgid "%s: missing `order_end' keyword"
 229.743 -+msgstr "%s: chýbajúce kµúèové slovo `order_end'"
 229.744 -+
 229.745 -+#: locale/programs/ld-collate.c:3360 locale/programs/ld-collate.c:3707
 229.746 -+#, c-format
 229.747 -+msgid "%s: missing `reorder-end' keyword"
 229.748 -+msgstr "%s: chýbajúce kµúèové slovo `reorder-end'"
 229.749 -+
 229.750 -+#: locale/programs/ld-collate.c:3710
 229.751 -+#, c-format
 229.752 -+msgid "%s: missing `reorder-sections-end' keyword"
 229.753 -+msgstr "%s: chýbajúce kµúèové slovo `reorder-sections-end'"
 229.754 -+
 229.755 -+#: locale/programs/ld-time.c:435
 229.756 -+#, c-format
 229.757 -+msgid "%s: missing era format in string %Zd in `era' field"
 229.758 -+msgstr "%s: chýba formát éry v re»azci %Zd v poli `era'"
 229.759 -+
 229.760 -+#: locale/programs/ld-time.c:423
 229.761 -+#, c-format
 229.762 -+msgid "%s: missing era name in string %Zd in `era' field"
 229.763 -+msgstr "%s: chýba meno éry v re»azci %Zd v poli `era'"
 229.764 -+
 229.765 -+#: locale/programs/ld-collate.c:3119
 229.766 -+#, c-format
 229.767 -+msgid "%s: multiple order definitions for section `%s'"
 229.768 -+msgstr "%s: viacnásobná definícia poradia pre sekciu `%s'"
 229.769 -+
 229.770 -+#: locale/programs/ld-collate.c:3169
 229.771 -+#, c-format
 229.772 -+msgid "%s: multiple order definitions for unnamed section"
 229.773 -+msgstr "%s: viacnásobná definícia poradia pre sekciu bez mena"
 229.774 -+
 229.775 -+#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:170
 229.776 -+#, c-format
 229.777 -+msgid "%s: no correct regular expression for field `%s': %s"
 229.778 -+msgstr "%s: pre pole `%s' neexistuje korektný regulérny výraz: %s"
 229.779 -+
 229.780 -+#: locale/programs/ld-identification.c:169
 229.781 -+#, c-format
 229.782 -+msgid "%s: no identification for category `%s'"
 229.783 -+msgstr "%s: kategória `%s' nemá identifikáciu"
 229.784 -+
 229.785 -+#: locale/programs/ld-ctype.c:2753
 229.786 -+#, c-format
 229.787 -+msgid "%s: no representable `default_missing' definition found"
 229.788 -+msgstr "%s: nenájdená zobraziteµná definícia `default_missing'"
 229.789 -+
 229.790 -+#: locale/programs/ld-collate.c:591
 229.791 -+#, c-format
 229.792 -+msgid "%s: not enough sorting rules"
 229.793 -+msgstr "%s: nedostatoèný poèet pravidiel triedenia"
 229.794 -+
 229.795 -+#: locale/programs/ld-address.c:295
 229.796 -+#, c-format
 229.797 -+msgid "%s: numeric country code `%d' not valid"
 229.798 -+msgstr "%s: èíselný kód krajiny `%d' nie je platný"
 229.799 -+
 229.800 -+#: posix/getopt.c:718
 229.801 - #, c-format
 229.802 - msgid "%s: option `%c%s' doesn't allow an argument\n"
 229.803 - msgstr "%s: voµba `%c%s' nedovoµuje pou¾i» argument\n"
 229.804 - 
 229.805 --#: posix/getopt.c:677
 229.806 -+#: posix/getopt.c:688
 229.807 - #, c-format
 229.808 - msgid "%s: option `%s' is ambiguous\n"
 229.809 - msgstr "%s: voµba `%s' nie je jednoznaèná\n"
 229.810 - 
 229.811 --#: posix/getopt.c:725 posix/getopt.c:898
 229.812 -+#: posix/getopt.c:736 posix/getopt.c:909
 229.813 - #, c-format
 229.814 - msgid "%s: option `%s' requires an argument\n"
 229.815 - msgstr "%s: voµba `%s' vy¾aduje argument\n"
 229.816 - 
 229.817 --#: posix/getopt.c:702
 229.818 -+#: posix/getopt.c:713
 229.819 - #, c-format
 229.820 - msgid "%s: option `--%s' doesn't allow an argument\n"
 229.821 - msgstr "%s: voµba `--%s' nedovoµuje pou¾i» argument\n"
 229.822 - 
 229.823 --#: posix/getopt.c:882
 229.824 -+#: posix/getopt.c:893
 229.825 - #, c-format
 229.826 - msgid "%s: option `-W %s' doesn't allow an argument\n"
 229.827 - msgstr "%s: voµba `-W %s' nedovoµuje pou»i» argument\n"
 229.828 - 
 229.829 --#: posix/getopt.c:864
 229.830 -+#: posix/getopt.c:875
 229.831 - #, c-format
 229.832 - msgid "%s: option `-W %s' is ambiguous\n"
 229.833 - msgstr "%s: voµba `-W %s' nie je jednoznaèná\n"
 229.834 - 
 229.835 --#: posix/getopt.c:817 posix/getopt.c:947
 229.836 -+#: posix/getopt.c:828 posix/getopt.c:958
 229.837 - #, c-format
 229.838 - msgid "%s: option requires an argument -- %c\n"
 229.839 - msgstr "%s: voµba vy¾aduje argument -- %c\n"
 229.840 - 
 229.841 --#: sunrpc/rpc_main.c:287
 229.842 -+#: locale/programs/ld-collate.c:1314 locale/programs/ld-collate.c:3654
 229.843 -+#, c-format
 229.844 -+msgid "%s: order for `%.*s' already defined at %s:%Zu"
 229.845 -+msgstr "%s: poradie pre `%.*s' je u¾ definované na %s:%Zu"
 229.846 -+
 229.847 -+#: locale/programs/ld-collate.c:3297
 229.848 -+#, c-format
 229.849 -+msgid "%s: order for collating element %.*s not yet defined"
 229.850 -+msgstr "%s: poradie pre element triedenia `%.*s' e¹te nebolo definované"
 229.851 -+
 229.852 -+#: locale/programs/ld-collate.c:3281
 229.853 -+#, c-format
 229.854 -+msgid "%s: order for collating symbol %.*s not yet defined"
 229.855 -+msgstr "%s: poradie pre symbol triedenia `%.*s' e¹te nebolo definované"
 229.856 -+
 229.857 -+#: sunrpc/rpc_main.c:289
 229.858 - #, c-format
 229.859 - msgid "%s: output would overwrite %s\n"
 229.860 - msgstr "%s: výstup by prepísal %s\n"
 229.861 - 
 229.862 --#: timezone/zic.c:848 timezone/zic.c:1262 timezone/zic.c:1287
 229.863 -+#: timezone/zic.c:873 timezone/zic.c:1287 timezone/zic.c:1312
 229.864 - #, c-format
 229.865 - msgid "%s: panic: Invalid l_value %d\n"
 229.866 - msgstr "%s: fatálna chyba: Neprípustná l_hodnota %d\n"
 229.867 - 
 229.868 --#: locale/programs/charmap.c:684 locale/programs/repertoire.c:289
 229.869 -+#: locale/programs/charmap.c:838 locale/programs/ld-address.c:592
 229.870 -+#: locale/programs/ld-collate.c:2590 locale/programs/ld-collate.c:3735
 229.871 -+#: locale/programs/ld-ctype.c:2107 locale/programs/ld-ctype.c:2864
 229.872 -+#: locale/programs/ld-identification.c:456
 229.873 -+#: locale/programs/ld-measurement.c:248 locale/programs/ld-messages.c:342
 229.874 -+#: locale/programs/ld-monetary.c:950 locale/programs/ld-name.c:316
 229.875 -+#: locale/programs/ld-numeric.c:386 locale/programs/ld-paper.c:249
 229.876 -+#: locale/programs/ld-telephone.c:324 locale/programs/ld-time.c:1188
 229.877 -+#: locale/programs/locfile.h:103 locale/programs/repertoire.c:325
 229.878 - #, c-format
 229.879 - msgid "%s: premature end of file"
 229.880 - msgstr "%s: predèasný koniec súboru"
 229.881 - 
 229.882 --#: sunrpc/rpc_main.c:294
 229.883 -+#: locale/programs/ld-collate.c:3394 locale/programs/ld-collate.c:3580
 229.884 -+#, c-format
 229.885 -+msgid "%s: section `%.*s' not known"
 229.886 -+msgstr "%s: neznáma sekcia `%.*s'"
 229.887 -+
 229.888 -+#: locale/programs/ld-time.c:337
 229.889 -+#, c-format
 229.890 -+msgid "%s: starting date is invalid in string %Zd in `era' field"
 229.891 -+msgstr "%s: neprípustný poèiatoèný dátum v re»azci %Zd v poli `era'"
 229.892 -+
 229.893 -+#: locale/programs/ld-time.c:414
 229.894 -+#, c-format
 229.895 -+msgid "%s: stopping date is invalid in string %Zd in `era' field"
 229.896 -+msgstr "%s: neprípustný koncový dátum v re»azci %d v poli `era'"
 229.897 -+
 229.898 -+#: locale/programs/ld-collate.c:1248
 229.899 -+#, c-format
 229.900 -+msgid "%s: symbolic range ellipsis must not be direct followed by `order_end'"
 229.901 -+msgstr "%s: pokraèovanie symbolického rozsahu nesmie by» priamo nasledované `order_end'"
 229.902 -+
 229.903 -+#: locale/programs/ld-collate.c:1244
 229.904 -+#, c-format
 229.905 -+msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
 229.906 -+msgstr "%s: pokraèovanie symbolického rozsahu nesmie priamo nasledo» `order_start'"
 229.907 -+
 229.908 -+#: locale/programs/ld-address.c:583 locale/programs/ld-collate.c:518
 229.909 -+#: locale/programs/ld-collate.c:570 locale/programs/ld-collate.c:865
 229.910 -+#: locale/programs/ld-collate.c:878 locale/programs/ld-collate.c:2581
 229.911 -+#: locale/programs/ld-collate.c:3726 locale/programs/ld-ctype.c:1840
 229.912 -+#: locale/programs/ld-ctype.c:2098 locale/programs/ld-ctype.c:2673
 229.913 -+#: locale/programs/ld-ctype.c:2855 locale/programs/ld-identification.c:447
 229.914 -+#: locale/programs/ld-measurement.c:239 locale/programs/ld-messages.c:333
 229.915 -+#: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:307
 229.916 -+#: locale/programs/ld-numeric.c:377 locale/programs/ld-paper.c:240
 229.917 -+#: locale/programs/ld-telephone.c:315 locale/programs/ld-time.c:1179
 229.918 -+#, c-format
 229.919 -+msgid "%s: syntax error"
 229.920 -+msgstr "%s: chyba syntaxe"
 229.921 -+
 229.922 -+#: locale/programs/ld-ctype.c:2178
 229.923 -+#, c-format
 229.924 -+msgid "%s: syntax error in definition of new character class"
 229.925 -+msgstr "%s: chyba syntaxe v definícii novej triedy znakov"
 229.926 -+
 229.927 -+#: locale/programs/ld-ctype.c:2193
 229.928 -+#, c-format
 229.929 -+msgid "%s: syntax error in definition of new character map"
 229.930 -+msgstr "%s: chyba syntaxe v definícii novej znakovej mapy"
 229.931 -+
 229.932 -+#: locale/programs/ld-ctype.c:3735
 229.933 -+#, c-format
 229.934 -+msgid "%s: table for class \"%s\": %lu bytes\n"
 229.935 -+msgstr "%s: tabuµka triedy \"%s\": %lu bajtov\n"
 229.936 -+
 229.937 -+#: locale/programs/ld-ctype.c:3803
 229.938 -+#, c-format
 229.939 -+msgid "%s: table for map \"%s\": %lu bytes\n"
 229.940 -+msgstr "%s: tabuµka mapy \"%s\": %lu bajtov\n"
 229.941 -+
 229.942 -+#: locale/programs/ld-ctype.c:3935
 229.943 -+#, c-format
 229.944 -+msgid "%s: table for width: %lu bytes\n"
 229.945 -+msgstr "%s: tabuµka ¹írky: %lu bajtov\n"
 229.946 -+
 229.947 -+#: locale/programs/ld-address.c:216
 229.948 -+#, c-format
 229.949 -+msgid "%s: terminology language code `%s' not defined"
 229.950 -+msgstr "%s: kód jazyka terminológie `%s' nie je definovaný"
 229.951 -+
 229.952 -+#: locale/programs/ld-collate.c:1054
 229.953 -+#, c-format
 229.954 -+msgid "%s: the start and the end symbol of a range must stand for characters"
 229.955 -+msgstr "%s: poèiatoèný a koncový symbol rozsahu musia zastupova» znaky"
 229.956 -+
 229.957 -+#: locale/programs/ld-time.c:464
 229.958 -+#, c-format
 229.959 -+msgid "%s: third operand for value of field `%s' must not be larger than %d"
 229.960 -+msgstr "%s: tretí operand hodnoty poµa `%s' nesmie by» väè¹í ako %d"
 229.961 -+
 229.962 -+#: locale/programs/ld-collate.c:555
 229.963 -+#, c-format
 229.964 -+msgid "%s: too many rules; first entry only had %d"
 229.965 -+msgstr "%s: priveµa pravidiel; prvý záznam mal iba %d"
 229.966 -+
 229.967 -+#: locale/programs/ld-collate.c:906
 229.968 -+#, c-format
 229.969 -+msgid "%s: too many values"
 229.970 -+msgstr "%s: priveµa hodnôt"
 229.971 -+
 229.972 -+#: locale/programs/ld-ctype.c:3639
 229.973 -+#, c-format
 229.974 -+msgid "%s: transliteration data from locale `%s' not available"
 229.975 -+msgstr "%s: transliteraèné údaje prostredia `%s' nie sú dostupné"
 229.976 -+
 229.977 -+#: sunrpc/rpc_main.c:296
 229.978 -+#, c-format
 229.979 -+msgid "%s: unable to open %s: %m\n"
 229.980 -+msgstr "%s: nie je mo¾né otvori» %s: %m\n"
 229.981 -+
 229.982 -+#: locale/programs/ld-collate.c:2849
 229.983 -+#, c-format
 229.984 -+msgid "%s: unknown character in collating symbol name"
 229.985 -+msgstr "%s: neznámy znak v názve symbolu triedenia"
 229.986 -+
 229.987 -+#: locale/programs/ld-collate.c:2981
 229.988 -+#, c-format
 229.989 -+msgid "%s: unknown character in equivalent definition name"
 229.990 -+msgstr "%s: neznámy znak v názve ekvivalentnej definície"
 229.991 -+
 229.992 -+#: locale/programs/ld-collate.c:2994
 229.993 -+#, c-format
 229.994 -+msgid "%s: unknown character in equivalent definition value"
 229.995 -+msgstr "%s: neznámy znak v hodnote ekvivalentnej definície"
 229.996 -+
 229.997 -+#: locale/programs/ld-time.c:1040
 229.998 -+#, c-format
 229.999 -+msgid "%s: unknown character in field `%s'"
229.1000 -+msgstr "%s: neznámy znak v poli `%s'"
229.1001 -+
229.1002 -+#: locale/programs/ld-collate.c:3091
229.1003 -+#, c-format
229.1004 -+msgid "%s: unknown section name `%s'"
229.1005 -+msgstr "%s: neznámy názov sekcie `%s'"
229.1006 -+
229.1007 -+#: locale/programs/ld-collate.c:3004
229.1008 - #, c-format
229.1009 --msgid "%s: unable to open "
229.1010 --msgstr "%s: Nie je mo¾né otvori» "
229.1011 -+msgid "%s: unknown symbol `%s' in equivalent definition"
229.1012 -+msgstr "%s: neznámy symbol `%s' v ekvivalentnej definícii"
229.1013 - 
229.1014 --#: posix/getopt.c:758
229.1015 -+#: posix/getopt.c:769
229.1016 - #, c-format
229.1017 - msgid "%s: unrecognized option `%c%s'\n"
229.1018 - msgstr "%s: nerozpoznaná voµba `%c%s'\n"
229.1019 - 
229.1020 --#: posix/getopt.c:754
229.1021 -+#: posix/getopt.c:765
229.1022 - #, c-format
229.1023 - msgid "%s: unrecognized option `--%s'\n"
229.1024 - msgstr "%s: nerozpoznaná voµba `--%s'\n"
229.1025 -@@ -458,35 +947,75 @@
229.1026 - #: timezone/zic.c:443
229.1027 - #, c-format
229.1028 - msgid ""
229.1029 --"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n"
229.1030 --"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
229.1031 -+"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
229.1032 -+"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
229.1033 - msgstr ""
229.1034 --"%s: Pou¾itie: %s [ -s ] [ -v ] [ -l lokálny_èas ] [ -p posix_pravidlá ]\n"
229.1035 -+"%s: Pou¾itie: %s [ -s ] [ -v ] [ -l lokálny_èas ] [ -p posix_pravidlá ] \\\n"
229.1036 - "\t[ -d adresár ] [ -L priestupné_sekundy ] [ -y typ_roku ] [ súbor ... ]\n"
229.1037 - 
229.1038 --#: timezone/zdump.c:174
229.1039 -+#: timezone/zdump.c:175
229.1040 - #, c-format
229.1041 - msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
229.1042 - msgstr "%s: Pou¾itie: %s [ -v ] [ -c limit ] meno_zóny ...\n"
229.1043 - 
229.1044 --#: sunrpc/rpc_main.c:307
229.1045 -+#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:154
229.1046 -+#, c-format
229.1047 -+msgid "%s: value for field `%s' must not be an empty string"
229.1048 -+msgstr "%s: hodnota poµa `%s' nesmie by» prázdny re»azec"
229.1049 -+
229.1050 -+#: locale/programs/ld-monetary.c:250 locale/programs/ld-numeric.c:119
229.1051 -+#, c-format
229.1052 -+msgid "%s: value for field `%s' must not be the empty string"
229.1053 -+msgstr "%s: hodnota poµa `%s' nesmie by» prázdny re»azec"
229.1054 -+
229.1055 -+#: locale/programs/ld-monetary.c:232
229.1056 -+#, c-format
229.1057 -+msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
229.1058 -+msgstr "%s: hodnota poµa `int_curr_symbol' nezodpovedá platnému názvu v ISO 4217"
229.1059 -+
229.1060 -+#: locale/programs/ld-monetary.c:224
229.1061 -+#, c-format
229.1062 -+msgid "%s: value of field `int_curr_symbol' has wrong length"
229.1063 -+msgstr "%s: hodnota poµa `int_curr_symbol' má chybnú då¾ku"
229.1064 -+
229.1065 -+#: locale/programs/ld-monetary.c:857 locale/programs/ld-numeric.c:334
229.1066 -+#, c-format
229.1067 -+msgid "%s: values for field `%s' must be smaller than 127"
229.1068 -+msgstr "%s: hodnoty poµa `%s' musia by» men¹ie ako 127"
229.1069 -+
229.1070 -+#: locale/programs/ld-time.c:488
229.1071 -+#, c-format
229.1072 -+msgid "%s: values for field `%s' must not be larger than %d"
229.1073 -+msgstr "%s: hodnoty poµa `%s' nesmú by» väè¹ie ako %d"
229.1074 -+
229.1075 -+#: locale/programs/ld-time.c:472 locale/programs/ld-time.c:480
229.1076 -+#, c-format
229.1077 -+msgid "%s: values of field `%s' must not be larger than %d"
229.1078 -+msgstr "%s: hodnoty poµa `%s' nesmú by» väè¹ie ako %d"
229.1079 -+
229.1080 -+#: locale/programs/ld-collate.c:850
229.1081 - #, c-format
229.1082 --msgid "%s: while writing output: "
229.1083 --msgstr "%s: poèas zápisu výstupu: "
229.1084 -+msgid "%s: weights must use the same ellipsis symbol as the name"
229.1085 -+msgstr "%s: váhy musia ako názov pou¾i» rovnaký symbol pokraèovania"
229.1086 - 
229.1087 --#: argp/argp-parse.c:164
229.1088 -+#: sunrpc/rpc_main.c:308
229.1089 -+#, c-format
229.1090 -+msgid "%s: while writing output %s: %m"
229.1091 -+msgstr "%s: poèas zápisu výstupu %s: %m"
229.1092 -+
229.1093 -+#: argp/argp-parse.c:170
229.1094 - msgid "(PROGRAM ERROR) No version known!?"
229.1095 - msgstr "(CHYBA PROGRAMU) Verzia neznáma!?"
229.1096 - 
229.1097 --#: argp/argp-parse.c:781
229.1098 -+#: argp/argp-parse.c:787
229.1099 - msgid "(PROGRAM ERROR) Option should have been recognized!?"
229.1100 - msgstr "(CHYBA PROGRAMU) Voµba by mala by» rozpoznaná!?"
229.1101 - 
229.1102 --#: nis/nis_print.c:129
229.1103 -+#: nis/nis_print.c:130
229.1104 - msgid "(Unknown object)\n"
229.1105 - msgstr "(Neznámy objekt)\n"
229.1106 - 
229.1107 --#: sunrpc/clnt_perr.c:124
229.1108 -+#: sunrpc/clnt_perr.c:125
229.1109 - #, c-format
229.1110 - msgid "(unknown authentication error - %d)"
229.1111 - msgstr "(neznáma chyba pri overovaní toto¾nosti - %d)"
229.1112 -@@ -495,16 +1024,16 @@
229.1113 - msgid "(unknown)"
229.1114 - msgstr "(neznámy)"
229.1115 - 
229.1116 --#: elf/sprof.c:574
229.1117 -+#: elf/sprof.c:570
229.1118 - #, c-format
229.1119 - msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
229.1120 - msgstr "*** Zo súboru `%s' boli odstránené ladiace informácie: podrobná analýza nie je mo¾ná\n"
229.1121 - 
229.1122 --#: catgets/gencat.c:266
229.1123 -+#: catgets/gencat.c:282
229.1124 - msgid "*standard input*"
229.1125 - msgstr "*¹tandardný vstup*"
229.1126 - 
229.1127 --#: catgets/gencat.c:120
229.1128 -+#: catgets/gencat.c:125
229.1129 - msgid ""
229.1130 - "-o OUTPUT-FILE [INPUT-FILE]...\n"
229.1131 - "[OUTPUT-FILE [INPUT-FILE]...]"
229.1132 -@@ -512,30 +1041,36 @@
229.1133 - "-o VÝSTUPNÝ_SÚBOR [VSTUPNÝ_SÚBOR]...\n"
229.1134 - "[ VÝSTUPNÝ_SÚBOR [VSTUPNÝ_SÚBOR]...]"
229.1135 - 
229.1136 --#: stdio-common/../sysdeps/gnu/errlist.c:778
229.1137 -+#: stdio-common/../sysdeps/gnu/errlist.c:797
229.1138 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:115
229.1139 - msgid ".lib section in a.out corrupted"
229.1140 - msgstr "Po¹kodená sekcia .lib v a.out"
229.1141 - 
229.1142 --#: sunrpc/clnt_perr.c:110 sunrpc/clnt_perr.c:131
229.1143 -+#: sunrpc/clnt_perr.c:111 sunrpc/clnt_perr.c:132
229.1144 - #, c-format
229.1145 - msgid "; low version = %lu, high version = %lu"
229.1146 - msgstr "; ni¾¹ia verzia = %lu, vy¹¹ia verzia = %lu"
229.1147 - 
229.1148 --#: sunrpc/clnt_perr.c:117
229.1149 -+#: sunrpc/clnt_perr.c:118
229.1150 - msgid "; why = "
229.1151 - msgstr "; dôvod = "
229.1152 - 
229.1153 --#: locale/programs/charset.c:98
229.1154 -+#: locale/programs/charmap.c:999
229.1155 - #, c-format
229.1156 - msgid "<%s> and <%s> are illegal names for range"
229.1157 - msgstr "<%s> and <%s> sú neprípustné názvy pre rozsah"
229.1158 - 
229.1159 --#: locale/programs/ld-ctype.c:342
229.1160 -+#: locale/programs/repertoire.c:448
229.1161 -+#, c-format
229.1162 -+msgid "<%s> and <%s> are invalid names for range"
229.1163 -+msgstr "<%s> a <%s> sú neprípustné názvy pre rozsah"
229.1164 -+
229.1165 -+#: locale/programs/ld-ctype.c:565 locale/programs/ld-ctype.c:600
229.1166 - #, c-format
229.1167 - msgid "<SP> character must not be in class `%s'"
229.1168 - msgstr "<SP> znak nesmie by» v triede `%s'"
229.1169 - 
229.1170 --#: locale/programs/ld-ctype.c:330
229.1171 -+#: locale/programs/ld-ctype.c:553 locale/programs/ld-ctype.c:589
229.1172 - #, c-format
229.1173 - msgid "<SP> character not in class `%s'"
229.1174 - msgstr "<SP> znak nie je v triede `%s'"
229.1175 -@@ -543,102 +1078,149 @@
229.1176 - #. TRANS The experienced user will know what is wrong.
229.1177 - #. TRANS @c This error code is a joke.  Its perror text is part of the joke.
229.1178 - #. TRANS @c Don't change it.
229.1179 --#: stdio-common/../sysdeps/gnu/errlist.c:603
229.1180 -+#: stdio-common/../sysdeps/gnu/errlist.c:622
229.1181 - msgid "?"
229.1182 - msgstr "?"
229.1183 - 
229.1184 --#: sysdeps/unix/sysv/linux/siglist.h:27
229.1185 -+#: sysdeps/generic/siglist.h:34
229.1186 - msgid "Aborted"
229.1187 - msgstr "Zru¹ené"
229.1188 - 
229.1189 --#: nis/nis_print.c:318
229.1190 -+#: nis/nis_print.c:321
229.1191 - msgid "Access Rights : "
229.1192 - msgstr "Prístupové práva : "
229.1193 - 
229.1194 --#: stdio-common/../sysdeps/gnu/errlist.c:774
229.1195 -+#: stdio-common/../sysdeps/gnu/errlist.c:793
229.1196 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:114
229.1197 - msgid "Accessing a corrupted shared library"
229.1198 - msgstr "Prístup k po¹kodenej zdieµanej kni¾nici"
229.1199 - 
229.1200 - #. TRANS The requested socket address is already in use.  @xref{Socket Addresses}.
229.1201 --#: stdio-common/../sysdeps/gnu/errlist.c:366
229.1202 -+#: stdio-common/../sysdeps/gnu/errlist.c:367
229.1203 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:155
229.1204 - msgid "Address already in use"
229.1205 - msgstr "Adresa je pou¾ívaná"
229.1206 - 
229.1207 --#: posix/../sysdeps/posix/gai_strerror.c:30
229.1208 -+#: posix/../sysdeps/posix/gai_strerror.c:31
229.1209 - msgid "Address family for hostname not supported"
229.1210 - msgstr "Trieda adries nie je podporovaná poèítaèom"
229.1211 - 
229.1212 - #. TRANS The address family specified for a socket is not supported; it is
229.1213 - #. TRANS inconsistent with the protocol being used on the socket.  @xref{Sockets}.
229.1214 --#: stdio-common/../sysdeps/gnu/errlist.c:361
229.1215 -+#: stdio-common/../sysdeps/gnu/errlist.c:362
229.1216 - msgid "Address family not supported by protocol"
229.1217 - msgstr "Trieda adries nie je podporovaná protokolom"
229.1218 - 
229.1219 --#: stdio-common/../sysdeps/gnu/errlist.c:742
229.1220 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:154
229.1221 -+msgid "Address family not supported by protocol family"
229.1222 -+msgstr "Trieda adries nie je podporovaná rodinou protokolov"
229.1223 -+
229.1224 -+#: stdio-common/../sysdeps/gnu/errlist.c:761
229.1225 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:98
229.1226 - msgid "Advertise error"
229.1227 - msgstr "Chyba pri zverejnení"
229.1228 - 
229.1229 --#: stdio-common/../sysdeps/unix/siglist.c:39
229.1230 --#: sysdeps/unix/sysv/linux/siglist.h:33
229.1231 -+#: stdio-common/../sysdeps/unix/siglist.c:40 sysdeps/generic/siglist.h:40
229.1232 - msgid "Alarm clock"
229.1233 - msgstr "Budík"
229.1234 - 
229.1235 -+#: malloc/memusagestat.c:57
229.1236 -+msgid "Also draw graph for total memory consumption"
229.1237 -+msgstr "Vykreslí aj graf celkovej spotreby pamäti"
229.1238 -+
229.1239 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:83
229.1240 -+msgid "Anode table overflow"
229.1241 -+msgstr "Preteèenie tabuµky anode"
229.1242 -+
229.1243 -+#: intl/tst-gettext2.c:37
229.1244 -+msgid "Another string for testing."
229.1245 -+msgstr "Iný re»azec pre testovanie."
229.1246 -+
229.1247 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:37
229.1248 -+msgid "Arg list too long"
229.1249 -+msgstr "Príli¹ dlhý zoznam argumentov"
229.1250 -+
229.1251 - #. TRANS Argument list too long; used when the arguments passed to a new program
229.1252 - #. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
229.1253 - #. TRANS File}) occupy too much memory space.  This condition never arises in the
229.1254 - #. TRANS GNU system.
229.1255 --#: stdio-common/../sysdeps/gnu/errlist.c:69
229.1256 -+#: stdio-common/../sysdeps/gnu/errlist.c:70
229.1257 - msgid "Argument list too long"
229.1258 - msgstr "Príli¹ dlhý zoznam argumentov"
229.1259 - 
229.1260 --#: nis/nis_error.c:65
229.1261 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:63
229.1262 -+msgid "Argument out of domain"
229.1263 -+msgstr "Argument mimo domény"
229.1264 -+
229.1265 -+#: nis/nis_error.c:66
229.1266 - msgid "Attempt to remove a non-empty table"
229.1267 - msgstr "Pokus o odstránenie neprázdnej tabuµky"
229.1268 - 
229.1269 --#: stdio-common/../sysdeps/gnu/errlist.c:782
229.1270 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:116
229.1271 -+msgid "Attempting to link in more shared libraries than system limit"
229.1272 -+msgstr "Pokus o pou¾itie viac zdieµaných kni¾níc, ako je systémový limit"
229.1273 -+
229.1274 -+#: stdio-common/../sysdeps/gnu/errlist.c:801
229.1275 - msgid "Attempting to link in too many shared libraries"
229.1276 - msgstr "Pokus o pou¾itie priveµa zdieµaných kni¾níc"
229.1277 - 
229.1278 --#: sunrpc/clnt_perr.c:273
229.1279 -+#: sunrpc/clnt_perr.c:329
229.1280 - msgid "Authentication OK"
229.1281 - msgstr "Overenie práv úspe¹né"
229.1282 - 
229.1283 - #. TRANS ???
229.1284 --#: stdio-common/../sysdeps/gnu/errlist.c:561
229.1285 -+#: stdio-common/../sysdeps/gnu/errlist.c:562
229.1286 - msgid "Authentication error"
229.1287 - msgstr "Overenie práv neúspe¹né"
229.1288 - 
229.1289 --#: nis/nis_print.c:105
229.1290 -+#: nis/nis_print.c:106
229.1291 - msgid "BOGUS OBJECT\n"
229.1292 - msgstr "POCHYBNÝ OBJEKT\n"
229.1293 - 
229.1294 - #. TRANS Bad address; an invalid pointer was detected.
229.1295 - #. TRANS In the GNU system, this error never happens; you get a signal instead.
229.1296 --#: stdio-common/../sysdeps/gnu/errlist.c:114
229.1297 -+#: stdio-common/../sysdeps/gnu/errlist.c:115
229.1298 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:44
229.1299 - msgid "Bad address"
229.1300 - msgstr "Chybná adresa"
229.1301 - 
229.1302 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:80
229.1303 -+msgid "Bad exchange descriptor"
229.1304 -+msgstr "Chybný exchange deskriptor"
229.1305 -+
229.1306 - #. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
229.1307 - #. TRANS closed or reading from a descriptor open only for writing (or vice
229.1308 - #. TRANS versa).
229.1309 --#: stdio-common/../sysdeps/gnu/errlist.c:82
229.1310 -+#: stdio-common/../sysdeps/gnu/errlist.c:83
229.1311 - msgid "Bad file descriptor"
229.1312 - msgstr "Chybný deskriptor súboru"
229.1313 - 
229.1314 --#: stdio-common/../sysdeps/gnu/errlist.c:730
229.1315 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:39
229.1316 -+msgid "Bad file number"
229.1317 -+msgstr "Chybné èíslo súboru"
229.1318 -+
229.1319 -+#: stdio-common/../sysdeps/gnu/errlist.c:749
229.1320 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:87
229.1321 - msgid "Bad font file format"
229.1322 - msgstr "Chybný formát súboru rezov písma"
229.1323 - 
229.1324 --#: stdio-common/../sysdeps/gnu/errlist.c:622
229.1325 -+#: stdio-common/../sysdeps/gnu/errlist.c:641
229.1326 - msgid "Bad message"
229.1327 - msgstr "Chybná správa"
229.1328 - 
229.1329 --#: stdio-common/../sysdeps/unix/siglist.c:37
229.1330 --#: sysdeps/unix/sysv/linux/siglist.h:56
229.1331 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:84
229.1332 -+msgid "Bad request code"
229.1333 -+msgstr "Neprípustný kód ¾iadosti"
229.1334 -+
229.1335 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:81
229.1336 -+msgid "Bad request descriptor"
229.1337 -+msgstr "Neprípustný deskriptor ¾iadosti"
229.1338 -+
229.1339 -+#: stdio-common/../sysdeps/unix/siglist.c:38 sysdeps/generic/siglist.h:63
229.1340 - msgid "Bad system call"
229.1341 - msgstr "Chybné volanie systému"
229.1342 - 
229.1343 --#: posix/../sysdeps/posix/gai_strerror.c:32
229.1344 -+#: posix/../sysdeps/posix/gai_strerror.c:33
229.1345 - msgid "Bad value for ai_flags"
229.1346 - msgstr "Chybná hodnota ai_flags"
229.1347 - 
229.1348 -@@ -646,18 +1228,19 @@
229.1349 - msgid "Be strictly POSIX conform"
229.1350 - msgstr "Presný súlad s POSIX"
229.1351 - 
229.1352 --#: nis/nis_print.c:301
229.1353 -+#: nis/nis_print.c:302
229.1354 - msgid "Binary data\n"
229.1355 - msgstr "Binárne údaje\n"
229.1356 - 
229.1357 - #. TRANS A file that isn't a block special file was given in a situation that
229.1358 - #. TRANS requires one.  For example, trying to mount an ordinary file as a file
229.1359 - #. TRANS system in Unix gives this error.
229.1360 --#: stdio-common/../sysdeps/gnu/errlist.c:121
229.1361 -+#: stdio-common/../sysdeps/gnu/errlist.c:122
229.1362 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:45
229.1363 - msgid "Block device required"
229.1364 - msgstr "Vy¾adované blokové zariadenie"
229.1365 - 
229.1366 --#: sunrpc/pmap_rmt.c:347
229.1367 -+#: sunrpc/pmap_rmt.c:348
229.1368 - msgid "Broadcast poll problem"
229.1369 - msgstr "Problém pri volaní poll pre v¹eobecné vysielanie"
229.1370 - 
229.1371 -@@ -666,135 +1249,223 @@
229.1372 - #. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
229.1373 - #. TRANS or blocked.  Thus, your program will never actually see @code{EPIPE}
229.1374 - #. TRANS unless it has handled or blocked @code{SIGPIPE}.
229.1375 --#: stdio-common/../sysdeps/gnu/errlist.c:234
229.1376 --#: stdio-common/../sysdeps/unix/siglist.c:38
229.1377 --#: sysdeps/unix/sysv/linux/siglist.h:32
229.1378 -+#: stdio-common/../sysdeps/gnu/errlist.c:235
229.1379 -+#: stdio-common/../sysdeps/unix/siglist.c:39
229.1380 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:62
229.1381 -+#: sysdeps/generic/siglist.h:39
229.1382 - msgid "Broken pipe"
229.1383 - msgstr "Preru¹ená rúra"
229.1384 - 
229.1385 --#: stdio-common/../sysdeps/unix/siglist.c:35
229.1386 --#: sysdeps/unix/sysv/linux/siglist.h:30
229.1387 -+#: stdio-common/../sysdeps/unix/siglist.c:36 sysdeps/generic/siglist.h:37
229.1388 - msgid "Bus error"
229.1389 - msgstr "Chyba na zbernici"
229.1390 - 
229.1391 --#: nis/nis_print.c:45
229.1392 -+#: nis/nis_print.c:46
229.1393 - msgid "CDS"
229.1394 - msgstr "CDS"
229.1395 - 
229.1396 --#: stdio-common/../sysdeps/unix/siglist.c:49
229.1397 --#: sysdeps/unix/sysv/linux/siglist.h:43
229.1398 -+#: stdio-common/../sysdeps/unix/siglist.c:50 sysdeps/generic/siglist.h:50
229.1399 - msgid "CPU time limit exceeded"
229.1400 - msgstr "Prekroèený èasový limit pre procesor"
229.1401 - 
229.1402 --#: nis/nis_error.c:32
229.1403 -+#: nis/nis_error.c:33
229.1404 - msgid "Cache expired"
229.1405 - msgstr "®ivotnos» cache vypr¹ala"
229.1406 - 
229.1407 --#: stdio-common/../sysdeps/gnu/errlist.c:770
229.1408 -+#: stdio-common/../sysdeps/gnu/errlist.c:789
229.1409 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:113
229.1410 - msgid "Can not access a needed shared library"
229.1411 - msgstr "Prístup k potrebnej zdieµanej kni¾nici nie je mo¾ný"
229.1412 - 
229.1413 --#: nis/ypclnt.c:769
229.1414 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:117
229.1415 -+msgid "Can not exec a shared library directly"
229.1416 -+msgstr "Nie je mo¾né priamo spusti» zdieµanú kni¾nicu"
229.1417 -+
229.1418 -+#: nis/ypclnt.c:792
229.1419 - msgid "Can't bind to server which serves this domain"
229.1420 - msgstr "Pripojenie k serveru obsluhujúcemu túto doménu nie je mo¾né"
229.1421 - 
229.1422 --#: nis/ypclnt.c:781
229.1423 -+#: elf/ldconfig.c:934
229.1424 -+msgid "Can't chdir to /"
229.1425 -+msgstr "Nie je mo¾né zmeni» adresár na /"
229.1426 -+
229.1427 -+#: nis/ypclnt.c:804
229.1428 - msgid "Can't communicate with portmapper"
229.1429 - msgstr "Komunikácia s portmapperom nie je mo¾ná"
229.1430 - 
229.1431 --#: nis/ypclnt.c:783
229.1432 -+#: nis/ypclnt.c:806
229.1433 - msgid "Can't communicate with ypbind"
229.1434 - msgstr "Komunikácia s ypbind nie je mo¾ná"
229.1435 - 
229.1436 --#: nis/ypclnt.c:785
229.1437 -+#: nis/ypclnt.c:808
229.1438 - msgid "Can't communicate with ypserv"
229.1439 - msgstr "Komunikácia s ypserv nie je mo¾ná"
229.1440 - 
229.1441 -+#: elf/cache.c:359
229.1442 -+#, c-format
229.1443 -+msgid "Can't create temporary cache file %s"
229.1444 -+msgstr "Nie je mo¾né vytvori» doèasný cache súbor %s"
229.1445 -+
229.1446 -+#: elf/ldconfig.c:502
229.1447 -+#, c-format
229.1448 -+msgid "Can't find %s"
229.1449 -+msgstr "Nie je mo¾né nájs» %s"
229.1450 -+
229.1451 -+#: elf/ldconfig.c:440
229.1452 -+#, c-format
229.1453 -+msgid "Can't link %s to %s"
229.1454 -+msgstr "Nie je mo¾né vytvori» odkaz %s na %s"
229.1455 -+
229.1456 -+#: elf/ldconfig.c:518 elf/ldconfig.c:672
229.1457 -+#, c-format
229.1458 -+msgid "Can't lstat %s"
229.1459 -+msgstr "Zlyhal lstat %s"
229.1460 -+
229.1461 -+#: elf/cache.c:108 elf/ldconfig.c:955
229.1462 -+#, c-format
229.1463 -+msgid "Can't open cache file %s\n"
229.1464 -+msgstr "Nie je mo¾né otvori» cache súbor %s\n"
229.1465 -+
229.1466 -+#: elf/ldconfig.c:976
229.1467 -+#, c-format
229.1468 -+msgid "Can't open cache file directory %s\n"
229.1469 -+msgstr "Nie je mo¾né otvori» adresár cache súboru %s\n"
229.1470 -+
229.1471 -+#: elf/ldconfig.c:865
229.1472 -+#, c-format
229.1473 -+msgid "Can't open configuration file %s"
229.1474 -+msgstr "Nie je mo¾né otvori» konfiguraèný súbor %s"
229.1475 -+
229.1476 -+#: elf/ldconfig.c:621
229.1477 -+#, c-format
229.1478 -+msgid "Can't open directory %s"
229.1479 -+msgstr "Nie je mo¾né otvori» adresár %s"
229.1480 -+
229.1481 -+#: elf/cache.c:353
229.1482 -+#, c-format
229.1483 -+msgid "Can't remove old temporary cache file %s"
229.1484 -+msgstr "Nie je mo¾né zmaza» doèasný cache súbor %s"
229.1485 -+
229.1486 -+#: elf/ldconfig.c:405
229.1487 -+#, c-format
229.1488 -+msgid "Can't stat %s\n"
229.1489 -+msgstr "Zlyhal stat %s\n"
229.1490 -+
229.1491 -+#: elf/ldconfig.c:434
229.1492 -+#, c-format
229.1493 -+msgid "Can't unlink %s"
229.1494 -+msgstr "Nie je mo¾né odstráni» %s"
229.1495 -+
229.1496 - #. TRANS No memory available.  The system cannot allocate more virtual memory
229.1497 - #. TRANS because its capacity is full.
229.1498 --#: stdio-common/../sysdeps/gnu/errlist.c:103
229.1499 -+#: stdio-common/../sysdeps/gnu/errlist.c:104
229.1500 - msgid "Cannot allocate memory"
229.1501 - msgstr "Nie je mo¾né prideli» pamä»"
229.1502 - 
229.1503 - #. TRANS The requested socket address is not available; for example, you tried
229.1504 - #. TRANS to give a socket a name that doesn't match the local host name.
229.1505 - #. TRANS @xref{Socket Addresses}.
229.1506 --#: stdio-common/../sysdeps/gnu/errlist.c:373
229.1507 -+#: stdio-common/../sysdeps/gnu/errlist.c:374
229.1508 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:156
229.1509 - msgid "Cannot assign requested address"
229.1510 - msgstr "Priradenie po¾adovanej adresy nie je mo¾né"
229.1511 - 
229.1512 --#: sunrpc/pmap_rmt.c:264
229.1513 -+#: sunrpc/pmap_rmt.c:265
229.1514 - msgid "Cannot create socket for broadcast rpc"
229.1515 - msgstr "Nie je mo¾né vytvori» zásuvku pre broadcast rpc"
229.1516 - 
229.1517 --#: stdio-common/../sysdeps/gnu/errlist.c:786
229.1518 -+#: stdio-common/../sysdeps/gnu/errlist.c:805
229.1519 - msgid "Cannot exec a shared library directly"
229.1520 - msgstr "Nie je mo¾né priamo spusti» zdieµanú kni¾nicu"
229.1521 - 
229.1522 --#: sunrpc/rpc_main.c:1406
229.1523 -+#: elf/readlib.c:98
229.1524 -+#, c-format
229.1525 -+msgid "Cannot fstat file %s.\n"
229.1526 -+msgstr "Nie je mo¾né vykona» fstat() súboru %s.\n"
229.1527 -+
229.1528 -+#: sunrpc/rpc_main.c:1415
229.1529 - msgid "Cannot have more than one file generation flag!\n"
229.1530 - msgstr "Nie je mo¾né pou¾i» viac ako jeden príznak tvorby súboru!\n"
229.1531 - 
229.1532 --#: sunrpc/pmap_rmt.c:360
229.1533 -+#: elf/readlib.c:117
229.1534 -+#, c-format
229.1535 -+msgid "Cannot mmap file %s.\n"
229.1536 -+msgstr "Nie je mo¾né mmap-ova» súbor %s.\n"
229.1537 -+
229.1538 -+#: sunrpc/pmap_rmt.c:361
229.1539 - msgid "Cannot receive reply to broadcast"
229.1540 - msgstr "Nie je mo¾né prija» odpoveï na broadcast"
229.1541 - 
229.1542 --#: sunrpc/pmap_clnt.c:74
229.1543 -+#: sunrpc/pmap_clnt.c:136
229.1544 - msgid "Cannot register service"
229.1545 - msgstr "Nie je mo¾né zaregistrova» slu¾bu"
229.1546 - 
229.1547 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:173
229.1548 -+msgid "Cannot send after socket shutdown"
229.1549 -+msgstr "Nie je mo¾né vysiela» po ukonèení èinnosti komunikaèného bodu"
229.1550 -+
229.1551 - #. TRANS The socket has already been shut down.
229.1552 --#: stdio-common/../sysdeps/gnu/errlist.c:434
229.1553 -+#: stdio-common/../sysdeps/gnu/errlist.c:435
229.1554 - msgid "Cannot send after transport endpoint shutdown"
229.1555 - msgstr "Nie je mo¾né vysiela» po ukonèení èinnosti komunikaèného bodu"
229.1556 - 
229.1557 --#: sunrpc/pmap_rmt.c:322
229.1558 -+#: sunrpc/pmap_rmt.c:323
229.1559 - msgid "Cannot send broadcast packet"
229.1560 - msgstr "Nie je mo¾né vysla» broadcast balík"
229.1561 - 
229.1562 --#: sunrpc/pmap_rmt.c:271
229.1563 -+#: sunrpc/pmap_rmt.c:272
229.1564 - msgid "Cannot set socket option SO_BROADCAST"
229.1565 - msgstr "Nie je mo¾né nastavi» pre socket voµbu SO_BROADCAST"
229.1566 - 
229.1567 --#: sunrpc/rpc_main.c:1193
229.1568 -+#: sunrpc/rpc_main.c:1195
229.1569 - msgid "Cannot specify more than one input file!\n"
229.1570 - msgstr "Nie je mo¾né zada» viac ako jeden vstupný súbor!\n"
229.1571 - 
229.1572 --#: sunrpc/rpc_main.c:1363
229.1573 -+#: sunrpc/rpc_main.c:1372
229.1574 - msgid "Cannot use netid flag with inetd flag!\n"
229.1575 - msgstr "Príznaky netid a inetd nie je mo¾né pou¾i» súèasne!\n"
229.1576 - 
229.1577 --#: sunrpc/rpc_main.c:1375
229.1578 -+#: sunrpc/rpc_main.c:1384
229.1579 - msgid "Cannot use netid flag without TIRPC!\n"
229.1580 - msgstr "Nie je mo¾né pou¾i» príznak netid bez TIRPC!\n"
229.1581 - 
229.1582 --#: sunrpc/rpc_main.c:1382
229.1583 -+#: sunrpc/rpc_main.c:1391
229.1584 - msgid "Cannot use table flags with newstyle!\n"
229.1585 - msgstr "Pri pou¾ití nového ¹týlu nie je mo¾né pou¾i» príznaky tabuµky!\n"
229.1586 - 
229.1587 --#: stdio-common/../sysdeps/gnu/errlist.c:670
229.1588 -+#: elf/ldconfig.c:131
229.1589 -+msgid "Change to and use ROOT as root directory"
229.1590 -+msgstr "Zmeni» adresár na ROOT a pou¾i» ho ako koreòový adresár"
229.1591 -+
229.1592 -+#: elf/cache.c:390
229.1593 -+#, c-format
229.1594 -+msgid "Changing access rights of %s to 0644 failed"
229.1595 -+msgstr "Zmena prístupových práv %s na 0644 zlyhala"
229.1596 -+
229.1597 -+#: stdio-common/../sysdeps/gnu/errlist.c:689
229.1598 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:67
229.1599 - msgid "Channel number out of range"
229.1600 - msgstr "Èíslo kanálu mimo povoleného rozsahu"
229.1601 - 
229.1602 --#: nis/nis_print.c:264
229.1603 -+#: nis/nis_print.c:265
229.1604 - #, c-format
229.1605 - msgid "Character Separator : %c\n"
229.1606 - msgstr "Oddeµovaè znakov       : %c\n"
229.1607 - 
229.1608 --#: stdio-common/../sysdeps/unix/siglist.c:45
229.1609 --#: sysdeps/unix/sysv/linux/siglist.h:39
229.1610 -+#: stdio-common/../sysdeps/unix/siglist.c:46 sysdeps/generic/siglist.h:46
229.1611 - msgid "Child exited"
229.1612 - msgstr "Detský proces skonèil"
229.1613 - 
229.1614 --#: sunrpc/clnt_perr.c:283
229.1615 -+#: sunrpc/clnt_perr.c:348
229.1616 - msgid "Client credential too weak"
229.1617 - msgstr "Oprávnenia klienta sú nepostaèujúce"
229.1618 - 
229.1619 --#: nis/nis_print.c:266
229.1620 -+#: nis/nis_print.c:267
229.1621 - msgid "Columns             :\n"
229.1622 - msgstr "Ståpce                 :\n"
229.1623 - 
229.1624 --#: stdio-common/../sysdeps/gnu/errlist.c:750
229.1625 -+#: stdio-common/../sysdeps/gnu/errlist.c:769
229.1626 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:100
229.1627 - msgid "Communication error on send"
229.1628 - msgstr "Chyba komunikácie pri vysielaní"
229.1629 - 
229.1630 -@@ -803,54 +1474,48 @@
229.1631 - msgstr "Kompilácia ¹pecifikácie národného prostredia"
229.1632 - 
229.1633 - #. TRANS Go home and have a glass of warm, dairy-fresh milk.
229.1634 --#: stdio-common/../sysdeps/gnu/errlist.c:613
229.1635 -+#: stdio-common/../sysdeps/gnu/errlist.c:632
229.1636 - msgid "Computer bought the farm"
229.1637 - msgstr "Poèítaè kúpil farmu"
229.1638 - 
229.1639 --#: locale/programs/ld-ctype.c:1253
229.1640 --msgid "Computing table size for character classes might take a while..."
229.1641 --msgstr "Výpoèet veµkosti tabuµky pre triedy znakov (mô¾e chvíµu trva»)..."
229.1642 --
229.1643 --#: locale/programs/ld-collate.c:336
229.1644 --msgid "Computing table size for collation information might take a while..."
229.1645 --msgstr "Výpoèet veµkosti tabuµky pre informácie o triedení (mô¾e chvíµu trva»)..."
229.1646 -+#: elf/ldconfig.c:141
229.1647 -+msgid "Configure Dynamic Linker Run Time Bindings."
229.1648 -+msgstr "Konfigurácia runtime väzieb dynamického linkera."
229.1649 - 
229.1650 - #. TRANS A remote host refused to allow the network connection (typically because
229.1651 - #. TRANS it is not running the requested service).
229.1652 --#: stdio-common/../sysdeps/gnu/errlist.c:451
229.1653 -+#: stdio-common/../sysdeps/gnu/errlist.c:452
229.1654 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:176
229.1655 - msgid "Connection refused"
229.1656 - msgstr "Spojenie odmietnuté"
229.1657 - 
229.1658 - #. TRANS A network connection was closed for reasons outside the control of the
229.1659 - #. TRANS local host, such as by the remote machine rebooting or an unrecoverable
229.1660 - #. TRANS protocol violation.
229.1661 --#: stdio-common/../sysdeps/gnu/errlist.c:401
229.1662 -+#: stdio-common/../sysdeps/gnu/errlist.c:402
229.1663 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:161
229.1664 - msgid "Connection reset by peer"
229.1665 - msgstr "Spojenie zru¹ené druhou stranou"
229.1666 - 
229.1667 - #. TRANS A socket operation with a specified timeout received no response during
229.1668 - #. TRANS the timeout period.
229.1669 --#: stdio-common/../sysdeps/gnu/errlist.c:445
229.1670 -+#: stdio-common/../sysdeps/gnu/errlist.c:446
229.1671 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:175
229.1672 - msgid "Connection timed out"
229.1673 - msgstr "Èasový limit pre spojenie vypr¹al"
229.1674 - 
229.1675 --#: stdio-common/../sysdeps/unix/siglist.c:44
229.1676 --#: sysdeps/unix/sysv/linux/siglist.h:38
229.1677 -+#: stdio-common/../sysdeps/unix/siglist.c:45 sysdeps/generic/siglist.h:45
229.1678 - msgid "Continued"
229.1679 - msgstr "Pokraèovanie"
229.1680 - 
229.1681 --#: iconv/iconv_prog.c:66
229.1682 -+#: iconv/iconv_prog.c:69
229.1683 - msgid "Convert encoding of given files from one encoding to another."
229.1684 - msgstr "Konverzia kódovania zadaných súborov na iné."
229.1685 - 
229.1686 --#: db2/makedb.c:58
229.1687 --msgid "Convert key to lower case"
229.1688 --msgstr "Zmeni» kµúè na malé písmená"
229.1689 --
229.1690 --#: catgets/gencat.c:236 db2/makedb.c:242 elf/sprof.c:359
229.1691 --#: iconv/iconv_prog.c:294 locale/programs/locale.c:267
229.1692 --#: locale/programs/localedef.c:403 nscd/nscd.c:223 nss/getent.c:65
229.1693 --#: posix/getconf.c:624
229.1694 -+#: catgets/gencat.c:246 elf/ldconfig.c:264 elf/sprof.c:355
229.1695 -+#: iconv/iconv_prog.c:351 locale/programs/locale.c:269
229.1696 -+#: locale/programs/localedef.c:311 nscd/nscd.c:287 nscd/nscd_nischeck.c:90
229.1697 -+#: nss/getent.c:63 posix/getconf.c:751
229.1698 - #, c-format
229.1699 - msgid ""
229.1700 - "Copyright (C) %s Free Software Foundation, Inc.\n"
229.1701 -@@ -861,167 +1526,353 @@
229.1702 - "Toto je voµne ¹íriteµný software; pre podmienky kopírovania pozri\n"
229.1703 - "zdrojový kód.Na software nie je poskytovaná ®IADNA záruka.\n"
229.1704 - 
229.1705 --#: nscd/nscd_conf.c:167
229.1706 -+#: nscd/nscd_conf.c:166
229.1707 - #, c-format
229.1708 - msgid "Could not create log file \"%s\""
229.1709 - msgstr "Nie je mo¾né vytvori» ¾urnálový súbor \"%s\""
229.1710 - 
229.1711 --#: catgets/gencat.c:107
229.1712 -+#: catgets/gencat.c:112
229.1713 - msgid "Create C header file NAME containing symbol definitions"
229.1714 - msgstr "Vytvori» C hlavièkový súbor NÁZOV obsahujúci definície symbolov"
229.1715 - 
229.1716 --#: locale/programs/localedef.c:103
229.1717 -+#: locale/programs/localedef.c:102
229.1718 -+msgid "Create old-style tables"
229.1719 -+msgstr "Vytvori» tabuµky na starý spôsob"
229.1720 -+
229.1721 -+#: locale/programs/localedef.c:101
229.1722 - msgid "Create output even if warning messages were issued"
229.1723 - msgstr "Vytvori» výstupný súbor aj pri výskyte varovaní"
229.1724 - 
229.1725 --#: db2/makedb.c:68
229.1726 --msgid "Create simple DB database from textual input."
229.1727 --msgstr "Vytvorenie jednoduchej DB databázy z textového vstupu."
229.1728 --
229.1729 --#: nis/nis_print.c:322
229.1730 -+#: nis/nis_print.c:326
229.1731 - #, c-format
229.1732 - msgid "Creation Time : %s"
229.1733 - msgstr "Èas vytvorenia   : %s"
229.1734 - 
229.1735 --#: nis/nss_nisplus/nisplus-publickey.c:89
229.1736 --#: nis/nss_nisplus/nisplus-publickey.c:159
229.1737 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:48
229.1738 -+msgid "Cross-device link"
229.1739 -+msgstr "Odkaz medzi zariadeniami"
229.1740 -+
229.1741 -+#: malloc/memusagestat.c:67
229.1742 -+msgid "DATAFILE [OUTFILE]"
229.1743 -+msgstr "DÁTOVÝ_SÚBOR [VÝSTUPNÝ_SÚBOR]"
229.1744 -+
229.1745 -+#: nis/nss_nisplus/nisplus-publickey.c:96
229.1746 -+#: nis/nss_nisplus/nisplus-publickey.c:172
229.1747 - #, c-format
229.1748 - msgid "DES entry for netname %s not unique\n"
229.1749 - msgstr "DES záznam pre sie»ový názov %s nie je jednoznaèný\n"
229.1750 - 
229.1751 --#: nis/nis_print.c:111
229.1752 -+#: nis/nis_print.c:112
229.1753 - msgid "DIRECTORY\n"
229.1754 - msgstr "ADRESÁR\n"
229.1755 - 
229.1756 --#: nis/nis_print.c:41
229.1757 -+#: nis/nis_print.c:42
229.1758 - msgid "DNANS"
229.1759 - msgstr "DNANS"
229.1760 - 
229.1761 --#: nis/nis_print.c:37
229.1762 -+#: nis/nis_print.c:38
229.1763 - msgid "DNS"
229.1764 - msgstr "DNS"
229.1765 - 
229.1766 --#: nis/nis_error.c:51
229.1767 -+#: elf/dl-open.c:189
229.1768 -+msgid "DST not allowed in SUID/SGID programs"
229.1769 -+msgstr "DST nie je pre SUID/SGID programy povolené"
229.1770 -+
229.1771 -+#: elf/dl-error.c:71
229.1772 -+msgid "DYNAMIC LINKER BUG!!!"
229.1773 -+msgstr "CHYBA V DYNAMICKOM LINKERI!!!"
229.1774 -+
229.1775 -+#: nis/nis_error.c:52
229.1776 - msgid "Database for table does not exist"
229.1777 - msgstr "Databáza pre tabuµku neexistuje"
229.1778 - 
229.1779 --#: nis/ypclnt.c:795
229.1780 -+#: nis/ypclnt.c:818
229.1781 - msgid "Database is busy"
229.1782 - msgstr "Databáza je pou¾ívaná"
229.1783 - 
229.1784 --#: nis/nis_print.c:225
229.1785 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:75
229.1786 -+msgid "Deadlock situation detected/avoided"
229.1787 -+msgstr "Bol detekovaný a znemo¾nený deadlock"
229.1788 -+
229.1789 -+#: nis/nis_print.c:226
229.1790 - msgid "Default Access rights :\n"
229.1791 - msgstr "Implicitné príst. práva  :\n"
229.1792 - 
229.1793 - #. TRANS No default destination address was set for the socket.  You get this
229.1794 - #. TRANS error when you try to transmit data over a connectionless socket,
229.1795 - #. TRANS without first specifying a destination for the data with @code{connect}.
229.1796 --#: stdio-common/../sysdeps/gnu/errlist.c:429
229.1797 -+#: stdio-common/../sysdeps/gnu/errlist.c:430
229.1798 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:126
229.1799 - msgid "Destination address required"
229.1800 - msgstr "Je potrebné zada» cieµovú hodnotu"
229.1801 - 
229.1802 --#: stdio-common/../sysdeps/gnu/errlist.c:650
229.1803 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:46
229.1804 -+msgid "Device busy"
229.1805 -+msgstr "Zariadenie je pou¾ívané"
229.1806 -+
229.1807 -+#: stdio-common/../sysdeps/gnu/errlist.c:669
229.1808 - msgid "Device not a stream"
229.1809 - msgstr "Zariadenie nie je prúd"
229.1810 - 
229.1811 --#. TRANS No such device or address.  The system tried to use the device
229.1812 --#. TRANS represented by a file you specified, and it couldn't find the device.
229.1813 --#. TRANS This can mean that the device file was installed incorrectly, or that
229.1814 --#. TRANS the physical device is missing or not correctly attached to the
229.1815 --#. TRANS computer.
229.1816 --#: stdio-common/../sysdeps/gnu/errlist.c:61
229.1817 --msgid "Device not configured"
229.1818 --msgstr "Zariadenie nie je nakonfigurované"
229.1819 --
229.1820 - #. TRANS Resource busy; a system resource that can't be shared is already in use.
229.1821 - #. TRANS For example, if you try to delete a file that is the root of a currently
229.1822 - #. TRANS mounted filesystem, you get this error.
229.1823 --#: stdio-common/../sysdeps/gnu/errlist.c:128
229.1824 -+#: stdio-common/../sysdeps/gnu/errlist.c:129
229.1825 - msgid "Device or resource busy"
229.1826 - msgstr "Zariadenie alebo iný zdroj je pou¾ívané"
229.1827 - 
229.1828 --#: nis/nis_print.c:179
229.1829 -+#: nis/nis_print.c:180
229.1830 - #, c-format
229.1831 - msgid "Diffie-Hellmann (%d bits)\n"
229.1832 - msgstr "Diffie-Hellmann (%d bitov)\n"
229.1833 - 
229.1834 --#: nis/nis_print.c:315
229.1835 -+#: nis/nis_print.c:318
229.1836 - #, c-format
229.1837 - msgid "Directory     : %s\n"
229.1838 - msgstr "Adresár          : %s\n"
229.1839 - 
229.1840 - #. TRANS Directory not empty, where an empty directory was expected.  Typically,
229.1841 - #. TRANS this error occurs when you are trying to delete a directory.
229.1842 --#: stdio-common/../sysdeps/gnu/errlist.c:480
229.1843 -+#: stdio-common/../sysdeps/gnu/errlist.c:481
229.1844 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:123
229.1845 - msgid "Directory not empty"
229.1846 - msgstr "Adresár nie je prázdny"
229.1847 - 
229.1848 --#. TRANS The user's disk quota was exceeded.
229.1849 --#: stdio-common/../sysdeps/gnu/errlist.c:498
229.1850 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:79
229.1851 - msgid "Disc quota exceeded"
229.1852 - msgstr "Disková kvóta prekroèená"
229.1853 - 
229.1854 --#: nscd/nscd.c:80
229.1855 -+#. TRANS The user's disk quota was exceeded.
229.1856 -+#: stdio-common/../sysdeps/gnu/errlist.c:499
229.1857 -+msgid "Disk quota exceeded"
229.1858 -+msgstr "Disková kvóta prekroèená"
229.1859 -+
229.1860 -+#: nscd/nscd.c:86
229.1861 - msgid "Do not fork and display messages on the current tty"
229.1862 - msgstr "Nespú¹»a» samostatný proces a zobrazova» správy na aktuálnom termináli"
229.1863 - 
229.1864 --#: db2/makedb.c:61
229.1865 --msgid "Do not print messages while building database"
229.1866 --msgstr "Poèas tvorby databázy nevypisova» správy"
229.1867 --
229.1868 --#: catgets/gencat.c:109
229.1869 -+#: catgets/gencat.c:114
229.1870 - msgid "Do not use existing catalog, force new output file"
229.1871 - msgstr "Nepou¾íva» existujúci katalóg, vnúti» nový výstupný súbor"
229.1872 - 
229.1873 --#: nis/ypclnt.c:841
229.1874 -+#: nis/ypclnt.c:864
229.1875 - msgid "Domain not bound"
229.1876 - msgstr "Doména nie je pripojená"
229.1877 - 
229.1878 --#: stdio-common/../sysdeps/unix/siglist.c:32
229.1879 --#: sysdeps/unix/sysv/linux/siglist.h:53
229.1880 -+#: elf/ldconfig.c:129
229.1881 -+msgid "Don't build cache"
229.1882 -+msgstr "Nevytvori» cache"
229.1883 -+
229.1884 -+#: elf/ldconfig.c:130
229.1885 -+msgid "Don't generate links"
229.1886 -+msgstr "Negenerova» odkazy"
229.1887 -+
229.1888 -+#: debug/pcprofiledump.c:56
229.1889 -+msgid "Dump information generated by PC profiling."
229.1890 -+msgstr "Vypísa» informáciu získanú profilovaním PC."
229.1891 -+
229.1892 -+#: elf/dl-load.c:1290
229.1893 -+msgid "ELF file ABI version invalid"
229.1894 -+msgstr "Neplatná verzia ABI ELF súboru"
229.1895 -+
229.1896 -+#: elf/dl-load.c:1287
229.1897 -+msgid "ELF file OS ABI invalid"
229.1898 -+msgstr "Neplatný OS ABI ELF súboru"
229.1899 -+
229.1900 -+#: elf/dl-load.c:1296
229.1901 -+msgid "ELF file version does not match current one"
229.1902 -+msgstr "Verzia súboru ELF sa nezhoduje s aktuálnou"
229.1903 -+
229.1904 -+#: elf/dl-load.c:1283
229.1905 -+msgid "ELF file version ident does not match current one"
229.1906 -+msgstr "Identifikácia verzie ELF súboru sa nezhoduje s aktuálnou"
229.1907 -+
229.1908 -+#: elf/dl-load.c:1307
229.1909 -+msgid "ELF file's phentsize not the expected size"
229.1910 -+msgstr "phentsize ELF súboru nie je oèakávaná"
229.1911 -+
229.1912 -+#: elf/dl-load.c:876
229.1913 -+msgid "ELF load command address/offset not properly aligned"
229.1914 -+msgstr "ELF zavádzacia adresa/posunutie nie je správne zarovnaná"
229.1915 -+
229.1916 -+#: elf/dl-load.c:873
229.1917 -+msgid "ELF load command alignment not page-aligned"
229.1918 -+msgstr "ELF zarovnanie príkazu nie je zarovnané na stránku"
229.1919 -+
229.1920 -+#: stdio-common/../sysdeps/unix/siglist.c:33 sysdeps/generic/siglist.h:60
229.1921 - msgid "EMT trap"
229.1922 - msgstr "EMT preru¹enie"
229.1923 - 
229.1924 --#: nis/nis_print.c:120
229.1925 -+#: nis/nis_print.c:121
229.1926 - msgid "ENTRY\n"
229.1927 - msgstr "ZÁZNAM\n"
229.1928 - 
229.1929 --#: nis/nis_print.c:299
229.1930 -+#: nis/nis_print.c:300
229.1931 - msgid "Encrypted data\n"
229.1932 - msgstr "©ifrované údaje\n"
229.1933 - 
229.1934 --#: nis/nis_error.c:52
229.1935 --msgid "Entry/Table type mismatch"
229.1936 -+#: nis/nis_error.c:53
229.1937 -+msgid "Entry/table type mismatch"
229.1938 - msgstr "Nesúlad záznamu s tabuµkou"
229.1939 - 
229.1940 --#: nis/nis_error.c:56
229.1941 -+#: nss/getent.c:127 nss/getent.c:292
229.1942 -+#, c-format
229.1943 -+msgid "Enumeration not supported on %s\n"
229.1944 -+msgstr "Enumerácia %s nie je podporované\n"
229.1945 -+
229.1946 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:30
229.1947 -+msgid "Error 0"
229.1948 -+msgstr "Chyba 0"
229.1949 -+
229.1950 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:130
229.1951 -+msgid "Error 100"
229.1952 -+msgstr "Chyba 100"
229.1953 -+
229.1954 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:131
229.1955 -+msgid "Error 101"
229.1956 -+msgstr "Chyba 101"
229.1957 -+
229.1958 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:132
229.1959 -+msgid "Error 102"
229.1960 -+msgstr "Chyba 102"
229.1961 -+
229.1962 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:133
229.1963 -+msgid "Error 103"
229.1964 -+msgstr "Chyba 103"
229.1965 -+
229.1966 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:134
229.1967 -+msgid "Error 104"
229.1968 -+msgstr "Chyba 104"
229.1969 -+
229.1970 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:135
229.1971 -+msgid "Error 105"
229.1972 -+msgstr "Chyba 105"
229.1973 -+
229.1974 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:136
229.1975 -+msgid "Error 106"
229.1976 -+msgstr "Chyba 106"
229.1977 -+
229.1978 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:137
229.1979 -+msgid "Error 107"
229.1980 -+msgstr "Chyba 107"
229.1981 -+
229.1982 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:138
229.1983 -+msgid "Error 108"
229.1984 -+msgstr "Chyba 108"
229.1985 -+
229.1986 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:139
229.1987 -+msgid "Error 109"
229.1988 -+msgstr "Chyba 109"
229.1989 -+
229.1990 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:140
229.1991 -+msgid "Error 110"
229.1992 -+msgstr "Chyba 110"
229.1993 -+
229.1994 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:141
229.1995 -+msgid "Error 111"
229.1996 -+msgstr "Chyba 111"
229.1997 -+
229.1998 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:142
229.1999 -+msgid "Error 112"
229.2000 -+msgstr "Chyba 112"
229.2001 -+
229.2002 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:143
229.2003 -+msgid "Error 113"
229.2004 -+msgstr "Chyba 113"
229.2005 -+
229.2006 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:144
229.2007 -+msgid "Error 114"
229.2008 -+msgstr "Chyba 114"
229.2009 -+
229.2010 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:145
229.2011 -+msgid "Error 115"
229.2012 -+msgstr "Chyba 115"
229.2013 -+
229.2014 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:146
229.2015 -+msgid "Error 116"
229.2016 -+msgstr "Chyba 116"
229.2017 -+
229.2018 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:147
229.2019 -+msgid "Error 117"
229.2020 -+msgstr "Chyba 117"
229.2021 -+
229.2022 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:148
229.2023 -+msgid "Error 118"
229.2024 -+msgstr "Chyba 118"
229.2025 -+
229.2026 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:149
229.2027 -+msgid "Error 119"
229.2028 -+msgstr "Chyba 119"
229.2029 -+
229.2030 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:166
229.2031 -+msgid "Error 136"
229.2032 -+msgstr "Chybe 136"
229.2033 -+
229.2034 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:172
229.2035 -+msgid "Error 142"
229.2036 -+msgstr "Chyba 142"
229.2037 -+
229.2038 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:88
229.2039 -+msgid "Error 58"
229.2040 -+msgstr "Chyba 58"
229.2041 -+
229.2042 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:89
229.2043 -+msgid "Error 59"
229.2044 -+msgstr "Chyba 59"
229.2045 -+
229.2046 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:102
229.2047 -+msgid "Error 72"
229.2048 -+msgstr "Chyba 72"
229.2049 -+
229.2050 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:103
229.2051 -+msgid "Error 73"
229.2052 -+msgstr "Chyba 73"
229.2053 -+
229.2054 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:105
229.2055 -+msgid "Error 75"
229.2056 -+msgstr "Chyba 75"
229.2057 -+
229.2058 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:106
229.2059 -+msgid "Error 76"
229.2060 -+msgstr "Chyba 76"
229.2061 -+
229.2062 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:121
229.2063 -+msgid "Error 91"
229.2064 -+msgstr "Chyba 91"
229.2065 -+
229.2066 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:122
229.2067 -+msgid "Error 92"
229.2068 -+msgstr "Chyba 92"
229.2069 -+
229.2070 -+#: nis/nis_error.c:57
229.2071 - msgid "Error in RPC subsystem"
229.2072 - msgstr "Chyba v RPC subsystéme"
229.2073 - 
229.2074 --#: nis/nis_error.c:66
229.2075 -+#: nis/nis_error.c:67
229.2076 - msgid "Error in accessing NIS+ cold start file.  Is NIS+ installed?"
229.2077 - msgstr "Chyba pri prístupe NIS+ súboru studeného ¹tartu. Je NIS+ nain¹talované?"
229.2078 - 
229.2079 --#: string/../sysdeps/mach/_strerror.c:56
229.2080 --#: sysdeps/mach/hurd/mips/dl-machine.c:67
229.2081 -+#: string/../sysdeps/mach/_strerror.c:58
229.2082 -+#: sysdeps/mach/hurd/mips/dl-machine.c:68
229.2083 - msgid "Error in unknown error system: "
229.2084 - msgstr "Chyba v neznámom chybovom systéme: "
229.2085 - 
229.2086 --#: nis/nis_error.c:59
229.2087 -+#: nis/nis_error.c:60
229.2088 - msgid "Error while talking to callback proc"
229.2089 - msgstr "Chyba poèas komunikácie s procedúrou spätného volania"
229.2090 - 
229.2091 --#: inet/ruserpass.c:161
229.2092 -+#: inet/ruserpass.c:181
229.2093 - msgid "Error: .netrc file is readable by others."
229.2094 - msgstr "Chyba: súbor .netrc je èitateµný pre ostatných."
229.2095 - 
229.2096 --#: stdio-common/../sysdeps/gnu/errlist.c:710
229.2097 -+#: stdio-common/../sysdeps/gnu/errlist.c:729
229.2098 - msgid "Exchange full"
229.2099 - msgstr "Stredisko plné"
229.2100 - 
229.2101 - #. TRANS Invalid executable file format.  This condition is detected by the
229.2102 - #. TRANS @code{exec} functions; see @ref{Executing a File}.
229.2103 --#: stdio-common/../sysdeps/gnu/errlist.c:75
229.2104 -+#: stdio-common/../sysdeps/gnu/errlist.c:76
229.2105 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:38
229.2106 - msgid "Exec format error"
229.2107 - msgstr "Chybný formát spustiteµného súboru"
229.2108 - 
229.2109 -@@ -1029,75 +1880,113 @@
229.2110 - msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
229.2111 - msgstr "FATÁLNA CHYBA: systém nedefinuje `_POSIX2_LOCALEDEF'"
229.2112 - 
229.2113 --#: locale/programs/localedef.c:99
229.2114 -+#: locale/programs/localedef.c:97
229.2115 - msgid "FILE contains mapping from symbolic names to UCS4 values"
229.2116 - msgstr "SÚBOR obsahuje mapovanie symbolických názvov na UCS4 hodnoty"
229.2117 - 
229.2118 --#: sunrpc/clnt_perr.c:287
229.2119 -+#: sunrpc/clnt_perr.c:356
229.2120 - msgid "Failed (unspecified error)"
229.2121 - msgstr "Zlyhalo (ne¹pecifikovaná chyba)"
229.2122 - 
229.2123 --#: stdio-common/../sysdeps/gnu/errlist.c:762
229.2124 -+#: nscd/nscd.c:400
229.2125 -+#, c-format
229.2126 -+msgid "Failed to look up user '%s' to run server as"
229.2127 -+msgstr "Nepodarilo sa vyhµada» pou¾ívateµa '%s', pod ktorým má server be¾a»"
229.2128 -+
229.2129 -+#: elf/readlib.c:108
229.2130 -+#, c-format
229.2131 -+msgid "File %s is too small, not checked."
229.2132 -+msgstr "Súbor %s je príli¹ krátky, neskontrolovaný."
229.2133 -+
229.2134 -+#: stdio-common/../sysdeps/gnu/errlist.c:781
229.2135 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:111
229.2136 - msgid "File descriptor in bad state"
229.2137 - msgstr "Deskriptor súboru v chybnom stave"
229.2138 - 
229.2139 - #. TRANS File exists; an existing file was specified in a context where it only
229.2140 - #. TRANS makes sense to specify a new file.
229.2141 --#: stdio-common/../sysdeps/gnu/errlist.c:134
229.2142 -+#: stdio-common/../sysdeps/gnu/errlist.c:135
229.2143 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:47
229.2144 - msgid "File exists"
229.2145 - msgstr "Súbor existuje"
229.2146 - 
229.2147 --#: stdio-common/../sysdeps/gnu/errlist.c:726
229.2148 -+#: elf/cache.c:124 elf/cache.c:134
229.2149 -+msgid "File is not a cache file.\n"
229.2150 -+msgstr "Súbor nie je cache súborom.\n"
229.2151 -+
229.2152 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:86
229.2153 -+msgid "File locking deadlock"
229.2154 -+msgstr "Vzájomné zablokovanie pri zamykaní súboru"
229.2155 -+
229.2156 -+#: stdio-common/../sysdeps/gnu/errlist.c:745
229.2157 - msgid "File locking deadlock error"
229.2158 - msgstr "Vzájomné zablokovanie pri zamykaní súboru"
229.2159 - 
229.2160 - #. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
229.2161 - #. TRANS Files}) or host name too long (in @code{gethostname} or
229.2162 - #. TRANS @code{sethostname}; @pxref{Host Identification}).
229.2163 --#: stdio-common/../sysdeps/gnu/errlist.c:464
229.2164 -+#: stdio-common/../sysdeps/gnu/errlist.c:465
229.2165 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:108
229.2166 - msgid "File name too long"
229.2167 - msgstr "Meno súboru príli¹ dlhé"
229.2168 - 
229.2169 --#: stdio-common/../sysdeps/unix/siglist.c:50
229.2170 --#: sysdeps/unix/sysv/linux/siglist.h:44
229.2171 -+#: stdio-common/../sysdeps/unix/siglist.c:51 sysdeps/generic/siglist.h:51
229.2172 - msgid "File size limit exceeded"
229.2173 - msgstr "Prekroèený limit då¾ky súboru"
229.2174 - 
229.2175 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:53
229.2176 -+msgid "File table overflow"
229.2177 -+msgstr "Preteèenie tabuµky súborov"
229.2178 -+
229.2179 - #. TRANS File too big; the size of a file would be larger than allowed by the system.
229.2180 --#: stdio-common/../sysdeps/gnu/errlist.c:202
229.2181 -+#: stdio-common/../sysdeps/gnu/errlist.c:203
229.2182 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:57
229.2183 - msgid "File too large"
229.2184 - msgstr "Súbor je príli¹ veµký"
229.2185 - 
229.2186 --#: nis/nis_error.c:37
229.2187 --msgid "First/Next chain broken"
229.2188 --msgstr "Chyba zre»azenia prvý/ïal¹í"
229.2189 -+#: intl/tst-gettext2.c:36
229.2190 -+msgid "First string for testing."
229.2191 -+msgstr "Prvý testovací re»azec."
229.2192 -+
229.2193 -+#: nis/nis_error.c:38
229.2194 -+msgid "First/next chain broken"
229.2195 -+msgstr "Preru¹ené zre»azenie prvý/ïal¹í"
229.2196 - 
229.2197 --#: stdio-common/../sysdeps/unix/siglist.c:33
229.2198 --#: sysdeps/unix/sysv/linux/siglist.h:28
229.2199 -+#: stdio-common/../sysdeps/unix/siglist.c:34 sysdeps/generic/siglist.h:35
229.2200 - msgid "Floating point exception"
229.2201 - msgstr "Výnimka pohyblivej rádovej èiarky"
229.2202 - 
229.2203 --#: nis/nis_error.c:67
229.2204 -+#: elf/ldconfig.c:136
229.2205 -+msgid "Format to use: new, old or compat (default)"
229.2206 -+msgstr "Pou¾i» formát: nový (new), starý (old) alebo kompatibilný (compat - prednastavené)"
229.2207 -+
229.2208 -+#: nis/nis_error.c:68
229.2209 - msgid "Full resync required for directory"
229.2210 - msgstr "Adresár vy¾aduje úplnú resynchronizáciu"
229.2211 - 
229.2212 --#. TRANS Function not implemented.  Some functions have commands or options defined
229.2213 --#. TRANS that might not be supported in all implementations, and this is the kind
229.2214 --#. TRANS of error you get if you request them and they are not supported.
229.2215 --#: stdio-common/../sysdeps/gnu/errlist.c:573
229.2216 -+#. TRANS Function not implemented.  This indicates that the function called is
229.2217 -+#. TRANS not implemented at all, either in the C library itself or in the
229.2218 -+#. TRANS operating system.  When you get this error, you can be sure that this
229.2219 -+#. TRANS particular function will always fail with @code{ENOSYS} unless you
229.2220 -+#. TRANS install a new version of the C library or the operating system.
229.2221 -+#: stdio-common/../sysdeps/gnu/errlist.c:576
229.2222 - msgid "Function not implemented"
229.2223 - msgstr "Funkcia nie je implementovaná"
229.2224 - 
229.2225 --#: nis/nis_print.c:114
229.2226 -+#: nis/nis_print.c:115
229.2227 - msgid "GROUP\n"
229.2228 - msgstr "SKUPINA\n"
229.2229 - 
229.2230 --#: argp/argp-help.c:231
229.2231 -+#: argp/argp-help.c:230
229.2232 - #, c-format
229.2233 - msgid "Garbage in ARGP_HELP_FMT: %s"
229.2234 - msgstr "Nezmysly v ARGP_HELP_FMT: %s"
229.2235 - 
229.2236 --#: catgets/gencat.c:115
229.2237 -+#: malloc/memusagestat.c:64
229.2238 -+msgid "Generate graphic from memory profiling data"
229.2239 -+msgstr "Generova» graf z údajov profilu pamäti"
229.2240 -+
229.2241 -+#: catgets/gencat.c:120
229.2242 - msgid ""
229.2243 - "Generate message catalog.\\vIf INPUT-FILE is -, input is read from standard input.  If OUTPUT-FILE\n"
229.2244 - "is -, output is written to standard output.\n"
229.2245 -@@ -1105,123 +1994,134 @@
229.2246 - "Tvorba katalógu správ.\\vAk je VSTUPNÝ_SÚBOR -, vstup je naèítaný zo ¹tandardného vstupu. Ak je\n"
229.2247 - "VÝSTUPNÝ_SÚBOR -, výstup je zapísaný na ¹tandardný výstup.\n"
229.2248 - 
229.2249 --#: nis/nis_error.c:36
229.2250 -+#: malloc/memusagestat.c:55
229.2251 -+msgid "Generate output linear to time (default is linear to number of function calls)"
229.2252 -+msgstr "Generova» výstup lineárny s èasom (prednastavený je lineárne k poètu volaní funkcií)"
229.2253 -+
229.2254 -+#: elf/ldconfig.c:128
229.2255 -+msgid "Generate verbose messages"
229.2256 -+msgstr "Vypísova» podrobnej¹ie správy"
229.2257 -+
229.2258 -+#: nis/nis_error.c:37
229.2259 - msgid "Generic system error"
229.2260 - msgstr "V¹eobecná chyba systému"
229.2261 - 
229.2262 --#: locale/programs/locale.c:75
229.2263 -+#: locale/programs/locale.c:77
229.2264 - msgid "Get locale-specific information."
229.2265 - msgstr "Získa» informáciu ¹pecifickú pre národné prostredie."
229.2266 - 
229.2267 --#: argp/argp-parse.c:88
229.2268 -+#: argp/argp-parse.c:94
229.2269 - msgid "Give a short usage message"
229.2270 - msgstr "Vypísa» krátky návod na pou¾itie"
229.2271 - 
229.2272 --#: argp/argp-parse.c:87
229.2273 -+#: argp/argp-parse.c:93
229.2274 - msgid "Give this help list"
229.2275 - msgstr "Vypísa» túto pomoc"
229.2276 - 
229.2277 - #. TRANS This error code has no purpose.
229.2278 --#: stdio-common/../sysdeps/gnu/errlist.c:618
229.2279 -+#: stdio-common/../sysdeps/gnu/errlist.c:637
229.2280 - msgid "Gratuitous error"
229.2281 - msgstr "Vïaèná chyba"
229.2282 - 
229.2283 --#: nis/nis_print.c:317
229.2284 -+#: nis/nis_print.c:320
229.2285 - #, c-format
229.2286 - msgid "Group         : %s\n"
229.2287 - msgstr "Skupina          : %s\n"
229.2288 - 
229.2289 --#: nis/nis_print.c:248
229.2290 -+#: nis/nis_print.c:249
229.2291 - msgid "Group Flags :"
229.2292 - msgstr "Príznaky skupiny :"
229.2293 - 
229.2294 --#: nis/nis_print_group_entry.c:113
229.2295 -+#: nis/nis_print_group_entry.c:115
229.2296 - #, c-format
229.2297 - msgid "Group entry for \"%s.%s\" group:\n"
229.2298 - msgstr "Záznam skupiny pre skupinu \"%s.%s\":\n"
229.2299 - 
229.2300 --#: argp/argp-parse.c:91
229.2301 -+#: argp/argp-parse.c:97
229.2302 - msgid "Hang for SECS seconds (default 3600)"
229.2303 - msgstr "Poèka» SECS sekúnd (implicitne 3600)"
229.2304 - 
229.2305 --#: stdio-common/../sysdeps/unix/siglist.c:26
229.2306 --#: sysdeps/unix/sysv/linux/siglist.h:22
229.2307 -+#: stdio-common/../sysdeps/unix/siglist.c:27 sysdeps/generic/siglist.h:29
229.2308 - msgid "Hangup"
229.2309 - msgstr "Zavesenie"
229.2310 - 
229.2311 --#: nscd/grpcache.c:238
229.2312 -+#: nscd/grpcache.c:253
229.2313 - #, c-format
229.2314 - msgid "Haven't found \"%d\" in group cache!"
229.2315 - msgstr "Nenájdené \"%d\" v cache skupín!"
229.2316 - 
229.2317 --#: nscd/pwdcache.c:235
229.2318 -+#: nscd/pwdcache.c:249
229.2319 - #, c-format
229.2320 - msgid "Haven't found \"%d\" in password cache!"
229.2321 - msgstr "Nenájdené \"%d\" v cache hesiel!"
229.2322 - 
229.2323 --#: nscd/grpcache.c:210
229.2324 -+#: nscd/grpcache.c:214
229.2325 - #, c-format
229.2326 - msgid "Haven't found \"%s\" in group cache!"
229.2327 - msgstr "Nenájdené \"%s\" v cache skupín!"
229.2328 - 
229.2329 --#: nscd/hstcache.c:297 nscd/hstcache.c:328 nscd/hstcache.c:359
229.2330 --#: nscd/hstcache.c:390
229.2331 -+#: nscd/hstcache.c:299 nscd/hstcache.c:341 nscd/hstcache.c:386
229.2332 -+#: nscd/hstcache.c:430
229.2333 - #, c-format
229.2334 - msgid "Haven't found \"%s\" in hosts cache!"
229.2335 - msgstr "Nenájdené \"%s\" v cache poèítaèov!"
229.2336 - 
229.2337 --#: nscd/pwdcache.c:207
229.2338 -+#: nscd/pwdcache.c:210
229.2339 - #, c-format
229.2340 - msgid "Haven't found \"%s\" in password cache!"
229.2341 - msgstr "Nenájdené \"%s\" v cache hesiel!"
229.2342 - 
229.2343 - #. TRANS The remote host for a requested network connection is down.
229.2344 --#: stdio-common/../sysdeps/gnu/errlist.c:469
229.2345 -+#: stdio-common/../sysdeps/gnu/errlist.c:470
229.2346 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:177
229.2347 - msgid "Host is down"
229.2348 - msgstr "Poèítaè je vypnutý"
229.2349 - 
229.2350 --#: resolv/herror.c:75
229.2351 -+#: resolv/herror.c:69
229.2352 - msgid "Host name lookup failure"
229.2353 - msgstr "Nepodarilo sa nájs» meno poèítaèa"
229.2354 - 
229.2355 --#: stdio-common/../sysdeps/unix/siglist.c:48
229.2356 --#: sysdeps/unix/sysv/linux/siglist.h:42
229.2357 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:35
229.2358 -+msgid "I/O error"
229.2359 -+msgstr "V/V chyba"
229.2360 -+
229.2361 -+#: stdio-common/../sysdeps/unix/siglist.c:49 sysdeps/generic/siglist.h:49
229.2362 - msgid "I/O possible"
229.2363 - msgstr "V/V mo¾ný"
229.2364 - 
229.2365 --#: db2/makedb.c:71
229.2366 --msgid ""
229.2367 --"INPUT-FILE OUTPUT-FILE\n"
229.2368 --"-o OUTPUT-FILE INPUT-FILE\n"
229.2369 --"-u INPUT-FILE"
229.2370 --msgstr ""
229.2371 --"VSTUPNÝ_SÚBOR VÝSTUPNÝ_SÚBOR\n"
229.2372 --"-o VÝSTUPNÝ_SÚBOR VSTUPNÝ_SÚBOR\n"
229.2373 --"-u VSTUPNÝ_SÚBOR"
229.2374 --
229.2375 --#: stdio-common/../sysdeps/unix/siglist.c:31
229.2376 -+#: stdio-common/../sysdeps/unix/siglist.c:32
229.2377 - msgid "IOT trap"
229.2378 - msgstr "IOT preru¹enie"
229.2379 - 
229.2380 --#: nis/nis_print.c:35
229.2381 -+#: nis/nis_print.c:36
229.2382 - msgid "IVY"
229.2383 - msgstr "IVY"
229.2384 - 
229.2385 --#: stdio-common/../sysdeps/gnu/errlist.c:626
229.2386 -+#: stdio-common/../sysdeps/gnu/errlist.c:645
229.2387 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:66
229.2388 - msgid "Identifier removed"
229.2389 - msgstr "Identifikátor odstránený"
229.2390 - 
229.2391 --#: stdio-common/../sysdeps/unix/siglist.c:29
229.2392 --#: sysdeps/unix/sysv/linux/siglist.h:25
229.2393 -+#: elf/ldconfig.c:525
229.2394 -+#, c-format
229.2395 -+msgid "Ignored file %s since it is not a regular file."
229.2396 -+msgstr "Súbor %s ignorovaný, keï¾e nie je regulérnym súborom."
229.2397 -+
229.2398 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:118
229.2399 -+msgid "Illegal byte sequence"
229.2400 -+msgstr "Neprípustná sekvencia bajtov"
229.2401 -+
229.2402 -+#: stdio-common/../sysdeps/unix/siglist.c:30 sysdeps/generic/siglist.h:32
229.2403 - msgid "Illegal instruction"
229.2404 - msgstr "Neprípustná in¹trukcia"
229.2405 - 
229.2406 --#: nis/nis_error.c:61
229.2407 -+#: nis/nis_error.c:62
229.2408 - msgid "Illegal object type for operation"
229.2409 - msgstr "Neprípustný typ objektu pre operáciu"
229.2410 - 
229.2411 - #. TRANS Invalid seek operation (such as on a pipe).
229.2412 --#: stdio-common/../sysdeps/gnu/errlist.c:213
229.2413 -+#: stdio-common/../sysdeps/gnu/errlist.c:214
229.2414 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:59
229.2415 - msgid "Illegal seek"
229.2416 - msgstr "Neprípustné nastavenie pozície"
229.2417 - 
229.2418 -@@ -1230,13 +2130,14 @@
229.2419 - #. TRANS
229.2420 - #. TRANS On some systems @code{chmod} returns this error if you try to set the
229.2421 - #. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
229.2422 --#: stdio-common/../sysdeps/gnu/errlist.c:556
229.2423 -+#: stdio-common/../sysdeps/gnu/errlist.c:557
229.2424 - msgid "Inappropriate file type or format"
229.2425 - msgstr "Nevhodný typ alebo formát súboru"
229.2426 - 
229.2427 - #. TRANS Inappropriate I/O control operation, such as trying to set terminal
229.2428 - #. TRANS modes on an ordinary file.
229.2429 --#: stdio-common/../sysdeps/gnu/errlist.c:188
229.2430 -+#: stdio-common/../sysdeps/gnu/errlist.c:189
229.2431 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:55
229.2432 - msgid "Inappropriate ioctl for device"
229.2433 - msgstr "Nevhodný ioctl pre toto zariadenie"
229.2434 - 
229.2435 -@@ -1246,41 +2147,45 @@
229.2436 - #. TRANS error because functions such as @code{read} and @code{write} translate
229.2437 - #. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal.  @xref{Job Control},
229.2438 - #. TRANS for information on process groups and these signals.
229.2439 --#: stdio-common/../sysdeps/gnu/errlist.c:589
229.2440 -+#: stdio-common/../sysdeps/gnu/errlist.c:608
229.2441 - msgid "Inappropriate operation for background process"
229.2442 - msgstr "Nevhodná operácia pre proces v pozadí"
229.2443 - 
229.2444 --#: sysdeps/unix/sysv/linux/siglist.h:62
229.2445 -+#: sysdeps/generic/siglist.h:69
229.2446 - msgid "Information request"
229.2447 - msgstr "®iados» o informáciu"
229.2448 - 
229.2449 --#: iconv/iconv_prog.c:57
229.2450 -+#: iconv/iconv_prog.c:58
229.2451 - msgid "Information:"
229.2452 - msgstr "Informácia:"
229.2453 - 
229.2454 --#: locale/programs/localedef.c:94
229.2455 -+#: locale/programs/localedef.c:92
229.2456 - msgid "Input Files:"
229.2457 - msgstr "Vstupné súbory:"
229.2458 - 
229.2459 --#: iconv/iconv_prog.c:54
229.2460 -+#: elf/ldconfig.c:698 elf/readlib.c:92
229.2461 -+#, c-format
229.2462 -+msgid "Input file %s not found.\n"
229.2463 -+msgstr "Vstupný súbor %s nebol nájdený.\n"
229.2464 -+
229.2465 -+#: iconv/iconv_prog.c:55
229.2466 - msgid "Input/Output format specification:"
229.2467 - msgstr "©pecifikácia vstupno/výstupného formátu:"
229.2468 - 
229.2469 - #. TRANS Input/output error; usually used for physical read or write errors.
229.2470 --#: stdio-common/../sysdeps/gnu/errlist.c:52
229.2471 -+#: stdio-common/../sysdeps/gnu/errlist.c:53
229.2472 - msgid "Input/output error"
229.2473 - msgstr "Chyba vstupu/výstupu"
229.2474 - 
229.2475 --#: nis/ypclnt.c:775
229.2476 -+#: nis/ypclnt.c:798
229.2477 - msgid "Internal NIS error"
229.2478 - msgstr "Interná chyba NIS"
229.2479 - 
229.2480 --#: nis/ypclnt.c:839
229.2481 -+#: nis/ypclnt.c:862
229.2482 - msgid "Internal ypbind error"
229.2483 - msgstr "Interná chyba ypbind"
229.2484 - 
229.2485 --#: stdio-common/../sysdeps/unix/siglist.c:27
229.2486 --#: sysdeps/unix/sysv/linux/siglist.h:23
229.2487 -+#: stdio-common/../sysdeps/unix/siglist.c:28 sysdeps/generic/siglist.h:30
229.2488 - msgid "Interrupt"
229.2489 - msgstr "Preru¹enie"
229.2490 - 
229.2491 -@@ -1291,231 +2196,263 @@
229.2492 - #. TRANS You can choose to have functions resume after a signal that is handled,
229.2493 - #. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
229.2494 - #. TRANS Primitives}.
229.2495 --#: stdio-common/../sysdeps/gnu/errlist.c:47
229.2496 -+#: stdio-common/../sysdeps/gnu/errlist.c:48
229.2497 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:34
229.2498 - msgid "Interrupted system call"
229.2499 - msgstr "Preru¹ené volanie systému"
229.2500 - 
229.2501 --#: stdio-common/../sysdeps/gnu/errlist.c:666
229.2502 -+#: stdio-common/../sysdeps/gnu/errlist.c:685
229.2503 - msgid "Interrupted system call should be restarted"
229.2504 - msgstr "Preru¹ené volanie systému by malo by» znovu spustené"
229.2505 - 
229.2506 --#: nis/nis_error.c:44
229.2507 --msgid "Invalid Object for operation"
229.2508 --msgstr "Neplatný objekt pre operáciu"
229.2509 --
229.2510 - #. TRANS Invalid argument.  This is used to indicate various kinds of problems
229.2511 - #. TRANS with passing the wrong argument to a library function.
229.2512 --#: stdio-common/../sysdeps/gnu/errlist.c:164
229.2513 -+#: stdio-common/../sysdeps/gnu/errlist.c:165
229.2514 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:52
229.2515 - msgid "Invalid argument"
229.2516 - msgstr "Neprípustný argument"
229.2517 - 
229.2518 --#: posix/regex.c:1018
229.2519 -+#: posix/regex.c:1102
229.2520 - msgid "Invalid back reference"
229.2521 - msgstr "Neprípustný spätný odkaz"
229.2522 - 
229.2523 --#: posix/regex.c:1016
229.2524 -+#: posix/regex.c:1096
229.2525 - msgid "Invalid character class name"
229.2526 - msgstr "Neprípustný názov triedy znakov"
229.2527 - 
229.2528 --#: sunrpc/clnt_perr.c:275
229.2529 -+#: sunrpc/clnt_perr.c:332
229.2530 - msgid "Invalid client credential"
229.2531 - msgstr "Neplatné oprávnenie klienta"
229.2532 - 
229.2533 --#: sunrpc/clnt_perr.c:279
229.2534 -+#: sunrpc/clnt_perr.c:340
229.2535 - msgid "Invalid client verifier"
229.2536 - msgstr "Neplatné overenie klienta"
229.2537 - 
229.2538 --#: posix/regex.c:1015
229.2539 -+#: posix/regex.c:1093
229.2540 - msgid "Invalid collation character"
229.2541 - msgstr "Neprípustný znak triedenia"
229.2542 - 
229.2543 --#: posix/regex.c:1022
229.2544 -+#: posix/regex.c:1114
229.2545 - msgid "Invalid content of \\{\\}"
229.2546 - msgstr "Neprípustný obsah \\{\\}"
229.2547 - 
229.2548 - #. TRANS An attempt to make an improper link across file systems was detected.
229.2549 - #. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
229.2550 - #. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
229.2551 --#: stdio-common/../sysdeps/gnu/errlist.c:141
229.2552 -+#: stdio-common/../sysdeps/gnu/errlist.c:142
229.2553 - msgid "Invalid cross-device link"
229.2554 - msgstr "Neprípustný odkaz medzi zariadeniami"
229.2555 - 
229.2556 --#: stdio-common/../sysdeps/gnu/errlist.c:702
229.2557 -+#: stdio-common/../sysdeps/gnu/errlist.c:721
229.2558 - msgid "Invalid exchange"
229.2559 - msgstr "Neprípustná výmena"
229.2560 - 
229.2561 -+#: nis/nis_error.c:45
229.2562 -+msgid "Invalid object for operation"
229.2563 -+msgstr "Neplatný objekt pre operáciu"
229.2564 -+
229.2565 - #. TRANS While decoding a multibyte character the function came along an invalid
229.2566 - #. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
229.2567 --#: stdio-common/../sysdeps/gnu/errlist.c:579
229.2568 -+#: stdio-common/../sysdeps/gnu/errlist.c:598
229.2569 - msgid "Invalid or incomplete multibyte or wide character"
229.2570 - msgstr "Neprípustný alebo nekompletný viacbajtový alebo ¹iroký znak"
229.2571 - 
229.2572 --#: posix/regex.c:1025
229.2573 -+#: posix/regex.c:1123
229.2574 - msgid "Invalid preceding regular expression"
229.2575 - msgstr "Neprípustný predchádzajúci regulérny výraz"
229.2576 - 
229.2577 --#: posix/regex.c:1023
229.2578 -+#: posix/regex.c:1117
229.2579 - msgid "Invalid range end"
229.2580 - msgstr "Neprípustný koniec rozsahu"
229.2581 - 
229.2582 --#: posix/regex.c:1014
229.2583 -+#: posix/regex.c:1090
229.2584 - msgid "Invalid regular expression"
229.2585 - msgstr "Neprípustný regulérny výraz"
229.2586 - 
229.2587 --#: stdio-common/../sysdeps/gnu/errlist.c:718
229.2588 -+#: stdio-common/../sysdeps/gnu/errlist.c:737
229.2589 - msgid "Invalid request code"
229.2590 - msgstr "Neprípustný kód ¾iadosti"
229.2591 - 
229.2592 --#: stdio-common/../sysdeps/gnu/errlist.c:706
229.2593 -+#: stdio-common/../sysdeps/gnu/errlist.c:725
229.2594 - msgid "Invalid request descriptor"
229.2595 - msgstr "Neprípustný deskriptor ¾iadosti"
229.2596 - 
229.2597 --#: sunrpc/clnt_perr.c:285
229.2598 -+#: sunrpc/clnt_perr.c:352
229.2599 - msgid "Invalid server verifier"
229.2600 - msgstr "Neplatné overenie servera"
229.2601 - 
229.2602 --#: stdio-common/../sysdeps/gnu/errlist.c:722
229.2603 -+#: stdio-common/../sysdeps/gnu/errlist.c:741
229.2604 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:85
229.2605 - msgid "Invalid slot"
229.2606 - msgstr "Neplatná priehradka"
229.2607 - 
229.2608 -+#: nscd/nscd.c:91
229.2609 -+msgid "Invalidate the specified cache"
229.2610 -+msgstr "Zneplatni» zadanú cache"
229.2611 -+
229.2612 - #. TRANS File is a directory; you cannot open a directory for writing,
229.2613 - #. TRANS or create or remove hard links to it.
229.2614 --#: stdio-common/../sysdeps/gnu/errlist.c:158
229.2615 -+#: stdio-common/../sysdeps/gnu/errlist.c:159
229.2616 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:51
229.2617 - msgid "Is a directory"
229.2618 - msgstr "Je adresár"
229.2619 - 
229.2620 --#: stdio-common/../sysdeps/gnu/errlist.c:806
229.2621 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:169
229.2622 -+msgid "Is a name file"
229.2623 -+msgstr "Je súbor názvu"
229.2624 -+
229.2625 -+#: stdio-common/../sysdeps/gnu/errlist.c:825
229.2626 - msgid "Is a named type file"
229.2627 --msgstr "Je pomenovaný súbor"
229.2628 -+msgstr "Je pomenovaný súbor typu"
229.2629 - 
229.2630 --#: nis/nis_print.c:187
229.2631 -+#: nis/nis_print.c:188
229.2632 - msgid "Kerberos.\n"
229.2633 - msgstr "Kerberos.\n"
229.2634 - 
229.2635 --#: stdio-common/../sysdeps/unix/siglist.c:34
229.2636 --#: sysdeps/unix/sysv/linux/siglist.h:29
229.2637 -+#: stdio-common/../sysdeps/unix/siglist.c:35 sysdeps/generic/siglist.h:36
229.2638 - msgid "Killed"
229.2639 - msgstr "Zabitý"
229.2640 - 
229.2641 --#: nis/nis_print.c:123
229.2642 -+#: nis/nis_print.c:124
229.2643 - msgid "LINK\n"
229.2644 - msgstr "ODKAZ\n"
229.2645 - 
229.2646 --#: nis/nis_local_names.c:125
229.2647 -+#: nis/nis_local_names.c:126
229.2648 - #, c-format
229.2649 - msgid "LOCAL entry for UID %d in directory %s not unique\n"
229.2650 - msgstr "LOCAL záznam pre UID %d v adresári %s nie je jednoznaèný\n"
229.2651 - 
229.2652 --#: stdio-common/../sysdeps/gnu/errlist.c:698
229.2653 -+#: stdio-common/../sysdeps/gnu/errlist.c:717
229.2654 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:74
229.2655 - msgid "Level 2 halted"
229.2656 - msgstr "Úroveò 2 zastavená"
229.2657 - 
229.2658 --#: stdio-common/../sysdeps/gnu/errlist.c:674
229.2659 -+#: stdio-common/../sysdeps/gnu/errlist.c:693
229.2660 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:68
229.2661 - msgid "Level 2 not synchronized"
229.2662 - msgstr "Úroveò 2 nie je synchronizovaná"
229.2663 - 
229.2664 --#: stdio-common/../sysdeps/gnu/errlist.c:678
229.2665 -+#: stdio-common/../sysdeps/gnu/errlist.c:697
229.2666 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:69
229.2667 - msgid "Level 3 halted"
229.2668 - msgstr "Úroveò 3 zastavená"
229.2669 - 
229.2670 --#: stdio-common/../sysdeps/gnu/errlist.c:682
229.2671 -+#: stdio-common/../sysdeps/gnu/errlist.c:701
229.2672 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:70
229.2673 - msgid "Level 3 reset"
229.2674 - msgstr "Úroveò 3 nastavená na východzie hodnoty"
229.2675 - 
229.2676 --#: nis/nis_error.c:53
229.2677 --msgid "Link Points to illegal name"
229.2678 --msgstr "Odkaz odkazuje na neprípustný názov"
229.2679 --
229.2680 --#: stdio-common/../sysdeps/gnu/errlist.c:638
229.2681 -+#: stdio-common/../sysdeps/gnu/errlist.c:657
229.2682 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:97
229.2683 - msgid "Link has been severed"
229.2684 - msgstr "Odkaz bol znièený"
229.2685 - 
229.2686 --#: stdio-common/../sysdeps/gnu/errlist.c:686
229.2687 -+#: stdio-common/../sysdeps/gnu/errlist.c:705
229.2688 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:71
229.2689 - msgid "Link number out of range"
229.2690 - msgstr "Èíslo odkazu mimo rozsahu"
229.2691 - 
229.2692 --#: nis/nis_print.c:282
229.2693 -+#: nis/nis_error.c:54
229.2694 -+msgid "Link points to illegal name"
229.2695 -+msgstr "Odkaz odkazuje na neprípustný názov"
229.2696 -+
229.2697 -+#: nis/nis_print.c:283
229.2698 - msgid "Linked Object Type : "
229.2699 - msgstr "Typ odkazovaného objektu : "
229.2700 - 
229.2701 --#: nis/nis_print.c:284
229.2702 -+#: nis/nis_print.c:285
229.2703 - #, c-format
229.2704 - msgid "Linked to : %s\n"
229.2705 - msgstr "Odkazuje na : %s\n"
229.2706 - 
229.2707 --#: nis/ypclnt.c:787
229.2708 -+#: nis/ypclnt.c:810
229.2709 - msgid "Local domain name not set"
229.2710 - msgstr "Meno miestnej domény nie je nastavené"
229.2711 - 
229.2712 --#: nis/ypclnt.c:777
229.2713 -+#: nis/ypclnt.c:800
229.2714 - msgid "Local resource allocation failure"
229.2715 - msgstr "Chyba pri pridelení miestnych zdrojov"
229.2716 - 
229.2717 --#: stdio-common/../sysdeps/gnu/errlist.c:734
229.2718 -+#: stdio-common/../sysdeps/gnu/errlist.c:753
229.2719 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:94
229.2720 - msgid "Machine is not on the network"
229.2721 - msgstr "Poèítaè nie je zapojený v sieti"
229.2722 - 
229.2723 --#: nis/nis_error.c:45
229.2724 --msgid "Malformed Name, or illegal name"
229.2725 --msgstr "Chybne formované alebo neprípustný názov"
229.2726 -+#: nis/nis_error.c:46
229.2727 -+msgid "Malformed name, or illegal name"
229.2728 -+msgstr "Chybne formovaný alebo neprípustný názov"
229.2729 - 
229.2730 --#: argp/argp-help.c:1182
229.2731 -+#: argp/argp-help.c:1185
229.2732 - msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
229.2733 - msgstr "Povinné alebo voliteµné argumenty dlhých tvarov volieb sú povinné alebo voliteµné pre µubovoµné zodpovedajúce krátke voµby."
229.2734 - 
229.2735 --#: nis/nis_print.c:168
229.2736 -+#: elf/ldconfig.c:135
229.2737 -+msgid "Manually link individual libraries."
229.2738 -+msgstr "Ruène linkova» jednotlivé kni¾nice."
229.2739 -+
229.2740 -+#: nis/nis_print.c:169
229.2741 - msgid "Master Server :\n"
229.2742 - msgstr "Hlavný server :\n"
229.2743 - 
229.2744 --#: nis/nis_error.c:75
229.2745 -+#: nis/nis_error.c:76
229.2746 - msgid "Master server busy, full dump rescheduled."
229.2747 - msgstr "Hlavný server zaneprázdnený, úplný prenos preplánovaný."
229.2748 - 
229.2749 --#: posix/../sysdeps/posix/gai_strerror.c:35
229.2750 -+#: posix/../sysdeps/posix/gai_strerror.c:36
229.2751 - msgid "Memory allocation failure"
229.2752 - msgstr "Pridelenie pamäti zlyhalo"
229.2753 - 
229.2754 --#: posix/regex.c:1024
229.2755 -+#: posix/regex.c:1120
229.2756 - msgid "Memory exhausted"
229.2757 - msgstr "Pamä» vyèerpaná"
229.2758 - 
229.2759 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:82
229.2760 -+msgid "Message tables full"
229.2761 -+msgstr "Plná tabuµka správ"
229.2762 -+
229.2763 - #. TRANS The size of a message sent on a socket was larger than the supported
229.2764 - #. TRANS maximum size.
229.2765 --#: stdio-common/../sysdeps/gnu/errlist.c:317
229.2766 -+#: stdio-common/../sysdeps/gnu/errlist.c:318
229.2767 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:127
229.2768 - msgid "Message too long"
229.2769 - msgstr "Príli¹ dlhá správa"
229.2770 - 
229.2771 --#: nis/nis_error.c:57
229.2772 -+#: nis/nis_error.c:58
229.2773 - msgid "Missing or malformed attribute"
229.2774 - msgstr "Chýbajúci alebo chybne formovaný atribút"
229.2775 - 
229.2776 --#: nis/nis_print.c:323
229.2777 -+#: nis/nis_print.c:328
229.2778 - #, c-format
229.2779 - msgid "Mod. Time     : %s"
229.2780 - msgstr "Èas zmeny        :%s"
229.2781 - 
229.2782 --#: nis/nis_error.c:50
229.2783 -+#: nis/nis_error.c:51
229.2784 - msgid "Modification failed"
229.2785 - msgstr "Modifikácia zlyhala"
229.2786 - 
229.2787 --#: nis/nis_error.c:63
229.2788 -+#: nis/nis_error.c:64
229.2789 - msgid "Modify operation failed"
229.2790 - msgstr "Operácia zmeny zlyhala"
229.2791 - 
229.2792 --#: locale/programs/locale.c:68
229.2793 -+#: locale/programs/locale.c:70
229.2794 - msgid "Modify output format:"
229.2795 - msgstr "Modifikova» výstupný formát:"
229.2796 - 
229.2797 --#: stdio-common/../sysdeps/gnu/errlist.c:630
229.2798 -+#: stdio-common/../sysdeps/gnu/errlist.c:649
229.2799 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:104
229.2800 - msgid "Multihop attempted"
229.2801 - msgstr "Pokus o spojenie cez viac uzlov"
229.2802 - 
229.2803 --#: catgets/gencat.c:106 catgets/gencat.c:110 db2/makedb.c:59
229.2804 --#: locale/programs/localedef.c:115 nscd/nscd.c:77
229.2805 -+#: nscd/nscd_conf.c:182
229.2806 -+msgid "Must specify user name for server-user option"
229.2807 -+msgstr "Pre server-user voµbu je potrebné zada» meno pou¾ívateµa"
229.2808 -+
229.2809 -+#: catgets/gencat.c:111 catgets/gencat.c:115 locale/programs/localedef.c:115
229.2810 -+#: nscd/nscd.c:83
229.2811 - msgid "NAME"
229.2812 - msgstr "NÁZOV"
229.2813 - 
229.2814 --#: locale/programs/locale.c:78
229.2815 -+#: locale/programs/locale.c:80
229.2816 - msgid ""
229.2817 - "NAME\n"
229.2818 - "[-a|-m]"
229.2819 -@@ -1523,269 +2460,365 @@
229.2820 - "NÁZOV\n"
229.2821 - "[-a|-m]"
229.2822 - 
229.2823 --#: nis/nis_print.c:31
229.2824 -+#: nis/nis_print.c:32
229.2825 - msgid "NIS"
229.2826 - msgstr "NIS"
229.2827 - 
229.2828 --#: nis/ypclnt.c:791
229.2829 -+#: nis/ypclnt.c:814
229.2830 - msgid "NIS client/server version mismatch - can't supply service"
229.2831 - msgstr "Rozdielne verzie NIS klienta a serveru - nie je mo¾né poskytnú» slu¾bu"
229.2832 - 
229.2833 --#: nis/ypclnt.c:789
229.2834 -+#: nis/ypclnt.c:812
229.2835 - msgid "NIS map database is bad"
229.2836 - msgstr "Databáza máp NIS je chybná"
229.2837 - 
229.2838 --#: nis/nis_error.c:68
229.2839 -+#: nis/nis_error.c:69
229.2840 - msgid "NIS+ operation failed"
229.2841 - msgstr "NIS+ operácia zlyhala"
229.2842 - 
229.2843 --#: nis/nis_error.c:33
229.2844 -+#: nis/nis_error.c:34
229.2845 - msgid "NIS+ servers unreachable"
229.2846 - msgstr "NIS+ server nie je dostupný"
229.2847 - 
229.2848 --#: nis/nis_error.c:69
229.2849 -+#: nis/nis_error.c:70
229.2850 - msgid "NIS+ service is unavailable or not installed"
229.2851 - msgstr "Slu¾ba NIS+ nie je dostupná alebo nain¹talovaná"
229.2852 - 
229.2853 --#: nis/nis_print.c:108
229.2854 -+#: nis/nis_print.c:109
229.2855 - msgid "NO OBJECT\n"
229.2856 - msgstr "®IADNY OBJEKT\n"
229.2857 - 
229.2858 --#: nscd/nscd.c:81
229.2859 -+#: nscd/nscd.c:87
229.2860 - msgid "NUMBER"
229.2861 - msgstr "POÈET"
229.2862 - 
229.2863 --#: nis/nis_print.c:162
229.2864 -+#: nis/nis_print.c:163
229.2865 - #, c-format
229.2866 --msgid "Name : '%s'\n"
229.2867 --msgstr "Názov : '%s'\n"
229.2868 -+msgid "Name : `%s'\n"
229.2869 -+msgstr "Názov : `%s'\n"
229.2870 - 
229.2871 --#: nscd/nscd.c:88
229.2872 -+#: nscd/nscd.c:97
229.2873 - msgid "Name Service Cache Daemon."
229.2874 - msgstr "Démon cache slu¾by názvov."
229.2875 - 
229.2876 --#: nis/nis_error.c:40
229.2877 -+#: nis/nis_error.c:41
229.2878 - msgid "Name not served by this server"
229.2879 - msgstr "Názov nie je obsluhovaný týmto serverom"
229.2880 - 
229.2881 --#: stdio-common/../sysdeps/gnu/errlist.c:758
229.2882 -+#: stdio-common/../sysdeps/gnu/errlist.c:777
229.2883 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:110
229.2884 - msgid "Name not unique on network"
229.2885 - msgstr "Meno nie je v sieti jednoznaèné"
229.2886 - 
229.2887 --#: posix/../sysdeps/posix/gai_strerror.c:37
229.2888 -+#: posix/../sysdeps/posix/gai_strerror.c:38
229.2889 - msgid "Name or service not known"
229.2890 - msgstr "Názov alebo slu¾ba neznáme"
229.2891 - 
229.2892 --#: nis/nis_error.c:49
229.2893 -+#: malloc/memusagestat.c:53
229.2894 -+msgid "Name output file"
229.2895 -+msgstr "Výstupný súbor názvu"
229.2896 -+
229.2897 -+#: nis/nis_error.c:50
229.2898 - msgid "Name/entry isn't unique"
229.2899 - msgstr "Názov/záznam nie sú jednoznaèné"
229.2900 - 
229.2901 --#: nis/nis_error.c:58
229.2902 -+#: nis/nis_error.c:59
229.2903 - msgid "Named object is not searchable"
229.2904 - msgstr "Zadaný objekt nie je prehµadávateµný"
229.2905 - 
229.2906 - #. TRANS ???
229.2907 --#: stdio-common/../sysdeps/gnu/errlist.c:566
229.2908 -+#: stdio-common/../sysdeps/gnu/errlist.c:567
229.2909 - msgid "Need authenticator"
229.2910 - msgstr "Potrebuje overovací objekt"
229.2911 - 
229.2912 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:159
229.2913 -+msgid "Network dropped connection because of reset"
229.2914 -+msgstr "Sie» zru¹ila spojenie kvôli resetu"
229.2915 -+
229.2916 - #. TRANS A network connection was reset because the remote host crashed.
229.2917 --#: stdio-common/../sysdeps/gnu/errlist.c:389
229.2918 -+#: stdio-common/../sysdeps/gnu/errlist.c:390
229.2919 - msgid "Network dropped connection on reset"
229.2920 - msgstr "Sie» zru¹ila spojenie (problém so vzdialeným poèítaèom)"
229.2921 - 
229.2922 - #. TRANS A socket operation failed because the network was down.
229.2923 --#: stdio-common/../sysdeps/gnu/errlist.c:378
229.2924 -+#: stdio-common/../sysdeps/gnu/errlist.c:379
229.2925 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:157
229.2926 - msgid "Network is down"
229.2927 - msgstr "Sie» je nefunkèná"
229.2928 - 
229.2929 - #. TRANS A socket operation failed because the subnet containing the remote host
229.2930 - #. TRANS was unreachable.
229.2931 --#: stdio-common/../sysdeps/gnu/errlist.c:384
229.2932 -+#: stdio-common/../sysdeps/gnu/errlist.c:385
229.2933 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:158
229.2934 - msgid "Network is unreachable"
229.2935 - msgstr "Sie» nie je dostupná"
229.2936 - 
229.2937 --#: stdio-common/../sysdeps/gnu/errlist.c:694
229.2938 -+#: stdio-common/../sysdeps/gnu/errlist.c:713
229.2939 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:73
229.2940 - msgid "No CSI structure available"
229.2941 - msgstr "CSI ¹truktúra nedostupná"
229.2942 - 
229.2943 --#: stdio-common/../sysdeps/gnu/errlist.c:802
229.2944 -+#: stdio-common/../sysdeps/gnu/errlist.c:821
229.2945 - msgid "No XENIX semaphores available"
229.2946 - msgstr "XENIX semafóry nedostupné"
229.2947 - 
229.2948 --#: posix/../sysdeps/posix/gai_strerror.c:36
229.2949 -+#: posix/../sysdeps/posix/gai_strerror.c:37
229.2950 - msgid "No address associated with hostname"
229.2951 - msgstr "Názov poèítaèa nemá priradenú adresu"
229.2952 - 
229.2953 --#: resolv/herror.c:77
229.2954 -+#: resolv/herror.c:71
229.2955 - msgid "No address associated with name"
229.2956 - msgstr "Názov nemá priradenú adresu"
229.2957 - 
229.2958 --#: stdio-common/../sysdeps/gnu/errlist.c:714
229.2959 -+#: stdio-common/../sysdeps/gnu/errlist.c:733
229.2960 - msgid "No anode"
229.2961 - msgstr "®iadny anode"
229.2962 - 
229.2963 - #. TRANS The kernel's buffers for I/O operations are all in use.  In GNU, this
229.2964 - #. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
229.2965 - #. TRANS other from network operations.
229.2966 --#: stdio-common/../sysdeps/gnu/errlist.c:408
229.2967 -+#: stdio-common/../sysdeps/gnu/errlist.c:409
229.2968 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:162
229.2969 - msgid "No buffer space available"
229.2970 - msgstr "Nie je mo¾né prideli» pamä» pre V/V operácie"
229.2971 - 
229.2972 -+#: locale/programs/ld-ctype.c:425
229.2973 -+msgid "No character set name specified in charmap"
229.2974 -+msgstr "V znakovej mape nie je zadaný názov znakovej sady"
229.2975 -+
229.2976 - #. TRANS There are no child processes.  This error happens on operations that are
229.2977 - #. TRANS supposed to manipulate child processes, when there aren't any processes
229.2978 - #. TRANS to manipulate.
229.2979 --#: stdio-common/../sysdeps/gnu/errlist.c:89
229.2980 -+#: stdio-common/../sysdeps/gnu/errlist.c:90
229.2981 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:40
229.2982 - msgid "No child processes"
229.2983 - msgstr "Detské procesy neexistujú"
229.2984 - 
229.2985 --#: stdio-common/../sysdeps/gnu/errlist.c:634
229.2986 -+#: stdio-common/../sysdeps/gnu/errlist.c:653
229.2987 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:91
229.2988 - msgid "No data available"
229.2989 - msgstr "Dáta nie sú k dispozícii"
229.2990 - 
229.2991 --#: nis/nis_error.c:73
229.2992 -+#: locale/programs/ld-address.c:131 locale/programs/ld-collate.c:1500
229.2993 -+#: locale/programs/ld-ctype.c:407 locale/programs/ld-identification.c:132
229.2994 -+#: locale/programs/ld-measurement.c:93 locale/programs/ld-messages.c:98
229.2995 -+#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94
229.2996 -+#: locale/programs/ld-numeric.c:99 locale/programs/ld-paper.c:91
229.2997 -+#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:160
229.2998 -+#, c-format
229.2999 -+msgid "No definition for %s category found"
229.3000 -+msgstr "Nebola nájdená definícia kategórie %s"
229.3001 -+
229.3002 -+#: nis/nis_error.c:74
229.3003 - msgid "No file space on server"
229.3004 - msgstr "Na serveri u¾ nie je ¾iadne miesto pre súbory"
229.3005 - 
229.3006 -+#: elf/ldconfig.c:532
229.3007 -+#, c-format
229.3008 -+msgid "No link created since soname could not be found for %s"
229.3009 -+msgstr "Odkaz nebol vytvorený, keï¾e pre %s nebolo mo¾né nájs» soname"
229.3010 -+
229.3011 - #. TRANS No locks available.  This is used by the file locking facilities; see
229.3012 - #. TRANS @ref{File Locks}.  This error is never generated by the GNU system, but
229.3013 - #. TRANS it can result from an operation to an NFS server running another
229.3014 - #. TRANS operating system.
229.3015 --#: stdio-common/../sysdeps/gnu/errlist.c:547
229.3016 -+#: stdio-common/../sysdeps/gnu/errlist.c:548
229.3017 - msgid "No locks available"
229.3018 - msgstr "Zámky nie sú k dispozícii"
229.3019 - 
229.3020 --#: posix/regex.c:1013
229.3021 -+#: posix/regex.c:1087
229.3022 - msgid "No match"
229.3023 - msgstr "®iadna zhoda"
229.3024 - 
229.3025 --#: stdio-common/../sysdeps/gnu/errlist.c:814
229.3026 -+#: stdio-common/../sysdeps/gnu/errlist.c:833
229.3027 - msgid "No medium found"
229.3028 - msgstr "Nenájdené ¾iadne médium"
229.3029 - 
229.3030 --#: stdio-common/../sysdeps/gnu/errlist.c:642
229.3031 -+#: stdio-common/../sysdeps/gnu/errlist.c:661
229.3032 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:65
229.3033 - msgid "No message of desired type"
229.3034 - msgstr "®iadna správa ¾elaného typu"
229.3035 - 
229.3036 --#: nis/ypclnt.c:779
229.3037 -+#: nis/ypclnt.c:802
229.3038 - msgid "No more records in map database"
229.3039 - msgstr "®iadne ïal¹ie záznamy v databáze"
229.3040 - 
229.3041 --#: posix/regex.c:5515
229.3042 -+#: posix/regex.c:5955
229.3043 - msgid "No previous regular expression"
229.3044 - msgstr "®iadny predchádzajúci regulérny výraz"
229.3045 - 
229.3046 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:76
229.3047 -+msgid "No record locks available"
229.3048 -+msgstr "Nie sú k dispozícii ¾iadne zámky"
229.3049 -+
229.3050 - #: sunrpc/rpcinfo.c:570
229.3051 - msgid "No remote programs registered.\n"
229.3052 - msgstr "Nie sú registrované ¾iadne vzdialené programy\n"
229.3053 - 
229.3054 - #. TRANS The remote host for a requested network connection is not reachable.
229.3055 --#: stdio-common/../sysdeps/gnu/errlist.c:474
229.3056 -+#: stdio-common/../sysdeps/gnu/errlist.c:475
229.3057 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:178
229.3058 - msgid "No route to host"
229.3059 - msgstr "Cesta k poèítaèu neexistuje"
229.3060 - 
229.3061 - #. TRANS No space left on device; write operation on a file failed because the
229.3062 - #. TRANS disk is full.
229.3063 --#: stdio-common/../sysdeps/gnu/errlist.c:208
229.3064 -+#: stdio-common/../sysdeps/gnu/errlist.c:209
229.3065 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:58
229.3066 - msgid "No space left on device"
229.3067 - msgstr "Na zariadení u¾ nie je ¾iadne miesto"
229.3068 - 
229.3069 - #. TRANS The wrong type of device was given to a function that expects a
229.3070 - #. TRANS particular sort of device.
229.3071 --#: stdio-common/../sysdeps/gnu/errlist.c:147
229.3072 -+#: stdio-common/../sysdeps/gnu/errlist.c:148
229.3073 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:49
229.3074 - msgid "No such device"
229.3075 - msgstr "Také zariadenie neexistuje"
229.3076 - 
229.3077 -+#. TRANS No such device or address.  The system tried to use the device
229.3078 -+#. TRANS represented by a file you specified, and it couldn't find the device.
229.3079 -+#. TRANS This can mean that the device file was installed incorrectly, or that
229.3080 -+#. TRANS the physical device is missing or not correctly attached to the
229.3081 -+#. TRANS computer.
229.3082 -+#: stdio-common/../sysdeps/gnu/errlist.c:62
229.3083 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:36
229.3084 -+msgid "No such device or address"
229.3085 -+msgstr "Také zariadenie alebo adresa neexistuje"
229.3086 -+
229.3087 - #. TRANS No such file or directory.  This is a ``file doesn't exist'' error
229.3088 - #. TRANS for ordinary files that are referenced in contexts where they are
229.3089 - #. TRANS expected to already exist.
229.3090 --#: stdio-common/../sysdeps/gnu/errlist.c:31
229.3091 -+#: stdio-common/../sysdeps/gnu/errlist.c:32
229.3092 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:32
229.3093 - msgid "No such file or directory"
229.3094 - msgstr "Adresár alebo súbor neexistuje"
229.3095 - 
229.3096 --#: nis/ypclnt.c:773
229.3097 -+#: nis/ypclnt.c:796
229.3098 - msgid "No such key in map"
229.3099 - msgstr "Tento kµúè v databáze neexistuje"
229.3100 - 
229.3101 --#: nis/ypclnt.c:771
229.3102 -+#: nis/ypclnt.c:794
229.3103 - msgid "No such map in server's domain"
229.3104 - msgstr "Táto mapa sa v doméne servera nenachádza"
229.3105 - 
229.3106 - #. TRANS No process matches the specified process ID.
229.3107 --#: stdio-common/../sysdeps/gnu/errlist.c:36
229.3108 -+#: stdio-common/../sysdeps/gnu/errlist.c:37
229.3109 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:33
229.3110 - msgid "No such process"
229.3111 - msgstr "Tento proces neexistuje"
229.3112 - 
229.3113 --#: nis/nis_error.c:60
229.3114 -+#: nis/nis_error.c:61
229.3115 - msgid "Non NIS+ namespace encountered"
229.3116 - msgstr "Zaznamenaný priestor názvov mimo NIS+"
229.3117 - 
229.3118 --#: posix/../sysdeps/posix/gai_strerror.c:33
229.3119 -+#: posix/../sysdeps/posix/gai_strerror.c:34
229.3120 - msgid "Non-recoverable failure in name resolution"
229.3121 - msgstr "Neopraviteµná chyba pri rie¹ení názvu"
229.3122 - 
229.3123 --#: nis/nis_print.c:176
229.3124 -+#: nis/nis_print.c:177
229.3125 - msgid "None.\n"
229.3126 - msgstr "®iadne.\n"
229.3127 - 
229.3128 --#: nis/nis_error.c:48
229.3129 --msgid "Not Found, no such name"
229.3130 --msgstr "Nenájdené, takýto názov neexistuje"
229.3131 --
229.3132 --#: stdio-common/../sysdeps/gnu/errlist.c:798
229.3133 -+#: stdio-common/../sysdeps/gnu/errlist.c:817
229.3134 - msgid "Not a XENIX named type file"
229.3135 - msgstr "Nejde o pomenovaný XENIX súbor"
229.3136 - 
229.3137 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:107
229.3138 -+msgid "Not a data message"
229.3139 -+msgstr "Nejde o dátovú správu"
229.3140 -+
229.3141 - #. TRANS A file that isn't a directory was specified when a directory is required.
229.3142 --#: stdio-common/../sysdeps/gnu/errlist.c:152
229.3143 -+#: stdio-common/../sysdeps/gnu/errlist.c:153
229.3144 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:50
229.3145 - msgid "Not a directory"
229.3146 - msgstr "Nie je adresár"
229.3147 - 
229.3148 --#: nis/nis_error.c:30
229.3149 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:167
229.3150 -+msgid "Not a name file"
229.3151 -+msgstr "Nejde o súbor názvu"
229.3152 -+
229.3153 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:90
229.3154 -+msgid "Not a stream device"
229.3155 -+msgstr "Nejde o prúdové zariadenie"
229.3156 -+
229.3157 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:168
229.3158 -+msgid "Not available"
229.3159 -+msgstr "Nie je k dispozícii"
229.3160 -+
229.3161 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:42
229.3162 -+msgid "Not enough space"
229.3163 -+msgstr "Nedostatok miesta"
229.3164 -+
229.3165 -+#: nis/nis_error.c:31
229.3166 - msgid "Not found"
229.3167 - msgstr "Nenájdené"
229.3168 - 
229.3169 --#: nis/nis_error.c:43
229.3170 -+#: nis/nis_error.c:49
229.3171 -+msgid "Not found, no such name"
229.3172 -+msgstr "Nenájdené, takýto názov neexistuje"
229.3173 -+
229.3174 -+#: nis/nis_error.c:44
229.3175 - msgid "Not master server for this domain"
229.3176 - msgstr "Nie je hlavný server pre túto doménu"
229.3177 - 
229.3178 --#: nis/nis_error.c:39
229.3179 -+#: nis/nis_error.c:40
229.3180 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:31
229.3181 - msgid "Not owner"
229.3182 - msgstr "Nie je vlastníkom"
229.3183 - 
229.3184 --#: nis/nis_print.c:263
229.3185 -+#. TRANS Not supported.  A function returns this error when certain parameter
229.3186 -+#. TRANS values are valid, but the functionality they request is not available.
229.3187 -+#. TRANS This can mean that the function does not implement a particular command
229.3188 -+#. TRANS or option value or flag bit at all.  For functions that operate on some
229.3189 -+#. TRANS object given in a parameter, such as a file descriptor or a port, it
229.3190 -+#. TRANS might instead mean that only @emph{that specific object} (file
229.3191 -+#. TRANS descriptor, port, etc.) is unable to support the other parameters given;
229.3192 -+#. TRANS different file descriptors might support different ranges of parameter
229.3193 -+#. TRANS values.
229.3194 -+#. TRANS
229.3195 -+#. TRANS If the entire function is not available at all in the implementation,
229.3196 -+#. TRANS it returns @code{ENOSYS} instead.
229.3197 -+#: stdio-common/../sysdeps/gnu/errlist.c:592
229.3198 -+msgid "Not supported"
229.3199 -+msgstr "Nie je podporovaný"
229.3200 -+
229.3201 -+#: nis/nis_print.c:264
229.3202 - #, c-format
229.3203 - msgid "Number of Columns   : %d\n"
229.3204 - msgstr "Poèet ståpcov          : %d\n"
229.3205 - 
229.3206 --#: nis/nis_print.c:358
229.3207 -+#: nis/nis_print.c:363
229.3208 - #, c-format
229.3209 - msgid "Number of objects : %u\n"
229.3210 - msgstr "Poèet objektov       : %u\n"
229.3211 - 
229.3212 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:120
229.3213 -+msgid "Number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"
229.3214 -+msgstr "Poèet symbolických odkazov nájdených poèas prechádzania cesty presahuje MAXSYMLINKS"
229.3215 -+
229.3216 - #. TRANS Domain error; used by mathematical functions when an argument value does
229.3217 - #. TRANS not fall into the domain over which the function is defined.
229.3218 --#: stdio-common/../sysdeps/gnu/errlist.c:240
229.3219 -+#: stdio-common/../sysdeps/gnu/errlist.c:241
229.3220 - msgid "Numerical argument out of domain"
229.3221 - msgstr "Èíselný rozsah mimo domény definície funkcie"
229.3222 - 
229.3223 - #. TRANS Range error; used by mathematical functions when the result value is
229.3224 - #. TRANS not representable because of overflow or underflow.
229.3225 --#: stdio-common/../sysdeps/gnu/errlist.c:246
229.3226 -+#: stdio-common/../sysdeps/gnu/errlist.c:247
229.3227 - msgid "Numerical result out of range"
229.3228 - msgstr "Èíselný výsledok mimo povoleného rozsahu"
229.3229 - 
229.3230 --#: nis/nis_print.c:362
229.3231 -+#: nis/nis_print.c:367
229.3232 - #, c-format
229.3233 - msgid "Object #%d:\n"
229.3234 - msgstr "Objekt #%d:\n"
229.3235 - 
229.3236 --#: nis/nis_print.c:314
229.3237 -+#: nis/nis_print.c:317
229.3238 - #, c-format
229.3239 - msgid "Object Name   : %s\n"
229.3240 - msgstr "Názov objektu    : %s\n"
229.3241 - 
229.3242 --#: nis/nis_print.c:324
229.3243 -+#: nis/nis_print.c:329
229.3244 - msgid "Object Type   : "
229.3245 - msgstr "Typ objektu      : "
229.3246 - 
229.3247 -@@ -1793,31 +2826,45 @@
229.3248 - #. TRANS already specifies an NFS-mounted file.
229.3249 - #. TRANS (This is an error on some operating systems, but we expect it to work
229.3250 - #. TRANS properly on the GNU system, making this error code impossible.)
229.3251 --#: stdio-common/../sysdeps/gnu/errlist.c:514
229.3252 -+#: stdio-common/../sysdeps/gnu/errlist.c:515
229.3253 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:96
229.3254 - msgid "Object is remote"
229.3255 - msgstr "Objekt je vzdialený"
229.3256 - 
229.3257 --#: nis/nis_error.c:42
229.3258 -+#: nis/nis_error.c:43
229.3259 - msgid "Object with same name exists"
229.3260 - msgstr "Existuje objekt s rovnakým názvom"
229.3261 - 
229.3262 --#: timezone/zic.c:1995
229.3263 -+#: timezone/zic.c:2022
229.3264 - msgid "Odd number of quotation marks"
229.3265 - msgstr "Nepárny poèet úvodzoviek"
229.3266 - 
229.3267 --#: nscd/nscd.c:185
229.3268 -+#: elf/ldconfig.c:134
229.3269 -+msgid "Only process directories specified on the command line.  Don't build cache."
229.3270 -+msgstr "Na príkazovom riadku sú zadané iba adresáre procesov. Nevytvára» cache."
229.3271 -+
229.3272 -+#: nscd/nscd.c:200 nscd/nscd.c:220 nscd/nscd.c:226
229.3273 - msgid "Only root is allowed to use this option!"
229.3274 - msgstr "Táto voµba je dostupná iba superu¾ívateµovi!"
229.3275 - 
229.3276 - #. TRANS An operation is already in progress on an object that has non-blocking
229.3277 - #. TRANS mode selected.
229.3278 --#: stdio-common/../sysdeps/gnu/errlist.c:306
229.3279 -+#: stdio-common/../sysdeps/gnu/errlist.c:307
229.3280 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:179
229.3281 - msgid "Operation already in progress"
229.3282 - msgstr "Operácia je u¾ rozpracovaná"
229.3283 - 
229.3284 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:77
229.3285 -+msgid "Operation canceled"
229.3286 -+msgstr "Operácia zru¹ená"
229.3287 -+
229.3288 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:119
229.3289 -+msgid "Operation not applicable"
229.3290 -+msgstr "Operácia nie je aplikovateµná"
229.3291 -+
229.3292 - #. TRANS Operation not permitted; only the owner of the file (or other resource)
229.3293 - #. TRANS or processes with special privileges can perform the operation.
229.3294 --#: stdio-common/../sysdeps/gnu/errlist.c:24
229.3295 -+#: stdio-common/../sysdeps/gnu/errlist.c:25
229.3296 - msgid "Operation not permitted"
229.3297 - msgstr "Operácia nie je povolená"
229.3298 - 
229.3299 -@@ -1827,10 +2874,15 @@
229.3300 - #. TRANS error can happen for many calls when the object does not support the
229.3301 - #. TRANS particular operation; it is a generic indication that the server knows
229.3302 - #. TRANS nothing to do for that call.
229.3303 --#: stdio-common/../sysdeps/gnu/errlist.c:350
229.3304 -+#: stdio-common/../sysdeps/gnu/errlist.c:351
229.3305 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:78
229.3306 - msgid "Operation not supported"
229.3307 - msgstr "Operácia nie je podporovaná"
229.3308 - 
229.3309 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:152
229.3310 -+msgid "Operation not supported on transport endpoint"
229.3311 -+msgstr "Operácia nie je podporovaná na koncovom bode komunikácie"
229.3312 -+
229.3313 - #. TRANS An operation that cannot complete immediately was initiated on an object
229.3314 - #. TRANS that has non-blocking mode selected.  Some functions that must always
229.3315 - #. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
229.3316 -@@ -1839,7 +2891,8 @@
229.3317 - #. TRANS the object before the call completes return @code{EALREADY}.  You can
229.3318 - #. TRANS use the @code{select} function to find out when the pending operation
229.3319 - #. TRANS has completed; @pxref{Waiting for I/O}.
229.3320 --#: stdio-common/../sysdeps/gnu/errlist.c:300
229.3321 -+#: stdio-common/../sysdeps/gnu/errlist.c:301
229.3322 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:180
229.3323 - msgid "Operation now in progress"
229.3324 - msgstr "Operácia prebieha"
229.3325 - 
229.3326 -@@ -1848,67 +2901,86 @@
229.3327 - #. TRANS
229.3328 - #. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
229.3329 - #. TRANS separate error code.
229.3330 --#: stdio-common/../sysdeps/gnu/errlist.c:288
229.3331 -+#: stdio-common/../sysdeps/gnu/errlist.c:289
229.3332 - msgid "Operation would block"
229.3333 - msgstr "Operácia by blokovala"
229.3334 - 
229.3335 --#: stdio-common/../sysdeps/gnu/errlist.c:646
229.3336 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:129
229.3337 -+msgid "Option not supported by protocol"
229.3338 -+msgstr "Voµba nie je protokolom podporovaná"
229.3339 -+
229.3340 -+#: locale/programs/localedef.c:103
229.3341 -+msgid "Optional output file prefix"
229.3342 -+msgstr "Voliteµný prefix výstupného súboru"
229.3343 -+
229.3344 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:93
229.3345 -+msgid "Out of stream resources"
229.3346 -+msgstr "Prúdové zdroje vyèerpané"
229.3347 -+
229.3348 -+#: stdio-common/../sysdeps/gnu/errlist.c:665
229.3349 - msgid "Out of streams resources"
229.3350 - msgstr "Prúdové zdroje vyèerpané"
229.3351 - 
229.3352 --#: iconv/iconv_prog.c:59 locale/programs/localedef.c:101
229.3353 -+#: iconv/iconv_prog.c:60 locale/programs/localedef.c:99
229.3354 - msgid "Output control:"
229.3355 - msgstr "Riadenie výstupu:"
229.3356 - 
229.3357 --#: elf/sprof.c:76
229.3358 -+#: elf/sprof.c:72
229.3359 - msgid "Output selection:"
229.3360 - msgstr "Výber výstupu:"
229.3361 - 
229.3362 --#: nis/nis_print.c:316
229.3363 -+#: nis/nis_print.c:319
229.3364 - #, c-format
229.3365 - msgid "Owner         : %s\n"
229.3366 - msgstr "Vlastník         : %s\n"
229.3367 - 
229.3368 --#: nis/nis_print.c:126
229.3369 -+#: nis/nis_print.c:127
229.3370 - msgid "PRIVATE\n"
229.3371 - msgstr "SÚKROMNÝ\n"
229.3372 - 
229.3373 --#: stdio-common/../sysdeps/gnu/errlist.c:738
229.3374 -+#: stdio-common/../sysdeps/gnu/errlist.c:757
229.3375 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:95
229.3376 - msgid "Package not installed"
229.3377 - msgstr "Balík nie je nain¹talovaný"
229.3378 - 
229.3379 --#: nscd/nscd_conf.c:84
229.3380 -+#: nscd/nscd_conf.c:83
229.3381 - #, c-format
229.3382 - msgid "Parse error: %s"
229.3383 - msgstr "Chyba analýzy: %s"
229.3384 - 
229.3385 --#: nis/nis_error.c:54
229.3386 --msgid "Partial Success"
229.3387 -+#: nis/nis_error.c:55
229.3388 -+msgid "Partial success"
229.3389 - msgstr "Èiastoèný úspech"
229.3390 - 
229.3391 --#: nis/nis_error.c:62
229.3392 -+#: nis/nis_error.c:63
229.3393 - msgid "Passed object is not the same object on server"
229.3394 - msgstr "Odovzdaný objekt nie je na serveri tým istým objektom"
229.3395 - 
229.3396 -+#: elf/ldconfig.c:287
229.3397 -+#, c-format
229.3398 -+msgid "Path `%s' given more than once"
229.3399 -+msgstr "Cesta `%s' bola zadaná viac ako raz"
229.3400 -+
229.3401 - #. TRANS Permission denied; the file permissions do not allow the attempted operation.
229.3402 --#: nis/nis_error.c:38 nis/ypclnt.c:793
229.3403 --#: stdio-common/../sysdeps/gnu/errlist.c:108
229.3404 -+#: nis/nis_error.c:39 nis/ypclnt.c:816
229.3405 -+#: stdio-common/../sysdeps/gnu/errlist.c:109
229.3406 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:43
229.3407 - msgid "Permission denied"
229.3408 - msgstr "Prístup odmietnutý"
229.3409 - 
229.3410 --#: sysdeps/unix/sysv/linux/siglist.h:64
229.3411 -+#: sysdeps/generic/siglist.h:71
229.3412 - msgid "Power failure"
229.3413 - msgstr "Výpadok napájania"
229.3414 - 
229.3415 --#: posix/regex.c:1026
229.3416 -+#: posix/regex.c:1126
229.3417 - msgid "Premature end of regular expression"
229.3418 - msgstr "Predèasný koniec regulérneho výrazu"
229.3419 - 
229.3420 --#: db2/makedb.c:63
229.3421 --msgid "Print content of database file, one entry a line"
229.3422 --msgstr "Vypísa» obsah databázového súboru, jeden záznam na riadok"
229.3423 -+#: elf/ldconfig.c:127
229.3424 -+msgid "Print cache"
229.3425 -+msgstr "Vypísa» cache"
229.3426 - 
229.3427 --#: nscd/nscd.c:83
229.3428 -+#: nscd/nscd.c:89
229.3429 - msgid "Print current configuration statistic"
229.3430 - msgstr "Vypísa» ¹tatistiku aktuálnej konfigurácie"
229.3431 - 
229.3432 -@@ -1916,243 +2988,259 @@
229.3433 - msgid "Print more messages"
229.3434 - msgstr "Vypísa» viac správ"
229.3435 - 
229.3436 --#: argp/argp-parse.c:148
229.3437 -+#: argp/argp-parse.c:154
229.3438 - msgid "Print program version"
229.3439 - msgstr "Vypísa» verziu programu"
229.3440 - 
229.3441 --#: nis/nis_error.c:29
229.3442 -+#: nis/nis_error.c:30
229.3443 - msgid "Probable success"
229.3444 - msgstr "Pravdepodobný úspech"
229.3445 - 
229.3446 --#: nis/nis_error.c:31
229.3447 -+#: nis/nis_error.c:32
229.3448 - msgid "Probably not found"
229.3449 - msgstr "Pravdepodobne nenájdené"
229.3450 - 
229.3451 --#: stdio-common/../sysdeps/unix/siglist.c:52
229.3452 --#: sysdeps/unix/sysv/linux/siglist.h:46
229.3453 -+#: stdio-common/../sysdeps/unix/siglist.c:53 sysdeps/generic/siglist.h:53
229.3454 - msgid "Profiling timer expired"
229.3455 - msgstr "Profilovací èasovaè vypr¹al"
229.3456 - 
229.3457 --#: stdio-common/../sysdeps/gnu/errlist.c:690
229.3458 -+#: stdio-common/../sysdeps/gnu/errlist.c:709
229.3459 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:72
229.3460 - msgid "Protocol driver not attached"
229.3461 - msgstr "Ovládaè protokolu nepripojený"
229.3462 - 
229.3463 --#: stdio-common/../sysdeps/gnu/errlist.c:658
229.3464 -+#: stdio-common/../sysdeps/gnu/errlist.c:677
229.3465 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:101
229.3466 - msgid "Protocol error"
229.3467 - msgstr "Chyba protokolu"
229.3468 - 
229.3469 - #. TRANS The socket communications protocol family you requested is not supported.
229.3470 --#: stdio-common/../sysdeps/gnu/errlist.c:355
229.3471 -+#: stdio-common/../sysdeps/gnu/errlist.c:356
229.3472 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:153
229.3473 - msgid "Protocol family not supported"
229.3474 - msgstr "Rodina protokolov nie je podporovaná"
229.3475 - 
229.3476 - #. TRANS You specified a socket option that doesn't make sense for the
229.3477 - #. TRANS particular protocol being used by the socket.  @xref{Socket Options}.
229.3478 --#: stdio-common/../sysdeps/gnu/errlist.c:328
229.3479 -+#: stdio-common/../sysdeps/gnu/errlist.c:329
229.3480 - msgid "Protocol not available"
229.3481 - msgstr "Protokol nie je k dispozícii"
229.3482 - 
229.3483 - #. TRANS The socket domain does not support the requested communications protocol
229.3484 - #. TRANS (perhaps because the requested protocol is completely invalid).
229.3485 - #. TRANS @xref{Creating a Socket}.
229.3486 --#: stdio-common/../sysdeps/gnu/errlist.c:335
229.3487 -+#: stdio-common/../sysdeps/gnu/errlist.c:336
229.3488 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:150
229.3489 - msgid "Protocol not supported"
229.3490 - msgstr "Protokol nie je podporovaný"
229.3491 - 
229.3492 - #. TRANS The socket type does not support the requested communications protocol.
229.3493 --#: stdio-common/../sysdeps/gnu/errlist.c:322
229.3494 -+#: stdio-common/../sysdeps/gnu/errlist.c:323
229.3495 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:128
229.3496 - msgid "Protocol wrong type for socket"
229.3497 - msgstr "Protokol nie je socketom podporovaný"
229.3498 - 
229.3499 --#: nis/nis_error.c:64
229.3500 -+#: nis/nis_error.c:65
229.3501 - msgid "Query illegal for named table"
229.3502 - msgstr "Neprípustná otázka pre danú tabuµku"
229.3503 - 
229.3504 --#: stdio-common/../sysdeps/unix/siglist.c:28
229.3505 --#: sysdeps/unix/sysv/linux/siglist.h:24
229.3506 -+#: stdio-common/../sysdeps/unix/siglist.c:29 sysdeps/generic/siglist.h:31
229.3507 - msgid "Quit"
229.3508 - msgstr "Koniec"
229.3509 - 
229.3510 --#: stdio-common/../sysdeps/gnu/errlist.c:754
229.3511 -+#: stdio-common/../sysdeps/gnu/errlist.c:773
229.3512 - msgid "RFS specific error"
229.3513 - msgstr "RFS-¹pecifická chyba"
229.3514 - 
229.3515 - #. TRANS ???
229.3516 --#: stdio-common/../sysdeps/gnu/errlist.c:539
229.3517 -+#: stdio-common/../sysdeps/gnu/errlist.c:540
229.3518 - msgid "RPC bad procedure for program"
229.3519 - msgstr "Chybná RPC procedúra pre program"
229.3520 - 
229.3521 --#: nis/ypclnt.c:767
229.3522 -+#: nis/ypclnt.c:790
229.3523 - msgid "RPC failure on NIS operation"
229.3524 - msgstr "Zlyhal RPC pri NIS operácii"
229.3525 - 
229.3526 - #. TRANS ???
229.3527 --#: stdio-common/../sysdeps/gnu/errlist.c:529
229.3528 -+#: stdio-common/../sysdeps/gnu/errlist.c:530
229.3529 - msgid "RPC program not available"
229.3530 - msgstr "RPC program nie je k dispozícii"
229.3531 - 
229.3532 - #. TRANS ???
229.3533 --#: stdio-common/../sysdeps/gnu/errlist.c:534
229.3534 -+#: stdio-common/../sysdeps/gnu/errlist.c:535
229.3535 - msgid "RPC program version wrong"
229.3536 - msgstr "Chybná verzia RPC programu"
229.3537 - 
229.3538 - #. TRANS ???
229.3539 --#: stdio-common/../sysdeps/gnu/errlist.c:519
229.3540 -+#: stdio-common/../sysdeps/gnu/errlist.c:520
229.3541 - msgid "RPC struct is bad"
229.3542 - msgstr "RPC ¹truktúra je chybná"
229.3543 - 
229.3544 - #. TRANS ???
229.3545 --#: stdio-common/../sysdeps/gnu/errlist.c:524
229.3546 -+#: stdio-common/../sysdeps/gnu/errlist.c:525
229.3547 - msgid "RPC version wrong"
229.3548 - msgstr "Chybná verzia RPC"
229.3549 - 
229.3550 --#: sunrpc/clnt_perr.c:215
229.3551 -+#: sunrpc/clnt_perr.c:271
229.3552 - msgid "RPC: (unknown error code)"
229.3553 - msgstr "RPC: (neznámny chybový kód)"
229.3554 - 
229.3555 --#: sunrpc/clnt_perr.c:176
229.3556 -+#: sunrpc/clnt_perr.c:190
229.3557 - msgid "RPC: Authentication error"
229.3558 - msgstr "RPC: Chyba pri overení práv"
229.3559 - 
229.3560 --#: sunrpc/clnt_perr.c:166
229.3561 -+#: sunrpc/clnt_perr.c:170
229.3562 - msgid "RPC: Can't decode result"
229.3563 - msgstr "RPC: Nie je mo¾né dekódova» výsledok"
229.3564 - 
229.3565 --#: sunrpc/clnt_perr.c:164
229.3566 -+#: sunrpc/clnt_perr.c:166
229.3567 - msgid "RPC: Can't encode arguments"
229.3568 - msgstr "RPC: Nie je mo¾né zakódova» argumenty"
229.3569 - 
229.3570 --#: sunrpc/clnt_perr.c:196
229.3571 -+#: sunrpc/clnt_perr.c:230
229.3572 - msgid "RPC: Failed (unspecified error)"
229.3573 - msgstr "RPC: Zlyhalo (ne¹pecifikovaná chyba)"
229.3574 - 
229.3575 --#: sunrpc/clnt_perr.c:174
229.3576 -+#: sunrpc/clnt_perr.c:186
229.3577 - msgid "RPC: Incompatible versions of RPC"
229.3578 - msgstr "RPC: Nekompatibilné verzie RPC"
229.3579 - 
229.3580 --#: sunrpc/clnt_perr.c:192
229.3581 -+#: sunrpc/clnt_perr.c:222
229.3582 - msgid "RPC: Port mapper failure"
229.3583 - msgstr "RPC: Chyba portmappera"
229.3584 - 
229.3585 --#: sunrpc/clnt_perr.c:182
229.3586 -+#: sunrpc/clnt_perr.c:202
229.3587 - msgid "RPC: Procedure unavailable"
229.3588 - msgstr "RPC: Procedúra nie je k dispozícii"
229.3589 - 
229.3590 --#: sunrpc/clnt_perr.c:194
229.3591 -+#: sunrpc/clnt_perr.c:226
229.3592 - msgid "RPC: Program not registered"
229.3593 - msgstr "RPC: Program nie je registrovaný"
229.3594 - 
229.3595 --#: sunrpc/clnt_perr.c:178
229.3596 -+#: sunrpc/clnt_perr.c:194
229.3597 - msgid "RPC: Program unavailable"
229.3598 - msgstr "RPC: Program nie je k dispozícii"
229.3599 - 
229.3600 --#: sunrpc/clnt_perr.c:180
229.3601 -+#: sunrpc/clnt_perr.c:198
229.3602 - msgid "RPC: Program/version mismatch"
229.3603 - msgstr "RPC: Nesúhlasí program alebo verzia"
229.3604 - 
229.3605 --#: sunrpc/clnt_perr.c:186
229.3606 -+#: sunrpc/clnt_perr.c:210
229.3607 - msgid "RPC: Remote system error"
229.3608 - msgstr "RPC: Chyba vzdialeného systému"
229.3609 - 
229.3610 --#: sunrpc/clnt_perr.c:184
229.3611 -+#: sunrpc/clnt_perr.c:206
229.3612 - msgid "RPC: Server can't decode arguments"
229.3613 - msgstr "RPC: Server nemô¾e dekódova» argumenty"
229.3614 - 
229.3615 --#: sunrpc/clnt_perr.c:162
229.3616 -+#: sunrpc/clnt_perr.c:163
229.3617 - msgid "RPC: Success"
229.3618 - msgstr "RPC: Úspech"
229.3619 - 
229.3620 --#: sunrpc/clnt_perr.c:172
229.3621 -+#: sunrpc/clnt_perr.c:182
229.3622 - msgid "RPC: Timed out"
229.3623 - msgstr "RPC: Èasovaè vypr¹al"
229.3624 - 
229.3625 --#: sunrpc/clnt_perr.c:170
229.3626 -+#: sunrpc/clnt_perr.c:178
229.3627 - msgid "RPC: Unable to receive"
229.3628 - msgstr "RPC: Nie je mo¾né prijíma»"
229.3629 - 
229.3630 --#: sunrpc/clnt_perr.c:168
229.3631 -+#: sunrpc/clnt_perr.c:174
229.3632 - msgid "RPC: Unable to send"
229.3633 - msgstr "RPC: Nie je mo¾né vysiela»"
229.3634 - 
229.3635 --#: sunrpc/clnt_perr.c:188
229.3636 -+#: sunrpc/clnt_perr.c:214
229.3637 - msgid "RPC: Unknown host"
229.3638 - msgstr "RPC: Neznámy poèítaè"
229.3639 - 
229.3640 --#: sunrpc/clnt_perr.c:190
229.3641 -+#: sunrpc/clnt_perr.c:218
229.3642 - msgid "RPC: Unknown protocol"
229.3643 - msgstr "RPC: Neznámy protokol"
229.3644 - 
229.3645 --#: nis/nis_print.c:184
229.3646 -+#: nis/nis_print.c:185
229.3647 - #, c-format
229.3648 - msgid "RSA (%d bits)\n"
229.3649 - msgstr "RSA (%d bitov)\n"
229.3650 - 
229.3651 --#: elf/dlsym.c:59 elf/dlvsym.c:62
229.3652 -+#: elf/dl-sym.c:68 elf/dl-sym.c:125
229.3653 - msgid "RTLD_NEXT used in code not dynamically loaded"
229.3654 - msgstr "RTLD_NEXT je pou¾ité pre kód, ktorý nie je dynamicky zavedený"
229.3655 - 
229.3656 --#: elf/sprof.c:88
229.3657 -+#: elf/sprof.c:84
229.3658 - msgid "Read and display shared object profiling data"
229.3659 - msgstr "Preèíta» a vypísa» profilovacie údaje zdieµaného objektu"
229.3660 - 
229.3661 --#: nscd/nscd.c:78
229.3662 -+#: nscd/nscd.c:84
229.3663 - msgid "Read configuration data from NAME"
229.3664 - msgstr "Naèíta» údaje o konfigurácii z NÁZOV"
229.3665 - 
229.3666 - #. TRANS An attempt was made to modify something on a read-only file system.
229.3667 --#: stdio-common/../sysdeps/gnu/errlist.c:218
229.3668 -+#: stdio-common/../sysdeps/gnu/errlist.c:219
229.3669 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:60
229.3670 - msgid "Read-only file system"
229.3671 - msgstr "Súborový systém dovoµuje len èítanie"
229.3672 - 
229.3673 --#: string/strsignal.c:66
229.3674 -+#: string/strsignal.c:67
229.3675 - #, c-format
229.3676 - msgid "Real-time signal %d"
229.3677 - msgstr "Signál reálneho èasu %d"
229.3678 - 
229.3679 --#: posix/regex.c:1027
229.3680 -+#: posix/regex.c:1129
229.3681 - msgid "Regular expression too big"
229.3682 - msgstr "Regulérny výraz príli¹ veµký"
229.3683 - 
229.3684 --#: stdio-common/../sysdeps/gnu/errlist.c:810
229.3685 -+#: stdio-common/../sysdeps/gnu/errlist.c:829
229.3686 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:170
229.3687 - msgid "Remote I/O error"
229.3688 - msgstr "Vzdialená V/V chyba"
229.3689 - 
229.3690 --#: stdio-common/../sysdeps/gnu/errlist.c:766
229.3691 -+#: stdio-common/../sysdeps/gnu/errlist.c:785
229.3692 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:112
229.3693 - msgid "Remote address changed"
229.3694 - msgstr "Vzdialená adresa sa zmenila"
229.3695 - 
229.3696 --#: inet/ruserpass.c:162
229.3697 -+#: inet/ruserpass.c:182
229.3698 - msgid "Remove password or make file unreadable by others."
229.3699 - msgstr "Odstráòte heslo alebo zaká¾te èítanie súboru ostatnými."
229.3700 - 
229.3701 --#: elf/sprof.c:537
229.3702 -+#: elf/cache.c:394
229.3703 -+#, c-format
229.3704 -+msgid "Renaming of %s to %s failed"
229.3705 -+msgstr "Premenovanie %s na %s zlyhalo"
229.3706 -+
229.3707 -+#: elf/sprof.c:532
229.3708 - #, c-format
229.3709 - msgid "Reopening shared object `%s' failed"
229.3710 - msgstr "Znovuotvorenie zdieµaného objektu `%s' zlyhalo"
229.3711 - 
229.3712 --#: nis/nis_print.c:170
229.3713 -+#: nis/nis_print.c:171
229.3714 - msgid "Replicate :\n"
229.3715 - msgstr "Replika      :\n"
229.3716 - 
229.3717 --#: argp/argp-help.c:1638
229.3718 -+#: argp/argp-help.c:1639
229.3719 - #, c-format
229.3720 - msgid "Report bugs to %s.\n"
229.3721 - msgstr "Chyby hláste na adrese %s.\n"
229.3722 - 
229.3723 --#: catgets/gencat.c:223 db2/makedb.c:229 iconv/iconv_prog.c:280
229.3724 --#: locale/programs/locale.c:254 locale/programs/localedef.c:389
229.3725 -+#: catgets/gencat.c:233 debug/pcprofiledump.c:181 iconv/iconv_prog.c:337
229.3726 -+#: locale/programs/locale.c:256 locale/programs/localedef.c:297
229.3727 -+#: malloc/memusagestat.c:602
229.3728 - msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
229.3729 - msgstr "Chyby hláste na adrese <bugs@gnu.org> - pou¾ite skript `glibcbug'.\n"
229.3730 - 
229.3731 --#: nis/ypclnt.c:765
229.3732 -+#: nis/ypclnt.c:788
229.3733 - msgid "Request arguments bad"
229.3734 - msgstr "Chybné argumenty ¾iadosti"
229.3735 - 
229.3736 --#: resolv/herror.c:73
229.3737 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:171
229.3738 -+msgid "Reserved for future use"
229.3739 -+msgstr "Rezervované pre budúce pou¾itie"
229.3740 -+
229.3741 -+#: resolv/herror.c:67
229.3742 - msgid "Resolver Error 0 (no error)"
229.3743 - msgstr "Chyba resolvera 0 (¾iadna chyba)"
229.3744 - 
229.3745 --#: resolv/herror.c:117
229.3746 -+#: resolv/herror.c:107
229.3747 - msgid "Resolver internal error"
229.3748 - msgstr "Vnútorná chyba resolvera"
229.3749 - 
229.3750 -@@ -2160,11 +3248,11 @@
229.3751 - #. TRANS deadlock situation.  The system does not guarantee that it will notice
229.3752 - #. TRANS all such situations.  This error means you got lucky and the system
229.3753 - #. TRANS noticed; it might just hang.  @xref{File Locks}, for an example.
229.3754 --#: stdio-common/../sysdeps/gnu/errlist.c:97
229.3755 -+#: stdio-common/../sysdeps/gnu/errlist.c:98
229.3756 - msgid "Resource deadlock avoided"
229.3757 - msgstr "Bolo zabránené vzájomnému zablokovaniu"
229.3758 - 
229.3759 --#: stdio-common/../sysdeps/unix/siglist.c:54
229.3760 -+#: stdio-common/../sysdeps/unix/siglist.c:55 sysdeps/generic/siglist.h:74
229.3761 - msgid "Resource lost"
229.3762 - msgstr "Zdroj bol stratený"
229.3763 - 
229.3764 -@@ -2197,76 +3285,83 @@
229.3765 - #. TRANS so usually an interactive program should report the error to the user
229.3766 - #. TRANS and return to its command loop.
229.3767 - #. TRANS @end itemize
229.3768 --#: stdio-common/../sysdeps/gnu/errlist.c:279
229.3769 -+#: stdio-common/../sysdeps/gnu/errlist.c:280
229.3770 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:41
229.3771 - msgid "Resource temporarily unavailable"
229.3772 - msgstr "Zdroj je doèasne neprístupný"
229.3773 - 
229.3774 --#: nis/nis_error.c:47
229.3775 --msgid "Results Sent to callback proc"
229.3776 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:64
229.3777 -+msgid "Result too large"
229.3778 -+msgstr "Výsledok je príli¹ veµký"
229.3779 -+
229.3780 -+#: nis/nis_error.c:48
229.3781 -+msgid "Results sent to callback proc"
229.3782 - msgstr "Výsledky poslané procedúre spätného volania"
229.3783 - 
229.3784 --#: elf/sprof.c:91
229.3785 -+#: elf/sprof.c:87
229.3786 - msgid "SHOBJ [PROFDATA]"
229.3787 - msgstr "ZDIE¥_OBJEKT [PROF_ÚDAJE]"
229.3788 - 
229.3789 --#: nis/nis_print.c:33
229.3790 -+#: nis/nis_print.c:34
229.3791 - msgid "SUNYP"
229.3792 - msgstr "SUNYP"
229.3793 - 
229.3794 --#: nis/nis_print.c:265
229.3795 -+#: nis/nis_print.c:266
229.3796 - #, c-format
229.3797 - msgid "Search Path         : %s\n"
229.3798 - msgstr "Prehµadávaná cesta     : %s\n"
229.3799 - 
229.3800 --#: stdio-common/../sysdeps/unix/siglist.c:36
229.3801 --#: sysdeps/unix/sysv/linux/siglist.h:31
229.3802 -+#: stdio-common/../sysdeps/unix/siglist.c:37 sysdeps/generic/siglist.h:38
229.3803 - msgid "Segmentation fault"
229.3804 - msgstr "Chyba segmentácie"
229.3805 - 
229.3806 --#: nis/nis_error.c:35
229.3807 -+#: nis/nis_error.c:36
229.3808 - msgid "Server busy, try again"
229.3809 - msgstr "Server zaneprázdnený, skúste znovu"
229.3810 - 
229.3811 --#: nis/nis_error.c:41
229.3812 -+#: nis/nis_error.c:42
229.3813 - msgid "Server out of memory"
229.3814 - msgstr "Vyèerpaná pamä» servera"
229.3815 - 
229.3816 --#: sunrpc/clnt_perr.c:277
229.3817 -+#: sunrpc/clnt_perr.c:336
229.3818 - msgid "Server rejected credential"
229.3819 - msgstr "Server odmietol oprávnenie"
229.3820 - 
229.3821 --#: sunrpc/clnt_perr.c:281
229.3822 -+#: sunrpc/clnt_perr.c:344
229.3823 - msgid "Server rejected verifier"
229.3824 - msgstr "Server odmietol overenie"
229.3825 - 
229.3826 --#: posix/../sysdeps/posix/gai_strerror.c:38
229.3827 -+#: posix/../sysdeps/posix/gai_strerror.c:39
229.3828 - msgid "Servname not supported for ai_socktype"
229.3829 - msgstr "Servname nie je pre ai_socktype podporovaná"
229.3830 - 
229.3831 --#: argp/argp-parse.c:89
229.3832 -+#: argp/argp-parse.c:95
229.3833 - msgid "Set the program name"
229.3834 - msgstr "Nastavi» názov programu"
229.3835 - 
229.3836 --#: nscd/nscd.c:82
229.3837 -+#: nscd/nscd.c:88
229.3838 - msgid "Shut the server down"
229.3839 - msgstr "Zastavi» server"
229.3840 - 
229.3841 --#: stdio-common/../sysdeps/unix/siglist.c:25
229.3842 -+#: stdio-common/../sysdeps/unix/siglist.c:26
229.3843 - msgid "Signal 0"
229.3844 - msgstr "Signál 0"
229.3845 - 
229.3846 - #. TRANS A file that isn't a socket was specified when a socket is required.
229.3847 --#: stdio-common/../sysdeps/gnu/errlist.c:311
229.3848 -+#: stdio-common/../sysdeps/gnu/errlist.c:312
229.3849 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:125
229.3850 - msgid "Socket operation on non-socket"
229.3851 - msgstr "Socketová operácia na objekte, ktorý nie je socket"
229.3852 - 
229.3853 - #. TRANS The socket type is not supported.
229.3854 --#: stdio-common/../sysdeps/gnu/errlist.c:340
229.3855 -+#: stdio-common/../sysdeps/gnu/errlist.c:341
229.3856 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:151
229.3857 - msgid "Socket type not supported"
229.3858 - msgstr "Typ socketu nie je podporovaný"
229.3859 - 
229.3860 - #. TRANS A network connection was aborted locally.
229.3861 --#: stdio-common/../sysdeps/gnu/errlist.c:394
229.3862 -+#: stdio-common/../sysdeps/gnu/errlist.c:395
229.3863 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:160
229.3864 - msgid "Software caused connection abort"
229.3865 - msgstr "Software spôsobil zru¹enie spojenia"
229.3866 - 
229.3867 -@@ -2274,15 +3369,16 @@
229.3868 - msgid "Sorry. You are not root\n"
229.3869 - msgstr "Bohu¾iaµ - nie ste superu¾ívateµ\n"
229.3870 - 
229.3871 --#: locale/programs/localedef.c:97
229.3872 -+#: locale/programs/localedef.c:95
229.3873 - msgid "Source definitions are found in FILE"
229.3874 - msgstr "Zdrojové definície sa nachádzajú v SÚBORe"
229.3875 - 
229.3876 --#: stdio-common/../sysdeps/gnu/errlist.c:746
229.3877 -+#: stdio-common/../sysdeps/gnu/errlist.c:765
229.3878 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:99
229.3879 - msgid "Srmount error"
229.3880 - msgstr "Chyba srmount"
229.3881 - 
229.3882 --#: sysdeps/unix/sysv/linux/siglist.h:59
229.3883 -+#: sysdeps/generic/siglist.h:66
229.3884 - msgid "Stack fault"
229.3885 - msgstr "Chyba zásobníka"
229.3886 - 
229.3887 -@@ -2290,73 +3386,75 @@
229.3888 - #. TRANS system which is due to file system rearrangements on the server host.
229.3889 - #. TRANS Repairing this condition usually requires unmounting and remounting
229.3890 - #. TRANS the NFS file system on the local host.
229.3891 --#: stdio-common/../sysdeps/gnu/errlist.c:506
229.3892 -+#: stdio-common/../sysdeps/gnu/errlist.c:507
229.3893 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:181
229.3894 - msgid "Stale NFS file handle"
229.3895 - msgstr "Zastaralý odkaz na NFS súbor"
229.3896 - 
229.3897 --#: nscd/nscd.c:81
229.3898 -+#: nscd/nscd.c:87
229.3899 - msgid "Start NUMBER threads"
229.3900 - msgstr "Spusti» POÈET vlákien"
229.3901 - 
229.3902 --#: nis/nis_print.c:357
229.3903 -+#: nis/nis_print.c:362
229.3904 - #, c-format
229.3905 - msgid "Status            : %s\n"
229.3906 - msgstr "Stav                 : %s\n"
229.3907 - 
229.3908 --#: stdio-common/../sysdeps/unix/siglist.c:43
229.3909 --#: sysdeps/unix/sysv/linux/siglist.h:37
229.3910 -+#: stdio-common/../sysdeps/unix/siglist.c:44 sysdeps/generic/siglist.h:44
229.3911 - msgid "Stopped"
229.3912 - msgstr "Zastavené"
229.3913 - 
229.3914 --#: stdio-common/../sysdeps/unix/siglist.c:42
229.3915 --#: sysdeps/unix/sysv/linux/siglist.h:36
229.3916 -+#: stdio-common/../sysdeps/unix/siglist.c:43 sysdeps/generic/siglist.h:43
229.3917 - msgid "Stopped (signal)"
229.3918 - msgstr "Zastavené (signál)"
229.3919 - 
229.3920 --#: stdio-common/../sysdeps/unix/siglist.c:46
229.3921 --#: sysdeps/unix/sysv/linux/siglist.h:40
229.3922 -+#: stdio-common/../sysdeps/unix/siglist.c:47 sysdeps/generic/siglist.h:47
229.3923 - msgid "Stopped (tty input)"
229.3924 - msgstr "Zastavené (vstup z terminálu)"
229.3925 - 
229.3926 --#: stdio-common/../sysdeps/unix/siglist.c:47
229.3927 --#: sysdeps/unix/sysv/linux/siglist.h:41
229.3928 -+#: stdio-common/../sysdeps/unix/siglist.c:48 sysdeps/generic/siglist.h:48
229.3929 - msgid "Stopped (tty output)"
229.3930 - msgstr "Zastavené (výstup na terminál)"
229.3931 - 
229.3932 --#: stdio-common/../sysdeps/gnu/errlist.c:790
229.3933 -+#: stdio-common/../sysdeps/gnu/errlist.c:809
229.3934 - msgid "Streams pipe error"
229.3935 - msgstr "Chyba rúry prúdov"
229.3936 - 
229.3937 --#: stdio-common/../sysdeps/gnu/errlist.c:794
229.3938 -+#: stdio-common/../sysdeps/gnu/errlist.c:813
229.3939 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:165
229.3940 - msgid "Structure needs cleaning"
229.3941 - msgstr "©truktúra potrebuje opravu"
229.3942 - 
229.3943 --#: nis/nis_error.c:28 nis/ypclnt.c:763 nis/ypclnt.c:837 posix/regex.c:1012
229.3944 --#: stdio-common/../sysdeps/gnu/errlist.c:19
229.3945 -+#: nis/nis_error.c:29 nis/ypclnt.c:786 nis/ypclnt.c:860 posix/regex.c:1084
229.3946 -+#: stdio-common/../sysdeps/gnu/errlist.c:20
229.3947 - msgid "Success"
229.3948 - msgstr "Úspech"
229.3949 - 
229.3950 -+#: nss/getent.c:703
229.3951 -+msgid "Supported databases:"
229.3952 -+msgstr "Podporované databázy:"
229.3953 -+
229.3954 - #: locale/programs/localedef.c:106
229.3955 - msgid "Suppress warnings and information messages"
229.3956 - msgstr "Potlaèi» varovné a informaèné správy"
229.3957 - 
229.3958 --#: locale/programs/localedef.c:96
229.3959 -+#: locale/programs/localedef.c:94
229.3960 - msgid "Symbolic character names defined in FILE"
229.3961 - msgstr "Symbolické názvy znakov sú definované v SÚBORe"
229.3962 - 
229.3963 --#: posix/../sysdeps/posix/gai_strerror.c:40
229.3964 -+#: posix/../sysdeps/posix/gai_strerror.c:41
229.3965 - msgid "System error"
229.3966 - msgstr "Chyba systému"
229.3967 - 
229.3968 --#: locale/programs/locale.c:63
229.3969 -+#: locale/programs/locale.c:65
229.3970 - msgid "System information:"
229.3971 - msgstr "Systémové informácie:"
229.3972 - 
229.3973 --#: nis/ypclnt.c:843
229.3974 -+#: nis/ypclnt.c:866
229.3975 - msgid "System resource allocation failure"
229.3976 - msgstr "Pridelenie systémových zdrojov zlyhalo"
229.3977 - 
229.3978 --#: locale/programs/localedef.c:384
229.3979 -+#: locale/programs/localedef.c:292
229.3980 - #, c-format
229.3981 - msgid ""
229.3982 - "System's directory for character maps : %s\n"
229.3983 -@@ -2369,21 +3467,28 @@
229.3984 - "                      cestu locale    : %s\n"
229.3985 - "%s"
229.3986 - 
229.3987 --#: nis/nis_print.c:117
229.3988 -+#: nscd/nscd.c:90
229.3989 -+msgid "TABLE"
229.3990 -+msgstr "TABU¥KA"
229.3991 -+
229.3992 -+#: nis/nis_print.c:118
229.3993 - msgid "TABLE\n"
229.3994 - msgstr "TABU¥KA\n"
229.3995 - 
229.3996 --#: nis/nis_print.c:262
229.3997 -+#: nscd/nscd.c:92
229.3998 -+msgid "TABLE,yes"
229.3999 -+msgstr "TABU¥KA,áno"
229.4000 -+
229.4001 -+#: nis/nis_print.c:263
229.4002 - #, c-format
229.4003 - msgid "Table Type          : %s\n"
229.4004 - msgstr "Typ tabuµky            : %s\n"
229.4005 - 
229.4006 --#: posix/../sysdeps/posix/gai_strerror.c:31
229.4007 -+#: posix/../sysdeps/posix/gai_strerror.c:32
229.4008 - msgid "Temporary failure in name resolution"
229.4009 - msgstr "Doèasná chyba pri rie¹ení názvu"
229.4010 - 
229.4011 --#: stdio-common/../sysdeps/unix/siglist.c:40
229.4012 --#: sysdeps/unix/sysv/linux/siglist.h:34
229.4013 -+#: stdio-common/../sysdeps/unix/siglist.c:41 sysdeps/generic/siglist.h:41
229.4014 - msgid "Terminated"
229.4015 - msgstr "Ukonèené"
229.4016 - 
229.4017 -@@ -2392,52 +3497,58 @@
229.4018 - #. TRANS debugger to run a program is considered having it open for writing and
229.4019 - #. TRANS will cause this error.  (The name stands for ``text file busy''.)  This
229.4020 - #. TRANS is not an error in the GNU system; the text is copied as necessary.
229.4021 --#: stdio-common/../sysdeps/gnu/errlist.c:197
229.4022 -+#: stdio-common/../sysdeps/gnu/errlist.c:198
229.4023 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:56
229.4024 - msgid "Text file busy"
229.4025 - msgstr "Spustiteµný súbor je pou¾ívaný"
229.4026 - 
229.4027 --#: iconv/iconv_prog.c:536
229.4028 -+#: iconv/iconv_prog.c:627
229.4029 - msgid ""
229.4030 - "The following list contain all the coded character sets known.  This does\n"
229.4031 - "not necessarily mean that all combinations of these names can be used for\n"
229.4032 - "the FROM and TO command line parameters.  One coded character set can be\n"
229.4033 - "listed with several different names (aliases).\n"
229.4034 --"  Some of the names are no plain strings but instead regular expressions and\n"
229.4035 --"they match a variety of names which can be given as parameters to the\n"
229.4036 --"program.\n"
229.4037 - "\n"
229.4038 - "  "
229.4039 - msgstr ""
229.4040 - "Nasledujúci zoznam obsahuje v¹etky známe znakové sady. To nutne neznamená,\n"
229.4041 - "¾e v¹etky kombinácie týchto názvov mô¾u by» pou¾ité pre argumenty Z a DO.\n"
229.4042 - "Jedna sada znakov mô¾e by» uvedená pod viacerými názvami (aliasmi).\n"
229.4043 --"  Niektoré z názvov nie sú obyèajné re»azce, ale regulárne výrazy, ktoré\n"
229.4044 --"¹pecifikujú mo¾né parametre programu.\n"
229.4045 - "\n"
229.4046 - "  "
229.4047 - 
229.4048 --#: nis/nis_print.c:223
229.4049 -+#: sunrpc/rpc_main.c:1364
229.4050 -+msgid "This implementation doesn't support newstyle or MT-safe code!\n"
229.4051 -+msgstr "Táto implementácia nepodporuje nový ¹týl alebo MT-bezpeèný kód!\n"
229.4052 -+
229.4053 -+#: nis/nis_print.c:224
229.4054 - msgid "Time to live : "
229.4055 - msgstr "®ivotnos»       : "
229.4056 - 
229.4057 --#: stdio-common/../sysdeps/gnu/errlist.c:662
229.4058 -+#: stdio-common/../sysdeps/gnu/errlist.c:681
229.4059 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:92
229.4060 - msgid "Timer expired"
229.4061 - msgstr "Èasovaè vypr¹al"
229.4062 - 
229.4063 --#: nis/nis_error.c:55
229.4064 --msgid "Too Many Attributes"
229.4065 -+#: malloc/memusagestat.c:54
229.4066 -+msgid "Title string used in output graphic"
229.4067 -+msgstr "Titulok pou¾itý pre výstupný graf"
229.4068 -+
229.4069 -+#: nis/nis_error.c:56
229.4070 -+msgid "Too many attributes"
229.4071 - msgstr "Priveµa atribútov"
229.4072 - 
229.4073 - #. TRANS Too many levels of symbolic links were encountered in looking up a file name.
229.4074 - #. TRANS This often indicates a cycle of symbolic links.
229.4075 --#: stdio-common/../sysdeps/gnu/errlist.c:457
229.4076 -+#: stdio-common/../sysdeps/gnu/errlist.c:458
229.4077 - msgid "Too many levels of symbolic links"
229.4078 - msgstr "Priveµa úrovní symbolických odkazov"
229.4079 - 
229.4080 - #. TRANS Too many links; the link count of a single file would become too large.
229.4081 - #. TRANS @code{rename} can cause this error if the file being renamed already has
229.4082 - #. TRANS as many links as it can take (@pxref{Renaming Files}).
229.4083 --#: stdio-common/../sysdeps/gnu/errlist.c:225
229.4084 -+#: stdio-common/../sysdeps/gnu/errlist.c:226
229.4085 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:61
229.4086 - msgid "Too many links"
229.4087 - msgstr "Priveµa odkazov"
229.4088 - 
229.4089 -@@ -2448,54 +3559,57 @@
229.4090 - #. TRANS limit that can usually be increased.  If you get this error, you might
229.4091 - #. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
229.4092 - #. TRANS @pxref{Limits on Resources}.
229.4093 --#: stdio-common/../sysdeps/gnu/errlist.c:175
229.4094 -+#: stdio-common/../sysdeps/gnu/errlist.c:176
229.4095 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:54
229.4096 - msgid "Too many open files"
229.4097 - msgstr "Priveµa otvorených súborov"
229.4098 - 
229.4099 - #. TRANS There are too many distinct file openings in the entire system.  Note
229.4100 - #. TRANS that any number of linked channels count as just one file opening; see
229.4101 - #. TRANS @ref{Linked Channels}.  This error never occurs in the GNU system.
229.4102 --#: stdio-common/../sysdeps/gnu/errlist.c:182
229.4103 -+#: stdio-common/../sysdeps/gnu/errlist.c:183
229.4104 - msgid "Too many open files in system"
229.4105 - msgstr "Priveµa otvorených súborov v systéme"
229.4106 - 
229.4107 - #. TRANS This means that the per-user limit on new process would be exceeded by
229.4108 - #. TRANS an attempted @code{fork}.  @xref{Limits on Resources}, for details on
229.4109 - #. TRANS the @code{RLIMIT_NPROC} limit.
229.4110 --#: stdio-common/../sysdeps/gnu/errlist.c:487
229.4111 -+#: stdio-common/../sysdeps/gnu/errlist.c:488
229.4112 - msgid "Too many processes"
229.4113 - msgstr "Priveµa procesov"
229.4114 - 
229.4115 - #. TRANS ???
229.4116 --#: stdio-common/../sysdeps/gnu/errlist.c:439
229.4117 -+#: stdio-common/../sysdeps/gnu/errlist.c:440
229.4118 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:174
229.4119 - msgid "Too many references: cannot splice"
229.4120 - msgstr "Priveµa odkazov - nie je mo¾né rozdeli»"
229.4121 - 
229.4122 - #. TRANS The file quota system is confused because there are too many users.
229.4123 - #. TRANS @c This can probably happen in a GNU system when using NFS.
229.4124 --#: stdio-common/../sysdeps/gnu/errlist.c:493
229.4125 -+#: stdio-common/../sysdeps/gnu/errlist.c:494
229.4126 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:124
229.4127 - msgid "Too many users"
229.4128 - msgstr "Priveµa pou¾ívateµov"
229.4129 - 
229.4130 --#: stdio-common/../sysdeps/unix/siglist.c:30
229.4131 --#: sysdeps/unix/sysv/linux/siglist.h:26
229.4132 -+#: stdio-common/../sysdeps/unix/siglist.c:31 sysdeps/generic/siglist.h:33
229.4133 - msgid "Trace/breakpoint trap"
229.4134 - msgstr "Trasovacie/ladiace preru¹enie"
229.4135 - 
229.4136 --#: posix/regex.c:1017
229.4137 -+#: posix/regex.c:1099
229.4138 - msgid "Trailing backslash"
229.4139 - msgstr "Koncové spätné lomítko"
229.4140 - 
229.4141 - #. TRANS In the GNU system, opening a file returns this error when the file is
229.4142 - #. TRANS translated by a program and the translator program dies while starting
229.4143 - #. TRANS up, before it has connected to the file.
229.4144 --#: stdio-common/../sysdeps/gnu/errlist.c:596
229.4145 -+#: stdio-common/../sysdeps/gnu/errlist.c:615
229.4146 - msgid "Translator died"
229.4147 - msgstr "Prekladací program skonèil"
229.4148 - 
229.4149 - #. TRANS You tried to connect a socket that is already connected.
229.4150 - #. TRANS @xref{Connecting}.
229.4151 --#: stdio-common/../sysdeps/gnu/errlist.c:414
229.4152 -+#: stdio-common/../sysdeps/gnu/errlist.c:415
229.4153 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:163
229.4154 - msgid "Transport endpoint is already connected"
229.4155 - msgstr "Koncový komunikaèný bod je u¾ spojený"
229.4156 - 
229.4157 -@@ -2503,139 +3617,139 @@
229.4158 - #. TRANS try to transmit data over a socket, without first specifying a
229.4159 - #. TRANS destination for the data.  For a connectionless socket (for datagram
229.4160 - #. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
229.4161 --#: stdio-common/../sysdeps/gnu/errlist.c:422
229.4162 -+#: stdio-common/../sysdeps/gnu/errlist.c:423
229.4163 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:164
229.4164 - msgid "Transport endpoint is not connected"
229.4165 - msgstr "Koncový komunikaèný bod nie je spojený"
229.4166 - 
229.4167 --#: argp/argp-help.c:1610
229.4168 -+#: argp/argp-help.c:1611
229.4169 - #, c-format
229.4170 - msgid "Try `%s --help' or `%s --usage' for more information.\n"
229.4171 - msgstr "Pou¾ite `%s --help' alebo `%s --usage' pre viac informácií.\n"
229.4172 - 
229.4173 --#: inet/rcmd.c:143
229.4174 --#, c-format
229.4175 --msgid "Trying %s...\n"
229.4176 --msgstr "Skú¹am %s...\n"
229.4177 --
229.4178 --#: nis/nis_print.c:163
229.4179 -+#: nis/nis_print.c:164
229.4180 - #, c-format
229.4181 - msgid "Type : %s\n"
229.4182 - msgstr "Typ  : %s\n"
229.4183 - 
229.4184 --#: nis/nis_print.c:47
229.4185 -+#: nis/nis_print.c:48
229.4186 - msgid "UNKNOWN"
229.4187 - msgstr "NEZNAMY"
229.4188 - 
229.4189 --#: nis/nis_error.c:72
229.4190 -+#: nis/nis_error.c:73
229.4191 - msgid "Unable to authenticate NIS+ client"
229.4192 - msgstr "Nie je mo¾né overi» toto¾nos» NIS+ klienta"
229.4193 - 
229.4194 --#: nis/nis_error.c:71
229.4195 -+#: nis/nis_error.c:72
229.4196 - msgid "Unable to authenticate NIS+ server"
229.4197 - msgstr "Nie je mo¾né overi» toto¾nos» NIS+ servera"
229.4198 - 
229.4199 --#: nis/nis_error.c:46
229.4200 -+#: nis/nis_error.c:47
229.4201 - msgid "Unable to create callback"
229.4202 - msgstr "Nie je mo¾né vytvori» spätné volanie"
229.4203 - 
229.4204 --#: nis/nis_error.c:74
229.4205 -+#: nis/nis_error.c:75
229.4206 - msgid "Unable to create process on server"
229.4207 - msgstr "Nie je mo¾né vytvori» proces na serveri"
229.4208 - 
229.4209 --#: nis/nis_print.c:190
229.4210 -+#: nis/nis_print.c:191
229.4211 - #, c-format
229.4212 - msgid "Unknown (type = %d, bits = %d)\n"
229.4213 - msgstr "Neznáme (typ = %d, bitov = %d)\n"
229.4214 - 
229.4215 --#: inet/ruserpass.c:248
229.4216 -+#: inet/ruserpass.c:274
229.4217 - #, c-format
229.4218 - msgid "Unknown .netrc keyword %s"
229.4219 - msgstr "Neznáme kµúèové slovo v .netrc: %s"
229.4220 - 
229.4221 --#: nis/ypclnt.c:797
229.4222 -+#: elf/../sysdeps/generic/readelflib.c:69
229.4223 -+#, c-format
229.4224 -+msgid "Unknown ELFCLASS in file %s.\n"
229.4225 -+msgstr "Neznáma ELFCLASS v súbore %s.\n"
229.4226 -+
229.4227 -+#: nis/ypclnt.c:820
229.4228 - msgid "Unknown NIS error code"
229.4229 - msgstr "Neznámy chybový kód NIS"
229.4230 - 
229.4231 --#: nss/getent.c:505
229.4232 -+#: nss/getent.c:771
229.4233 - #, c-format
229.4234 - msgid "Unknown database: %s\n"
229.4235 - msgstr "Neznáma databáza %s\n"
229.4236 - 
229.4237 --#: posix/../sysdeps/posix/gai_strerror.c:51
229.4238 -+#: posix/../sysdeps/posix/gai_strerror.c:52
229.4239 - msgid "Unknown error"
229.4240 - msgstr "Neznáma chyba"
229.4241 - 
229.4242 - #: string/../sysdeps/generic/_strerror.c:48
229.4243 --#: string/../sysdeps/mach/_strerror.c:86
229.4244 --#: sysdeps/mach/hurd/mips/dl-machine.c:82
229.4245 -+#: string/../sysdeps/mach/_strerror.c:88
229.4246 -+#: sysdeps/mach/hurd/mips/dl-machine.c:83
229.4247 - msgid "Unknown error "
229.4248 - msgstr "Neznáma chyba "
229.4249 - 
229.4250 --#: resolv/herror.c:74
229.4251 -+#: resolv/herror.c:68
229.4252 - msgid "Unknown host"
229.4253 - msgstr "Neznámy poèítaè"
229.4254 - 
229.4255 --#: nis/nis_error.c:34
229.4256 -+#: nis/nis_error.c:35
229.4257 - msgid "Unknown object"
229.4258 - msgstr "Neznámy objekt"
229.4259 - 
229.4260 --#: nscd/nscd_conf.c:181
229.4261 -+#: nscd/nscd_conf.c:187
229.4262 - #, c-format
229.4263 - msgid "Unknown option: %s %s %s"
229.4264 - msgstr "Neznáma voµba: %s %s %s"
229.4265 - 
229.4266 --#: resolv/herror.c:120
229.4267 -+#: resolv/herror.c:110
229.4268 - msgid "Unknown resolver error"
229.4269 - msgstr "Neznáma chyba resolvera"
229.4270 - 
229.4271 --#: resolv/herror.c:76
229.4272 -+#: resolv/herror.c:70
229.4273 - msgid "Unknown server error"
229.4274 - msgstr "Neznáma chyba servera"
229.4275 - 
229.4276 --#: string/strsignal.c:70
229.4277 -+#: string/strsignal.c:71
229.4278 - #, c-format
229.4279 - msgid "Unknown signal %d"
229.4280 - msgstr "Neznámy signál %d"
229.4281 - 
229.4282 --#: misc/error.c:107
229.4283 -+#: misc/error.c:114 timezone/zic.c:384
229.4284 - msgid "Unknown system error"
229.4285 - msgstr "Neznáma chyba systému"
229.4286 - 
229.4287 --#: nis/ypclnt.c:845
229.4288 -+#: nis/ypclnt.c:868
229.4289 - msgid "Unknown ypbind error"
229.4290 - msgstr "Neznáma chyba ypbind"
229.4291 - 
229.4292 --#: posix/regex.c:1020
229.4293 -+#: posix/regex.c:1108
229.4294 - msgid "Unmatched ( or \\("
229.4295 - msgstr "Nepárová ( or \\("
229.4296 - 
229.4297 --#: posix/regex.c:1028
229.4298 -+#: posix/regex.c:1132
229.4299 - msgid "Unmatched ) or \\)"
229.4300 - msgstr "Nepárová ) or \\)"
229.4301 - 
229.4302 --#: posix/regex.c:1019
229.4303 -+#: posix/regex.c:1105
229.4304 - msgid "Unmatched [ or [^"
229.4305 - msgstr "Nepárová [ or [^"
229.4306 - 
229.4307 --#: posix/regex.c:1021
229.4308 -+#: posix/regex.c:1111
229.4309 - msgid "Unmatched \\{"
229.4310 - msgstr "Nepárová \\{"
229.4311 - 
229.4312 --#: posix/getconf.c:692
229.4313 -+#: posix/getconf.c:819
229.4314 - #, c-format
229.4315 - msgid "Unrecognized variable `%s'"
229.4316 - msgstr "Nerozpoznaná premenná `%s'"
229.4317 - 
229.4318 --#: stdio-common/../sysdeps/unix/siglist.c:41
229.4319 --#: sysdeps/unix/sysv/linux/siglist.h:35
229.4320 -+#: stdio-common/../sysdeps/unix/siglist.c:42 sysdeps/generic/siglist.h:42
229.4321 - msgid "Urgent I/O condition"
229.4322 - msgstr "Urgentný V/V stav"
229.4323 - 
229.4324 --#: argp/argp-help.c:1567
229.4325 -+#: argp/argp-help.c:1568
229.4326 - msgid "Usage:"
229.4327 - msgstr "Pou¾itie:"
229.4328 - 
229.4329 --#: posix/getconf.c:604
229.4330 -+#: posix/getconf.c:731
229.4331 - #, c-format
229.4332 - msgid "Usage: %s variable_name [pathname]\n"
229.4333 - msgstr "Pou¾itie: %s meno_premennej [cesta]\n"
229.4334 -@@ -2644,1031 +3758,1117 @@
229.4335 - msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
229.4336 - msgstr "Pou¾itie: rpcinfo [ -n èíslo_portu ] -u poèítaè èíslo_programu [ èíslo_verzie ]\n"
229.4337 - 
229.4338 --#: stdio-common/../sysdeps/unix/siglist.c:55
229.4339 --#: sysdeps/unix/sysv/linux/siglist.h:48
229.4340 -+#: elf/ldconfig.c:132
229.4341 -+msgid "Use CACHE as cache file"
229.4342 -+msgstr "Pou¾i» CACHE ako cache súbor"
229.4343 -+
229.4344 -+#: elf/ldconfig.c:133
229.4345 -+msgid "Use CONF as configuration file"
229.4346 -+msgstr "Pou¾i» CONF ako konfiguraèný súbor"
229.4347 -+
229.4348 -+#: nscd/nscd.c:92
229.4349 -+msgid "Use separate cache for each user"
229.4350 -+msgstr "Pou¾i» samostatnú cache pre ka¾dého pou¾ívateµa"
229.4351 -+
229.4352 -+#: stdio-common/../sysdeps/unix/siglist.c:56 sysdeps/generic/siglist.h:55
229.4353 - msgid "User defined signal 1"
229.4354 - msgstr "Pou¾ívateµom definovaný signál 1"
229.4355 - 
229.4356 --#: stdio-common/../sysdeps/unix/siglist.c:56
229.4357 --#: sysdeps/unix/sysv/linux/siglist.h:49
229.4358 -+#: stdio-common/../sysdeps/unix/siglist.c:57 sysdeps/generic/siglist.h:56
229.4359 - msgid "User defined signal 2"
229.4360 - msgstr "Pou¾ívateµom definovaný signál 2"
229.4361 - 
229.4362 --#: stdio-common/../sysdeps/gnu/errlist.c:654
229.4363 -+#: stdio-common/../sysdeps/gnu/errlist.c:673
229.4364 -+#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:109
229.4365 - msgid "Value too large for defined data type"
229.4366 - msgstr "Hodnota je pre daný dátový typ priveµká"
229.4367 - 
229.4368 --#: stdio-common/../sysdeps/unix/siglist.c:51
229.4369 --#: sysdeps/unix/sysv/linux/siglist.h:45
229.4370 -+#: stdio-common/../sysdeps/unix/siglist.c:52 sysdeps/generic/siglist.h:52
229.4371 - msgid "Virtual timer expired"
229.4372 - msgstr "Vypr¹al virtuálny èasovaè"
229.4373 - 
229.4374 --#: timezone/zic.c:1899
229.4375 -+#: timezone/zic.c:1926
229.4376 - msgid "Wild result from command execution"
229.4377 - msgstr "Èudný výsledok vykonania programu"
229.4378 - 
229.4379 --#: stdio-common/../sysdeps/unix/siglist.c:53
229.4380 --#: sysdeps/unix/sysv/linux/siglist.h:47
229.4381 -+#: stdio-common/../sysdeps/unix/siglist.c:54 sysdeps/generic/siglist.h:54
229.4382 - msgid "Window changed"
229.4383 - msgstr "Okno sa zmenilo"
229.4384 - 
229.4385 --#: locale/programs/locale.c:67
229.4386 -+#: locale/programs/locale.c:69
229.4387 - msgid "Write names of available charmaps"
229.4388 - msgstr "Vypísa» názvy dostupných znakových sád"
229.4389 - 
229.4390 --#: locale/programs/locale.c:65
229.4391 -+#: locale/programs/locale.c:67
229.4392 - msgid "Write names of available locales"
229.4393 - msgstr "Vypísa» názvy dostupných národných prostredí"
229.4394 - 
229.4395 --#: locale/programs/locale.c:69
229.4396 -+#: locale/programs/locale.c:71
229.4397 - msgid "Write names of selected categories"
229.4398 - msgstr "Vypísa» názvy vybraných kategórií"
229.4399 - 
229.4400 --#: locale/programs/locale.c:70
229.4401 -+#: locale/programs/locale.c:72
229.4402 - msgid "Write names of selected keywords"
229.4403 - msgstr "Vypísa» názvy vybraných kµúèových slov"
229.4404 - 
229.4405 --#: catgets/gencat.c:110 db2/makedb.c:59
229.4406 -+#: catgets/gencat.c:115
229.4407 - msgid "Write output to file NAME"
229.4408 - msgstr "Zapísa» výstup do súboru SÚBOR"
229.4409 - 
229.4410 --#: catgets/gencat.c:241 db2/makedb.c:247 elf/sprof.c:365
229.4411 --#: iconv/iconv_prog.c:299 locale/programs/locale.c:272
229.4412 --#: locale/programs/localedef.c:408 nscd/nscd.c:228 nss/getent.c:70
229.4413 --#: posix/getconf.c:629
229.4414 -+#: elf/cache.c:366 elf/cache.c:375 elf/cache.c:379
229.4415 -+msgid "Writing of cache data failed"
229.4416 -+msgstr "Zápi údajov do cache zlyhal"
229.4417 -+
229.4418 -+#: elf/cache.c:383
229.4419 -+msgid "Writing of cache data failed."
229.4420 -+msgstr "Zápi údajov do cache zlyhal."
229.4421 -+
229.4422 -+#: catgets/gencat.c:251 elf/ldconfig.c:269 elf/sprof.c:361
229.4423 -+#: iconv/iconv_prog.c:356 locale/programs/locale.c:274
229.4424 -+#: locale/programs/localedef.c:316 nscd/nscd.c:292 nscd/nscd_nischeck.c:95
229.4425 -+#: nss/getent.c:68 posix/getconf.c:756
229.4426 - #, c-format
229.4427 - msgid "Written by %s.\n"
229.4428 - msgstr "Autor: %s.\n"
229.4429 - 
229.4430 --#: stdio-common/../sysdeps/gnu/errlist.c:818
229.4431 -+#: stdio-common/../sysdeps/gnu/errlist.c:837
229.4432 - msgid "Wrong medium type"
229.4433 - msgstr "Chybný typ média"
229.4434 - 
229.4435 --#: nis/nis_print.c:39
229.4436 -+#: nis/nis_print.c:40
229.4437 - msgid "X500"
229.4438 - msgstr "X500"
229.4439 - 
229.4440 --#: nis/nis_print.c:43
229.4441 -+#: nis/nis_print.c:44
229.4442 - msgid "XCHS"
229.4443 - msgstr "XCHS"
229.4444 - 
229.4445 --#: nis/ypclnt.c:185
229.4446 -+#: nis/ypclnt.c:174
229.4447 - #, c-format
229.4448 - msgid "YPBINDPROC_DOMAIN: %s\n"
229.4449 - msgstr "YPBINDPROC_DOMAIN: %s\n"
229.4450 - 
229.4451 --#: nis/nis_error.c:70
229.4452 -+#: nis/nis_error.c:71
229.4453 - msgid "Yes, 42 is the meaning of life"
229.4454 - msgstr "Áno, 42 je význam ¾ivota"
229.4455 - 
229.4456 - #. TRANS You did @strong{what}?
229.4457 --#: stdio-common/../sysdeps/gnu/errlist.c:608
229.4458 -+#: stdio-common/../sysdeps/gnu/errlist.c:627
229.4459 - msgid "You really blew it this time"
229.4460 - msgstr "Tentokrát si to skutoène poondial"
229.4461 - 
229.4462 --#: timezone/zic.c:1063
229.4463 -+#: timezone/zic.c:1088
229.4464 - msgid "Zone continuation line end time is not after end time of previous line"
229.4465 - msgstr "Koncový èas pokraèovacieho riadku zóny nie je väè¹í ako koncový èas predchádzajúceho riadku"
229.4466 - 
229.4467 --#: iconv/iconv_prog.c:70
229.4468 -+#: iconv/iconv_prog.c:73
229.4469 - msgid "[FILE...]"
229.4470 - msgstr "[SÚBOR...]"
229.4471 - 
229.4472 --#: locale/programs/charmap.c:481 locale/programs/locfile.c:471
229.4473 --#: locale/programs/repertoire.c:278
229.4474 -+#: debug/pcprofiledump.c:59
229.4475 -+msgid "[FILE]"
229.4476 -+msgstr "[SÚBOR]"
229.4477 -+
229.4478 -+#: sunrpc/pmap_clnt.c:72
229.4479 -+msgid "__get_myaddress: ioctl (get interface configuration)"
229.4480 -+msgstr "__get_myaddress: ioctl (získanie konfigurácie rozhrania)"
229.4481 -+
229.4482 -+#: locale/programs/ld-collate.c:417
229.4483 -+#, c-format
229.4484 -+msgid "`%.*s' already defined as collating element"
229.4485 -+msgstr "`%.*s' bol u¾ definovaný ako element triedenia"
229.4486 -+
229.4487 -+#: locale/programs/ld-collate.c:410
229.4488 -+#, c-format
229.4489 -+msgid "`%.*s' already defined as collating symbol"
229.4490 -+msgstr "`%.*s' bol u¾ definovaný ako symbol triedenia"
229.4491 -+
229.4492 -+#: locale/programs/ld-collate.c:394
229.4493 -+#, c-format
229.4494 -+msgid "`%.*s' already defined in charmap"
229.4495 -+msgstr "`%.*s' bol u¾ definovaný v znakovej mape"
229.4496 -+
229.4497 -+#: locale/programs/ld-collate.c:403
229.4498 -+#, c-format
229.4499 -+msgid "`%.*s' already defined in repertoire"
229.4500 -+msgstr "`%.*s' bol u¾ definovaný v repertoári"
229.4501 -+
229.4502 -+#: locale/programs/charmap.c:599 locale/programs/locfile.h:96
229.4503 -+#: locale/programs/repertoire.c:314
229.4504 - #, c-format
229.4505 - msgid "`%1$s' definition does not end with `END %1$s'"
229.4506 - msgstr "Definícia `%1$s' nekonèí `END %1$s'"
229.4507 - 
229.4508 --#: elf/sprof.c:766
229.4509 -+#: locale/programs/ld-collate.c:1268 locale/programs/ld-ctype.c:1454
229.4510 - #, c-format
229.4511 --msgid "`%s' is no correct profile data file for `%s'"
229.4512 --msgstr "`%s' nie sú správne profilovacie údaje pre `%s'"
229.4513 -+msgid "`%s' and `%.*s' are no valid names for symbolic range"
229.4514 -+msgstr "`%s' a `%.*s' sú neprípustné názvy pre symbolický rozsah"
229.4515 - 
229.4516 --#: locale/programs/ld-monetary.c:369 locale/programs/ld-numeric.c:193
229.4517 -+#: elf/sprof.c:762
229.4518 - #, c-format
229.4519 --msgid "`-1' must be last entry in `%s' field in `%s' category"
229.4520 --msgstr "`-1' musí by» posledným záznamom v poli `%s' kategórie `%s'"
229.4521 -+msgid "`%s' is no correct profile data file for `%s'"
229.4522 -+msgstr "`%s' nie sú správne profilovacie údaje pre `%s'"
229.4523 - 
229.4524 --#: locale/programs/ld-collate.c:1666
229.4525 --msgid "`...' must only be used in `...' and `UNDEFINED' entries"
229.4526 --msgstr "`...' mô¾e by» pou¾ité iba v záznamoch `...' a `UNDEFINED'"
229.4527 --
229.4528 --#: locale/programs/locfile.c:668
229.4529 --msgid "`from' expected after first argument to `collating-element'"
229.4530 --msgstr "`from' je oèakávané po prvom argumente `collating-element'"
229.4531 --
229.4532 --#: locale/programs/ld-collate.c:1118
229.4533 --msgid "`from' string in collation element declaration contains unknown character"
229.4534 --msgstr "`from' re»azec v deklarácii elementu triedenia obsahuje neznámy znak"
229.4535 -+#: locale/programs/ld-ctype.c:691
229.4536 -+msgid "`digit' category has not entries in groups of ten"
229.4537 -+msgstr "kategória `digit' neobsahuje záznamy v skupinách po desiatich"
229.4538 - 
229.4539 --#: posix/../sysdeps/posix/gai_strerror.c:34
229.4540 -+#: posix/../sysdeps/posix/gai_strerror.c:35
229.4541 - msgid "ai_family not supported"
229.4542 - msgstr "ai_family nie je podporovaná"
229.4543 - 
229.4544 --#: posix/../sysdeps/posix/gai_strerror.c:39
229.4545 -+#: posix/../sysdeps/posix/gai_strerror.c:40
229.4546 - msgid "ai_socktype not supported"
229.4547 - msgstr "ai_socktype nie je podporovaný"
229.4548 - 
229.4549 --#: nscd/nscd.c:121
229.4550 -+#: nscd/nscd.c:130
229.4551 - msgid "already running"
229.4552 - msgstr "u¾ be¾í"
229.4553 - 
229.4554 --#: locale/programs/charmap.c:352 locale/programs/repertoire.c:152
229.4555 -+#: locale/programs/charmap.c:434 locale/programs/repertoire.c:184
229.4556 - #, c-format
229.4557 - msgid "argument to <%s> must be a single character"
229.4558 - msgstr "argument pre <%s> musí by» jeden znak"
229.4559 - 
229.4560 --#: locale/programs/locfile.c:240
229.4561 -+#: locale/programs/locfile.c:124
229.4562 - #, c-format
229.4563 - msgid "argument to `%s' must be a single character"
229.4564 - msgstr "argument pre `%s' musí by» jeden znak"
229.4565 - 
229.4566 --#: sunrpc/auth_unix.c:321
229.4567 -+#: sunrpc/auth_unix.c:311
229.4568 - msgid "auth_none.c - Fatal marshalling problem"
229.4569 - msgstr "auth_none.c - Fatálna chyba marshallingu"
229.4570 - 
229.4571 --#: sunrpc/auth_unix.c:116 sunrpc/auth_unix.c:122 sunrpc/auth_unix.c:151
229.4572 -+#: sunrpc/auth_unix.c:106 sunrpc/auth_unix.c:112 sunrpc/auth_unix.c:142
229.4573 - msgid "authunix_create: out of memory\n"
229.4574 - msgstr "authunix_create: nedostatok pamäti\n"
229.4575 - 
229.4576 --#: locale/programs/charmap.c:297 locale/programs/locfile.c:234
229.4577 --#: locale/programs/locfile.c:261 locale/programs/repertoire.c:144
229.4578 -+#: locale/programs/charmap.c:364 locale/programs/locfile.c:118
229.4579 -+#: locale/programs/locfile.c:145 locale/programs/repertoire.c:176
229.4580 - msgid "bad argument"
229.4581 - msgstr "chybný argument"
229.4582 - 
229.4583 --#: inet/rcmd.c:318
229.4584 -+#: inet/rcmd.c:424
229.4585 - msgid "bad owner"
229.4586 - msgstr "chybný vlastník"
229.4587 - 
229.4588 --#: timezone/zic.c:1185
229.4589 -+#: timezone/zic.c:1210
229.4590 - msgid "blank FROM field on Link line"
229.4591 - msgstr "prázdne pole OD v riadku Link"
229.4592 - 
229.4593 --#: timezone/zic.c:1189
229.4594 -+#: timezone/zic.c:1214
229.4595 - msgid "blank TO field on Link line"
229.4596 - msgstr "prázdne pole DO v riadku Link"
229.4597 - 
229.4598 --#: malloc/mcheck.c:208
229.4599 -+#: malloc/mcheck.c:291
229.4600 - msgid "block freed twice\n"
229.4601 - msgstr "blok uvoµnený dvakrát\n"
229.4602 - 
229.4603 --#: malloc/mcheck.c:211
229.4604 -+#: malloc/mcheck.c:294
229.4605 - msgid "bogus mcheck_status, library is buggy\n"
229.4606 - msgstr "pochybný mcheck_status, kni¾nica má chyby\n"
229.4607 - 
229.4608 --#: sunrpc/pmap_rmt.c:185
229.4609 -+#: sunrpc/pmap_rmt.c:186
229.4610 - msgid "broadcast: ioctl (get interface configuration)"
229.4611 - msgstr "broadcast: ioctl (získanie konfigurácie rozhrania)"
229.4612 - 
229.4613 --#: sunrpc/pmap_rmt.c:194
229.4614 -+#: sunrpc/pmap_rmt.c:195
229.4615 - msgid "broadcast: ioctl (get interface flags)"
229.4616 - msgstr "broadcast: ioctl (získanie nastavení rozhrania)"
229.4617 - 
229.4618 --#: login/programs/request.c:167
229.4619 --msgid "buffer overflow"
229.4620 --msgstr "preteèenie vyrovnávacej pamäti"
229.4621 --
229.4622 --#: sunrpc/svc_udp.c:446
229.4623 -+#: sunrpc/svc_udp.c:528
229.4624 - msgid "cache_set: could not allocate new rpc_buffer"
229.4625 - msgstr "cache_set: nebolo mo¾né prideli» rpc vyrovnávaciu pamä»"
229.4626 - 
229.4627 --#: sunrpc/svc_udp.c:440
229.4628 -+#: sunrpc/svc_udp.c:522
229.4629 - msgid "cache_set: victim alloc failed"
229.4630 - msgstr "cache_set: obe» nenájdená"
229.4631 - 
229.4632 --#: sunrpc/svc_udp.c:429
229.4633 -+#: sunrpc/svc_udp.c:511
229.4634 - msgid "cache_set: victim not found"
229.4635 - msgstr "cache_set: obe» nenájdená"
229.4636 - 
229.4637 --#: timezone/zic.c:1726
229.4638 -+#: timezone/zic.c:1751
229.4639 - msgid "can't determine time zone abbreviation to use just after until time"
229.4640 - msgstr "nie je mo¾né nájs» skratku èasovej zóny pre pou¾itie hneï po koncovom èase"
229.4641 - 
229.4642 --#: sunrpc/svc_simple.c:75
229.4643 -+#: sunrpc/svc_simple.c:76
229.4644 - #, c-format
229.4645 --msgid "can't reassign procedure number %d\n"
229.4646 --msgstr "nie je mo¾né znovu prideli» èíslo procedúry %d\n"
229.4647 -+msgid "can't reassign procedure number %ld\n"
229.4648 -+msgstr "nie je mo¾né znovu prideli» èíslo procedúry %ld\n"
229.4649 -+
229.4650 -+#: elf/dl-reloc.c:152
229.4651 -+msgid "can't restore segment prot after reloc"
229.4652 -+msgstr "nie je mo¾né obnovi» segment prot po relokácii"
229.4653 - 
229.4654 --#: locale/programs/localedef.c:279
229.4655 -+#: locale/programs/localedef.c:487
229.4656 - #, c-format
229.4657 --msgid "cannot `stat' locale file `%s'"
229.4658 --msgstr "nie je mo¾né vykona» `stat' pre súbor národného prostredia `%s'"
229.4659 -+msgid "cannot add already read locale `%s' a second time"
229.4660 -+msgstr "nie je mo¾né znovu prida» u¾ naèítané prostredie `%s'"
229.4661 - 
229.4662 --#: elf/sprof.c:935 elf/sprof.c:987
229.4663 -+#: elf/dl-deps.c:470
229.4664 -+msgid "cannot allocate dependency list"
229.4665 -+msgstr "nie je mo¾né prideli» pamä» pre zoznam závislostí"
229.4666 -+
229.4667 -+#: elf/dl-load.c:1031
229.4668 -+msgid "cannot allocate memory for program header"
229.4669 -+msgstr "nie je mo¾né prideli» pamä» pre hlavièku programu"
229.4670 -+
229.4671 -+#: elf/dl-load.c:339
229.4672 -+msgid "cannot allocate name record"
229.4673 -+msgstr "nie je mo¾né prideli» pamä» pre záznam názvu"
229.4674 -+
229.4675 -+#: elf/sprof.c:930 elf/sprof.c:982
229.4676 - msgid "cannot allocate symbol data"
229.4677 - msgstr "nie je mo¾né prideli» pamä» pre symbolické údaje"
229.4678 - 
229.4679 --#: elf/sprof.c:719 elf/sprof.c:777
229.4680 -+#: elf/dl-deps.c:501
229.4681 -+msgid "cannot allocate symbol search list"
229.4682 -+msgstr "nie je mo¾né prideli» pamä» pre vyhµadávací zoznam symbolov"
229.4683 -+
229.4684 -+#: elf/dl-version.c:291
229.4685 -+msgid "cannot allocate version reference table"
229.4686 -+msgstr "nie je mo¾né prideli» pamä» pre referenènú tabuµku verzií"
229.4687 -+
229.4688 -+#: elf/dl-load.c:1000
229.4689 -+msgid "cannot change memory protections"
229.4690 -+msgstr "nie je mo¾né zmeni» ochranu pamäti"
229.4691 -+
229.4692 -+#: elf/dl-load.c:533
229.4693 -+msgid "cannot create RUNPATH/RPATH copy"
229.4694 -+msgstr "nie je mo¾né vytvori» kópiu RUNPATH/RPATH"
229.4695 -+
229.4696 -+#: elf/dl-load.c:418 elf/dl-load.c:518 elf/dl-load.c:546 elf/dl-load.c:593
229.4697 -+#: elf/dl-load.c:685
229.4698 -+msgid "cannot create cache for search path"
229.4699 -+msgstr "Nie je mo¾né vytvori» cache pre hµadanie v ceste"
229.4700 -+
229.4701 -+#: elf/dl-support.c:191
229.4702 -+msgid "cannot create capability list"
229.4703 -+msgstr "nie je mo¾né vytvori» zoznam schopností"
229.4704 -+
229.4705 -+#: elf/sprof.c:715 elf/sprof.c:773
229.4706 - msgid "cannot create internal descriptor"
229.4707 - msgstr "nie je mo¾né vytvori» interný deskriptor"
229.4708 - 
229.4709 --#: elf/sprof.c:417
229.4710 -+#: elf/sprof.c:413
229.4711 - msgid "cannot create internal descriptors"
229.4712 - msgstr "nie je mo¾né vytvori» interné deskriptory"
229.4713 - 
229.4714 --#: nscd/connections.c:180
229.4715 -+#: elf/dl-load.c:583
229.4716 -+msgid "cannot create search path array"
229.4717 -+msgstr "nie je mo¾né vytvori» pole ciest"
229.4718 -+
229.4719 -+#: elf/dl-load.c:1137
229.4720 -+msgid "cannot create searchlist"
229.4721 -+msgstr "nie je mo¾né vytvori» vyhµadávací zoznam"
229.4722 -+
229.4723 -+#: elf/dl-load.c:822 elf/dl-load.c:1682
229.4724 -+msgid "cannot create shared object descriptor"
229.4725 -+msgstr "nie je mo¾né vytvori» deskriptor zdieµaného objektu"
229.4726 -+
229.4727 -+#: catgets/gencat.c:1316
229.4728 -+msgid "cannot determine escape character"
229.4729 -+msgstr "nie je mo¾né urèi» znak escape"
229.4730 -+
229.4731 -+#: elf/dl-load.c:950
229.4732 -+msgid "cannot dynamically load executable"
229.4733 -+msgstr "nie je mo¾né dynamicky naèíta» spustiteµný súbor"
229.4734 -+
229.4735 -+#: nscd/connections.c:183
229.4736 - #, c-format
229.4737 - msgid "cannot enable socket to accept connections: %s"
229.4738 - msgstr "nie je mo¾né povoli» socketu prijíma» spojenia: %s"
229.4739 - 
229.4740 --#: sunrpc/rpc_main.c:342
229.4741 -+#: elf/dl-open.c:121
229.4742 -+msgid "cannot extend global scope"
229.4743 -+msgstr "nie je mo¾né roz¹íri» globálny rozsah"
229.4744 -+
229.4745 -+#: sunrpc/rpc_main.c:343
229.4746 - #, c-format
229.4747 - msgid "cannot find C preprocessor: %s \n"
229.4748 - msgstr "nie je mo¾né nájs» preprocesor: %s \n"
229.4749 - 
229.4750 --#: sunrpc/rpc_main.c:350
229.4751 -+#: sunrpc/rpc_main.c:351
229.4752 - msgid "cannot find any C preprocessor (cpp)\n"
229.4753 - msgstr "nie je mo¾né nájs» ¾iadny C preprocesor (cpp)\n"
229.4754 - 
229.4755 --#: nscd/connections.c:205
229.4756 -+#: nscd/connections.c:225
229.4757 - #, c-format
229.4758 - msgid "cannot handle old request version %d; current version is %d"
229.4759 - msgstr "nie je mo¾né spracova» starú verziu ¾iadosti %d; aktuálna verzia je %d"
229.4760 - 
229.4761 --#: locale/programs/ld-collate.c:1324
229.4762 --#, c-format
229.4763 --msgid "cannot insert collation element `%.*s'"
229.4764 --msgstr "nie je mo¾né vlo¾i» element triedenia `%.*s'"
229.4765 --
229.4766 --#: locale/programs/ld-collate.c:1503 locale/programs/ld-collate.c:1510
229.4767 --msgid "cannot insert into result table"
229.4768 --msgstr "nie je mo¾né vklada» do výslednej tabuµky"
229.4769 --
229.4770 --#: locale/programs/ld-collate.c:1175 locale/programs/ld-collate.c:1218
229.4771 --#, c-format
229.4772 --msgid "cannot insert new collating symbol definition: %s"
229.4773 --msgstr "nie je mo¾né vlo¾i» nový symbol triedenia: %s"
229.4774 --
229.4775 --#: elf/sprof.c:674
229.4776 -+#: elf/sprof.c:670
229.4777 - msgid "cannot load profiling data"
229.4778 - msgstr "nie je mo¾né naèíta» profilovacie údaje"
229.4779 - 
229.4780 --#: inet/rcmd.c:314
229.4781 -+#: elf/dl-deps.c:586
229.4782 -+msgid "cannot load shared object file"
229.4783 -+msgstr "nepodarilo sa naèíta» súbor zdieµaného objektu"
229.4784 -+
229.4785 -+#: elf/dl-reloc.c:63
229.4786 -+msgid "cannot make segment writable for relocation"
229.4787 -+msgstr "nie je mo¾né zmeni» segment na zapisovateµný pre relokáciu"
229.4788 -+
229.4789 -+#: elf/dl-load.c:1016
229.4790 -+msgid "cannot map zero-fill pages"
229.4791 -+msgstr "nie je mo¾né namapova» stránky vyplnené nulami"
229.4792 -+
229.4793 -+#: inet/rcmd.c:420
229.4794 - msgid "cannot open"
229.4795 - msgstr "nie je mo¾né otvori»"
229.4796 - 
229.4797 - #: sysdeps/unix/sysv/linux/lddlibc4.c:64
229.4798 - #, c-format
229.4799 --msgid "cannot open"
229.4800 --msgstr "nie je mo¾né otvori»"
229.4801 -+msgid "cannot open `%s'"
229.4802 -+msgstr "nie je mo¾né otvori» `%s'"
229.4803 - 
229.4804 --#: db2/makedb.c:146
229.4805 --#, c-format
229.4806 --msgid "cannot open database file `%s': %s"
229.4807 --msgstr "nie je mo¾né otvori» databázový súbor `%s': %s"
229.4808 -+#: debug/pcprofiledump.c:96
229.4809 -+msgid "cannot open input file"
229.4810 -+msgstr "nie je mo¾né otvori» vstupný súbor"
229.4811 - 
229.4812 --#: catgets/gencat.c:272 db2/makedb.c:167 iconv/iconv_prog.c:177
229.4813 -+#: catgets/gencat.c:288 iconv/iconv_prog.c:225
229.4814 - #, c-format
229.4815 - msgid "cannot open input file `%s'"
229.4816 - msgstr "nie je mo¾né otvori» vstupný súbor `%s'"
229.4817 - 
229.4818 --#: locale/programs/localedef.c:198
229.4819 -+#: locale/programs/localedef.c:203 locale/programs/localedef.c:218
229.4820 -+#: locale/programs/localedef.c:513 locale/programs/localedef.c:533
229.4821 - #, c-format
229.4822 - msgid "cannot open locale definition file `%s'"
229.4823 - msgstr "nie je mo¾né otvori» súbor definície národného prostredia `%s'"
229.4824 - 
229.4825 --#: iconv/iconv_prog.c:155
229.4826 -+#: iconv/iconv_prog.c:194
229.4827 - msgid "cannot open output file"
229.4828 - msgstr "nie je mo¾né otvori» výstupný súbor"
229.4829 - 
229.4830 --#: catgets/gencat.c:774 catgets/gencat.c:815 db2/makedb.c:181
229.4831 -+#: catgets/gencat.c:944 catgets/gencat.c:985
229.4832 - #, c-format
229.4833 - msgid "cannot open output file `%s'"
229.4834 - msgstr "nie je mo¾né otvori» výstupný súbor `%s'"
229.4835 - 
229.4836 --#: locale/programs/locfile.c:1129
229.4837 -+#: locale/programs/locfile.c:381
229.4838 - #, c-format
229.4839 - msgid "cannot open output file `%s' for category `%s'"
229.4840 - msgstr "nie je mo¾né otvori» výstupný súbor `%s' pre kategóriu `%s'"
229.4841 - 
229.4842 --#: nscd/connections.c:162
229.4843 -+#: elf/dl-load.c:1695
229.4844 -+msgid "cannot open shared object file"
229.4845 -+msgstr "nie je mo¾né otvori» súbor zdieµaného objektu"
229.4846 -+
229.4847 -+#: nscd/connections.c:165
229.4848 - #, c-format
229.4849 - msgid "cannot open socket: %s"
229.4850 - msgstr "nie je mo¾né otvori» socket `%s'"
229.4851 - 
229.4852 --#: locale/programs/ld-collate.c:1370
229.4853 --msgid "cannot process order specification"
229.4854 --msgstr "nie je mo¾né spracova» ¹pecifikáciu poradia"
229.4855 -+#: elf/dl-load.c:814
229.4856 -+msgid "cannot open zero fill device"
229.4857 -+msgstr "nie je mo¾né otvori» zariadenie pre naplnenie nulami"
229.4858 - 
229.4859 --#: locale/programs/locale.c:449
229.4860 -+#: locale/programs/charmap-dir.c:61
229.4861 - #, c-format
229.4862 - msgid "cannot read character map directory `%s'"
229.4863 - msgstr "nie je mo¾né naèíta» adresár znakových sád `%s'"
229.4864 - 
229.4865 --#: nscd/connections.c:122
229.4866 -+#: nscd/connections.c:125
229.4867 - msgid "cannot read configuration file; this is fatal"
229.4868 - msgstr "nie je mo¾né naèíta» konfiguraèný súbor; to je fatálne"
229.4869 - 
229.4870 --#: login/programs/request.c:91
229.4871 --msgid "cannot read from client"
229.4872 --msgstr "nie je mo¾né èíta» od klienta"
229.4873 -+#: elf/dl-load.c:838 elf/dl-load.c:1244
229.4874 -+msgid "cannot read file data"
229.4875 -+msgstr "nie je mo¾né naèíta» údaje súboru"
229.4876 -+
229.4877 -+#: debug/pcprofiledump.c:102
229.4878 -+msgid "cannot read header"
229.4879 -+msgstr "nie je mo¾né preèíta» hlavièku"
229.4880 - 
229.4881 - #: sysdeps/unix/sysv/linux/lddlibc4.c:68
229.4882 - #, c-format
229.4883 - msgid "cannot read header from `%s'"
229.4884 - msgstr "nie je mo¾né preèíta» hlavièku z `%s'"
229.4885 - 
229.4886 --#: locale/programs/locale.c:306
229.4887 -+#: locale/programs/locale.c:308
229.4888 - #, c-format
229.4889 - msgid "cannot read locale directory `%s'"
229.4890 - msgstr "nie je mo¾né naèíta» adresár národných prostredí `%s'"
229.4891 - 
229.4892 --#: locale/programs/localedef.c:303
229.4893 --#, c-format
229.4894 --msgid "cannot read locale file `%s'"
229.4895 --msgstr "nie je mo¾né preèíta» súbor národného prostredia `%s'"
229.4896 --
229.4897 --#: locale/programs/locfile.c:288 locale/programs/locfile.c:306
229.4898 --#: locale/programs/locfile.c:324 locale/programs/locfile.c:342
229.4899 --#: locale/programs/locfile.c:360 locale/programs/locfile.c:378
229.4900 --#, c-format
229.4901 --msgid "cannot read repertoire map `%s'"
229.4902 --msgstr "nie je mo¾né naèíta» mapu repertoáru `%s'"
229.4903 --
229.4904 --#: nscd/nscd_stat.c:127
229.4905 -+#: nscd/nscd_stat.c:128
229.4906 - msgid "cannot read statistics data"
229.4907 - msgstr "nie je mo¾né naèíta» ¹tatistické údaje"
229.4908 - 
229.4909 --#: nscd/cache.c:141 nscd/connections.c:148
229.4910 -+#: locale/programs/repertoire.c:331
229.4911 -+msgid "cannot safe new repertoire map"
229.4912 -+msgstr "nie je mo¾né uchova» mapu repertoáru"
229.4913 -+
229.4914 -+#: elf/dl-load.c:776
229.4915 -+msgid "cannot stat shared object"
229.4916 -+msgstr "nepodarilo sa zisti» stav zdieµaného objektu"
229.4917 -+
229.4918 -+#: nscd/cache.c:150 nscd/connections.c:151
229.4919 - #, c-format
229.4920 - msgid "cannot stat() file `%s': %s"
229.4921 - msgstr "nie je mo¾né vykona» stat() súboru `%s': %s"
229.4922 - 
229.4923 --#: locale/programs/localedef.c:328
229.4924 -+#: locale/programs/localedef.c:230
229.4925 - #, c-format
229.4926 - msgid "cannot write output files to `%s'"
229.4927 - msgstr "nie je mo¾né zapísa» výstupné súbory do `%s'"
229.4928 - 
229.4929 --#: nscd/connections.c:229 nscd/connections.c:250
229.4930 -+#: nscd/connections.c:261 nscd/connections.c:282
229.4931 - #, c-format
229.4932 - msgid "cannot write result: %s"
229.4933 - msgstr "nie je mo¾né zapísa» výsledok: %s"
229.4934 - 
229.4935 --#: nscd/nscd_stat.c:86
229.4936 -+#: nscd/nscd_stat.c:87
229.4937 - #, c-format
229.4938 - msgid "cannot write statistics: %s"
229.4939 - msgstr "nie je mo¾né zapísa» ¹tatistiku: `%s'"
229.4940 - 
229.4941 --#: login/programs/request.c:120
229.4942 --msgid "cannot write to client"
229.4943 --msgstr "nie je mo¾né písa» klientovi"
229.4944 --
229.4945 --#: locale/programs/localedef.c:442
229.4946 --msgid "category data requested more than once: should not happen"
229.4947 --msgstr "údaje kategórie po¾adované viac ako raz - to by sa nemalo sta»"
229.4948 --
229.4949 --#: locale/programs/ld-ctype.c:269
229.4950 -+#: locale/programs/ld-ctype.c:509
229.4951 - #, c-format
229.4952 --msgid "character %s'%s' in class `%s' must be in class `%s'"
229.4953 --msgstr "znak %s'%s' v triede `%s' musí by» v triede `%s'"
229.4954 -+msgid "character '%s' in class `%s' must be in class `%s'"
229.4955 -+msgstr "znak '%s' v triede `%s' musí by» v triede `%s'"
229.4956 - 
229.4957 --#: locale/programs/ld-ctype.c:294
229.4958 -+#: locale/programs/ld-ctype.c:524
229.4959 - #, c-format
229.4960 --msgid "character %s'%s' in class `%s' must not be in class `%s'"
229.4961 --msgstr "znak %s'%s' v triede `%s' nesmie by» v triede `%s'"
229.4962 -+msgid "character '%s' in class `%s' must not be in class `%s'"
229.4963 -+msgstr "znak '%s' v triede `%s' nesmie by» v triede `%s'"
229.4964 - 
229.4965 --#: locale/programs/ld-ctype.c:320
229.4966 -+#: locale/programs/ld-ctype.c:579
229.4967 - msgid "character <SP> not defined in character map"
229.4968 - msgstr "znak <SP> nie je definovaný v znakovej sade"
229.4969 - 
229.4970 --#: locale/programs/ld-ctype.c:964 locale/programs/ld-ctype.c:1029
229.4971 --#: locale/programs/ld-ctype.c:1040 locale/programs/ld-ctype.c:1051
229.4972 --#: locale/programs/ld-ctype.c:1062 locale/programs/ld-ctype.c:1073
229.4973 --#: locale/programs/ld-ctype.c:1084 locale/programs/ld-ctype.c:1113
229.4974 --#: locale/programs/ld-ctype.c:1124 locale/programs/ld-ctype.c:1165
229.4975 --#: locale/programs/ld-ctype.c:1194 locale/programs/ld-ctype.c:1206
229.4976 -+#: locale/programs/ld-ctype.c:453
229.4977 -+#, c-format
229.4978 -+msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
229.4979 -+msgstr "znak L'\\u%0*x' v triede `%s' musí by» v triede `%s'"
229.4980 -+
229.4981 -+#: locale/programs/ld-ctype.c:467
229.4982 -+#, c-format
229.4983 -+msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
229.4984 -+msgstr "znak L'\\u%0*x' v triede `%s' nesmie by» v triede `%s'"
229.4985 -+
229.4986 -+#: locale/programs/ld-ctype.c:3030
229.4987 - #, c-format
229.4988 - msgid "character `%s' not defined while needed as default value"
229.4989 - msgstr "znak `%s' nie je definovaný a je potrebný ako implicitná hodnota"
229.4990 - 
229.4991 --#: locale/programs/ld-ctype.c:825
229.4992 -+#: locale/programs/ld-ctype.c:1215
229.4993 - #, c-format
229.4994 - msgid "character class `%s' already defined"
229.4995 - msgstr "trieda znakov `%s' je u¾ definovaná"
229.4996 - 
229.4997 --#: locale/programs/ld-ctype.c:857
229.4998 -+#: locale/programs/ld-ctype.c:1247
229.4999 - #, c-format
229.5000 - msgid "character map `%s' already defined"
229.5001 - msgstr "znaková sada `%s' je u¾ definovaná"
229.5002 - 
229.5003 --#: locale/programs/charmap.c:83
229.5004 -+#: locale/programs/charmap.c:249
229.5005 -+#, c-format
229.5006 -+msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
229.5007 -+msgstr "znaková mapa `%s' nie je kompatibilná s ASCII, prostredie nevyhovuje ISO C\n"
229.5008 -+
229.5009 -+#: locale/programs/charmap.c:135
229.5010 - #, c-format
229.5011 - msgid "character map file `%s' not found"
229.5012 - msgstr "súbor znakovej sady `%s' nebol nájdený"
229.5013 - 
229.5014 --#: sunrpc/clnt_raw.c:110
229.5015 -+#: locale/programs/charmap.c:460
229.5016 -+msgid "character sets with locking states are not supported"
229.5017 -+msgstr "znakové sady so zamykacími stavmi nie sú podporované"
229.5018 -+
229.5019 -+#: locale/programs/localedef.c:482
229.5020 -+msgid "circular dependencies between locale definitions"
229.5021 -+msgstr "kruhová závislos» medzi definíciami prostredí"
229.5022 -+
229.5023 -+#: sunrpc/clnt_raw.c:111
229.5024 - msgid "clnt_raw.c - Fatal header serialization error."
229.5025 - msgstr "clnt_raw.c - Fatálna chyba pri serializácii hlavièky."
229.5026 - 
229.5027 --#: sunrpc/clnt_tcp.c:125 sunrpc/clnt_tcp.c:133
229.5028 -+#: sunrpc/clnt_tcp.c:126 sunrpc/clnt_tcp.c:134
229.5029 - msgid "clnttcp_create: out of memory\n"
229.5030 - msgstr "clnttcp_create: nedostatok pamäti\n"
229.5031 - 
229.5032 --#: sunrpc/clnt_udp.c:124 sunrpc/clnt_udp.c:134
229.5033 --msgid "svctcp_create: out of memory\n"
229.5034 --msgstr "svctcp_create: nedostatok pamäti\n"
229.5035 -+#: sunrpc/clnt_udp.c:131 sunrpc/clnt_udp.c:141
229.5036 -+msgid "clntudp_create: out of memory\n"
229.5037 -+msgstr "clntudp_create: nedostatok pamäti\n"
229.5038 - 
229.5039 --#: sunrpc/clnt_unix.c:123 sunrpc/clnt_unix.c:131
229.5040 -+#: sunrpc/clnt_unix.c:124 sunrpc/clnt_unix.c:132
229.5041 - msgid "clntunix_create: out of memory\n"
229.5042 - msgstr "clntunix_create: nedostatok pamäti\n"
229.5043 - 
229.5044 --#: locale/programs/ld-collate.c:1339
229.5045 --#, c-format
229.5046 --msgid "collation element `%.*s' appears more than once: ignore line"
229.5047 --msgstr "element triedenia `%.*s' uvedený viac ako raz - riadok ignorovaný"
229.5048 --
229.5049 --#: locale/programs/ld-collate.c:1357
229.5050 --#, c-format
229.5051 --msgid "collation symbol `%.*s' appears more than once: ignore line"
229.5052 --msgstr "symbol triedenia `%.*s' uvedený viac ako raz - riadok ignorovaný"
229.5053 --
229.5054 --#: locale/programs/locfile.c:652
229.5055 --#, c-format
229.5056 --msgid "collation symbol expected after `%s'"
229.5057 --msgstr "po `%s' je oèakávaný symbol triedenia"
229.5058 --
229.5059 --#: inet/rcmd.c:136
229.5060 --#, c-format
229.5061 --msgid "connect to address %s: "
229.5062 --msgstr "spojenie s adresou %s: "
229.5063 --
229.5064 --#: sunrpc/rpc_scan.c:115
229.5065 -+#: sunrpc/rpc_scan.c:116
229.5066 - msgid "constant or identifier expected"
229.5067 - msgstr "oèakávaná kon¹tanta alebo identifikátor"
229.5068 - 
229.5069 --#: iconv/iconv_prog.c:144
229.5070 -+#: iconv/iconv_prog.c:182
229.5071 - #, c-format
229.5072 - msgid "conversion from `%s' to `%s' not supported"
229.5073 - msgstr "konverzia z `%s' do `%s' nie je podporovaná"
229.5074 - 
229.5075 --#: iconv/iconv_prog.c:326
229.5076 -+#: catgets/gencat.c:1290
229.5077 -+msgid "conversion modules not available"
229.5078 -+msgstr "moduly konverzie nie sú dostupné"
229.5079 -+
229.5080 -+#: locale/programs/ld-monetary.c:900
229.5081 -+msgid "conversion rate value cannot be zero"
229.5082 -+msgstr "konverzný pomer nemô¾e by» nula"
229.5083 -+
229.5084 -+#: iconv/iconv_prog.c:385 iconv/iconv_prog.c:410
229.5085 - msgid "conversion stopped due to problem in writing the output"
229.5086 - msgstr "konverzia zastavená kvôli problému pri zápise výstupu"
229.5087 - 
229.5088 --#: sunrpc/svc_simple.c:83
229.5089 -+#: sunrpc/svc_simple.c:84
229.5090 - msgid "couldn't create an rpc server\n"
229.5091 - msgstr "nebolo mo¾né vytvori» rpc server\n"
229.5092 - 
229.5093 --#: sunrpc/svc_simple.c:91
229.5094 -+#: sunrpc/svc_simple.c:92
229.5095 - #, c-format
229.5096 --msgid "couldn't register prog %d vers %d\n"
229.5097 --msgstr "nebolo mo¾né zaregistrova» program %d verzie %d\n"
229.5098 -+msgid "couldn't register prog %ld vers %ld\n"
229.5099 -+msgstr "nebolo mo¾né zaregistrova» program %ld verzie %ld\n"
229.5100 - 
229.5101 --#: nss/getent.c:49
229.5102 -+#: nss/getent.c:51
229.5103 - msgid "database [key ...]"
229.5104 - msgstr "databáza [kµúè ...]"
229.5105 - 
229.5106 --#: locale/programs/charmap.c:170
229.5107 -+#: locale/programs/charmap.c:192
229.5108 - #, c-format
229.5109 - msgid "default character map file `%s' not found"
229.5110 - msgstr "implicitný súbor znakovej sady `%s' nebol nájdený"
229.5111 - 
229.5112 --#: locale/programs/ld-time.c:163
229.5113 --#, c-format
229.5114 --msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'"
229.5115 --msgstr "príznak smeru v re»azci %d poµa `era' v kategórii `%s' nie je '+' ani '-'"
229.5116 --
229.5117 --#: locale/programs/ld-time.c:174
229.5118 --#, c-format
229.5119 --msgid "direction flag in string %d in `era' field in category `%s' is not a single character"
229.5120 --msgstr "príznak smeru v re»azci %d poµa `era' v kategórii `%s' nie je jeden znak"
229.5121 --
229.5122 --#: locale/programs/charset.c:64 locale/programs/charset.c:118
229.5123 -+#: locale/programs/charmap.c:392
229.5124 - #, c-format
229.5125 --msgid "duplicate character name `%s'"
229.5126 --msgstr "duplicitné meno znaku `%s'"
229.5127 --
229.5128 --#: locale/programs/ld-collate.c:1150
229.5129 --msgid "duplicate collating element definition"
229.5130 --msgstr "duplicitná definícia elementu triedenia"
229.5131 -+msgid "duplicate definition of <%s>"
229.5132 -+msgstr "duplicitná definícia <%s>"
229.5133 - 
229.5134 --#: locale/programs/ld-collate.c:1297
229.5135 -+#: locale/programs/ld-collate.c:3043
229.5136 - #, c-format
229.5137 --msgid "duplicate definition for character `%.*s'"
229.5138 --msgstr "duplicitná definícia znaku `%.*s'"
229.5139 -+msgid "duplicate definition of script `%s'"
229.5140 -+msgstr "duplicitná definícia skriptu `%s'"
229.5141 - 
229.5142 --#: db2/makedb.c:328
229.5143 --msgid "duplicate key"
229.5144 --msgstr "duplicitný kµúè"
229.5145 --
229.5146 --#: catgets/gencat.c:388
229.5147 -+#: catgets/gencat.c:430
229.5148 - msgid "duplicate set definition"
229.5149 - msgstr "duplicitná definícia sady"
229.5150 - 
229.5151 --#: timezone/zic.c:978
229.5152 -+#: timezone/zic.c:1003
229.5153 - #, c-format
229.5154 - msgid "duplicate zone name %s (file \"%s\", line %d)"
229.5155 - msgstr "duplicitné meno zóny %s (súbor \"%s\", riadok %d)"
229.5156 - 
229.5157 --#: catgets/gencat.c:551
229.5158 -+#: locale/programs/ld-ctype.c:2557
229.5159 -+#, c-format
229.5160 -+msgid "duplicated definition for mapping `%s'"
229.5161 -+msgstr "duplicitná definícia mapovania `%s'"
229.5162 -+
229.5163 -+#: catgets/gencat.c:631
229.5164 - msgid "duplicated message identifier"
229.5165 - msgstr "duplicitný identifikátor správy"
229.5166 - 
229.5167 --#: catgets/gencat.c:524
229.5168 -+#: catgets/gencat.c:603
229.5169 - msgid "duplicated message number"
229.5170 - msgstr "duplicitné èíslo správy"
229.5171 - 
229.5172 --#: sunrpc/rpc_scan.c:382
229.5173 -+#: locale/programs/ld-ctype.c:2368
229.5174 -+msgid "ellipsis range must be marked by two operands of same type"
229.5175 -+msgstr "rozsah pokraèovania musí by» oznaèený dvomi operandami rovnakého typu"
229.5176 -+
229.5177 -+#: sunrpc/rpc_scan.c:383
229.5178 - msgid "empty char string"
229.5179 - msgstr "prázdny znakový re»azec"
229.5180 - 
229.5181 --#: locale/programs/ld-collate.c:1710
229.5182 --msgid "empty weight name: line ignored"
229.5183 --msgstr "prázdne meno váhy - riadok ignorovaný"
229.5184 -+#: elf/dl-open.c:223
229.5185 -+msgid "empty dynamic string token substitution"
229.5186 -+msgstr "prázdna substitúcia tokenu dynamického re»azca"
229.5187 - 
229.5188 --#: sunrpc/svc_udp.c:372
229.5189 -+#: sunrpc/svc_udp.c:454
229.5190 - msgid "enablecache: cache already enabled"
229.5191 - msgstr "enablecache: vyrovnávacia pamä» je u¾ povolená"
229.5192 - 
229.5193 --#: sunrpc/svc_udp.c:378
229.5194 -+#: sunrpc/svc_udp.c:460
229.5195 - msgid "enablecache: could not allocate cache"
229.5196 - msgstr "enablecache: nebolo mo¾né prideli» vyrovnáciu pamä»"
229.5197 - 
229.5198 --#: sunrpc/svc_udp.c:386
229.5199 -+#: sunrpc/svc_udp.c:468
229.5200 - msgid "enablecache: could not allocate cache data"
229.5201 - msgstr "enablecache: nebolo mo¾né prideli» dáta pre vyrovnávaciu pamä»"
229.5202 - 
229.5203 --#: sunrpc/svc_udp.c:393
229.5204 -+#: sunrpc/svc_udp.c:475
229.5205 - msgid "enablecache: could not allocate cache fifo"
229.5206 - msgstr "enablecache: nebolo mo¾né prideli» frontu pre vyrovnávaciu pamä»"
229.5207 - 
229.5208 --#: iconv/iconv_prog.c:56
229.5209 -+#: iconv/iconv_prog.c:57
229.5210 - msgid "encoding for output"
229.5211 - msgstr "kódovanie výstupu"
229.5212 - 
229.5213 --#: iconv/iconv_prog.c:55
229.5214 -+#: iconv/iconv_prog.c:56
229.5215 - msgid "encoding of original text"
229.5216 - msgstr "kódovanie pôvodného textu"
229.5217 - 
229.5218 --#: locale/programs/ld-collate.c:1429
229.5219 --msgid "end point of ellipsis range is bigger then start"
229.5220 --msgstr "koncový bod pokraèovania je väè¹í ako poèiatoèný"
229.5221 -+#: nscd/connections.c:361 nscd/connections.c:453
229.5222 -+#, c-format
229.5223 -+msgid "error getting callers id: %s"
229.5224 -+msgstr "chyba pri získaní id volajúceho: %s"
229.5225 -+
229.5226 -+#: locale/programs/ld-collate.c:3013
229.5227 -+msgid "error while adding equivalent collating symbol"
229.5228 -+msgstr "chyba pri pridávaní ekvivalentného symbolu triedenia"
229.5229 - 
229.5230 --#: iconv/iconv_prog.c:193
229.5231 -+#: iconv/iconv_prog.c:242
229.5232 - #, c-format
229.5233 - msgid "error while closing input `%s'"
229.5234 - msgstr "chyba poèas zatvárania vstupu `%s'"
229.5235 - 
229.5236 --#: iconv/iconv_prog.c:239
229.5237 -+#: iconv/iconv_prog.c:288
229.5238 - msgid "error while closing output file"
229.5239 - msgstr "chyba poèas zatvárania výstupného súboru"
229.5240 - 
229.5241 --#: elf/sprof.c:710
229.5242 -+#: elf/sprof.c:706
229.5243 - msgid "error while closing the profiling data file"
229.5244 - msgstr "chyba poèas zatvárania súboru profilovacích údajov"
229.5245 - 
229.5246 --#: locale/programs/ld-collate.c:1158
229.5247 --msgid "error while inserting collation element into hash table"
229.5248 --msgstr "chyba poèas vkladania elementu triedenia do hash-tabuµky"
229.5249 --
229.5250 --#: locale/programs/ld-collate.c:1170
229.5251 --msgid "error while inserting to hash table"
229.5252 --msgstr "chyba poèas vkladania do hash-tabuµky"
229.5253 --
229.5254 --#: iconv/iconv_prog.c:389 iconv/iconv_prog.c:420
229.5255 -+#: iconv/iconv_prog.c:474 iconv/iconv_prog.c:505
229.5256 - msgid "error while reading the input"
229.5257 - msgstr "poèas èítania vstupu"
229.5258 - 
229.5259 --#: locale/programs/locfile.c:595
229.5260 -+#: locale/programs/locfile.h:59
229.5261 - msgid "expect string argument for `copy'"
229.5262 - msgstr "pre `copy' je oèakávaný re»azcový argyment"
229.5263 - 
229.5264 --#: timezone/zic.c:868
229.5265 -+#: timezone/zic.c:893
229.5266 - msgid "expected continuation line not found"
229.5267 - msgstr "oèakávaný pokraèovací riadok nebol nájdený"
229.5268 - 
229.5269 --#: elf/sprof.c:408
229.5270 -+#: elf/sprof.c:404
229.5271 - #, c-format
229.5272 - msgid "failed to load shared object `%s'"
229.5273 - msgstr "nepodarilo sa naèíta» zdieµaný objekt `%s'"
229.5274 - 
229.5275 --#: elf/sprof.c:604
229.5276 -+#: elf/sprof.c:600
229.5277 - msgid "failed to load symbol data"
229.5278 - msgstr "nepodarilo sa naèíta» symbolické údaje"
229.5279 - 
229.5280 --#: elf/sprof.c:702
229.5281 -+#: elf/dl-load.c:763
229.5282 -+msgid "failed to map segment from shared object"
229.5283 -+msgstr "nepodarilo sa namapova» segment zo zdieµaného objektu"
229.5284 -+
229.5285 -+#: elf/sprof.c:698
229.5286 - msgid "failed to mmap the profiling data file"
229.5287 - msgstr "nepodarilo sa mmap-ova» súbor profilovacích údajov"
229.5288 - 
229.5289 --#: iconv/iconv_prog.c:147
229.5290 -+#: iconv/iconv_prog.c:186
229.5291 - msgid "failed to start conversion processing"
229.5292 - msgstr "nepodarilo sa od¹tartova» konverziu"
229.5293 - 
229.5294 --#: locale/programs/locfile.c:1154
229.5295 -+#: locale/programs/locfile.c:406
229.5296 - #, c-format
229.5297 - msgid "failure while writing data for category `%s'"
229.5298 - msgstr "chyba poèas zápisu údajov kategórie `%s'"
229.5299 - 
229.5300 --#: nis/nis_call.c:155
229.5301 -+#: nis/nis_call.c:156
229.5302 - msgid "fcntl: F_SETFD"
229.5303 - msgstr "fcntl: F_SETFD"
229.5304 - 
229.5305 --#: locale/programs/ld-monetary.c:163 locale/programs/ld-numeric.c:98
229.5306 --#, c-format
229.5307 --msgid "field `%s' in category `%s' not defined"
229.5308 --msgstr "pole `%s' ketegórie `%s' nie je definované"
229.5309 --
229.5310 --#: locale/programs/ld-messages.c:86 locale/programs/ld-messages.c:110
229.5311 --#, c-format
229.5312 --msgid "field `%s' in category `%s' undefined"
229.5313 --msgstr "pole `%s' kategórie `%s' nedefinované"
229.5314 --
229.5315 --#: sunrpc/rpc_main.c:1148
229.5316 --#, c-format
229.5317 --msgid "file '%s' already exists and may be overwritten\n"
229.5318 --msgstr "súbor '%s' u¾ existuje a mô¾e by» prepísaný\n"
229.5319 --
229.5320 --#: locale/programs/locfile.c:677
229.5321 --msgid "from-value of `collating-element' must be a string"
229.5322 --msgstr "hodnota od pre `collating-element' musí by» re»azec"
229.5323 -+#. TRANS: the file will not be removed; this is an
229.5324 -+#. TRANS: informative message.
229.5325 -+#: sunrpc/rpc_main.c:1150
229.5326 -+#, c-format
229.5327 -+msgid "file `%s' already exists and may be overwritten\n"
229.5328 -+msgstr "súbor `%s' u¾ existuje a mô¾e by» prepísaný\n"
229.5329 -+
229.5330 -+#: elf/dl-load.c:1244
229.5331 -+msgid "file too short"
229.5332 -+msgstr "súbor je príli¹ krátky"
229.5333 - 
229.5334 --#: inet/rcmd.c:316
229.5335 -+#: inet/rcmd.c:422
229.5336 - msgid "fstat failed"
229.5337 - msgstr "fstat sa nepodaril"
229.5338 - 
229.5339 --#: locale/programs/linereader.c:333
229.5340 -+#: locale/programs/linereader.c:383
229.5341 - msgid "garbage at end of character code specification"
229.5342 - msgstr "smetie za koncom ¹pecifikácie kódu znaku"
229.5343 - 
229.5344 --#: locale/programs/linereader.c:219
229.5345 -+#: locale/programs/linereader.c:271
229.5346 - msgid "garbage at end of number"
229.5347 - msgstr "smetie za koncom èísla"
229.5348 - 
229.5349 --#: locale/programs/ld-time.c:195
229.5350 --#, c-format
229.5351 --msgid "garbage at end of offset value in string %d in `era' field in category `%s'"
229.5352 --msgstr "smetie za koncom hodnoty posunutia v re»azci %d poµa `era' kategórie `%s'"
229.5353 --
229.5354 --#: locale/programs/ld-time.c:252
229.5355 --#, c-format
229.5356 --msgid "garbage at end of starting date in string %d in `era' field in category `%s'"
229.5357 --msgstr "smetie za koncom poèiatoèného dátumu v re»azci %d poµa `era' kategórie `%s'"
229.5358 --
229.5359 --#: locale/programs/ld-time.c:328
229.5360 --#, c-format
229.5361 --msgid "garbage at end of stopping date in string %d in `era' field in category `%s'"
229.5362 --msgstr "smetie za koncom koncového dátumu v re»azci %d poµa `era' kategórie `%s'"
229.5363 --
229.5364 --#: elf/sprof.c:81
229.5365 -+#: elf/sprof.c:77
229.5366 - msgid "generate call graph"
229.5367 - msgstr "tvorba grafu volaní"
229.5368 - 
229.5369 --#: elf/sprof.c:80
229.5370 -+#: elf/sprof.c:76
229.5371 - msgid "generate flat profile with counts and ticks"
229.5372 - msgstr "tvorba jednoduchého profilu s poètami a tikmi"
229.5373 - 
229.5374 --#: sunrpc/get_myaddr.c:77
229.5375 -+#: sunrpc/get_myaddr.c:78
229.5376 - msgid "get_myaddress: ioctl (get interface configuration)"
229.5377 - msgstr "get_myaddress: ioctl (získanie konfigurácie rozhrania)"
229.5378 - 
229.5379 --#: nss/getent.c:53
229.5380 -+#: nss/getent.c:702
229.5381 - msgid "getent - get entries from administrative database."
229.5382 - msgstr "getent - získa» záznamy z administratívnej databázy."
229.5383 - 
229.5384 --#: nscd/connections.c:200
229.5385 -+#: nscd/connections.c:220
229.5386 - #, c-format
229.5387 - msgid "handle_request: request received (Version = %d)"
229.5388 - msgstr "handle_request: ¾iados» prijatá (verzia = %d)"
229.5389 - 
229.5390 --#: timezone/zic.c:613
229.5391 -+#: timezone/zic.c:637
229.5392 - msgid "hard link failed, symbolic link used"
229.5393 - msgstr "pevný odkaz zlyhal, pou¾itý symbolický"
229.5394 - 
229.5395 --#: inet/rcmd.c:322
229.5396 -+#: inet/rcmd.c:428
229.5397 - msgid "hard linked somewhere"
229.5398 - msgstr "niekde existuje pevný odkaz"
229.5399 - 
229.5400 --#: timezone/zic.c:1162
229.5401 -+#: locale/programs/charmap.c:981 locale/programs/repertoire.c:430
229.5402 -+msgid "hexadecimal range format should use only capital characters"
229.5403 -+msgstr "hexadecimálny formát rozsahu by mal pou¾íva» iba veµké písmená"
229.5404 -+
229.5405 -+#: timezone/zic.c:1187
229.5406 - msgid "illegal CORRECTION field on Leap line"
229.5407 - msgstr "neprípustné pole CORRECTION v riadku Leap"
229.5408 - 
229.5409 --#: timezone/zic.c:1166
229.5410 -+#: timezone/zic.c:1191
229.5411 - msgid "illegal Rolling/Stationary field on Leap line"
229.5412 - msgstr "neprípustné pole Rolling/Stationary v riadku Leap"
229.5413 - 
229.5414 --#: locale/programs/ld-collate.c:1782
229.5415 --msgid "illegal character constant in string"
229.5416 --msgstr "neprípustný znak v re»azci"
229.5417 --
229.5418 --#: sunrpc/rpc_scan.c:311
229.5419 -+#: sunrpc/rpc_scan.c:312
229.5420 - msgid "illegal character in file: "
229.5421 - msgstr "neprípustný znak v súbore: "
229.5422 - 
229.5423 --#: locale/programs/ld-collate.c:1125
229.5424 --msgid "illegal collation element"
229.5425 --msgstr "neprípustný element triedenia"
229.5426 --
229.5427 --#: locale/programs/charmap.c:281
229.5428 --msgid "illegal definition"
229.5429 --msgstr "neprípustná definícia"
229.5430 --
229.5431 --#: locale/programs/charmap.c:434
229.5432 --msgid "illegal encoding given"
229.5433 --msgstr "zadané neprípustné kódovanie"
229.5434 --
229.5435 --#: locale/programs/linereader.c:551
229.5436 -+#: locale/programs/linereader.c:595
229.5437 - msgid "illegal escape sequence at end of string"
229.5438 - msgstr "chybná escape-sekvencia na konci re»azca"
229.5439 - 
229.5440 --#: iconv/iconv_prog.c:342
229.5441 -+#: iconv/iconv_prog.c:427
229.5442 - #, c-format
229.5443 - msgid "illegal input sequence at position %ld"
229.5444 - msgstr "neprípustná vstupná sekvencia na pozícii %ld"
229.5445 - 
229.5446 --#: locale/programs/charset.c:78
229.5447 --msgid "illegal names for character range"
229.5448 --msgstr "neprípustné mená pre rozsah znakov"
229.5449 --
229.5450 --#: sunrpc/rpc_main.c:462
229.5451 -+#: sunrpc/rpc_main.c:463
229.5452 - #, c-format
229.5453 --msgid "illegal nettype :'%s'\n"
229.5454 --msgstr "chybný nettype :'%s'\n"
229.5455 -+msgid "illegal nettype :`%s'\n"
229.5456 -+msgstr "chybný nettype :`%s'\n"
229.5457 - 
229.5458 --#: locale/programs/ld-time.c:187
229.5459 --#, c-format
229.5460 --msgid "illegal number for offset in string %d in `era' field in category `%s'"
229.5461 --msgstr "neprípustné èíslo pre posunutie v re»azci %d poµa `era' kategórie `%s'"
229.5462 --
229.5463 --#: catgets/gencat.c:361 catgets/gencat.c:438
229.5464 -+#: catgets/gencat.c:403 catgets/gencat.c:480
229.5465 - msgid "illegal set number"
229.5466 - msgstr "neprípustné èíslo sady"
229.5467 - 
229.5468 --#: locale/programs/ld-time.c:243
229.5469 --#, c-format
229.5470 --msgid "illegal starting date in string %d in `era' field in category `%s'"
229.5471 --msgstr "neprípustný poèiatoèný dátum v re»azci %d poµa `era' kategórie `%s'"
229.5472 --
229.5473 --#: locale/programs/ld-time.c:319
229.5474 -+#: locale/programs/ld-ctype.c:1221
229.5475 - #, c-format
229.5476 --msgid "illegal stopping date in string %d in `era' field in category `%s'"
229.5477 --msgstr "neprípustný koncový dátum v re»azci %d poµa `era' kategórie `%s'"
229.5478 -+msgid "implementation limit: no more than %Zd character classes allowed"
229.5479 -+msgstr "limit implementácie: maximálne mno¾stvo tried znakov je %Zd"
229.5480 - 
229.5481 --#: locale/programs/ld-ctype.c:831
229.5482 --#, c-format
229.5483 --msgid "implementation limit: no more than %d character classes allowed"
229.5484 --msgstr "limit implementácie: maximálne mno¾stvo tried znakov je %d"
229.5485 --
229.5486 --#: locale/programs/ld-ctype.c:863
229.5487 -+#: locale/programs/ld-ctype.c:1253
229.5488 - #, c-format
229.5489 - msgid "implementation limit: no more than %d character maps allowed"
229.5490 - msgstr "limit implementácie: maximálne mno¾stvo sád znakov je %d"
229.5491 - 
229.5492 --#: iconv/iconv_prog.c:346
229.5493 -+#: iconv/iconv_prog.c:431
229.5494 - msgid "incomplete character or shift sequence at end of buffer"
229.5495 - msgstr "nekompletný znak alebo preraïovacia sekvencia na konci vyrovnávacej pamäti"
229.5496 - 
229.5497 --#: db2/makedb.c:148
229.5498 --msgid "incorrectly formatted file"
229.5499 --msgstr "nesprávne formátovaný súbor"
229.5500 --
229.5501 --#: timezone/zic.c:825
229.5502 -+#: timezone/zic.c:850
229.5503 - msgid "input line of unknown type"
229.5504 - msgstr "vstupný riadok neznámeho typu"
229.5505 - 
229.5506 --#: iconv/iconv_prog.c:350
229.5507 -+#: elf/dl-load.c:1291
229.5508 -+msgid "internal error"
229.5509 -+msgstr "interná chyba"
229.5510 -+
229.5511 -+#: iconv/iconv_prog.c:435
229.5512 - msgid "internal error (illegal descriptor)"
229.5513 - msgstr "vnútorná chyba (nesprávny deskriptor)"
229.5514 - 
229.5515 --#: timezone/zic.c:1788
229.5516 -+#: timezone/zic.c:1813
229.5517 - msgid "internal error - addtype called with bad isdst"
229.5518 - msgstr "vnútorná chyba - addtype zavolaný s chybným isdst"
229.5519 - 
229.5520 --#: timezone/zic.c:1796
229.5521 -+#: timezone/zic.c:1821
229.5522 - msgid "internal error - addtype called with bad ttisgmt"
229.5523 - msgstr "vnútorná chyba - addtype zavolaný s chybným ttisgmt"
229.5524 - 
229.5525 --#: timezone/zic.c:1792
229.5526 -+#: timezone/zic.c:1817
229.5527 - msgid "internal error - addtype called with bad ttisstd"
229.5528 - msgstr "vnútorná chyba - addtype zavolaný s chybným ttisstd"
229.5529 - 
229.5530 --#: locale/programs/ld-ctype.c:307
229.5531 -+#: locale/programs/ld-ctype.c:480 locale/programs/ld-ctype.c:536
229.5532 - #, c-format
229.5533 - msgid "internal error in %s, line %u"
229.5534 - msgstr "vnútorná chyba %s na riadku %u"
229.5535 - 
229.5536 --#: timezone/zic.c:1034
229.5537 -+#: elf/dl-load.c:1264
229.5538 -+msgid "invalid ELF header"
229.5539 -+msgstr "neprípustná ELF hlavièka"
229.5540 -+
229.5541 -+#: timezone/zic.c:1059
229.5542 - msgid "invalid UTC offset"
229.5543 - msgstr "neprípustné posunutie voèi UTC"
229.5544 - 
229.5545 --#: timezone/zic.c:1037
229.5546 -+#: timezone/zic.c:1062
229.5547 - msgid "invalid abbreviation format"
229.5548 - msgstr "neprípustný formát skratky"
229.5549 - 
229.5550 --#: timezone/zic.c:1127 timezone/zic.c:1339 timezone/zic.c:1353
229.5551 -+#: catgets/gencat.c:687
229.5552 -+msgid "invalid character: message ignored"
229.5553 -+msgstr "neprípustný znak: správa ignorovaná"
229.5554 -+
229.5555 -+#: timezone/zic.c:1152 timezone/zic.c:1364 timezone/zic.c:1378
229.5556 - msgid "invalid day of month"
229.5557 - msgstr "neprípustný deò mesiaca"
229.5558 - 
229.5559 --#: timezone/zic.c:1291
229.5560 -+#: locale/programs/charmap.c:347
229.5561 -+msgid "invalid definition"
229.5562 -+msgstr "neprípustná definícia"
229.5563 -+
229.5564 -+#: locale/programs/charmap.c:542
229.5565 -+msgid "invalid encoding given"
229.5566 -+msgstr "zadané neprípustné kódovanie"
229.5567 -+
229.5568 -+#: timezone/zic.c:1316
229.5569 - msgid "invalid ending year"
229.5570 - msgstr "neprípustný koncový rok"
229.5571 - 
229.5572 --#: timezone/zic.c:1099
229.5573 -+#: catgets/gencat.c:1147 locale/programs/linereader.c:533
229.5574 -+msgid "invalid escape sequence"
229.5575 -+msgstr "neprípustná escape-sekvencia"
229.5576 -+
229.5577 -+#: timezone/zic.c:1124
229.5578 - msgid "invalid leaping year"
229.5579 - msgstr "neprípustný priestupný rok"
229.5580 - 
229.5581 --#: elf/dl-open.c:159
229.5582 -+#: catgets/gencat.c:726
229.5583 -+msgid "invalid line"
229.5584 -+msgstr "neprípustný riadok"
229.5585 -+
229.5586 -+#: elf/dl-open.c:371
229.5587 - msgid "invalid mode for dlopen()"
229.5588 - msgstr "neprípustný mód pre dlopen()"
229.5589 - 
229.5590 --#: timezone/zic.c:1114 timezone/zic.c:1217
229.5591 -+#: timezone/zic.c:1139 timezone/zic.c:1242
229.5592 - msgid "invalid month name"
229.5593 - msgstr "neprípustný názov mesiaca"
229.5594 - 
229.5595 --#: timezone/zic.c:933
229.5596 -+#: locale/programs/charmap.c:969 locale/programs/ld-collate.c:2869
229.5597 -+#: locale/programs/repertoire.c:418
229.5598 -+msgid "invalid names for character range"
229.5599 -+msgstr "neprípustné mená pre rozsah znakov"
229.5600 -+
229.5601 -+#: debug/pcprofiledump.c:166
229.5602 -+msgid "invalid pointer size"
229.5603 -+msgstr "neprípustná veµkost» ukazovateµa"
229.5604 -+
229.5605 -+#: catgets/gencat.c:549
229.5606 -+msgid "invalid quote character"
229.5607 -+msgstr "neprípustný znak citácie"
229.5608 -+
229.5609 -+#: timezone/zic.c:958
229.5610 - msgid "invalid saved time"
229.5611 - msgstr "neprípustný ulo¾ený èas"
229.5612 - 
229.5613 --#: timezone/zic.c:1266
229.5614 -+#: timezone/zic.c:1291
229.5615 - msgid "invalid starting year"
229.5616 - msgstr "neprípustný poèiatoèný rok"
229.5617 - 
229.5618 --#: timezone/zic.c:1143 timezone/zic.c:1246
229.5619 -+#: timezone/zic.c:1168 timezone/zic.c:1271
229.5620 - msgid "invalid time of day"
229.5621 - msgstr "neprípustný èas v dni"
229.5622 - 
229.5623 --#: timezone/zic.c:1344
229.5624 -+#: timezone/zic.c:1369
229.5625 - msgid "invalid weekday name"
229.5626 - msgstr "neprípustný názov dòa"
229.5627 - 
229.5628 --#: nscd/connections.c:375
229.5629 -+#: nscd/connections.c:470
229.5630 -+#, c-format
229.5631 -+msgid "key length in request too long: %d"
229.5632 -+msgstr "då¾ka kµúèa v ¾iadosti príli¹ dlhá: %d"
229.5633 -+
229.5634 -+#: elf/ldconfig.c:738
229.5635 -+#, c-format
229.5636 -+msgid "libc4 library %s in wrong directory"
229.5637 -+msgstr "libc4 kni¾nica %s je v nesprávnom adresári"
229.5638 -+
229.5639 -+#: elf/ldconfig.c:732
229.5640 - #, c-format
229.5641 --msgid "key length in request too long: %Zd"
229.5642 --msgstr "då¾ka kµúèa v ¾iadosti príli¹ dlhá: %Zd"
229.5643 -+msgid "libc5 library %s in wrong directory"
229.5644 -+msgstr "libc5 kni¾nica %s je v nesprávnom adresári"
229.5645 - 
229.5646 --#: locale/programs/ld-collate.c:1422
229.5647 --msgid "line after ellipsis must contain character definition"
229.5648 --msgstr "riadok za pokraèovaním musí obsahova» definíciu znaku"
229.5649 -+#: elf/ldconfig.c:735
229.5650 -+#, c-format
229.5651 -+msgid "libc6 library %s in wrong directory"
229.5652 -+msgstr "libc6 kni¾nica %s je v nesprávnom adresári"
229.5653 - 
229.5654 --#: locale/programs/ld-collate.c:1401
229.5655 --msgid "line before ellipsis does not contain definition for character constant"
229.5656 --msgstr "riadok pred pokraèovaním neobsahuje definíciu pre znakovú kon¹tantu"
229.5657 -+#: elf/ldconfig.c:765
229.5658 -+#, c-format
229.5659 -+msgid "libraries %s and %s in directory %s have same soname but different type."
229.5660 -+msgstr "kni¾nice %s a %s v adresári %s majú rovnaké soname, ale odli¹ný typ."
229.5661 - 
229.5662 --#: timezone/zic.c:805
229.5663 -+#: timezone/zic.c:830
229.5664 - msgid "line too long"
229.5665 - msgstr "pridlhý riadok"
229.5666 - 
229.5667 --#: iconv/iconv_prog.c:58
229.5668 -+#: iconv/iconv_prog.c:59
229.5669 - msgid "list all known coded character sets"
229.5670 - msgstr "vypí¹ v¹etky známe znakové sady"
229.5671 - 
229.5672 --#: locale/programs/localedef.c:273
229.5673 --#, c-format
229.5674 --msgid "locale file `%s', used in `copy' statement, not found"
229.5675 --msgstr "súbor národného prostredia `%s' pou¾itý  v príkaze `copy' nebol nájdený"
229.5676 -+#: locale/programs/locfile.h:63
229.5677 -+msgid "locale name should consist only of portable characters"
229.5678 -+msgstr "názov prostredia by malo obsahova» iba prenositeµné znaky"
229.5679 - 
229.5680 --#: inet/rcmd.c:307
229.5681 -+#: inet/rcmd.c:413
229.5682 - msgid "lstat failed"
229.5683 - msgstr "lstat zlyhal"
229.5684 - 
229.5685 --#: catgets/gencat.c:619
229.5686 -+#: malloc/memusagestat.c:59
229.5687 -+msgid "make output graphic VALUE pixel high"
229.5688 -+msgstr "výstupný graf bude VALUE pixlov vysoký"
229.5689 -+
229.5690 -+#: malloc/memusagestat.c:58
229.5691 -+msgid "make output graphic VALUE pixel wide"
229.5692 -+msgstr "výstupný graf bude VALUE pixlov ¹iroký"
229.5693 -+
229.5694 -+#: catgets/gencat.c:780
229.5695 - msgid "malformed line ignored"
229.5696 - msgstr "nesprávny riadok ignorovaný"
229.5697 - 
229.5698 --#: elf/sprof.c:554
229.5699 -+#: elf/sprof.c:550
229.5700 - msgid "mapping of section header string table failed"
229.5701 - msgstr "zlyhalo mapovanie tabuµky re»azcov hlavièky sekcie"
229.5702 - 
229.5703 --#: elf/sprof.c:544
229.5704 -+#: elf/sprof.c:540
229.5705 - msgid "mapping of section headers failed"
229.5706 - msgstr "zlyhalo mapovanie hlavièiek sekcie"
229.5707 - 
229.5708 --#: malloc/mcheck.c:202
229.5709 -+#: malloc/mcheck.c:285
229.5710 - msgid "memory clobbered before allocated block\n"
229.5711 - msgstr "pamä» pred prideleným blokom prepísaná\n"
229.5712 - 
229.5713 --#: malloc/mcheck.c:205
229.5714 -+#: malloc/mcheck.c:288
229.5715 - msgid "memory clobbered past end of allocated block\n"
229.5716 - msgstr "pamä» za koncom prideleného bloku prepísaná\n"
229.5717 - 
229.5718 --#: locale/programs/ld-collate.c:170 locale/programs/ld-collate.c:176
229.5719 --#: locale/programs/ld-collate.c:180 locale/programs/ld-collate.c:1449
229.5720 --#: locale/programs/ld-collate.c:1478 locale/programs/locfile.c:1082
229.5721 --#: locale/programs/xmalloc.c:70 login/programs/database.c:62
229.5722 --#: login/programs/database.c:79 login/programs/database.c:95
229.5723 --#: posix/getconf.c:682
229.5724 -+#: locale/programs/locfile.c:334 locale/programs/xmalloc.c:70
229.5725 -+#: malloc/obstack.c:477 posix/getconf.c:809
229.5726 - msgid "memory exhausted"
229.5727 - msgstr "nedostatok pamäti"
229.5728 - 
229.5729 --#: malloc/obstack.c:471
229.5730 --msgid "memory exhausted\n"
229.5731 --msgstr "nedostatok pamäti\n"
229.5732 --
229.5733 --#: malloc/mcheck.c:199
229.5734 -+#: malloc/mcheck.c:282
229.5735 - msgid "memory is consistent, library is buggy\n"
229.5736 - msgstr "pamä» je konzistentná, kni¾nica je chybná\n"
229.5737 - 
229.5738 --#: locale/programs/ld-time.c:370
229.5739 --#, c-format
229.5740 --msgid "missing era format in string %d in `era' field in category `%s'"
229.5741 --msgstr "chýba formát éry v re»azci %d v poli `era' kategórie `%s'"
229.5742 --
229.5743 --#: locale/programs/ld-time.c:358
229.5744 --#, c-format
229.5745 --msgid "missing era name in string %d in `era' field in category `%s'"
229.5746 --msgstr "chýba meno éry v re»azci %d v poli `era' kategórie `%s'"
229.5747 -+#: elf/cache.c:120
229.5748 -+msgid "mmap of cache file failed.\n"
229.5749 -+msgstr "zlyhalo mapovanie cache súboru\n"
229.5750 -+
229.5751 -+#: elf/../sysdeps/generic/readelflib.c:108
229.5752 -+msgid "more than one dynamic segment\n"
229.5753 -+msgstr "viac ako jeden dynamický segment\n"
229.5754 - 
229.5755 --#: timezone/zic.c:928
229.5756 -+#: timezone/zic.c:953
229.5757 - msgid "nameless rule"
229.5758 - msgstr "bezmenné pravidlo"
229.5759 - 
229.5760 --#: iconv/iconv_prog.c:133
229.5761 -+#: iconv/iconv_prog.c:139
229.5762 - msgid "neither original nor target encoding specified"
229.5763 - msgstr "nie je ¹pecifikované pôvodné ani cieµové kódovanie"
229.5764 - 
229.5765 --#: nis/nss_nisplus/nisplus-publickey.c:262
229.5766 --#: nis/nss_nisplus/nisplus-publickey.c:268
229.5767 --#: nis/nss_nisplus/nisplus-publickey.c:327
229.5768 --#: nis/nss_nisplus/nisplus-publickey.c:336
229.5769 -+#: nis/nss_nisplus/nisplus-publickey.c:281
229.5770 -+#: nis/nss_nisplus/nisplus-publickey.c:287
229.5771 -+#: nis/nss_nisplus/nisplus-publickey.c:346
229.5772 -+#: nis/nss_nisplus/nisplus-publickey.c:355
229.5773 - #, c-format
229.5774 - msgid "netname2user: (nis+ lookup): %s\n"
229.5775 - msgstr "netname2user: (nis+ lookup): %s\n"
229.5776 - 
229.5777 --#: nis/nss_nisplus/nisplus-publickey.c:281
229.5778 -+#: nis/nss_nisplus/nisplus-publickey.c:300
229.5779 - #, c-format
229.5780 - msgid "netname2user: DES entry for %s in directory %s not unique"
229.5781 - msgstr "netname2user: DES záznam pre %s v adresári %s nejednoznaèný"
229.5782 - 
229.5783 --#: nis/nss_nisplus/nisplus-publickey.c:349
229.5784 -+#: nis/nss_nisplus/nisplus-publickey.c:368
229.5785 - #, c-format
229.5786 - msgid "netname2user: LOCAL entry for %s in directory %s not unique"
229.5787 - msgstr "netname2user: LOCAL záznam pre %s v adresári %s nejednoznaèný"
229.5788 - 
229.5789 --#: nis/nss_nisplus/nisplus-publickey.c:194
229.5790 -+#: nis/nss_nisplus/nisplus-publickey.c:207
229.5791 - #, c-format
229.5792 --msgid "netname2user: missing group id list in '%s'."
229.5793 --msgstr "netname2user: chýbajúci zoznam id skupín v '%s'."
229.5794 -+msgid "netname2user: missing group id list in `%s'."
229.5795 -+msgstr "netname2user: chýbajúci zoznam id skupín v `%s'."
229.5796 - 
229.5797 --#: nis/nss_nisplus/nisplus-publickey.c:299
229.5798 -+#: nis/nss_nisplus/nisplus-publickey.c:318
229.5799 - #, c-format
229.5800 --msgid "netname2user: principal name '%s' too long"
229.5801 --msgstr "netname2user: názov principála '%s' príli¹ dlhý"
229.5802 -+msgid "netname2user: principal name `%s' too long"
229.5803 -+msgstr "netname2user: názov principála `%s' príli¹ dlhý"
229.5804 - 
229.5805 --#: nis/nss_nisplus/nisplus-publickey.c:356
229.5806 -+#: nis/nss_nisplus/nisplus-publickey.c:375
229.5807 - msgid "netname2user: should not have uid 0"
229.5808 - msgstr "netname2user: nemal by ma» uid 0"
229.5809 - 
229.5810 --#: sunrpc/svc_simple.c:158
229.5811 -+#: sunrpc/svc_simple.c:159
229.5812 - #, c-format
229.5813 - msgid "never registered prog %d\n"
229.5814 - msgstr "program %d nebol nikdy registrovaný\n"
229.5815 - 
229.5816 --#: locale/programs/repertoire.c:238
229.5817 -+#: locale/programs/repertoire.c:272
229.5818 - msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
229.5819 - msgstr "nezadaná <Uxxxx> alebo <Uxxxxxxxx> hodnota"
229.5820 - 
229.5821 --#: locale/programs/ld-messages.c:101 locale/programs/ld-messages.c:125
229.5822 --#, c-format
229.5823 --msgid "no correct regular expression for field `%s' in category `%s': %s"
229.5824 --msgstr "pre pole `%s' v kategórii `%s' neexistuje správny regulérny výraz: %s"
229.5825 --
229.5826 --#: timezone/zic.c:2115
229.5827 -+#: timezone/zic.c:2142
229.5828 - msgid "no day in month matches rule"
229.5829 - msgstr "s pravidlom sa nezhoduje ¾iadny deò v mesiaci"
229.5830 - 
229.5831 --#: locale/programs/ld-collate.c:267
229.5832 -+#: locale/programs/ld-collate.c:1757
229.5833 - msgid "no definition of `UNDEFINED'"
229.5834 - msgstr "neexistuje definícia pre `UNDEFINED'"
229.5835 - 
229.5836 --#: elf/sprof.c:276
229.5837 -+#: elf/sprof.c:272
229.5838 - #, c-format
229.5839 - msgid "no filename for profiling data given and shared object `%s' has no soname"
229.5840 - msgstr "nebol zadaný názov súboru pre profilovacie údaje a zdieµaný objekt `%s' nemá soname"
229.5841 - 
229.5842 --#: locale/programs/locfile.c:609
229.5843 -+#: locale/programs/ld-ctype.c:739
229.5844 -+msgid "no input digits defined and none of the standard names in the charmap"
229.5845 -+msgstr "neboli definované ¾iadne vstupné èíslice a v znakovej mape nie je ¾iadne zo ¹tandardných mien"
229.5846 -+
229.5847 -+#: locale/programs/locfile.h:82
229.5848 - msgid "no other keyword shall be specified when `copy' is used"
229.5849 - msgstr "pri pou¾ití `copy' nemá by» zadané ¾iadne iné kµúèové slovo"
229.5850 - 
229.5851 --#: locale/programs/localedef.c:334
229.5852 -+#: locale/programs/ld-ctype.c:3349
229.5853 -+msgid "no output digits defined and none of the standard names in the charmap"
229.5854 -+msgstr "neboli definované ¾iadne výstupné èíslice a v znakovej mape nie je ¾iadne zo ¹tandardných mien"
229.5855 -+
229.5856 -+#: locale/programs/localedef.c:236
229.5857 - msgid "no output file produced because warning were issued"
229.5858 - msgstr "výstupný súbor nebol vytvorený kvôli výskytu varovaní"
229.5859 - 
229.5860 --#: locale/programs/locfile.c:283 locale/programs/locfile.c:301
229.5861 --#: locale/programs/locfile.c:319 locale/programs/locfile.c:337
229.5862 --#: locale/programs/locfile.c:355 locale/programs/locfile.c:373
229.5863 --msgid "no repertoire map specified: cannot proceed"
229.5864 --msgstr "nebola zadaná mapa repertoáru: nie je mo¾né pokraèova»"
229.5865 --
229.5866 --#: locale/programs/charmap.c:400 locale/programs/charmap.c:550
229.5867 --#: locale/programs/charmap.c:629 locale/programs/repertoire.c:199
229.5868 -+#: locale/programs/charmap.c:488 locale/programs/charmap.c:668
229.5869 -+#: locale/programs/charmap.c:764 locale/programs/repertoire.c:231
229.5870 - msgid "no symbolic name given"
229.5871 - msgstr "nebolo zadané ¾iadne symbolické meno"
229.5872 - 
229.5873 --#: locale/programs/charmap.c:465 locale/programs/charmap.c:596
229.5874 --#: locale/programs/charmap.c:662 locale/programs/repertoire.c:261
229.5875 -+#: locale/programs/charmap.c:575 locale/programs/charmap.c:723
229.5876 -+#: locale/programs/charmap.c:806 locale/programs/repertoire.c:297
229.5877 - msgid "no symbolic name given for end of range"
229.5878 - msgstr "nebolo zadané ¾iadne symbolické meno pre koniec rozsahu"
229.5879 - 
229.5880 --#: locale/programs/ld-collate.c:249
229.5881 --#, c-format
229.5882 --msgid "no weight defined for symbol `%s'"
229.5883 --msgstr "symbol `%s' nemá definovanú váhu"
229.5884 -+#: locale/programs/linereader.c:641
229.5885 -+msgid "non-symbolic character value should not be used"
229.5886 -+msgstr "nesymbolické hodnoty znakov by nemali by» pou¾ívané"
229.5887 -+
229.5888 -+#: locale/programs/ld-ctype.c:804
229.5889 -+msgid "not all characters used in `outdigit' are available in the charmap"
229.5890 -+msgstr "nie v¹etky znaky pou¾ité v `outdigit' sú dostupné v znakovej mape"
229.5891 -+
229.5892 -+#: locale/programs/ld-ctype.c:821
229.5893 -+msgid "not all characters used in `outdigit' are available in the repertoire"
229.5894 -+msgstr "nie v¹etky znaky pou¾ité v `outdigit' sú dostupné v repertoári"
229.5895 - 
229.5896 --#: inet/rcmd.c:309
229.5897 -+#: inet/rcmd.c:415
229.5898 - msgid "not regular file"
229.5899 - msgstr "nie je regulérny súbor"
229.5900 - 
229.5901 --#: nscd/nscd_stat.c:130
229.5902 -+#: nscd/nscd_stat.c:131
229.5903 - #, c-format
229.5904 - msgid ""
229.5905 - "nscd configuration:\n"
229.5906 -@@ -3679,48 +4879,72 @@
229.5907 - "\n"
229.5908 - "%15d  ladiaca úroveò servera\n"
229.5909 - 
229.5910 --#: nscd/nscd_stat.c:104
229.5911 -+#: nscd/nscd_stat.c:105
229.5912 - msgid "nscd not running!\n"
229.5913 - msgstr "nscd nebe¾í!\n"
229.5914 - 
229.5915 --#: locale/programs/charmap.c:514
229.5916 -+#: elf/dl-load.c:1051
229.5917 -+msgid "object file has no dynamic section"
229.5918 -+msgstr "objektový súbor neobsahuje ¾iadnu dynamickú sekciu"
229.5919 -+
229.5920 -+#: iconv/iconv_prog.c:61
229.5921 -+msgid "omit invalid characters from output"
229.5922 -+msgstr "vynecha» z výstupu neplatné znaky"
229.5923 -+
229.5924 -+#: elf/dl-load.c:1311
229.5925 -+msgid "only ET_DYN and ET_EXEC can be loaded"
229.5926 -+msgstr "iba ET_DYN a ET_EXEC mô¾u by» naèítané"
229.5927 -+
229.5928 -+#: locale/programs/charmap.c:632
229.5929 - msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
229.5930 - msgstr "po definícii CHARMAP mô¾u nasledova» iba definície WIDTH"
229.5931 - 
229.5932 --#: iconv/iconv_prog.c:135
229.5933 -+#: locale/programs/ld-collate.c:1005 locale/programs/ld-collate.c:1175
229.5934 -+#, c-format
229.5935 -+msgid "order for `%.*s' already defined at %s:%Zu"
229.5936 -+msgstr "poradie pre `%.*s' je u¾ definované na %s:%Zu"
229.5937 -+
229.5938 -+#: iconv/iconv_prog.c:141
229.5939 - msgid "original encoding not specified using `-f'"
229.5940 - msgstr "pôvodné kódovanie nebolo zadané pomocou `-f'"
229.5941 - 
229.5942 --#: iconv/iconv_prog.c:60
229.5943 -+#: inet/ruserpass.c:167 inet/ruserpass.c:190
229.5944 -+msgid "out of memory"
229.5945 -+msgstr "nedostatok pamäti"
229.5946 -+
229.5947 -+#: iconv/iconv_prog.c:62
229.5948 - msgid "output file"
229.5949 - msgstr "výstupný súbor"
229.5950 - 
229.5951 --#: sunrpc/pm_getmaps.c:73
229.5952 -+#: sunrpc/pm_getmaps.c:74
229.5953 - msgid "pmap_getmaps rpc problem"
229.5954 - msgstr "pmap_getmaps rpc problém"
229.5955 - 
229.5956 --#: inet/rcmd.c:179
229.5957 -+#: inet/rcmd.c:233
229.5958 - msgid "poll: protocol failure in circuit setup\n"
229.5959 - msgstr "poll: chyba protokolu poèas prípravy okruhu\n"
229.5960 - 
229.5961 --#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533
229.5962 -+#: locale/programs/ld-ctype.c:1949 locale/programs/ld-ctype.c:2000
229.5963 -+msgid "premature end of `translit_ignore' definition"
229.5964 -+msgstr "predèasný koniec definície `translit_ignore'"
229.5965 -+
229.5966 -+#: sunrpc/rpc_scan.c:524 sunrpc/rpc_scan.c:534
229.5967 - msgid "preprocessor error"
229.5968 - msgstr "chyba preprocesora"
229.5969 - 
229.5970 --#: elf/sprof.c:78
229.5971 -+#: locale/programs/ld-ctype.c:2731
229.5972 -+msgid "previous definition was here"
229.5973 -+msgstr "predchádzajúca definícia bola tu"
229.5974 -+
229.5975 -+#: elf/sprof.c:74
229.5976 - msgid "print list of count paths and their number of use"
229.5977 - msgstr "vypísa» zoznam ciest poètov a poèet ich pou¾ití"
229.5978 - 
229.5979 --#: iconv/iconv_prog.c:61
229.5980 -+#: iconv/iconv_prog.c:64
229.5981 - msgid "print progress information"
229.5982 - msgstr "vypisova» informáciu o postupe"
229.5983 - 
229.5984 --#: db2/makedb.c:345
229.5985 --#, c-format
229.5986 --msgid "problems while reading `%s'"
229.5987 --msgstr "problémy poèas èítania `%s'"
229.5988 --
229.5989 --#: elf/sprof.c:691
229.5990 -+#: elf/sprof.c:687
229.5991 - #, c-format
229.5992 - msgid "profiling data file `%s' does not match shared object `%s'"
229.5993 - msgstr "profilovacie údaje `%s' nesúhlasia so zdieµanýmobjektom `%s'"
229.5994 -@@ -3742,33 +4966,42 @@
229.5995 - msgid "program %lu version %lu ready and waiting\n"
229.5996 - msgstr "program %lu verzie %lu pripravený a èakajúci\n"
229.5997 - 
229.5998 --#: inet/rcmd.c:176
229.5999 -+#: inet/rcmd.c:270
229.6000 -+#, c-format
229.6001 -+msgid "rcmd: %s: short read"
229.6002 -+msgstr "rcmd: %s: krátke èítanie"
229.6003 -+
229.6004 -+#: inet/rcmd.c:230
229.6005 - #, c-format
229.6006 - msgid "rcmd: poll (setting up stderr): %m\n"
229.6007 - msgstr "rcmd: poll (nastavenie stderr): %m\n"
229.6008 - 
229.6009 --#: inet/rcmd.c:110
229.6010 -+#: inet/rcmd.c:158
229.6011 - msgid "rcmd: socket: All ports in use\n"
229.6012 - msgstr "rcmd: socket: V¹etky porty sú pou¾ité\n"
229.6013 - 
229.6014 --#: inet/rcmd.c:166
229.6015 -+#: inet/rcmd.c:220
229.6016 - #, c-format
229.6017 - msgid "rcmd: write (setting up stderr): %m\n"
229.6018 - msgstr "rcmd: write (nastavenie stderr): %m\n"
229.6019 - 
229.6020 --#: sunrpc/svc_simple.c:98
229.6021 -+#: sunrpc/svc_simple.c:99
229.6022 - msgid "registerrpc: out of memory\n"
229.6023 - msgstr "registerrpc: nedostatok pamäti\n"
229.6024 - 
229.6025 --#: timezone/zic.c:1849
229.6026 -+#: timezone/zic.c:1874
229.6027 - msgid "repeated leap second moment"
229.6028 - msgstr "opakovaný moment priestupnej sekundy"
229.6029 - 
229.6030 --#: locale/programs/repertoire.c:95
229.6031 -+#: locale/programs/repertoire.c:342
229.6032 - #, c-format
229.6033 - msgid "repertoire map file `%s' not found"
229.6034 - msgstr "súbor mapy repertoáru `%s' nebol nájdený"
229.6035 - 
229.6036 -+#: locale/programs/charmap.c:1063
229.6037 -+msgid "resulting bytes for range not representable."
229.6038 -+msgstr "výsledné bajty rozsahu nie sú zobraziteµné"
229.6039 -+
229.6040 - #: sunrpc/rpc_main.c:1117
229.6041 - msgid "rpcgen: arglist coding error\n"
229.6042 - msgstr "rpcgen: chyba kódovania zoznamu argumentov\n"
229.6043 -@@ -3801,469 +5034,401 @@
229.6044 - msgid "rpcinfo: can't contact portmapper"
229.6045 - msgstr "rpcinfo: nie je mo¾né spoji» sa s portmapperom"
229.6046 - 
229.6047 --#: timezone/zic.c:718 timezone/zic.c:720
229.6048 -+#: timezone/zic.c:743 timezone/zic.c:745
229.6049 - msgid "same rule name in multiple files"
229.6050 - msgstr "rovnaké meno pravidla vo viacerých súboroch"
229.6051 - 
229.6052 --#: nscd/connections.c:387
229.6053 -+#: elf/dl-load.c:1116
229.6054 -+msgid "shared object cannot be dlopen()ed"
229.6055 -+msgstr "zdieµaný objekt nemô¾e by» otvorený pomocou dlopen()"
229.6056 -+
229.6057 -+#: elf/dl-close.c:63
229.6058 -+msgid "shared object not open"
229.6059 -+msgstr "zdieµaný objekt nie je otvorený"
229.6060 -+
229.6061 -+#: nscd/connections.c:482
229.6062 - #, c-format
229.6063 - msgid "short read while reading request key: %s"
229.6064 - msgstr "neúplné èítanie kµúèa ¾iadosti: %s"
229.6065 - 
229.6066 --#: nscd/connections.c:364
229.6067 -+#: nscd/connections.c:436
229.6068 - #, c-format
229.6069 - msgid "short read while reading request: %s"
229.6070 - msgstr "neúplné èítanie ¾iadosti: `%s'"
229.6071 - 
229.6072 --#: nscd/grpcache.c:191 nscd/hstcache.c:278 nscd/pwdcache.c:188
229.6073 -+#: nscd/grpcache.c:193 nscd/hstcache.c:278 nscd/pwdcache.c:189
229.6074 - #, c-format
229.6075 - msgid "short write in %s: %s"
229.6076 - msgstr "neúplný zápis v %s: %s"
229.6077 - 
229.6078 --#: inet/rcmd.c:197
229.6079 -+#: inet/rcmd.c:260
229.6080 - msgid "socket: protocol failure in circuit setup\n"
229.6081 - msgstr "socket: chyba protokolu pri príprave okruhu\n"
229.6082 - 
229.6083 --#: locale/programs/locfile.c:730
229.6084 --msgid "sorting order `forward' and `backward' are mutually exclusive"
229.6085 --msgstr "poradie triedenia `forward' a `backward' sa navzájom vyluèujú"
229.6086 --
229.6087 --#: locale/programs/ld-collate.c:1582 locale/programs/ld-collate.c:1628
229.6088 --msgid "specification of sorting weight for collation symbol does not make sense"
229.6089 --msgstr "¹pecifikácia váh triedenia pre symbol triedenia nedáva zmysel"
229.6090 --
229.6091 --#: timezone/zic.c:789
229.6092 -+#: timezone/zic.c:814
229.6093 - msgid "standard input"
229.6094 - msgstr "¹tandardný vstup"
229.6095 - 
229.6096 --#: timezone/zdump.c:268
229.6097 -+#: timezone/zdump.c:269
229.6098 - msgid "standard output"
229.6099 - msgstr "¹tandardný výstup"
229.6100 - 
229.6101 --#: locale/programs/ld-time.c:272
229.6102 --#, c-format
229.6103 --msgid "starting date is illegal in string %d in `era' field in category `%s'"
229.6104 --msgstr "neprípustný poèiatoèný dátum v re»azci %d v poli `era' kategórie `%s'"
229.6105 -+#: locale/programs/ld-ctype.c:1680
229.6106 -+msgid "start and end character sequence of range must have the same length"
229.6107 -+msgstr "úvodná a koncová znaková sekvencia rozsahu musia ma» rovnakú då¾ku"
229.6108 - 
229.6109 --#: timezone/zic.c:1300
229.6110 -+#: timezone/zic.c:1325
229.6111 - msgid "starting year greater than ending year"
229.6112 - msgstr "poèiatoèný rok väè¹í ako koncový"
229.6113 - 
229.6114 --#: timezone/zic.c:1272 timezone/zic.c:1297
229.6115 -+#: timezone/zic.c:1297 timezone/zic.c:1322
229.6116 - msgid "starting year too high to be represented"
229.6117 - msgstr "poèiatoèný rok priveµký pre zobrazenie"
229.6118 - 
229.6119 --#: timezone/zic.c:1270 timezone/zic.c:1295
229.6120 -+#: timezone/zic.c:1295 timezone/zic.c:1320
229.6121 - msgid "starting year too low to be represented"
229.6122 - msgstr "poèiatoèný rok primalý pre zobrazenie"
229.6123 - 
229.6124 --#: locale/programs/ld-time.c:348
229.6125 --#, c-format
229.6126 --msgid "stopping date is illegal in string %d in `era' field in category `%s'"
229.6127 --msgstr "neprípustný koncový dátum v re»azci %d v poli `era' kategórie `%s'"
229.6128 --
229.6129 --#: sunrpc/svc_run.c:81
229.6130 --msgid "svc_run: - select failed"
229.6131 --msgstr "svc_run: - select zlyhal"
229.6132 -+#: iconv/iconv_prog.c:63
229.6133 -+msgid "suppress warnings"
229.6134 -+msgstr "potlaèi» varovania"
229.6135 -+
229.6136 -+#: sunrpc/svc_run.c:76
229.6137 -+msgid "svc_run: - poll failed"
229.6138 -+msgstr "svc_run: - poll zlyhal"
229.6139 - 
229.6140 --#: sunrpc/svc_tcp.c:160
229.6141 -+#: sunrpc/svc_tcp.c:161
229.6142 - msgid "svc_tcp.c - cannot getsockname or listen"
229.6143 - msgstr "svc_tcp.c - nie je mo¾né vykona» getsockname alebo listen"
229.6144 - 
229.6145 --#: sunrpc/svc_tcp.c:145
229.6146 -+#: sunrpc/svc_tcp.c:146
229.6147 - msgid "svc_tcp.c - tcp socket creation problem"
229.6148 - msgstr "svc_tcp.c - problém pri vytváraní tcp socketu"
229.6149 - 
229.6150 --#: sunrpc/svc_tcp.c:209 sunrpc/svc_tcp.c:215
229.6151 -+#: sunrpc/svc_tcp.c:210 sunrpc/svc_tcp.c:216
229.6152 - msgid "svc_tcp: makefd_xprt: out of memory\n"
229.6153 - msgstr "svc_tcp: makefd_xprt: nedostatok pamäti\n"
229.6154 - 
229.6155 --#: sunrpc/svc_unix.c:135
229.6156 -+#: sunrpc/svc_unix.c:137
229.6157 - msgid "svc_unix.c - AF_UNIX socket creation problem"
229.6158 - msgstr "svc_unix.c - problém pri vytváraní AF_UNIX socketu"
229.6159 - 
229.6160 --#: sunrpc/svc_unix.c:151
229.6161 -+#: sunrpc/svc_unix.c:153
229.6162 - msgid "svc_unix.c - cannot getsockname or listen"
229.6163 - msgstr "svc_unix.c - nemô¾em vykona» getsockname alebo listen"
229.6164 - 
229.6165 --#: sunrpc/svc_unix.c:201 sunrpc/svc_unix.c:207
229.6166 -+#: sunrpc/svc_unix.c:203 sunrpc/svc_unix.c:209
229.6167 - msgid "svc_unix: makefd_xprt: out of memory\n"
229.6168 - msgstr "svc_unix: makefd_xprt: nedostatok pamäti\n"
229.6169 - 
229.6170 --#: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176
229.6171 -+#: sunrpc/svc_tcp.c:169 sunrpc/svc_tcp.c:177
229.6172 - msgid "svctcp_create: out of memory\n"
229.6173 - msgstr "svctcp_create: nedostatok pamäti\n"
229.6174 - 
229.6175 --#: sunrpc/svc_udp.c:135
229.6176 -+# msgmerge complains: duplicate message definition
229.6177 -+# 3073: ...this is the location of the first definition
229.6178 -+# entry disabled, Martin v. Löwis
229.6179 -+# #: sunrpc/svc_tcp.c:168 sunrpc/svc_tcp.c:176
229.6180 -+# msgid "svctcp_create: out of memory\n"
229.6181 -+# msgstr "svctcp_create: nedostatok pamäti\n"
229.6182 -+#: sunrpc/svc_udp.c:141
229.6183 - msgid "svcudp_create - cannot getsockname"
229.6184 - msgstr "svcudp_create - nemô¾em vykona» getsockname"
229.6185 - 
229.6186 --#: sunrpc/svc_udp.c:143 sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155
229.6187 -+#: sunrpc/svc_udp.c:149 sunrpc/svc_udp.c:155 sunrpc/svc_udp.c:161
229.6188 - msgid "svcudp_create: out of memory\n"
229.6189 - msgstr "svcudp_create: nedostatok pamäti\n"
229.6190 - 
229.6191 --#: sunrpc/svc_udp.c:121
229.6192 -+#: sunrpc/svc_udp.c:127
229.6193 - msgid "svcudp_create: socket creation problem"
229.6194 - msgstr "svcudp_create: problém pri vytváraní socketu"
229.6195 - 
229.6196 --#: sunrpc/svc_unix.c:160 sunrpc/svc_unix.c:168
229.6197 -+#: sunrpc/svc_udp.c:177
229.6198 -+msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
229.6199 -+msgstr "svcudp_create: xp_pad je príli¹ malý pre IP_PKTINFO\n"
229.6200 -+
229.6201 -+#: sunrpc/svc_unix.c:162 sunrpc/svc_unix.c:170
229.6202 - msgid "svcunix_create: out of memory\n"
229.6203 - msgstr "svcunix_create: nedostatok pamäti\n"
229.6204 - 
229.6205 --#: locale/programs/ld-collate.c:1201
229.6206 -+#: locale/programs/linereader.c:745
229.6207 - #, c-format
229.6208 --msgid "symbol for multicharacter collating element `%.*s' duplicates element definition"
229.6209 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje definíciu elementu"
229.6210 -+msgid "symbol `%.*s' not in charmap"
229.6211 -+msgstr "symbol `%.*s' nie je v mape znakov"
229.6212 - 
229.6213 --#: locale/programs/ld-collate.c:1073
229.6214 -+#: locale/programs/linereader.c:766
229.6215 - #, c-format
229.6216 --msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition"
229.6217 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje iný element"
229.6218 -+msgid "symbol `%.*s' not in repertoire map"
229.6219 -+msgstr "symbol `%.*s' nie je v mape repertoáru"
229.6220 - 
229.6221 --#: locale/programs/ld-collate.c:1210
229.6222 -+#: locale/programs/ld-collate.c:1617 locale/programs/ld-collate.c:1716
229.6223 - #, c-format
229.6224 --msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition"
229.6225 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje definíciu iného symbolu"
229.6226 -+msgid "symbol `%s'"
229.6227 -+msgstr "symbol `%s'"
229.6228 - 
229.6229 --#: locale/programs/ld-collate.c:1082
229.6230 -+#: locale/programs/ld-collate.c:1614 locale/programs/ld-collate.c:1713
229.6231 - #, c-format
229.6232 --msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition"
229.6233 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje definíciu symbolu"
229.6234 -+msgid "symbol `%s' has the same encoding as"
229.6235 -+msgstr "symbol `%s' má rovnaké kódovanie ako"
229.6236 - 
229.6237 --#: locale/programs/ld-collate.c:1064 locale/programs/ld-collate.c:1192
229.6238 -+#: locale/programs/ld-collate.c:1539
229.6239 - #, c-format
229.6240 --msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset"
229.6241 --msgstr "symbol pre viacznakový element triedenia `%.*s' duplikuje symbolické meno v znakovej sade"
229.6242 -+msgid "symbol `%s' not defined"
229.6243 -+msgstr "symbol `%s' nie je definovaný"
229.6244 - 
229.6245 --#: locale/programs/charmap.c:399 locale/programs/charmap.c:433
229.6246 --#: locale/programs/charmap.c:463 locale/programs/charmap.c:549
229.6247 --#: locale/programs/charmap.c:595 locale/programs/charmap.c:628
229.6248 --#: locale/programs/charmap.c:660
229.6249 -+#: locale/programs/ld-ctype.c:1955 locale/programs/ld-ctype.c:2006
229.6250 -+#: locale/programs/ld-ctype.c:2048
229.6251 -+msgid "syntax error"
229.6252 -+msgstr "chyba syntaxe"
229.6253 -+
229.6254 -+#: locale/programs/charmap.c:487 locale/programs/charmap.c:541
229.6255 -+#: locale/programs/charmap.c:573 locale/programs/charmap.c:667
229.6256 -+#: locale/programs/charmap.c:722 locale/programs/charmap.c:763
229.6257 -+#: locale/programs/charmap.c:804
229.6258 - #, c-format
229.6259 - msgid "syntax error in %s definition: %s"
229.6260 - msgstr "chyba syntaxe v definícii %s: %s"
229.6261 - 
229.6262 --#: locale/programs/locfile.c:750
229.6263 --msgid "syntax error in `order_start' directive"
229.6264 --msgstr "chyba syntaxe v direktíve `order_start'"
229.6265 --
229.6266 --#: locale/programs/locfile.c:492
229.6267 --msgid "syntax error in character class definition"
229.6268 --msgstr "chyba syntaxe v definícii triedy znakov"
229.6269 --
229.6270 --#: locale/programs/locfile.c:550
229.6271 --msgid "syntax error in character conversion definition"
229.6272 --msgstr "chyba syntaxe v definície konverzie znakov"
229.6273 --
229.6274 --#: locale/programs/locfile.c:792
229.6275 --msgid "syntax error in collating order definition"
229.6276 --msgstr "chyba syntaxe v definícii poradia triedenia"
229.6277 --
229.6278 --#: locale/programs/locfile.c:642
229.6279 --msgid "syntax error in collation definition"
229.6280 --msgstr "chyba syntaxe v definícii triedenia"
229.6281 --
229.6282 --#: locale/programs/locfile.c:465
229.6283 --msgid "syntax error in definition of LC_CTYPE category"
229.6284 --msgstr "chyba syntaxe v definícii kategórie LC_CTYPE"
229.6285 --
229.6286 --#: locale/programs/locfile.c:408
229.6287 --msgid "syntax error in definition of new character class"
229.6288 --msgstr "chyba syntaxe v definícii novej triedy znakov"
229.6289 --
229.6290 --#: locale/programs/locfile.c:418
229.6291 --msgid "syntax error in definition of new character map"
229.6292 --msgstr "chyba syntaxe v definícii novej znakovej sady"
229.6293 --
229.6294 --#: locale/programs/locfile.c:1003
229.6295 --msgid "syntax error in message locale definition"
229.6296 --msgstr "chyba syntaxe v definícii národného prostredia správ"
229.6297 --
229.6298 --#: locale/programs/locfile.c:914
229.6299 --msgid "syntax error in monetary locale definition"
229.6300 --msgstr "chyba syntaxe v definícii národného prostredia peòa¾ných hodnôt"
229.6301 --
229.6302 --#: locale/programs/locfile.c:941
229.6303 --msgid "syntax error in numeric locale definition"
229.6304 --msgstr "chyba syntaxe v definícii národného prostredia pre èísla"
229.6305 --
229.6306 --#: locale/programs/locfile.c:852
229.6307 --msgid "syntax error in order specification"
229.6308 --msgstr "chyba syntaxe v ¹pecifikácii poradia"
229.6309 --
229.6310 --#: locale/programs/charmap.c:280 locale/programs/charmap.c:296
229.6311 --#: locale/programs/repertoire.c:143
229.6312 -+#: locale/programs/charmap.c:346 locale/programs/charmap.c:363
229.6313 -+#: locale/programs/repertoire.c:175
229.6314 - #, c-format
229.6315 - msgid "syntax error in prolog: %s"
229.6316 - msgstr "chyba syntaxe v prológu: %s"
229.6317 - 
229.6318 --#: locale/programs/repertoire.c:198 locale/programs/repertoire.c:237
229.6319 --#: locale/programs/repertoire.c:260
229.6320 -+#: locale/programs/repertoire.c:230 locale/programs/repertoire.c:271
229.6321 -+#: locale/programs/repertoire.c:296
229.6322 - #, c-format
229.6323 - msgid "syntax error in repertoire map definition: %s"
229.6324 - msgstr "chyba syntaxe v definícii mapy repertoáru: %s"
229.6325 - 
229.6326 --#: locale/programs/locfile.c:979
229.6327 --msgid "syntax error in time locale definition"
229.6328 --msgstr "chyba syntaxe v definícii národného prostredia pre èas"
229.6329 --
229.6330 --#: locale/programs/locfile.c:385
229.6331 -+#: locale/programs/locfile.c:243
229.6332 - msgid "syntax error: not inside a locale definition section"
229.6333 - msgstr "chyba syntaxe: nie je vnútri sekcie definície národného prostredia"
229.6334 - 
229.6335 --#: iconv/iconv_prog.c:137
229.6336 -+#: iconv/iconv_prog.c:143
229.6337 - msgid "target encoding not specified using `-t'"
229.6338 - msgstr "kódovanie cieµa nebolo zadané pomocou `-t'"
229.6339 - 
229.6340 --#: catgets/gencat.c:390 catgets/gencat.c:526 catgets/gencat.c:553
229.6341 -+#: catgets/gencat.c:432 catgets/gencat.c:605 catgets/gencat.c:634
229.6342 - msgid "this is the first definition"
229.6343 - msgstr "toto je prvá definícia"
229.6344 - 
229.6345 --#: timezone/zic.c:1132
229.6346 -+#: timezone/zic.c:1157
229.6347 - msgid "time before zero"
229.6348 - msgstr "èas men¹í ako nula"
229.6349 - 
229.6350 --#: timezone/zic.c:1140 timezone/zic.c:2015 timezone/zic.c:2034
229.6351 -+#: timezone/zic.c:1165 timezone/zic.c:2042 timezone/zic.c:2061
229.6352 - msgid "time overflow"
229.6353 - msgstr "preteèenie èasu"
229.6354 - 
229.6355 --#: locale/programs/charmap.c:443
229.6356 -+#: locale/programs/ld-ctype.c:1553 locale/programs/ld-ctype.c:2029
229.6357 -+#, c-format
229.6358 -+msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
229.6359 -+msgstr "to-value <U%0*X> rozsahu je men¹ia ako from-value <U%0*X>"
229.6360 -+
229.6361 -+#: locale/programs/ld-ctype.c:1687
229.6362 -+msgid "to-value character sequence is smaller than from-value sequence"
229.6363 -+msgstr "to-value sekvencia znakov je men¹ia ako sekvencia from-value"
229.6364 -+
229.6365 -+#: locale/programs/charmap.c:551
229.6366 - msgid "too few bytes in character encoding"
229.6367 - msgstr "primálo bajtov v kódovaní znaku"
229.6368 - 
229.6369 --#: locale/programs/charmap.c:445
229.6370 -+#: locale/programs/charmap.c:553
229.6371 - msgid "too many bytes in character encoding"
229.6372 - msgstr "priveµa bajtov v kódovaní znaku"
229.6373 - 
229.6374 --#: locale/programs/locales.h:92
229.6375 --msgid "too many character classes defined"
229.6376 --msgstr "priveµa definovaných tried znakov"
229.6377 --
229.6378 --#: timezone/zic.c:1843
229.6379 -+#: timezone/zic.c:1868
229.6380 - msgid "too many leap seconds"
229.6381 - msgstr "priveµa priestupných sekúnd"
229.6382 - 
229.6383 --#: timezone/zic.c:1815
229.6384 -+#: timezone/zic.c:1840
229.6385 - msgid "too many local time types"
229.6386 - msgstr "priveµa lokálnych typov èasu"
229.6387 - 
229.6388 --#: timezone/zic.c:1769
229.6389 -+#: timezone/zic.c:1794
229.6390 - msgid "too many transitions?!"
229.6391 - msgstr "priveµa prechodov?!"
229.6392 - 
229.6393 --#: locale/programs/ld-collate.c:1637
229.6394 --msgid "too many weights"
229.6395 --msgstr "priveµa váh"
229.6396 --
229.6397 --#: timezone/zic.c:2138
229.6398 -+#: timezone/zic.c:2165
229.6399 - msgid "too many, or too long, time zone abbreviations"
229.6400 - msgstr "príli¹ veµa alebo príli¹ dlhé skratku èasovej zóny"
229.6401 - 
229.6402 --#: locale/programs/linereader.h:146
229.6403 -+#: locale/programs/linereader.h:157
229.6404 - msgid "trailing garbage at end of line"
229.6405 - msgstr "smetie na konci riadku"
229.6406 - 
229.6407 --#: sunrpc/svc_simple.c:150
229.6408 -+#: sunrpc/svc_simple.c:151
229.6409 - #, c-format
229.6410 - msgid "trouble replying to prog %d\n"
229.6411 - msgstr "problémy pri odpovedi programu %d\n"
229.6412 - 
229.6413 --#: locale/programs/ld-collate.c:1393
229.6414 --msgid "two lines in a row containing `...' are not allowed"
229.6415 --msgstr "dva riadky za sebou obsahujúce `...' nie sú povolené"
229.6416 --
229.6417 --#: timezone/zic.c:1307
229.6418 -+#: timezone/zic.c:1332
229.6419 - msgid "typed single year"
229.6420 - msgstr "zadaný jeden rok"
229.6421 - 
229.6422 --#: iconv/iconv_prog.c:406
229.6423 -+#: iconv/iconv_prog.c:491
229.6424 - msgid "unable to allocate buffer for input"
229.6425 - msgstr "nie je mo¾né prideli» vyrovnávaciu pamä» pre vstup"
229.6426 - 
229.6427 --#: nis/nis_callback.c:187
229.6428 -+#: nis/nis_callback.c:189
229.6429 - msgid "unable to free arguments"
229.6430 - msgstr "nie je mo¾né uvoµni» argumenty"
229.6431 - 
229.6432 --#: posix/getconf.c:654 posix/getconf.c:670
229.6433 -+#: posix/getconf.c:781 posix/getconf.c:797
229.6434 - msgid "undefined"
229.6435 - msgstr "nedefinované"
229.6436 - 
229.6437 --#: locale/programs/charmap.c:701 locale/programs/charmap.c:712
229.6438 -+#: locale/programs/charmap.c:856 locale/programs/charmap.c:867
229.6439 - #, c-format
229.6440 - msgid "unknown character `%s'"
229.6441 - msgstr "neznámy znak `%s'"
229.6442 - 
229.6443 --#: locale/programs/ld-messages.c:202 locale/programs/ld-messages.c:213
229.6444 --#: locale/programs/ld-messages.c:224 locale/programs/ld-messages.c:235
229.6445 --#: locale/programs/ld-time.c:718
229.6446 --#, c-format
229.6447 --msgid "unknown character in field `%s' of category `%s'"
229.6448 --msgstr "neznámy znak v poli `%s' kategórie `%s'"
229.6449 --
229.6450 --#: locale/programs/locfile.c:715
229.6451 --msgid "unknown collation directive"
229.6452 --msgstr "neznáma direktíva triedenia"
229.6453 --
229.6454 --#: catgets/gencat.c:487
229.6455 -+#: catgets/gencat.c:562
229.6456 - #, c-format
229.6457 - msgid "unknown directive `%s': line ignored"
229.6458 - msgstr "neznáma direktíva `%s' - riadok ignorovaný"
229.6459 - 
229.6460 --#: iconv/iconv_prog.c:353
229.6461 -+#: iconv/iconv_prog.c:438
229.6462 - #, c-format
229.6463 - msgid "unknown iconv() error %d"
229.6464 - msgstr "neznáma iconv() chyba %d"
229.6465 - 
229.6466 --#: catgets/gencat.c:466
229.6467 -+#: catgets/gencat.c:508
229.6468 - #, c-format
229.6469 - msgid "unknown set `%s'"
229.6470 - msgstr "neznáma sada `%s'"
229.6471 - 
229.6472 --#: locale/programs/ld-collate.c:1377 locale/programs/ld-collate.c:1572
229.6473 --#: locale/programs/ld-collate.c:1747
229.6474 --#, c-format
229.6475 --msgid "unknown symbol `%.*s': line ignored"
229.6476 --msgstr "neznámy symbol `%.*s' - riadok ignorovaný"
229.6477 --
229.6478 --#: timezone/zic.c:761
229.6479 -+#: timezone/zic.c:786
229.6480 - msgid "unruly zone"
229.6481 - msgstr "zóna bez pravidiel"
229.6482 - 
229.6483 --#: catgets/gencat.c:971
229.6484 -+#: catgets/gencat.c:1169
229.6485 - msgid "unterminated message"
229.6486 - msgstr "neukonèená správa"
229.6487 - 
229.6488 --#: locale/programs/linereader.c:520 locale/programs/linereader.c:555
229.6489 -+#: locale/programs/linereader.c:599 locale/programs/linereader.c:784
229.6490 - msgid "unterminated string"
229.6491 - msgstr "neukonèený re»azec"
229.6492 - 
229.6493 --#: sunrpc/rpc_scan.c:350 sunrpc/rpc_scan.c:376
229.6494 -+#: sunrpc/rpc_scan.c:351 sunrpc/rpc_scan.c:377
229.6495 - msgid "unterminated string constant"
229.6496 - msgstr "neukonèená re»azcová kon¹tanta"
229.6497 - 
229.6498 --#: locale/programs/linereader.c:390
229.6499 -+#: locale/programs/linereader.c:469
229.6500 - msgid "unterminated symbolic name"
229.6501 - msgstr "neukonèené symbolické meno"
229.6502 - 
229.6503 --#: locale/programs/ld-collate.c:1699
229.6504 --msgid "unterminated weight name"
229.6505 --msgstr "neukonèené meno váhy"
229.6506 -+#: locale/programs/charmap.c:1005
229.6507 -+msgid "upper limit in range is not higher then lower limit"
229.6508 -+msgstr "horný limit rozsahu nie je väè¹í ako dolný"
229.6509 - 
229.6510 --#: locale/programs/charset.c:104
229.6511 -+#: locale/programs/repertoire.c:455
229.6512 - msgid "upper limit in range is not smaller then lower limit"
229.6513 - msgstr "horný limit rozsahu je men¹í ako dolný"
229.6514 - 
229.6515 --#: sunrpc/rpc_main.c:1415
229.6516 -+#: sunrpc/rpc_main.c:1424
229.6517 - #, c-format
229.6518 --msgid "usage:  %s infile\n"
229.6519 -+msgid "usage: %s infile\n"
229.6520 - msgstr "pou¾itie:  %s vstupný_súbor\n"
229.6521 - 
229.6522 --#: timezone/zic.c:2081
229.6523 -+#: timezone/zic.c:2108
229.6524 - msgid "use of 2/29 in non leap-year"
229.6525 - msgstr "29. február pou¾itý v nepriestupnom roku"
229.6526 - 
229.6527 --#: locale/programs/charmap.c:522 locale/programs/charmap.c:576
229.6528 -+#: locale/programs/charmap.c:640 locale/programs/charmap.c:703
229.6529 - #, c-format
229.6530 - msgid "value for %s must be an integer"
229.6531 - msgstr "hodnota pre %s musí by» celé èíslo"
229.6532 - 
229.6533 --#: locale/programs/charmap.c:318
229.6534 -+#: locale/programs/charmap.c:399
229.6535 - #, c-format
229.6536 --msgid "value for <%s> must lie between 1 and 4"
229.6537 --msgstr "honota pre <%s> musí by» medzi 1 a 4"
229.6538 -+msgid "value for <%s> must be 1 or greater"
229.6539 -+msgstr "hodnota pre <%s> musí by» 1 alebo viac"
229.6540 - 
229.6541 --#: locale/programs/ld-monetary.c:157 locale/programs/ld-numeric.c:92
229.6542 -+#: locale/programs/charmap.c:411
229.6543 - #, c-format
229.6544 --msgid "value for field `%s' in category `%s' must not be the empty string"
229.6545 --msgstr "hodnota poµa `%s' kategórie `%s' nesmie by» prázdny re»azec"
229.6546 --
229.6547 --#: locale/programs/charmap.c:330
229.6548 --msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
229.6549 --msgstr "hodnota <mb_cur_max> musí by» väè¹ia ako hodnota <mb_cur_min>"
229.6550 -+msgid "value of <%s> must be greater or equal than the value of <%s>"
229.6551 -+msgstr "hodnota <%s> musí by» väè¹ia alebo rovná hodnote <%s>"
229.6552 - 
229.6553 --#: locale/programs/ld-monetary.c:147
229.6554 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' does not correspond to a valid name in ISO 4217"
229.6555 --msgstr "hodnota poµa `int_curr_symbol' kategórie `LC_MONETARY' nezodpovedá platnému menu v ISO 4217"
229.6556 -+#: timezone/zic.c:433
229.6557 -+msgid "warning: "
229.6558 -+msgstr "varovanie: "
229.6559 - 
229.6560 --#: locale/programs/ld-monetary.c:139
229.6561 --msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
229.6562 --msgstr "hodnota poµa `int_curr_symbol' kategórie `LC_MONETARY' má chybnú då¾ku"
229.6563 --
229.6564 --#: locale/programs/ld-monetary.c:383 locale/programs/ld-numeric.c:207
229.6565 --#, c-format
229.6566 --msgid "values for field `%s' in category `%s' must be smaller than 127"
229.6567 --msgstr "hodnoty poµa `%s' kategórie `%s' musia by» men¹ie ako 127"
229.6568 --
229.6569 --#: nscd/connections.c:355
229.6570 -+#: nscd/connections.c:427
229.6571 - #, c-format
229.6572 - msgid "while accepting connection: %s"
229.6573 - msgstr "poèas prijatia spojenia: %s"
229.6574 - 
229.6575 --#: nscd/grpcache.c:149 nscd/hstcache.c:168 nscd/pwdcache.c:142
229.6576 -+#: nscd/grpcache.c:150 nscd/hstcache.c:165 nscd/pwdcache.c:143
229.6577 - msgid "while allocating cache entry"
229.6578 - msgstr "poèas pridelenia záznamu cache"
229.6579 - 
229.6580 --#: nscd/cache.c:85
229.6581 -+#: nscd/cache.c:88
229.6582 - msgid "while allocating hash table entry"
229.6583 - msgstr "poèas pridelenia záznamu hash-tabuµky"
229.6584 - 
229.6585 --#: nscd/grpcache.c:99 nscd/hstcache.c:109 nscd/pwdcache.c:105
229.6586 -+#: nscd/grpcache.c:100 nscd/hstcache.c:108 nscd/pwdcache.c:106
229.6587 - msgid "while allocating key copy"
229.6588 - msgstr "poèas pridelenia kópie kµúèa"
229.6589 - 
229.6590 --#: catgets/gencat.c:1001
229.6591 -+#: catgets/gencat.c:1199
229.6592 - msgid "while opening old catalog file"
229.6593 - msgstr "poèas otvárania starého katalógu"
229.6594 - 
229.6595 --#: locale/programs/locale.c:346
229.6596 -+#: locale/programs/locale.c:361
229.6597 - msgid "while preparing output"
229.6598 - msgstr "poèas prípravy výstupu"
229.6599 - 
229.6600 --#: db2/makedb.c:365 db2/makedb.c:382
229.6601 --msgid "while reading database"
229.6602 --msgstr "poèas èítania databázy"
229.6603 --
229.6604 --#: elf/sprof.c:683
229.6605 -+#: elf/sprof.c:679
229.6606 - msgid "while stat'ing profiling data file"
229.6607 - msgstr "poèas stat-u súboru profilovacích informácií"
229.6608 - 
229.6609 --#: db2/makedb.c:334
229.6610 --msgid "while writing database file"
229.6611 --msgstr "poèas zápisu databázy"
229.6612 -+#: locale/programs/ld-ctype.c:2392
229.6613 -+msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
229.6614 -+msgstr "v rozsahu hodnôt UCS treba pou¾i» hexadecimálne symbolické pokraèovanie `..'"
229.6615 -+
229.6616 -+#: locale/programs/ld-ctype.c:2406
229.6617 -+msgid "with character code range values one must use the absolute ellipsis `...'"
229.6618 -+msgstr "v rozsahu hodnôt kódov znakov treba pou¾i» absolútne pokraèovanie `...'"
229.6619 -+
229.6620 -+#: locale/programs/ld-ctype.c:2377
229.6621 -+msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
229.6622 -+msgstr "v symbolickom rozsahu hodnôt nesmie by» pou¾ité absolútne pokraèovanie `...'"
229.6623 - 
229.6624 --#: nscd/nscd_stat.c:115
229.6625 -+#: nscd/nscd_stat.c:116
229.6626 - msgid "write incomplete"
229.6627 - msgstr "neúplný zápis"
229.6628 - 
229.6629 --#: inet/rcmd.c:320
229.6630 -+#: inet/rcmd.c:426
229.6631 - msgid "writeable by other than owner"
229.6632 - msgstr "zapisovateµný nielen pre vlastníka"
229.6633 - 
229.6634 --#: db2/makedb.c:124 nscd/nscd.c:114 nss/getent.c:392
229.6635 -+#: nscd/nscd.c:123 nscd/nscd_nischeck.c:64 nss/getent.c:761
229.6636 - msgid "wrong number of arguments"
229.6637 - msgstr "chybný poèet argumentov"
229.6638 - 
229.6639 --#: timezone/zic.c:1090
229.6640 -+#: timezone/zic.c:1115
229.6641 - msgid "wrong number of fields on Leap line"
229.6642 - msgstr "chybný poèet polí v riadku Leap"
229.6643 - 
229.6644 --#: timezone/zic.c:1181
229.6645 -+#: timezone/zic.c:1206
229.6646 - msgid "wrong number of fields on Link line"
229.6647 - msgstr "chybný poèet polí v riadku Link"
229.6648 - 
229.6649 --#: timezone/zic.c:924
229.6650 -+#: timezone/zic.c:949
229.6651 - msgid "wrong number of fields on Rule line"
229.6652 - msgstr "chybný poè¹t polí v riadku Rule"
229.6653 - 
229.6654 --#: timezone/zic.c:994
229.6655 -+#: timezone/zic.c:1019
229.6656 - msgid "wrong number of fields on Zone continuation line"
229.6657 - msgstr "chybný poèet polí v pokraèovacom riadku Zone"
229.6658 - 
229.6659 --#: timezone/zic.c:952
229.6660 -+#: timezone/zic.c:977
229.6661 - msgid "wrong number of fields on Zone line"
229.6662 - msgstr "chybný poèet polí v riadku Zone"
229.6663 - 
229.6664 --#: sunrpc/xdr_ref.c:84
229.6665 -+#: sunrpc/xdr_ref.c:85
229.6666 - msgid "xdr_reference: out of memory\n"
229.6667 - msgstr "xdr_reference: nedostatok pamäti\n"
229.6668 - 
229.6669 -@@ -4271,10 +5436,10 @@
229.6670 - msgid "xdrrec_create: out of memory\n"
229.6671 - msgstr "xdrrec_create: nedostatok pamäti\n"
229.6672 - 
229.6673 --#: nis/ypclnt.c:884
229.6674 -+#: nis/ypclnt.c:907
229.6675 - msgid "yp_update: cannot convert host to netname\n"
229.6676 - msgstr "yp_update: nie je mo¾né konvertova» meno poèítaèa na meno siete\n"
229.6677 - 
229.6678 --#: nis/ypclnt.c:896
229.6679 -+#: nis/ypclnt.c:919
229.6680 - msgid "yp_update: cannot get server address\n"
229.6681 - msgstr "yp_update: nie je mo¾né zísti» adresu servera\n"
   230.1 --- a/patches/glibc/2.2.2/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   230.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   230.3 @@ -1,51 +0,0 @@
   230.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   230.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   230.6 -Fixes following error:
   230.7 -
   230.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   230.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  230.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  230.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  230.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  230.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  230.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  230.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  230.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  230.17 -
  230.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  230.19 -
  230.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  230.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  230.22 -@@ -47,6 +47,12 @@
  230.23 - #include <asm/page.h>
  230.24 - #include <sys/sysctl.h>
  230.25 - 
  230.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  230.27 -+#include <linux/version.h>
  230.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  230.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  230.30 -+#endif
  230.31 -+
  230.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  230.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  230.34 - 
  230.35 -@@ -80,7 +86,7 @@
  230.36 -  * Initialize I/O system.  There are several ways to get the information
  230.37 -  * we need.  Each is tried in turn until one succeeds.
  230.38 -  *
  230.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  230.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  230.41 -  *    but not all kernels support it.
  230.42 -  *
  230.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  230.44 -@@ -100,8 +106,8 @@
  230.45 - {
  230.46 -   char systype[256];
  230.47 -   int i, n;
  230.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  230.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  230.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  230.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  230.52 -   size_t len = sizeof(io.base);
  230.53 - 
  230.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   231.1 --- a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc-3.4-grp.patch	Tue Aug 14 19:32:22 2007 +0000
   231.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   231.3 @@ -1,56 +0,0 @@
   231.4 -Fixes
   231.5 -initgroups.c: In function `internal_getgrouplist':
   231.6 -initgroups.c:179: error: parse error before "__FUNCTION__"
   231.7 -
   231.8 -CVSROOT:	/cvs/glibc
   231.9 -Module name:	libc
  231.10 -Changes by:	roland@sources.redhat.com	2001-12-16 21:52:12
  231.11 -
  231.12 -Modified files:
  231.13 -	nss            : nsswitch.c 
  231.14 -	grp            : initgroups.c 
  231.15 -
  231.16 -Log message:
  231.17 -	2001-12-16  Roland McGrath  <roland@frob.com>
  231.18 -	
  231.19 -	* nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal.
  231.20 -	* grp/initgroups.c (internal_getgrouplist): Likewise.
  231.21 -
  231.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc
  231.23 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc
  231.24 -
  231.25 -Removed 2nd hunk for glibc-2.1.3 (it was just whitespace)
  231.26 -
  231.27 -===================================================================
  231.28 -RCS file: /cvs/glibc/libc/grp/initgroups.c,v
  231.29 -retrieving revision 1.26
  231.30 -retrieving revision 1.27
  231.31 -diff -u -r1.26 -r1.27
  231.32 ---- libc/grp/initgroups.c	2001/07/06 04:54:46	1.26
  231.33 -+++ libc/grp/initgroups.c	2001/12/17 05:52:11	1.27
  231.34 -@@ -176,7 +176,7 @@
  231.35 - 
  231.36 -       /* This is really only for debugging.  */
  231.37 -       if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
  231.38 --	__libc_fatal ("illegal status in " __FUNCTION__);
  231.39 -+	__libc_fatal ("illegal status in internal_getgrouplist");
  231.40 - 
  231.41 -       if (status != NSS_STATUS_SUCCESS
  231.42 - 	  && nss_next_action (nip, status) == NSS_ACTION_RETURN)
  231.43 -
  231.44 -===================================================================
  231.45 -RCS file: /cvs/glibc/libc/nss/nsswitch.c,v
  231.46 -retrieving revision 1.52
  231.47 -retrieving revision 1.53
  231.48 -diff -u -r1.52 -r1.53
  231.49 ---- libc/nss/nsswitch.c	2001/07/17 08:21:36	1.52
  231.50 -+++ libc/nss/nsswitch.c	2001/12/17 05:52:11	1.53
  231.51 -@@ -178,7 +178,7 @@
  231.52 -     {
  231.53 -       /* This is really only for debugging.  */
  231.54 -        if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
  231.55 --	 __libc_fatal ("illegal status in " __FUNCTION__);
  231.56 -+	 __libc_fatal ("illegal status in __nss_next");
  231.57 - 
  231.58 -        if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
  231.59 - 	 return 1;
   232.1 --- a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-sscanf.patch	Tue Aug 14 19:32:22 2007 +0000
   232.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   232.3 @@ -1,73 +0,0 @@
   232.4 -http://sources.redhat.com/ml/bug-glibc/2003-08/msg00087.html
   232.5 -
   232.6 -From: Gernot Hillier <gernot dot hillier at siemens dot com>
   232.7 -Organization: Siemens AG
   232.8 -To: Jeffrey Bedard <jefbed at e-list dot net>, bug-glibc at gnu dot org
   232.9 -Date: Mon, 18 Aug 2003 08:50:03 +0200
  232.10 -References: <3F3D0899.6020004@e-list.net>
  232.11 -Message-Id: <200308180850.03431.gernot.hillier@siemens.com>
  232.12 -Subject: Re: Build Fails with gcc 3.3.1
  232.13 -X-BeenThere: bug-glibc@gnu.org
  232.14 -
  232.15 -Hi!
  232.16 -
  232.17 -Am Freitag, 15. August 2003 18:21 schrieb Jeffrey Bedard:
  232.18 -> gcc sscanf.c -c -std=gnu99 -O2 -Wall -Winline -Wstrict-prototypes
  232.19 -[...]
  232.20 -> sscanf.c:31: warning: conflicting types for built-in function `sscanf'
  232.21 -> sscanf.c: In function `sscanf':
  232.22 -> sscanf.c:37: error: `va_start' used in function with fixed args
  232.23 -> .../stdio-common/_itoa.h: At top level:
  232.24 -> .../stdio-common/_itoa.h:40: warning: inlining failed in call to
  232.25 -> `_itoa_word' .../stdio-common/_itoa.h:76: warning: called from here
  232.26 -> make[2]: ***
  232.27 -> [/home/jefbed/src/packages/glibc-build/stdio-common/sscanf.o] Error 1
  232.28 -
  232.29 -You can find the fitting patch in the glibc CVS. You have to replace some 
  232.30 -function headers. 
  232.31 -
  232.32 -I created a patch for glibc-2.2.5 for the same reason. I don't know if it 
  232.33 -applies cleanly, but if not it should at least show you what to do...
  232.34 -
  232.35 --- 
  232.36 -Bye,
  232.37 -
  232.38 -Gernot Hillier
  232.39 -Siemens AG
  232.40 -
  232.41 -
  232.42 -
  232.43 -
  232.44 -Content-Disposition: attachment; filename="glibc-2.2.5-gcc-3.3.diff"
  232.45 -
  232.46 -diff -ur glibc-2.2.5.orig/stdio-common/sprintf.c glibc-2.2.5/stdio-common/sprintf.c
  232.47 ---- glibc-2.2.5.orig/stdio-common/sprintf.c	2001-07-06 06:55:41.000000000 +0200
  232.48 -+++ glibc-2.2.5/stdio-common/sprintf.c	2003-08-11 13:25:48.000000000 +0200
  232.49 -@@ -27,9 +27,7 @@
  232.50 - /* Write formatted output into S, according to the format string FORMAT.  */
  232.51 - /* VARARGS2 */
  232.52 - int
  232.53 --sprintf (s, format)
  232.54 --     char *s;
  232.55 --     const char *format;
  232.56 -+sprintf (char *s, const char *format,...)
  232.57 - {
  232.58 -   va_list arg;
  232.59 -   int done;
  232.60 -Only in glibc-2.2.5/stdio-common: sprintf.c.orig
  232.61 -Only in glibc-2.2.5/stdio-common: sprintf.c.rej
  232.62 -diff -ur glibc-2.2.5.orig/stdio-common/sscanf.c glibc-2.2.5/stdio-common/sscanf.c
  232.63 ---- glibc-2.2.5.orig/stdio-common/sscanf.c	2001-07-06 06:55:41.000000000 +0200
  232.64 -+++ glibc-2.2.5/stdio-common/sscanf.c	2003-08-11 13:27:58.000000000 +0200
  232.65 -@@ -27,9 +27,7 @@
  232.66 - /* Read formatted input from S, according to the format string FORMAT.  */
  232.67 - /* VARARGS2 */
  232.68 - int
  232.69 --sscanf (s, format)
  232.70 --     const char *s;
  232.71 --     const char *format;
  232.72 -+sscanf (const char *s, const char *format,...)
  232.73 - {
  232.74 -   va_list arg;
  232.75 -   int done;
  232.76 -
   233.1 --- a/patches/glibc/2.2.2/glibc-2.1.3-allow-gcc3-versioninfo.patch	Tue Aug 14 19:32:22 2007 +0000
   233.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   233.3 @@ -1,17 +0,0 @@
   233.4 -# gcc-3.x doesn't like run-on strings
   233.5 -# See also http://sources.redhat.com/ml/libc-alpha/2004-01/msg00032.html
   233.6 -
   233.7 ---- glibc-2.1.3/csu/Makefile.old	2004-03-04 12:18:52.000000000 -0800
   233.8 -+++ glibc-2.1.3/csu/Makefile	2004-03-04 12:19:35.000000000 -0800
   233.9 -@@ -188,8 +188,8 @@
  233.10 - 	 esac; \
  233.11 - 	 files="$(all-Banner-files)";				\
  233.12 - 	 if test -n "$$files"; then				\
  233.13 --	   echo "\"Available extensions:";			\
  233.14 --	   sed -e '/^#/d' -e 's/^[[:space:]]*/	/' $$files;	\
  233.15 --	   echo "\"";						\
  233.16 -+	   echo -e "\"Available extensions:\\\\n\"";		\
  233.17 -+  	   sed -e '/^#/d' -e 's/^[[:space:]]*/	/'		\
  233.18 -+	       -e 's/^\(.*\)$$/\"\1\\n\"/' $$files;		\
  233.19 - 	 fi) > $@T
  233.20 - 	mv -f $@T $@
   234.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc-3-configure.patch	Tue Aug 14 19:32:22 2007 +0000
   234.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   234.3 @@ -1,21 +0,0 @@
   234.4 -Works around version check:
   234.5 -
   234.6 -checking for i686-unknown-linux-gnu-gcc... gcc
   234.7 -checking version of gcc... 3.4.2, bad
   234.8 -...
   234.9 -configure: error: 
  234.10 -*** Some critical program is missing or too old.
  234.11 -*** Check the INSTALL file for required versions.
  234.12 -
  234.13 -
  234.14 ---- glibc-2.2.2/configure.old	2005-04-10 16:57:42.692071968 -0700
  234.15 -+++ glibc-2.2.2/configure	2005-04-10 16:58:52.993384544 -0700
  234.16 -@@ -1437,7 +1437,7 @@
  234.17 -   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
  234.18 -   case $ac_prog_version in
  234.19 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  234.20 --    *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
  234.21 -+    *gcc-2.9[5-9].*|*3.[234].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
  234.22 -        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  234.23 -     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  234.24 - 
   235.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-dl-machine-i386.patch	Tue Aug 14 19:32:22 2007 +0000
   235.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   235.3 @@ -1,232 +0,0 @@
   235.4 -Fixes errors:
   235.5 -In file included from dynamic-link.h:21,
   235.6 -                 from dl-load.c:32:
   235.7 -../sysdeps/i386/dl-machine.h:121: error: parse error before '.' token
   235.8 -../sysdeps/i386/dl-machine.h:122: error: stray '@' in program
   235.9 -../sysdeps/i386/dl-machine.h:125: error: syntax error at '#' token
  235.10 -../sysdeps/i386/dl-machine.h:128: error: syntax error at '#' token
  235.11 -../sysdeps/i386/dl-machine.h:129: error: syntax error at '#' token
  235.12 -../sysdeps/i386/dl-machine.h:129: error: stray '`' in program
  235.13 -../sysdeps/i386/dl-machine.h:129: error: missing terminating ' character
  235.14 -...
  235.15 -../sysdeps/i386/dl-machine.h:227:22: warning: character constant too long for its type
  235.16 -../sysdeps/i386/dl-machine.h:209: error: stray '\' in program
  235.17 -../sysdeps/i386/dl-machine.h:209: error: stray '\' in program
  235.18 -../sysdeps/i386/dl-machine.h:209: error: stray '\' in program
  235.19 -../sysdeps/i386/dl-machine.h:209: error: missing terminating " character
  235.20 -../sysdeps/i386/dl-machine.h: In function `dl_platform_init':
  235.21 -../sysdeps/i386/dl-machine.h:273: error: `_dl_platform' undeclared (first use in this function)
  235.22 -../sysdeps/i386/dl-machine.h:273: error: (Each undeclared identifier is reported only once
  235.23 -../sysdeps/i386/dl-machine.h:273: error: for each function it appears in.)
  235.24 -dl-load.c: In function `_dl_map_object_from_fd':
  235.25 -dl-load.c:1043: warning: use of cast expressions as lvalues is deprecated
  235.26 -dl-load.c:1043: warning: use of cast expressions as lvalues is deprecated
  235.27 -dl-load.c:1058: warning: use of cast expressions as lvalues is deprecated
  235.28 -dl-load.c:1058: warning: use of cast expressions as lvalues is deprecated
  235.29 -
  235.30 -dl-runtime.c:53: error: conflicting types for 'fixup'
  235.31 -../sysdeps/i386/dl-machine.h:67: error: previous declaration of 'fixup' was here
  235.32 -dl-runtime.c:53: error: conflicting types for 'fixup'
  235.33 -../sysdeps/i386/dl-machine.h:67: error: previous declaration of 'fixup' was here
  235.34 -dl-runtime.c:135: error: conflicting types for 'profile_fixup'
  235.35 -../sysdeps/i386/dl-machine.h:70: error: previous declaration of 'profile_fixup' was here
  235.36 -dl-runtime.c:135: error: conflicting types for 'profile_fixup'
  235.37 -../sysdeps/i386/dl-machine.h:70: error: previous declaration of 'profile_fixup' was here
  235.38 -../sysdeps/i386/dl-machine.h:67: warning: 'fixup' declared `static' but never defined
  235.39 -../sysdeps/i386/dl-machine.h:70: warning: 'profile_fixup' declared `static' but never defined
  235.40 -
  235.41 -Updated to repair breakage caused by unconditionally requiring ARCH_FIXUP_ATTRIBUTE
  235.42 -to be defined.  (No wonder glibc-2.2.2 didn't build for anything but x86...)
  235.43 -
  235.44 -===================================================================
  235.45 ---- glibc-2.2.2/sysdeps/i386/dl-machine.h.old	2005-04-11 17:45:13.000000000 -0700
  235.46 -+++ glibc-2.2.2/sysdeps/i386/dl-machine.h	2005-04-12 10:01:47.000000000 -0700
  235.47 -@@ -63,11 +63,14 @@
  235.48 -    destroys the passed register information.  */
  235.49 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
  235.50 -    without the `__unbounded' qualifier.  */
  235.51 -+
  235.52 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
  235.53 -+
  235.54 - static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
  235.55 --     __attribute__ ((regparm (2), unused));
  235.56 -+     ARCH_FIXUP_ATTRIBUTE;
  235.57 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
  235.58 - 				 ElfW(Addr) retaddr)
  235.59 --     __attribute__ ((regparm (3), unused));
  235.60 -+     ARCH_FIXUP_ATTRIBUTE;
  235.61 - #endif
  235.62 - 
  235.63 - /* Set up the loaded object described by L so its unrelocated PLT
  235.64 -@@ -117,68 +120,68 @@
  235.65 -    and then redirect to the address it returns.  */
  235.66 - #if !defined PROF && !__BOUNDED_POINTERS__
  235.67 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
  235.68 --	.text
  235.69 --	.globl _dl_runtime_resolve
  235.70 --	.type _dl_runtime_resolve, @function
  235.71 --	.align 16
  235.72 --_dl_runtime_resolve:
  235.73 --	pushl %eax		# Preserve registers otherwise clobbered.
  235.74 --	pushl %ecx
  235.75 --	pushl %edx
  235.76 --	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note
  235.77 --	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.
  235.78 --	call fixup		# Call resolver.
  235.79 --	popl %edx		# Get register content back.
  235.80 --	popl %ecx
  235.81 --	xchgl %eax, (%esp)	# Get %eax contents end store function address.
  235.82 --	ret $8			# Jump to function address.
  235.83 --	.size _dl_runtime_resolve, .-_dl_runtime_resolve
  235.84 --
  235.85 --	.globl _dl_runtime_profile
  235.86 --	.type _dl_runtime_profile, @function
  235.87 --	.align 16
  235.88 --_dl_runtime_profile:
  235.89 --	pushl %eax		# Preserve registers otherwise clobbered.
  235.90 --	pushl %ecx
  235.91 --	pushl %edx
  235.92 --	movl 20(%esp), %ecx	# Load return address
  235.93 --	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note
  235.94 --	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.
  235.95 --	call profile_fixup	# Call resolver.
  235.96 --	popl %edx		# Get register content back.
  235.97 --	popl %ecx
  235.98 --	xchgl %eax, (%esp)	# Get %eax contents end store function address.
  235.99 --	ret $8			# Jump to function address.
 235.100 --	.size _dl_runtime_profile, .-_dl_runtime_profile
 235.101 --	.previous
 235.102 -+	.text\n\
 235.103 -+	.globl _dl_runtime_resolve\n\
 235.104 -+	.type _dl_runtime_resolve, @function\n\
 235.105 -+	.align 16\n\
 235.106 -+_dl_runtime_resolve:\n\
 235.107 -+	pushl %eax		# Preserve registers otherwise clobbered.\n\
 235.108 -+	pushl %ecx\n\
 235.109 -+	pushl %edx\n\
 235.110 -+	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note\n\
 235.111 -+	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.\n\
 235.112 -+	call fixup		# Call resolver.\n\
 235.113 -+	popl %edx		# Get register content back.\n\
 235.114 -+	popl %ecx\n\
 235.115 -+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
 235.116 -+	ret $8			# Jump to function address.\n\
 235.117 -+	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
 235.118 -+\n\
 235.119 -+	.globl _dl_runtime_profile\n\
 235.120 -+	.type _dl_runtime_profile, @function\n\
 235.121 -+	.align 16\n\
 235.122 -+_dl_runtime_profile:\n\
 235.123 -+	pushl %eax		# Preserve registers otherwise clobbered.\n\
 235.124 -+	pushl %ecx\n\
 235.125 -+	pushl %edx\n\
 235.126 -+	movl 20(%esp), %ecx	# Load return address\n\
 235.127 -+	movl 16(%esp), %edx	# Copy args pushed by PLT in register.  Note\n\
 235.128 -+	movl 12(%esp), %eax	# that `fixup' takes its parameters in regs.\n\
 235.129 -+	call profile_fixup	# Call resolver.\n\
 235.130 -+	popl %edx		# Get register content back.\n\
 235.131 -+	popl %ecx\n\
 235.132 -+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
 235.133 -+	ret $8			# Jump to function address.\n\
 235.134 -+	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
 235.135 -+	.previous\n\
 235.136 - ");
 235.137 - #else
 235.138 --# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
 235.139 --	.text
 235.140 --	.globl _dl_runtime_resolve
 235.141 --	.globl _dl_runtime_profile
 235.142 --	.type _dl_runtime_resolve, @function
 235.143 --	.type _dl_runtime_profile, @function
 235.144 --	.align 16
 235.145 --_dl_runtime_resolve:
 235.146 --_dl_runtime_profile:
 235.147 --	pushl %eax		# Preserve registers otherwise clobbered.
 235.148 --	pushl %ecx
 235.149 --	pushl %edx
 235.150 --	movl 16(%esp), %edx	# Push the arguments for `fixup'
 235.151 --	movl 12(%esp), %eax
 235.152 --	pushl %edx
 235.153 --	pushl %eax
 235.154 --	call fixup		# Call resolver.
 235.155 --	popl %edx		# Pop the parameters
 235.156 --	popl %ecx
 235.157 --	popl %edx		# Get register content back.
 235.158 --	popl %ecx
 235.159 --	xchgl %eax, (%esp)	# Get %eax contents end store function address.
 235.160 --	ret $8			# Jump to function address.
 235.161 --	.size _dl_runtime_resolve, .-_dl_runtime_resolve
 235.162 --	.size _dl_runtime_profile, .-_dl_runtime_profile
 235.163 --	.previous
 235.164 -+# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\
 235.165 -+	.text\n\
 235.166 -+	.globl _dl_runtime_resolve\n\
 235.167 -+	.globl _dl_runtime_profile\n\
 235.168 -+	.type _dl_runtime_resolve, @function\n\
 235.169 -+	.type _dl_runtime_profile, @function\n\
 235.170 -+	.align 16\n\
 235.171 -+_dl_runtime_resolve:\n\
 235.172 -+_dl_runtime_profile:\n\
 235.173 -+	pushl %eax		# Preserve registers otherwise clobbered.\n\
 235.174 -+	pushl %ecx\n\
 235.175 -+	pushl %edx\n\
 235.176 -+	movl 16(%esp), %edx	# Push the arguments for `fixup'\n\
 235.177 -+	movl 12(%esp), %eax\n\
 235.178 -+	pushl %edx\n\
 235.179 -+	pushl %eax\n\
 235.180 -+	call fixup		# Call resolver.\n\
 235.181 -+	popl %edx		# Pop the parameters\n\
 235.182 -+	popl %ecx\n\
 235.183 -+	popl %edx		# Get register content back.\n\
 235.184 -+	popl %ecx\n\
 235.185 -+	xchgl %eax, (%esp)	# Get %eax contents end store function address.\n\
 235.186 -+	ret $8			# Jump to function address.\n\
 235.187 -+	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
 235.188 -+	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
 235.189 -+	.previous\n\
 235.190 - ");
 235.191 - #endif
 235.192 - 
 235.193 -@@ -205,7 +208,7 @@
 235.194 - _dl_start_user:\n\
 235.195 - 	# Save the user entry point address in %edi.\n\
 235.196 - 	movl %eax, %edi\n\
 235.197 --	# Point %ebx at the GOT.
 235.198 -+	# Point %ebx at the GOT.\n\
 235.199 - 	call 0b\n\
 235.200 - 	addl $_GLOBAL_OFFSET_TABLE_, %ebx\n\
 235.201 - 	# Store the highest stack address\n\
 235.202 -
 235.203 -===================================================================
 235.204 ---- glibc-2.2.2/elf/dl-runtime.c.old	2005-07-07 15:40:26.000000000 -0700
 235.205 -+++ glibc-2.2.2/elf/dl-runtime.c	2005-07-07 15:41:57.000000000 -0700
 235.206 -@@ -33,6 +33,11 @@
 235.207 - # define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
 235.208 - #endif
 235.209 - 
 235.210 -+/* The fixup functions might have need special attributes.  If none
 235.211 -+   are provided define the macro as empty.  */
 235.212 -+#ifndef ARCH_FIXUP_ATTRIBUTE
 235.213 -+# define ARCH_FIXUP_ATTRIBUTE
 235.214 -+#endif
 235.215 - 
 235.216 - /* This function is called through a special trampoline from the PLT the
 235.217 -    first time each PLT entry is called.  We must perform the relocation
 235.218 -@@ -42,7 +47,7 @@
 235.219 -    function.  */
 235.220 - 
 235.221 - #ifndef ELF_MACHINE_NO_PLT
 235.222 --static ElfW(Addr) __attribute__ ((unused))
 235.223 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
 235.224 - fixup (
 235.225 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
 235.226 -         ELF_MACHINE_RUNTIME_FIXUP_ARGS,
 235.227 -@@ -126,7 +131,7 @@
 235.228 - 
 235.229 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
 235.230 - 
 235.231 --static ElfW(Addr) __attribute__ ((unused))
 235.232 -+static ElfW(Addr) __attribute__ ((unused)) ARCH_FIXUP_ATTRIBUTE
 235.233 - profile_fixup (
 235.234 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
 235.235 -        ELF_MACHINE_RUNTIME_FIXUP_ARGS,
   236.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-errlist.patch	Tue Aug 14 19:32:22 2007 +0000
   236.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   236.3 @@ -1,18 +0,0 @@
   236.4 -Fixes error
   236.5 -../sysdeps/unix/sysv/linux/errlist.c:41: error: weak declaration of '_old_sys_nerr' must precede definition
   236.6 -
   236.7 -===================================================================
   236.8 ---- glibc-2.2.2/sysdeps/unix/sysv/linux/errlist.c.old	2005-04-11 16:58:21.000000000 -0700
   236.9 -+++ glibc-2.2.2/sysdeps/unix/sysv/linux/errlist.c	2005-04-11 16:58:10.000000000 -0700
  236.10 -@@ -38,10 +38,9 @@
  236.11 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
  236.12 - 
  236.13 - strong_alias (__old_sys_nerr, _old_sys_nerr);
  236.14 --weak_alias (__old_sys_nerr, _old_sys_nerr)
  236.15 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
  236.16 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
  236.17 --weak_alias (__old_sys_errlist, _old_sys_errlist);
  236.18 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
  236.19 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
  236.20 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
  236.21 - #endif
   237.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-allow-gcc3-longlong.patch	Tue Aug 14 19:32:22 2007 +0000
   237.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   237.3 @@ -1,811 +0,0 @@
   237.4 -Fixes error
   237.5 -./longlong.h:423: error: parse error before '%' token
   237.6 -./longlong.h:423: error: missing terminating " character
   237.7 -./longlong.h:432: error: missing terminating " character
   237.8 -See also patches/glibc-2.1.3/glibc-2.1.3-allow-gcc3-longlong.patch
   237.9 -
  237.10 -===================================================================
  237.11 ---- glibc-2.2.2/stdlib/longlong.h.old	2000-02-11 15:48:58.000000000 -0800
  237.12 -+++ glibc-2.2.2/stdlib/longlong.h	2005-04-11 15:36:10.000000000 -0700
  237.13 -@@ -108,8 +108,8 @@
  237.14 - 
  237.15 - #if (defined (__a29k__) || defined (_AM29K)) && W_TYPE_SIZE == 32
  237.16 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  237.17 --  __asm__ ("add %1,%4,%5
  237.18 --	addc %0,%2,%3"							\
  237.19 -+  __asm__ ("add %1,%4,%5\n"           \
  237.20 -+	"addc %0,%2,%3"							\
  237.21 - 	   : "=r" ((USItype) (sh)),					\
  237.22 - 	    "=&r" ((USItype) (sl))					\
  237.23 - 	   : "%r" ((USItype) (ah)),					\
  237.24 -@@ -117,8 +117,8 @@
  237.25 - 	     "%r" ((USItype) (al)),					\
  237.26 - 	     "rI" ((USItype) (bl)))
  237.27 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
  237.28 --  __asm__ ("sub %1,%4,%5
  237.29 --	subc %0,%2,%3"							\
  237.30 -+  __asm__ ("sub %1,%4,%5\n"           \
  237.31 -+	"subc %0,%2,%3"							\
  237.32 - 	   : "=r" ((USItype) (sh)),					\
  237.33 - 	     "=&r" ((USItype) (sl))					\
  237.34 - 	   : "r" ((USItype) (ah)),					\
  237.35 -@@ -175,8 +175,8 @@
  237.36 - 
  237.37 - #if defined (__arc__) && W_TYPE_SIZE == 32
  237.38 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  237.39 --  __asm__ ("add.f	%1, %4, %5
  237.40 --	adc	%0, %2, %3"						\
  237.41 -+  __asm__ ("add.f	%1, %4, %5\n"       \
  237.42 -+	"adc	%0, %2, %3"						\
  237.43 - 	   : "=r" ((USItype) (sh)),					\
  237.44 - 	     "=&r" ((USItype) (sl))					\
  237.45 - 	   : "%r" ((USItype) (ah)),					\
  237.46 -@@ -184,8 +184,8 @@
  237.47 - 	     "%r" ((USItype) (al)),					\
  237.48 - 	     "rIJ" ((USItype) (bl)))
  237.49 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
  237.50 --  __asm__ ("sub.f	%1, %4, %5
  237.51 --	sbc	%0, %2, %3"						\
  237.52 -+  __asm__ ("sub.f	%1, %4, %5\n"       \
  237.53 -+	"sbc	%0, %2, %3"						\
  237.54 - 	   : "=r" ((USItype) (sh)),					\
  237.55 - 	     "=&r" ((USItype) (sl))					\
  237.56 - 	   : "r" ((USItype) (ah)),					\
  237.57 -@@ -206,8 +206,8 @@
  237.58 - 
  237.59 - #if defined (__arm__) && W_TYPE_SIZE == 32
  237.60 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  237.61 --  __asm__ ("adds	%1, %4, %5
  237.62 --	adc	%0, %2, %3"						\
  237.63 -+  __asm__ ("adds	%1, %4, %5\n"       \
  237.64 -+	"adc	%0, %2, %3"						\
  237.65 - 	   : "=r" ((USItype) (sh)),					\
  237.66 - 	     "=&r" ((USItype) (sl))					\
  237.67 - 	   : "%r" ((USItype) (ah)),					\
  237.68 -@@ -215,8 +215,8 @@
  237.69 - 	     "%r" ((USItype) (al)),					\
  237.70 - 	     "rI" ((USItype) (bl)))
  237.71 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
  237.72 --  __asm__ ("subs	%1, %4, %5
  237.73 --	sbc	%0, %2, %3"						\
  237.74 -+  __asm__ ("subs	%1, %4, %5\n"       \
  237.75 -+	"sbc	%0, %2, %3"						\
  237.76 - 	   : "=r" ((USItype) (sh)),					\
  237.77 - 	     "=&r" ((USItype) (sl))					\
  237.78 - 	   : "r" ((USItype) (ah)),					\
  237.79 -@@ -225,19 +225,19 @@
  237.80 - 	     "rI" ((USItype) (bl)))
  237.81 - #define umul_ppmm(xh, xl, a, b) \
  237.82 - {register USItype __t0, __t1, __t2;					\
  237.83 --  __asm__ ("%@ Inlined umul_ppmm
  237.84 --	mov	%2, %5, lsr #16
  237.85 --	mov	%0, %6, lsr #16
  237.86 --	bic	%3, %5, %2, lsl #16
  237.87 --	bic	%4, %6, %0, lsl #16
  237.88 --	mul	%1, %3, %4
  237.89 --	mul	%4, %2, %4
  237.90 --	mul	%3, %0, %3
  237.91 --	mul	%0, %2, %0
  237.92 --	adds	%3, %4, %3
  237.93 --	addcs	%0, %0, #65536
  237.94 --	adds	%1, %1, %3, lsl #16
  237.95 --	adc	%0, %0, %3, lsr #16"					\
  237.96 -+  __asm__ ("%@ Inlined umul_ppmm\n"   \
  237.97 -+	"mov	%2, %5, lsr #16\n"            \
  237.98 -+	"mov	%0, %6, lsr #16\n"            \
  237.99 -+	"bic	%3, %5, %2, lsl #16\n"        \
 237.100 -+	"bic	%4, %6, %0, lsl #16\n"        \
 237.101 -+	"mul	%1, %3, %4\n"                 \
 237.102 -+	"mul	%4, %2, %4\n"                 \
 237.103 -+	"mul	%3, %0, %3\n"                 \
 237.104 -+	"mul	%0, %2, %0\n"                 \
 237.105 -+	"adds	%3, %4, %3\n"                 \
 237.106 -+	"addcs	%0, %0, #65536\n"           \
 237.107 -+	"adds	%1, %1, %3, lsl #16\n"        \
 237.108 -+	"adc	%0, %0, %3, lsr #16"					\
 237.109 - 	   : "=&r" ((USItype) (xh)),					\
 237.110 - 	     "=r" ((USItype) (xl)),					\
 237.111 - 	     "=&r" (__t0), "=&r" (__t1), "=r" (__t2)			\
 237.112 -@@ -277,8 +277,8 @@
 237.113 - 
 237.114 - #if defined (__gmicro__) && W_TYPE_SIZE == 32
 237.115 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.116 --  __asm__ ("add.w %5,%1
 237.117 --	addx %3,%0"							\
 237.118 -+  __asm__ ("add.w %5,%1\n"            \
 237.119 -+	"addx %3,%0"							\
 237.120 - 	   : "=g" ((USItype) (sh)),					\
 237.121 - 	     "=&g" ((USItype) (sl))					\
 237.122 - 	   : "%0" ((USItype) (ah)),					\
 237.123 -@@ -286,8 +286,8 @@
 237.124 - 	     "%1" ((USItype) (al)),					\
 237.125 - 	     "g" ((USItype) (bl)))
 237.126 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.127 --  __asm__ ("sub.w %5,%1
 237.128 --	subx %3,%0"							\
 237.129 -+  __asm__ ("sub.w %5,%1\n"            \
 237.130 -+	"subx %3,%0"							\
 237.131 - 	   : "=g" ((USItype) (sh)),					\
 237.132 - 	     "=&g" ((USItype) (sl))					\
 237.133 - 	   : "0" ((USItype) (ah)),					\
 237.134 -@@ -316,8 +316,8 @@
 237.135 - 
 237.136 - #if defined (__hppa) && W_TYPE_SIZE == 32
 237.137 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.138 --  __asm__ ("add %4,%5,%1
 237.139 --	addc %2,%3,%0"							\
 237.140 -+  __asm__ ("add %4,%5,%1\n"           \
 237.141 -+	"addc %2,%3,%0"							\
 237.142 - 	   : "=r" ((USItype) (sh)),					\
 237.143 - 	     "=&r" ((USItype) (sl))					\
 237.144 - 	   : "%rM" ((USItype) (ah)),					\
 237.145 -@@ -325,8 +325,8 @@
 237.146 - 	     "%rM" ((USItype) (al)),					\
 237.147 - 	     "rM" ((USItype) (bl)))
 237.148 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.149 --  __asm__ ("sub %4,%5,%1
 237.150 --	subb %2,%3,%0"							\
 237.151 -+  __asm__ ("sub %4,%5,%1\n"           \
 237.152 -+	"subb %2,%3,%0"							\
 237.153 - 	   : "=r" ((USItype) (sh)),					\
 237.154 - 	     "=&r" ((USItype) (sl))					\
 237.155 - 	   : "rM" ((USItype) (ah)),					\
 237.156 -@@ -357,22 +357,22 @@
 237.157 -   do {									\
 237.158 -     USItype __tmp;							\
 237.159 -     __asm__ (								\
 237.160 --       "ldi		1,%0
 237.161 --	extru,=		%1,15,16,%%r0		; Bits 31..16 zero?
 237.162 --	extru,tr	%1,15,16,%1		; No.  Shift down, skip add.
 237.163 --	ldo		16(%0),%0		; Yes.  Perform add.
 237.164 --	extru,=		%1,23,8,%%r0		; Bits 15..8 zero?
 237.165 --	extru,tr	%1,23,8,%1		; No.  Shift down, skip add.
 237.166 --	ldo		8(%0),%0		; Yes.  Perform add.
 237.167 --	extru,=		%1,27,4,%%r0		; Bits 7..4 zero?
 237.168 --	extru,tr	%1,27,4,%1		; No.  Shift down, skip add.
 237.169 --	ldo		4(%0),%0		; Yes.  Perform add.
 237.170 --	extru,=		%1,29,2,%%r0		; Bits 3..2 zero?
 237.171 --	extru,tr	%1,29,2,%1		; No.  Shift down, skip add.
 237.172 --	ldo		2(%0),%0		; Yes.  Perform add.
 237.173 --	extru		%1,30,1,%1		; Extract bit 1.
 237.174 --	sub		%0,%1,%0		; Subtract it.
 237.175 --	" : "=r" (count), "=r" (__tmp) : "1" (x));			\
 237.176 -+       "ldi		1,%0\n"                                        \
 237.177 -+	"extru,=		%1,15,16,%%r0		; Bits 31..16 zero?\n"         \
 237.178 -+	"extru,tr	%1,15,16,%1		; No.  Shift down, skip add.\n"    \
 237.179 -+	"ldo		16(%0),%0		; Yes.  Perform add.\n"                \
 237.180 -+	"extru,=		%1,23,8,%%r0		; Bits 15..8 zero?\n"          \
 237.181 -+	"extru,tr	%1,23,8,%1		; No.  Shift down, skip add.\n"    \
 237.182 -+	"ldo		8(%0),%0		; Yes.  Perform add.\n"                \
 237.183 -+	"extru,=		%1,27,4,%%r0		; Bits 7..4 zero?\n"           \
 237.184 -+	"extru,tr	%1,27,4,%1		; No.  Shift down, skip add.\n"    \
 237.185 -+	"ldo		4(%0),%0		; Yes.  Perform add.\n"                \
 237.186 -+	"extru,=		%1,29,2,%%r0		; Bits 3..2 zero?\n"           \
 237.187 -+	"extru,tr	%1,29,2,%1		; No.  Shift down, skip add.\n"    \
 237.188 -+	"ldo		2(%0),%0		; Yes.  Perform add.\n"                \
 237.189 -+	"extru		%1,30,1,%1		; Extract bit 1.\n"                \
 237.190 -+	"sub		%0,%1,%0		; Subtract it.\n"                      \
 237.191 -+	: "=r" (count), "=r" (__tmp) : "1" (x));			\
 237.192 -   } while (0)
 237.193 - #endif
 237.194 - 
 237.195 -@@ -419,8 +419,8 @@
 237.196 - 
 237.197 - #if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
 237.198 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.199 --  __asm__ ("addl %5,%1
 237.200 --	adcl %3,%0"							\
 237.201 -+  __asm__ ("addl %5,%1\n"             \
 237.202 -+	"adcl %3,%0"							\
 237.203 - 	   : "=r" ((USItype) (sh)),					\
 237.204 - 	     "=&r" ((USItype) (sl))					\
 237.205 - 	   : "%0" ((USItype) (ah)),					\
 237.206 -@@ -428,8 +428,8 @@
 237.207 - 	     "%1" ((USItype) (al)),					\
 237.208 - 	     "g" ((USItype) (bl)))
 237.209 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.210 --  __asm__ ("subl %5,%1
 237.211 --	sbbl %3,%0"							\
 237.212 -+  __asm__ ("subl %5,%1\n"             \
 237.213 -+	"sbbl %3,%0"							\
 237.214 - 	   : "=r" ((USItype) (sh)),					\
 237.215 - 	     "=&r" ((USItype) (sl))					\
 237.216 - 	   : "0" ((USItype) (ah)),					\
 237.217 -@@ -525,9 +525,9 @@
 237.218 - #if defined (__M32R__) && W_TYPE_SIZE == 32
 237.219 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.220 -   /* The cmp clears the condition bit.  */ \
 237.221 --  __asm__ ("cmp %0,%0
 237.222 --	addx %%5,%1
 237.223 --	addx %%3,%0"							\
 237.224 -+  __asm__ ("cmp %0,%0\n"              \
 237.225 -+	"addx %%5,%1\n"                     \
 237.226 -+	"addx %%3,%0"							\
 237.227 - 	   : "=r" ((USItype) (sh)),					\
 237.228 - 	     "=&r" ((USItype) (sl))					\
 237.229 - 	   : "%0" ((USItype) (ah)),					\
 237.230 -@@ -537,9 +537,9 @@
 237.231 - 	   : "cbit")
 237.232 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.233 -   /* The cmp clears the condition bit.  */ \
 237.234 --  __asm__ ("cmp %0,%0
 237.235 --	subx %5,%1
 237.236 --	subx %3,%0"							\
 237.237 -+  __asm__ ("cmp %0,%0\n"              \
 237.238 -+	"subx %5,%1\n"                      \
 237.239 -+	"subx %3,%0"							\
 237.240 - 	   : "=r" ((USItype) (sh)),					\
 237.241 - 	     "=&r" ((USItype) (sl))					\
 237.242 - 	   : "0" ((USItype) (ah)),					\
 237.243 -@@ -551,8 +551,8 @@
 237.244 - 
 237.245 - #if defined (__mc68000__) && W_TYPE_SIZE == 32
 237.246 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.247 --  __asm__ ("add%.l %5,%1
 237.248 --	addx%.l %3,%0"							\
 237.249 -+  __asm__ ("add%.l %5,%1\n"           \
 237.250 -+	"addx%.l %3,%0"							\
 237.251 - 	   : "=d" ((USItype) (sh)),					\
 237.252 - 	     "=&d" ((USItype) (sl))					\
 237.253 - 	   : "%0" ((USItype) (ah)),					\
 237.254 -@@ -560,8 +560,8 @@
 237.255 - 	     "%1" ((USItype) (al)),					\
 237.256 - 	     "g" ((USItype) (bl)))
 237.257 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.258 --  __asm__ ("sub%.l %5,%1
 237.259 --	subx%.l %3,%0"							\
 237.260 -+  __asm__ ("sub%.l %5,%1\n"           \
 237.261 -+	"subx%.l %3,%0"							\
 237.262 - 	   : "=d" ((USItype) (sh)),					\
 237.263 - 	     "=&d" ((USItype) (sl))					\
 237.264 - 	   : "0" ((USItype) (ah)),					\
 237.265 -@@ -602,32 +602,32 @@
 237.266 - #if !defined(__mcf5200__)
 237.267 - /* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX.  */
 237.268 - #define umul_ppmm(xh, xl, a, b) \
 237.269 --  __asm__ ("| Inlined umul_ppmm
 237.270 --	move%.l	%2,%/d0
 237.271 --	move%.l	%3,%/d1
 237.272 --	move%.l	%/d0,%/d2
 237.273 --	swap	%/d0
 237.274 --	move%.l	%/d1,%/d3
 237.275 --	swap	%/d1
 237.276 --	move%.w	%/d2,%/d4
 237.277 --	mulu	%/d3,%/d4
 237.278 --	mulu	%/d1,%/d2
 237.279 --	mulu	%/d0,%/d3
 237.280 --	mulu	%/d0,%/d1
 237.281 --	move%.l	%/d4,%/d0
 237.282 --	eor%.w	%/d0,%/d0
 237.283 --	swap	%/d0
 237.284 --	add%.l	%/d0,%/d2
 237.285 --	add%.l	%/d3,%/d2
 237.286 --	jcc	1f
 237.287 --	add%.l	%#65536,%/d1
 237.288 --1:	swap	%/d2
 237.289 --	moveq	%#0,%/d0
 237.290 --	move%.w	%/d2,%/d0
 237.291 --	move%.w	%/d4,%/d2
 237.292 --	move%.l	%/d2,%1
 237.293 --	add%.l	%/d1,%/d0
 237.294 --	move%.l	%/d0,%0"						\
 237.295 -+  __asm__ ("| Inlined umul_ppmm\n"    \
 237.296 -+	"move%.l	%2,%/d0\n"                \
 237.297 -+	"move%.l	%3,%/d1\n"                \
 237.298 -+	"move%.l	%/d0,%/d2\n"              \
 237.299 -+	"swap	%/d0\n"                       \
 237.300 -+	"move%.l	%/d1,%/d3\n"              \
 237.301 -+	"swap	%/d1\n"                       \
 237.302 -+	"move%.w	%/d2,%/d4\n"              \
 237.303 -+	"mulu	%/d3,%/d4\n"                  \
 237.304 -+	"mulu	%/d1,%/d2\n"                  \
 237.305 -+	"mulu	%/d0,%/d3\n"                  \
 237.306 -+	"mulu	%/d0,%/d1\n"                  \
 237.307 -+	"move%.l	%/d4,%/d0\n"              \
 237.308 -+	"eor%.w	%/d0,%/d0\n"                \
 237.309 -+	"swap	%/d0\n"                       \
 237.310 -+	"add%.l	%/d0,%/d2\n"                \
 237.311 -+	"add%.l	%/d3,%/d2\n"                \
 237.312 -+	"jcc	1f\n"                         \
 237.313 -+	"add%.l	%#65536,%/d1\n"             \
 237.314 -+"1:	swap	%/d2\n"                     \
 237.315 -+	"moveq	%#0,%/d0\n"                 \
 237.316 -+	"move%.w	%/d2,%/d0\n"              \
 237.317 -+	"move%.w	%/d4,%/d2\n"              \
 237.318 -+	"move%.l	%/d2,%1\n"                \
 237.319 -+	"add%.l	%/d1,%/d0\n"                \
 237.320 -+	"move%.l	%/d0,%0"						\
 237.321 - 	   : "=g" ((USItype) (xh)),					\
 237.322 - 	     "=g" ((USItype) (xl))					\
 237.323 - 	   : "g" ((USItype) (a)),					\
 237.324 -@@ -653,8 +653,8 @@
 237.325 - 
 237.326 - #if defined (__m88000__) && W_TYPE_SIZE == 32
 237.327 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.328 --  __asm__ ("addu.co %1,%r4,%r5
 237.329 --	addu.ci %0,%r2,%r3"						\
 237.330 -+  __asm__ ("addu.co %1,%r4,%r5\n"     \
 237.331 -+	"addu.ci %0,%r2,%r3"						\
 237.332 - 	   : "=r" ((USItype) (sh)),					\
 237.333 - 	     "=&r" ((USItype) (sl))					\
 237.334 - 	   : "%rJ" ((USItype) (ah)),					\
 237.335 -@@ -662,8 +662,8 @@
 237.336 - 	     "%rJ" ((USItype) (al)),					\
 237.337 - 	     "rJ" ((USItype) (bl)))
 237.338 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.339 --  __asm__ ("subu.co %1,%r4,%r5
 237.340 --	subu.ci %0,%r2,%r3"						\
 237.341 -+  __asm__ ("subu.co %1,%r4,%r5\n"     \
 237.342 -+	"subu.ci %0,%r2,%r3"						\
 237.343 - 	   : "=r" ((USItype) (sh)),					\
 237.344 - 	     "=&r" ((USItype) (sl))					\
 237.345 - 	   : "rJ" ((USItype) (ah)),					\
 237.346 -@@ -880,8 +880,8 @@
 237.347 - 
 237.348 - #if defined (__pyr__) && W_TYPE_SIZE == 32
 237.349 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.350 --  __asm__ ("addw	%5,%1
 237.351 --	addwc	%3,%0"							\
 237.352 -+  __asm__ ("addw	%5,%1\n"            \
 237.353 -+	"addwc	%3,%0"							\
 237.354 - 	   : "=r" ((USItype) (sh)),					\
 237.355 - 	     "=&r" ((USItype) (sl))					\
 237.356 - 	   : "%0" ((USItype) (ah)),					\
 237.357 -@@ -889,8 +889,8 @@
 237.358 - 	     "%1" ((USItype) (al)),					\
 237.359 - 	     "g" ((USItype) (bl)))
 237.360 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.361 --  __asm__ ("subw	%5,%1
 237.362 --	subwb	%3,%0"							\
 237.363 -+  __asm__ ("subw	%5,%1\n"            \
 237.364 -+	"subwb	%3,%0"							\
 237.365 - 	   : "=r" ((USItype) (sh)),					\
 237.366 - 	     "=&r" ((USItype) (sl))					\
 237.367 - 	   : "0" ((USItype) (ah)),					\
 237.368 -@@ -902,8 +902,8 @@
 237.369 -   ({union {UDItype __ll;						\
 237.370 - 	   struct {USItype __h, __l;} __i;				\
 237.371 - 	  } __xx;							\
 237.372 --  __asm__ ("movw %1,%R0
 237.373 --	uemul %2,%0"							\
 237.374 -+  __asm__ ("movw %1,%R0\n"          \
 237.375 -+	"uemul %2,%0"							\
 237.376 - 	   : "=&r" (__xx.__ll)						\
 237.377 - 	   : "g" ((USItype) (u)),					\
 237.378 - 	     "g" ((USItype) (v)));					\
 237.379 -@@ -912,8 +912,8 @@
 237.380 - 
 237.381 - #if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
 237.382 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.383 --  __asm__ ("a %1,%5
 237.384 --	ae %0,%3"							\
 237.385 -+  __asm__ ("a %1,%5\n"                \
 237.386 -+	"ae %0,%3"							\
 237.387 - 	   : "=r" ((USItype) (sh)),					\
 237.388 - 	     "=&r" ((USItype) (sl))					\
 237.389 - 	   : "%0" ((USItype) (ah)),					\
 237.390 -@@ -921,8 +921,8 @@
 237.391 - 	     "%1" ((USItype) (al)),					\
 237.392 - 	     "r" ((USItype) (bl)))
 237.393 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.394 --  __asm__ ("s %1,%5
 237.395 --	se %0,%3"							\
 237.396 -+  __asm__ ("s %1,%5\n"                \
 237.397 -+	"se %0,%3"							\
 237.398 - 	   : "=r" ((USItype) (sh)),					\
 237.399 - 	     "=&r" ((USItype) (sl))					\
 237.400 - 	   : "0" ((USItype) (ah)),					\
 237.401 -@@ -933,26 +933,26 @@
 237.402 -   do {									\
 237.403 -     USItype __m0 = (m0), __m1 = (m1);					\
 237.404 -     __asm__ (								\
 237.405 --       "s	r2,r2
 237.406 --	mts	r10,%2
 237.407 --	m	r2,%3
 237.408 --	m	r2,%3
 237.409 --	m	r2,%3
 237.410 --	m	r2,%3
 237.411 --	m	r2,%3
 237.412 --	m	r2,%3
 237.413 --	m	r2,%3
 237.414 --	m	r2,%3
 237.415 --	m	r2,%3
 237.416 --	m	r2,%3
 237.417 --	m	r2,%3
 237.418 --	m	r2,%3
 237.419 --	m	r2,%3
 237.420 --	m	r2,%3
 237.421 --	m	r2,%3
 237.422 --	m	r2,%3
 237.423 --	cas	%0,r2,r0
 237.424 --	mfs	r10,%1"							\
 237.425 -+       "s	r2,r2\n"
 237.426 -+	"mts	r10,%2\n"                       \
 237.427 -+	"m	r2,%3\n"                          \
 237.428 -+	"m	r2,%3\n"                          \
 237.429 -+	"m	r2,%3\n"                          \
 237.430 -+	"m	r2,%3\n"                          \
 237.431 -+	"m	r2,%3\n"                          \
 237.432 -+	"m	r2,%3\n"                          \
 237.433 -+	"m	r2,%3\n"                          \
 237.434 -+	"m	r2,%3\n"                          \
 237.435 -+	"m	r2,%3\n"                          \
 237.436 -+	"m	r2,%3\n"                          \
 237.437 -+	"m	r2,%3\n"                          \
 237.438 -+	"m	r2,%3\n"                          \
 237.439 -+	"m	r2,%3\n"                          \
 237.440 -+	"m	r2,%3\n"                          \
 237.441 -+	"m	r2,%3\n"                          \
 237.442 -+	"m	r2,%3\n"                          \
 237.443 -+	"cas	%0,r2,r0\n"                     \
 237.444 -+	"mfs	r10,%1"							\
 237.445 - 	     : "=r" ((USItype) (ph)),					\
 237.446 - 	       "=r" ((USItype) (pl))					\
 237.447 - 	     : "%r" (__m0),						\
 237.448 -@@ -982,9 +982,9 @@
 237.449 - #if defined (__sh2__) && W_TYPE_SIZE == 32
 237.450 - #define umul_ppmm(w1, w0, u, v) \
 237.451 -   __asm__ (								\
 237.452 --       "dmulu.l	%2,%3
 237.453 --	sts	macl,%1
 237.454 --	sts	mach,%0"						\
 237.455 -+       "dmulu.l	%2,%3\n"            \
 237.456 -+	"sts	macl,%1\n"                  \
 237.457 -+	"sts	mach,%0"						\
 237.458 - 	   : "=r" ((USItype)(w1)),					\
 237.459 - 	     "=r" ((USItype)(w0))					\
 237.460 - 	   : "r" ((USItype)(u)),					\
 237.461 -@@ -996,8 +996,8 @@
 237.462 - #if defined (__sparc__) && !defined(__arch64__) \
 237.463 -     && !defined(__sparcv9) && W_TYPE_SIZE == 32
 237.464 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.465 --  __asm__ ("addcc %r4,%5,%1
 237.466 --	addx %r2,%3,%0"							\
 237.467 -+  __asm__ ("addcc %r4,%5,%1\n"        \
 237.468 -+	"addx %r2,%3,%0"							\
 237.469 - 	   : "=r" ((USItype) (sh)),					\
 237.470 - 	     "=&r" ((USItype) (sl))					\
 237.471 - 	   : "%rJ" ((USItype) (ah)),					\
 237.472 -@@ -1006,8 +1006,8 @@
 237.473 - 	     "rI" ((USItype) (bl))					\
 237.474 - 	   __CLOBBER_CC)
 237.475 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.476 --  __asm__ ("subcc %r4,%5,%1
 237.477 --	subx %r2,%3,%0"							\
 237.478 -+  __asm__ ("subcc %r4,%5,%1\n"        \
 237.479 -+	"subx %r2,%3,%0"							\
 237.480 - 	   : "=r" ((USItype) (sh)),					\
 237.481 - 	     "=&r" ((USItype) (sl))					\
 237.482 - 	   : "rJ" ((USItype) (ah)),					\
 237.483 -@@ -1040,45 +1040,45 @@
 237.484 - 	   : "r" ((USItype) (u)),					\
 237.485 - 	     "r" ((USItype) (v)))
 237.486 - #define udiv_qrnnd(q, r, n1, n0, d) \
 237.487 --  __asm__ ("! Inlined udiv_qrnnd
 237.488 --	wr	%%g0,%2,%%y	! Not a delayed write for sparclite
 237.489 --	tst	%%g0
 237.490 --	divscc	%3,%4,%%g1
 237.491 --	divscc	%%g1,%4,%%g1
 237.492 --	divscc	%%g1,%4,%%g1
 237.493 --	divscc	%%g1,%4,%%g1
 237.494 --	divscc	%%g1,%4,%%g1
 237.495 --	divscc	%%g1,%4,%%g1
 237.496 --	divscc	%%g1,%4,%%g1
 237.497 --	divscc	%%g1,%4,%%g1
 237.498 --	divscc	%%g1,%4,%%g1
 237.499 --	divscc	%%g1,%4,%%g1
 237.500 --	divscc	%%g1,%4,%%g1
 237.501 --	divscc	%%g1,%4,%%g1
 237.502 --	divscc	%%g1,%4,%%g1
 237.503 --	divscc	%%g1,%4,%%g1
 237.504 --	divscc	%%g1,%4,%%g1
 237.505 --	divscc	%%g1,%4,%%g1
 237.506 --	divscc	%%g1,%4,%%g1
 237.507 --	divscc	%%g1,%4,%%g1
 237.508 --	divscc	%%g1,%4,%%g1
 237.509 --	divscc	%%g1,%4,%%g1
 237.510 --	divscc	%%g1,%4,%%g1
 237.511 --	divscc	%%g1,%4,%%g1
 237.512 --	divscc	%%g1,%4,%%g1
 237.513 --	divscc	%%g1,%4,%%g1
 237.514 --	divscc	%%g1,%4,%%g1
 237.515 --	divscc	%%g1,%4,%%g1
 237.516 --	divscc	%%g1,%4,%%g1
 237.517 --	divscc	%%g1,%4,%%g1
 237.518 --	divscc	%%g1,%4,%%g1
 237.519 --	divscc	%%g1,%4,%%g1
 237.520 --	divscc	%%g1,%4,%%g1
 237.521 --	divscc	%%g1,%4,%0
 237.522 --	rd	%%y,%1
 237.523 --	bl,a 1f
 237.524 --	add	%1,%4,%1
 237.525 --1:	! End of inline udiv_qrnnd"					\
 237.526 -+  __asm__ ("! Inlined udiv_qrnnd\n"                      \
 237.527 -+	"wr	%%g0,%2,%%y	! Not a delayed write for sparclite\n" \
 237.528 -+	"tst	%%g0\n"                                          \
 237.529 -+	"divscc	%3,%4,%%g1\n"                                  \
 237.530 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.531 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.532 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.533 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.534 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.535 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.536 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.537 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.538 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.539 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.540 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.541 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.542 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.543 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.544 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.545 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.546 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.547 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.548 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.549 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.550 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.551 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.552 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.553 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.554 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.555 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.556 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.557 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.558 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.559 -+	"divscc	%%g1,%4,%%g1\n"                                \
 237.560 -+	"divscc	%%g1,%4,%0\n"                                  \
 237.561 -+	"rd	%%y,%1\n"                                          \
 237.562 -+	"bl,a 1f\n"                                            \
 237.563 -+	"add	%1,%4,%1\n"                                      \
 237.564 -+"1:	! End of inline udiv_qrnnd"					\
 237.565 - 	   : "=r" ((USItype) (q)),					\
 237.566 - 	     "=r" ((USItype) (r))					\
 237.567 - 	   : "r" ((USItype) (n1)),					\
 237.568 -@@ -1099,46 +1099,46 @@
 237.569 - /* SPARC without integer multiplication and divide instructions.
 237.570 -    (i.e. at least Sun4/20,40,60,65,75,110,260,280,330,360,380,470,490) */
 237.571 - #define umul_ppmm(w1, w0, u, v) \
 237.572 --  __asm__ ("! Inlined umul_ppmm
 237.573 --	wr	%%g0,%2,%%y	! SPARC has 0-3 delay insn after a wr
 237.574 --	sra	%3,31,%%o5	! Don't move this insn
 237.575 --	and	%2,%%o5,%%o5	! Don't move this insn
 237.576 --	andcc	%%g0,0,%%g1	! Don't move this insn
 237.577 --	mulscc	%%g1,%3,%%g1
 237.578 --	mulscc	%%g1,%3,%%g1
 237.579 --	mulscc	%%g1,%3,%%g1
 237.580 --	mulscc	%%g1,%3,%%g1
 237.581 --	mulscc	%%g1,%3,%%g1
 237.582 --	mulscc	%%g1,%3,%%g1
 237.583 --	mulscc	%%g1,%3,%%g1
 237.584 --	mulscc	%%g1,%3,%%g1
 237.585 --	mulscc	%%g1,%3,%%g1
 237.586 --	mulscc	%%g1,%3,%%g1
 237.587 --	mulscc	%%g1,%3,%%g1
 237.588 --	mulscc	%%g1,%3,%%g1
 237.589 --	mulscc	%%g1,%3,%%g1
 237.590 --	mulscc	%%g1,%3,%%g1
 237.591 --	mulscc	%%g1,%3,%%g1
 237.592 --	mulscc	%%g1,%3,%%g1
 237.593 --	mulscc	%%g1,%3,%%g1
 237.594 --	mulscc	%%g1,%3,%%g1
 237.595 --	mulscc	%%g1,%3,%%g1
 237.596 --	mulscc	%%g1,%3,%%g1
 237.597 --	mulscc	%%g1,%3,%%g1
 237.598 --	mulscc	%%g1,%3,%%g1
 237.599 --	mulscc	%%g1,%3,%%g1
 237.600 --	mulscc	%%g1,%3,%%g1
 237.601 --	mulscc	%%g1,%3,%%g1
 237.602 --	mulscc	%%g1,%3,%%g1
 237.603 --	mulscc	%%g1,%3,%%g1
 237.604 --	mulscc	%%g1,%3,%%g1
 237.605 --	mulscc	%%g1,%3,%%g1
 237.606 --	mulscc	%%g1,%3,%%g1
 237.607 --	mulscc	%%g1,%3,%%g1
 237.608 --	mulscc	%%g1,%3,%%g1
 237.609 --	mulscc	%%g1,0,%%g1
 237.610 --	add	%%g1,%%o5,%0
 237.611 --	rd	%%y,%1"							\
 237.612 -+  __asm__ ("! Inlined umul_ppmm\n"                         \
 237.613 -+	"wr	%%g0,%2,%%y	! SPARC has 0-3 delay insn after a wr\n" \
 237.614 -+	"sra	%3,31,%%o5	! Don't move this insn\n"              \
 237.615 -+	"and	%2,%%o5,%%o5	! Don't move this insn\n"            \
 237.616 -+	"andcc	%%g0,0,%%g1	! Don't move this insn\n"            \
 237.617 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.618 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.619 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.620 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.621 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.622 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.623 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.624 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.625 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.626 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.627 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.628 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.629 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.630 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.631 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.632 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.633 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.634 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.635 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.636 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.637 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.638 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.639 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.640 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.641 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.642 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.643 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.644 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.645 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.646 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.647 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.648 -+	"mulscc	%%g1,%3,%%g1\n"                                  \
 237.649 -+	"mulscc	%%g1,0,%%g1\n"                                   \
 237.650 -+	"add	%%g1,%%o5,%0\n"                                    \
 237.651 -+	"rd	%%y,%1"							\
 237.652 - 	   : "=r" ((USItype) (w1)),					\
 237.653 - 	     "=r" ((USItype) (w0))					\
 237.654 - 	   : "%rI" ((USItype) (u)),					\
 237.655 -@@ -1148,30 +1148,30 @@
 237.656 - /* It's quite necessary to add this much assembler for the sparc.
 237.657 -    The default udiv_qrnnd (in C) is more than 10 times slower!  */
 237.658 - #define udiv_qrnnd(q, r, n1, n0, d) \
 237.659 --  __asm__ ("! Inlined udiv_qrnnd
 237.660 --	mov	32,%%g1
 237.661 --	subcc	%1,%2,%%g0
 237.662 --1:	bcs	5f
 237.663 --	 addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb
 237.664 --	sub	%1,%2,%1	! this kills msb of n
 237.665 --	addx	%1,%1,%1	! so this can't give carry
 237.666 --	subcc	%%g1,1,%%g1
 237.667 --2:	bne	1b
 237.668 --	 subcc	%1,%2,%%g0
 237.669 --	bcs	3f
 237.670 --	 addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb
 237.671 --	b	3f
 237.672 --	 sub	%1,%2,%1	! this kills msb of n
 237.673 --4:	sub	%1,%2,%1
 237.674 --5:	addxcc	%1,%1,%1
 237.675 --	bcc	2b
 237.676 --	 subcc	%%g1,1,%%g1
 237.677 --! Got carry from n.  Subtract next step to cancel this carry.
 237.678 --	bne	4b
 237.679 --	 addcc	%0,%0,%0	! shift n1n0 and a 0-bit in lsb
 237.680 --	sub	%1,%2,%1
 237.681 --3:	xnor	%0,0,%0
 237.682 --	! End of inline udiv_qrnnd"					\
 237.683 -+  __asm__ ("! Inlined udiv_qrnnd\n"                                 \
 237.684 -+	"mov	32,%%g1\n"                                                  \
 237.685 -+	"subcc	%1,%2,%%g0\n"                                             \
 237.686 -+"1:	bcs	5f\n"                                                       \
 237.687 -+	 "addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb\n"              \
 237.688 -+	"sub	%1,%2,%1	! this kills msb of n\n"                          \
 237.689 -+	"addx	%1,%1,%1	! so this can't give carry\n"                     \
 237.690 -+	"subcc	%%g1,1,%%g1\n"                                            \
 237.691 -+"2:	bne	1b\n"                                                       \
 237.692 -+	 "subcc	%1,%2,%%g0\n"                                             \
 237.693 -+	"bcs	3f\n"                                                       \
 237.694 -+	 "addxcc %0,%0,%0	! shift n1n0 and a q-bit in lsb\n"              \
 237.695 -+	"b	3f\n"                                                         \
 237.696 -+	 "sub	%1,%2,%1	! this kills msb of n\n"                          \
 237.697 -+"4:	sub	%1,%2,%1\n"                                                 \
 237.698 -+"5:	addxcc	%1,%1,%1\n"                                             \
 237.699 -+	"bcc	2b\n"                                                       \
 237.700 -+	 "subcc	%%g1,1,%%g1\n"                                            \
 237.701 -+"! Got carry from n.  Subtract next step to cancel this carry.\n"   \
 237.702 -+	"bne	4b\n"                                                       \
 237.703 -+	 "addcc	%0,%0,%0	! shift n1n0 and a 0-bit in lsb\n"              \
 237.704 -+	"sub	%1,%2,%1\n"                                                 \
 237.705 -+"3:	xnor	%0,0,%0\n"                                                \
 237.706 -+	"! End of inline udiv_qrnnd"					\
 237.707 - 	   : "=&r" ((USItype) (q)),					\
 237.708 - 	     "=&r" ((USItype) (r))					\
 237.709 - 	   : "r" ((USItype) (d)),					\
 237.710 -@@ -1185,11 +1185,11 @@
 237.711 - #if ((defined (__sparc__) && defined (__arch64__)) \
 237.712 -      || defined (__sparcv9)) && W_TYPE_SIZE == 64
 237.713 - #define add_ssaaaa(sh, sl, ah, al, bh, bl)				\
 237.714 --  __asm__ ("addcc %r4,%5,%1
 237.715 --  	    add %r2,%3,%0
 237.716 --  	    bcs,a,pn %%xcc, 1f
 237.717 --  	    add %0, 1, %0
 237.718 --  	    1:"								\
 237.719 -+  __asm__ ("addcc %r4,%5,%1\n"            \
 237.720 -+  	    "add %r2,%3,%0\n"                 \
 237.721 -+  	    "bcs,a,pn %%xcc, 1f\n"            \
 237.722 -+  	    "add %0, 1, %0\n"                 \
 237.723 -+  	    "1:"								\
 237.724 - 	   : "=r" ((UDItype)(sh)),				      	\
 237.725 - 	     "=&r" ((UDItype)(sl))				      	\
 237.726 - 	   : "%rJ" ((UDItype)(ah)),				     	\
 237.727 -@@ -1199,11 +1199,11 @@
 237.728 - 	   __CLOBBER_CC)
 237.729 - 
 237.730 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) 				\
 237.731 --  __asm__ ("subcc %r4,%5,%1
 237.732 --  	    sub %r2,%3,%0
 237.733 --  	    bcs,a,pn %%xcc, 1f
 237.734 --  	    sub %0, 1, %0
 237.735 --  	    1:"								\
 237.736 -+  __asm__ ("subcc %r4,%5,%1\n"            \
 237.737 -+  	    "sub %r2,%3,%0\n"                 \
 237.738 -+  	    "bcs,a,pn %%xcc, 1f\n"            \
 237.739 -+  	    "sub %0, 1, %0\n"                 \
 237.740 -+  	    "1:"								\
 237.741 - 	   : "=r" ((UDItype)(sh)),				      	\
 237.742 - 	     "=&r" ((UDItype)(sl))				      	\
 237.743 - 	   : "rJ" ((UDItype)(ah)),				     	\
 237.744 -@@ -1216,27 +1216,27 @@
 237.745 -   do {									\
 237.746 - 	  UDItype tmp1, tmp2, tmp3, tmp4;				\
 237.747 - 	  __asm__ __volatile__ (					\
 237.748 --		   "srl %7,0,%3
 237.749 --		    mulx %3,%6,%1
 237.750 --		    srlx %6,32,%2
 237.751 --		    mulx %2,%3,%4
 237.752 --		    sllx %4,32,%5
 237.753 --		    srl %6,0,%3
 237.754 --		    sub %1,%5,%5
 237.755 --		    srlx %5,32,%5
 237.756 --		    addcc %4,%5,%4
 237.757 --		    srlx %7,32,%5
 237.758 --		    mulx %3,%5,%3
 237.759 --		    mulx %2,%5,%5
 237.760 --		    sethi %%hi(0x80000000),%2
 237.761 --		    addcc %4,%3,%4
 237.762 --		    srlx %4,32,%4
 237.763 --		    add %2,%2,%2
 237.764 --		    movcc %%xcc,%%g0,%2
 237.765 --		    addcc %5,%4,%5
 237.766 --		    sllx %3,32,%3
 237.767 --		    add %1,%3,%1
 237.768 --		    add %5,%2,%0"					\
 237.769 -+		   "srl %7,0,%3\n"                     \
 237.770 -+		    "mulx %3,%6,%1\n"                  \
 237.771 -+		    "srlx %6,32,%2\n"                  \
 237.772 -+		    "mulx %2,%3,%4\n"                  \
 237.773 -+		    "sllx %4,32,%5\n"                  \
 237.774 -+		    "srl %6,0,%3\n"                    \
 237.775 -+		    "sub %1,%5,%5\n"                   \
 237.776 -+		    "srlx %5,32,%5\n"                  \
 237.777 -+		    "addcc %4,%5,%4\n"                 \
 237.778 -+		    "srlx %7,32,%5\n"                  \
 237.779 -+		    "mulx %3,%5,%3\n"                  \
 237.780 -+		    "mulx %2,%5,%5\n"                  \
 237.781 -+		    "sethi %%hi(0x80000000),%2\n"      \
 237.782 -+		    "addcc %4,%3,%4\n"                 \
 237.783 -+		    "srlx %4,32,%4\n"                  \
 237.784 -+		    "add %2,%2,%2\n"                   \
 237.785 -+		    "movcc %%xcc,%%g0,%2\n"            \
 237.786 -+		    "addcc %5,%4,%5\n"                 \
 237.787 -+		    "sllx %3,32,%3\n"                  \
 237.788 -+		    "add %1,%3,%1\n"                   \
 237.789 -+		    "add %5,%2,%0"					\
 237.790 - 	   : "=r" ((UDItype)(wh)),					\
 237.791 - 	     "=&r" ((UDItype)(wl)),					\
 237.792 - 	     "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4)	\
 237.793 -@@ -1250,8 +1250,8 @@
 237.794 - 
 237.795 - #if defined (__vax__) && W_TYPE_SIZE == 32
 237.796 - #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 237.797 --  __asm__ ("addl2 %5,%1
 237.798 --	adwc %3,%0"							\
 237.799 -+  __asm__ ("addl2 %5,%1\n"            \
 237.800 -+	"adwc %3,%0"							\
 237.801 - 	   : "=g" ((USItype) (sh)),					\
 237.802 - 	     "=&g" ((USItype) (sl))					\
 237.803 - 	   : "%0" ((USItype) (ah)),					\
 237.804 -@@ -1259,8 +1259,8 @@
 237.805 - 	     "%1" ((USItype) (al)),					\
 237.806 - 	     "g" ((USItype) (bl)))
 237.807 - #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
 237.808 --  __asm__ ("subl2 %5,%1
 237.809 --	sbwc %3,%0"							\
 237.810 -+  __asm__ ("subl2 %5,%1\n"            \
 237.811 -+	"sbwc %3,%0"							\
 237.812 - 	   : "=g" ((USItype) (sh)),					\
 237.813 - 	     "=&g" ((USItype) (sl))					\
 237.814 - 	   : "0" ((USItype) (ah)),					\
   238.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-export_fp_hw.patch	Tue Aug 14 19:32:22 2007 +0000
   238.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   238.3 @@ -1,30 +0,0 @@
   238.4 -Fixes undefined symbol _fp_hw required by the ABI:
   238.5 -readelf -s /opt/crosstool/i686-pc-linux-gnu/i686-unknown-linux-gnu/gcc-3.4.3-glibc-2.2.2/i686-unknown-linux-gnu/lib/crt1.o | grep fp_hw
   238.6 -    29: 00000000     4 NOTYPE  GLOBAL DEFAULT  UND _fp_hw 
   238.7 -Rumored to fix problems with icc, which gets upset at any symbol
   238.8 -which is undefined, even if nobody cares about it.
   238.9 -
  238.10 -Revision 1.16, Thu Feb 22 19:57:34 2001 UTC (4 years, 2 months ago) by drepper
  238.11 -Branch: MAIN
  238.12 -CVS Tags: glibc-2_2_3
  238.13 -Changes since 1.15: +1 -1 lines
  238.14 -Diff to previous 1.15 (colored)
  238.15 -
  238.16 -(_fp_hw): Actually define label.
  238.17 -
  238.18 -===================================================================
  238.19 -RCS file: /cvs/glibc/libc/sysdeps/i386/elf/start.S,v
  238.20 -retrieving revision 1.15
  238.21 -retrieving revision 1.16
  238.22 -diff -u -r1.15 -r1.16
  238.23 ---- libc/sysdeps/i386/elf/start.S	2001/02/03 21:34:54	1.15
  238.24 -+++ libc/sysdeps/i386/elf/start.S	2001/02/22 19:57:34	1.16
  238.25 -@@ -85,7 +85,7 @@
  238.26 -    meaningless since we don't support machines < 80386.  */
  238.27 - 	.section .rodata
  238.28 - 	.globl _fp_hw
  238.29 --	.long 3
  238.30 -+_fp_hw:	.long 3
  238.31 - 	.size _fp_hw, 4
  238.32 - 
  238.33 - /* Define a symbol for the first piece of initialized data.  */
   239.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-printf-not-macro.patch	Tue Aug 14 19:32:22 2007 +0000
   239.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   239.3 @@ -1,36 +0,0 @@
   239.4 -I'm testing toolchains with glibc-2.2.2 now.  It looks ok except
   239.5 -that glibc-2.2.2 headers contain the gosh-awful line
   239.6 -  #  define printf(fmt, args...) fprintf (stdout, fmt, ##args)
   239.7 -which causes builds of programs with methods named 'printf' to fail with
   239.8 -  error: `stdout' is not a type
   239.9 -Feh.
  239.10 -
  239.11 -Revision 1.8, Thu Aug 2 16:09:51 2001 UTC (3 years, 9 months ago) by aj
  239.12 -Branch: MAIN
  239.13 -CVS Tags: glibc-2_3_2, glibc-2_2_4, glibc-2-3-1, glibc-2-3, glibc-2-2-branch, glibc-2-2-5
  239.14 -
  239.15 -(printf): Remove printf optimization since GCC 3.0 can optimize printf.
  239.16 -
  239.17 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/libio/bits/stdio.h.diff?r1=1.7&r2=1.8&cvsroot=glibc
  239.18 -
  239.19 -===================================================================
  239.20 -RCS file: /cvs/glibc/libc/libio/bits/stdio.h,v
  239.21 -retrieving revision 1.7
  239.22 -retrieving revision 1.8
  239.23 -diff -u -r1.7 -r1.8
  239.24 ---- libc/libio/bits/stdio.h	2001/07/06 04:55:32	1.7
  239.25 -+++ libc/libio/bits/stdio.h	2001/08/02 16:09:51	1.8
  239.26 -@@ -29,13 +29,6 @@
  239.27 - 
  239.28 - 
  239.29 - #ifdef __USE_EXTERN_INLINES
  239.30 --/* Since version 2.97 GCC knows about `fprintf' and can optimize certain
  239.31 --   cases.  Help gcc to optimize more code by mapping `printf' to the known
  239.32 --   `fprintf' function.  Unfortunately we have to use a macro.  */
  239.33 --# if __GNUC_PREREQ (2,97)
  239.34 --#  define printf(fmt, args...) fprintf (stdout, fmt, ##args)
  239.35 --# endif
  239.36 --
  239.37 - /* Write formatted output to stdout from argument list ARG.  */
  239.38 - __STDIO_INLINE int
  239.39 - vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
   240.1 --- a/patches/glibc/2.2.2/glibc-2.2.2-syslog-bugfix.patch	Tue Aug 14 19:32:22 2007 +0000
   240.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   240.3 @@ -1,60 +0,0 @@
   240.4 -Backport a bugfix from glibc-2.2.5 to glibc-2.2.2 for the following problem:
   240.5 -  When syslog-ng is restarted (or HUPed), vixie-cron (and probably other
   240.6 -  programs) stop logging to syslog.
   240.7 -
   240.8 -
   240.9 -2001-08-27 Ulrich Drepper <Drepper@redhat.com> * misc/syslog.c (vsyslog):
  240.10 -  Try a bit harder to use syslogd.  If the connection went down after we
  240.11 -  first used it try to connect again and resend the message before printing
  240.12 -  to the console.
  240.13 -
  240.14 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/misc/Attic/syslog.c.diff?r1=1.32&r2=1.30&cvsroot=glibc
  240.15 -[ paths adjusted ]
  240.16 -
  240.17 -===================================================================
  240.18 -RCS file: /cvs/glibc/libc/misc/Attic/syslog.c,v
  240.19 -retrieving revision 1.30
  240.20 -retrieving revision 1.32
  240.21 -diff -u -r1.30 -r1.32
  240.22 ---- glibc-2.2.2/misc/syslog.c	2001/08/24 03:21:14	1.30
  240.23 -+++ glibc-2.2.5/misc/syslog.c	2001/08/30 23:13:49	1.32
  240.24 -@@ -239,17 +239,29 @@
  240.25 - 
  240.26 - 	if (!connected || __send(LogFile, buf, bufsize, 0) < 0)
  240.27 - 	  {
  240.28 --	    closelog_internal ();	/* attempt re-open next time */
  240.29 --	    /*
  240.30 --	     * Output the message to the console; don't worry about blocking,
  240.31 --	     * if console blocks everything will.  Make sure the error reported
  240.32 --	     * is the one from the syslogd failure.
  240.33 --	     */
  240.34 --	    if (LogStat & LOG_CONS &&
  240.35 --		(fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0)
  240.36 -+	    if (connected)
  240.37 - 	      {
  240.38 --		dprintf (fd, "%s\r\n", buf + msgoff);
  240.39 --		(void)__close(fd);
  240.40 -+		/* Try to reopen the syslog connection.  Maybe it went
  240.41 -+		   down.  */
  240.42 -+		closelog_internal ();
  240.43 -+		openlog_internal(LogTag, LogStat | LOG_NDELAY, 0);
  240.44 -+	      }
  240.45 -+
  240.46 -+	    if (!connected || __send(LogFile, buf, bufsize, 0) < 0)
  240.47 -+	      {
  240.48 -+		closelog_internal ();	/* attempt re-open next time */
  240.49 -+		/*
  240.50 -+		 * Output the message to the console; don't worry
  240.51 -+		 * about blocking, if console blocks everything will.
  240.52 -+		 * Make sure the error reported is the one from the
  240.53 -+		 * syslogd failure.
  240.54 -+		 */
  240.55 -+		if (LogStat & LOG_CONS &&
  240.56 -+		    (fd = __open(_PATH_CONSOLE, O_WRONLY|O_NOCTTY, 0)) >= 0)
  240.57 -+		  {
  240.58 -+		    dprintf (fd, "%s\r\n", buf + msgoff);
  240.59 -+		    (void)__close(fd);
  240.60 -+		  }
  240.61 - 	      }
  240.62 - 	  }
  240.63 - 
   241.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-alpha-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   241.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   241.3 @@ -1,58 +0,0 @@
   241.4 -Fix for this error:
   241.5 -
   241.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
   241.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
   241.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
   241.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
  241.10 -make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
  241.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
  241.12 -make[1]: *** [posix/subdir_lib] Error 2
  241.13 -make[1]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5'
  241.14 -make: *** [all] Error 2
  241.15 -
  241.16 -[ Same as glibc-2.3.2-alpha-pwrite.patch except for copyright date ]
  241.17 -
  241.18 -extracted from GLIBC CVS by Dan Kegel
  241.19 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
  241.20 -(to match context of...)
  241.21 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
  241.22 -and rediffed.
  241.23 -
  241.24 -cf. 
  241.25 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
  241.26 -
  241.27 -Originally thought we needed this hunk, too:
  241.28 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
  241.29 -but it seems the sysdep.h change is sufficient, and works better 
  241.30 -when compiling against linux-2.4.
  241.31 -
  241.32 -===================================================================
  241.33 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old	2004-05-24 22:21:44.000000000 -0700
  241.34 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h	2004-05-24 22:22:48.000000000 -0700
  241.35 -@@ -1,3 +1,3 @@
  241.36 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
  241.37 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
  241.38 -    This file is part of the GNU C Library.
  241.39 -    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
  241.40 -@@ -60,6 +60,21 @@
  241.41 - #define __NR_osf_getsysinfo	256
  241.42 - #define __NR_osf_setsysinfo	257
  241.43 - 
  241.44 -+/* Help old kernel headers where particular syscalls are not available.  */
  241.45 -+#ifndef __NR_semtimedop
  241.46 -+# define __NR_semtimedop	423
  241.47 -+#endif
  241.48 -+
  241.49 -+/* This is a kludge to make syscalls.list find these under the names
  241.50 -+   pread and pwrite, since some kernel headers define those names
  241.51 -+   and some define the *64 names for the same system calls.  */
  241.52 -+#if !defined __NR_pread && defined __NR_pread64
  241.53 -+# define __NR_pread __NR_pread64
  241.54 -+#endif
  241.55 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  241.56 -+# define __NR_pwrite __NR_pwrite64
  241.57 -+#endif
  241.58 -+
  241.59 - /*
  241.60 -  * In order to get the hidden arguments for rt_sigaction set up
  241.61 -  * properly, we need to call the assembly version.  Detect this in the
   242.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-arm-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   242.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   242.3 @@ -1,30 +0,0 @@
   242.4 -Should fix
   242.5 -
   242.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
   242.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
   242.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
   242.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
  242.10 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
  242.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
  242.12 -make[1]: *** [posix/subdir_lib] Error 2
  242.13 -
  242.14 -Copied from similar patch for alpha.
  242.15 -
  242.16 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/arm/sysdep.h	2001-07-05 21:56:13.000000000 -0700
  242.17 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h	2004-08-07 10:45:26.000000000 -0700
  242.18 -@@ -32,6 +32,15 @@
  242.19 - #define SWI_BASE  (0x900000)
  242.20 - #define SYS_ify(syscall_name)	(__NR_##syscall_name)
  242.21 - 
  242.22 -+/* This is a kludge to make syscalls.list find these under the names
  242.23 -+   pread and pwrite, since some kernel headers define those names
  242.24 -+   and some define the *64 names for the same system calls.  */
  242.25 -+#if !defined __NR_pread && defined __NR_pread64
  242.26 -+# define __NR_pread __NR_pread64
  242.27 -+#endif
  242.28 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  242.29 -+# define __NR_pwrite __NR_pwrite64
  242.30 -+#endif
  242.31 - 
  242.32 - #ifdef __ASSEMBLER__
  242.33 - 
   243.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-i386-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   243.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   243.3 @@ -1,20 +0,0 @@
   243.4 -diff -urN glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h
   243.5 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h	2001-07-06 06:56:16.000000000 +0200
   243.6 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h	2004-09-03 12:35:44.000000000 +0200
   243.7 -@@ -36,6 +36,16 @@
   243.8 - #undef L
   243.9 - #define L(name)	.L##name
  243.10 - 
  243.11 -+/* This is a kludge to make syscalls.list find these under the names
  243.12 -+ *    pread and pwrite, since some kernel headers define those names
  243.13 -+ *       and some define the *64 names for the same system calls.  */
  243.14 -+#if !defined __NR_pread && defined __NR_pread64
  243.15 -+# define __NR_pread __NR_pread64
  243.16 -+#endif
  243.17 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  243.18 -+# define __NR_pwrite __NR_pwrite64
  243.19 -+#endif
  243.20 -+
  243.21 - #ifdef __ASSEMBLER__
  243.22 - 
  243.23 - /* Linux uses a negative return value to indicate syscall errors,
   244.1 --- a/patches/glibc/2.2.2/glibc-2.2.5-m68k-pwrite.patch	Tue Aug 14 19:32:22 2007 +0000
   244.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   244.3 @@ -1,32 +0,0 @@
   244.4 -Copied from similar patch for other architectures.
   244.5 -
   244.6 -Should fix this error:
   244.7 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
   244.8 -../sysdeps/unix/sysv/linux/pread.c:53: `__NR_pread' undeclared (first use in this function)
   244.9 -../sysdeps/unix/sysv/linux/pread.c:53: (Each undeclared identifier is reported only once
  244.10 -../sysdeps/unix/sysv/linux/pread.c:53: for each function it appears in.)
  244.11 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
  244.12 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5/posix'
  244.13 -make[1]: *** [posix/subdir_lib] Error 2
  244.14 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5'
  244.15 -make: *** [all] Error 2
  244.16 -
  244.17 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h.old	2004-10-05 08:37:37.000000000 -0700
  244.18 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h	2004-10-05 08:38:22.000000000 -0700
  244.19 -@@ -32,6 +32,16 @@
  244.20 - # define SYS_ify(syscall_name)	__NR_/**/syscall_name
  244.21 - #endif
  244.22 - 
  244.23 -+/* This is a kludge to make syscalls.list find these under the names
  244.24 -+   pread and pwrite, since some kernel headers define those names
  244.25 -+   and some define the *64 names for the same system calls.  */
  244.26 -+#if !defined __NR_pread && defined __NR_pread64
  244.27 -+# define __NR_pread __NR_pread64
  244.28 -+#endif
  244.29 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  244.30 -+# define __NR_pwrite __NR_pwrite64
  244.31 -+#endif
  244.32 -+
  244.33 - #ifdef __ASSEMBLER__
  244.34 - 
  244.35 - /* Linux uses a negative return value to indicate syscall errors, unlike
   245.1 --- a/patches/glibc/2.2.2/glibc-manual-stdin.texi-1.127.patch	Tue Aug 14 19:32:22 2007 +0000
   245.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   245.3 @@ -1,18 +0,0 @@
   245.4 -===================================================================
   245.5 -RCS file: /cvs/glibc/libc/manual/stdio.texi,v
   245.6 -retrieving revision 1.126
   245.7 -retrieving revision 1.127
   245.8 -diff -u -r1.126 -r1.127
   245.9 ---- libc/manual/stdio.texi	2001/06/06 07:11:31	1.126
  245.10 -+++ libc/manual/stdio.texi	2001/07/31 18:57:16	1.127
  245.11 -@@ -3265,8 +3265,8 @@
  245.12 - If you are trying to read input that doesn't match a single, fixed
  245.13 - pattern, you may be better off using a tool such as Flex to generate a
  245.14 - lexical scanner, or Bison to generate a parser, rather than using
  245.15 --@code{scanf}.  For more information about these tools, see @ref{, , ,
  245.16 --flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , ,
  245.17 -+@code{scanf}.  For more information about these tools, see @ref{Top, , ,
  245.18 -+flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , ,
  245.19 - bison.info, The Bison Reference Manual}.
  245.20 - 
  245.21 - @node Input Conversion Syntax
   246.1 --- a/patches/glibc/2.2.2/glibc-nss-noopt.patch	Tue Aug 14 19:32:22 2007 +0000
   246.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   246.3 @@ -1,26 +0,0 @@
   246.4 ---- glibc-2.2.2/nss/Makefile.orig	Tue May 20 16:02:47 2003
   246.5 -+++ glibc-2.2.2/nss/Makefile	Tue May 20 16:03:52 2003
   246.6 -@@ -41,6 +41,10 @@
   246.7 - 
   246.8 - tests			= test-netdb
   246.9 - 
  246.10 -+# Disable optimization when building nss to avoid crash described in
  246.11 -+# http://gcc.gnu.org/ml/gcc-bugs/1998-06/msg00168.html
  246.12 -+default_cflags := -g -O0
  246.13 -+
  246.14 - include ../Makeconfig
  246.15 - 
  246.16 - ifeq (yes,$(build-static-nss))
  246.17 ---- glibc-2.2.2/locale/Makefile.orig	Tue May 20 17:29:11 2003
  246.18 -+++ glibc-2.2.2/locale/Makefile	Tue May 20 17:29:39 2003
  246.19 -@@ -66,6 +66,10 @@
  246.20 - GPERF = gperf
  246.21 - GPERFFLAGS = -acCgopt -k1,2,5,9,$$ -L ANSI-C
  246.22 - 
  246.23 -+# Disable optimization when building locale or nss to avoid crash described in
  246.24 -+# http://gcc.gnu.org/ml/gcc-bugs/1998-06/msg00168.html
  246.25 -+default_cflags := -g -O0
  246.26 -+
  246.27 - include ../Rules
  246.28 - 
  246.29 - programs/%-kw.h: programs/%-kw.gperf
   247.1 --- a/patches/glibc/2.2.2/tst-pathopt-cross.patch	Tue Aug 14 19:32:22 2007 +0000
   247.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   247.3 @@ -1,23 +0,0 @@
   247.4 -Fixes error
   247.5 -tst-pathopt.sh: /crosstool-0.20/build/powerpc-750-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-glibc/elf/ld.so: cannot execute binary file
   247.6 -make[2]: *** [/crosstool-0.20/build/powerpc-750-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-glibc/elf/tst-pathopt.out] Error 126
   247.7 -See also http://sources.redhat.com/ml/libc-alpha/2001-03/msg00113.html
   247.8 -
   247.9 -===================================================================
  247.10 -RCS file: /cvs/glibc/libc/elf/Makefile,v
  247.11 -retrieving revision 1.196
  247.12 -retrieving revision 1.197
  247.13 -diff -u -r1.196 -r1.197
  247.14 ---- libc/elf/Makefile	2001/03/16 07:29:45	1.196
  247.15 -+++ libc/elf/Makefile	2001/03/25 04:57:51	1.197
  247.16 -@@ -246,8 +246,10 @@
  247.17 - generated += $(addsuffix .so,$(strip $(modules-names)))
  247.18 - 
  247.19 - ifeq (yes,$(build-shared))
  247.20 -+ifeq ($(cross-compiling),no)
  247.21 - tests: $(objpfx)tst-pathopt.out
  247.22 - endif
  247.23 -+endif
  247.24 - 
  247.25 - $(objpfx)testobj1.so: $(libdl)
  247.26 - $(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
   248.1 --- a/patches/glibc/2.2.3/errlist-1.9.patch	Tue Aug 14 19:32:22 2007 +0000
   248.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   248.3 @@ -1,30 +0,0 @@
   248.4 -Fixes:
   248.5 -
   248.6 -../sysdeps/unix/sysv/linux/errlist.c:41: weak declaration of `_old_sys_nerr' must precede definition
   248.7 -make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/stdio-common/errlist.os] Error 1
   248.8 -
   248.9 -===================================================================
  248.10 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/Attic/errlist.c,v
  248.11 -retrieving revision 1.8
  248.12 -retrieving revision 1.9
  248.13 -diff -u -r1.8 -r1.9
  248.14 ---- libc/sysdeps/unix/sysv/linux/errlist.c	2001/07/06 04:56:12	1.8
  248.15 -+++ libc/sysdeps/unix/sysv/linux/errlist.c	2002/05/20 06:56:53	1.9
  248.16 -@@ -1,4 +1,4 @@
  248.17 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
  248.18 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
  248.19 -    This file is part of the GNU C Library.
  248.20 - 
  248.21 -    The GNU C Library is free software; you can redistribute it and/or
  248.22 -@@ -38,10 +38,9 @@
  248.23 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
  248.24 - 
  248.25 - strong_alias (__old_sys_nerr, _old_sys_nerr);
  248.26 --weak_alias (__old_sys_nerr, _old_sys_nerr)
  248.27 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
  248.28 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
  248.29 --weak_alias (__old_sys_errlist, _old_sys_errlist);
  248.30 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
  248.31 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
  248.32 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
  248.33 - #endif
   249.1 --- a/patches/glibc/2.2.3/errlist-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   249.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   249.3 @@ -1,48 +0,0 @@
   249.4 -Subject: patch for arm
   249.5 -From: Philip Blundell <Philip dot Blundell at pobox dot com>
   249.6 -To: libc-hacker at sources dot redhat dot com
   249.7 -Content-Type: text/plain
   249.8 -Content-Transfer-Encoding: 7bit
   249.9 -Date: 22 Jul 2002 20:12:06 +0100
  249.10 -Message-Id: <1027365126.725.10.camel@kc>
  249.11 -Mime-Version: 1.0
  249.12 -
  249.13 -The mainline seems to need this patch in order to compile.
  249.14 -
  249.15 -p.
  249.16 -
  249.17 -2002-07-22  Philip Blundell  <philb@gnu.org>
  249.18 -
  249.19 -	* sysdeps/unix/sysv/linux/arm/errlist.c: Remove extra weak alias
  249.20 -	definiton of _old_sys_nerr.  Define _old_sys_errlist as strong
  249.21 -	alias.
  249.22 -
  249.23 -Index: sysdeps/unix/sysv/linux/arm/errlist.c
  249.24 -===================================================================
  249.25 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/errlist.c,v
  249.26 -retrieving revision 1.4
  249.27 -diff -u -p -r1.4 errlist.c
  249.28 ---- glibc/sysdeps/unix/sysv/linux/arm/errlist.c	6 Jul 2001 04:56:13 -0000	1.4
  249.29 -+++ glibc/sysdeps/unix/sysv/linux/arm/errlist.c	22 Jul 2002 19:10:57 -0000
  249.30 -@@ -1,4 +1,4 @@
  249.31 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
  249.32 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
  249.33 -    This file is part of the GNU C Library.
  249.34 - 
  249.35 -    The GNU C Library is free software; you can redistribute it and/or
  249.36 -@@ -38,10 +38,9 @@ extern const char *const *__old_sys_errl
  249.37 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
  249.38 - 
  249.39 - strong_alias (__old_sys_nerr, _old_sys_nerr);
  249.40 --weak_alias (__old_sys_nerr, _old_sys_nerr)
  249.41 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
  249.42 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
  249.43 --weak_alias (__old_sys_errlist, _old_sys_errlist);
  249.44 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
  249.45 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
  249.46 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
  249.47 - #endif
  249.48 -
  249.49 -
  249.50 -
  249.51 -
   250.1 --- a/patches/glibc/2.2.3/glibc-2.2.3-mips-base-addr-got.patch	Tue Aug 14 19:32:22 2007 +0000
   250.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   250.3 @@ -1,276 +0,0 @@
   250.4 -From http://www.ltc.com/~brad/mips/glibc-2.2.3-mips-base-addr-got.diff
   250.5 -
   250.6 -Hopefully fixes the error:
   250.7 -
   250.8 -/opt/crosstool/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/../../../../mipsel-unknown-linux-gnu/bin/ld: target elf32-littlemips not found
   250.9 -collect2: ld returned 1 exit status
  250.10 -make[2]: *** [/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/build-glibc/elf/ld.so] Error 1
  250.11 -
  250.12 -
  250.13 -diff -urNbB glibc-2.2.3/sysdeps/mips/dl-machine.h glibc-2.2.3-mips/sysdeps/mips/dl-machine.h
  250.14 ---- glibc-2.2.3/sysdeps/mips/dl-machine.h	Mon Mar 26 23:53:28 2001
  250.15 -+++ glibc-2.2.3-mips/sysdeps/mips/dl-machine.h	Sun Aug 12 11:08:17 2001
  250.16 -@@ -61,23 +61,6 @@
  250.17 -    in l_info array.  */
  250.18 - #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM)
  250.19 - 
  250.20 --/*
  250.21 -- * MIPS libraries are usually linked to a non-zero base address.  We
  250.22 -- * subtract the base address from the address where we map the object
  250.23 -- * to.  This results in more efficient address space usage.
  250.24 -- *
  250.25 -- * FIXME: By the time when MAP_BASE_ADDR is called we don't have the
  250.26 -- * DYNAMIC section read.  Until this is fixed make the assumption that
  250.27 -- * libraries have their base address at 0x5ffe0000.  This needs to be
  250.28 -- * fixed before we can safely get rid of this MIPSism.
  250.29 -- */
  250.30 --#if 0
  250.31 --#define MAP_BASE_ADDR(l) ((l)->l_info[DT_MIPS(BASE_ADDRESS)] ? \
  250.32 --			  (l)->l_info[DT_MIPS(BASE_ADDRESS)]->d_un.d_ptr : 0)
  250.33 --#else
  250.34 --#define MAP_BASE_ADDR(l) 0x5ffe0000
  250.35 --#endif
  250.36 --
  250.37 - /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
  250.38 -    with the run-time address of the r_debug structure  */
  250.39 - #define ELF_MACHINE_DEBUG_SETUP(l,r) \
  250.40 -@@ -557,51 +540,30 @@
  250.41 -   /* Do nothing.  */
  250.42 - }
  250.43 - 
  250.44 -+#ifndef RTLD_BOOTSTRAP
  250.45 - /* Relocate GOT. */
  250.46 - static inline void
  250.47 - elf_machine_got_rel (struct link_map *map, int lazy)
  250.48 - {
  250.49 -   ElfW(Addr) *got;
  250.50 -   ElfW(Sym) *sym;
  250.51 -+  const ElfW(Half) *vernum;
  250.52 -   int i, n, symidx;
  250.53 --  /*  This function is loaded in dl-reloc as a nested function and can
  250.54 --      therefore access the variables scope and strtab from
  250.55 --      _dl_relocate_object.  */
  250.56 --#ifdef RTLD_BOOTSTRAP
  250.57 --# define RESOLVE_GOTSYM(sym,sym_index) 0
  250.58 --#else
  250.59 --# define RESOLVE_GOTSYM(sym,sym_index)					  \
  250.60 -+
  250.61 -+#define RESOLVE_GOTSYM(sym,vernum,sym_index)				  \
  250.62 -     ({									  \
  250.63 -       const ElfW(Sym) *ref = sym;					  \
  250.64 -+      const struct r_found_version *version				  \
  250.65 -+        = vernum ? &map->l_versions [vernum [sym_index]] : NULL;	  \
  250.66 -       ElfW(Addr) value;							  \
  250.67 --									  \
  250.68 --      switch (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL)		  \
  250.69 --	{								  \
  250.70 --	default:							  \
  250.71 --	  {								  \
  250.72 --	    const ElfW(Half) *vernum =					  \
  250.73 --	      (const void *) D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]);  \
  250.74 --	    ElfW(Half) ndx = vernum[sym_index];				  \
  250.75 --	    const struct r_found_version *version = &l->l_versions[ndx];  \
  250.76 --									  \
  250.77 --	    if (version->hash != 0)					  \
  250.78 --	      {								  \
  250.79 --		value = _dl_lookup_versioned_symbol(strtab + sym->st_name,\
  250.80 --						    map,		  \
  250.81 --						    &ref, scope, version, \
  250.82 --						    R_MIPS_REL32, 0);	  \
  250.83 --		break;							  \
  250.84 --	      }								  \
  250.85 --	    /* Fall through.  */					  \
  250.86 --	  }								  \
  250.87 --	case 0:								  \
  250.88 --	  value = _dl_lookup_symbol (strtab + sym->st_name, map, &ref,	  \
  250.89 --				     scope, R_MIPS_REL32, 0);		  \
  250.90 --	}								  \
  250.91 --									  \
  250.92 -+      value = RESOLVE (&ref, version, R_MIPS_REL32);			  \
  250.93 -       (ref)? value + ref->st_value: 0;					  \
  250.94 -     })
  250.95 --#endif /* RTLD_BOOTSTRAP */
  250.96 -+
  250.97 -+  if (map->l_info[VERSYMIDX (DT_VERSYM)] != NULL)
  250.98 -+    vernum = (const void *) D_PTR (map, l_info[VERSYMIDX (DT_VERSYM)]);
  250.99 -+  else
 250.100 -+    vernum = NULL;
 250.101 - 
 250.102 -   got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]);
 250.103 - 
 250.104 -@@ -639,10 +601,10 @@
 250.105 - 	      && sym->st_value && lazy)
 250.106 - 	    *got = sym->st_value + map->l_addr;
 250.107 - 	  else
 250.108 --	    *got = RESOLVE_GOTSYM (sym, symidx);
 250.109 -+	    *got = RESOLVE_GOTSYM (sym, vernum, symidx);
 250.110 - 	}
 250.111 -       else if (sym->st_shndx == SHN_COMMON)
 250.112 --	*got = RESOLVE_GOTSYM (sym, symidx);
 250.113 -+	*got = RESOLVE_GOTSYM (sym, vernum, symidx);
 250.114 -       else if (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC
 250.115 - 	       && *got != sym->st_value
 250.116 - 	       && lazy)
 250.117 -@@ -653,7 +615,7 @@
 250.118 - 	    *got += map->l_addr;
 250.119 - 	}
 250.120 -       else
 250.121 --	*got = RESOLVE_GOTSYM (sym, symidx);
 250.122 -+	*got = RESOLVE_GOTSYM (sym, vernum, symidx);
 250.123 - 
 250.124 -       ++got;
 250.125 -       ++sym;
 250.126 -@@ -661,9 +623,8 @@
 250.127 -     }
 250.128 - 
 250.129 - #undef RESOLVE_GOTSYM
 250.130 --
 250.131 --  return;
 250.132 - }
 250.133 -+#endif
 250.134 - 
 250.135 - /* Set up the loaded object described by L so its stub function
 250.136 -    will jump to the on-demand fixup code __dl_runtime_resolve.  */
 250.137 -diff -urNbB glibc-2.2.3/sysdeps/mips/mips64/rtld-parms glibc-2.2.3-mips/sysdeps/mips/mips64/rtld-parms
 250.138 ---- glibc-2.2.3/sysdeps/mips/mips64/rtld-parms	Sat Jul 12 18:26:11 1997
 250.139 -+++ glibc-2.2.3-mips/sysdeps/mips/mips64/rtld-parms	Wed Dec 31 19:00:00 1969
 250.140 -@@ -1,3 +0,0 @@
 250.141 --ifndef rtld-wordsize
 250.142 --rtld-wordsize = 64
 250.143 --endif
 250.144 -diff -urNbB glibc-2.2.3/sysdeps/mips/mipsel/rtld-parms glibc-2.2.3-mips/sysdeps/mips/mipsel/rtld-parms
 250.145 ---- glibc-2.2.3/sysdeps/mips/mipsel/rtld-parms	Sat Jul 12 18:26:15 1997
 250.146 -+++ glibc-2.2.3-mips/sysdeps/mips/mipsel/rtld-parms	Wed Dec 31 19:00:00 1969
 250.147 -@@ -1,3 +0,0 @@
 250.148 --ifndef rtld-oformat
 250.149 --rtld-oformat = elf32-littlemips
 250.150 --endif
 250.151 -diff -urNbB glibc-2.2.3/sysdeps/mips/rtld-ldscript.in glibc-2.2.3-mips/sysdeps/mips/rtld-ldscript.in
 250.152 ---- glibc-2.2.3/sysdeps/mips/rtld-ldscript.in	Sat Jul 12 18:23:14 1997
 250.153 -+++ glibc-2.2.3-mips/sysdeps/mips/rtld-ldscript.in	Wed Dec 31 19:00:00 1969
 250.154 -@@ -1,106 +0,0 @@
 250.155 --OUTPUT_FORMAT("@@rtld-oformat@@")
 250.156 --OUTPUT_ARCH(@@rtld-arch@@)
 250.157 --ENTRY(@@rtld-entry@@)
 250.158 --SECTIONS
 250.159 --{
 250.160 --  /* Read-only sections, merged into text segment: */
 250.161 --  . = @@rtld-base@@;
 250.162 --  .reginfo       : { *(.reginfo) }
 250.163 --  .dynamic       : { *(.dynamic) }
 250.164 --  .dynstr        : { *(.dynstr)		}
 250.165 --  .dynsym        : { *(.dynsym)		}
 250.166 --  .hash          : { *(.hash)		}
 250.167 --  .rel.text      : { *(.rel.text)		}
 250.168 --  .rela.text     : { *(.rela.text) 	}
 250.169 --  .rel.data      : { *(.rel.data)		}
 250.170 --  .rela.data     : { *(.rela.data) 	}
 250.171 --  .rel.rodata    : { *(.rel.rodata) 	}
 250.172 --  .rela.rodata   : { *(.rela.rodata) 	}
 250.173 --  .rel.got       : { *(.rel.got)		}
 250.174 --  .rela.got      : { *(.rela.got)		}
 250.175 --  .rel.ctors     : { *(.rel.ctors)	}
 250.176 --  .rela.ctors    : { *(.rela.ctors)	}
 250.177 --  .rel.dtors     : { *(.rel.dtors)	}
 250.178 --  .rela.dtors    : { *(.rela.dtors)	}
 250.179 --  .rel.init      : { *(.rel.init)	}
 250.180 --  .rela.init     : { *(.rela.init)	}
 250.181 --  .rel.fini      : { *(.rel.fini)	}
 250.182 --  .rela.fini     : { *(.rela.fini)	}
 250.183 --  .rel.bss       : { *(.rel.bss)		}
 250.184 --  .rela.bss      : { *(.rela.bss)		}
 250.185 --  .rel.plt       : { *(.rel.plt)		}
 250.186 --  .rela.plt      : { *(.rela.plt)		}
 250.187 --  .rodata    : { *(.rodata)  }
 250.188 --  .rodata1   : { *(.rodata1) }
 250.189 --  .init          : { *(.init)	} =0
 250.190 --  .text      :
 250.191 --  {
 250.192 --    *(.text)
 250.193 --    *(.stub)
 250.194 --    /* .gnu.warning sections are handled specially by elf32.em.  */
 250.195 --    *(.gnu.warning)
 250.196 --  } =0
 250.197 --  .fini      : { *(.fini)    } =0
 250.198 --  /* Adjust the address for the data segment.  We want to adjust up to
 250.199 --     the same address within the page on the next page up.  It would
 250.200 --     be more correct to do this:
 250.201 --       . = 0x10000000;
 250.202 --     The current expression does not correctly handle the case of a
 250.203 --     text segment ending precisely at the end of a page; it causes the
 250.204 --     data segment to skip a page.  The above expression does not have
 250.205 --     this problem, but it will currently (2/95) cause BFD to allocate
 250.206 --     a single segment, combining both text and data, for this case.
 250.207 --     This will prevent the text segment from being shared among
 250.208 --     multiple executions of the program; I think that is more
 250.209 --     important than losing a page of the virtual address space (note
 250.210 --     that no actual memory is lost; the page which is skipped can not
 250.211 --     be referenced).  */
 250.212 --  . += 0x10000;
 250.213 --  .data    :
 250.214 --  {
 250.215 --    *(.data)
 250.216 --    CONSTRUCTORS
 250.217 --  }
 250.218 --  .data1   : { *(.data1) }
 250.219 --  .ctors         : { *(.ctors)   }
 250.220 --  .dtors         : { *(.dtors)   }
 250.221 --  _gp = ALIGN(16) + 0x7ff0;
 250.222 --  .got           :
 250.223 --  {
 250.224 --    *(.got.plt) *(.got)
 250.225 --   }
 250.226 --  /* We want the small data sections together, so single-instruction offsets
 250.227 --     can access them all, and initialized data all before uninitialized, so
 250.228 --     we can shorten the on-disk segment size.  */
 250.229 --  .sdata     : { *(.sdata) }
 250.230 --  .lit8 : { *(.lit8) }
 250.231 --  .lit4 : { *(.lit4) }
 250.232 --  .sbss      : { *(.sbss) *(.scommon) }
 250.233 --  .bss       :
 250.234 --  {
 250.235 --   *(.dynbss)
 250.236 --   *(.bss)
 250.237 --   *(COMMON)
 250.238 --  }
 250.239 --  /* The normal linker scripts created by the binutils doesn't have the
 250.240 --     symbols end and _end which breaks ld.so's dl-minimal.c.  */
 250.241 --  _end = . ;
 250.242 --  PROVIDE (end = .);
 250.243 --  /* These are needed for ELF backends which have not yet been
 250.244 --     converted to the new style linker.  */
 250.245 --  .stab 0 : { *(.stab) }
 250.246 --  .stabstr 0 : { *(.stabstr) }
 250.247 --  /* DWARF debug sections.
 250.248 --     Symbols in the .debug DWARF section are relative to the beginning of the
 250.249 --     section so we begin .debug at 0.  It's not clear yet what needs to happen
 250.250 --     for the others.   */
 250.251 --  .debug          0 : { *(.debug) }
 250.252 --  .debug_srcinfo  0 : { *(.debug_srcinfo) }
 250.253 --  .debug_aranges  0 : { *(.debug_aranges) }
 250.254 --  .debug_pubnames 0 : { *(.debug_pubnames) }
 250.255 --  .debug_sfnames  0 : { *(.debug_sfnames) }
 250.256 --  .line           0 : { *(.line) }
 250.257 --  /* These must appear regardless of  .  */
 250.258 --  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
 250.259 --  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
 250.260 --}
 250.261 -diff -urNbB glibc-2.2.3/sysdeps/mips/rtld-parms glibc-2.2.3-mips/sysdeps/mips/rtld-parms
 250.262 ---- glibc-2.2.3/sysdeps/mips/rtld-parms	Mon Jul 21 19:04:07 1997
 250.263 -+++ glibc-2.2.3-mips/sysdeps/mips/rtld-parms	Wed Dec 31 19:00:00 1969
 250.264 -@@ -1,15 +0,0 @@
 250.265 --ifndef rtld-wordsize
 250.266 --rtld-wordsize = 32
 250.267 --endif
 250.268 --ifndef rtld-oformat
 250.269 --rtld-oformat = elf$(rtld-wordsize)-bigmips
 250.270 --endif
 250.271 --ifndef rtld-arch
 250.272 --rtld-arch = mips
 250.273 --endif
 250.274 --ifndef rtld-entry
 250.275 --rtld-entry = __start
 250.276 --endif
 250.277 --ifndef rtld-base
 250.278 --rtld-base = 0x0fb60000 + SIZEOF_HEADERS
 250.279 --endif
   251.1 --- a/patches/glibc/2.2.3/glibc-2.2.5-mips-clone-local-label.patch	Tue Aug 14 19:32:22 2007 +0000
   251.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   251.3 @@ -1,47 +0,0 @@
   251.4 -This is a workaround for
   251.5 -
   251.6 -mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c  -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio  -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC   -DASSEMBLER   -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
   251.7 -../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
   251.8 -../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
   251.9 -make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
  251.10 -
  251.11 -which was using h.j.lu's binutils-2.13.90.0.18.
  251.12 -
  251.13 -
  251.14 -But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
  251.15 -which says
  251.16 -"A newer version of binutils (CVS post 2003-03-12) fixes it without
  251.17 -the need of changing perfectly legal code."
  251.18 -So presumably this can be ditched sooner or later.
  251.19 -
  251.20 -From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
  251.21 -
  251.22 -2003-03-13  Guido Guenther  <agx@sigxcpu.org>
  251.23 -
  251.24 -	* sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
  251.25 -	  .Lthread_start since current binutils don't allow branches to globally
  251.26 -	  visible symbols.
  251.27 -
  251.28 -===================================================================
  251.29 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
  251.30 -retrieving revision 1.10
  251.31 -diff -u -r1.10 clone.S
  251.32 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 01:04:51 -0000	1.10
  251.33 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 19:04:39 -0000
  251.34 -@@ -63,7 +63,7 @@
  251.35 - 	syscall
  251.36 - 
  251.37 - 	bnez		a3,error
  251.38 --	beqz		v0,__thread_start
  251.39 -+	beqz		v0,.Lthread_start
  251.40 - 
  251.41 - 	/* Successful return from the parent */
  251.42 - 	addiu		sp,32
  251.43 -@@ -85,6 +85,7 @@
  251.44 -    debug info.  */
  251.45 - 
  251.46 - ENTRY(__thread_start)
  251.47 -+.Lthread_start:
  251.48 - 	/* cp is already loaded.  */
  251.49 - 	.cprestore	16
  251.50 - 	/* The stackframe has been created on entry of clone().  */
   252.1 --- a/patches/glibc/2.2.3/glibc-manual-stdin.texi-1.127.patch	Tue Aug 14 19:32:22 2007 +0000
   252.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   252.3 @@ -1,25 +0,0 @@
   252.4 -Fixes error
   252.5 -./stdio.texi:3269: First argument to cross-reference may not be empty.
   252.6 -./stdio.texi:3270: First argument to cross-reference may not be empty.
   252.7 -makeinfo: Removing output file `/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/glibc-2.2.3/manual/libc.info' due to errors; use --force to preserve.
   252.8 -make[2]: *** [libc.info] Error 2
   252.9 -make[2]: Leaving directory `/home/dank/downloads/crosstool-0.24/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.3/glibc-2.2.3/manual'
  252.10 -
  252.11 -===================================================================
  252.12 -RCS file: /cvs/glibc/libc/manual/stdio.texi,v
  252.13 -retrieving revision 1.126
  252.14 -retrieving revision 1.127
  252.15 -diff -u -r1.126 -r1.127
  252.16 ---- libc/manual/stdio.texi	2001/06/06 07:11:31	1.126
  252.17 -+++ libc/manual/stdio.texi	2001/07/31 18:57:16	1.127
  252.18 -@@ -3265,8 +3265,8 @@
  252.19 - If you are trying to read input that doesn't match a single, fixed
  252.20 - pattern, you may be better off using a tool such as Flex to generate a
  252.21 - lexical scanner, or Bison to generate a parser, rather than using
  252.22 --@code{scanf}.  For more information about these tools, see @ref{, , ,
  252.23 --flex.info, Flex: The Lexical Scanner Generator}, and @ref{, , ,
  252.24 -+@code{scanf}.  For more information about these tools, see @ref{Top, , ,
  252.25 -+flex.info, Flex: The Lexical Scanner Generator}, and @ref{Top, , ,
  252.26 - bison.info, The Bison Reference Manual}.
  252.27 - 
  252.28 - @node Input Conversion Syntax
   253.1 --- a/patches/glibc/2.2.5/alpha-build-failure.patch	Tue Aug 14 19:32:22 2007 +0000
   253.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   253.3 @@ -1,37 +0,0 @@
   253.4 -See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=156841
   253.5 -
   253.6 -Here's the error I got before I applied the patch:
   253.7 -
   253.8 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __divlu
   253.9 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __divqu
  253.10 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __remlu
  253.11 -/home3/dank/crosstool-0.5/result/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/alpha-unknown-linux-gnu/3.2.3/../../../../alpha-unknown-linux-gnu/bin/ld: /home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc_pic.os: pc-relative relocation against dynamic symbol __remqu
  253.12 -collect2: ld returned 1 exit status
  253.13 -make[1]: *** [/home3/dank/crosstool-0.5/build/alpha-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc.so] Error 1
  253.14 -
  253.15 -
  253.16 ---- glibc-2.2.5/sysdeps/alpha/divrem.h	6 Jul 2001 04:55:45 -0000	1.8
  253.17 -+++ glibc-2.2.5/sysdeps/alpha/divrem.h	15 Jun 2002 20:53:37 -0000	1.9
  253.18 -@@ -1,4 +1,4 @@
  253.19 --/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
  253.20 -+/* Copyright (C) 1996,97,2002 Free Software Foundation, Inc.
  253.21 -    Contributed by David Mosberger (davidm@cs.arizona.edu).
  253.22 -    This file is part of the GNU C Library.
  253.23 - 
  253.24 -@@ -86,6 +86,7 @@
  253.25 - 
  253.26 - 	.align 3
  253.27 - UFUNC_NAME:
  253.28 -+$udiv_entry:
  253.29 - 	lda	sp, -STACK(sp)
  253.30 - 	.frame	sp, STACK, retaddr, 0
  253.31 - #ifdef PROF
  253.32 -@@ -206,7 +207,7 @@
  253.33 - 	cmovge	AT, AT, arg2
  253.34 - 
  253.35 - 	/* Do the unsigned division.  */
  253.36 --	bsr	retaddr, UFUNC_NAME
  253.37 -+	bsr	retaddr, $udiv_entry
  253.38 - 
  253.39 - 	/* Restore originals and adjust the sign of the result.  */
  253.40 - 	ldq	arg1, 0(sp)
   254.1 --- a/patches/glibc/2.2.5/arm-asm-clobber.patch	Tue Aug 14 19:32:22 2007 +0000
   254.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   254.3 @@ -1,23 +0,0 @@
   254.4 -http://gcc.gnu.org/PR11103
   254.5 -
   254.6 -Error:
   254.7 -../sysdeps/unix/sysv/linux/arm/sigaction.c: In function `__libc_sigaction':
   254.8 -../sysdeps/unix/sysv/linux/arm/sigaction.c:100: error: asm-specifier for variable `_a1' conflicts with asm clobber list
   254.9 -../sysdeps/unix/sysv/linux/arm/sigaction.c:139: error: asm-specifier for variable `_a1' conflicts with asm clobber list
  254.10 -make[2]: *** [/crosstool-0.22/build/arm-unknown-linux-gnu/gcc-3.3-glibc-2.2.5/build-glibc/signal/sigaction.o] Error 1
  254.11 -
  254.12 -Fix from http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-July/005826.html
  254.13 -rediffed against glibc-2.2.5
  254.14 -Not tested.  (I don't even understand it, just being a patch monkey...)
  254.15 -
  254.16 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h.old	Wed Aug 27 09:58:15 2003
  254.17 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h	Wed Aug 27 09:59:04 2003
  254.18 -@@ -131,7 +131,7 @@
  254.19 -        asm volatile ("swi	%1	@ syscall " #name	\
  254.20 - 		     : "=r" (_a1)				\
  254.21 - 		     : "i" (SYS_ify(name)) ASM_ARGS_##nr	\
  254.22 --		     : "a1", "memory");				\
  254.23 -+		     : "memory");				\
  254.24 -        _sys_result = _a1;					\
  254.25 -      }								\
  254.26 -      if (_sys_result >= (unsigned int) -4095)			\
   255.1 --- a/patches/glibc/2.2.5/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   255.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   255.3 @@ -1,51 +0,0 @@
   255.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   255.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   255.6 -Fixes following error:
   255.7 -
   255.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   255.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  255.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  255.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  255.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  255.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  255.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  255.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  255.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  255.17 -
  255.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  255.19 -
  255.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  255.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  255.22 -@@ -47,6 +47,12 @@
  255.23 - #include <asm/page.h>
  255.24 - #include <sys/sysctl.h>
  255.25 - 
  255.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  255.27 -+#include <linux/version.h>
  255.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  255.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  255.30 -+#endif
  255.31 -+
  255.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  255.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  255.34 - 
  255.35 -@@ -80,7 +86,7 @@
  255.36 -  * Initialize I/O system.  There are several ways to get the information
  255.37 -  * we need.  Each is tried in turn until one succeeds.
  255.38 -  *
  255.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  255.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  255.41 -  *    but not all kernels support it.
  255.42 -  *
  255.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  255.44 -@@ -100,8 +106,8 @@
  255.45 - {
  255.46 -   char systype[256];
  255.47 -   int i, n;
  255.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  255.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  255.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  255.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  255.52 -   size_t len = sizeof(io.base);
  255.53 - 
  255.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   256.1 --- a/patches/glibc/2.2.5/cris-libc-symbols.patch	Tue Aug 14 19:32:22 2007 +0000
   256.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   256.3 @@ -1,97 +0,0 @@
   256.4 -From http://sources.redhat.com/ml/libc-alpha/2002-06/msg00006.html
   256.5 -
   256.6 -Message-ID: <15612.44195.299251.921969@honolulu.ilog.fr>
   256.7 -Date: Tue, 4 Jun 2002 14:03:47 +0200 (CEST)
   256.8 -From: Bruno Haible <bruno at clisp dot org>
   256.9 -To: libc-alpha at sources dot redhat dot com
  256.10 -Subject: link_warning fix
  256.11 -
  256.12 -
  256.13 -Hi,
  256.14 -
  256.15 -While cross-compiling glibc-2.2.5 for target=cris-linux using gcc-3.1 and
  256.16 -binutils-2.12.90.0.7, I get an error
  256.17 -
  256.18 -cris-linux-gcc ../sysdeps/unix/sysv/linux/sigstack.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -g      -I../include -I. -I/backup/cross-build/build-glibc-cris/signal -I.. -I../libio  -I/backup/cross-build/build-glibc-cris -I../sysdeps/cris/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/cris -I../sysdeps/unix/sysv/linux/cris -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/cris -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /cross/cris-linux-tools/lib/gcc-lib/cris-linux/3.1/include -isystem /cross/cris-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h     -o /backup/cross-build/build-glibc-cris/signal/sigstack.o
  256.19 -/tmp/cca7qZyI.s: Assembler messages:
  256.20 -/tmp/cca7qZyI.s:87: Warning: rest of line ignored; first ignored character is `,'
  256.21 -/tmp/cca7qZyI.s:87: Error: Unknown opcode: `progbits'
  256.22 -make[2]: *** [/backup/cross-build/build-glibc-cris/signal/sigstack.o] Fehler 1
  256.23 -
  256.24 -
  256.25 -The reason is that the .s file contains the following.
  256.26 -
  256.27 -...
  256.28 -	.size	sigstack,.Lfe1-sigstack
  256.29 -#APP
  256.30 -	.section .gnu.warning.sigstack
  256.31 -	.previous
  256.32 -#NO_APP
  256.33 -	.section	.gnu.warning.sigstack
  256.34 -	#,"a",@progbits
  256.35 -	.align 2
  256.36 -	.type	__evoke_link_warning_sigstack,@object
  256.37 -...
  256.38 -
  256.39 -and comments (introduced by '#') are recognized by the assembler only after
  256.40 -#APP, not after #NO_APP. The workaround is to add '#APP' to the fake section
  256.41 -name. The following patch works for me.
  256.42 -
  256.43 -2002-06-02  Bruno Haible  <bruno@clisp.org>
  256.44 -
  256.45 -	* include/libc-symbols.h (__as_app_line): New macro.
  256.46 -	(link_warning): Emit #APP line to turn comment recognition on.
  256.47 -
  256.48 -*** glibc-2.2.5/include/libc-symbols.h.bak	2001-08-04 01:02:52.000000000 +0200
  256.49 ---- glibc-2.2.5/include/libc-symbols.h	2002-06-02 16:22:15.000000000 +0200
  256.50 -***************
  256.51 -*** 207,224 ****
  256.52 -  #   define __make_section_unallocated(section_string)
  256.53 -  #  endif
  256.54 -  
  256.55 -! /* Tacking on "\n\t#" to the section name makes gcc put it's bogus
  256.56 -!    section attributes on what looks like a comment to the assembler.  */
  256.57 -  #  ifdef HAVE_SECTION_QUOTES
  256.58 -  #   define link_warning(symbol, msg) \
  256.59 -    __make_section_unallocated (".gnu.warning." #symbol) \
  256.60 -!   static const char __evoke_link_warning_##symbol[]	\
  256.61 -!     __attribute__ ((section (".gnu.warning." #symbol "\"\n\t#\""))) = msg;
  256.62 -  #  else
  256.63 -  #   define link_warning(symbol, msg) \
  256.64 -    __make_section_unallocated (".gnu.warning." #symbol) \
  256.65 -!   static const char __evoke_link_warning_##symbol[]	\
  256.66 -!     __attribute__ ((section (".gnu.warning." #symbol "\n\t#"))) = msg;
  256.67 -  #  endif
  256.68 -  # else /* Not ELF: a.out */
  256.69 -  #  ifdef HAVE_XCOFF
  256.70 ---- 207,235 ----
  256.71 -  #   define __make_section_unallocated(section_string)
  256.72 -  #  endif
  256.73 -  
  256.74 -! /* Tacking on "\n\t#" to the section name makes gcc put its bogus
  256.75 -!    section attributes on what looks like a comment to the assembler.
  256.76 -!    Furthermore, with gas, we need to add a "#APP" line so the comment
  256.77 -!    is recognized as such.  */
  256.78 -! #  ifdef HAVE_GNU_AS
  256.79 -! #   define __as_app_line "#APP\n"
  256.80 -! #  else
  256.81 -! #   define __as_app_line ""
  256.82 -! #  endif
  256.83 -  #  ifdef HAVE_SECTION_QUOTES
  256.84 -  #   define link_warning(symbol, msg) \
  256.85 -    __make_section_unallocated (".gnu.warning." #symbol) \
  256.86 -!   static const char __evoke_link_warning_##symbol[]			 \
  256.87 -!     __attribute__							 \
  256.88 -!       ((section (".gnu.warning." #symbol "\"\n" __as_app_line "\t#\""))) \
  256.89 -!     = msg;
  256.90 -  #  else
  256.91 -  #   define link_warning(symbol, msg) \
  256.92 -    __make_section_unallocated (".gnu.warning." #symbol) \
  256.93 -!   static const char __evoke_link_warning_##symbol[]			\
  256.94 -!     __attribute__							\
  256.95 -!       ((section (".gnu.warning." #symbol "\n" __as_app_line "\t#")))	\
  256.96 -!     = msg;
  256.97 -  #  endif
  256.98 -  # else /* Not ELF: a.out */
  256.99 -  #  ifdef HAVE_XCOFF
 256.100 -
   257.1 --- a/patches/glibc/2.2.5/cris-stack-direction.patch	Tue Aug 14 19:32:22 2007 +0000
   257.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   257.3 @@ -1,61 +0,0 @@
   257.4 -From http://sources.redhat.com/ml/libc-alpha/2002-06/msg00007.html
   257.5 -
   257.6 -Message-ID: <15612.44228.774370.154718@honolulu.ilog.fr>
   257.7 -Date: Tue, 4 Jun 2002 14:04:20 +0200 (CEST)
   257.8 -From: Bruno Haible <bruno at clisp dot org>
   257.9 -To: libc-alpha at sources dot redhat dot com
  257.10 -Subject: cris stack direction
  257.11 -
  257.12 -
  257.13 -Hi,
  257.14 -
  257.15 -While cross-compiling glibc-2.2.5 for target=cris-linux using gcc-3.1 and
  257.16 -binutils-2.12.90.0.7, I get an error
  257.17 -
  257.18 -cris-linux-gcc cancel.c -c -O2 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -g   -D__NO_WEAK_PTHREAD_ALIASES -D_RPC_THREAD_SAFE_   -I../include -I. -I/backup/cross-build/build-glibc-cris/linuxthreads -I.. -I../libio  -I/backup/cross-build/build-glibc-cris -I../sysdeps/cris/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/cris -I../sysdeps/unix/sysv/linux/cris -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/cris -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /cross/cris-linux-tools/lib/gcc-lib/cris-linux/3.1/include -isystem /cross/cris-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h     -o /backup/cross-build/build-glibc-cris/linuxthreads/cancel.o
  257.19 -cancel.c:29:3: #error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
  257.20 -cancel.c: In function `_pthread_cleanup_push':
  257.21 -cancel.c:134: warning: implicit declaration of function `FRAME_LEFT'
  257.22 -make[2]: *** [/backup/cross-build/build-glibc-cris/linuxthreads/cancel.o] Fehler 1
  257.23 -
  257.24 -The fix is to add a file sysdeps/cris/stackinfo.h.
  257.25 -
  257.26 -
  257.27 -2002-06-02  Bruno Haible  <bruno@clisp.org>
  257.28 -
  257.29 -	* sysdeps/cris/stackinfo.h: New file.
  257.30 -
  257.31 -*** glibc-2.2.5/sysdeps/cris/stackinfo.h.bak	2002-06-02 17:52:05.000000000 +0200
  257.32 ---- glibc-2.2.5/sysdeps/cris/stackinfo.h	2002-06-02 17:52:24.000000000 +0200
  257.33 -***************
  257.34 -*** 0 ****
  257.35 ---- 1,28 ----
  257.36 -+ /* Copyright (C) 2002 Free Software Foundation, Inc.
  257.37 -+    This file is part of the GNU C Library.
  257.38 -+ 
  257.39 -+    The GNU C Library is free software; you can redistribute it and/or
  257.40 -+    modify it under the terms of the GNU Lesser General Public
  257.41 -+    License as published by the Free Software Foundation; either
  257.42 -+    version 2.1 of the License, or (at your option) any later version.
  257.43 -+ 
  257.44 -+    The GNU C Library is distributed in the hope that it will be useful,
  257.45 -+    but WITHOUT ANY WARRANTY; without even the implied warranty of
  257.46 -+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  257.47 -+    Lesser General Public License for more details.
  257.48 -+ 
  257.49 -+    You should have received a copy of the GNU Lesser General Public
  257.50 -+    License along with the GNU C Library; if not, write to the Free
  257.51 -+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  257.52 -+    02111-1307 USA.  */
  257.53 -+ 
  257.54 -+ /* This file contains a bit of information about the stack allocation
  257.55 -+    of the processor.  */
  257.56 -+ 
  257.57 -+ #ifndef _STACKINFO_H
  257.58 -+ #define _STACKINFO_H	1
  257.59 -+ 
  257.60 -+ /* On cris the stack grows down.  */
  257.61 -+ #define _STACK_GROWS_DOWN	1
  257.62 -+ 
  257.63 -+ #endif	/* stackinfo.h */
  257.64 -
   258.1 --- a/patches/glibc/2.2.5/dl-machine-alpha.patch	Tue Aug 14 19:32:22 2007 +0000
   258.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   258.3 @@ -1,424 +0,0 @@
   258.4 -From http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/alpha/dl-machine.h.diff?r1=1.56&r2=1.57&cvsroot=glibc
   258.5 -(minus first hunk)
   258.6 -Lets glibc-2.2.5 compile with gcc-3.3
   258.7 -
   258.8 -===================================================================
   258.9 -RCS file: /cvs/glibc/libc/sysdeps/alpha/dl-machine.h,v
  258.10 -retrieving revision 1.56
  258.11 -retrieving revision 1.57
  258.12 -diff -u -r1.56 -r1.57
  258.13 ---- libc/sysdeps/alpha/dl-machine.h	2001/12/12 00:10:27	1.56
  258.14 -+++ libc/sysdeps/alpha/dl-machine.h	2001/12/31 17:33:59	1.57
  258.15 -@@ -156,125 +157,126 @@
  258.16 - #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name, IMB)	\
  258.17 -   extern void tramp_name (void);				\
  258.18 -   asm ( "\
  258.19 --	.globl " #tramp_name "
  258.20 --	.ent " #tramp_name "
  258.21 --" #tramp_name ":
  258.22 --	lda	$sp, -44*8($sp)
  258.23 --	.frame	$sp, 44*8, $26
  258.24 --	/* Preserve all integer registers that C normally doesn't.  */
  258.25 --	stq	$26, 0*8($sp)
  258.26 --	stq	$0, 1*8($sp)
  258.27 --	stq	$1, 2*8($sp)
  258.28 --	stq	$2, 3*8($sp)
  258.29 --	stq	$3, 4*8($sp)
  258.30 --	stq	$4, 5*8($sp)
  258.31 --	stq	$5, 6*8($sp)
  258.32 --	stq	$6, 7*8($sp)
  258.33 --	stq	$7, 8*8($sp)
  258.34 --	stq	$8, 9*8($sp)
  258.35 --	stq	$16, 10*8($sp)
  258.36 --	stq	$17, 11*8($sp)
  258.37 --	stq	$18, 12*8($sp)
  258.38 --	stq	$19, 13*8($sp)
  258.39 --	stq	$20, 14*8($sp)
  258.40 --	stq	$21, 15*8($sp)
  258.41 --	stq	$22, 16*8($sp)
  258.42 --	stq	$23, 17*8($sp)
  258.43 --	stq	$24, 18*8($sp)
  258.44 --	stq	$25, 19*8($sp)
  258.45 --	stq	$29, 20*8($sp)
  258.46 --	stt	$f0, 21*8($sp)
  258.47 --	stt	$f1, 22*8($sp)
  258.48 --	stt	$f10, 23*8($sp)
  258.49 --	stt	$f11, 24*8($sp)
  258.50 --	stt	$f12, 25*8($sp)
  258.51 --	stt	$f13, 26*8($sp)
  258.52 --	stt	$f14, 27*8($sp)
  258.53 --	stt	$f15, 28*8($sp)
  258.54 --	stt	$f16, 29*8($sp)
  258.55 --	stt	$f17, 30*8($sp)
  258.56 --	stt	$f18, 31*8($sp)
  258.57 --	stt	$f19, 32*8($sp)
  258.58 --	stt	$f20, 33*8($sp)
  258.59 --	stt	$f21, 34*8($sp)
  258.60 --	stt	$f22, 35*8($sp)
  258.61 --	stt	$f23, 36*8($sp)
  258.62 --	stt	$f24, 37*8($sp)
  258.63 --	stt	$f25, 38*8($sp)
  258.64 --	stt	$f26, 39*8($sp)
  258.65 --	stt	$f27, 40*8($sp)
  258.66 --	stt	$f28, 41*8($sp)
  258.67 --	stt	$f29, 42*8($sp)
  258.68 --	stt	$f30, 43*8($sp)
  258.69 --	.mask	0x27ff01ff, -44*8
  258.70 --	.fmask	0xfffffc03, -(44-21)*8
  258.71 --	/* Set up our $gp */
  258.72 --	br	$gp, .+4
  258.73 --	ldgp	$gp, 0($gp)
  258.74 --	.prologue 0
  258.75 --	/* Set up the arguments for fixup: */
  258.76 --	/* $16 = link_map out of plt0 */
  258.77 --	/* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */
  258.78 --	/* $18 = return address */
  258.79 --	subq	$28, $27, $17
  258.80 --	ldq	$16, 8($27)
  258.81 --	subq	$17, 20, $17
  258.82 --	mov	$26, $18
  258.83 --	addq	$17, $17, $17
  258.84 --	/* Do the fixup */
  258.85 --	bsr	$26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng
  258.86 --	/* Move the destination address into position.  */
  258.87 --	mov	$0, $27
  258.88 --	/* Restore program registers.  */
  258.89 --	ldq	$26, 0*8($sp)
  258.90 --	ldq	$0, 1*8($sp)
  258.91 --	ldq	$1, 2*8($sp)
  258.92 --	ldq	$2, 3*8($sp)
  258.93 --	ldq	$3, 4*8($sp)
  258.94 --	ldq	$4, 5*8($sp)
  258.95 --	ldq	$5, 6*8($sp)
  258.96 --	ldq	$6, 7*8($sp)
  258.97 --	ldq	$7, 8*8($sp)
  258.98 --	ldq	$8, 9*8($sp)
  258.99 --	ldq	$16, 10*8($sp)
 258.100 --	ldq	$17, 11*8($sp)
 258.101 --	ldq	$18, 12*8($sp)
 258.102 --	ldq	$19, 13*8($sp)
 258.103 --	ldq	$20, 14*8($sp)
 258.104 --	ldq	$21, 15*8($sp)
 258.105 --	ldq	$22, 16*8($sp)
 258.106 --	ldq	$23, 17*8($sp)
 258.107 --	ldq	$24, 18*8($sp)
 258.108 --	ldq	$25, 19*8($sp)
 258.109 --	ldq	$29, 20*8($sp)
 258.110 --	ldt	$f0, 21*8($sp)
 258.111 --	ldt	$f1, 22*8($sp)
 258.112 --	ldt	$f10, 23*8($sp)
 258.113 --	ldt	$f11, 24*8($sp)
 258.114 --	ldt	$f12, 25*8($sp)
 258.115 --	ldt	$f13, 26*8($sp)
 258.116 --	ldt	$f14, 27*8($sp)
 258.117 --	ldt	$f15, 28*8($sp)
 258.118 --	ldt	$f16, 29*8($sp)
 258.119 --	ldt	$f17, 30*8($sp)
 258.120 --	ldt	$f18, 31*8($sp)
 258.121 --	ldt	$f19, 32*8($sp)
 258.122 --	ldt	$f20, 33*8($sp)
 258.123 --	ldt	$f21, 34*8($sp)
 258.124 --	ldt	$f22, 35*8($sp)
 258.125 --	ldt	$f23, 36*8($sp)
 258.126 --	ldt	$f24, 37*8($sp)
 258.127 --	ldt	$f25, 38*8($sp)
 258.128 --	ldt	$f26, 39*8($sp)
 258.129 --	ldt	$f27, 40*8($sp)
 258.130 --	ldt	$f28, 41*8($sp)
 258.131 --	ldt	$f29, 42*8($sp)
 258.132 --	ldt	$f30, 43*8($sp)
 258.133 --	/* Flush the Icache after having modified the .plt code.  */
 258.134 --	" #IMB "
 258.135 --	/* Clean up and turn control to the destination */
 258.136 --	lda	$sp, 44*8($sp)
 258.137 --	jmp	$31, ($27)
 258.138 -+	.globl " #tramp_name "					\n\
 258.139 -+	.ent " #tramp_name "					\n\
 258.140 -+" #tramp_name ":						\n\
 258.141 -+	lda	$sp, -44*8($sp)					\n\
 258.142 -+	.frame	$sp, 44*8, $26					\n\
 258.143 -+	/* Preserve all integer registers that C normally	\n\
 258.144 -+	   doesn't.  */						\n\
 258.145 -+	stq	$26, 0*8($sp)					\n\
 258.146 -+	stq	$0, 1*8($sp)					\n\
 258.147 -+	stq	$1, 2*8($sp)					\n\
 258.148 -+	stq	$2, 3*8($sp)					\n\
 258.149 -+	stq	$3, 4*8($sp)					\n\
 258.150 -+	stq	$4, 5*8($sp)					\n\
 258.151 -+	stq	$5, 6*8($sp)					\n\
 258.152 -+	stq	$6, 7*8($sp)					\n\
 258.153 -+	stq	$7, 8*8($sp)					\n\
 258.154 -+	stq	$8, 9*8($sp)					\n\
 258.155 -+	stq	$16, 10*8($sp)					\n\
 258.156 -+	stq	$17, 11*8($sp)					\n\
 258.157 -+	stq	$18, 12*8($sp)					\n\
 258.158 -+	stq	$19, 13*8($sp)					\n\
 258.159 -+	stq	$20, 14*8($sp)					\n\
 258.160 -+	stq	$21, 15*8($sp)					\n\
 258.161 -+	stq	$22, 16*8($sp)					\n\
 258.162 -+	stq	$23, 17*8($sp)					\n\
 258.163 -+	stq	$24, 18*8($sp)					\n\
 258.164 -+	stq	$25, 19*8($sp)					\n\
 258.165 -+	stq	$29, 20*8($sp)					\n\
 258.166 -+	stt	$f0, 21*8($sp)					\n\
 258.167 -+	stt	$f1, 22*8($sp)					\n\
 258.168 -+	stt	$f10, 23*8($sp)					\n\
 258.169 -+	stt	$f11, 24*8($sp)					\n\
 258.170 -+	stt	$f12, 25*8($sp)					\n\
 258.171 -+	stt	$f13, 26*8($sp)					\n\
 258.172 -+	stt	$f14, 27*8($sp)					\n\
 258.173 -+	stt	$f15, 28*8($sp)					\n\
 258.174 -+	stt	$f16, 29*8($sp)					\n\
 258.175 -+	stt	$f17, 30*8($sp)					\n\
 258.176 -+	stt	$f18, 31*8($sp)					\n\
 258.177 -+	stt	$f19, 32*8($sp)					\n\
 258.178 -+	stt	$f20, 33*8($sp)					\n\
 258.179 -+	stt	$f21, 34*8($sp)					\n\
 258.180 -+	stt	$f22, 35*8($sp)					\n\
 258.181 -+	stt	$f23, 36*8($sp)					\n\
 258.182 -+	stt	$f24, 37*8($sp)					\n\
 258.183 -+	stt	$f25, 38*8($sp)					\n\
 258.184 -+	stt	$f26, 39*8($sp)					\n\
 258.185 -+	stt	$f27, 40*8($sp)					\n\
 258.186 -+	stt	$f28, 41*8($sp)					\n\
 258.187 -+	stt	$f29, 42*8($sp)					\n\
 258.188 -+	stt	$f30, 43*8($sp)					\n\
 258.189 -+	.mask	0x27ff01ff, -44*8				\n\
 258.190 -+	.fmask	0xfffffc03, -(44-21)*8				\n\
 258.191 -+	/* Set up our $gp */					\n\
 258.192 -+	br	$gp, .+4					\n\
 258.193 -+	ldgp	$gp, 0($gp)					\n\
 258.194 -+	.prologue 0						\n\
 258.195 -+	/* Set up the arguments for fixup: */			\n\
 258.196 -+	/* $16 = link_map out of plt0 */			\n\
 258.197 -+	/* $17 = offset of reloc entry = ($28 - $27 - 20) /12 * 24 */\n\
 258.198 -+	/* $18 = return address */				\n\
 258.199 -+	subq	$28, $27, $17					\n\
 258.200 -+	ldq	$16, 8($27)					\n\
 258.201 -+	subq	$17, 20, $17					\n\
 258.202 -+	mov	$26, $18					\n\
 258.203 -+	addq	$17, $17, $17					\n\
 258.204 -+	/* Do the fixup */					\n\
 258.205 -+	bsr	$26, " ASM_ALPHA_NG_SYMBOL_PREFIX #fixup_name "..ng\n\
 258.206 -+	/* Move the destination address into position.  */	\n\
 258.207 -+	mov	$0, $27						\n\
 258.208 -+	/* Restore program registers.  */			\n\
 258.209 -+	ldq	$26, 0*8($sp)					\n\
 258.210 -+	ldq	$0, 1*8($sp)					\n\
 258.211 -+	ldq	$1, 2*8($sp)					\n\
 258.212 -+	ldq	$2, 3*8($sp)					\n\
 258.213 -+	ldq	$3, 4*8($sp)					\n\
 258.214 -+	ldq	$4, 5*8($sp)					\n\
 258.215 -+	ldq	$5, 6*8($sp)					\n\
 258.216 -+	ldq	$6, 7*8($sp)					\n\
 258.217 -+	ldq	$7, 8*8($sp)					\n\
 258.218 -+	ldq	$8, 9*8($sp)					\n\
 258.219 -+	ldq	$16, 10*8($sp)					\n\
 258.220 -+	ldq	$17, 11*8($sp)					\n\
 258.221 -+	ldq	$18, 12*8($sp)					\n\
 258.222 -+	ldq	$19, 13*8($sp)					\n\
 258.223 -+	ldq	$20, 14*8($sp)					\n\
 258.224 -+	ldq	$21, 15*8($sp)					\n\
 258.225 -+	ldq	$22, 16*8($sp)					\n\
 258.226 -+	ldq	$23, 17*8($sp)					\n\
 258.227 -+	ldq	$24, 18*8($sp)					\n\
 258.228 -+	ldq	$25, 19*8($sp)					\n\
 258.229 -+	ldq	$29, 20*8($sp)					\n\
 258.230 -+	ldt	$f0, 21*8($sp)					\n\
 258.231 -+	ldt	$f1, 22*8($sp)					\n\
 258.232 -+	ldt	$f10, 23*8($sp)					\n\
 258.233 -+	ldt	$f11, 24*8($sp)					\n\
 258.234 -+	ldt	$f12, 25*8($sp)					\n\
 258.235 -+	ldt	$f13, 26*8($sp)					\n\
 258.236 -+	ldt	$f14, 27*8($sp)					\n\
 258.237 -+	ldt	$f15, 28*8($sp)					\n\
 258.238 -+	ldt	$f16, 29*8($sp)					\n\
 258.239 -+	ldt	$f17, 30*8($sp)					\n\
 258.240 -+	ldt	$f18, 31*8($sp)					\n\
 258.241 -+	ldt	$f19, 32*8($sp)					\n\
 258.242 -+	ldt	$f20, 33*8($sp)					\n\
 258.243 -+	ldt	$f21, 34*8($sp)					\n\
 258.244 -+	ldt	$f22, 35*8($sp)					\n\
 258.245 -+	ldt	$f23, 36*8($sp)					\n\
 258.246 -+	ldt	$f24, 37*8($sp)					\n\
 258.247 -+	ldt	$f25, 38*8($sp)					\n\
 258.248 -+	ldt	$f26, 39*8($sp)					\n\
 258.249 -+	ldt	$f27, 40*8($sp)					\n\
 258.250 -+	ldt	$f28, 41*8($sp)					\n\
 258.251 -+	ldt	$f29, 42*8($sp)					\n\
 258.252 -+	ldt	$f30, 43*8($sp)					\n\
 258.253 -+	/* Flush the Icache after having modified the .plt code.  */\n\
 258.254 -+	" #IMB "						\n\
 258.255 -+	/* Clean up and turn control to the destination */	\n\
 258.256 -+	lda	$sp, 44*8($sp)					\n\
 258.257 -+	jmp	$31, ($27)					\n\
 258.258 - 	.end " #tramp_name)
 258.259 - 
 258.260 - #ifndef PROF
 258.261 -@@ -292,85 +294,87 @@
 258.262 -    its return value is the user program's entry point.  */
 258.263 - 
 258.264 - #define RTLD_START asm ("\
 258.265 --.text
 258.266 --	.set at
 258.267 --	.globl _start
 258.268 --	.ent _start
 258.269 --_start:
 258.270 --	br	$gp, 0f
 258.271 --0:	ldgp	$gp, 0($gp)
 258.272 --	.prologue 0
 258.273 --	/* Pass pointer to argument block to _dl_start.  */
 258.274 --	mov	$sp, $16
 258.275 --	bsr	$26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng
 258.276 --	.end _start
 258.277 --	/* FALLTHRU */
 258.278 --	.globl _dl_start_user
 258.279 --	.ent _dl_start_user
 258.280 --_dl_start_user:
 258.281 --	.frame $30,0,$31,0
 258.282 --	.prologue 0
 258.283 --	/* Save the user entry point address in s0.  */
 258.284 --	mov	$0, $9
 258.285 --	/* Store the highest stack address.  */
 258.286 --	stq	$30, __libc_stack_end
 258.287 --	/* See if we were run as a command with the executable file
 258.288 --	   name as an extra leading argument.  */
 258.289 --	ldl	$1, _dl_skip_args
 258.290 --	bne	$1, $fixup_stack
 258.291 --$fixup_stack_ret:
 258.292 --	/* The special initializer gets called with the stack just
 258.293 --	   as the application's entry point will see it; it can
 258.294 --	   switch stacks if it moves these contents over.  */
 258.295 --" RTLD_START_SPECIAL_INIT "
 258.296 --	/* Call _dl_init(_dl_loaded, argc, argv, envp) to run initializers.  */
 258.297 --	ldq	$16, _dl_loaded
 258.298 --	ldq	$17, 0($sp)
 258.299 --	lda	$18, 8($sp)
 258.300 --	s8addq	$17, 8, $19
 258.301 --	addq	$19, $18, $19
 258.302 --	jsr	$26, _dl_init
 258.303 --	/* Pass our finalizer function to the user in $0. */
 258.304 --	lda	$0, _dl_fini
 258.305 --	/* Jump to the user's entry point.  */
 258.306 --	mov	$9, $27
 258.307 --	jmp	($9)
 258.308 --$fixup_stack:
 258.309 --	/* Adjust the stack pointer to skip _dl_skip_args words.  This
 258.310 --	   involves copying everything down, since the stack pointer must
 258.311 --	   always be 16-byte aligned.  */
 258.312 --	ldq	$2, 0($sp)
 258.313 --	ldq	$5, _dl_argv
 258.314 --	subq	$31, $1, $6
 258.315 --	subq	$2, $1, $2
 258.316 --	s8addq	$6, $5, $5
 258.317 --	mov	$sp, $4
 258.318 --	s8addq	$1, $sp, $3
 258.319 --	stq	$2, 0($sp)
 258.320 --	stq	$5, _dl_argv
 258.321 --	/* Copy down argv.  */
 258.322 --0:	ldq	$5, 8($3)
 258.323 --	addq	$4, 8, $4
 258.324 --	addq	$3, 8, $3
 258.325 --	stq	$5, 0($4)
 258.326 --	bne	$5, 0b
 258.327 --	/* Copy down envp.  */
 258.328 --1:	ldq	$5, 8($3)
 258.329 --	addq	$4, 8, $4
 258.330 --	addq	$3, 8, $3
 258.331 --	stq	$5, 0($4)
 258.332 --	bne	$5, 1b
 258.333 --	/* Copy down auxiliary table.  */
 258.334 --2:	ldq	$5, 8($3)
 258.335 --	ldq	$6, 16($3)
 258.336 --	addq	$4, 16, $4
 258.337 --	addq	$3, 16, $3
 258.338 --	stq	$5, -8($4)
 258.339 --	stq	$6, 0($4)
 258.340 --	bne	$5, 2b
 258.341 --	br	$fixup_stack_ret
 258.342 --	.end _dl_start_user
 258.343 --	.set noat
 258.344 -+.text								\n\
 258.345 -+	.set at							\n\
 258.346 -+	.globl _start						\n\
 258.347 -+	.ent _start						\n\
 258.348 -+_start:								\n\
 258.349 -+	br	$gp, 0f						\n\
 258.350 -+0:	ldgp	$gp, 0($gp)					\n\
 258.351 -+	.prologue 0						\n\
 258.352 -+	/* Pass pointer to argument block to _dl_start.  */	\n\
 258.353 -+	mov	$sp, $16					\n\
 258.354 -+	bsr	$26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng	\n\
 258.355 -+	.end _start						\n\
 258.356 -+	/* FALLTHRU */						\n\
 258.357 -+	.globl _dl_start_user					\n\
 258.358 -+	.ent _dl_start_user					\n\
 258.359 -+_dl_start_user:							\n\
 258.360 -+	.frame $30,0,$31,0					\n\
 258.361 -+	.prologue 0						\n\
 258.362 -+	/* Save the user entry point address in s0.  */		\n\
 258.363 -+	mov	$0, $9						\n\
 258.364 -+	/* Store the highest stack address.  */			\n\
 258.365 -+	stq	$30, __libc_stack_end				\n\
 258.366 -+	/* See if we were run as a command with the executable	\n\
 258.367 -+	   file name as an extra leading argument.  */		\n\
 258.368 -+	ldl	$1, _dl_skip_args				\n\
 258.369 -+	bne	$1, $fixup_stack				\n\
 258.370 -+$fixup_stack_ret:						\n\
 258.371 -+	/* The special initializer gets called with the stack	\n\
 258.372 -+	   just as the application's entry point will see it;	\n\
 258.373 -+	   it can switch stacks if it moves these contents	\n\
 258.374 -+	   over.  */						\n\
 258.375 -+" RTLD_START_SPECIAL_INIT "					\n\
 258.376 -+	/* Call _dl_init(_dl_loaded, argc, argv, envp) to run	\n\
 258.377 -+	   initializers.  */					\n\
 258.378 -+	ldq	$16, _dl_loaded					\n\
 258.379 -+	ldq	$17, 0($sp)					\n\
 258.380 -+	lda	$18, 8($sp)					\n\
 258.381 -+	s8addq	$17, 8, $19					\n\
 258.382 -+	addq	$19, $18, $19					\n\
 258.383 -+	jsr	$26, _dl_init					\n\
 258.384 -+	/* Pass our finalizer function to the user in $0. */	\n\
 258.385 -+	lda	$0, _dl_fini					\n\
 258.386 -+	/* Jump to the user's entry point.  */			\n\
 258.387 -+	mov	$9, $27						\n\
 258.388 -+	jmp	($9)						\n\
 258.389 -+$fixup_stack:							\n\
 258.390 -+	/* Adjust the stack pointer to skip _dl_skip_args words.\n\
 258.391 -+	   This involves copying everything down, since the	\n\
 258.392 -+	   stack pointer must always be 16-byte aligned.  */	\n\
 258.393 -+	ldq	$2, 0($sp)					\n\
 258.394 -+	ldq	$5, _dl_argv					\n\
 258.395 -+	subq	$31, $1, $6					\n\
 258.396 -+	subq	$2, $1, $2					\n\
 258.397 -+	s8addq	$6, $5, $5					\n\
 258.398 -+	mov	$sp, $4						\n\
 258.399 -+	s8addq	$1, $sp, $3					\n\
 258.400 -+	stq	$2, 0($sp)					\n\
 258.401 -+	stq	$5, _dl_argv					\n\
 258.402 -+	/* Copy down argv.  */					\n\
 258.403 -+0:	ldq	$5, 8($3)					\n\
 258.404 -+	addq	$4, 8, $4					\n\
 258.405 -+	addq	$3, 8, $3					\n\
 258.406 -+	stq	$5, 0($4)					\n\
 258.407 -+	bne	$5, 0b						\n\
 258.408 -+	/* Copy down envp.  */					\n\
 258.409 -+1:	ldq	$5, 8($3)					\n\
 258.410 -+	addq	$4, 8, $4					\n\
 258.411 -+	addq	$3, 8, $3					\n\
 258.412 -+	stq	$5, 0($4)					\n\
 258.413 -+	bne	$5, 1b						\n\
 258.414 -+	/* Copy down auxiliary table.  */			\n\
 258.415 -+2:	ldq	$5, 8($3)					\n\
 258.416 -+	ldq	$6, 16($3)					\n\
 258.417 -+	addq	$4, 16, $4					\n\
 258.418 -+	addq	$3, 16, $3					\n\
 258.419 -+	stq	$5, -8($4)					\n\
 258.420 -+	stq	$6, 0($4)					\n\
 258.421 -+	bne	$5, 2b						\n\
 258.422 -+	br	$fixup_stack_ret				\n\
 258.423 -+	.end _dl_start_user					\n\
 258.424 -+	.set noat						\n\
 258.425 - .previous");
 258.426 - 
 258.427 - #ifndef RTLD_START_SPECIAL_INIT
   259.1 --- a/patches/glibc/2.2.5/dl-machine-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   259.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   259.3 @@ -1,389 +0,0 @@
   259.4 -Fixes error:
   259.5 -In file included from dynamic-link.h:21,
   259.6 -                 from dl-load.c:32:
   259.7 -../sysdeps/arm/dl-machine.h:124:25: missing terminating " character
   259.8 -...
   259.9 -make[2]: *** [/crosstool-0.22/build/arm-unknown-linux-gnu/gcc-3.3-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
  259.10 -
  259.11 -The first two hunks of 
  259.12 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.39&r2=1.40&cvsroot=glibc
  259.13 -applied cleanly, but the third hunk didn't, so I just added the \n\'s by hand for that section.
  259.14 -
  259.15 ---- glibc-2.2.5/sysdeps/arm/dl-machine.h.orig	Sat Sep  8 14:31:40 2001
  259.16 -+++ glibc-2.2.5/sysdeps/arm/dl-machine.h	Wed Aug 27 10:55:26 2003
  259.17 -@@ -121,14 +121,15 @@
  259.18 -    and then redirect to the address it returns.  */
  259.19 -    // macro for handling PIC situation....
  259.20 - #ifdef PIC
  259.21 --#define CALL_ROUTINE(x) " ldr sl,0f
  259.22 --	add 	sl, pc, sl
  259.23 --1:	ldr	r2, 2f
  259.24 --	mov	lr, pc
  259.25 --	add	pc, sl, r2
  259.26 --	b	3f
  259.27 --0:	.word	_GLOBAL_OFFSET_TABLE_ - 1b - 4
  259.28 --2:	.word " #x "(GOTOFF)
  259.29 -+#define CALL_ROUTINE(x) "\
  259.30 -+	ldr sl,0f\n\
  259.31 -+	add 	sl, pc, sl\n\
  259.32 -+1:	ldr	r2, 2f\n\
  259.33 -+	mov	lr, pc\n\
  259.34 -+	add	pc, sl, r2\n\
  259.35 -+	b	3f\n\
  259.36 -+0:	.word	_GLOBAL_OFFSET_TABLE_ - 1b - 4\n\
  259.37 -+2:	.word " #x "(GOTOFF)\n\
  259.38 - 3:	"
  259.39 - #else
  259.40 - #define CALL_ROUTINE(x) " bl " #x
  259.41 -@@ -136,114 +137,114 @@
  259.42 - 
  259.43 - #ifndef PROF
  259.44 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
  259.45 --	.text
  259.46 --	.globl _dl_runtime_resolve
  259.47 --	.type _dl_runtime_resolve, #function
  259.48 --	.align 2
  259.49 --_dl_runtime_resolve:
  259.50 --	@ we get called with
  259.51 --	@ 	stack[0] contains the return address from this call
  259.52 --	@	ip contains &GOT[n+3] (pointer to function)
  259.53 --	@	lr points to &GOT[2]
  259.54 --
  259.55 --	@ save almost everything; lr is already on the stack
  259.56 --	stmdb	sp!,{r0-r3,sl,fp}
  259.57 --
  259.58 --	@ prepare to call fixup()
  259.59 --	@ change &GOT[n+3] into 8*n        NOTE: reloc are 8 bytes each
  259.60 --	sub	r1, ip, lr
  259.61 --	sub	r1, r1, #4
  259.62 --	add	r1, r1, r1
  259.63 --
  259.64 --	@ get pointer to linker struct
  259.65 --	ldr	r0, [lr, #-4]
  259.66 --
  259.67 --	@ call fixup routine
  259.68 --	" CALL_ROUTINE(fixup) "
  259.69 --
  259.70 --	@ save the return
  259.71 --	mov	ip, r0
  259.72 --
  259.73 --	@ restore the stack
  259.74 --	ldmia	sp!,{r0-r3,sl,fp,lr}
  259.75 --
  259.76 --	@ jump to the newly found address
  259.77 --	mov	pc, ip
  259.78 --
  259.79 --	.size _dl_runtime_resolve, .-_dl_runtime_resolve
  259.80 --
  259.81 --	.globl _dl_runtime_profile
  259.82 --	.type _dl_runtime_profile, #function
  259.83 --	.align 2
  259.84 --_dl_runtime_profile:
  259.85 --	@ save almost everything; lr is already on the stack
  259.86 --	stmdb	sp!,{r0-r3,sl,fp}
  259.87 --
  259.88 --	@ prepare to call fixup()
  259.89 --	@ change &GOT[n+3] into 8*n        NOTE: reloc are 8 bytes each
  259.90 --	sub	r1, ip, lr
  259.91 --	sub	r1, r1, #4
  259.92 --	add	r1, r1, r1
  259.93 --
  259.94 --	@ get pointer to linker struct
  259.95 --	ldr	r0, [lr, #-4]
  259.96 --
  259.97 --	@ call profiling fixup routine
  259.98 --	" CALL_ROUTINE(profile_fixup) "
  259.99 --
 259.100 --	@ save the return
 259.101 --	mov	ip, r0
 259.102 --
 259.103 --	@ restore the stack
 259.104 --	ldmia	sp!,{r0-r3,sl,fp,lr}
 259.105 --
 259.106 --	@ jump to the newly found address
 259.107 --	mov	pc, ip
 259.108 --
 259.109 --	.size _dl_runtime_resolve, .-_dl_runtime_resolve
 259.110 --	.previous
 259.111 -+	.text\n\
 259.112 -+	.globl _dl_runtime_resolve\n\
 259.113 -+	.type _dl_runtime_resolve, #function\n\
 259.114 -+	.align 2\n\
 259.115 -+_dl_runtime_resolve:\n\
 259.116 -+	@ we get called with\n\
 259.117 -+	@ 	stack[0] contains the return address from this call\n\
 259.118 -+	@	ip contains &GOT[n+3] (pointer to function)\n\
 259.119 -+	@	lr points to &GOT[2]\n\
 259.120 -+\n\
 259.121 -+	@ save almost everything; lr is already on the stack\n\
 259.122 -+	stmdb	sp!,{r0-r3,sl,fp}\n\
 259.123 -+\n\
 259.124 -+	@ prepare to call fixup()\n\
 259.125 -+	@ change &GOT[n+3] into 8*n        NOTE: reloc are 8 bytes each\n\
 259.126 -+	sub	r1, ip, lr\n\
 259.127 -+	sub	r1, r1, #4\n\
 259.128 -+	add	r1, r1, r1\n\
 259.129 -+\n\
 259.130 -+	@ get pointer to linker struct\n\
 259.131 -+	ldr	r0, [lr, #-4]\n\
 259.132 -+\n\
 259.133 -+	@ call fixup routine\n\
 259.134 -+	" CALL_ROUTINE(fixup) "\n\
 259.135 -+\n\
 259.136 -+	@ save the return\n\
 259.137 -+	mov	ip, r0\n\
 259.138 -+\n\
 259.139 -+	@ restore the stack\n\
 259.140 -+	ldmia	sp!,{r0-r3,sl,fp,lr}\n\
 259.141 -+\n\
 259.142 -+	@ jump to the newly found address\n\
 259.143 -+	mov	pc, ip\n\
 259.144 -+\n\
 259.145 -+	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
 259.146 -+\n\
 259.147 -+	.globl _dl_runtime_profile\n\
 259.148 -+	.type _dl_runtime_profile, #function\n\
 259.149 -+	.align 2\n\
 259.150 -+_dl_runtime_profile:\n\
 259.151 -+	@ save almost everything; lr is already on the stack\n\
 259.152 -+	stmdb	sp!,{r0-r3,sl,fp}\n\
 259.153 -+\n\
 259.154 -+	@ prepare to call fixup()\n\
 259.155 -+	@ change &GOT[n+3] into 8*n        NOTE: reloc are 8 bytes each\n\
 259.156 -+	sub	r1, ip, lr\n\
 259.157 -+	sub	r1, r1, #4\n\
 259.158 -+	add	r1, r1, r1\n\
 259.159 -+\n\
 259.160 -+	@ get pointer to linker struct\n\
 259.161 -+	ldr	r0, [lr, #-4]\n\
 259.162 -+\n\
 259.163 -+	@ call profiling fixup routine\n\
 259.164 -+	" CALL_ROUTINE(profile_fixup) "\n\
 259.165 -+\n\
 259.166 -+	@ save the return\n\
 259.167 -+	mov	ip, r0\n\
 259.168 -+\n\
 259.169 -+	@ restore the stack\n\
 259.170 -+	ldmia	sp!,{r0-r3,sl,fp,lr}\n\
 259.171 -+\n\
 259.172 -+	@ jump to the newly found address\n\
 259.173 -+	mov	pc, ip\n\
 259.174 -+\n\
 259.175 -+	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
 259.176 -+	.previous\n\
 259.177 - ");
 259.178 - #else // PROF
 259.179 - # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
 259.180 --	.text
 259.181 --	.globl _dl_runtime_resolve
 259.182 --	.globl _dl_runtime_profile
 259.183 --	.type _dl_runtime_resolve, #function
 259.184 --	.type _dl_runtime_profile, #function
 259.185 --	.align 2
 259.186 --_dl_runtime_resolve:
 259.187 --_dl_runtime_profile:
 259.188 --	@ we get called with
 259.189 --	@ 	stack[0] contains the return address from this call
 259.190 --	@	ip contains &GOT[n+3] (pointer to function)
 259.191 --	@	lr points to &GOT[2]
 259.192 --
 259.193 --	@ save almost everything; return add is already on the stack
 259.194 --	stmdb	sp!,{r0-r3,sl,fp}
 259.195 --
 259.196 --	@ prepare to call fixup()
 259.197 --	@ change &GOT[n+3] into 8*n        NOTE: reloc are 8 bytes each
 259.198 --	sub	r1, ip, lr
 259.199 --	sub	r1, r1, #4
 259.200 --	add	r1, r1, r1
 259.201 --
 259.202 --	@ get pointer to linker struct
 259.203 --	ldr	r0, [lr, #-4]
 259.204 --
 259.205 --	@ call profiling fixup routine
 259.206 --	" CALL_ROUTINE(fixup) "
 259.207 --
 259.208 --	@ save the return
 259.209 --	mov	ip, r0
 259.210 --
 259.211 --	@ restore the stack
 259.212 --	ldmia	sp!,{r0-r3,sl,fp,lr}
 259.213 --
 259.214 --	@ jump to the newly found address
 259.215 --	mov	pc, ip
 259.216 --
 259.217 --	.size _dl_runtime_profile, .-_dl_runtime_profile
 259.218 --	.previous
 259.219 -+	.text\n\
 259.220 -+	.globl _dl_runtime_resolve\n\
 259.221 -+	.globl _dl_runtime_profile\n\
 259.222 -+	.type _dl_runtime_resolve, #function\n\
 259.223 -+	.type _dl_runtime_profile, #function\n\
 259.224 -+	.align 2\n\
 259.225 -+_dl_runtime_resolve:\n\
 259.226 -+_dl_runtime_profile:\n\
 259.227 -+	@ we get called with\n\
 259.228 -+	@ 	stack[0] contains the return address from this call\n\
 259.229 -+	@	ip contains &GOT[n+3] (pointer to function)\n\
 259.230 -+	@	lr points to &GOT[2]\n\
 259.231 -+\n\
 259.232 -+	@ save almost everything; return add is already on the stack\n\
 259.233 -+	stmdb	sp!,{r0-r3,sl,fp}\n\
 259.234 -+\n\
 259.235 -+	@ prepare to call fixup()\n\
 259.236 -+	@ change &GOT[n+3] into 8*n        NOTE: reloc are 8 bytes each\n\
 259.237 -+	sub	r1, ip, lr\n\
 259.238 -+	sub	r1, r1, #4\n\
 259.239 -+	add	r1, r1, r1\n\
 259.240 -+\n\
 259.241 -+	@ get pointer to linker struct\n\
 259.242 -+	ldr	r0, [lr, #-4]\n\
 259.243 -+\n\
 259.244 -+	@ call profiling fixup routine\n\
 259.245 -+	" CALL_ROUTINE(fixup) "\n\
 259.246 -+\n\
 259.247 -+	@ save the return\n\
 259.248 -+	mov	ip, r0\n\
 259.249 -+\n\
 259.250 -+	@ restore the stack\n\
 259.251 -+	ldmia	sp!,{r0-r3,sl,fp,lr}\n\
 259.252 -+\n\
 259.253 -+	@ jump to the newly found address\n\
 259.254 -+	mov	pc, ip\n\
 259.255 -+\n\
 259.256 -+	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
 259.257 -+	.previous\n\
 259.258 - ");
 259.259 - #endif //PROF
 259.260 - 
 259.261 -@@ -256,70 +257,70 @@
 259.262 -    its return value is the user program's entry point.  */
 259.263 - 
 259.264 - #define RTLD_START asm ("\
 259.265 --.text
 259.266 --.globl _start
 259.267 --.globl _dl_start_user
 259.268 --_start:
 259.269 --	@ at start time, all the args are on the stack
 259.270 --	mov	r0, sp
 259.271 --	bl	_dl_start
 259.272 --	@ returns user entry point in r0
 259.273 --_dl_start_user:
 259.274 --	mov	r6, r0
 259.275 --	@ we are PIC code, so get global offset table
 259.276 --	ldr	sl, .L_GET_GOT
 259.277 --	add	sl, pc, sl
 259.278 --.L_GOT_GOT:
 259.279 --	@ Store the highest stack address
 259.280 --	ldr	r1, .L_STACK_END
 259.281 --	ldr	r1, [sl, r1]
 259.282 --	str	sp, [r1]
 259.283 --	@ See if we were run as a command with the executable file
 259.284 --	@ name as an extra leading argument.
 259.285 --	ldr	r4, .L_SKIP_ARGS
 259.286 --	ldr	r4, [sl, r4]
 259.287 --	@ get the original arg count
 259.288 --	ldr	r1, [sp]
 259.289 --	@ subtract _dl_skip_args from it
 259.290 --	sub	r1, r1, r4
 259.291 --	@ adjust the stack pointer to skip them
 259.292 --	add	sp, sp, r4, lsl #2
 259.293 --	@ get the argv address
 259.294 --	add	r2, sp, #4
 259.295 --	@ store the new argc in the new stack location
 259.296 --	str	r1, [sp]
 259.297 --	@ compute envp
 259.298 --	add	r3, r2, r1, lsl #2
 259.299 --	add	r3, r3, #4
 259.300 --
 259.301 --	@ now we call _dl_init
 259.302 --	ldr	r0, .L_LOADED
 259.303 --	ldr	r0, [sl, r0]
 259.304 --	ldr	r0, [r0]
 259.305 --	@ call _dl_init
 259.306 --	bl	_dl_init(PLT)
 259.307 --	@ clear the startup flag
 259.308 --	ldr	r2, .L_STARTUP_FLAG
 259.309 --	ldr	r1, [sl, r2]
 259.310 --	mov	r0, #0
 259.311 --	str	r0, [r1]
 259.312 --	@ load the finalizer function
 259.313 --	ldr	r0, .L_FINI_PROC
 259.314 --	ldr	r0, [sl, r0]
 259.315 --	@ jump to the user_s entry point
 259.316 --	mov	pc, r6
 259.317 --.L_GET_GOT:
 259.318 -+.text\n\
 259.319 -+.globl _start\n\
 259.320 -+.globl _dl_start_user\n\
 259.321 -+_start:\n\
 259.322 -+	@ at start time, all the args are on the stack\n\
 259.323 -+	mov	r0, sp\n\
 259.324 -+	bl	_dl_start\n\
 259.325 -+	@ returns user entry point in r0\n\
 259.326 -+_dl_start_user:\n\
 259.327 -+	mov	r6, r0\n\
 259.328 -+	@ we are PIC code, so get global offset table\n\
 259.329 -+	ldr	sl, .L_GET_GOT\n\
 259.330 -+	add	sl, pc, sl\n\
 259.331 -+.L_GOT_GOT:\n\
 259.332 -+	@ Store the highest stack address\n\
 259.333 -+	ldr	r1, .L_STACK_END\n\
 259.334 -+	ldr	r1, [sl, r1]\n\
 259.335 -+	str	sp, [r1]\n\
 259.336 -+	@ See if we were run as a command with the executable file\n\
 259.337 -+	@ name as an extra leading argument.\n\
 259.338 -+	ldr	r4, .L_SKIP_ARGS\n\
 259.339 -+	ldr	r4, [sl, r4]\n\
 259.340 -+	@ get the original arg count\n\
 259.341 -+	ldr	r1, [sp]\n\
 259.342 -+	@ subtract _dl_skip_args from it\n\
 259.343 -+	sub	r1, r1, r4\n\
 259.344 -+	@ adjust the stack pointer to skip them\n\
 259.345 -+	add	sp, sp, r4, lsl #2\n\
 259.346 -+	@ get the argv address\n\
 259.347 -+	add	r2, sp, #4\n\
 259.348 -+	@ store the new argc in the new stack location\n\
 259.349 -+	str	r1, [sp]\n\
 259.350 -+	@ compute envp\n\
 259.351 -+	add	r3, r2, r1, lsl #2\n\
 259.352 -+	add	r3, r3, #4\n\
 259.353 -+\n\
 259.354 -+	@ now we call _dl_init\n\
 259.355 -+	ldr	r0, .L_LOADED\n\
 259.356 -+	ldr	r0, [sl, r0]\n\
 259.357 -+	ldr	r0, [r0]\n\
 259.358 -+	@ call _dl_init\n\
 259.359 -+	bl	_dl_init(PLT)\n\
 259.360 -+	@ clear the startup flag\n\
 259.361 -+	ldr	r2, .L_STARTUP_FLAG\n\
 259.362 -+	ldr	r1, [sl, r2]\n\
 259.363 -+	mov	r0, #0\n\
 259.364 -+	str	r0, [r1]\n\
 259.365 -+	@ load the finalizer function\n\
 259.366 -+	ldr	r0, .L_FINI_PROC\n\
 259.367 -+	ldr	r0, [sl, r0]\n\
 259.368 -+	@ jump to the user_s entry point\n\
 259.369 -+	mov	pc, r6\n\
 259.370 -+.L_GET_GOT:\n\
 259.371 - 	.word	_GLOBAL_OFFSET_TABLE_ - .L_GOT_GOT - 4	\n\
 259.372 - .L_SKIP_ARGS:					\n\
 259.373 - 	.word	_dl_skip_args(GOTOFF)		\n\
 259.374 --.L_STARTUP_FLAG:
 259.375 --	.word	_dl_starting_up(GOT)
 259.376 --.L_FINI_PROC:
 259.377 --	.word	_dl_fini(GOT)
 259.378 --.L_STACK_END:
 259.379 --	.word	__libc_stack_end(GOT)
 259.380 --.L_LOADED:
 259.381 --	.word	_dl_loaded(GOT)
 259.382 -+.L_STARTUP_FLAG:\n\
 259.383 -+	.word	_dl_starting_up(GOT)\n\
 259.384 -+.L_FINI_PROC:\n\
 259.385 -+	.word	_dl_fini(GOT)\n\
 259.386 -+.L_STACK_END:\n\
 259.387 -+	.word	__libc_stack_end(GOT)\n\
 259.388 -+.L_LOADED:\n\
 259.389 -+	.word	_dl_loaded(GOT)\n\
 259.390 - .previous\n\
 259.391 - ");
 259.392 - 
   260.1 --- a/patches/glibc/2.2.5/dl-machine-m68k.patch	Tue Aug 14 19:32:22 2007 +0000
   260.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   260.3 @@ -1,206 +0,0 @@
   260.4 -Retrieved with
   260.5 - wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/m68k/dl-machine.h.diff?r1=1.53&r2=1.55&cvsroot=glibc'
   260.6 -
   260.7 -Fixes error
   260.8 -
   260.9 -In file included from dynamic-link.h:21,
  260.10 -                 from dl-load.c:32:
  260.11 -../sysdeps/m68k/dl-machine.h:108: error: parse error before '.' token
  260.12 -../sysdeps/m68k/dl-machine.h:109: error: stray '@' in program
  260.13 -../sysdeps/m68k/dl-machine.h:120: error: syntax error at '#' token
  260.14 -../sysdeps/m68k/dl-machine.h:123: error: stray '\' in program
  260.15 -../sysdeps/m68k/dl-machine.h:123: error: missing terminating " character
  260.16 -../sysdeps/m68k/dl-machine.h:148: error: stray '@' in program
  260.17 -../sysdeps/m68k/dl-machine.h:152: error: syntax error at '#' token
  260.18 -../sysdeps/m68k/dl-machine.h:156: error: stray '@' in program
  260.19 -../sysdeps/m68k/dl-machine.h:161: error: stray '@' in program
  260.20 -../sysdeps/m68k/dl-machine.h:163: error: stray '@' in program
  260.21 -../sysdeps/m68k/dl-machine.h:166: error: stray '@' in program
  260.22 -In file included from dynamic-link.h:21,
  260.23 -                 from dl-load.c:32:
  260.24 -../sysdeps/m68k/dl-machine.h:175:4: invalid preprocessing directive #Call
  260.25 -../sysdeps/m68k/dl-machine.h:179: error: stray '@' in program
  260.26 -../sysdeps/m68k/dl-machine.h:180: error: stray '@' in program
  260.27 -../sysdeps/m68k/dl-machine.h:181: error: syntax error at '#' token
  260.28 -../sysdeps/m68k/dl-machine.h:182: error: syntax error at '#' token
  260.29 -../sysdeps/m68k/dl-machine.h:184: error: stray '@' in program
  260.30 -../sysdeps/m68k/dl-machine.h:187: error: missing terminating ' character
  260.31 -../sysdeps/m68k/dl-machine.h:190: error: missing terminating " character
  260.32 -dl-load.c: In function `_dl_map_object_from_fd':
  260.33 -dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
  260.34 -dl-load.c:1089: warning: use of cast expressions as lvalues is deprecated
  260.35 -dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
  260.36 -dl-load.c:1109: warning: use of cast expressions as lvalues is deprecated
  260.37 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/m68k-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
  260.38 -
  260.39 -===================================================================
  260.40 -RCS file: /cvs/glibc/libc/sysdeps/m68k/dl-machine.h,v
  260.41 -retrieving revision 1.53
  260.42 -retrieving revision 1.55
  260.43 -diff -u -r1.53 -r1.55
  260.44 ---- libc/sysdeps/m68k/dl-machine.h	2001/08/26 22:26:36	1.53
  260.45 -+++ libc/sysdeps/m68k/dl-machine.h	2002/02/01 10:28:20	1.55
  260.46 -@@ -1,5 +1,5 @@
  260.47 - /* Machine-dependent ELF dynamic relocation inline functions.  m68k version.
  260.48 --   Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
  260.49 -+   Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
  260.50 -    This file is part of the GNU C Library.
  260.51 - 
  260.52 -    The GNU C Library is free software; you can redistribute it and/or
  260.53 -@@ -85,11 +85,11 @@
  260.54 - 	{
  260.55 - 	  got[2] = (Elf32_Addr) &_dl_runtime_profile;
  260.56 - 
  260.57 --	  if (_dl_name_match_p (_dl_profile, l))
  260.58 -+	  if (_dl_name_match_p (GL(dl_profile), l))
  260.59 - 	    {
  260.60 - 	      /* This is the object we are looking for.  Say that we really
  260.61 - 		 want profiling and the timers are started.  */
  260.62 --	      _dl_profile_map = l;
  260.63 -+	      GL(dl_profile_map) = l;
  260.64 - 	    }
  260.65 - 	}
  260.66 -       else
  260.67 -@@ -104,22 +104,22 @@
  260.68 - /* This code is used in dl-runtime.c to call the `fixup' function
  260.69 -    and then redirect to the address it returns.  */
  260.70 - #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
  260.71 --"| Trampoline for " #fixup_name "
  260.72 --	.globl " #tramp_name "
  260.73 --	.type " #tramp_name ", @function
  260.74 --" #tramp_name ":
  260.75 --	| Save %a0 (struct return address) and %a1.
  260.76 --	move.l %a0, -(%sp)
  260.77 --	move.l %a1, -(%sp)
  260.78 --	| Call the real address resolver.
  260.79 --	jbsr " #fixup_name "
  260.80 --	| Restore register %a0 and %a1.
  260.81 --	move.l (%sp)+, %a1
  260.82 --	move.l (%sp)+, %a0
  260.83 --	| Pop parameters
  260.84 --	addq.l #8, %sp
  260.85 --	| Call real function.
  260.86 --	jmp (%d0)
  260.87 -+"| Trampoline for " #fixup_name "\n\
  260.88 -+	.globl " #tramp_name "\n\
  260.89 -+	.type " #tramp_name ", @function\n\
  260.90 -+" #tramp_name ":\n\
  260.91 -+	| Save %a0 (struct return address) and %a1.\n\
  260.92 -+	move.l %a0, -(%sp)\n\
  260.93 -+	move.l %a1, -(%sp)\n\
  260.94 -+	| Call the real address resolver.\n\
  260.95 -+	jbsr " #fixup_name "\n\
  260.96 -+	| Restore register %a0 and %a1.\n\
  260.97 -+	move.l (%sp)+, %a1\n\
  260.98 -+	move.l (%sp)+, %a0\n\
  260.99 -+	| Pop parameters\n\
 260.100 -+	addq.l #8, %sp\n\
 260.101 -+	| Call real function.\n\
 260.102 -+	jmp (%d0)\n\
 260.103 - 	.size " #tramp_name ", . - " #tramp_name "\n"
 260.104 - #ifndef PROF
 260.105 - #define ELF_MACHINE_RUNTIME_TRAMPOLINE \
 260.106 -@@ -143,50 +143,50 @@
 260.107 -    its return value is the user program's entry point.  */
 260.108 - 
 260.109 - #define RTLD_START asm ("\
 260.110 --	.text
 260.111 --	.globl _start
 260.112 --	.type _start,@function
 260.113 --_start:
 260.114 --	move.l %sp, -(%sp)
 260.115 --	jbsr _dl_start
 260.116 --	addq.l #4, %sp
 260.117 --	/* FALLTHRU */
 260.118 --
 260.119 --	.globl _dl_start_user
 260.120 --	.type _dl_start_user,@function
 260.121 --_dl_start_user:
 260.122 --	| Save the user entry point address in %a4.
 260.123 --	move.l %d0, %a4
 260.124 --	| Point %a5 at the GOT.
 260.125 --	lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5
 260.126 --	| Remember the highest stack address.
 260.127 --	move.l %sp, ([__libc_stack_end@GOT.w, %a5])
 260.128 --	| See if we were run as a command with the executable file
 260.129 --	| name as an extra leading argument.
 260.130 --	move.l ([_dl_skip_args@GOT.w, %a5]), %d0
 260.131 --	| Pop the original argument count
 260.132 --	move.l (%sp)+, %d1
 260.133 --	| Subtract _dl_skip_args from it.
 260.134 --	sub.l %d0, %d1
 260.135 --	| Adjust the stack pointer to skip _dl_skip_args words.
 260.136 --	lea (%sp, %d0*4), %sp
 260.137 --	| Push back the modified argument count.
 260.138 --	move.l %d1, -(%sp)
 260.139 --	# Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)
 260.140 --	pea 8(%sp, %d1*4)
 260.141 --	pea 8(%sp)
 260.142 --	move.l %d1, -(%sp)
 260.143 --	move.l ([_dl_loaded@GOT.w, %a5]), -(%sp)
 260.144 --	jbsr _dl_init@PLTPC
 260.145 --	addq.l #8, %sp
 260.146 --	addq.l #8, %sp
 260.147 --	| Pass our finalizer function to the user in %a1.
 260.148 --	move.l _dl_fini@GOT.w(%a5), %a1
 260.149 --	| Initialize %fp with the stack pointer.
 260.150 --	move.l %sp, %fp
 260.151 --	| Jump to the user's entry point.
 260.152 --	jmp (%a4)
 260.153 --	.size _dl_start_user, . - _dl_start_user
 260.154 -+	.text\n\
 260.155 -+	.globl _start\n\
 260.156 -+	.type _start,@function\n\
 260.157 -+_start:\n\
 260.158 -+	move.l %sp, -(%sp)\n\
 260.159 -+	jbsr _dl_start\n\
 260.160 -+	addq.l #4, %sp\n\
 260.161 -+	/* FALLTHRU */\n\
 260.162 -+\n\
 260.163 -+	.globl _dl_start_user\n\
 260.164 -+	.type _dl_start_user,@function\n\
 260.165 -+_dl_start_user:\n\
 260.166 -+	| Save the user entry point address in %a4.\n\
 260.167 -+	move.l %d0, %a4\n\
 260.168 -+	| Point %a5 at the GOT.\n\
 260.169 -+	lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\
 260.170 -+	| Remember the highest stack address.\n\
 260.171 -+	move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\
 260.172 -+	| See if we were run as a command with the executable file\n\
 260.173 -+	| name as an extra leading argument.\n\
 260.174 -+	move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\
 260.175 -+	| Pop the original argument count\n\
 260.176 -+	move.l (%sp)+, %d1\n\
 260.177 -+	| Subtract _dl_skip_args from it.\n\
 260.178 -+	sub.l %d0, %d1\n\
 260.179 -+	| Adjust the stack pointer to skip _dl_skip_args words.\n\
 260.180 -+	lea (%sp, %d0*4), %sp\n\
 260.181 -+	| Push back the modified argument count.\n\
 260.182 -+	move.l %d1, -(%sp)\n\
 260.183 -+	# Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
 260.184 -+	pea 8(%sp, %d1*4)\n\
 260.185 -+	pea 8(%sp)\n\
 260.186 -+	move.l %d1, -(%sp)\n\
 260.187 -+	move.l ([_rtld_global@GOT.w, %a5]), -(%sp)\n\
 260.188 -+	jbsr _dl_init@PLTPC\n\
 260.189 -+	addq.l #8, %sp\n\
 260.190 -+	addq.l #8, %sp\n\
 260.191 -+	| Pass our finalizer function to the user in %a1.\n\
 260.192 -+	move.l _dl_fini@GOT.w(%a5), %a1\n\
 260.193 -+	| Initialize %fp with the stack pointer.\n\
 260.194 -+	move.l %sp, %fp\n\
 260.195 -+	| Jump to the user's entry point.\n\
 260.196 -+	jmp (%a4)\n\
 260.197 -+	.size _dl_start_user, . - _dl_start_user\n\
 260.198 - 	.previous");
 260.199 - 
 260.200 - /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
 260.201 -@@ -251,7 +251,7 @@
 260.202 - 	       found.  */
 260.203 - 	    break;
 260.204 - 	  if (sym->st_size > refsym->st_size
 260.205 --	      || (sym->st_size < refsym->st_size && _dl_verbose))
 260.206 -+	      || (sym->st_size < refsym->st_size && GL(dl_verbose)))
 260.207 - 	    {
 260.208 - 	      extern char **_dl_argv;
 260.209 - 	      const char *strtab;
   261.1 --- a/patches/glibc/2.2.5/dl-machine-sh.patch	Tue Aug 14 19:32:22 2007 +0000
   261.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   261.3 @@ -1,41 +0,0 @@
   261.4 -Retrieved with 
   261.5 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/sh/dl-machine.h.diff?r1=1.21&r2=1.22&cvsroot=glibc'
   261.6 -
   261.7 -Fixes error
   261.8 -/tmp/ccFobT8r.s: Assembler messages:
   261.9 -/tmp/ccFobT8r.s:1819: Error: symbol `.L3' is already defined
  261.10 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/sh4-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/rtld.os] Error 1
  261.11 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc24/build/sh4-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/glibc-2.2.5/elf'
  261.12 -
  261.13 -See also http://sources.redhat.com/ml/libc-alpha/2002-07/msg00001.html
  261.14 -
  261.15 -===================================================================
  261.16 -RCS file: /cvs/glibc/libc/sysdeps/sh/dl-machine.h,v
  261.17 -retrieving revision 1.21
  261.18 -retrieving revision 1.22
  261.19 -diff -u -r1.21 -r1.22
  261.20 ---- libc/sysdeps/sh/dl-machine.h	2002/04/08 20:59:36	1.21
  261.21 -+++ libc/sysdeps/sh/dl-machine.h	2002/06/28 17:26:01	1.22
  261.22 -@@ -53,16 +53,16 @@
  261.23 - elf_machine_load_address (void)
  261.24 - {
  261.25 -   Elf32_Addr addr;
  261.26 --  asm ("mov.l .L1,r0\n\
  261.27 --	mov.l .L3,r2\n\
  261.28 -+  asm ("mov.l 1f,r0\n\
  261.29 -+	mov.l 3f,r2\n\
  261.30 - 	add r12,r2\n\
  261.31 - 	mov.l @(r0,r12),r0\n\
  261.32 --	bra .L2\n\
  261.33 -+	bra 2f\n\
  261.34 - 	 sub r0,r2\n\
  261.35 - 	.align 2\n\
  261.36 --	.L1: .long _dl_start@GOT\n\
  261.37 --	.L3: .long _dl_start@GOTOFF\n\
  261.38 --	.L2: mov r2,%0"
  261.39 -+	1: .long _dl_start@GOT\n\
  261.40 -+	3: .long _dl_start@GOTOFF\n\
  261.41 -+	2: mov r2,%0"
  261.42 -        : "=r" (addr) : : "r0", "r1", "r2");
  261.43 -   return addr;
  261.44 - }
   262.1 --- a/patches/glibc/2.2.5/dl-machine-sparc.patch	Tue Aug 14 19:32:22 2007 +0000
   262.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   262.3 @@ -1,230 +0,0 @@
   262.4 ---- glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h.old	Sat Jun  7 18:19:03 2003
   262.5 -+++ glibc-2.2.5/sysdeps/sparc/sparc32/dl-machine.h	Sat Jun  7 18:20:04 2003
   262.6 -@@ -148,23 +148,23 @@
   262.7 -    and then redirect to the address it returns.  */
   262.8 - #define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name)	\
   262.9 -   asm ( "\
  262.10 --	.text
  262.11 --	.globl	" #tramp_name "
  262.12 --	.type	" #tramp_name ", @function
  262.13 --	.align	32
  262.14 --" #tramp_name ":
  262.15 --	/* Set up the arguments to fixup --
  262.16 --	   %o0 = link_map out of plt0
  262.17 --	   %o1 = offset of reloc entry
  262.18 --	   %o2 = return address  */
  262.19 --	ld	[%o7 + 8], %o0
  262.20 --	srl	%g1, 10, %o1
  262.21 --	mov	%i7, %o2
  262.22 --	call	" #fixup_name "
  262.23 --	 sub	%o1, 4*12, %o1
  262.24 --	jmp	%o0
  262.25 --	 restore
  262.26 --	.size	" #tramp_name ", . - " #tramp_name "
  262.27 -+	.text\n\
  262.28 -+	.globl	" #tramp_name "\n\
  262.29 -+	.type	" #tramp_name ", @function\n\
  262.30 -+	.align	32\n\
  262.31 -+" #tramp_name ":\n\
  262.32 -+	/* Set up the arguments to fixup --\n\
  262.33 -+	   %o0 = link_map out of plt0\n\
  262.34 -+	   %o1 = offset of reloc entry\n\
  262.35 -+	   %o2 = return address  */\n\
  262.36 -+	ld	[%o7 + 8], %o0\n\
  262.37 -+	srl	%g1, 10, %o1\n\
  262.38 -+	mov	%i7, %o2\n\
  262.39 -+	call	" #fixup_name "\n\
  262.40 -+	 sub	%o1, 4*12, %o1\n\
  262.41 -+	jmp	%o0\n\
  262.42 -+	 restore\n\
  262.43 -+	.size	" #tramp_name ", . - " #tramp_name "\n\
  262.44 - 	.previous")
  262.45 - 
  262.46 - #ifndef PROF
  262.47 -@@ -199,96 +199,96 @@
  262.48 -    its return value is the user program's entry point.  */
  262.49 - 
  262.50 - #define RTLD_START __asm__ ("\
  262.51 --	.text
  262.52 --	.globl	_start
  262.53 --	.type	_start, @function
  262.54 --	.align	32
  262.55 --_start:
  262.56 --  /* Allocate space for functions to drop their arguments.  */
  262.57 --	sub	%sp, 6*4, %sp
  262.58 --  /* Pass pointer to argument block to _dl_start.  */
  262.59 --	call	_dl_start
  262.60 --	 add	%sp, 22*4, %o0
  262.61 --	/* FALTHRU */
  262.62 --	.globl	_dl_start_user
  262.63 --	.type	_dl_start_user, @function
  262.64 --_dl_start_user:
  262.65 --  /* Load the PIC register.  */
  262.66 --1:	call	2f
  262.67 --	 sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
  262.68 --2:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
  262.69 --	add	%l7, %o7, %l7
  262.70 --  /* Save the user entry point address in %l0 */
  262.71 --	mov	%o0, %l0
  262.72 --  /* Store the highest stack address.  */
  262.73 --	sethi	%hi(__libc_stack_end), %g2
  262.74 --	or	%g2, %lo(__libc_stack_end), %g2
  262.75 --	ld	[%l7 + %g2], %l1
  262.76 --	sethi	%hi(_dl_skip_args), %g2
  262.77 --	add	%sp, 6*4, %l2
  262.78 --	or	%g2, %lo(_dl_skip_args), %g2
  262.79 --	st	%l2, [%l1]
  262.80 --  /* See if we were run as a command with the executable file name as an
  262.81 --     extra leading argument.  If so, adjust the contents of the stack.  */
  262.82 --	ld	[%l7+%g2], %i0
  262.83 --	ld	[%i0], %i0
  262.84 --	tst	%i0
  262.85 --	beq	3f
  262.86 --	 ld	[%sp+22*4], %i5		/* load argc */
  262.87 --	/* Find out how far to shift.  */
  262.88 --	sethi	%hi(_dl_argv), %l3
  262.89 --	or	%l3, %lo(_dl_argv), %l3
  262.90 --	ld	[%l7+%l3], %l3
  262.91 --	sub	%i5, %i0, %i5
  262.92 --	ld	[%l3], %l4
  262.93 --	sll	%i0, 2, %i2
  262.94 --	st	%i5, [%sp+22*4]
  262.95 --	sub	%l4, %i2, %l4
  262.96 --	add	%sp, 23*4, %i1
  262.97 --	add	%i1, %i2, %i2
  262.98 --	st	%l4, [%l3]
  262.99 --	/* Copy down argv */
 262.100 --21:	ld	[%i2], %i3
 262.101 --	add	%i2, 4, %i2
 262.102 --	tst	%i3
 262.103 --	st	%i3, [%i1]
 262.104 --	bne	21b
 262.105 --	 add	%i1, 4, %i1
 262.106 --	/* Copy down env */
 262.107 --22:	ld	[%i2], %i3
 262.108 --	add	%i2, 4, %i2
 262.109 --	tst	%i3
 262.110 --	st	%i3, [%i1]
 262.111 --	bne	22b
 262.112 --	 add	%i1, 4, %i1
 262.113 --	/* Copy down auxiliary table.  */
 262.114 --23:	ld	[%i2], %i3
 262.115 --	ld	[%i2+4], %i4
 262.116 --	add	%i2, 8, %i2
 262.117 --	tst	%i3
 262.118 --	st	%i3, [%i1]
 262.119 --	st	%i4, [%i1+4]
 262.120 --	bne	23b
 262.121 --	 add	%i1, 8, %i1
 262.122 --  /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp.  */
 262.123 --3:	sethi	%hi(_dl_loaded), %o0
 262.124 --	add	%sp, 23*4, %o2
 262.125 --	orcc	%o0, %lo(_dl_loaded), %o0
 262.126 --	sll	%i5, 2, %o3
 262.127 --	ld	[%l7+%o0], %o0
 262.128 --	add	%o3, 4, %o3
 262.129 --	mov	%i5, %o1
 262.130 --	add	%o2, %o3, %o3
 262.131 --	call	_dl_init
 262.132 --	 ld	[%o0], %o0
 262.133 --  /* Pass our finalizer function to the user in %g1.  */
 262.134 --	sethi	%hi(_dl_fini), %g1
 262.135 --	or	%g1, %lo(_dl_fini), %g1
 262.136 --	ld	[%l7+%g1], %g1
 262.137 --  /* Jump to the user's entry point and deallocate the extra stack we got.  */
 262.138 --	jmp	%l0
 262.139 --	 add	%sp, 6*4, %sp
 262.140 --	.size   _dl_start_user, . - _dl_start_user
 262.141 -+	.text\n\
 262.142 -+	.globl	_start\n\
 262.143 -+	.type	_start, @function\n\
 262.144 -+	.align	32\n\
 262.145 -+_start:\n\
 262.146 -+  /* Allocate space for functions to drop their arguments.  */\n\
 262.147 -+	sub	%sp, 6*4, %sp\n\
 262.148 -+  /* Pass pointer to argument block to _dl_start.  */\n\
 262.149 -+	call	_dl_start\n\
 262.150 -+	 add	%sp, 22*4, %o0\n\
 262.151 -+	/* FALTHRU */\n\
 262.152 -+	.globl	_dl_start_user\n\
 262.153 -+	.type	_dl_start_user, @function\n\
 262.154 -+_dl_start_user:\n\
 262.155 -+  /* Load the PIC register.  */\n\
 262.156 -+1:	call	2f\n\
 262.157 -+	 sethi	%hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\
 262.158 -+2:	or	%l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7\n\
 262.159 -+	add	%l7, %o7, %l7\n\
 262.160 -+  /* Save the user entry point address in %l0 */\n\
 262.161 -+	mov	%o0, %l0\n\
 262.162 -+  /* Store the highest stack address.  */\n\
 262.163 -+	sethi	%hi(__libc_stack_end), %g2\n\
 262.164 -+	or	%g2, %lo(__libc_stack_end), %g2\n\
 262.165 -+	ld	[%l7 + %g2], %l1\n\
 262.166 -+	sethi	%hi(_dl_skip_args), %g2\n\
 262.167 -+	add	%sp, 6*4, %l2\n\
 262.168 -+	or	%g2, %lo(_dl_skip_args), %g2\n\
 262.169 -+	st	%l2, [%l1]\n\
 262.170 -+  /* See if we were run as a command with the executable file name as an\n\
 262.171 -+     extra leading argument.  If so, adjust the contents of the stack.  */\n\
 262.172 -+	ld	[%l7+%g2], %i0\n\
 262.173 -+	ld	[%i0], %i0\n\
 262.174 -+	tst	%i0\n\
 262.175 -+	beq	3f\n\
 262.176 -+	 ld	[%sp+22*4], %i5		/* load argc */\n\
 262.177 -+	/* Find out how far to shift.  */\n\
 262.178 -+	sethi	%hi(_dl_argv), %l3\n\
 262.179 -+	or	%l3, %lo(_dl_argv), %l3\n\
 262.180 -+	ld	[%l7+%l3], %l3\n\
 262.181 -+	sub	%i5, %i0, %i5\n\
 262.182 -+	ld	[%l3], %l4\n\
 262.183 -+	sll	%i0, 2, %i2\n\
 262.184 -+	st	%i5, [%sp+22*4]\n\
 262.185 -+	sub	%l4, %i2, %l4\n\
 262.186 -+	add	%sp, 23*4, %i1\n\
 262.187 -+	add	%i1, %i2, %i2\n\
 262.188 -+	st	%l4, [%l3]\n\
 262.189 -+	/* Copy down argv */\n\
 262.190 -+21:	ld	[%i2], %i3\n\
 262.191 -+	add	%i2, 4, %i2\n\
 262.192 -+	tst	%i3\n\
 262.193 -+	st	%i3, [%i1]\n\
 262.194 -+	bne	21b\n\
 262.195 -+	 add	%i1, 4, %i1\n\
 262.196 -+	/* Copy down env */\n\
 262.197 -+22:	ld	[%i2], %i3\n\
 262.198 -+	add	%i2, 4, %i2\n\
 262.199 -+	tst	%i3\n\
 262.200 -+	st	%i3, [%i1]\n\
 262.201 -+	bne	22b\n\
 262.202 -+	 add	%i1, 4, %i1\n\
 262.203 -+	/* Copy down auxiliary table.  */\n\
 262.204 -+23:	ld	[%i2], %i3\n\
 262.205 -+	ld	[%i2+4], %i4\n\
 262.206 -+	add	%i2, 8, %i2\n\
 262.207 -+	tst	%i3\n\
 262.208 -+	st	%i3, [%i1]\n\
 262.209 -+	st	%i4, [%i1+4]\n\
 262.210 -+	bne	23b\n\
 262.211 -+	 add	%i1, 8, %i1\n\
 262.212 -+  /* %o0 = _dl_loaded, %o1 = argc, %o2 = argv, %o3 = envp.  */\n\
 262.213 -+3:	sethi	%hi(_dl_loaded), %o0\n\
 262.214 -+	add	%sp, 23*4, %o2\n\
 262.215 -+	orcc	%o0, %lo(_dl_loaded), %o0\n\
 262.216 -+	sll	%i5, 2, %o3\n\
 262.217 -+	ld	[%l7+%o0], %o0\n\
 262.218 -+	add	%o3, 4, %o3\n\
 262.219 -+	mov	%i5, %o1\n\
 262.220 -+	add	%o2, %o3, %o3\n\
 262.221 -+	call	_dl_init\n\
 262.222 -+	 ld	[%o0], %o0\n\
 262.223 -+  /* Pass our finalizer function to the user in %g1.  */\n\
 262.224 -+	sethi	%hi(_dl_fini), %g1\n\
 262.225 -+	or	%g1, %lo(_dl_fini), %g1\n\
 262.226 -+	ld	[%l7+%g1], %g1\n\
 262.227 -+  /* Jump to the user's entry point and deallocate the extra stack we got.  */\n\
 262.228 -+	jmp	%l0\n\
 262.229 -+	 add	%sp, 6*4, %sp\n\
 262.230 -+	.size   _dl_start_user, . - _dl_start_user\n\
 262.231 - 	.previous");
 262.232 - 
 262.233 - static inline Elf32_Addr
   263.1 --- a/patches/glibc/2.2.5/errlist-1.9.patch	Tue Aug 14 19:32:22 2007 +0000
   263.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   263.3 @@ -1,25 +0,0 @@
   263.4 -===================================================================
   263.5 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/Attic/errlist.c,v
   263.6 -retrieving revision 1.8
   263.7 -retrieving revision 1.9
   263.8 -diff -u -r1.8 -r1.9
   263.9 ---- libc/sysdeps/unix/sysv/linux/errlist.c	2001/07/06 04:56:12	1.8
  263.10 -+++ libc/sysdeps/unix/sysv/linux/errlist.c	2002/05/20 06:56:53	1.9
  263.11 -@@ -1,4 +1,4 @@
  263.12 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
  263.13 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
  263.14 -    This file is part of the GNU C Library.
  263.15 - 
  263.16 -    The GNU C Library is free software; you can redistribute it and/or
  263.17 -@@ -38,10 +38,9 @@
  263.18 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
  263.19 - 
  263.20 - strong_alias (__old_sys_nerr, _old_sys_nerr);
  263.21 --weak_alias (__old_sys_nerr, _old_sys_nerr)
  263.22 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
  263.23 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
  263.24 --weak_alias (__old_sys_errlist, _old_sys_errlist);
  263.25 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
  263.26 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
  263.27 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
  263.28 - #endif
   264.1 --- a/patches/glibc/2.2.5/errlist-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   264.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   264.3 @@ -1,48 +0,0 @@
   264.4 -Subject: patch for arm
   264.5 -From: Philip Blundell <Philip dot Blundell at pobox dot com>
   264.6 -To: libc-hacker at sources dot redhat dot com
   264.7 -Content-Type: text/plain
   264.8 -Content-Transfer-Encoding: 7bit
   264.9 -Date: 22 Jul 2002 20:12:06 +0100
  264.10 -Message-Id: <1027365126.725.10.camel@kc>
  264.11 -Mime-Version: 1.0
  264.12 -
  264.13 -The mainline seems to need this patch in order to compile.
  264.14 -
  264.15 -p.
  264.16 -
  264.17 -2002-07-22  Philip Blundell  <philb@gnu.org>
  264.18 -
  264.19 -	* sysdeps/unix/sysv/linux/arm/errlist.c: Remove extra weak alias
  264.20 -	definiton of _old_sys_nerr.  Define _old_sys_errlist as strong
  264.21 -	alias.
  264.22 -
  264.23 -Index: sysdeps/unix/sysv/linux/arm/errlist.c
  264.24 -===================================================================
  264.25 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/errlist.c,v
  264.26 -retrieving revision 1.4
  264.27 -diff -u -p -r1.4 errlist.c
  264.28 ---- glibc/sysdeps/unix/sysv/linux/arm/errlist.c	6 Jul 2001 04:56:13 -0000	1.4
  264.29 -+++ glibc/sysdeps/unix/sysv/linux/arm/errlist.c	22 Jul 2002 19:10:57 -0000
  264.30 -@@ -1,4 +1,4 @@
  264.31 --/* Copyright (C) 1998, 2000 Free Software Foundation, Inc.
  264.32 -+/* Copyright (C) 1998, 2000, 2002 Free Software Foundation, Inc.
  264.33 -    This file is part of the GNU C Library.
  264.34 - 
  264.35 -    The GNU C Library is free software; you can redistribute it and/or
  264.36 -@@ -38,10 +38,9 @@ extern const char *const *__old_sys_errl
  264.37 - const int __old_sys_nerr = OLD_ERRLIST_SIZE;
  264.38 - 
  264.39 - strong_alias (__old_sys_nerr, _old_sys_nerr);
  264.40 --weak_alias (__old_sys_nerr, _old_sys_nerr)
  264.41 - compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0);
  264.42 - compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0);
  264.43 --weak_alias (__old_sys_errlist, _old_sys_errlist);
  264.44 -+strong_alias (__old_sys_errlist, _old_sys_errlist);
  264.45 - compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0);
  264.46 - compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0);
  264.47 - #endif
  264.48 -
  264.49 -
  264.50 -
  264.51 -
   265.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-fixup.patch	Tue Aug 14 19:32:22 2007 +0000
   265.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   265.3 @@ -1,68 +0,0 @@
   265.4 -Fixes
   265.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
   265.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
   265.7 -when building with gcc-3.4.0
   265.8 -
   265.9 -First hunk:
  265.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
  265.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
  265.12 -[rediffed against glibc-2.2.5]
  265.13 -
  265.14 -Second hunk:
  265.15 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
  265.16 -Use macro in fixup function definitions.
  265.17 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
  265.18 -[rediffed against glibc-2.3.2]
  265.19 -
  265.20 -===================================================================
  265.21 ---- glibc-2.2.5/sysdeps/i386/dl-machine.h.old	Sun Apr 11 11:53:23 2004
  265.22 -+++ glibc-2.2.5/sysdeps/i386/dl-machine.h	Sun Apr 11 11:55:38 2004
  265.23 -@@ -63,11 +63,12 @@
  265.24 -    destroys the passed register information.  */
  265.25 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
  265.26 -    without the `__unbounded' qualifier.  */
  265.27 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
  265.28 - static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
  265.29 --     __attribute__ ((regparm (2), unused));
  265.30 -+     ARCH_FIXUP_ATTRIBUTE;
  265.31 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
  265.32 - 				 ElfW(Addr) retaddr)
  265.33 --     __attribute__ ((regparm (3), unused));
  265.34 -+     ARCH_FIXUP_ATTRIBUTE;
  265.35 - #endif
  265.36 - 
  265.37 - /* Set up the loaded object described by L so its unrelocated PLT
  265.38 -===================================================================
  265.39 ---- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c	Fri Feb  7 11:41:12 2003
  265.40 -+++ glibc-2.3.2/elf/dl-runtime.c	Thu Apr  8 22:24:26 2004
  265.41 -@@ -36,6 +36,12 @@
  265.42 - # define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
  265.43 - #endif
  265.44 - 
  265.45 -+/* The fixup functions might have need special attributes.  If none
  265.46 -+   are provided define the macro as empty.  */
  265.47 -+#ifndef ARCH_FIXUP_ATTRIBUTE
  265.48 -+# define ARCH_FIXUP_ATTRIBUTE
  265.49 -+#endif
  265.50 -+
  265.51 - 
  265.52 - /* This function is called through a special trampoline from the PLT the
  265.53 -    first time each PLT entry is called.  We must perform the relocation
  265.54 -@@ -45,7 +51,7 @@
  265.55 -    function.  */
  265.56 - 
  265.57 - #ifndef ELF_MACHINE_NO_PLT
  265.58 --static ElfW(Addr) __attribute_used__
  265.59 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
  265.60 - fixup (
  265.61 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  265.62 -         ELF_MACHINE_RUNTIME_FIXUP_ARGS,
  265.63 -@@ -132,7 +138,7 @@
  265.64 - 
  265.65 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
  265.66 - 
  265.67 --static ElfW(Addr) __attribute_used__
  265.68 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
  265.69 - profile_fixup (
  265.70 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  265.71 -        ELF_MACHINE_RUNTIME_FIXUP_ARGS,
   266.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-grp.patch	Tue Aug 14 19:32:22 2007 +0000
   266.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   266.3 @@ -1,63 +0,0 @@
   266.4 -Fixes
   266.5 -initgroups.c: In function `internal_getgrouplist':
   266.6 -initgroups.c:179: error: parse error before "__FUNCTION__"
   266.7 -
   266.8 -CVSROOT:	/cvs/glibc
   266.9 -Module name:	libc
  266.10 -Changes by:	roland@sources.redhat.com	2001-12-16 21:52:12
  266.11 -
  266.12 -Modified files:
  266.13 -	nss            : nsswitch.c 
  266.14 -	grp            : initgroups.c 
  266.15 -
  266.16 -Log message:
  266.17 -	2001-12-16  Roland McGrath  <roland@frob.com>
  266.18 -	
  266.19 -	* nss/nsswitch.c (__nss_next): Don't use __FUNCTION__ as literal.
  266.20 -	* grp/initgroups.c (internal_getgrouplist): Likewise.
  266.21 -
  266.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/grp/initgroups.c.diff?r1=1.26&r2=1.27&cvsroot=glibc
  266.23 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/nss/nsswitch.c.diff?r1=1.52&r2=1.53&cvsroot=glibc
  266.24 -
  266.25 -===================================================================
  266.26 -RCS file: /cvs/glibc/libc/grp/initgroups.c,v
  266.27 -retrieving revision 1.26
  266.28 -retrieving revision 1.27
  266.29 -diff -u -r1.26 -r1.27
  266.30 ---- libc/grp/initgroups.c	2001/07/06 04:54:46	1.26
  266.31 -+++ libc/grp/initgroups.c	2001/12/17 05:52:11	1.27
  266.32 -@@ -176,7 +176,7 @@
  266.33 - 
  266.34 -       /* This is really only for debugging.  */
  266.35 -       if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
  266.36 --	__libc_fatal ("illegal status in " __FUNCTION__);
  266.37 -+	__libc_fatal ("illegal status in internal_getgrouplist");
  266.38 - 
  266.39 -       if (status != NSS_STATUS_SUCCESS
  266.40 - 	  && nss_next_action (nip, status) == NSS_ACTION_RETURN)
  266.41 -@@ -214,7 +214,7 @@
  266.42 -     }
  266.43 -   else
  266.44 -     *ngroups = result;
  266.45 --      
  266.46 -+
  266.47 -   memcpy (groups, newgroups, *ngroups * sizeof (gid_t));
  266.48 - 
  266.49 -   free (newgroups);
  266.50 -
  266.51 -===================================================================
  266.52 -RCS file: /cvs/glibc/libc/nss/nsswitch.c,v
  266.53 -retrieving revision 1.52
  266.54 -retrieving revision 1.53
  266.55 -diff -u -r1.52 -r1.53
  266.56 ---- libc/nss/nsswitch.c	2001/07/17 08:21:36	1.52
  266.57 -+++ libc/nss/nsswitch.c	2001/12/17 05:52:11	1.53
  266.58 -@@ -178,7 +178,7 @@
  266.59 -     {
  266.60 -       /* This is really only for debugging.  */
  266.61 -        if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
  266.62 --	 __libc_fatal ("illegal status in " __FUNCTION__);
  266.63 -+	 __libc_fatal ("illegal status in __nss_next");
  266.64 - 
  266.65 -        if (nss_next_action (*ni, status) == NSS_ACTION_RETURN)
  266.66 - 	 return 1;
   267.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-3.4-weakextern.patch	Tue Aug 14 19:32:22 2007 +0000
   267.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   267.3 @@ -1,48 +0,0 @@
   267.4 -Suggested by Jake Page <jake at cs dot stanford dot edu>
   267.5 -in http://sources.redhat.com/ml/crossgcc/2004-07/msg00169.html
   267.6 -but the libc-symbols.h fragment has been reworked to fix typos
   267.7 -and to still work on gcc-2.95.3, which lacks _Pragma.
   267.8 -
   267.9 -His comment was:
  267.10 - Fixes gcc-3.4 optimizing out comparisons to weak external symbols in code
  267.11 - like:
  267.12 -  if (__pthread_mutex_init != NULL)
  267.13 -    __pthread_mutex_init(...);
  267.14 - that causes segfaults during libc init when not linked to libpthread
  267.15 -
  267.16 -diff -uNr glibc-2.2.5-orig/resolv/res_libc.c glibc-2.2.5/resolv/res_libc.c
  267.17 ---- glibc-2.2.5-orig/resolv/res_libc.c	2001-02-12 12:23:34.000000000 -0800
  267.18 -+++ glibc-2.2.5/resolv/res_libc.c	2004-07-27 22:56:32.000000000 -0700
  267.19 -@@ -84,7 +84,8 @@
  267.20 - 
  267.21 - #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2)
  267.22 - # undef res_init
  267.23 --strong_alias (__res_init, __res_init_weak);
  267.24 -+extern int __res_init_weak (void);
  267.25 - weak_extern (__res_init_weak);
  267.26 -+strong_alias (__res_init, __res_init_weak);
  267.27 - compat_symbol (libc, __res_init_weak, res_init, GLIBC_2_0);
  267.28 - #endif
  267.29 ---- glibc-2.2.5/include/libc-symbols.h.old	Fri Aug 13 04:20:55 2004
  267.30 -+++ glibc-2.2.5/include/libc-symbols.h	Fri Aug 13 04:37:06 2004
  267.31 -@@ -108,10 +108,16 @@
  267.32 - 
  267.33 - /* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined).  */
  267.34 - #  define weak_extern(symbol) _weak_extern (symbol)
  267.35 --#  ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
  267.36 --#   define _weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol);
  267.37 --#  else
  267.38 --#   define _weak_extern(symbol)    asm (".weak " __SYMBOL_PREFIX #symbol);
  267.39 -+#  if __GNUC__ >= 3
  267.40 -+    /* see http://sources.redhat.com/ml/libc-alpha/2003-01/msg00043.html */
  267.41 -+#   define __weak_extern_1(expr) _Pragma(#expr)
  267.42 -+#   define _weak_extern(symbol) __weak_extern_1(weak symbol)
  267.43 -+#  else /* __GNUC__ == 2 */
  267.44 -+#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
  267.45 -+#    define _weak_extern(symbol) asm (".weakext " __SYMBOL_PREFIX #symbol);
  267.46 -+#   else
  267.47 -+#    define _weak_extern(symbol)    asm (".weak " __SYMBOL_PREFIX #symbol);
  267.48 -+#   endif
  267.49 - #  endif
  267.50 - 
  267.51 - # else
   268.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-configure.patch	Tue Aug 14 19:32:22 2007 +0000
   268.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   268.3 @@ -1,21 +0,0 @@
   268.4 -Fixes
   268.5 -checking version of powerpc-405-linux-gnu-gcc ... 4.0.0, bad
   268.6 -checking for gnumake... no
   268.7 -checking for gmake... no
   268.8 -checking for make... make
   268.9 -checking version of make... 3.80, ok
  268.10 -configure: error:
  268.11 -*** These critical programs are missing or too old:gcc 
  268.12 -
  268.13 -
  268.14 ---- glibc-2.2.5/configure.old	2005-03-10 00:23:46.374213600 -0800
  268.15 -+++ glibc-2.2.5/configure	2005-03-10 00:25:13.313996744 -0800
  268.16 -@@ -1476,7 +1476,7 @@
  268.17 -   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
  268.18 -   case $ac_prog_version in
  268.19 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  268.20 --    *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-*)
  268.21 -+    *gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|4.0*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*)
  268.22 -        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  268.23 -     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  268.24 - 
   269.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf-2.patch	Tue Aug 14 19:32:22 2007 +0000
   269.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   269.3 @@ -1,43 +0,0 @@
   269.4 -Fixes
   269.5 -dynamic-link.h:38: error: invalid storage class for function 'elf_get_dynamic_info'
   269.6 -kinda like http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dynamic-link.h.diff?r1=1.50&r2=1.51&cvsroot=glibc does
   269.7 -and fixes
   269.8 -In file included from dynamic-link.h:218,
   269.9 -                 from dl-reloc.c:153:
  269.10 -do-rel.h:46: error: invalid storage class for function 'elf_dynamic_do_rel'
  269.11 -
  269.12 ---- /home/dank/downloads/glibc-2.2.5/elf/dynamic-link.h	2001-07-05 21:54:46.000000000 -0700
  269.13 -+++ glibc-2.2.5/elf/dynamic-link.h	2005-03-11 14:18:34.542858064 -0800
  269.14 -@@ -33,7 +33,16 @@
  269.15 - 
  269.16 - /* Read the dynamic section at DYN and fill in INFO with indices DT_*.  */
  269.17 - 
  269.18 -+#if __GNUC__ >= 4
  269.19 -+#ifndef RESOLVE_MAP
  269.20 -+static
  269.21 -+#else
  269.22 -+auto
  269.23 -+#endif
  269.24 -+inline void __attribute__ ((unused, always_inline))
  269.25 -+#else
  269.26 - static inline void __attribute__ ((unused))
  269.27 -+#endif
  269.28 - elf_get_dynamic_info (struct link_map *l)
  269.29 - {
  269.30 -   ElfW(Dyn) *dyn = l->l_ld;
  269.31 -
  269.32 ---- /home/dank/downloads/glibc-2.2.5/elf/do-rel.h	2001-08-24 11:45:23.000000000 -0700
  269.33 -+++ glibc-2.2.5/elf/do-rel.h	2005-03-11 14:26:43.538519424 -0800
  269.34 -@@ -39,7 +39,12 @@
  269.35 -    relocations; they should be set up to call _dl_runtime_resolve, rather
  269.36 -    than fully resolved now.  */
  269.37 - 
  269.38 -+#if __GNUC__ >= 4
  269.39 -+auto inline void
  269.40 -+__attribute ((always_inline))
  269.41 -+#else
  269.42 - static inline void
  269.43 -+#endif
  269.44 - elf_dynamic_do_rel (struct link_map *map,
  269.45 - 		    ElfW(Addr) reladdr, ElfW(Addr) relsize,
  269.46 - 		    int lazy)
   270.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf.patch	Tue Aug 14 19:32:22 2007 +0000
   270.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   270.3 @@ -1,39 +0,0 @@
   270.4 -Fixes
   270.5 -
   270.6 -dl-load.c: In function '_dl_map_object_from_fd':
   270.7 -dl-load.c:1089: error: invalid lvalue in assignment
   270.8 -dl-load.c:1109: error: invalid lvalue in assignment
   270.9 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
  270.10 -
  270.11 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
  270.12 -rediffed against glibc-2.2.5
  270.13 -
  270.14 -Revision 1.236, Sat Feb 21 18:25:41 2004 UTC by aj
  270.15 -Branch: MAIN
  270.16 -Changes since 1.235: +2 -2 lines
  270.17 -Diff to previous 1.235 (colored)
  270.18 -
  270.19 -(_dl_map_object_from_fd): Fix casts used as lvalue.
  270.20 -
  270.21 -
  270.22 -diff -ur glibc-2.2.5/elf/dl-load.c glibc-2.2.5-patched/elf/dl-load.c
  270.23 ---- glibc-2.2.5/elf/dl-load.c	2001-11-10 14:43:10.000000000 -0800
  270.24 -+++ glibc-2.2.5-patched/elf/dl-load.c	2005-03-11 13:48:18.211982328 -0800
  270.25 -@@ -1086,7 +1086,7 @@
  270.26 -       }
  270.27 -     else
  270.28 -       /* Adjust the PT_PHDR value by the runtime load address.  */
  270.29 --      (ElfW(Addr)) l->l_phdr += l->l_addr;
  270.30 -+      l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
  270.31 -   }
  270.32 - 
  270.33 -   /* We are done mapping in the file.  We no longer need the descriptor.  */
  270.34 -@@ -1106,7 +1106,7 @@
  270.35 - 	}
  270.36 -     }
  270.37 -   else
  270.38 --    (ElfW(Addr)) l->l_ld += l->l_addr;
  270.39 -+    l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
  270.40 - 
  270.41 -   l->l_entry += l->l_addr;
  270.42 - 
   271.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-gconv.patch	Tue Aug 14 19:32:22 2007 +0000
   271.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   271.3 @@ -1,226 +0,0 @@
   271.4 -Fixes
   271.5 -gconv_open.c: In function `__gconv_open':
   271.6 -gconv_open.c:186: error: invalid lvalue in assignment
   271.7 -when building glibc-2.2.5 with gcc-4.0.
   271.8 -Same as ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.5-gconv.patch
   271.9 -but rediffed against glibc-2.2.5.
  271.10 -
  271.11 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_simple.c.diff?r1=1.59&r2=1.63&cvsroot=glibc'
  271.12 -        * (internal_ucs4_loop): Fix typo in last change.
  271.13 -
  271.14 -        * (internal_ucs4le_loop): Remove cast used as lvalue.
  271.15 -
  271.16 -        * Fix last commit.
  271.17 -
  271.18 -	* iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
  271.19 -	(internal_ucs4le_loop_single): Likewise.
  271.20 -	(ucs4_internal_loop): Likewise.
  271.21 -	(BODY): Likewise.
  271.22 -	(internal_ucs4_loop_single): Likewise.
  271.23 -
  271.24 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_open.c.diff?r1=1.32&r2=1.33&cvsroot=glibc'
  271.25 -	* iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
  271.26 -	(internal_ucs4le_loop_single): Likewise.
  271.27 -	(ucs4_internal_loop): Likewise.
  271.28 -	(BODY): Likewise.
  271.29 -	(internal_ucs4_loop_single): Likewise.
  271.30 -
  271.31 -
  271.32 -===================================================================
  271.33 -RCS file: /cvs/glibc/libc/iconv/gconv_open.c,v
  271.34 -retrieving revision 1.32
  271.35 -retrieving revision 1.33
  271.36 -diff -u -r1.32 -r1.33
  271.37 ---- libc/iconv/gconv_open.c	2001/11/29 04:51:58	1.32
  271.38 -+++ libc/iconv/gconv_open.c	2004/02/07 15:56:32	1.33
  271.39 -@@ -1,5 +1,5 @@
  271.40 - /* Find matching transformation algorithms and initialize steps.
  271.41 --   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  271.42 -+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
  271.43 -    This file is part of the GNU C Library.
  271.44 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  271.45 - 
  271.46 -@@ -182,8 +182,13 @@
  271.47 - 	      || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
  271.48 - 	    lastp = runp;
  271.49 - 	  else
  271.50 --	    /* This means we haven't found the module.  Remove it.  */
  271.51 --	    (lastp == NULL ? trans : lastp->next) = runp->next;
  271.52 -+	    {
  271.53 -+	      /* This means we haven't found the module.  Remove it.  */
  271.54 -+	      if (lastp == NULL)
  271.55 -+		trans  = runp->next;
  271.56 -+	      else
  271.57 -+		lastp->next  = runp->next;
  271.58 -+	    }
  271.59 - 	}
  271.60 - 
  271.61 -       /* Allocate room for handle.  */
  271.62 -===================================================================
  271.63 ---- glibc-2.2.5/iconv/gconv_simple.c.old	2001-08-03 15:06:46.000000000 -0700
  271.64 -+++ glibc-2.2.5/iconv/gconv_simple.c	2005-03-10 00:49:45.558181608 -0800
  271.65 -@@ -1,5 +1,5 @@
  271.66 - /* Simple transformations functions.
  271.67 --   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  271.68 -+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
  271.69 -    This file is part of the GNU C Library.
  271.70 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  271.71 - 
  271.72 -@@ -73,12 +73,13 @@
  271.73 - #if __BYTE_ORDER == __LITTLE_ENDIAN
  271.74 -   /* Sigh, we have to do some real work.  */
  271.75 -   size_t cnt;
  271.76 -+  uint32_t *outptr32 = (uint32_t *) outptr;
  271.77 - 
  271.78 -   for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
  271.79 --    *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
  271.80 -+    *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
  271.81 - 
  271.82 -   *inptrp = inptr;
  271.83 --  *outptrp = outptr;
  271.84 -+  *outptrp = (unsigned char *) outptr32;
  271.85 - #elif __BYTE_ORDER == __BIG_ENDIAN
  271.86 -   /* Simply copy the data.  */
  271.87 -   *inptrp = inptr + n_convert * 4;
  271.88 -@@ -176,13 +177,16 @@
  271.89 -   (*outptrp)[2] = state->__value.__wchb[1];
  271.90 -   (*outptrp)[3] = state->__value.__wchb[0];
  271.91 - 
  271.92 --  *outptrp += 4;
  271.93 - #elif __BYTE_ORDER == __BIG_ENDIAN
  271.94 -   /* XXX unaligned */
  271.95 --  *(*((uint32_t **) outptrp)++) = state->__value.__wch;
  271.96 -+  (*outptrp)[0] = state->__value.__wchb[0];
  271.97 -+  (*outptrp)[1] = state->__value.__wchb[1];
  271.98 -+  (*outptrp)[2] = state->__value.__wchb[2];
  271.99 -+  (*outptrp)[3] = state->__value.__wchb[3];
 271.100 - #else
 271.101 - # error "This endianess is not supported."
 271.102 - #endif
 271.103 -+  *outptrp += 4;
 271.104 - 
 271.105 -   /* Clear the state buffer.  */
 271.106 -   state->__count &= ~7;
 271.107 -@@ -251,7 +255,8 @@
 271.108 - 	  return __GCONV_ILLEGAL_INPUT;
 271.109 - 	}
 271.110 - 
 271.111 --      *((uint32_t *) outptr)++ = inval;
 271.112 -+      *((uint32_t *) outptr) = inval;
 271.113 -+      outptr += sizeof (uint32_t);
 271.114 -     }
 271.115 - 
 271.116 -   *inptrp = inptr;
 271.117 -@@ -427,9 +432,11 @@
 271.118 - #if __BYTE_ORDER == __BIG_ENDIAN
 271.119 -   /* Sigh, we have to do some real work.  */
 271.120 -   size_t cnt;
 271.121 -+  uint32_t *outptr32 = (uint32_t *) outptr;
 271.122 - 
 271.123 -   for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
 271.124 --    *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
 271.125 -+    *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
 271.126 -+  outptr = (unsigned char *) outptr32;
 271.127 - 
 271.128 -   *inptrp = inptr;
 271.129 -   *outptrp = outptr;
 271.130 -@@ -530,12 +537,17 @@
 271.131 -   (*outptrp)[2] = state->__value.__wchb[1];
 271.132 -   (*outptrp)[3] = state->__value.__wchb[0];
 271.133 - 
 271.134 --  *outptrp += 4;
 271.135 - #else
 271.136 -   /* XXX unaligned */
 271.137 --  *(*((uint32_t **) outptrp)++) = state->__value.__wch;
 271.138 -+  (*outptrp)[0] = state->__value.__wchb[0];
 271.139 -+  (*outptrp)[1] = state->__value.__wchb[1];
 271.140 -+  (*outptrp)[2] = state->__value.__wchb[2];
 271.141 -+  (*outptrp)[3] = state->__value.__wchb[3];
 271.142 -+
 271.143 - #endif
 271.144 - 
 271.145 -+  *outptrp += 4;
 271.146 -+
 271.147 -   /* Clear the state buffer.  */
 271.148 -   state->__count &= ~7;
 271.149 - 
 271.150 -@@ -600,7 +612,8 @@
 271.151 - 	  return __GCONV_ILLEGAL_INPUT;
 271.152 - 	}
 271.153 - 
 271.154 --      *((uint32_t *) outptr)++ = inval;
 271.155 -+      *((uint32_t *) outptr) = inval;
 271.156 -+      outptr += sizeof (uint32_t);
 271.157 -     }
 271.158 - 
 271.159 -   *inptrp = inptr;
 271.160 -@@ -782,7 +795,8 @@
 271.161 -       }									      \
 271.162 -     else								      \
 271.163 -       /* It's an one byte sequence.  */					      \
 271.164 --      *((uint32_t *) outptr)++ = *inptr++;				      \
 271.165 -+      *((uint32_t *) outptr) = *inptr++;				      \
 271.166 -+      outptr += sizeof (uint32_t);					      \
 271.167 -   }
 271.168 - #define LOOP_NEED_FLAGS
 271.169 - #include <iconv/loop.c>
 271.170 -@@ -812,7 +826,8 @@
 271.171 -       }									      \
 271.172 -     else								      \
 271.173 -       /* It's an one byte sequence.  */					      \
 271.174 --      *outptr++ = *((const uint32_t *) inptr)++;			      \
 271.175 -+      *outptr++ = *((const uint32_t *) inptr);				      \
 271.176 -+      inptr += sizeof (uint32_t);					      \
 271.177 -   }
 271.178 - #define LOOP_NEED_FLAGS
 271.179 - #include <iconv/loop.c>
 271.180 -@@ -1031,7 +1046,8 @@
 271.181 -       }									      \
 271.182 - 									      \
 271.183 -     /* Now adjust the pointers and store the result.  */		      \
 271.184 --    *((uint32_t *) outptr)++ = ch;					      \
 271.185 -+    *((uint32_t *) outptr) = ch;					      \
 271.186 -+    outptr += sizeof (uint32_t);					      \
 271.187 -   }
 271.188 - #define LOOP_NEED_FLAGS
 271.189 - 
 271.190 -@@ -1174,7 +1190,8 @@
 271.191 - 	continue;							      \
 271.192 -       }									      \
 271.193 - 									      \
 271.194 --    *((uint32_t *) outptr)++ = u1;					      \
 271.195 -+    *((uint32_t *) outptr) = u1;					      \
 271.196 -+    outptr += sizeof (uint32_t);					      \
 271.197 -     inptr += 2;								      \
 271.198 -   }
 271.199 - #define LOOP_NEED_FLAGS
 271.200 -@@ -1224,7 +1241,8 @@
 271.201 -       }									      \
 271.202 -     else 								      \
 271.203 -       {									      \
 271.204 --	*((uint16_t *) outptr)++ = val;					      \
 271.205 -+	*((uint16_t *) outptr) = val;					      \
 271.206 -+        outptr += sizeof (uint16_t);					      \
 271.207 - 	inptr += 4;							      \
 271.208 -       }									      \
 271.209 -   }
 271.210 -@@ -1265,7 +1283,8 @@
 271.211 - 	continue;							      \
 271.212 -       }									      \
 271.213 - 									      \
 271.214 --    *((uint32_t *) outptr)++ = u1;					      \
 271.215 -+    *((uint32_t *) outptr) = u1;					      \
 271.216 -+    outptr += sizeof (uint32_t);					      \
 271.217 -     inptr += 2;								      \
 271.218 -   }
 271.219 - #define LOOP_NEED_FLAGS
 271.220 -@@ -1314,7 +1333,8 @@
 271.221 -       }									      \
 271.222 -     else 								      \
 271.223 -       {									      \
 271.224 --	*((uint16_t *) outptr)++ = bswap_16 (val);			      \
 271.225 -+	*((uint16_t *) outptr) = bswap_16 (val);			      \
 271.226 -+	outptr += sizeof (uint16_t);					      \
 271.227 - 	inptr += 4;							      \
 271.228 -       }									      \
 271.229 -   }
   272.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-i386.patch	Tue Aug 14 19:32:22 2007 +0000
   272.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   272.3 @@ -1,49 +0,0 @@
   272.4 -Fixes
   272.5 -../sysdeps/i386/dl-machine.h: In function '_dl_relocate_object':
   272.6 -../sysdeps/i386/dl-machine.h:306: error: invalid storage class for function 'elf_machine_rel'
   272.7 -../sysdeps/i386/dl-machine.h:385: error: invalid storage class for function 'elf_machine_rel_relative'
   272.8 -../sysdeps/i386/dl-machine.h:393: error: invalid storage class for function 'elf_machine_lazy_rel'
   272.9 -
  272.10 -when building glibc-2.2.5 with gcc-4.0.
  272.11 -
  272.12 ---- /home/dank/downloads/glibc-2.2.5/sysdeps/i386/dl-machine.h	2001-08-30 16:09:10.000000000 -0700
  272.13 -+++ glibc-2.2.5/sysdeps/i386/dl-machine.h	2005-03-11 14:00:22.601858328 -0800
  272.14 -@@ -298,7 +299,12 @@
  272.15 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
  272.16 -    MAP is the object containing the reloc.  */
  272.17 - 
  272.18 -+#if __GNUC__ >= 4
  272.19 -+auto inline void
  272.20 -+__attribute ((always_inline))
  272.21 -+#else
  272.22 - static inline void
  272.23 -+#endif
  272.24 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
  272.25 - 		 const Elf32_Sym *sym, const struct r_found_version *version,
  272.26 - 		 Elf32_Addr *const reloc_addr)
  272.27 -@@ -378,7 +384,12 @@
  272.28 -     }
  272.29 - }
  272.30 - 
  272.31 -+#if __GNUC__ >= 4
  272.32 -+auto inline void
  272.33 -+__attribute ((always_inline))
  272.34 -+#else
  272.35 - static inline void
  272.36 -+#endif
  272.37 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
  272.38 - 			  Elf32_Addr *const reloc_addr)
  272.39 - {
  272.40 -@@ -386,7 +397,12 @@
  272.41 -   *reloc_addr += l_addr;
  272.42 - }
  272.43 - 
  272.44 -+#if __GNUC__ >= 4
  272.45 -+auto inline void
  272.46 -+__attribute ((always_inline))
  272.47 -+#else
  272.48 - static inline void
  272.49 -+#endif
  272.50 - elf_machine_lazy_rel (struct link_map *map,
  272.51 - 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
  272.52 - {
   273.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-iconv.patch	Tue Aug 14 19:32:22 2007 +0000
   273.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   273.3 @@ -1,20 +0,0 @@
   273.4 -Fixes
   273.5 -iconvconfig.c: In function 'write_output':
   273.6 -iconvconfig.c:973: error: invalid storage class for function 'name_insert'
   273.7 -
   273.8 ---- glibc-2.2.5/iconv/iconvconfig.c.old	2002-01-20 19:20:53.000000000 -0800
   273.9 -+++ glibc-2.2.5/iconv/iconvconfig.c	2005-03-11 14:30:27.000000000 -0800
  273.10 -@@ -969,7 +969,12 @@
  273.11 -   char tmpfname[sizeof (GCONV_MODULES_CACHE) + strlen (".XXXXXX")];
  273.12 - 
  273.13 -   /* Function to insert the names.  */
  273.14 --  static void name_insert (const void *nodep, VISIT value, int level)
  273.15 -+#if __GNUC__ >= 4
  273.16 -+  auto 
  273.17 -+#else
  273.18 -+  static 
  273.19 -+#endif
  273.20 -+  void name_insert (const void *nodep, VISIT value, int level)
  273.21 -     {
  273.22 -       struct name *name;
  273.23 -       unsigned int idx;
   274.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-iconvdata.patch	Tue Aug 14 19:32:22 2007 +0000
   274.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   274.3 @@ -1,114 +0,0 @@
   274.4 -Fixes
   274.5 -
   274.6 -In file included from jis0208.c:23:
   274.7 -jis0208.h:32: error: array type has incomplete element type
   274.8 -when building with gcc-4.0
   274.9 -
  274.10 -In file included from cp1258.c:869:
  274.11 -../iconv/skeleton.c: In function 'gconv':
  274.12 -../iconv/skeleton.c:323: error: invalid lvalue in increment
  274.13 -
  274.14 -In file included from cp1255.c:550:
  274.15 -../iconv/skeleton.c: In function 'gconv':
  274.16 -../iconv/skeleton.c:323: error: invalid lvalue in increment
  274.17 -
  274.18 -In file included from gb18030.c:22114:
  274.19 -../iconv/loop.c: In function 'from_gb18030':
  274.20 -../iconv/loop.c:282: error: invalid lvalue in increment
  274.21 -../iconv/loop.c: In function 'from_gb18030_single':
  274.22 -../iconv/loop.c:384: error: invalid lvalue in increment
  274.23 -
  274.24 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/iso8859-1.c	2001-08-03 15:06:50.000000000 -0700
  274.25 -+++ glibc-2.2.5/iconvdata/iso8859-1.c	2005-03-11 15:09:15.233602808 -0800
  274.26 -@@ -35,7 +35,8 @@
  274.27 - #define MIN_NEEDED_OUTPUT	MIN_NEEDED_TO
  274.28 - #define LOOPFCT			FROM_LOOP
  274.29 - #define BODY \
  274.30 --  *((uint32_t *) outptr)++ = *inptr++;
  274.31 -+  *((uint32_t *) outptr) = *inptr++;					      \
  274.32 -+  outptr += sizeof (uint32_t);
  274.33 - #include <iconv/loop.c>
  274.34 - 
  274.35 - 
  274.36 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/jis0208.h	2001-07-05 21:54:52.000000000 -0700
  274.37 -+++ glibc-2.2.5/iconvdata/jis0208.h	2005-03-11 15:27:23.295192304 -0800
  274.38 -@@ -24,15 +24,6 @@
  274.39 - #include <gconv.h>
  274.40 - #include <stdint.h>
  274.41 - 
  274.42 --/* Conversion table.  */
  274.43 --extern const uint16_t __jis0208_to_ucs[];
  274.44 --
  274.45 --extern const char __jisx0208_from_ucs4_lat1[256][2];
  274.46 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
  274.47 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
  274.48 --extern const char __jisx0208_from_ucs_tab[][2];
  274.49 --
  274.50 --
  274.51 - /* Struct for table with indeces in UCS mapping table.  */
  274.52 - struct jisx0208_ucs_idx
  274.53 - {
  274.54 -@@ -42,6 +33,15 @@
  274.55 - };
  274.56 - 
  274.57 - 
  274.58 -+/* Conversion table.  */
  274.59 -+extern const uint16_t __jis0208_to_ucs[];
  274.60 -+
  274.61 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
  274.62 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
  274.63 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
  274.64 -+extern const char __jisx0208_from_ucs_tab[][2];
  274.65 -+
  274.66 -+
  274.67 - static inline uint32_t
  274.68 - jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
  274.69 - {
  274.70 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/cp1258.c	2001-07-05 21:54:49.000000000 -0700
  274.71 -+++ glibc-2.2.5/iconvdata/cp1258.c	2005-03-11 15:41:44.953200376 -0800
  274.72 -@@ -66,7 +66,8 @@
  274.73 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
  274.74 - 	    {								      \
  274.75 - 	      /* Write out the last character.  */			      \
  274.76 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
  274.77 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
  274.78 -+	      outbuf += sizeof (uint32_t);				      \
  274.79 - 	      data->__statep->__count = 0;				      \
  274.80 - 	    }								      \
  274.81 - 	  else								      \
  274.82 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/cp1255.c	2001-07-05 21:54:49.000000000 -0700
  274.83 -+++ glibc-2.2.5/iconvdata/cp1255.c	2005-03-11 15:47:40.689120296 -0800
  274.84 -@@ -65,7 +65,8 @@
  274.85 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
  274.86 - 	    {								      \
  274.87 - 	      /* Write out the last character.  */			      \
  274.88 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
  274.89 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
  274.90 -+	      outbuf += sizeof (uint32_t);				      \
  274.91 - 	      data->__statep->__count = 0;				      \
  274.92 - 	    }								      \
  274.93 - 	  else								      \
  274.94 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/gb18030.c	2001-08-03 15:06:47.000000000 -0700
  274.95 -+++ glibc-2.2.5/iconvdata/gb18030.c	2005-03-11 15:54:59.060477720 -0800
  274.96 -@@ -22108,7 +22108,8 @@
  274.97 - 	    }							      	      \
  274.98 - 	}								      \
  274.99 - 									      \
 274.100 --    *((uint32_t *) outptr)++ = ch;					      \
 274.101 -+    *((uint32_t *) outptr) = ch;					      \
 274.102 -+    outptr += sizeof (uint32_t);					      \
 274.103 -   }
 274.104 - #define LOOP_NEED_FLAGS
 274.105 - #include <iconv/loop.c>
 274.106 ---- /home/dank/downloads/glibc-2.2.5/iconvdata/iso-2022-cn-ext.c	2001-07-05 21:54:51.000000000 -0700
 274.107 -+++ glibc-2.2.5/iconvdata/iso-2022-cn-ext.c	2005-03-11 15:55:42.002949472 -0800
 274.108 -@@ -411,7 +411,8 @@
 274.109 - 	  }								      \
 274.110 -       }									      \
 274.111 - 									      \
 274.112 --    *((uint32_t *) outptr)++ = ch;					      \
 274.113 -+    *((uint32_t *) outptr) = ch;					      \
 274.114 -+    outptr += sizeof (uint32_t);					      \
 274.115 -   }
 274.116 - #define EXTRA_LOOP_DECLS	, int *setp
 274.117 - #define INIT_PARAMS		int set = (*setp >> 3) & CURRENT_MASK; \
   275.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-locale.patch	Tue Aug 14 19:32:22 2007 +0000
   275.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   275.3 @@ -1,49 +0,0 @@
   275.4 -Fixes
   275.5 -
   275.6 -In file included from strcoll.c:101:
   275.7 -../locale/weight.h: In function 'strcoll':
   275.8 -../locale/weight.h:23: error: invalid storage class for function 'findidx'
   275.9 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/string/strcoll.o] Error 1
  275.10 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/string'
  275.11 -make[1]: *** [string/subdir_lib] Error 2
  275.12 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
  275.13 -make: *** [all] Error 2
  275.14 -
  275.15 -Discussed here
  275.16 -http://sources.redhat.com/ml/libc-hacker/2004-09/msg00015.html
  275.17 -the fix checked in to cvs seems to be
  275.18 -http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg01071.html
  275.19 -but that fix doesn't support older gcc's, so I can't use it directly.
  275.20 -
  275.21 -Here's a fix the does work with older versions of gcc:
  275.22 -
  275.23 ---- glibc-2.2.5/locale/weight.h.old	2001-07-05 21:55:33.000000000 -0700
  275.24 -+++ glibc-2.2.5/locale/weight.h	2005-03-10 16:07:46.669579888 -0800
  275.25 -@@ -18,7 +18,12 @@
  275.26 -    02111-1307 USA.  */
  275.27 - 
  275.28 - /* Find index of weight.  */
  275.29 -+#if __GNUC__ >= 4
  275.30 -+auto inline int32_t
  275.31 -+__attribute ((always_inline))
  275.32 -+#else
  275.33 - static inline int32_t
  275.34 -+#endif
  275.35 - findidx (const unsigned char **cpp)
  275.36 - {
  275.37 -   int_fast32_t i = table[*(*cpp)++];
  275.38 ---- glibc-2.2.5/locale/weightwc.h.old	2001-08-06 21:26:15.000000000 -0700
  275.39 -+++ glibc-2.2.5/locale/weightwc.h	2005-03-10 16:13:08.651631176 -0800
  275.40 -@@ -18,7 +18,12 @@
  275.41 -    02111-1307 USA.  */
  275.42 - 
  275.43 - /* Find index of weight.  */
  275.44 -+#if __GNUC__ >= 4
  275.45 -+auto inline int32_t
  275.46 -+__attribute ((always_inline))
  275.47 -+#else
  275.48 - static inline int32_t
  275.49 -+#endif
  275.50 - findidx (const wint_t **cpp)
  275.51 - {
  275.52 -   int32_t i;
   276.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-malloc.patch	Tue Aug 14 19:32:22 2007 +0000
   276.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   276.3 @@ -1,48 +0,0 @@
   276.4 -Fixes
   276.5 -programs/ld-collate.c: In function 'obstack_int32_grow':
   276.6 -programs/ld-collate.c:48: error: invalid lvalue in increment
   276.7 -programs/ld-collate.c: In function 'obstack_int32_grow_fast':
   276.8 -programs/ld-collate.c:57: error: invalid lvalue in increment
   276.9 -
  276.10 -Change taken by eyeball from version 1.20 at
  276.11 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/malloc/obstack.h?cvsroot=glibc
  276.12 -
  276.13 ---- /home/dank/downloads/glibc-2.2.5/malloc/obstack.h	2001-07-05 21:55:35.000000000 -0700
  276.14 -+++ glibc-2.2.5/malloc/obstack.h	2005-03-11 16:12:16.175812224 -0800
  276.15 -@@ -423,22 +423,29 @@
  276.16 - ({ struct obstack *__o = (OBSTACK);					\
  276.17 -    if (__o->next_free + sizeof (void *) > __o->chunk_limit)		\
  276.18 -      _obstack_newchunk (__o, sizeof (void *));				\
  276.19 --   *((void **)__o->next_free)++ = (datum);				\
  276.20 --   (void) 0; })
  276.21 -+   obstack_ptr_grow_fast (__o, datum); })
  276.22 - 
  276.23 - # define obstack_int_grow(OBSTACK,datum)				\
  276.24 - __extension__								\
  276.25 - ({ struct obstack *__o = (OBSTACK);					\
  276.26 -    if (__o->next_free + sizeof (int) > __o->chunk_limit)		\
  276.27 -      _obstack_newchunk (__o, sizeof (int));				\
  276.28 --   *((int *)__o->next_free)++ = (datum);				\
  276.29 -+   obstack_int_grow_fast (__o, datum); })
  276.30 -+
  276.31 -+# define obstack_ptr_grow_fast(OBSTACK,aptr)				\
  276.32 -+__extension__								\
  276.33 -+({ struct obstack *__o1 = (OBSTACK);					\
  276.34 -+   *(const void **) __o1->next_free = (aptr);				\
  276.35 -+   __o1->next_free += sizeof (const void *);				\
  276.36 -    (void) 0; })
  276.37 - 
  276.38 --# define obstack_ptr_grow_fast(h,aptr)					\
  276.39 --  (*((void **) (h)->next_free)++ = (aptr))
  276.40 -+# define obstack_int_grow_fast(OBSTACK,aint)				\
  276.41 -+__extension__								\
  276.42 -+({ struct obstack *__o1 = (OBSTACK);					\
  276.43 -+   *(int *) __o1->next_free = (aint);					\
  276.44 -+   __o1->next_free += sizeof (int);					\
  276.45 -+   (void) 0; })
  276.46 - 
  276.47 --# define obstack_int_grow_fast(h,aint)					\
  276.48 --  (*((int *) (h)->next_free)++ = (aint))
  276.49 - 
  276.50 - # define obstack_blank(OBSTACK,length)					\
  276.51 - __extension__								\
   277.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-mipsel.patch	Tue Aug 14 19:32:22 2007 +0000
   277.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   277.3 @@ -1,81 +0,0 @@
   277.4 -Message-ID: <424A8F67.7060307@kaear.co.uk>
   277.5 -Date: Wed, 30 Mar 2005 12:37:11 +0100
   277.6 -From: Piete Sartain <kaear@kaear.co.uk>
   277.7 -To:  crossgcc@sources.redhat.com
   277.8 -Subject: [Patch]  CT 0.3 - glibc-2.2.5-allow-gcc-4.0-mipsel
   277.9 -
  277.10 -
  277.11 -I copied the relevant sections out of 
  277.12 -http://kegel.com/crosstool/crosstool-0.29/patches/glibc-2.3-20050307/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch 
  277.13 -for a mipsel target.
  277.14 -
  277.15 -The build still fails, but now with an assembler error at crtbegin.o.
  277.16 -
  277.17 -[---dank: judging from my old buildlogs, this should fix:
  277.18 -
  277.19 -In file included from dynamic-link.h:21,
  277.20 -                 from dl-reloc.c:153:
  277.21 -../sysdeps/mips/dl-machine.h: In function '_dl_relocate_object':
  277.22 -../sysdeps/mips/dl-machine.h:477: error: invalid storage class for function 'elf_machine_rel'
  277.23 -../sysdeps/mips/dl-machine.h:539: error: invalid storage class for function 'elf_machine_rel_relative'
  277.24 -../sysdeps/mips/dl-machine.h:546: error: invalid storage class for function 'elf_machine_lazy_rel'
  277.25 -../sysdeps/mips/dl-machine.h:554: error: invalid storage class for function 'elf_machine_got_rel'
  277.26 -../sysdeps/mips/dl-machine.h:641: error: invalid storage class for function 'elf_machine_runtime_setup'
  277.27 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/elf'
  277.28 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-reloc.o] Error 1
  277.29 -make[1]: *** [elf/subdir_lib] Error 2
  277.30 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
  277.31 -make: *** [all] Error 2
  277.32 ----]
  277.33 -
  277.34 -
  277.35 ---- glibc-2.2.5/sysdeps/mips/dl-machine.h.old	2005-03-28 18:19:56.000000000 +0100
  277.36 -+++ glibc-2.2.5/sysdeps/mips/dl-machine.h	2005-03-28 18:25:15.000000000 +0100
  277.37 -@@ -534,14 +534,28 @@
  277.38 -     }
  277.39 - }
  277.40 - 
  277.41 --static inline void
  277.42 -+#if __GNUC__ >= 4
  277.43 -+  auto inline void
  277.44 -+#else
  277.45 -+  static inline void
  277.46 -+#endif
  277.47 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  277.48 -+  __attribute ((always_inline))
  277.49 -+#endif
  277.50 - elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
  277.51 - 			  ElfW(Addr) *const reloc_addr)
  277.52 - {
  277.53 -   /* XXX Nothing to do.  There is no relative relocation, right?  */
  277.54 - }
  277.55 - 
  277.56 --static inline void
  277.57 -+#if __GNUC__ >= 4
  277.58 -+  auto inline void
  277.59 -+#else
  277.60 -+  static inline void
  277.61 -+#endif
  277.62 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  277.63 -+  __attribute ((always_inline))
  277.64 -+#endif
  277.65 - elf_machine_lazy_rel (struct link_map *map,
  277.66 - 		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
  277.67 - {
  277.68 -@@ -550,7 +564,14 @@
  277.69 - 
  277.70 - #ifndef RTLD_BOOTSTRAP
  277.71 - /* Relocate GOT. */
  277.72 --static inline void
  277.73 -+#if __GNUC__ >= 4
  277.74 -+  auto inline void
  277.75 -+#else
  277.76 -+  static inline void
  277.77 -+#endif
  277.78 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  277.79 -+  __attribute ((always_inline))
  277.80 -+#endif
  277.81 - elf_machine_got_rel (struct link_map *map, int lazy)
  277.82 - {
  277.83 -   ElfW(Addr) *got;
  277.84 -
   278.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-msort.patch	Tue Aug 14 19:32:22 2007 +0000
   278.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   278.3 @@ -1,47 +0,0 @@
   278.4 -Fixes
   278.5 -
   278.6 -msort.c: In function 'msort_with_tmp':
   278.7 -msort.c:59: error: invalid lvalue in increment
   278.8 -msort.c:59: error: invalid lvalue in increment
   278.9 -msort.c:64: error: invalid lvalue in increment
  278.10 -msort.c:64: error: invalid lvalue in increment
  278.11 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/stdlib/msort.o] Error 1
  278.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/stdlib'
  278.13 -make[1]: *** [stdlib/subdir_lib] Error 2
  278.14 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
  278.15 -make: *** [all] Error 2 
  278.16 -
  278.17 -when building glibc-2.2.5 with gcc-3.4.
  278.18 -
  278.19 -Taken from ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.5-msort.patch
  278.20 -and rediffed.
  278.21 -
  278.22 ---- glibc-2.2.5/stdlib/msort.c.old	2001-07-05 21:55:41.000000000 -0700
  278.23 -+++ glibc-2.2.5/stdlib/msort.c	2005-03-10 08:24:24.152204976 -0800
  278.24 -@@ -1,6 +1,6 @@
  278.25 - /* An alternative to qsort, with an identical interface.
  278.26 -    This file is part of the GNU C Library.
  278.27 --   Copyright (C) 1992, 1995-1997, 1999, 2000, 2001 Free Software Foundation, Inc.
  278.28 -+   Copyright (C) 1992, 1995-1997, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
  278.29 -    Written by Mike Haertel, September 1988.
  278.30 - 
  278.31 -    The GNU C Library is free software; you can redistribute it and/or
  278.32 -@@ -56,12 +56,16 @@
  278.33 - 	if ((*cmp) (b1, b2) <= 0)
  278.34 - 	  {
  278.35 - 	    --n1;
  278.36 --	    *((op_t *) tmp)++ = *((op_t *) b1)++;
  278.37 -+	    *((op_t *) tmp) = *((op_t *) b1);
  278.38 -+	    tmp += sizeof (op_t);
  278.39 -+	    b1 += sizeof (op_t);
  278.40 - 	  }
  278.41 - 	else
  278.42 - 	  {
  278.43 - 	    --n2;
  278.44 --	    *((op_t *) tmp)++ = *((op_t *) b2)++;
  278.45 -+	    *((op_t *) tmp) = *((op_t *) b2);
  278.46 -+	    tmp += sizeof (op_t);
  278.47 -+	    b2 += sizeof (op_t);
  278.48 - 	  }
  278.49 -       }
  278.50 -   else
   279.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-powerpc-procfs.patch	Tue Aug 14 19:32:22 2007 +0000
   279.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   279.3 @@ -1,54 +0,0 @@
   279.4 -(See similar patch for glibc-2.3.3)
   279.5 -
   279.6 -This fix discussed here:
   279.7 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
   279.8 -
   279.9 -Fixes
  279.10 -
  279.11 -In file included from ../linuxthreads_db/proc_service.h:20,
  279.12 -                 from ../linuxthreads_db/thread_dbP.h:6,
  279.13 -                 from internals.h:36,
  279.14 -                 from attr.c:23:
  279.15 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:53: error: syntax error before 'elf_vrreg_t'
  279.16 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:53: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
  279.17 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:53: warning: data definition has no type or storage class
  279.18 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:54: error: syntax error before 'elf_vrregset_t'
  279.19 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:54: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
  279.20 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:54: warning: data definition has no type or storage class
  279.21 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/powerpc-405-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/linuxthreads'
  279.22 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/powerpc-405-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/linuxthreads/attr.o] Error 1
  279.23 -
  279.24 -From: Martin Egholm Nielsen martin at egholm-nielsen dot dk
  279.25 -To: crossgcc at sources dot redhat dot com
  279.26 -Date: Thu, 24 Mar 2005 18:40:27 +0100
  279.27 -Subject: [Patch] CT 0.29 - glibc-2.2.5-allow-gcc-4.0-powerpc-procfs
  279.28 -
  279.29 -Hi Dan,
  279.30 -
  279.31 -I had to add the following patch in order to make CT 0.29 and glibc 
  279.32 -2.2.5 compile with gcc 4.0 (20050305) and Kernel 2.4.20...
  279.33 -
  279.34 -// Martin
  279.35 -
  279.36 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.old	2005-03-24 13:11:39.746062400 +0100
  279.37 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2005-03-24 13:15:11.810996800 +0100
  279.38 -@@ -42,15 +42,10 @@
  279.39 - typedef double elf_fpreg_t;
  279.40 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  279.41 - 
  279.42 --/* gcc 3.1 and newer support __uint128_t.  */
  279.43 --#if !__GNUC_PREREQ(3,1)
  279.44 --typedef struct {
  279.45 --  unsigned long u[4];
  279.46 --} __attribute((aligned(16))) __uint128_t;
  279.47 --#endif
  279.48 --
  279.49 - /* Altivec registers */
  279.50 --typedef __uint128_t elf_vrreg_t;
  279.51 -+typedef struct {
  279.52 -+  unsigned int u[4];
  279.53 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
  279.54 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
  279.55 - 
  279.56 - struct elf_siginfo
  279.57 -
   280.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-powerpc.patch	Tue Aug 14 19:32:22 2007 +0000
   280.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   280.3 @@ -1,23 +0,0 @@
   280.4 -In file included from dynamic-link.h:21,
   280.5 -                 from dl-reloc.c:153:
   280.6 -../sysdeps/powerpc/dl-machine.h: In function '_dl_relocate_object':
   280.7 -../sysdeps/powerpc/dl-machine.h:399: error: invalid storage class for function 'elf_machine_rela_relative'
   280.8 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-reloc.o] Error 1
   280.9 ---- glibc-2.2.5/sysdeps/powerpc/dl-machine.h.old	Thu Mar 17 13:28:17 2005
  280.10 -+++ glibc-2.2.5/sysdeps/powerpc/dl-machine.h	Thu Mar 17 13:29:03 2005
  280.11 -@@ -393,7 +393,14 @@
  280.12 - 			    reloc_addr, finaladdr, rinfo);
  280.13 - }
  280.14 - 
  280.15 --static inline void
  280.16 -+#if __GNUC__ >= 4
  280.17 -+  auto inline void
  280.18 -+#else
  280.19 -+  static inline void
  280.20 -+#endif
  280.21 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  280.22 -+  __attribute ((always_inline))
  280.23 -+#endif
  280.24 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
  280.25 - 			   Elf32_Addr *const reloc_addr)
  280.26 - {
   281.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-sunrpc.patch	Tue Aug 14 19:32:22 2007 +0000
   281.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   281.3 @@ -1,221 +0,0 @@
   281.4 -[Taken from ../glibc-2.3.2/glibc-2.3.2-allow-gcc-3.4-sunrpc.patch,
   281.5 -rediffed, and with a fix for sunrpc/auth_none.c that was
   281.6 -inexplicably not included in the original patch.]
   281.7 -
   281.8 -Fixes 
   281.9 -
  281.10 -auth_none.c: In function 'authnone_create':
  281.11 -auth_none.c:83: error: invalid lvalue in assignment
  281.12 -clnt_perr.c: In function '_buf':
  281.13 -clnt_perr.c:68: error: invalid lvalue in assignment 
  281.14 -clnt_raw.c: In function 'clntraw_create':
  281.15 -clnt_raw.c:103: error: invalid lvalue in assignment
  281.16 -clnt_simp.c: In function 'callrpc':
  281.17 -clnt_simp.c:78: error: invalid lvalue in assignment
  281.18 -etc.
  281.19 -
  281.20 -building glibc-2.2.5 with gcc-4.0.
  281.21 -
  281.22 ----
  281.23 -
  281.24 -http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
  281.25 -[Also in CVS, but the original patch is easier to get.]
  281.26 -
  281.27 -Fixes errors like
  281.28 -
  281.29 -clnt_perr.c: In function `_buf':
  281.30 -clnt_perr.c:67: error: invalid lvalue in assignment
  281.31 -
  281.32 -when building with gcc-3.5.
  281.33 -
  281.34 -To: libc-hacker at sources dot redhat dot com
  281.35 -Subject: Fix cast as lvalue in sunrpc
  281.36 -From: Andreas Schwab <schwab at suse dot de>
  281.37 -X-Yow: SHHHH!!  I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
  281.38 - into empty OIL DRUMS dot  dot 
  281.39 -Date: Sun, 08 Feb 2004 17:38:31 +0100
  281.40 -Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
  281.41 -
  281.42 -This fixes the uses of casts as lvalue in the sunrpc code.
  281.43 -
  281.44 -Andreas.
  281.45 -
  281.46 -2004-02-08  Andreas Schwab  <schwab@suse.de>
  281.47 -
  281.48 -	* include/rpc/rpc.h: Declare thread variables with their correct
  281.49 -	type.
  281.50 -	* sunrpc/clnt_perr.c: Don't cast thread variables.
  281.51 -	* sunrpc/clnt_raw.c: Likewise.
  281.52 -	* sunrpc/clnt_simp.c: Likewise.
  281.53 -	* sunrpc/key_call.c: Likewise.
  281.54 -	* sunrpc/svcauth_des.c: Likewise.
  281.55 -	* sunrpc/svc.c: Likewise.
  281.56 -	* sunrpc/svc_raw.c: Likewise.
  281.57 -	* sunrpc/svc_simple.c: Likewise.
  281.58 -
  281.59 -diff -ur glibc-2.2.5/include/rpc/rpc.h glibc-2.2.5-patched/include/rpc/rpc.h
  281.60 ---- glibc-2.2.5/include/rpc/rpc.h	2001-03-25 21:11:32.000000000 -0800
  281.61 -+++ glibc-2.2.5-patched/include/rpc/rpc.h	2005-03-11 13:18:29.810860624 -0800
  281.62 -@@ -18,24 +18,24 @@
  281.63 - 
  281.64 - 	void		*authnone_private_s;	/* auth_none.c */
  281.65 - 
  281.66 --	void		*clnt_perr_buf_s;	/* clnt_perr.c */
  281.67 -+	char		*clnt_perr_buf_s;	/* clnt_perr.c */
  281.68 - 
  281.69 --	void		*clntraw_private_s;	/* clnt_raw.c */
  281.70 -+	struct clntraw_private_s *clntraw_private_s;	/* clnt_raw.c */
  281.71 - 
  281.72 --	void		*callrpc_private_s;	/* clnt_simp.c */
  281.73 -+	struct callrpc_private_s *callrpc_private_s;	/* clnt_simp.c */
  281.74 - 
  281.75 --	void		*key_call_private_s;	/* key_call.c */
  281.76 -+	struct key_call_private *key_call_private_s;	/* key_call.c */
  281.77 - 
  281.78 --	void		*authdes_cache_s;	/* svcauth_des.c */
  281.79 --	void		*authdes_lru_s;		/* svcauth_des.c */
  281.80 -+	struct cache_entry *authdes_cache_s;	/* svcauth_des.c */
  281.81 -+	int		*authdes_lru_s;		/* svcauth_des.c */
  281.82 - 
  281.83 --	void		*svc_xports_s;		/* svc.c */
  281.84 --	void		*svc_head_s;		/* svc.c */
  281.85 -+	SVCXPRT		**svc_xports_s;		/* svc.c */
  281.86 -+	struct svc_callout *svc_head_s;		/* svc.c */
  281.87 - 
  281.88 --	void		*svcraw_private_s;	/* svc_raw.c */
  281.89 -+	struct svcraw_private_s *svcraw_private_s;	/* svc_raw.c */
  281.90 - 
  281.91 --	void		*svcsimple_proglst_s;	/* svc_simple.c */
  281.92 --	void		*svcsimple_transp_s;	/* svc_simple.c */
  281.93 -+	struct proglst_ *svcsimple_proglst_s;	/* svc_simple.c */
  281.94 -+	SVCXPRT		*svcsimple_transp_s;	/* svc_simple.c */
  281.95 - };
  281.96 - 
  281.97 - extern struct rpc_thread_variables *__rpc_thread_variables(void)
  281.98 ---- glibc-2.2.5/sunrpc/auth_none.c.old	2005-03-10 16:26:53.874178280 -0800
  281.99 -+++ glibc-2.2.5/sunrpc/auth_none.c	2005-03-10 16:34:24.551664888 -0800
 281.100 -@@ -62,7 +62,7 @@
 281.101 -   u_int mcnt;
 281.102 - };
 281.103 - #ifdef _RPC_THREAD_SAFE_
 281.104 --#define authnone_private ((struct authnone_private_s *)RPC_THREAD_VARIABLE(authnone_private_s))
 281.105 -+#define authnone_private RPC_THREAD_VARIABLE(authnone_private_s)
 281.106 - #else
 281.107 - static struct authnone_private_s *authnone_private;
 281.108 - #endif
 281.109 -diff -ur glibc-2.2.5/sunrpc/clnt_perr.c glibc-2.2.5-patched/sunrpc/clnt_perr.c
 281.110 ---- glibc-2.2.5/sunrpc/clnt_perr.c	2001-08-16 21:48:31.000000000 -0700
 281.111 -+++ glibc-2.2.5-patched/sunrpc/clnt_perr.c	2005-03-11 13:18:29.812860320 -0800
 281.112 -@@ -56,7 +56,7 @@
 281.113 -  * buf variable in a few functions.  Overriding a global variable
 281.114 -  * with a local variable of the same name is a bad idea, anyway.
 281.115 -  */
 281.116 --#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
 281.117 -+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
 281.118 - #else
 281.119 - static char *buf;
 281.120 - #endif
 281.121 -diff -ur glibc-2.2.5/sunrpc/clnt_raw.c glibc-2.2.5-patched/sunrpc/clnt_raw.c
 281.122 ---- glibc-2.2.5/sunrpc/clnt_raw.c	2001-03-20 10:34:22.000000000 -0800
 281.123 -+++ glibc-2.2.5-patched/sunrpc/clnt_raw.c	2005-03-11 13:18:29.813860168 -0800
 281.124 -@@ -61,7 +61,7 @@
 281.125 -     u_int mcnt;
 281.126 -   };
 281.127 - #ifdef _RPC_THREAD_SAFE_
 281.128 --#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
 281.129 -+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
 281.130 - #else
 281.131 - static struct clntraw_private_s *clntraw_private;
 281.132 - #endif
 281.133 -diff -ur glibc-2.2.5/sunrpc/clnt_simp.c glibc-2.2.5-patched/sunrpc/clnt_simp.c
 281.134 ---- glibc-2.2.5/sunrpc/clnt_simp.c	2001-08-19 23:28:21.000000000 -0700
 281.135 -+++ glibc-2.2.5-patched/sunrpc/clnt_simp.c	2005-03-11 13:18:29.814860016 -0800
 281.136 -@@ -55,7 +55,7 @@
 281.137 -     char *oldhost;
 281.138 -   };
 281.139 - #ifdef _RPC_THREAD_SAFE_
 281.140 --#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
 281.141 -+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
 281.142 - #else
 281.143 - static struct callrpc_private_s *callrpc_private;
 281.144 - #endif
 281.145 -diff -ur glibc-2.2.5/sunrpc/key_call.c glibc-2.2.5-patched/sunrpc/key_call.c
 281.146 ---- glibc-2.2.5/sunrpc/key_call.c	2001-03-20 10:34:22.000000000 -0800
 281.147 -+++ glibc-2.2.5-patched/sunrpc/key_call.c	2005-03-11 13:18:29.816859712 -0800
 281.148 -@@ -360,7 +360,7 @@
 281.149 -   uid_t   uid;            /* user-id at last authorization */
 281.150 - };
 281.151 - #ifdef _RPC_THREAD_SAFE_
 281.152 --#define key_call_private_main ((struct  key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
 281.153 -+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
 281.154 - #else
 281.155 - static struct key_call_private *key_call_private_main;
 281.156 - #endif
 281.157 -diff -ur glibc-2.2.5/sunrpc/svcauth_des.c glibc-2.2.5-patched/sunrpc/svcauth_des.c
 281.158 ---- glibc-2.2.5/sunrpc/svcauth_des.c	2001-08-19 23:37:09.000000000 -0700
 281.159 -+++ glibc-2.2.5-patched/sunrpc/svcauth_des.c	2005-03-11 13:18:29.821858952 -0800
 281.160 -@@ -72,8 +72,8 @@
 281.161 -     char *localcred;		/* generic local credential */
 281.162 -   };
 281.163 - #ifdef _RPC_THREAD_SAFE_
 281.164 --#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
 281.165 --#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
 281.166 -+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
 281.167 -+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
 281.168 - #else
 281.169 - static struct cache_entry *authdes_cache;
 281.170 - static int *authdes_lru;
 281.171 -diff -ur glibc-2.2.5/sunrpc/svc.c glibc-2.2.5-patched/sunrpc/svc.c
 281.172 ---- glibc-2.2.5/sunrpc/svc.c	2001-03-20 10:34:22.000000000 -0800
 281.173 -+++ glibc-2.2.5-patched/sunrpc/svc.c	2005-03-11 13:18:29.817859560 -0800
 281.174 -@@ -44,7 +44,7 @@
 281.175 - #include <sys/poll.h>
 281.176 - 
 281.177 - #ifdef _RPC_THREAD_SAFE_
 281.178 --#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
 281.179 -+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
 281.180 - #else
 281.181 - static SVCXPRT **xports;
 281.182 - #endif
 281.183 -@@ -63,7 +63,7 @@
 281.184 -   void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
 281.185 - };
 281.186 - #ifdef _RPC_THREAD_SAFE_
 281.187 --#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
 281.188 -+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
 281.189 - #else
 281.190 - static struct svc_callout *svc_head;
 281.191 - #endif
 281.192 -diff -ur glibc-2.2.5/sunrpc/svc_raw.c glibc-2.2.5-patched/sunrpc/svc_raw.c
 281.193 ---- glibc-2.2.5/sunrpc/svc_raw.c	2001-03-20 10:34:22.000000000 -0800
 281.194 -+++ glibc-2.2.5-patched/sunrpc/svc_raw.c	2005-03-11 13:18:29.818859408 -0800
 281.195 -@@ -54,7 +54,7 @@
 281.196 -     char verf_body[MAX_AUTH_BYTES];
 281.197 -   };
 281.198 - #ifdef _RPC_THREAD_SAFE_
 281.199 --#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
 281.200 -+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
 281.201 - #else
 281.202 - static struct svcraw_private_s *svcraw_private;
 281.203 - #endif
 281.204 -diff -ur glibc-2.2.5/sunrpc/svc_simple.c glibc-2.2.5-patched/sunrpc/svc_simple.c
 281.205 ---- glibc-2.2.5/sunrpc/svc_simple.c	2001-08-17 00:16:04.000000000 -0700
 281.206 -+++ glibc-2.2.5-patched/sunrpc/svc_simple.c	2005-03-11 13:18:29.820859104 -0800
 281.207 -@@ -62,7 +62,7 @@
 281.208 -     struct proglst_ *p_nxt;
 281.209 -   };
 281.210 - #ifdef _RPC_THREAD_SAFE_
 281.211 --#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
 281.212 -+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
 281.213 - #else
 281.214 - static struct proglst_ *proglst;
 281.215 - #endif
 281.216 -@@ -70,7 +70,7 @@
 281.217 - 
 281.218 - static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
 281.219 - #ifdef _RPC_THREAD_SAFE_
 281.220 --#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
 281.221 -+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
 281.222 - #else
 281.223 - static SVCXPRT *transp;
 281.224 - #endif
   282.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-alpha-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   282.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   282.3 @@ -1,58 +0,0 @@
   282.4 -Fix for this error:
   282.5 -
   282.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
   282.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
   282.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
   282.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
  282.10 -make[2]: *** [/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
  282.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
  282.12 -make[1]: *** [posix/subdir_lib] Error 2
  282.13 -make[1]: Leaving directory `/home/dank/crosstool-0.28/build/alpha-unknown-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5'
  282.14 -make: *** [all] Error 2
  282.15 -
  282.16 -[ Same as glibc-2.3.2-alpha-pwrite.patch except for copyright date ]
  282.17 -
  282.18 -extracted from GLIBC CVS by Dan Kegel
  282.19 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
  282.20 -(to match context of...)
  282.21 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
  282.22 -and rediffed.
  282.23 -
  282.24 -cf. 
  282.25 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
  282.26 -
  282.27 -Originally thought we needed this hunk, too:
  282.28 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
  282.29 -but it seems the sysdep.h change is sufficient, and works better 
  282.30 -when compiling against linux-2.4.
  282.31 -
  282.32 -===================================================================
  282.33 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old	2004-05-24 22:21:44.000000000 -0700
  282.34 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h	2004-05-24 22:22:48.000000000 -0700
  282.35 -@@ -1,3 +1,3 @@
  282.36 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
  282.37 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
  282.38 -    This file is part of the GNU C Library.
  282.39 -    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
  282.40 -@@ -60,6 +60,21 @@
  282.41 - #define __NR_osf_getsysinfo	256
  282.42 - #define __NR_osf_setsysinfo	257
  282.43 - 
  282.44 -+/* Help old kernel headers where particular syscalls are not available.  */
  282.45 -+#ifndef __NR_semtimedop
  282.46 -+# define __NR_semtimedop	423
  282.47 -+#endif
  282.48 -+
  282.49 -+/* This is a kludge to make syscalls.list find these under the names
  282.50 -+   pread and pwrite, since some kernel headers define those names
  282.51 -+   and some define the *64 names for the same system calls.  */
  282.52 -+#if !defined __NR_pread && defined __NR_pread64
  282.53 -+# define __NR_pread __NR_pread64
  282.54 -+#endif
  282.55 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  282.56 -+# define __NR_pwrite __NR_pwrite64
  282.57 -+#endif
  282.58 -+
  282.59 - /*
  282.60 -  * In order to get the hidden arguments for rt_sigaction set up
  282.61 -  * properly, we need to call the assembly version.  Detect this in the
   283.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-arm-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   283.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   283.3 @@ -1,30 +0,0 @@
   283.4 -Should fix
   283.5 -
   283.6 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
   283.7 -../sysdeps/unix/sysv/linux/pread.c:52: error: `__NR_pread' undeclared (first use in this function)
   283.8 -../sysdeps/unix/sysv/linux/pread.c:52: error: (Each undeclared identifier is reported only once
   283.9 -../sysdeps/unix/sysv/linux/pread.c:52: error: for each function it appears in.)
  283.10 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
  283.11 -make[2]: Leaving directory `/home/dank/crosstool-0.28/build/arm-9tdmi-linux-gnu/gcc-3.4.1-glibc-2.2.5/glibc-2.2.5/posix'
  283.12 -make[1]: *** [posix/subdir_lib] Error 2
  283.13 -
  283.14 -Copied from similar patch for alpha.
  283.15 -
  283.16 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/arm/sysdep.h	2001-07-05 21:56:13.000000000 -0700
  283.17 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/arm/sysdep.h	2004-08-07 10:45:26.000000000 -0700
  283.18 -@@ -32,6 +32,15 @@
  283.19 - #define SWI_BASE  (0x900000)
  283.20 - #define SYS_ify(syscall_name)	(__NR_##syscall_name)
  283.21 - 
  283.22 -+/* This is a kludge to make syscalls.list find these under the names
  283.23 -+   pread and pwrite, since some kernel headers define those names
  283.24 -+   and some define the *64 names for the same system calls.  */
  283.25 -+#if !defined __NR_pread && defined __NR_pread64
  283.26 -+# define __NR_pread __NR_pread64
  283.27 -+#endif
  283.28 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  283.29 -+# define __NR_pwrite __NR_pwrite64
  283.30 -+#endif
  283.31 - 
  283.32 - #ifdef __ASSEMBLER__
  283.33 - 
   284.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-crosstest.patch	Tue Aug 14 19:32:22 2007 +0000
   284.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   284.3 @@ -1,27 +0,0 @@
   284.4 -Fixes errors like
   284.5 -  /build-glibc/dlfcn/glrefmain: cannot load `glreflib1.so'
   284.6 -in glibc regression test
   284.7 -
   284.8 ---- glibc-2.2.5/dlfcn/Makefile.old	Thu Jul 24 16:30:20 2003
   284.9 -+++ glibc-2.2.5/dlfcn/Makefile	Thu Jul 24 17:25:01 2003
  284.10 -@@ -60,6 +60,8 @@
  284.11 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
  284.12 - $(test-modules): $(objpfx)%.so: $(objpfx)%.os
  284.13 - 	$(build-module)
  284.14 -+# without following rule, test-modules don't get built when cross-compiling
  284.15 -+tests: $(test-modules)
  284.16 - 
  284.17 - $(objpfx)glrefmain: $(libdl)
  284.18 - $(objpfx)glrefmain.out: $(objpfx)glrefmain \
  284.19 ---- glibc-2.2.5/elf/Makefile.old	Thu Jul 24 18:17:12 2003
  284.20 -+++ glibc-2.2.5/elf/Makefile	Thu Jul 24 18:18:58 2003
  284.21 -@@ -263,6 +263,9 @@
  284.22 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
  284.23 - generated += $(addsuffix .so,$(strip $(modules-names)))
  284.24 - 
  284.25 -+# without following rule, test-modules don't get built when cross-compiling
  284.26 -+tests: $(test-modules)
  284.27 -+
  284.28 - ifeq (yes,$(build-shared))
  284.29 - ifeq ($(cross-compiling),no)
  284.30 - tests: $(objpfx)tst-pathopt.out
   285.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-crossyes.patch	Tue Aug 14 19:32:22 2007 +0000
   285.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   285.3 @@ -1,11 +0,0 @@
   285.4 ---- glibc-2.2.5/configure.old	2003-05-30 21:51:13.000000000 -0700
   285.5 -+++ glibc-2.2.5/configure	2003-05-30 21:51:23.000000000 -0700
   285.6 -@@ -1738,7 +1738,7 @@
   285.7 -   ac_cv_prog_cc_works=yes
   285.8 -   # If we can't run a trivial program, we are probably using a cross compiler.
   285.9 -   if (./conftest; exit) 2>/dev/null; then
  285.10 --    ac_cv_prog_cc_cross=no
  285.11 -+    ac_cv_prog_cc_cross=yes
  285.12 -   else
  285.13 -     ac_cv_prog_cc_cross=yes
  285.14 -   fi
   286.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   286.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   286.3 @@ -1,89 +0,0 @@
   286.4 -Fixes
   286.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   286.6 -...
   286.7 -when building glibc-2.3.2 on cygwin
   286.8 -
   286.9 -Idea from
  286.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  286.11 -forward ported to glibc-2.3.2.
  286.12 -Basically, make glibc use .oST as suffix for 'object static'
  286.13 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  286.14 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  286.15 -
  286.16 -
  286.17 -diff -Naur from-cvs/Makeconfig patched/Makeconfig
  286.18 ---- from-cvs/Makeconfig	Fri Jan 11 14:40:35 2002
  286.19 -+++ patched/Makeconfig	Fri Jan 11 15:07:30 2002
  286.20 -@@ -439,13 +439,13 @@
  286.21 - # run the linked programs.
  286.22 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  286.23 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  286.24 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  286.25 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  286.26 - # This is how to find at build-time things that will be installed there.
  286.27 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  286.28 - else
  286.29 - ifneq (,$(findstring aix,$(config-os)))
  286.30 - link-libc = $(common-objpfx)libc.a \
  286.31 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  286.32 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  286.33 - rpath-dirs = math dlfcn nss nis rt resolv crypt
  286.34 - endif
  286.35 - endif
  286.36 -@@ -649,7 +649,7 @@
  286.37 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  286.38 - # to pass different flags for each flavor.
  286.39 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  286.40 --all-object-suffixes := .o .os .op .og .ob .oS
  286.41 -+all-object-suffixes := .o .os .op .og .ob .oST
  286.42 - object-suffixes :=
  286.43 - CPPFLAGS-.o = $(pic-default)
  286.44 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  286.45 -@@ -703,14 +703,14 @@
  286.46 - 
  286.47 - ifeq (yes,$(build-shared))
  286.48 - # Build special library that contains the static-only routines for libc.
  286.49 --object-suffixes-for-libc += .oS
  286.50 -+object-suffixes-for-libc += .oST
  286.51 - 
  286.52 - # Must build the routines as PIC, though, because they can end up in (users')
  286.53 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  286.54 - # example, make that processor-specific.
  286.55 --CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
  286.56 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC
  286.57 --libtype.oS = lib%_nonshared.a
  286.58 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  286.59 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC
  286.60 -+libtype.oST = lib%_nonshared.a
  286.61 - endif
  286.62 - 
  286.63 - 
  286.64 -diff -Naur from-cvs/Makerules patched/Makerules
  286.65 ---- from-cvs/Makerules	Fri Jan 11 14:40:42 2002
  286.66 -+++ patched/Makerules	Fri Jan 11 15:06:00 2002
  286.67 -@@ -361,7 +361,7 @@
  286.68 - # Bounded pointer thunks are only built for *.ob
  286.69 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  286.70 - 
  286.71 --elide-routines.oS += $(filter-out $(static-only-routines),\
  286.72 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  286.73 - 				  $(routines) $(aux) $(sysdep_routines)) \
  286.74 - 		     $(elide-bp-thunks)
  286.75 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  286.76 -@@ -842,14 +842,14 @@
  286.77 - # of the files are taken by the linker.
  286.78 - install: $(inst_libdir)/libc.so
  286.79 - $(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
  286.80 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  286.81 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  286.82 - 						  $(libprefix)$(libc-name)) \
  286.83 - 			$(+force)
  286.84 - 	(echo '/* GNU ld script';\
  286.85 - 	 echo '   Use the shared library, but some functions are only in';\
  286.86 - 	 echo '   the static library, so try that secondarily.  */';\
  286.87 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  286.88 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  286.89 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  286.90 - 	      ')' \
  286.91 - 	) > $@.new
  286.92 - 	mv -f $@.new $@
   287.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-hhl-powerpc-fpu.patch	Tue Aug 14 19:32:22 2007 +0000
   287.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   287.3 @@ -1,1134 +0,0 @@
   287.4 -# See http://sources.redhat.com/ml/crossgcc/2002-05/msg00132.html
   287.5 -# This patch is taken directly from the Montavista Hard Hat Linux 2.0 source RPMs,
   287.6 -# but has been rediffed against glibc-2.2.5
   287.7 -
   287.8 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Dist glibc-2.2.5/sysdeps/powerpc/Dist
   287.9 ---- glibc-2.2.5.old/sysdeps/powerpc/Dist	Fri Jun 30 23:30:21 2000
  287.10 -+++ glibc-2.2.5/sysdeps/powerpc/Dist	Thu Jul 10 11:43:17 2003
  287.11 -@@ -1,9 +1,6 @@
  287.12 - dl-machine.c
  287.13 - dl-start.S
  287.14 - ppc-mcount.S
  287.15 --fe_nomask.c
  287.16 --fprrest.S
  287.17 --fprsave.S
  287.18 - gprsave1.S
  287.19 - gprsave0.S
  287.20 - gprrest1.S
  287.21 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Makefile glibc-2.2.5/sysdeps/powerpc/Makefile
  287.22 ---- glibc-2.2.5.old/sysdeps/powerpc/Makefile	Mon Nov 27 15:32:47 2000
  287.23 -+++ glibc-2.2.5/sysdeps/powerpc/Makefile	Thu Jul 10 11:43:17 2003
  287.24 -@@ -3,16 +3,12 @@
  287.25 - +cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
  287.26 - asm-CPPFLAGS += -Wa,-mppc
  287.27 - 
  287.28 --ifeq ($(subdir),math)
  287.29 --libm-support += fenv_const fe_nomask
  287.30 --endif
  287.31 --
  287.32 - ifeq ($(subdir),gmon)
  287.33 - sysdep_routines += ppc-mcount
  287.34 - endif
  287.35 - 
  287.36 - ifeq ($(subdir),misc)
  287.37 --sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1 fprsave fprrest
  287.38 -+sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
  287.39 - endif
  287.40 - 
  287.41 - # On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
  287.42 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/Versions glibc-2.2.5/sysdeps/powerpc/Versions
  287.43 ---- glibc-2.2.5.old/sysdeps/powerpc/Versions	Mon Feb 28 13:27:57 2000
  287.44 -+++ glibc-2.2.5/sysdeps/powerpc/Versions	Thu Jul 10 11:43:17 2003
  287.45 -@@ -1,8 +1,4 @@
  287.46 - libm {
  287.47 --  GLIBC_2.1 {
  287.48 --    # symbols used in macros from sysdeps/powerpc/bits/fenv.h
  287.49 --    __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
  287.50 --  }
  287.51 -   GLIBC_2.2 {
  287.52 -     # Special functions to save and restore registers used by the
  287.53 -     # runtime libraries.
  287.54 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S glibc-2.2.5/sysdeps/powerpc/__longjmp.S
  287.55 ---- glibc-2.2.5.old/sysdeps/powerpc/__longjmp.S	Thu Jul  5 21:56:01 2001
  287.56 -+++ glibc-2.2.5/sysdeps/powerpc/__longjmp.S	Thu Jul 10 11:43:17 2003
  287.57 -@@ -24,6 +24,8 @@
  287.58 - #include <bp-sym.h>
  287.59 - #include <bp-asm.h>
  287.60 - 
  287.61 -+/* The FPU loads have been removed from this file - see fpu/__longjmp.S */
  287.62 -+
  287.63 - ENTRY (BP_SYM (__longjmp))
  287.64 - 	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
  287.65 - 
  287.66 -@@ -31,44 +33,26 @@
  287.67 - 	lwz r2,(JB_GPR2*4)(r3)
  287.68 - 	lwz r0,(JB_LR*4)(r3)
  287.69 - 	lwz r14,((JB_GPRS+0)*4)(r3)
  287.70 --	lfd fp14,((JB_FPRS+0*2)*4)(r3)
  287.71 - 	lwz r15,((JB_GPRS+1)*4)(r3)
  287.72 --	lfd fp15,((JB_FPRS+1*2)*4)(r3)
  287.73 - 	lwz r16,((JB_GPRS+2)*4)(r3)
  287.74 --	lfd fp16,((JB_FPRS+2*2)*4)(r3)
  287.75 - 	lwz r17,((JB_GPRS+3)*4)(r3)
  287.76 --	lfd fp17,((JB_FPRS+3*2)*4)(r3)
  287.77 - 	lwz r18,((JB_GPRS+4)*4)(r3)
  287.78 --	lfd fp18,((JB_FPRS+4*2)*4)(r3)
  287.79 - 	lwz r19,((JB_GPRS+5)*4)(r3)
  287.80 --	lfd fp19,((JB_FPRS+5*2)*4)(r3)
  287.81 - 	lwz r20,((JB_GPRS+6)*4)(r3)
  287.82 --	lfd fp20,((JB_FPRS+6*2)*4)(r3)
  287.83 - 	mtlr r0
  287.84 - 	lwz r21,((JB_GPRS+7)*4)(r3)
  287.85 --	lfd fp21,((JB_FPRS+7*2)*4)(r3)
  287.86 - 	lwz r22,((JB_GPRS+8)*4)(r3)
  287.87 --	lfd fp22,((JB_FPRS+8*2)*4)(r3)
  287.88 - 	lwz r0,(JB_CR*4)(r3)
  287.89 - 	lwz r23,((JB_GPRS+9)*4)(r3)
  287.90 --	lfd fp23,((JB_FPRS+9*2)*4)(r3)
  287.91 - 	lwz r24,((JB_GPRS+10)*4)(r3)
  287.92 --	lfd fp24,((JB_FPRS+10*2)*4)(r3)
  287.93 - 	lwz r25,((JB_GPRS+11)*4)(r3)
  287.94 --	lfd fp25,((JB_FPRS+11*2)*4)(r3)
  287.95 - 	mtcrf 0xFF,r0
  287.96 - 	lwz r26,((JB_GPRS+12)*4)(r3)
  287.97 --	lfd fp26,((JB_FPRS+12*2)*4)(r3)
  287.98 - 	lwz r27,((JB_GPRS+13)*4)(r3)
  287.99 --	lfd fp27,((JB_FPRS+13*2)*4)(r3)
 287.100 - 	lwz r28,((JB_GPRS+14)*4)(r3)
 287.101 --	lfd fp28,((JB_FPRS+14*2)*4)(r3)
 287.102 - 	lwz r29,((JB_GPRS+15)*4)(r3)
 287.103 --	lfd fp29,((JB_FPRS+15*2)*4)(r3)
 287.104 - 	lwz r30,((JB_GPRS+16)*4)(r3)
 287.105 --	lfd fp30,((JB_FPRS+16*2)*4)(r3)
 287.106 - 	lwz r31,((JB_GPRS+17)*4)(r3)
 287.107 --	lfd fp31,((JB_FPRS+17*2)*4)(r3)
 287.108 - 	mr r3,r4
 287.109 - 	blr
 287.110 - END (BP_SYM (__longjmp))
 287.111 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h
 287.112 ---- glibc-2.2.5.old/sysdeps/powerpc/bits/setjmp.h	Thu Jul  5 21:56:01 2001
 287.113 -+++ glibc-2.2.5/sysdeps/powerpc/bits/setjmp.h	Thu Jul 10 11:43:17 2003
 287.114 -@@ -17,6 +17,7 @@
 287.115 -    02111-1307 USA.  */
 287.116 - 
 287.117 - /* Define the machine-dependent type `jmp_buf'.  PowerPC version.  */
 287.118 -+/* For processors without floating point. */
 287.119 - 
 287.120 - #ifndef _SETJMP_H
 287.121 - # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 287.122 -@@ -33,12 +34,11 @@
 287.123 - # define JB_LR     2  /* The address we will return to */
 287.124 - # define JB_GPRS   3  /* GPRs 14 through 31 are saved, 18 in total */
 287.125 - # define JB_CR     21 /* Condition code registers. */
 287.126 --# define JB_FPRS   22 /* FPRs 14 through 31 are saved, 18*2 words total */
 287.127 --# define JB_SIZE   (58*4)
 287.128 -+# define JB_SIZE   (22*4)
 287.129 - #endif
 287.130 - 
 287.131 - #ifndef	_ASM
 287.132 --typedef long int __jmp_buf[58];
 287.133 -+typedef long int __jmp_buf[22];
 287.134 - #endif
 287.135 - 
 287.136 - /* Test if longjmp to JMPBUF would unwind the frame
 287.137 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c
 287.138 ---- glibc-2.2.5.old/sysdeps/powerpc/fclrexcpt.c	Thu Jul  5 21:56:01 2001
 287.139 -+++ glibc-2.2.5/sysdeps/powerpc/fclrexcpt.c	Wed Dec 31 16:00:00 1969
 287.140 -@@ -1,48 +0,0 @@
 287.141 --/* Clear given exceptions in current floating-point environment.
 287.142 --   Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
 287.143 --   This file is part of the GNU C Library.
 287.144 --
 287.145 --   The GNU C Library is free software; you can redistribute it and/or
 287.146 --   modify it under the terms of the GNU Lesser General Public
 287.147 --   License as published by the Free Software Foundation; either
 287.148 --   version 2.1 of the License, or (at your option) any later version.
 287.149 --
 287.150 --   The GNU C Library is distributed in the hope that it will be useful,
 287.151 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.152 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.153 --   Lesser General Public License for more details.
 287.154 --
 287.155 --   You should have received a copy of the GNU Lesser General Public
 287.156 --   License along with the GNU C Library; if not, write to the Free
 287.157 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.158 --   02111-1307 USA.  */
 287.159 --
 287.160 --#include <fenv_libc.h>
 287.161 --
 287.162 --#undef feclearexcept
 287.163 --int
 287.164 --__feclearexcept (int excepts)
 287.165 --{
 287.166 --  fenv_union_t u;
 287.167 --
 287.168 --  /* Get the current state.  */
 287.169 --  u.fenv = fegetenv_register ();
 287.170 --
 287.171 --  /* Clear the relevant bits.  */
 287.172 --  u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
 287.173 --		      | (excepts & FPSCR_STICKY_BITS));
 287.174 --
 287.175 --  /* Put the new state in effect.  */
 287.176 --  fesetenv_register (u.fenv);
 287.177 --
 287.178 --  /* Success.  */
 287.179 --  return 0;
 287.180 --}
 287.181 --
 287.182 --#include <shlib-compat.h>
 287.183 --#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 287.184 --strong_alias (__feclearexcept, __old_feclearexcept)
 287.185 --compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
 287.186 --#endif
 287.187 --
 287.188 --versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
 287.189 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fe_nomask.c
 287.190 ---- glibc-2.2.5.old/sysdeps/powerpc/fe_nomask.c	Thu Jul  5 21:56:01 2001
 287.191 -+++ glibc-2.2.5/sysdeps/powerpc/fe_nomask.c	Wed Dec 31 16:00:00 1969
 287.192 -@@ -1,32 +0,0 @@
 287.193 --/* Procedure definition for FE_NOMASK_ENV.
 287.194 --   Copyright (C) 1997 Free Software Foundation, Inc.
 287.195 --   This file is part of the GNU C Library.
 287.196 --
 287.197 --   The GNU C Library is free software; you can redistribute it and/or
 287.198 --   modify it under the terms of the GNU Lesser General Public
 287.199 --   License as published by the Free Software Foundation; either
 287.200 --   version 2.1 of the License, or (at your option) any later version.
 287.201 --
 287.202 --   The GNU C Library is distributed in the hope that it will be useful,
 287.203 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.204 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.205 --   Lesser General Public License for more details.
 287.206 --
 287.207 --   You should have received a copy of the GNU Lesser General Public
 287.208 --   License along with the GNU C Library; if not, write to the Free
 287.209 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.210 --   02111-1307 USA.  */
 287.211 --
 287.212 --#include <fenv.h>
 287.213 --#include <errno.h>
 287.214 --
 287.215 --/* This is presently a stub, until it's decided how the kernels should
 287.216 --   support this.  */
 287.217 --
 287.218 --const fenv_t *
 287.219 --__fe_nomask_env(void)
 287.220 --{
 287.221 --  __set_errno (ENOSYS);
 287.222 --  return FE_ENABLED_ENV;
 287.223 --}
 287.224 --stub_warning (__fe_nomask_env)
 287.225 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprrest.S glibc-2.2.5/sysdeps/powerpc/fprrest.S
 287.226 ---- glibc-2.2.5.old/sysdeps/powerpc/fprrest.S	Thu Jul  5 21:56:01 2001
 287.227 -+++ glibc-2.2.5/sysdeps/powerpc/fprrest.S	Wed Dec 31 16:00:00 1969
 287.228 -@@ -1,94 +0,0 @@
 287.229 --/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 287.230 --   This file is part of the GNU C Library.
 287.231 --
 287.232 --   The GNU C Library is free software; you can redistribute it and/or
 287.233 --   modify it under the terms of the GNU Lesser General Public
 287.234 --   License as published by the Free Software Foundation; either
 287.235 --   version 2.1 of the License, or (at your option) any later version.
 287.236 --
 287.237 --   The GNU C Library is distributed in the hope that it will be useful,
 287.238 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.239 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.240 --   Lesser General Public License for more details.
 287.241 --
 287.242 --   You should have received a copy of the GNU Lesser General Public
 287.243 --   License along with the GNU C Library; if not, write to the Free
 287.244 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.245 --   02111-1307 USA.  */
 287.246 --
 287.247 --/*
 287.248 --    Floating Point Registers (FPRs) restore routine
 287.249 --*/
 287.250 --
 287.251 --#include <sysdep.h>
 287.252 --
 287.253 --ENTRY(_restfpr_all)
 287.254 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
 287.255 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
 287.256 --C_TEXT(_restf14):
 287.257 --C_TEXT(_restfpr_14):	lfd	fp14,-144(r1)
 287.258 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
 287.259 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
 287.260 --C_TEXT(_restf15):
 287.261 --C_TEXT(_restfpr_15):	lfd	fp15,-136(r1)
 287.262 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
 287.263 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
 287.264 --C_TEXT(_restf16):
 287.265 --C_TEXT(_restfpr_16):	lfd	fp16,-128(r1)
 287.266 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
 287.267 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
 287.268 --C_TEXT(_restf17):
 287.269 --C_TEXT(_restfpr_17):	lfd	fp17,-120(r1)
 287.270 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
 287.271 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
 287.272 --C_TEXT(_restf18):
 287.273 --C_TEXT(_restfpr_18):	lfd	fp18,-112(r1)
 287.274 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
 287.275 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
 287.276 --C_TEXT(_restf19):
 287.277 --C_TEXT(_restfpr_19):	lfd	fp19,-104(r1)
 287.278 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
 287.279 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
 287.280 --C_TEXT(_restf20):
 287.281 --C_TEXT(_restfpr_20):	lfd	fp20,-96(r1)
 287.282 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
 287.283 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
 287.284 --C_TEXT(_restf21):
 287.285 --C_TEXT(_restfpr_21):	lfd	fp21,-88(r1)
 287.286 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
 287.287 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
 287.288 --C_TEXT(_restf22):
 287.289 --C_TEXT(_restfpr_22):	lfd	fp22,-80(r1)
 287.290 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
 287.291 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
 287.292 --C_TEXT(_restf23):
 287.293 --C_TEXT(_restfpr_23):	lfd	fp23,-72(r1)
 287.294 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
 287.295 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
 287.296 --C_TEXT(_restf24):
 287.297 --C_TEXT(_restfpr_24):	lfd	fp24,-64(r1)
 287.298 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
 287.299 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
 287.300 --C_TEXT(_restf25):
 287.301 --C_TEXT(_restfpr_25):	lfd	fp25,-56(r1)
 287.302 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
 287.303 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
 287.304 --C_TEXT(_restf26):
 287.305 --C_TEXT(_restfpr_26):	lfd	fp26,-48(r1)
 287.306 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
 287.307 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
 287.308 --C_TEXT(_restf27):
 287.309 --C_TEXT(_restfpr_27):	lfd	fp27,-40(r1)
 287.310 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
 287.311 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
 287.312 --C_TEXT(_restf28):
 287.313 --C_TEXT(_restfpr_28):	lfd	fp28,-32(r1)
 287.314 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
 287.315 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
 287.316 --C_TEXT(_restf29):
 287.317 --C_TEXT(_restfpr_29):	lwz	r0,8(r1)	#get return address from frame
 287.318 --			lfd	fp29,-24(r1)    #restore f29
 287.319 --			mtlr	r0		#move return address to LR
 287.320 --			lfd	fp30,-16(r1)	#restore f30
 287.321 --			lfd	fp31,-8(r1)	#restore f31
 287.322 --			blr			#return
 287.323 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fprsave.S glibc-2.2.5/sysdeps/powerpc/fprsave.S
 287.324 ---- glibc-2.2.5.old/sysdeps/powerpc/fprsave.S	Thu Jul  5 21:56:01 2001
 287.325 -+++ glibc-2.2.5/sysdeps/powerpc/fprsave.S	Wed Dec 31 16:00:00 1969
 287.326 -@@ -1,93 +0,0 @@
 287.327 --/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 287.328 --   This file is part of the GNU C Library.
 287.329 --
 287.330 --   The GNU C Library is free software; you can redistribute it and/or
 287.331 --   modify it under the terms of the GNU Lesser General Public
 287.332 --   License as published by the Free Software Foundation; either
 287.333 --   version 2.1 of the License, or (at your option) any later version.
 287.334 --
 287.335 --   The GNU C Library is distributed in the hope that it will be useful,
 287.336 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.337 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.338 --   Lesser General Public License for more details.
 287.339 --
 287.340 --   You should have received a copy of the GNU Lesser General Public
 287.341 --   License along with the GNU C Library; if not, write to the Free
 287.342 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.343 --   02111-1307 USA.  */
 287.344 --
 287.345 --/*
 287.346 --    Floating Point Registers (FPRs) save routine
 287.347 --*/
 287.348 --
 287.349 --#include <sysdep.h>
 287.350 --
 287.351 --ENTRY(_savefpr_all)
 287.352 --                ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
 287.353 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
 287.354 --C_TEXT(_savef14):
 287.355 --C_TEXT(_savefpr_14):	stfd	fp14,-144(r1)
 287.356 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
 287.357 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
 287.358 --C_TEXT(_savef15):
 287.359 --C_TEXT(_savefpr_15):	stfd	fp15,-136(r1)
 287.360 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
 287.361 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
 287.362 --C_TEXT(_savef16):
 287.363 --C_TEXT(_savefpr_16):	stfd	fp16,-128(r1)
 287.364 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
 287.365 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
 287.366 --C_TEXT(_savef17):
 287.367 --C_TEXT(_savefpr_17):	stfd	fp17,-120(r1)
 287.368 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
 287.369 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
 287.370 --C_TEXT(_savef18):
 287.371 --C_TEXT(_savefpr_18):	stfd	fp18,-112(r1)
 287.372 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
 287.373 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
 287.374 --C_TEXT(_savef19):
 287.375 --C_TEXT(_savefpr_19):	stfd	fp19,-104(r1)
 287.376 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
 287.377 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
 287.378 --C_TEXT(_savef20):
 287.379 --C_TEXT(_savefpr_20):	stfd	fp20,-96(r1)
 287.380 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
 287.381 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
 287.382 --C_TEXT(_savef21):
 287.383 --C_TEXT(_savefpr_21):	stfd	fp21,-88(r1)
 287.384 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
 287.385 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
 287.386 --C_TEXT(_savef22):
 287.387 --C_TEXT(_savefpr_22):	stfd	fp22,-80(r1)
 287.388 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
 287.389 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
 287.390 --C_TEXT(_savef23):
 287.391 --C_TEXT(_savefpr_23):	stfd	fp23,-72(r1)
 287.392 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
 287.393 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
 287.394 --C_TEXT(_savef24):
 287.395 --C_TEXT(_savefpr_24):	stfd	fp24,-64(r1)
 287.396 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
 287.397 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
 287.398 --C_TEXT(_savef25):
 287.399 --C_TEXT(_savefpr_25):	stfd	fp25,-56(r1)
 287.400 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
 287.401 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
 287.402 --C_TEXT(_savef26):
 287.403 --C_TEXT(_savefpr_26):	stfd	fp26,-48(r1)
 287.404 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
 287.405 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
 287.406 --C_TEXT(_savef27):
 287.407 --C_TEXT(_savefpr_27):	stfd	fp27,-40(r1)
 287.408 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
 287.409 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
 287.410 --C_TEXT(_savef28):
 287.411 --C_TEXT(_savefpr_28):	stfd	fp28,-32(r1)
 287.412 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
 287.413 --		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
 287.414 --C_TEXT(_savef29):
 287.415 --C_TEXT(_savefpr_29):	stfd	fp29,-24(r1)	#save f29
 287.416 --			stfd	fp30,-16(r1)	#save f30
 287.417 --			stfd	fp31,-8(r1)	#save f31
 287.418 --			stw	r0,8(r1)	#save LR in callers frame
 287.419 --			blr			#return
 287.420 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist glibc-2.2.5/sysdeps/powerpc/fpu/Dist
 287.421 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/Dist	Wed Jan 26 17:48:02 2000
 287.422 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/Dist	Thu Jul 10 11:43:17 2003
 287.423 -@@ -1,3 +1,6 @@
 287.424 -+fe_nomask.c
 287.425 -+fprrest.S
 287.426 -+fprsave.S
 287.427 - fenv_const.c
 287.428 - fenv_libc.h
 287.429 - t_sqrt.c
 287.430 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile glibc-2.2.5/sysdeps/powerpc/fpu/Makefile
 287.431 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/Makefile	Mon Oct 11 15:29:00 1999
 287.432 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/Makefile	Thu Jul 10 11:43:17 2003
 287.433 -@@ -1,3 +1,7 @@
 287.434 - ifeq ($(subdir),math)
 287.435 - libm-support += fenv_const fe_nomask t_sqrt
 287.436 - endif
 287.437 -+
 287.438 -+ifeq ($(subdir),misc)
 287.439 -+sysdep_routines += fprsave fprrest
 287.440 -+endif
 287.441 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions glibc-2.2.5/sysdeps/powerpc/fpu/Versions
 287.442 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/Versions	Wed Dec 31 16:00:00 1969
 287.443 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/Versions	Thu Jul 10 11:43:17 2003
 287.444 -@@ -0,0 +1,6 @@
 287.445 -+libm {
 287.446 -+  GLIBC_2.1 {
 287.447 -+    # symbols used in macros from sysdeps/powerpc/bits/fenv.h
 287.448 -+    __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
 287.449 -+  }
 287.450 -+}
 287.451 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S
 287.452 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/__longjmp.S	Wed Dec 31 16:00:00 1969
 287.453 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/__longjmp.S	Thu Jul 10 11:43:17 2003
 287.454 -@@ -0,0 +1,74 @@
 287.455 -+/* longjmp for PowerPC.
 287.456 -+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
 287.457 -+   This file is part of the GNU C Library.
 287.458 -+
 287.459 -+   The GNU C Library is free software; you can redistribute it and/or
 287.460 -+   modify it under the terms of the GNU Library General Public License as
 287.461 -+   published by the Free Software Foundation; either version 2 of the
 287.462 -+   License, or (at your option) any later version.
 287.463 -+
 287.464 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.465 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.466 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.467 -+   Library General Public License for more details.
 287.468 -+
 287.469 -+   You should have received a copy of the GNU Library General Public
 287.470 -+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 287.471 -+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 287.472 -+   Boston, MA 02111-1307, USA.  */
 287.473 -+
 287.474 -+#include <sysdep.h>
 287.475 -+#define _ASM
 287.476 -+#define _SETJMP_H
 287.477 -+#include <bits/setjmp.h>
 287.478 -+#include <bp-sym.h>
 287.479 -+#include <bp-asm.h>
 287.480 -+
 287.481 -+ENTRY (BP_SYM (__longjmp))
 287.482 -+	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 287.483 -+
 287.484 -+	lwz r1,(JB_GPR1*4)(r3)
 287.485 -+	lwz r2,(JB_GPR2*4)(r3)
 287.486 -+	lwz r0,(JB_LR*4)(r3)
 287.487 -+	lwz r14,((JB_GPRS+0)*4)(r3)
 287.488 -+	lfd fp14,((JB_FPRS+0*2)*4)(r3)
 287.489 -+	lwz r15,((JB_GPRS+1)*4)(r3)
 287.490 -+	lfd fp15,((JB_FPRS+1*2)*4)(r3)
 287.491 -+	lwz r16,((JB_GPRS+2)*4)(r3)
 287.492 -+	lfd fp16,((JB_FPRS+2*2)*4)(r3)
 287.493 -+	lwz r17,((JB_GPRS+3)*4)(r3)
 287.494 -+	lfd fp17,((JB_FPRS+3*2)*4)(r3)
 287.495 -+	lwz r18,((JB_GPRS+4)*4)(r3)
 287.496 -+	lfd fp18,((JB_FPRS+4*2)*4)(r3)
 287.497 -+	lwz r19,((JB_GPRS+5)*4)(r3)
 287.498 -+	lfd fp19,((JB_FPRS+5*2)*4)(r3)
 287.499 -+	lwz r20,((JB_GPRS+6)*4)(r3)
 287.500 -+	lfd fp20,((JB_FPRS+6*2)*4)(r3)
 287.501 -+	mtlr r0
 287.502 -+	lwz r21,((JB_GPRS+7)*4)(r3)
 287.503 -+	lfd fp21,((JB_FPRS+7*2)*4)(r3)
 287.504 -+	lwz r22,((JB_GPRS+8)*4)(r3)
 287.505 -+	lfd fp22,((JB_FPRS+8*2)*4)(r3)
 287.506 -+	lwz r0,(JB_CR*4)(r3)
 287.507 -+	lwz r23,((JB_GPRS+9)*4)(r3)
 287.508 -+	lfd fp23,((JB_FPRS+9*2)*4)(r3)
 287.509 -+	lwz r24,((JB_GPRS+10)*4)(r3)
 287.510 -+	lfd fp24,((JB_FPRS+10*2)*4)(r3)
 287.511 -+	lwz r25,((JB_GPRS+11)*4)(r3)
 287.512 -+	lfd fp25,((JB_FPRS+11*2)*4)(r3)
 287.513 -+	mtcrf 0xFF,r0
 287.514 -+	lwz r26,((JB_GPRS+12)*4)(r3)
 287.515 -+	lfd fp26,((JB_FPRS+12*2)*4)(r3)
 287.516 -+	lwz r27,((JB_GPRS+13)*4)(r3)
 287.517 -+	lfd fp27,((JB_FPRS+13*2)*4)(r3)
 287.518 -+	lwz r28,((JB_GPRS+14)*4)(r3)
 287.519 -+	lfd fp28,((JB_FPRS+14*2)*4)(r3)
 287.520 -+	lwz r29,((JB_GPRS+15)*4)(r3)
 287.521 -+	lfd fp29,((JB_FPRS+15*2)*4)(r3)
 287.522 -+	lwz r30,((JB_GPRS+16)*4)(r3)
 287.523 -+	lfd fp30,((JB_FPRS+16*2)*4)(r3)
 287.524 -+	lwz r31,((JB_GPRS+17)*4)(r3)
 287.525 -+	lfd fp31,((JB_FPRS+17*2)*4)(r3)
 287.526 -+	mr r3,r4
 287.527 -+	blr
 287.528 -+END (BP_SYM (__longjmp))
 287.529 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h
 287.530 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/bits/setjmp.h	Wed Dec 31 16:00:00 1969
 287.531 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/bits/setjmp.h	Thu Jul 10 11:43:17 2003
 287.532 -@@ -0,0 +1,47 @@
 287.533 -+/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
 287.534 -+   This file is part of the GNU C Library.
 287.535 -+
 287.536 -+   The GNU C Library is free software; you can redistribute it and/or
 287.537 -+   modify it under the terms of the GNU Library General Public License as
 287.538 -+   published by the Free Software Foundation; either version 2 of the
 287.539 -+   License, or (at your option) any later version.
 287.540 -+
 287.541 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.542 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.543 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.544 -+   Library General Public License for more details.
 287.545 -+
 287.546 -+   You should have received a copy of the GNU Library General Public
 287.547 -+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 287.548 -+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 287.549 -+   Boston, MA 02111-1307, USA.  */
 287.550 -+
 287.551 -+/* Define the machine-dependent type `jmp_buf'.  PowerPC version.  */
 287.552 -+
 287.553 -+#ifndef _SETJMP_H
 287.554 -+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 287.555 -+#endif
 287.556 -+
 287.557 -+/* The previous bits/setjmp.h had __jmp_buf defined as a structure.
 287.558 -+   We use an array of 'long int' instead, to make writing the
 287.559 -+   assembler easier. Naturally, user code should not depend on
 287.560 -+   either representation. */
 287.561 -+
 287.562 -+#if defined __USE_MISC || defined _ASM
 287.563 -+# define JB_GPR1   0  /* Also known as the stack pointer */
 287.564 -+# define JB_GPR2   1
 287.565 -+# define JB_LR     2  /* The address we will return to */
 287.566 -+# define JB_GPRS   3  /* GPRs 14 through 31 are saved, 18 in total */
 287.567 -+# define JB_CR     21 /* Condition code registers. */
 287.568 -+# define JB_FPRS   22 /* FPRs 14 through 31 are saved, 18*2 words total */
 287.569 -+# define JB_SIZE   (58*4)
 287.570 -+#endif
 287.571 -+
 287.572 -+#ifndef	_ASM
 287.573 -+typedef long int __jmp_buf[58];
 287.574 -+#endif
 287.575 -+
 287.576 -+/* Test if longjmp to JMPBUF would unwind the frame
 287.577 -+   containing a local variable at ADDRESS.  */
 287.578 -+#define _JMPBUF_UNWINDS(jmpbuf, address) \
 287.579 -+  ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
 287.580 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c
 287.581 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fclrexcpt.c	Wed Dec 31 16:00:00 1969
 287.582 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fclrexcpt.c	Thu Jul  5 21:56:01 2001
 287.583 -@@ -0,0 +1,48 @@
 287.584 -+/* Clear given exceptions in current floating-point environment.
 287.585 -+   Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
 287.586 -+   This file is part of the GNU C Library.
 287.587 -+
 287.588 -+   The GNU C Library is free software; you can redistribute it and/or
 287.589 -+   modify it under the terms of the GNU Lesser General Public
 287.590 -+   License as published by the Free Software Foundation; either
 287.591 -+   version 2.1 of the License, or (at your option) any later version.
 287.592 -+
 287.593 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.594 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.595 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.596 -+   Lesser General Public License for more details.
 287.597 -+
 287.598 -+   You should have received a copy of the GNU Lesser General Public
 287.599 -+   License along with the GNU C Library; if not, write to the Free
 287.600 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.601 -+   02111-1307 USA.  */
 287.602 -+
 287.603 -+#include <fenv_libc.h>
 287.604 -+
 287.605 -+#undef feclearexcept
 287.606 -+int
 287.607 -+__feclearexcept (int excepts)
 287.608 -+{
 287.609 -+  fenv_union_t u;
 287.610 -+
 287.611 -+  /* Get the current state.  */
 287.612 -+  u.fenv = fegetenv_register ();
 287.613 -+
 287.614 -+  /* Clear the relevant bits.  */
 287.615 -+  u.l[1] = u.l[1] & ~((-(excepts >> (31 - FPSCR_VX) & 1) & FE_ALL_INVALID)
 287.616 -+		      | (excepts & FPSCR_STICKY_BITS));
 287.617 -+
 287.618 -+  /* Put the new state in effect.  */
 287.619 -+  fesetenv_register (u.fenv);
 287.620 -+
 287.621 -+  /* Success.  */
 287.622 -+  return 0;
 287.623 -+}
 287.624 -+
 287.625 -+#include <shlib-compat.h>
 287.626 -+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
 287.627 -+strong_alias (__feclearexcept, __old_feclearexcept)
 287.628 -+compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1);
 287.629 -+#endif
 287.630 -+
 287.631 -+versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
 287.632 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c
 287.633 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fe_nomask.c	Wed Dec 31 16:00:00 1969
 287.634 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fe_nomask.c	Thu Jul  5 21:56:01 2001
 287.635 -@@ -0,0 +1,32 @@
 287.636 -+/* Procedure definition for FE_NOMASK_ENV.
 287.637 -+   Copyright (C) 1997 Free Software Foundation, Inc.
 287.638 -+   This file is part of the GNU C Library.
 287.639 -+
 287.640 -+   The GNU C Library is free software; you can redistribute it and/or
 287.641 -+   modify it under the terms of the GNU Lesser General Public
 287.642 -+   License as published by the Free Software Foundation; either
 287.643 -+   version 2.1 of the License, or (at your option) any later version.
 287.644 -+
 287.645 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.646 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.647 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.648 -+   Lesser General Public License for more details.
 287.649 -+
 287.650 -+   You should have received a copy of the GNU Lesser General Public
 287.651 -+   License along with the GNU C Library; if not, write to the Free
 287.652 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.653 -+   02111-1307 USA.  */
 287.654 -+
 287.655 -+#include <fenv.h>
 287.656 -+#include <errno.h>
 287.657 -+
 287.658 -+/* This is presently a stub, until it's decided how the kernels should
 287.659 -+   support this.  */
 287.660 -+
 287.661 -+const fenv_t *
 287.662 -+__fe_nomask_env(void)
 287.663 -+{
 287.664 -+  __set_errno (ENOSYS);
 287.665 -+  return FE_ENABLED_ENV;
 287.666 -+}
 287.667 -+stub_warning (__fe_nomask_env)
 287.668 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S
 287.669 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprrest.S	Wed Dec 31 16:00:00 1969
 287.670 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprrest.S	Thu Jul  5 21:56:01 2001
 287.671 -@@ -0,0 +1,94 @@
 287.672 -+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 287.673 -+   This file is part of the GNU C Library.
 287.674 -+
 287.675 -+   The GNU C Library is free software; you can redistribute it and/or
 287.676 -+   modify it under the terms of the GNU Lesser General Public
 287.677 -+   License as published by the Free Software Foundation; either
 287.678 -+   version 2.1 of the License, or (at your option) any later version.
 287.679 -+
 287.680 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.681 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.682 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.683 -+   Lesser General Public License for more details.
 287.684 -+
 287.685 -+   You should have received a copy of the GNU Lesser General Public
 287.686 -+   License along with the GNU C Library; if not, write to the Free
 287.687 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.688 -+   02111-1307 USA.  */
 287.689 -+
 287.690 -+/*
 287.691 -+    Floating Point Registers (FPRs) restore routine
 287.692 -+*/
 287.693 -+
 287.694 -+#include <sysdep.h>
 287.695 -+
 287.696 -+ENTRY(_restfpr_all)
 287.697 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf14)
 287.698 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_14)
 287.699 -+C_TEXT(_restf14):
 287.700 -+C_TEXT(_restfpr_14):	lfd	fp14,-144(r1)
 287.701 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf15)
 287.702 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_15)
 287.703 -+C_TEXT(_restf15):
 287.704 -+C_TEXT(_restfpr_15):	lfd	fp15,-136(r1)
 287.705 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf16)
 287.706 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_16)
 287.707 -+C_TEXT(_restf16):
 287.708 -+C_TEXT(_restfpr_16):	lfd	fp16,-128(r1)
 287.709 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf17)
 287.710 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_17)
 287.711 -+C_TEXT(_restf17):
 287.712 -+C_TEXT(_restfpr_17):	lfd	fp17,-120(r1)
 287.713 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf18)
 287.714 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_18)
 287.715 -+C_TEXT(_restf18):
 287.716 -+C_TEXT(_restfpr_18):	lfd	fp18,-112(r1)
 287.717 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf19)
 287.718 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_19)
 287.719 -+C_TEXT(_restf19):
 287.720 -+C_TEXT(_restfpr_19):	lfd	fp19,-104(r1)
 287.721 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf20)
 287.722 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_20)
 287.723 -+C_TEXT(_restf20):
 287.724 -+C_TEXT(_restfpr_20):	lfd	fp20,-96(r1)
 287.725 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf21)
 287.726 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_21)
 287.727 -+C_TEXT(_restf21):
 287.728 -+C_TEXT(_restfpr_21):	lfd	fp21,-88(r1)
 287.729 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf22)
 287.730 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_22)
 287.731 -+C_TEXT(_restf22):
 287.732 -+C_TEXT(_restfpr_22):	lfd	fp22,-80(r1)
 287.733 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf23)
 287.734 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_23)
 287.735 -+C_TEXT(_restf23):
 287.736 -+C_TEXT(_restfpr_23):	lfd	fp23,-72(r1)
 287.737 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf24)
 287.738 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_24)
 287.739 -+C_TEXT(_restf24):
 287.740 -+C_TEXT(_restfpr_24):	lfd	fp24,-64(r1)
 287.741 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf25)
 287.742 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_25)
 287.743 -+C_TEXT(_restf25):
 287.744 -+C_TEXT(_restfpr_25):	lfd	fp25,-56(r1)
 287.745 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf26)
 287.746 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_26)
 287.747 -+C_TEXT(_restf26):
 287.748 -+C_TEXT(_restfpr_26):	lfd	fp26,-48(r1)
 287.749 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf27)
 287.750 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_27)
 287.751 -+C_TEXT(_restf27):
 287.752 -+C_TEXT(_restfpr_27):	lfd	fp27,-40(r1)
 287.753 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf28)
 287.754 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_28)
 287.755 -+C_TEXT(_restf28):
 287.756 -+C_TEXT(_restfpr_28):	lfd	fp28,-32(r1)
 287.757 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restf29)
 287.758 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_restfpr_29)
 287.759 -+C_TEXT(_restf29):
 287.760 -+C_TEXT(_restfpr_29):	lwz	r0,8(r1)	#get return address from frame
 287.761 -+			lfd	fp29,-24(r1)    #restore f29
 287.762 -+			mtlr	r0		#move return address to LR
 287.763 -+			lfd	fp30,-16(r1)	#restore f30
 287.764 -+			lfd	fp31,-8(r1)	#restore f31
 287.765 -+			blr			#return
 287.766 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S
 287.767 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fprsave.S	Wed Dec 31 16:00:00 1969
 287.768 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fprsave.S	Thu Jul  5 21:56:01 2001
 287.769 -@@ -0,0 +1,93 @@
 287.770 -+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 287.771 -+   This file is part of the GNU C Library.
 287.772 -+
 287.773 -+   The GNU C Library is free software; you can redistribute it and/or
 287.774 -+   modify it under the terms of the GNU Lesser General Public
 287.775 -+   License as published by the Free Software Foundation; either
 287.776 -+   version 2.1 of the License, or (at your option) any later version.
 287.777 -+
 287.778 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.779 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.780 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.781 -+   Lesser General Public License for more details.
 287.782 -+
 287.783 -+   You should have received a copy of the GNU Lesser General Public
 287.784 -+   License along with the GNU C Library; if not, write to the Free
 287.785 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.786 -+   02111-1307 USA.  */
 287.787 -+
 287.788 -+/*
 287.789 -+    Floating Point Registers (FPRs) save routine
 287.790 -+*/
 287.791 -+
 287.792 -+#include <sysdep.h>
 287.793 -+
 287.794 -+ENTRY(_savefpr_all)
 287.795 -+                ASM_GLOBAL_DIRECTIVE C_TEXT(_savef14)
 287.796 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_14)
 287.797 -+C_TEXT(_savef14):
 287.798 -+C_TEXT(_savefpr_14):	stfd	fp14,-144(r1)
 287.799 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef15)
 287.800 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_15)
 287.801 -+C_TEXT(_savef15):
 287.802 -+C_TEXT(_savefpr_15):	stfd	fp15,-136(r1)
 287.803 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef16)
 287.804 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_16)
 287.805 -+C_TEXT(_savef16):
 287.806 -+C_TEXT(_savefpr_16):	stfd	fp16,-128(r1)
 287.807 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef17)
 287.808 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_17)
 287.809 -+C_TEXT(_savef17):
 287.810 -+C_TEXT(_savefpr_17):	stfd	fp17,-120(r1)
 287.811 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef18)
 287.812 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_18)
 287.813 -+C_TEXT(_savef18):
 287.814 -+C_TEXT(_savefpr_18):	stfd	fp18,-112(r1)
 287.815 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef19)
 287.816 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_19)
 287.817 -+C_TEXT(_savef19):
 287.818 -+C_TEXT(_savefpr_19):	stfd	fp19,-104(r1)
 287.819 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef20)
 287.820 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_20)
 287.821 -+C_TEXT(_savef20):
 287.822 -+C_TEXT(_savefpr_20):	stfd	fp20,-96(r1)
 287.823 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef21)
 287.824 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_21)
 287.825 -+C_TEXT(_savef21):
 287.826 -+C_TEXT(_savefpr_21):	stfd	fp21,-88(r1)
 287.827 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef22)
 287.828 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_22)
 287.829 -+C_TEXT(_savef22):
 287.830 -+C_TEXT(_savefpr_22):	stfd	fp22,-80(r1)
 287.831 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef23)
 287.832 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_23)
 287.833 -+C_TEXT(_savef23):
 287.834 -+C_TEXT(_savefpr_23):	stfd	fp23,-72(r1)
 287.835 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef24)
 287.836 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_24)
 287.837 -+C_TEXT(_savef24):
 287.838 -+C_TEXT(_savefpr_24):	stfd	fp24,-64(r1)
 287.839 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef25)
 287.840 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_25)
 287.841 -+C_TEXT(_savef25):
 287.842 -+C_TEXT(_savefpr_25):	stfd	fp25,-56(r1)
 287.843 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef26)
 287.844 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_26)
 287.845 -+C_TEXT(_savef26):
 287.846 -+C_TEXT(_savefpr_26):	stfd	fp26,-48(r1)
 287.847 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef27)
 287.848 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_27)
 287.849 -+C_TEXT(_savef27):
 287.850 -+C_TEXT(_savefpr_27):	stfd	fp27,-40(r1)
 287.851 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef28)
 287.852 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_28)
 287.853 -+C_TEXT(_savef28):
 287.854 -+C_TEXT(_savefpr_28):	stfd	fp28,-32(r1)
 287.855 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savef29)
 287.856 -+		ASM_GLOBAL_DIRECTIVE C_TEXT(_savefpr_29)
 287.857 -+C_TEXT(_savef29):
 287.858 -+C_TEXT(_savefpr_29):	stfd	fp29,-24(r1)	#save f29
 287.859 -+			stfd	fp30,-16(r1)	#save f30
 287.860 -+			stfd	fp31,-8(r1)	#save f31
 287.861 -+			stw	r0,8(r1)	#save LR in callers frame
 287.862 -+			blr			#return
 287.863 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h
 287.864 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/fpu_control.h	Wed Dec 31 16:00:00 1969
 287.865 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/fpu_control.h	Thu Jul  5 21:56:01 2001
 287.866 -@@ -0,0 +1,67 @@
 287.867 -+/* FPU control word definitions.  PowerPC version.
 287.868 -+   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
 287.869 -+   This file is part of the GNU C Library.
 287.870 -+
 287.871 -+   The GNU C Library is free software; you can redistribute it and/or
 287.872 -+   modify it under the terms of the GNU Lesser General Public
 287.873 -+   License as published by the Free Software Foundation; either
 287.874 -+   version 2.1 of the License, or (at your option) any later version.
 287.875 -+
 287.876 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.877 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.878 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.879 -+   Lesser General Public License for more details.
 287.880 -+
 287.881 -+   You should have received a copy of the GNU Lesser General Public
 287.882 -+   License along with the GNU C Library; if not, write to the Free
 287.883 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 287.884 -+   02111-1307 USA.  */
 287.885 -+
 287.886 -+#ifndef _FPU_CONTROL_H
 287.887 -+#define _FPU_CONTROL_H
 287.888 -+
 287.889 -+/* rounding control */
 287.890 -+#define _FPU_RC_NEAREST 0x00   /* RECOMMENDED */
 287.891 -+#define _FPU_RC_DOWN    0x03
 287.892 -+#define _FPU_RC_UP      0x02
 287.893 -+#define _FPU_RC_ZERO    0x01
 287.894 -+
 287.895 -+#define _FPU_MASK_NI  0x04 /* non-ieee mode */
 287.896 -+
 287.897 -+/* masking of interrupts */
 287.898 -+#define _FPU_MASK_ZM  0x10 /* zero divide */
 287.899 -+#define _FPU_MASK_OM  0x40 /* overflow */
 287.900 -+#define _FPU_MASK_UM  0x20 /* underflow */
 287.901 -+#define _FPU_MASK_XM  0x08 /* inexact */
 287.902 -+#define _FPU_MASK_IM  0x80 /* invalid operation */
 287.903 -+
 287.904 -+#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
 287.905 -+
 287.906 -+/* The fdlibm code requires no interrupts for exceptions.  */
 287.907 -+#define _FPU_DEFAULT  0x00000000 /* Default value.  */
 287.908 -+
 287.909 -+/* IEEE:  same as above, but (some) exceptions;
 287.910 -+   we leave the 'inexact' exception off.
 287.911 -+ */
 287.912 -+#define _FPU_IEEE     0x000000f0
 287.913 -+
 287.914 -+/* Type of the control word.  */
 287.915 -+typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
 287.916 -+
 287.917 -+/* Macros for accessing the hardware control word.  */
 287.918 -+#define _FPU_GETCW(cw) ( { \
 287.919 -+  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
 287.920 -+  __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
 287.921 -+  (cw)=tmp.cw[1]; \
 287.922 -+  tmp.cw[1]; } )
 287.923 -+#define _FPU_SETCW(cw) { \
 287.924 -+  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
 287.925 -+  tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
 287.926 -+  tmp.cw[1] = cw; \
 287.927 -+  __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
 287.928 -+}
 287.929 -+
 287.930 -+/* Default control word set at startup.  */
 287.931 -+extern fpu_control_t __fpu_control;
 287.932 -+
 287.933 -+#endif /* _FPU_CONTROL_H */
 287.934 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S
 287.935 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu/setjmp.S	Wed Dec 31 16:00:00 1969
 287.936 -+++ glibc-2.2.5/sysdeps/powerpc/fpu/setjmp.S	Thu Jul 10 11:43:44 2003
 287.937 -@@ -0,0 +1,73 @@
 287.938 -+/* setjmp for PowerPC.
 287.939 -+   Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
 287.940 -+   This file is part of the GNU C Library.
 287.941 -+
 287.942 -+   The GNU C Library is free software; you can redistribute it and/or
 287.943 -+   modify it under the terms of the GNU Library General Public License as
 287.944 -+   published by the Free Software Foundation; either version 2 of the
 287.945 -+   License, or (at your option) any later version.
 287.946 -+
 287.947 -+   The GNU C Library is distributed in the hope that it will be useful,
 287.948 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 287.949 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 287.950 -+   Library General Public License for more details.
 287.951 -+
 287.952 -+   You should have received a copy of the GNU Library General Public
 287.953 -+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
 287.954 -+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 287.955 -+   Boston, MA 02111-1307, USA.  */
 287.956 -+
 287.957 -+#include <sysdep.h>
 287.958 -+#define _ASM
 287.959 -+#define _SETJMP_H
 287.960 -+#include <bits/setjmp.h>
 287.961 -+#include <bp-sym.h>
 287.962 -+#include <bp-asm.h>
 287.963 -+
 287.964 -+ENTRY (BP_SYM (__sigsetjmp))
 287.965 -+	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
 287.966 -+
 287.967 -+	stw  r1,(JB_GPR1*4)(3)
 287.968 -+	mflr r0
 287.969 -+	stw  r2,(JB_GPR2*4)(3)
 287.970 -+	stw  r14,((JB_GPRS+0)*4)(3)
 287.971 -+	stfd fp14,((JB_FPRS+0*2)*4)(3)
 287.972 -+	stw  r0,(JB_LR*4)(3)
 287.973 -+	stw  r15,((JB_GPRS+1)*4)(3)
 287.974 -+	stfd fp15,((JB_FPRS+1*2)*4)(3)
 287.975 -+	mfcr r0
 287.976 -+	stw  r16,((JB_GPRS+2)*4)(3)
 287.977 -+	stfd fp16,((JB_FPRS+2*2)*4)(3)
 287.978 -+	stw  r0,(JB_CR*4)(3)
 287.979 -+	stw  r17,((JB_GPRS+3)*4)(3)
 287.980 -+	stfd fp17,((JB_FPRS+3*2)*4)(3)
 287.981 -+	stw  r18,((JB_GPRS+4)*4)(3)
 287.982 -+	stfd fp18,((JB_FPRS+4*2)*4)(3)
 287.983 -+	stw  r19,((JB_GPRS+5)*4)(3)
 287.984 -+	stfd fp19,((JB_FPRS+5*2)*4)(3)
 287.985 -+	stw  r20,((JB_GPRS+6)*4)(3)
 287.986 -+	stfd fp20,((JB_FPRS+6*2)*4)(3)
 287.987 -+	stw  r21,((JB_GPRS+7)*4)(3)
 287.988 -+	stfd fp21,((JB_FPRS+7*2)*4)(3)
 287.989 -+	stw  r22,((JB_GPRS+8)*4)(3)
 287.990 -+	stfd fp22,((JB_FPRS+8*2)*4)(3)
 287.991 -+	stw  r23,((JB_GPRS+9)*4)(3)
 287.992 -+	stfd fp23,((JB_FPRS+9*2)*4)(3)
 287.993 -+	stw  r24,((JB_GPRS+10)*4)(3)
 287.994 -+	stfd fp24,((JB_FPRS+10*2)*4)(3)
 287.995 -+	stw  r25,((JB_GPRS+11)*4)(3)
 287.996 -+	stfd fp25,((JB_FPRS+11*2)*4)(3)
 287.997 -+	stw  r26,((JB_GPRS+12)*4)(3)
 287.998 -+	stfd fp26,((JB_FPRS+12*2)*4)(3)
 287.999 -+	stw  r27,((JB_GPRS+13)*4)(3)
287.1000 -+	stfd fp27,((JB_FPRS+13*2)*4)(3)
287.1001 -+	stw  r28,((JB_GPRS+14)*4)(3)
287.1002 -+	stfd fp28,((JB_FPRS+14*2)*4)(3)
287.1003 -+	stw  r29,((JB_GPRS+15)*4)(3)
287.1004 -+	stfd fp29,((JB_FPRS+15*2)*4)(3)
287.1005 -+	stw  r30,((JB_GPRS+16)*4)(3)
287.1006 -+	stfd fp30,((JB_FPRS+16*2)*4)(3)
287.1007 -+	stw  r31,((JB_GPRS+17)*4)(3)
287.1008 -+	stfd fp31,((JB_FPRS+17*2)*4)(3)
287.1009 -+	b JUMPTARGET (BP_SYM (__sigjmp_save))
287.1010 -+END (BP_SYM (__sigsetjmp))
287.1011 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h glibc-2.2.5/sysdeps/powerpc/fpu_control.h
287.1012 ---- glibc-2.2.5.old/sysdeps/powerpc/fpu_control.h	Thu Jul  5 21:56:01 2001
287.1013 -+++ glibc-2.2.5/sysdeps/powerpc/fpu_control.h	Wed Dec 31 16:00:00 1969
287.1014 -@@ -1,67 +0,0 @@
287.1015 --/* FPU control word definitions.  PowerPC version.
287.1016 --   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
287.1017 --   This file is part of the GNU C Library.
287.1018 --
287.1019 --   The GNU C Library is free software; you can redistribute it and/or
287.1020 --   modify it under the terms of the GNU Lesser General Public
287.1021 --   License as published by the Free Software Foundation; either
287.1022 --   version 2.1 of the License, or (at your option) any later version.
287.1023 --
287.1024 --   The GNU C Library is distributed in the hope that it will be useful,
287.1025 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
287.1026 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
287.1027 --   Lesser General Public License for more details.
287.1028 --
287.1029 --   You should have received a copy of the GNU Lesser General Public
287.1030 --   License along with the GNU C Library; if not, write to the Free
287.1031 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
287.1032 --   02111-1307 USA.  */
287.1033 --
287.1034 --#ifndef _FPU_CONTROL_H
287.1035 --#define _FPU_CONTROL_H
287.1036 --
287.1037 --/* rounding control */
287.1038 --#define _FPU_RC_NEAREST 0x00   /* RECOMMENDED */
287.1039 --#define _FPU_RC_DOWN    0x03
287.1040 --#define _FPU_RC_UP      0x02
287.1041 --#define _FPU_RC_ZERO    0x01
287.1042 --
287.1043 --#define _FPU_MASK_NI  0x04 /* non-ieee mode */
287.1044 --
287.1045 --/* masking of interrupts */
287.1046 --#define _FPU_MASK_ZM  0x10 /* zero divide */
287.1047 --#define _FPU_MASK_OM  0x40 /* overflow */
287.1048 --#define _FPU_MASK_UM  0x20 /* underflow */
287.1049 --#define _FPU_MASK_XM  0x08 /* inexact */
287.1050 --#define _FPU_MASK_IM  0x80 /* invalid operation */
287.1051 --
287.1052 --#define _FPU_RESERVED 0xffffff00 /* These bits are reserved are not changed. */
287.1053 --
287.1054 --/* The fdlibm code requires no interrupts for exceptions.  */
287.1055 --#define _FPU_DEFAULT  0x00000000 /* Default value.  */
287.1056 --
287.1057 --/* IEEE:  same as above, but (some) exceptions;
287.1058 --   we leave the 'inexact' exception off.
287.1059 -- */
287.1060 --#define _FPU_IEEE     0x000000f0
287.1061 --
287.1062 --/* Type of the control word.  */
287.1063 --typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
287.1064 --
287.1065 --/* Macros for accessing the hardware control word.  */
287.1066 --#define _FPU_GETCW(cw) ( { \
287.1067 --  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
287.1068 --  __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
287.1069 --  (cw)=tmp.cw[1]; \
287.1070 --  tmp.cw[1]; } )
287.1071 --#define _FPU_SETCW(cw) { \
287.1072 --  union { double d; fpu_control_t cw[2]; } tmp __attribute__ ((__aligned__(8))); \
287.1073 --  tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
287.1074 --  tmp.cw[1] = cw; \
287.1075 --  __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
287.1076 --}
287.1077 --
287.1078 --/* Default control word set at startup.  */
287.1079 --extern fpu_control_t __fpu_control;
287.1080 --
287.1081 --#endif /* _FPU_CONTROL_H */
287.1082 -diff -Naur glibc-2.2.5.old/sysdeps/powerpc/setjmp.S glibc-2.2.5/sysdeps/powerpc/setjmp.S
287.1083 ---- glibc-2.2.5.old/sysdeps/powerpc/setjmp.S	Thu Jul  5 21:56:01 2001
287.1084 -+++ glibc-2.2.5/sysdeps/powerpc/setjmp.S	Thu Jul 10 11:43:44 2003
287.1085 -@@ -24,6 +24,8 @@
287.1086 - #include <bp-sym.h>
287.1087 - #include <bp-asm.h>
287.1088 - 
287.1089 -+/* The FPU stores have been removed from this file - see fpu/setjmp.S */
287.1090 -+
287.1091 - ENTRY (BP_SYM (__sigsetjmp))
287.1092 - 	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
287.1093 - 
287.1094 -@@ -31,43 +33,25 @@
287.1095 - 	mflr r0
287.1096 - 	stw  r2,(JB_GPR2*4)(3)
287.1097 - 	stw  r14,((JB_GPRS+0)*4)(3)
287.1098 --	stfd fp14,((JB_FPRS+0*2)*4)(3)
287.1099 - 	stw  r0,(JB_LR*4)(3)
287.1100 - 	stw  r15,((JB_GPRS+1)*4)(3)
287.1101 --	stfd fp15,((JB_FPRS+1*2)*4)(3)
287.1102 - 	mfcr r0
287.1103 - 	stw  r16,((JB_GPRS+2)*4)(3)
287.1104 --	stfd fp16,((JB_FPRS+2*2)*4)(3)
287.1105 - 	stw  r0,(JB_CR*4)(3)
287.1106 - 	stw  r17,((JB_GPRS+3)*4)(3)
287.1107 --	stfd fp17,((JB_FPRS+3*2)*4)(3)
287.1108 - 	stw  r18,((JB_GPRS+4)*4)(3)
287.1109 --	stfd fp18,((JB_FPRS+4*2)*4)(3)
287.1110 - 	stw  r19,((JB_GPRS+5)*4)(3)
287.1111 --	stfd fp19,((JB_FPRS+5*2)*4)(3)
287.1112 - 	stw  r20,((JB_GPRS+6)*4)(3)
287.1113 --	stfd fp20,((JB_FPRS+6*2)*4)(3)
287.1114 - 	stw  r21,((JB_GPRS+7)*4)(3)
287.1115 --	stfd fp21,((JB_FPRS+7*2)*4)(3)
287.1116 - 	stw  r22,((JB_GPRS+8)*4)(3)
287.1117 --	stfd fp22,((JB_FPRS+8*2)*4)(3)
287.1118 - 	stw  r23,((JB_GPRS+9)*4)(3)
287.1119 --	stfd fp23,((JB_FPRS+9*2)*4)(3)
287.1120 - 	stw  r24,((JB_GPRS+10)*4)(3)
287.1121 --	stfd fp24,((JB_FPRS+10*2)*4)(3)
287.1122 - 	stw  r25,((JB_GPRS+11)*4)(3)
287.1123 --	stfd fp25,((JB_FPRS+11*2)*4)(3)
287.1124 - 	stw  r26,((JB_GPRS+12)*4)(3)
287.1125 --	stfd fp26,((JB_FPRS+12*2)*4)(3)
287.1126 - 	stw  r27,((JB_GPRS+13)*4)(3)
287.1127 --	stfd fp27,((JB_FPRS+13*2)*4)(3)
287.1128 - 	stw  r28,((JB_GPRS+14)*4)(3)
287.1129 --	stfd fp28,((JB_FPRS+14*2)*4)(3)
287.1130 - 	stw  r29,((JB_GPRS+15)*4)(3)
287.1131 --	stfd fp29,((JB_FPRS+15*2)*4)(3)
287.1132 - 	stw  r30,((JB_GPRS+16)*4)(3)
287.1133 --	stfd fp30,((JB_FPRS+16*2)*4)(3)
287.1134 - 	stw  r31,((JB_GPRS+17)*4)(3)
287.1135 --	stfd fp31,((JB_FPRS+17*2)*4)(3)
287.1136 - 	b JUMPTARGET (BP_SYM (__sigjmp_save))
287.1137 - END (BP_SYM (__sigsetjmp))
   288.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-i386-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   288.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   288.3 @@ -1,20 +0,0 @@
   288.4 -diff -urN glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h
   288.5 ---- glibc-2.2.5-orig/sysdeps/unix/sysv/linux/i386/sysdep.h	2001-07-06 06:56:16.000000000 +0200
   288.6 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/i386/sysdep.h	2004-09-03 12:35:44.000000000 +0200
   288.7 -@@ -36,6 +36,16 @@
   288.8 - #undef L
   288.9 - #define L(name)	.L##name
  288.10 - 
  288.11 -+/* This is a kludge to make syscalls.list find these under the names
  288.12 -+ *    pread and pwrite, since some kernel headers define those names
  288.13 -+ *       and some define the *64 names for the same system calls.  */
  288.14 -+#if !defined __NR_pread && defined __NR_pread64
  288.15 -+# define __NR_pread __NR_pread64
  288.16 -+#endif
  288.17 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  288.18 -+# define __NR_pwrite __NR_pwrite64
  288.19 -+#endif
  288.20 -+
  288.21 - #ifdef __ASSEMBLER__
  288.22 - 
  288.23 - /* Linux uses a negative return value to indicate syscall errors,
   289.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-m68k-pwrite.patch	Tue Aug 14 19:32:22 2007 +0000
   289.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   289.3 @@ -1,32 +0,0 @@
   289.4 -Copied from similar patch for other architectures.
   289.5 -
   289.6 -Should fix this error:
   289.7 -../sysdeps/unix/sysv/linux/pread.c: In function `__libc_pread':
   289.8 -../sysdeps/unix/sysv/linux/pread.c:53: `__NR_pread' undeclared (first use in this function)
   289.9 -../sysdeps/unix/sysv/linux/pread.c:53: (Each undeclared identifier is reported only once
  289.10 -../sysdeps/unix/sysv/linux/pread.c:53: for each function it appears in.)
  289.11 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/build-glibc/posix/pread.o] Error 1
  289.12 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5/posix'
  289.13 -make[1]: *** [posix/subdir_lib] Error 2
  289.14 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/m68k-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.5/glibc-2.2.5'
  289.15 -make: *** [all] Error 2
  289.16 -
  289.17 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h.old	2004-10-05 08:37:37.000000000 -0700
  289.18 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/m68k/sysdep.h	2004-10-05 08:38:22.000000000 -0700
  289.19 -@@ -32,6 +32,16 @@
  289.20 - # define SYS_ify(syscall_name)	__NR_/**/syscall_name
  289.21 - #endif
  289.22 - 
  289.23 -+/* This is a kludge to make syscalls.list find these under the names
  289.24 -+   pread and pwrite, since some kernel headers define those names
  289.25 -+   and some define the *64 names for the same system calls.  */
  289.26 -+#if !defined __NR_pread && defined __NR_pread64
  289.27 -+# define __NR_pread __NR_pread64
  289.28 -+#endif
  289.29 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  289.30 -+# define __NR_pwrite __NR_pwrite64
  289.31 -+#endif
  289.32 -+
  289.33 - #ifdef __ASSEMBLER__
  289.34 - 
  289.35 - /* Linux uses a negative return value to indicate syscall errors, unlike
   290.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-build-gmon.patch	Tue Aug 14 19:32:22 2007 +0000
   290.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   290.3 @@ -1,86 +0,0 @@
   290.4 -From http://www.ltc.com/~brad/mips/glibc-2.2.5-mips-build-gmon.diff
   290.5 -See http://www.ltc.com/~brad/mips/mips-cross-toolchain.html
   290.6 -
   290.7 ---- glibc-2.2.5/sysdeps/mips/machine-gmon.h	2001-08-13 04:42:44.000000000 -0400
   290.8 -+++ glibc-2.2.5/sysdeps/mips/machine-gmon.h	2002-09-25 17:10:59.000000000 -0400
   290.9 -@@ -17,42 +17,52 @@
  290.10 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  290.11 -    02111-1307 USA.  */
  290.12 - 
  290.13 --#define _MCOUNT_DECL static void __mcount
  290.14 -+#define _MCOUNT_DECL(frompc,selfpc) \
  290.15 -+static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
  290.16 - 
  290.17 - /* Call __mcount with our the return PC for our caller,
  290.18 -    and the return PC our caller will return to.  */
  290.19 - #ifdef __PIC__
  290.20 - #define CPLOAD ".cpload $25;"
  290.21 -+#define CPRESTORE ".cprestore 44\n\t"
  290.22 - #else
  290.23 - #define CPLOAD
  290.24 -+#define CPRESTORE
  290.25 - #endif
  290.26 - 
  290.27 - #define MCOUNT asm(\
  290.28 --	".globl _mcount;" \
  290.29 --	".align 2;" \
  290.30 --	".type _mcount,@function;" \
  290.31 --        "_mcount:;" \
  290.32 --        ".set noreorder;" \
  290.33 --        ".set noat;" \
  290.34 -+	".globl _mcount;\n\t" \
  290.35 -+	".align 2;\n\t" \
  290.36 -+	".type _mcount,@function;\n\t" \
  290.37 -+	".ent _mcount\n\t" \
  290.38 -+        "_mcount:\n\t" \
  290.39 -+        ".frame $sp,44,$31\n\t" \
  290.40 -+        ".set noreorder;\n\t" \
  290.41 -+        ".set noat;\n\t" \
  290.42 -         CPLOAD \
  290.43 --        "sw $4,8($29);" \
  290.44 --        "sw $5,12($29);" \
  290.45 --        "sw $6,16($29);" \
  290.46 --        "sw $7,20($29);" \
  290.47 --        "sw $1,0($29);" \
  290.48 --        "sw $31,4($29);" \
  290.49 --        "move $5,$31;" \
  290.50 --        "move $4,$1;" \
  290.51 --        "jal __mcount;" \
  290.52 --	"nop;" \
  290.53 --        "lw $4,8($29);" \
  290.54 --        "lw $5,12($29);" \
  290.55 --        "lw $6,16($29);" \
  290.56 --        "lw $7,20($29);" \
  290.57 --        "lw $31,4($29);" \
  290.58 --        "lw $1,0($29);" \
  290.59 --        "addu $29,$29,8;" \
  290.60 --        "j $31;" \
  290.61 --        "move $31,$1;" \
  290.62 --        ".set reorder;" \
  290.63 --        ".set at");
  290.64 -+	"subu $29,$29,48;\n\t" \
  290.65 -+	CPRESTORE \
  290.66 -+        "sw $4,24($29);\n\t" \
  290.67 -+        "sw $5,28($29);\n\t" \
  290.68 -+        "sw $6,32($29);\n\t" \
  290.69 -+        "sw $7,36($29);\n\t" \
  290.70 -+        "sw $2,40($29);\n\t" \
  290.71 -+        "sw $1,16($29);\n\t" \
  290.72 -+        "sw $31,20($29);\n\t" \
  290.73 -+        "move $5,$31;\n\t" \
  290.74 -+        "move $4,$1;\n\t" \
  290.75 -+        "jal __mcount;\n\t" \
  290.76 -+        "nop;\n\t" \
  290.77 -+        "lw $4,24($29);\n\t" \
  290.78 -+        "lw $5,28($29);\n\t" \
  290.79 -+        "lw $6,32($29);\n\t" \
  290.80 -+        "lw $7,36($29);\n\t" \
  290.81 -+        "lw $2,40($29);\n\t" \
  290.82 -+        "lw $31,20($29);\n\t" \
  290.83 -+        "lw $1,16($29);\n\t" \
  290.84 -+        "addu $29,$29,56;\n\t" \
  290.85 -+        "j $31;\n\t" \
  290.86 -+        "move $31,$1;\n\t" \
  290.87 -+        ".set reorder;\n\t" \
  290.88 -+        ".set at\n\t" \
  290.89 -+        ".end _mcount");
   291.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-clone-local-label.patch	Tue Aug 14 19:32:22 2007 +0000
   291.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   291.3 @@ -1,47 +0,0 @@
   291.4 -This is a workaround for
   291.5 -
   291.6 -mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c  -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio  -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC   -DASSEMBLER   -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
   291.7 -../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
   291.8 -../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
   291.9 -make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
  291.10 -
  291.11 -which was using h.j.lu's binutils-2.13.90.0.18.
  291.12 -
  291.13 -
  291.14 -But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
  291.15 -which says
  291.16 -"A newer version of binutils (CVS post 2003-03-12) fixes it without
  291.17 -the need of changing perfectly legal code."
  291.18 -So presumably this can be ditched sooner or later.
  291.19 -
  291.20 -From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
  291.21 -
  291.22 -2003-03-13  Guido Guenther  <agx@sigxcpu.org>
  291.23 -
  291.24 -	* sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
  291.25 -	  .Lthread_start since current binutils don't allow branches to globally
  291.26 -	  visible symbols.
  291.27 -
  291.28 -===================================================================
  291.29 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
  291.30 -retrieving revision 1.10
  291.31 -diff -u -r1.10 clone.S
  291.32 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 01:04:51 -0000	1.10
  291.33 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 19:04:39 -0000
  291.34 -@@ -63,7 +63,7 @@
  291.35 - 	syscall
  291.36 - 
  291.37 - 	bnez		a3,error
  291.38 --	beqz		v0,__thread_start
  291.39 -+	beqz		v0,.Lthread_start
  291.40 - 
  291.41 - 	/* Successful return from the parent */
  291.42 - 	addiu		sp,32
  291.43 -@@ -85,6 +85,7 @@
  291.44 -    debug info.  */
  291.45 - 
  291.46 - ENTRY(__thread_start)
  291.47 -+.Lthread_start:
  291.48 - 	/* cp is already loaded.  */
  291.49 - 	.cprestore	16
  291.50 - 	/* The stackframe has been created on entry of clone().  */
   292.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.56.patch	Tue Aug 14 19:32:22 2007 +0000
   292.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   292.3 @@ -1,31 +0,0 @@
   292.4 -wget http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/mips/dl-machine.h.diff?r1=1.55&r2=1.56&cvsroot=glibc
   292.5 -
   292.6 -Changelog: 
   292.7 -    (__dl_runtime_resolve): Remove `const' from `got'.
   292.8 -
   292.9 -Fixes error
  292.10 -
  292.11 -dl-runtime.c: In function `__dl_runtime_resolve':
  292.12 -dl-runtime.c:235: error: assignment of read-only location
  292.13 -make[2]: *** [/home/dank/crosstool-0.28-rc32/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-runtime.o] Error 1
  292.14 -
  292.15 -when building mipsel-gcc-3.4.0-glibc-2.2.5
  292.16 -
  292.17 -===================================================================
  292.18 -RCS file: /cvs/glibc/libc/sysdeps/mips/dl-machine.h,v
  292.19 -retrieving revision 1.55
  292.20 -retrieving revision 1.56
  292.21 -diff -u -r1.55 -r1.56
  292.22 ---- libc/sysdeps/mips/dl-machine.h	2001/09/08 17:16:44	1.55
  292.23 -+++ libc/sysdeps/mips/dl-machine.h	2002/01/17 23:21:33	1.56
  292.24 -@@ -276,8 +276,8 @@
  292.25 -     = (const void *) D_PTR (l, l_info[DT_SYMTAB]);			      \
  292.26 -   const char *strtab							      \
  292.27 -     = (const void *) D_PTR (l, l_info[DT_STRTAB]);			      \
  292.28 --  const ElfW(Addr) *got							      \
  292.29 --    = (const ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);		      \
  292.30 -+  ElfW(Addr) *got							      \
  292.31 -+    = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);			      \
  292.32 -   const ElfW(Word) local_gotno						      \
  292.33 -     = (const ElfW(Word)) l->l_info[DT_MIPS (LOCAL_GOTNO)]->d_un.d_val;	      \
  292.34 -   const ElfW(Word) gotsym						      \
   293.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.57.patch	Tue Aug 14 19:32:22 2007 +0000
   293.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   293.3 @@ -1,43 +0,0 @@
   293.4 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/mips/dl-machine.h.diff?r1=1.57&r2=1.58&cvsroot=glibc'
   293.5 -
   293.6 -ChangeLog:
   293.7 -    (ELF_MACHINE_BEFORE_RTLD_RELOC): Don't use label at end of compound statement.
   293.8 -
   293.9 -Fixes error
  293.10 -
  293.11 -rtld.c: In function `_dl_start':
  293.12 -rtld.c:183: error: label at end of compound statement
  293.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc32/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/rtld.os] Error 1
  293.14 -
  293.15 -
  293.16 -===================================================================
  293.17 -RCS file: /cvs/glibc/libc/sysdeps/mips/dl-machine.h,v
  293.18 -retrieving revision 1.56
  293.19 -retrieving revision 1.57
  293.20 -diff -u -r1.56 -r1.57
  293.21 ---- libc/sysdeps/mips/dl-machine.h	2002/01/17 23:21:33	1.56
  293.22 -+++ libc/sysdeps/mips/dl-machine.h	2002/01/29 02:58:00	1.57
  293.23 -@@ -1,5 +1,5 @@
  293.24 - /* Machine-dependent ELF dynamic relocation inline functions.  MIPS version.
  293.25 --   Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
  293.26 -+   Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
  293.27 -    This file is part of the GNU C Library.
  293.28 -    Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
  293.29 - 
  293.30 -@@ -132,7 +132,7 @@
  293.31 -   got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]);			\
  293.32 - 									\
  293.33 -   if (__builtin_expect (map->l_addr == 0, 1))				\
  293.34 --    goto done;								\
  293.35 -+    break;								\
  293.36 - 									\
  293.37 -   /* got[0] is reserved. got[1] is also reserved for the dynamic object	\
  293.38 -      generated by gnu ld. Skip these reserved entries from		\
  293.39 -@@ -169,7 +169,6 @@
  293.40 -       got++;								\
  293.41 -       sym++;								\
  293.42 -     }									\
  293.43 --done:									\
  293.44 - } while(0)
  293.45 - 
  293.46 - 
   294.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.59-kinda.patch	Tue Aug 14 19:32:22 2007 +0000
   294.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   294.3 @@ -1,35 +0,0 @@
   294.4 -Fixes error
   294.5 -
   294.6 -In file included from dynamic-link.h:21,
   294.7 -                 from dl-load.c:32:
   294.8 -../sysdeps/mips/dl-machine.h:454: error: parse error before "$29"
   294.9 -../sysdeps/mips/dl-machine.h:454: warning: type defaults to `int' in declaration of `$29'
  294.10 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.11 -../sysdeps/mips/dl-machine.h:454: error: syntax error at '#' token
  294.12 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.13 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.14 -../sysdeps/mips/dl-machine.h:454: error: syntax error at '#' token
  294.15 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.16 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.17 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.18 -../sysdeps/mips/dl-machine.h:454: error: stray '\' in program
  294.19 -../sysdeps/mips/dl-machine.h:454: error: missing terminating " character
  294.20 -...
  294.21 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc24/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
  294.22 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc24/build/mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/glibc-2.2.5/elf'
  294.23 -
  294.24 -See also http://sources.redhat.com/ml/crossgcc/2003-12/msg00014.html
  294.25 -
  294.26 -===================================================================
  294.27 -diff -u -r1.58 -r1.59
  294.28 ---- libc/sysdeps/mips/dl-machine.h	2002/02/01 01:31:55	1.58
  294.29 -+++ libc/sysdeps/mips/dl-machine.h	2002/02/03 00:29:15	1.59
  294.30 -@@ -449,7 +449,7 @@
  294.31 - 	addu $7, $7, 4\n\
  294.32 - 	subu $29, 16\n\
  294.33 - 	# Call the function to run the initializers.\n\
  294.34 --	jal _dl_init
  294.35 -+	jal _dl_init\n\
  294.36 - 	addiu $29, 16\n\
  294.37 - 	# Pass our finalizer function to the user in $2 as per ELF ABI.\n\
  294.38 - 	la $2, _dl_fini\n\
   295.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-mips-dl-machine-1.60.patch	Tue Aug 14 19:32:22 2007 +0000
   295.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   295.3 @@ -1,53 +0,0 @@
   295.4 -Message-ID: <20040926095115.9204.qmail@webmail-2-5.mesa1.secureserver.net>
   295.5 -Date: Sun, 26 Sep 2004 02:51:15 -0700
   295.6 -From: ml@bitbash.net
   295.7 -Subject: RE: crosstool-0.28-rc36: ld.so.1 undefined reference
   295.8 -To: Dan Kegel <dank@kegel.com>
   295.9 -cc: crossgcc@sources.redhat.com
  295.10 -
  295.11 -gcc-3.4.0-glibc-2.2.5 barfs with a few undefined refereces and multiple
  295.12 -definitions. The follwing patch seems to take care of the undefined
  295.13 -reference of __dl_runtime_resolve symbol. 
  295.14 -
  295.15 -Filename: patches/glibc-2.2.5/glibc-2.2.5-mips-dl-machine-1.60.patch 
  295.16 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  295.17 -Retrieved with
  295.18 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/mips/dl-machine.h.diff?r1=1.59&r2=1.60&cvsroot=glibc'
  295.19 -See http://sources.redhat.com/ml/libc-alpha/2002-02/msg00091.html
  295.20 -See also glibc-2.2.5-mips-build-gmon.patch, which takes care of the other part of this for mips.
  295.21 -
  295.22 -ChangeLog:
  295.23 -        sysdeps/mips/dl-machine.h (elf_machine_matches_host): Use
  295.24 -        __attribute_used__.
  295.25 -        (__dl_runtime_resolve): Likewise.
  295.26 -
  295.27 -Fixes error
  295.28 -
  295.29 -/home/cross/crosstool-0.28-rc36/build/mips-unknown-linux-gnu/gcc-3.4.0-glibc-2.2.5/build-glibc/elf/ld.so.1:
  295.30 -undefined reference to `__dl_runtime_resolve'
  295.31 -
  295.32 -===================================================================
  295.33 -RCS file: /cvs/glibc/libc/sysdeps/mips/dl-machine.h,v
  295.34 -retrieving revision 1.59
  295.35 -retrieving revision 1.60
  295.36 -diff -u -r1.59 -r1.60
  295.37 ---- libc/sysdeps/mips/dl-machine.h	2002/02/03 00:29:15	1.59
  295.38 -+++ libc/sysdeps/mips/dl-machine.h	2002/02/08 18:56:57	1.60
  295.39 -@@ -69,7 +69,7 @@
  295.40 -    } while (0)
  295.41 - 
  295.42 - /* Return nonzero iff ELF header is compatible with the running host.  */
  295.43 --static inline int __attribute__ ((unused))
  295.44 -+static inline int __attribute_used__
  295.45 - elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
  295.46 - {
  295.47 -   switch (ehdr->e_machine)
  295.48 -@@ -262,7 +262,7 @@
  295.49 - /* This is called from assembly stubs below which the compiler can't see.  */ \
  295.50 - static ElfW(Addr)							      \
  295.51 - __dl_runtime_resolve (ElfW(Word), ElfW(Word), ElfW(Addr), ElfW(Addr))	      \
  295.52 --		  __attribute__ ((unused));				      \
  295.53 -+		  __attribute_used__;					      \
  295.54 - 									      \
  295.55 - static ElfW(Addr)							      \
  295.56 - __dl_runtime_resolve (ElfW(Word) sym_index,				      \
   296.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-powerpc-as.patch	Tue Aug 14 19:32:22 2007 +0000
   296.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   296.3 @@ -1,29 +0,0 @@
   296.4 -Based on glibc-2.3.2/glibc-2.3.2-powerpc-as.patch
   296.5 -
   296.6 -Fixes the following errors when building glibc for ppc7450:
   296.7 -
   296.8 -/tmp/ccwlHdbl.s: Assembler messages:
   296.9 -/tmp/ccwlHdbl.s:73: Error: Unrecognized opcode: `stvx'
  296.10 -/tmp/ccwlHdbl.s:74: Error: Unrecognized opcode: `mfvrsave'
  296.11 -/tmp/ccwlHdbl.s:300: Error: Unrecognized opcode: `lvx'
  296.12 -/tmp/ccwlHdbl.s:302: Error: Unrecognized opcode: `mtvrsave'
  296.13 -make[2]: *** [/usr/local/src/crosstool-0.28-rc34/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libio/iopopen.o] Error 1
  296.14 -make[2]: Leaving directory `/home/local/src/crosstool-0.28-rc34/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.2.5/glibc-2.2.5/libio'
  296.15 -make[1]: *** [libio/subdir_lib] Error 2
  296.16 -make[1]: Leaving directory `/home/local/src/crosstool-0.28-rc34/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.2.5/glibc-2.2.5'
  296.17 -make: *** [all] Error 2
  296.18 -
  296.19 -Contributed by Tom Warzeka <waz@quahog.npt.nuwc.navy.mil>
  296.20 -
  296.21 -===================================================================
  296.22 ---- glibc-2.2.5/sysdeps/powerpc/Makefile~	2004-08-31 14:59:15.000000000 -0400
  296.23 -+++ glibc-2.2.5/sysdeps/powerpc/Makefile	2004-09-02 19:47:21.000000000 -0400
  296.24 -@@ -1,7 +1,6 @@
  296.25 - # We always want to use the new mnemonic syntax even if we are on a RS6000
  296.26 - # machine.
  296.27 --+cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
  296.28 --asm-CPPFLAGS += -Wa,-mppc
  296.29 -++cflags += -mnew-mnemonics
  296.30 - 
  296.31 - ifeq ($(subdir),gmon)
  296.32 - sysdep_routines += ppc-mcount
   297.1 --- a/patches/glibc/2.2.5/glibc-2.2.5-ppc405erratum77.patch	Tue Aug 14 19:32:22 2007 +0000
   297.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   297.3 @@ -1,65 +0,0 @@
   297.4 -# see http://bugs.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=4155
   297.5 -# and http://www.kegel.com/xgcc3/ppc405erratum77.html
   297.6 -# See also matching patch for linuxthreads
   297.7 -
   297.8 -diff -aur glibc-2.2.5.orig/sysdeps/powerpc/atomicity.h glibc-2.2.5/sysdeps/powerpc/atomicity.h
   297.9 ---- glibc-2.2.5.orig/sysdeps/powerpc/atomicity.h	Thu Jul  5 21:56:01 2001
  297.10 -+++ glibc-2.2.5/sysdeps/powerpc/atomicity.h	Tue Jul 23 05:39:38 2002
  297.11 -@@ -28,6 +28,17 @@
  297.12 - # define __ATOMICITY_INLINE inline
  297.13 - #endif
  297.14 - 
  297.15 -+#ifdef __PPC405__
  297.16 -+/* workaround for PPC405 erratum #77 - Mark Hatle, dank.  References:
  297.17 -+   http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
  297.18 -+   http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489
  297.19 -+   http://www.kegel.com/xgcc3/ppc405erratum77.html
  297.20 -+   FIXME: using dbct instead of sync would be faster  */
  297.21 -+#define __LIBC_PPC405_ERR77_SYNC   "sync \n\t"
  297.22 -+#else
  297.23 -+#define __LIBC_PPC405_ERR77_SYNC
  297.24 -+#endif
  297.25 -+
  297.26 - static __ATOMICITY_INLINE int
  297.27 - __attribute__ ((unused))
  297.28 - exchange_and_add (volatile uint32_t *mem, int val)
  297.29 -@@ -36,6 +47,7 @@
  297.30 -   __asm__ ("\n\
  297.31 - 0:	lwarx	%0,0,%2	\n\
  297.32 - 	add%I3	%1,%0,%3	\n\
  297.33 -+	" __LIBC_PPC405_ERR77_SYNC "\n\
  297.34 - 	stwcx.	%1,0,%2	\n\
  297.35 - 	bne-	0b	\n\
  297.36 - " : "=&b"(result), "=&r"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory");
  297.37 -@@ -50,6 +62,7 @@
  297.38 -   __asm__ ("\n\
  297.39 - 0:	lwarx	%0,0,%1	\n\
  297.40 - 	add%I2	%0,%0,%2	\n\
  297.41 -+	" __LIBC_PPC405_ERR77_SYNC "\n\
  297.42 - 	stwcx.	%0,0,%1	\n\
  297.43 - 	bne-	0b	\n\
  297.44 - " : "=&b"(tmp) : "r" (mem), "Ir"(val) : "cr0", "memory");
  297.45 -@@ -65,6 +78,7 @@
  297.46 - 	sub%I2c.	%0,%0,%2	\n\
  297.47 - 	cntlzw	%0,%0	\n\
  297.48 - 	bne-	1f	\n\
  297.49 -+	" __LIBC_PPC405_ERR77_SYNC "\n\
  297.50 - 	stwcx.	%3,0,%1	\n\
  297.51 - 	bne-	0b	\n\
  297.52 - 1:	\n\
  297.53 -@@ -79,6 +93,7 @@
  297.54 -   long int result;
  297.55 -   __asm__ ("\n\
  297.56 - 0:	lwarx	%0,0,%1	\n\
  297.57 -+	" __LIBC_PPC405_ERR77_SYNC "\n\
  297.58 - 	stwcx.	%2,0,%1	\n\
  297.59 - 	bne-	0b	\n\
  297.60 - " : "=&r"(result) : "r"(p), "r"(newval) : "cr0", "memory");
  297.61 -@@ -94,6 +109,7 @@
  297.62 - 0:	lwarx	%0,0,%1	\n\
  297.63 - 	cmpwi	%0,0	\n\
  297.64 - 	bne-	1f	\n\
  297.65 -+	" __LIBC_PPC405_ERR77_SYNC "\n\
  297.66 - 	stwcx.	%2,0,%1	\n\
  297.67 - 	bne-	0b	\n\
  297.68 - 1:	\n\
   298.1 --- a/patches/glibc/2.2.5/glibc-2.3.2-allow-gcc-3.5-xdr.patch	Tue Aug 14 19:32:22 2007 +0000
   298.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   298.3 @@ -1,44 +0,0 @@
   298.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/rpc/xdr.h.diff?r1=1.27&r2=1.28&cvsroot=glibc
   298.5 -(but see also http://sources.redhat.com/ml/libc-alpha/2004-03/msg00267.html
   298.6 -and http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02056.html)
   298.7 -
   298.8 -Fixes errors
   298.9 -
  298.10 -rpc_cmsg.c: In function `xdr_callmsg':
  298.11 -rpc_cmsg.c:70: error: invalid lvalue in increment
  298.12 -rpc_cmsg.c:71: error: invalid lvalue in increment
  298.13 -rpc_cmsg.c:74: error: invalid lvalue in increment
  298.14 -rpc_cmsg.c:77: error: invalid lvalue in increment
  298.15 -rpc_cmsg.c:78: error: invalid lvalue in increment
  298.16 -rpc_cmsg.c:79: error: invalid lvalue in increment
  298.17 -rpc_cmsg.c:81: error: invalid lvalue in increment
  298.18 -rpc_cmsg.c:89: error: invalid lvalue in increment
  298.19 -rpc_cmsg.c:106: error: invalid lvalue in increment
  298.20 -rpc_cmsg.c:107: error: invalid lvalue in increment
  298.21 -rpc_cmsg.c:112: error: invalid lvalue in increment
  298.22 -rpc_cmsg.c:117: error: invalid lvalue in increment
  298.23 -rpc_cmsg.c:118: error: invalid lvalue in increment
  298.24 -rpc_cmsg.c:119: error: invalid lvalue in increment
  298.25 -rpc_cmsg.c:121: error: invalid lvalue in increment
  298.26 -rpc_cmsg.c:160: error: invalid lvalue in increment
  298.27 -
  298.28 -===================================================================
  298.29 -RCS file: /cvs/glibc/libc/sunrpc/rpc/xdr.h,v
  298.30 -retrieving revision 1.27
  298.31 -retrieving revision 1.28
  298.32 -diff -u -r1.27 -r1.28
  298.33 ---- libc/sunrpc/rpc/xdr.h	2002/12/16 02:05:49	1.27
  298.34 -+++ libc/sunrpc/rpc/xdr.h	2004/03/22 10:52:33	1.28
  298.35 -@@ -262,10 +262,8 @@
  298.36 -  * and shouldn't be used any longer. Code which use this defines or longs
  298.37 -  * in the RPC code will not work on 64bit Solaris platforms !
  298.38 -  */
  298.39 --#define IXDR_GET_LONG(buf) \
  298.40 --	((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
  298.41 --#define IXDR_PUT_LONG(buf, v) \
  298.42 --	(*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
  298.43 -+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
  298.44 -+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
  298.45 - #define IXDR_GET_U_LONG(buf)	      ((u_long)IXDR_GET_LONG(buf))
  298.46 - #define IXDR_PUT_U_LONG(buf, v)	      IXDR_PUT_LONG(buf, (long)(v))
  298.47 - 
   299.1 --- a/patches/glibc/2.2.5/glibc-drow-sh.patch	Tue Aug 14 19:32:22 2007 +0000
   299.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   299.3 @@ -1,77 +0,0 @@
   299.4 -[pread changes deleted, since those seem to be specific to glibc-2.3.2]
   299.5 -
   299.6 -Date: Thu, 19 Jun 2003 20:02:07 -0400
   299.7 -From: Daniel Jacobowitz <drow@false.org>
   299.8 -Subject: [linux-sh:02808] Patch needed for CVS glibc on SH
   299.9 -To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
  299.10 -Message-Id: <20030620000207.GA19907@nevyn.them.org>
  299.11 -X-ML-Name: linux-sh
  299.12 -X-Mail-Count: 02808
  299.13 -X-MLServer: fml [fml 4.0.1]; post only (only members can post)
  299.14 -X-ML-Info: If you have a question, send e-mail with the body
  299.15 -	"help" (without quotes) to the address linux-sh-ctl@m17n.org;
  299.16 -	help=<mailto:linux-sh-ctl@m17n.org?body=help>
  299.17 -Mail-Followup-To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
  299.18 -Content-Disposition: inline
  299.19 -User-Agent: Mutt/1.5.1i
  299.20 -Mime-Version: 1.0
  299.21 -Content-Type: text/plain; charset=us-ascii
  299.22 -Precedence: bulk
  299.23 -Lines: 74
  299.24 -List-Software: fml [fml 4.0.1]
  299.25 -List-Post: <mailto:linux-sh@m17n.org>
  299.26 -List-Owner: <mailto:linux-sh-admin@m17n.org>
  299.27 -List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
  299.28 -List-Unsubscribe: <mailto:linux-sh-ctl@m17n.org?body=unsubscribe>
  299.29 -List-Id: linux-sh.m17n.org
  299.30 -
  299.31 -I believe this flushes my current patches to make glibc work on SH.  Issues:
  299.32 - - MIPS pread functions have some wackiness in them for the MIPS calling
  299.33 -   conventions, which align long longs to even register pairs; it appears
  299.34 -   that SH does not do this.  This fixes pread64/pwrite64.
  299.35 - - st_ino is _NOT_ 64-bit in the latest SH kernel trees, or at least it
  299.36 -   wasn't when I checked in April.  --enable-kernel=2.4.x breaks terribly
  299.37 -   without this patch; the errors are along the lines of "version GLIBC_2.3
  299.38 -   not found", because that's the first consequence of a messed up inode
  299.39 -   field - ld.so compares by inodes at some point.
  299.40 -
  299.41 --- 
  299.42 -Daniel Jacobowitz
  299.43 -MontaVista Software                         Debian GNU/Linux Developer
  299.44 -
  299.45 -2003-06-19  Daniel Jacobowitz  <drow@mvista.com>
  299.46 -
  299.47 -	* sysdeps/unix/sysv/linux/kernel-features.h: Update kernel features
  299.48 -	for the SH architecture.
  299.49 -	* sysdeps/unix/sysv/linux/sh/pread.c: Use generic Linux version
  299.50 -	instead of the MIPS version.
  299.51 -	* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
  299.52 -	* sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
  299.53 -	* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
  299.54 -
  299.55 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h.org	2003-04-21 10:57:55.000000000 -0400
  299.56 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h	2003-04-21 11:16:47.000000000 -0400
  299.57 -@@ -151,11 +151,20 @@
  299.58 - 
  299.59 - /* The changed st_ino field appeared in 2.4.0-test6.  But we cannot
  299.60 -    distinguish this version from other 2.4.0 releases.  Therefore play
  299.61 --   save and assume it available is for 2.4.1 and up.  */
  299.62 --#if __LINUX_KERNEL_VERSION >= 132097
  299.63 -+   save and assume it available is for 2.4.1 and up.  However, SH is lame,
  299.64 -+   and still does not have a 64-bit inode field.  */
  299.65 -+#if __LINUX_KERNEL_VERSION >= 132097 \
  299.66 -+    && !defined __sh__
  299.67 - # define __ASSUME_ST_INO_64_BIT		1
  299.68 - #endif
  299.69 - 
  299.70 -+/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test.  */
  299.71 -+#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__
  299.72 -+# define __ASSUME_TRUNCATE64_SYSCALL	1
  299.73 -+# define __ASSUME_MMAP2_SYSCALL		1
  299.74 -+# define __ASSUME_STAT64_SYSCALL	1
  299.75 -+#endif
  299.76 -+
  299.77 - /* To support locking of large files a new fcntl() syscall was introduced
  299.78 -    in 2.4.0-test7.  We test for 2.4.1 for the earliest version we know
  299.79 -    the syscall is available.  */
  299.80 -
   300.1 --- a/patches/glibc/2.2.5/glibc-test-lowram.patch	Tue Aug 14 19:32:22 2007 +0000
   300.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   300.3 @@ -1,14 +0,0 @@
   300.4 ---- glibc-2.2.5/malloc/tst-calloc.c.old	Sun Aug  3 16:17:58 2003
   300.5 -+++ glibc-2.2.5/malloc/tst-calloc.c	Sun Aug  3 16:20:01 2003
   300.6 -@@ -24,9 +24,8 @@
   300.7 - #include <stdio.h>
   300.8 - 
   300.9 - 
  300.10 --/* Number of samples per size.  */
  300.11 --#define N 50000
  300.12 --
  300.13 -+/* Number of samples per size.  This is also the maximum memory consumption in kilobytes. */
  300.14 -+#define N 8000
  300.15 - 
  300.16 - static void
  300.17 - fixed_test (int size)
   301.1 --- a/patches/glibc/2.2.5/initfini-alpha.patch	Tue Aug 14 19:32:22 2007 +0000
   301.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   301.3 @@ -1,125 +0,0 @@
   301.4 -Trivial fix to allow compiling with gcc3.3.
   301.5 -
   301.6 ---- glibc-2.2.5/sysdeps/alpha/elf/initfini.c.old	Fri Jun  6 17:59:45 2003
   301.7 -+++ glibc-2.2.5/sysdeps/alpha/elf/initfini.c	Fri Jun  6 18:00:20 2003
   301.8 -@@ -37,62 +37,62 @@
   301.9 -    files, all of which may have different GP values.  So we must reload
  301.10 -    the GP value from crti.o in crtn.o.  */
  301.11 - 
  301.12 --__asm__ ("
  301.13 --
  301.14 --#include \"defs.h\"
  301.15 --
  301.16 --/*@HEADER_ENDS*/
  301.17 --
  301.18 --/*@_init_PROLOG_BEGINS*/
  301.19 --	.section .init, \"ax\", @progbits
  301.20 --	.globl	_init
  301.21 --	.ent	_init
  301.22 --_init:
  301.23 --	ldgp	$29, 0($27)
  301.24 --	subq	$30, 16, $30
  301.25 --	lda	$27, __gmon_start__
  301.26 --	stq	$26, 0($30)
  301.27 --	stq	$29, 8($30)
  301.28 --	.prologue 1
  301.29 --	beq	$27, 1f
  301.30 --	jsr	$26, ($27), __gmon_start__
  301.31 --	ldq	$29, 8($30)
  301.32 --1:
  301.33 --	.align 3
  301.34 --	.end	_init
  301.35 --	.size	_init, 0
  301.36 --/*@_init_PROLOG_ENDS*/
  301.37 --
  301.38 --/*@_init_EPILOG_BEGINS*/
  301.39 --	.section .init, \"ax\", @progbits
  301.40 --	ldq	$26, 0($30)
  301.41 --	ldq	$29, 8($30)
  301.42 --	addq	$30, 16, $30
  301.43 --	ret
  301.44 --/*@_init_EPILOG_ENDS*/
  301.45 --
  301.46 --/*@_fini_PROLOG_BEGINS*/
  301.47 --	.section .fini, \"ax\", @progbits
  301.48 --	.globl	_fini
  301.49 --	.ent	_fini
  301.50 --_fini:
  301.51 --	ldgp	$29, 0($27)
  301.52 --	subq	$30, 16, $30
  301.53 --	stq	$26, 0($30)
  301.54 --	stq	$29, 8($30)
  301.55 --	.prologue 1
  301.56 --	.align 3
  301.57 --	.end	_fini
  301.58 --	.size	_fini, 0
  301.59 --/*@_fini_PROLOG_ENDS*/
  301.60 --
  301.61 --/*@_fini_EPILOG_BEGINS*/
  301.62 --	.section .fini, \"ax\", @progbits
  301.63 --	ldq	$26, 0($30)
  301.64 --	ldq	$29, 8($30)
  301.65 --	addq	$30, 16, $30
  301.66 --	ret
  301.67 --/*@_fini_EPILOG_ENDS*/
  301.68 --
  301.69 --/*@TRAILER_BEGINS*/
  301.70 -+__asm__ ("\n\
  301.71 -+\n\
  301.72 -+#include \"defs.h\"\n\
  301.73 -+\n\
  301.74 -+/*@HEADER_ENDS*/\n\
  301.75 -+\n\
  301.76 -+/*@_init_PROLOG_BEGINS*/\n\
  301.77 -+	.section .init, \"ax\", @progbits\n\
  301.78 -+	.globl	_init\n\
  301.79 -+	.ent	_init\n\
  301.80 -+_init:\n\
  301.81 -+	ldgp	$29, 0($27)\n\
  301.82 -+	subq	$30, 16, $30\n\
  301.83 -+	lda	$27, __gmon_start__\n\
  301.84 -+	stq	$26, 0($30)\n\
  301.85 -+	stq	$29, 8($30)\n\
  301.86 -+	.prologue 1\n\
  301.87 -+	beq	$27, 1f\n\
  301.88 -+	jsr	$26, ($27), __gmon_start__\n\
  301.89 -+	ldq	$29, 8($30)\n\
  301.90 -+1:\n\
  301.91 -+	.align 3\n\
  301.92 -+	.end	_init\n\
  301.93 -+	.size	_init, 0\n\
  301.94 -+/*@_init_PROLOG_ENDS*/\n\
  301.95 -+\n\
  301.96 -+/*@_init_EPILOG_BEGINS*/\n\
  301.97 -+	.section .init, \"ax\", @progbits\n\
  301.98 -+	ldq	$26, 0($30)\n\
  301.99 -+	ldq	$29, 8($30)\n\
 301.100 -+	addq	$30, 16, $30\n\
 301.101 -+	ret\n\
 301.102 -+/*@_init_EPILOG_ENDS*/\n\
 301.103 -+\n\
 301.104 -+/*@_fini_PROLOG_BEGINS*/\n\
 301.105 -+	.section .fini, \"ax\", @progbits\n\
 301.106 -+	.globl	_fini\n\
 301.107 -+	.ent	_fini\n\
 301.108 -+_fini:\n\
 301.109 -+	ldgp	$29, 0($27)\n\
 301.110 -+	subq	$30, 16, $30\n\
 301.111 -+	stq	$26, 0($30)\n\
 301.112 -+	stq	$29, 8($30)\n\
 301.113 -+	.prologue 1\n\
 301.114 -+	.align 3\n\
 301.115 -+	.end	_fini\n\
 301.116 -+	.size	_fini, 0\n\
 301.117 -+/*@_fini_PROLOG_ENDS*/\n\
 301.118 -+\n\
 301.119 -+/*@_fini_EPILOG_BEGINS*/\n\
 301.120 -+	.section .fini, \"ax\", @progbits\n\
 301.121 -+	ldq	$26, 0($30)\n\
 301.122 -+	ldq	$29, 8($30)\n\
 301.123 -+	addq	$30, 16, $30\n\
 301.124 -+	ret\n\
 301.125 -+/*@_fini_EPILOG_ENDS*/\n\
 301.126 -+\n\
 301.127 -+/*@TRAILER_BEGINS*/\n\
 301.128 - ");
   302.1 --- a/patches/glibc/2.2.5/initfini-ia64.patch	Tue Aug 14 19:32:22 2007 +0000
   302.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   302.3 @@ -1,219 +0,0 @@
   302.4 -Retrieved with
   302.5 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/ia64/elf/initfini.c.diff?r1=1.2&r2=1.3&cvsroot=glibc'
   302.6 -
   302.7 -Revision 1.3, Sun Aug 25 00:34:23 2002 UTC (2 years, 1 month ago) by drepper
   302.8 -Branch: MAIN
   302.9 -CVS Tags: glibc-2-3-1, glibc-2-3
  302.10 -Changes since 1.2: +78 -78 lines
  302.11 -
  302.12 -(__asm__): Don't use newlines embedded in string.
  302.13 -
  302.14 -Fixes error
  302.15 -
  302.16 -../sysdeps/ia64/elf/initfini.c:30:10: missing terminating " character
  302.17 -../sysdeps/ia64/elf/initfini.c:32:10: #include expects "FILENAME" or <FILENAME>
  302.18 -../sysdeps/ia64/elf/initfini.c:37: error: request for member `section' in something not a structure or union
  302.19 -../sysdeps/ia64/elf/initfini.c:38: error: parse error before numeric constant
  302.20 -../sysdeps/ia64/elf/initfini.c:39: error: syntax error at '#' token
  302.21 -../sysdeps/ia64/elf/initfini.c:40: error: syntax error at '#' token
  302.22 -../sysdeps/ia64/elf/initfini.c:46: error: syntax error at '@' token
  302.23 -../sysdeps/ia64/elf/initfini.c:46: error: syntax error at '#' token
  302.24 -../sysdeps/ia64/elf/initfini.c:48: error: parse error before "r15"
  302.25 -../sysdeps/ia64/elf/initfini.c:48: warning: type defaults to `int' in declaration of `r15'
  302.26 -../sysdeps/ia64/elf/initfini.c:50: error: parse error before '.' token
  302.27 -../sysdeps/ia64/elf/initfini.c:56: error: syntax error at '#' token
  302.28 -../sysdeps/ia64/elf/initfini.c:57: error: parse error before "r12"
  302.29 -../sysdeps/ia64/elf/initfini.c:57: warning: type defaults to `int' in declaration of `r12'
  302.30 -../sysdeps/ia64/elf/initfini.c:58: warning: type defaults to `int' in declaration of `r12'
  302.31 -../sysdeps/ia64/elf/initfini.c:58: warning: data definition has no type or storage class
  302.32 -../sysdeps/ia64/elf/initfini.c:59: error: parse error before "gp"
  302.33 -../sysdeps/ia64/elf/initfini.c:59: warning: type defaults to `int' in declaration of `gp'
  302.34 -../sysdeps/ia64/elf/initfini.c:63: error: syntax error at '#' token
  302.35 -../sysdeps/ia64/elf/initfini.c:74: error: syntax error at '#' token
  302.36 -../sysdeps/ia64/elf/initfini.c:80: error: syntax error at '#' token
  302.37 -../sysdeps/ia64/elf/initfini.c:81: error: syntax error at '#' token
  302.38 -../sysdeps/ia64/elf/initfini.c:89: error: syntax error at '#' token
  302.39 -../sysdeps/ia64/elf/initfini.c:92: error: syntax error at '#' token
  302.40 -../sysdeps/ia64/elf/initfini.c:96: error: parse error before '.' token
  302.41 -../sysdeps/ia64/elf/initfini.c:101: error: syntax error at '#' token
  302.42 -../sysdeps/ia64/elf/initfini.c:106: error: syntax error at '#' token
  302.43 -../sysdeps/ia64/elf/initfini.c:107:1: missing terminating " character
  302.44 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/csu/initfini.s] Error 1
  302.45 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/glibc-2.2.5/csu'
  302.46 -make[1]: *** [csu/subdir_lib] Error 2
  302.47 -make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/glibc-2.2.5'
  302.48 -make: *** [all] Error 2
  302.49 -
  302.50 -===================================================================
  302.51 -RCS file: /cvs/glibc/libc/sysdeps/ia64/elf/initfini.c,v
  302.52 -retrieving revision 1.2
  302.53 -retrieving revision 1.3
  302.54 -diff -u -r1.2 -r1.3
  302.55 ---- libc/sysdeps/ia64/elf/initfini.c	2001/07/06 04:55:54	1.2
  302.56 -+++ libc/sysdeps/ia64/elf/initfini.c	2002/08/25 00:34:23	1.3
  302.57 -@@ -1,5 +1,5 @@
  302.58 - /* Special .init and .fini section support for ia64.
  302.59 --   Copyright (C) 2000 Free Software Foundation, Inc.
  302.60 -+   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
  302.61 -    This file is part of the GNU C Library.
  302.62 - 
  302.63 -    The GNU C Library is free software; you can redistribute it and/or
  302.64 -@@ -27,81 +27,81 @@
  302.65 -    * crtn.s puts the corresponding function epilogues
  302.66 -    in the .init and .fini sections. */
  302.67 - 
  302.68 --__asm__ ("
  302.69 --
  302.70 --#include \"defs.h\"
  302.71 --
  302.72 --/*@HEADER_ENDS*/
  302.73 --
  302.74 --/*@_init_PROLOG_BEGINS*/
  302.75 --	.section .init
  302.76 --	.align 16
  302.77 --	.global _init#
  302.78 --	.proc _init#
  302.79 --_init:
  302.80 --	alloc r34 = ar.pfs, 0, 3, 0, 0
  302.81 --	mov r32 = r12
  302.82 --	mov r33 = b0
  302.83 --	adds r12 = -16, r12
  302.84 --	addl r14 = @ltoff(@fptr(__gmon_start__#)), gp
  302.85 --	;;
  302.86 --	ld8 r15 = [r14]
  302.87 --	;;
  302.88 --	cmp.eq p6, p7 = 0, r15
  302.89 --	(p6) br.cond.dptk .L5
  302.90 --
  302.91 --/* we could use r35 to save gp, but we use the stack since that's what
  302.92 -- * all the other init routines will do --davidm 00/04/05 */
  302.93 --	st8 [r12] = gp, -16
  302.94 --	br.call.sptk.many b0 = __gmon_start__# ;;
  302.95 --	adds r12 = 16, r12
  302.96 --	;;
  302.97 --	ld8 gp = [r12]
  302.98 --	;;
  302.99 --.L5:
 302.100 --	.align 16
 302.101 --	.endp _init#
 302.102 --
 302.103 --/*@_init_PROLOG_ENDS*/
 302.104 --
 302.105 --/*@_init_EPILOG_BEGINS*/
 302.106 --	.section .init
 302.107 --	.regstk 0,2,0,0
 302.108 --	mov r12 = r32
 302.109 --	mov ar.pfs = r34
 302.110 --	mov b0 = r33
 302.111 --	br.ret.sptk.many b0
 302.112 --	.endp _init#
 302.113 --/*@_init_EPILOG_ENDS*/
 302.114 --
 302.115 --/*@_fini_PROLOG_BEGINS*/
 302.116 --	.section .fini
 302.117 --	.align 16
 302.118 --	.global _fini#
 302.119 --	.proc _fini#
 302.120 --_fini:
 302.121 --	alloc r34 = ar.pfs, 0, 3, 0, 0
 302.122 --	mov r32 = r12
 302.123 --	mov r33 = b0
 302.124 --	adds r12 = -16, r12
 302.125 --	;;
 302.126 --	.align 16
 302.127 --	.endp _fini#
 302.128 --
 302.129 --/*@_fini_PROLOG_ENDS*/
 302.130 --	br.call.sptk.many b0 = i_am_not_a_leaf# ;;
 302.131 --	;;
 302.132 --
 302.133 --/*@_fini_EPILOG_BEGINS*/
 302.134 --	.section .fini
 302.135 --	mov r12 = r32
 302.136 --	mov ar.pfs = r34
 302.137 --	mov b0 = r33
 302.138 --	br.ret.sptk.many b0
 302.139 --	.endp _fini#
 302.140 --
 302.141 --/*@_fini_EPILOG_ENDS*/
 302.142 --
 302.143 --/*@TRAILER_BEGINS*/
 302.144 --	.weak	__gmon_start__#
 302.145 -+__asm__ ("\n\
 302.146 -+\n\
 302.147 -+#include \"defs.h\"\n\
 302.148 -+\n\
 302.149 -+/*@HEADER_ENDS*/\n\
 302.150 -+\n\
 302.151 -+/*@_init_PROLOG_BEGINS*/\n\
 302.152 -+	.section .init\n\
 302.153 -+	.align 16\n\
 302.154 -+	.global _init#\n\
 302.155 -+	.proc _init#\n\
 302.156 -+_init:\n\
 302.157 -+	alloc r34 = ar.pfs, 0, 3, 0, 0\n\
 302.158 -+	mov r32 = r12\n\
 302.159 -+	mov r33 = b0\n\
 302.160 -+	adds r12 = -16, r12\n\
 302.161 -+	addl r14 = @ltoff(@fptr(__gmon_start__#)), gp\n\
 302.162 -+	;;\n\
 302.163 -+	ld8 r15 = [r14]\n\
 302.164 -+	;;\n\
 302.165 -+	cmp.eq p6, p7 = 0, r15\n\
 302.166 -+	(p6) br.cond.dptk .L5\n\
 302.167 -+\n\
 302.168 -+/* we could use r35 to save gp, but we use the stack since that's what\n\
 302.169 -+ * all the other init routines will do --davidm 00/04/05 */\n\
 302.170 -+	st8 [r12] = gp, -16\n\
 302.171 -+	br.call.sptk.many b0 = __gmon_start__# ;;\n\
 302.172 -+	adds r12 = 16, r12\n\
 302.173 -+	;;\n\
 302.174 -+	ld8 gp = [r12]\n\
 302.175 -+	;;\n\
 302.176 -+.L5:\n\
 302.177 -+	.align 16\n\
 302.178 -+	.endp _init#\n\
 302.179 -+\n\
 302.180 -+/*@_init_PROLOG_ENDS*/\n\
 302.181 -+\n\
 302.182 -+/*@_init_EPILOG_BEGINS*/\n\
 302.183 -+	.section .init\n\
 302.184 -+	.regstk 0,2,0,0\n\
 302.185 -+	mov r12 = r32\n\
 302.186 -+	mov ar.pfs = r34\n\
 302.187 -+	mov b0 = r33\n\
 302.188 -+	br.ret.sptk.many b0\n\
 302.189 -+	.endp _init#\n\
 302.190 -+/*@_init_EPILOG_ENDS*/\n\
 302.191 -+\n\
 302.192 -+/*@_fini_PROLOG_BEGINS*/\n\
 302.193 -+	.section .fini\n\
 302.194 -+	.align 16\n\
 302.195 -+	.global _fini#\n\
 302.196 -+	.proc _fini#\n\
 302.197 -+_fini:\n\
 302.198 -+	alloc r34 = ar.pfs, 0, 3, 0, 0\n\
 302.199 -+	mov r32 = r12\n\
 302.200 -+	mov r33 = b0\n\
 302.201 -+	adds r12 = -16, r12\n\
 302.202 -+	;;\n\
 302.203 -+	.align 16\n\
 302.204 -+	.endp _fini#\n\
 302.205 -+\n\
 302.206 -+/*@_fini_PROLOG_ENDS*/\n\
 302.207 -+	br.call.sptk.many b0 = i_am_not_a_leaf# ;;\n\
 302.208 -+	;;\n\
 302.209 -+\n\
 302.210 -+/*@_fini_EPILOG_BEGINS*/\n\
 302.211 -+	.section .fini\n\
 302.212 -+	mov r12 = r32\n\
 302.213 -+	mov ar.pfs = r34\n\
 302.214 -+	mov b0 = r33\n\
 302.215 -+	br.ret.sptk.many b0\n\
 302.216 -+	.endp _fini#\n\
 302.217 -+\n\
 302.218 -+/*@_fini_EPILOG_ENDS*/\n\
 302.219 -+\n\
 302.220 -+/*@TRAILER_BEGINS*/\n\
 302.221 -+	.weak	__gmon_start__#\n\
 302.222 - ");
   303.1 --- a/patches/glibc/2.2.5/initfini-sh.patch	Tue Aug 14 19:32:22 2007 +0000
   303.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   303.3 @@ -1,243 +0,0 @@
   303.4 ---- glibc-2.2.5/sysdeps/sh/elf/initfini.c.orig	Thu Jul  5 21:56:03 2001
   303.5 -+++ glibc-2.2.5/sysdeps/sh/elf/initfini.c	Wed May 28 08:45:08 2003
   303.6 -@@ -27,122 +27,122 @@
   303.7 -    * crtn.s puts the corresponding function epilogues
   303.8 -    in the .init and .fini sections. */
   303.9 - 
  303.10 --__asm__ ("
  303.11 --
  303.12 --#include \"defs.h\"
  303.13 --#define SHARED
  303.14 --
  303.15 --/*@HEADER_ENDS*/
  303.16 --
  303.17 --/*@TESTS_BEGIN*/
  303.18 --
  303.19 --/*@TESTS_END*/
  303.20 --
  303.21 --/*@_init_PROLOG_BEGINS*/
  303.22 --	.section .init
  303.23 --	.align 5
  303.24 --	.global	_init
  303.25 --	.type	_init,@function
  303.26 --_init:
  303.27 --	mov.l	r12,@-r15
  303.28 --	mov.l	r14,@-r15
  303.29 --	sts.l	pr,@-r15
  303.30 --#ifdef SHARED
  303.31 --	mova	.L22,r0
  303.32 --	mov.l	.L22,r12
  303.33 --	add	r0,r12
  303.34 --	mova	.L23,r0
  303.35 --	mov.l	.L23,r1
  303.36 --	add	r0,r1
  303.37 --#else
  303.38 --	mov.l	.L23,r1
  303.39 --#endif
  303.40 --	jsr	@r1
  303.41 --	 mov	r15,r14
  303.42 --	bra	1f
  303.43 --	 nop
  303.44 --	.align 2
  303.45 --#ifdef SHARED
  303.46 --.L22:
  303.47 --	.long	_GLOBAL_OFFSET_TABLE_
  303.48 --.L23:
  303.49 --	.long	__gmon_start__@PLT
  303.50 --#else
  303.51 --.L23:
  303.52 --	.long	__gmon_start__
  303.53 --#endif
  303.54 --	.data
  303.55 --	.global __fpscr_values
  303.56 --__fpscr_values:
  303.57 --	.long   0
  303.58 --	.long   0x80000
  303.59 --	.previous
  303.60 --1:
  303.61 --	ALIGN
  303.62 --	END_INIT
  303.63 --
  303.64 --	
  303.65 --/*@_init_PROLOG_ENDS*/
  303.66 --
  303.67 --/*@_init_EPILOG_BEGINS*/
  303.68 --	.section .init
  303.69 --	mov	r14,r15
  303.70 --	lds.l	@r15+,pr
  303.71 --	mov.l	@r15+,r14
  303.72 --	rts	
  303.73 --	mov.l	@r15+,r12
  303.74 --	END_INIT
  303.75 --	.section .text
  303.76 --	.align 5
  303.77 --	.weak	__gmon_start__
  303.78 --	.type	__gmon_start__,@function
  303.79 --__gmon_start__:
  303.80 --	mov.l	r14,@-r15
  303.81 --	mov	r15,r14
  303.82 --	mov	r14,r15
  303.83 --	rts	
  303.84 --	mov.l	@r15+,r14
  303.85 --	
  303.86 --/*@_init_EPILOG_ENDS*/
  303.87 --
  303.88 --/*@_fini_PROLOG_BEGINS*/
  303.89 --	.section .fini
  303.90 --	.align 5
  303.91 --	.global	_fini
  303.92 --	.type	_fini,@function
  303.93 --_fini:
  303.94 --	mov.l	r12,@-r15
  303.95 --	mov.l	r14,@-r15
  303.96 --	sts.l	pr,@-r15
  303.97 --#ifdef SHARED
  303.98 --	mova	.L27,r0
  303.99 --	mov.l	.L27,r12
 303.100 --	add	r0,r12
 303.101 --#endif
 303.102 --	mov	r15,r14
 303.103 --	ALIGN
 303.104 --	END_FINI
 303.105 --#ifdef SHARED
 303.106 --	bra	1f
 303.107 --	 nop
 303.108 --	.align	2
 303.109 --.L27:
 303.110 --	.long	_GLOBAL_OFFSET_TABLE_
 303.111 --#endif
 303.112 --1:
 303.113 --/*@_fini_PROLOG_ENDS*/
 303.114 --
 303.115 --/*@_fini_EPILOG_BEGINS*/
 303.116 --	.section .fini
 303.117 --	mov	r14,r15
 303.118 --	lds.l	@r15+,pr
 303.119 --	mov.l	@r15+,r14
 303.120 --	rts	
 303.121 --	mov.l	@r15+,r12
 303.122 --
 303.123 --	END_FINI
 303.124 --	
 303.125 --/*@_fini_EPILOG_ENDS*/
 303.126 --
 303.127 --/*@TRAILER_BEGINS*/
 303.128 -+__asm__ ("\n\
 303.129 -+\n\
 303.130 -+#include \"defs.h\"\n\
 303.131 -+#define SHARED\n\
 303.132 -+\n\
 303.133 -+/*@HEADER_ENDS*/\n\
 303.134 -+\n\
 303.135 -+/*@TESTS_BEGIN*/\n\
 303.136 -+\n\
 303.137 -+/*@TESTS_END*/\n\
 303.138 -+\n\
 303.139 -+/*@_init_PROLOG_BEGINS*/\n\
 303.140 -+	.section .init\n\
 303.141 -+	.align 5\n\
 303.142 -+	.global	_init\n\
 303.143 -+	.type	_init,@function\n\
 303.144 -+_init:\n\
 303.145 -+	mov.l	r12,@-r15\n\
 303.146 -+	mov.l	r14,@-r15\n\
 303.147 -+	sts.l	pr,@-r15\n\
 303.148 -+#ifdef SHARED\n\
 303.149 -+	mova	.L22,r0\n\
 303.150 -+	mov.l	.L22,r12\n\
 303.151 -+	add	r0,r12\n\
 303.152 -+	mova	.L23,r0\n\
 303.153 -+	mov.l	.L23,r1\n\
 303.154 -+	add	r0,r1\n\
 303.155 -+#else\n\
 303.156 -+	mov.l	.L23,r1\n\
 303.157 -+#endif\n\
 303.158 -+	jsr	@r1\n\
 303.159 -+	 mov	r15,r14\n\
 303.160 -+	bra	1f\n\
 303.161 -+	 nop\n\
 303.162 -+	.align 2\n\
 303.163 -+#ifdef SHARED\n\
 303.164 -+.L22:\n\
 303.165 -+	.long	_GLOBAL_OFFSET_TABLE_\n\
 303.166 -+.L23:\n\
 303.167 -+	.long	__gmon_start__@PLT\n\
 303.168 -+#else\n\
 303.169 -+.L23:\n\
 303.170 -+	.long	__gmon_start__\n\
 303.171 -+#endif\n\
 303.172 -+	.data\n\
 303.173 -+	.global __fpscr_values\n\
 303.174 -+__fpscr_values:\n\
 303.175 -+	.long   0\n\
 303.176 -+	.long   0x80000\n\
 303.177 -+	.previous\n\
 303.178 -+1:\n\
 303.179 -+	ALIGN\n\
 303.180 -+	END_INIT\n\
 303.181 -+\n\
 303.182 -+	\n\
 303.183 -+/*@_init_PROLOG_ENDS*/\n\
 303.184 -+\n\
 303.185 -+/*@_init_EPILOG_BEGINS*/\n\
 303.186 -+	.section .init\n\
 303.187 -+	mov	r14,r15\n\
 303.188 -+	lds.l	@r15+,pr\n\
 303.189 -+	mov.l	@r15+,r14\n\
 303.190 -+	rts	\n\
 303.191 -+	mov.l	@r15+,r12\n\
 303.192 -+	END_INIT\n\
 303.193 -+	.section .text\n\
 303.194 -+	.align 5\n\
 303.195 -+	.weak	__gmon_start__\n\
 303.196 -+	.type	__gmon_start__,@function\n\
 303.197 -+__gmon_start__:\n\
 303.198 -+	mov.l	r14,@-r15\n\
 303.199 -+	mov	r15,r14\n\
 303.200 -+	mov	r14,r15\n\
 303.201 -+	rts	\n\
 303.202 -+	mov.l	@r15+,r14\n\
 303.203 -+	\n\
 303.204 -+/*@_init_EPILOG_ENDS*/\n\
 303.205 -+\n\
 303.206 -+/*@_fini_PROLOG_BEGINS*/\n\
 303.207 -+	.section .fini\n\
 303.208 -+	.align 5\n\
 303.209 -+	.global	_fini\n\
 303.210 -+	.type	_fini,@function\n\
 303.211 -+_fini:\n\
 303.212 -+	mov.l	r12,@-r15\n\
 303.213 -+	mov.l	r14,@-r15\n\
 303.214 -+	sts.l	pr,@-r15\n\
 303.215 -+#ifdef SHARED\n\
 303.216 -+	mova	.L27,r0\n\
 303.217 -+	mov.l	.L27,r12\n\
 303.218 -+	add	r0,r12\n\
 303.219 -+#endif\n\
 303.220 -+	mov	r15,r14\n\
 303.221 -+	ALIGN\n\
 303.222 -+	END_FINI\n\
 303.223 -+#ifdef SHARED\n\
 303.224 -+	bra	1f\n\
 303.225 -+	 nop\n\
 303.226 -+	.align	2\n\
 303.227 -+.L27:\n\
 303.228 -+	.long	_GLOBAL_OFFSET_TABLE_\n\
 303.229 -+#endif\n\
 303.230 -+1:\n\
 303.231 -+/*@_fini_PROLOG_ENDS*/\n\
 303.232 -+\n\
 303.233 -+/*@_fini_EPILOG_BEGINS*/\n\
 303.234 -+	.section .fini\n\
 303.235 -+	mov	r14,r15\n\
 303.236 -+	lds.l	@r15+,pr\n\
 303.237 -+	mov.l	@r15+,r14\n\
 303.238 -+	rts	\n\
 303.239 -+	mov.l	@r15+,r12\n\
 303.240 -+\n\
 303.241 -+	END_FINI\n\
 303.242 -+	\n\
 303.243 -+/*@_fini_EPILOG_ENDS*/\n\
 303.244 -+\n\
 303.245 -+/*@TRAILER_BEGINS*/\n\
 303.246 - ");
   304.1 --- a/patches/glibc/2.2.5/longjmp-sparc.patch	Tue Aug 14 19:32:22 2007 +0000
   304.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   304.3 @@ -1,75 +0,0 @@
   304.4 -From libc-alpha-return-8354-listarch-libc-alpha=sourceware dot cygnus dot com at sources dot redhat dot com Mon Jul 01 11:18:29 2002
   304.5 -Return-Path: <libc-alpha-return-8354-listarch-libc-alpha=sourceware dot cygnus dot com at sources dot redhat dot com>
   304.6 -Delivered-To: listarch-libc-alpha at sourceware dot cygnus dot com
   304.7 -Received: (qmail 10698 invoked by alias); 1 Jul 2002 11:18:28 -0000
   304.8 -Mailing-List: contact libc-alpha-help at sources dot redhat dot com; run by ezmlm
   304.9 -Precedence: bulk
  304.10 -List-Subscribe: <mailto:libc-alpha-subscribe at sources dot redhat dot com>
  304.11 -List-Archive: <http://sources.redhat.com/ml/libc-alpha/>
  304.12 -List-Post: <mailto:libc-alpha at sources dot redhat dot com>
  304.13 -List-Help: <mailto:libc-alpha-help at sources dot redhat dot com>, <http://sources dot redhat dot com/ml/#faqs>
  304.14 -Sender: libc-alpha-owner at sources dot redhat dot com
  304.15 -Delivered-To: mailing list libc-alpha at sources dot redhat dot com
  304.16 -Received: (qmail 10659 invoked from network); 1 Jul 2002 11:18:27 -0000
  304.17 -Received: from unknown (HELO sceaux.ilog.fr) (193.55.64.10)
  304.18 -  by sources dot redhat dot com with SMTP; 1 Jul 2002 11:18:27 -0000
  304.19 -Received: from ftp.ilog.fr (ftp.ilog.fr [193.55.64.11])
  304.20 -	by sceaux dot ilog dot fr (8 dot 11 dot 6/8 dot 11 dot 6) with SMTP id g61BFDi08003
  304.21 -	for <libc-alpha at sources dot redhat dot com>; Mon, 1 Jul 2002 13:15:18 +0200 (MET DST)
  304.22 -Received: from laposte.ilog.fr ([193.55.64.67])
  304.23 - by ftp dot ilog dot fr (NAVGW 2 dot 5 dot 1 dot 16) with SMTP id M2002070113180506608
  304.24 - for <libc-alpha at sources dot redhat dot com>; Mon, 01 Jul 2002 13:18:05 +0200
  304.25 -Received: from honolulu.ilog.fr ([172.17.4.43])
  304.26 -	by laposte dot ilog dot fr (8 dot 11 dot 6/8 dot 11 dot 5) with ESMTP id g61BI2w29996;
  304.27 -	Mon, 1 Jul 2002 13:18:02 +0200 (MET DST)
  304.28 -Received: (from haible@localhost)
  304.29 -	by honolulu dot ilog dot fr (8 dot 9 dot 3/8 dot 9 dot 3/SuSE Linux 8 dot 9 dot 3-0 dot 1) id NAA01763;
  304.30 -	Mon, 1 Jul 2002 13:12:40 +0200
  304.31 -MIME-Version: 1.0
  304.32 -Content-Type: text/plain; charset=us-ascii
  304.33 -Content-Transfer-Encoding: base64
  304.34 -Message-ID: <15648.14632.526690.249866@honolulu.ilog.fr>
  304.35 -Date: Mon, 1 Jul 2002 13:12:40 +0200 (CEST)
  304.36 -From: Bruno Haible <bruno at clisp dot org>
  304.37 -To: libc-alpha at sources dot redhat dot com
  304.38 -Subject: sparc32/sysdep.h and gcc-3.1
  304.39 -
  304.40 -Hi,
  304.41 -
  304.42 -When building glibc-2.2.5 for sparc with gcc-3.1 I get a build error
  304.43 -
  304.44 -sparc-linux-gcc ../sysdeps/sparc/sparc32/__longjmp.S -c  -I../include -I. -I/backup/cross-build/build-glibc-sparc/setjmp -I.. -I../libio  -I/backup/cross-build/build-glibc-sparc -I../sysdeps/sparc/sparc32/elf -I../linuxthreads/sysdeps/unix/sysv/linux/sparc -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/sparc/sparc32 -I../linuxthreads/sysdeps/sparc -I../sysdeps/unix/sysv/linux/sparc/sparc32 -I../sysdeps/unix/sysv/linux/sparc -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/sparc -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/sparc/sparc32/fpu -I../sysdeps/sparc/sparc32 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/sparc/sparc32/soft-fp -I../sysdeps/sparc/fpu -I../sysdeps/sparc -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /cross/sparc-linux-tools/lib/gcc-lib/sparc-linux/3.1/include -isystem /cross/sparc-linux/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h     -DASSEMBLER -D__ASSEMBLY__  -o /backup/cross-build/build-glibc-sparc/setjmp/__longjmp.o
  304.45 -../sysdeps/sparc/sparc32/__longjmp.S: Assembler messages:
  304.46 -../sysdeps/sparc/sparc32/__longjmp.S:41: Error: Illegal operands
  304.47 -../sysdeps/sparc/sparc32/__longjmp.S:43: Error: Illegal operands
  304.48 -../sysdeps/sparc/sparc32/__longjmp.S:48: Error: unknown pseudo-op: `.'
  304.49 -../sysdeps/sparc/sparc32/__longjmp.S:50: Error: Illegal operands
  304.50 -../sysdeps/sparc/sparc32/__longjmp.S:52: Error: Illegal operands
  304.51 -../sysdeps/sparc/sparc32/__longjmp.S:55: Error: unknown pseudo-op: `.'
  304.52 -../sysdeps/sparc/sparc32/__longjmp.S:72: Error: unknown pseudo-op: `.'
  304.53 -../sysdeps/sparc/sparc32/__longjmp.S:76: Error: unknown pseudo-op: `.'
  304.54 -make[2]: *** [/backup/cross-build/build-glibc-sparc/setjmp/__longjmp.o] Fehler 1
  304.55 -make[2]: Leaving directory `/packages2/glibc-2.2.5/setjmp'
  304.56 -
  304.57 -Apparently "cpp0 -lang-asm" now leaves spaces around ## in place, if the token
  304.58 -on the left or right of it is a lone dot (not a valid C identifier). Hard to
  304.59 -say that it's a bug in the gcc-3.1 cpp, because -lang-asm is a gcc extension.
  304.60 -The fix is just to remove the spaces.
  304.61 -
  304.62 -
  304.63 -2002-06-05  Bruno Haible  <bruno@clisp.org>
  304.64 -
  304.65 -	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h (LOC): Remove spaces.
  304.66 -
  304.67 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h.bak	2001-07-06 06:56:21.000000000 +0200
  304.68 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h	2002-06-05 23:14:40.000000000 +0200
  304.69 -@@ -48,7 +48,7 @@
  304.70 - #define END(name) \
  304.71 - 	.size name, . - name
  304.72 - 
  304.73 --#define LOC(name)  . ## L ## name
  304.74 -+#define LOC(name)  .##L##name
  304.75 - 
  304.76 - #ifdef PIC
  304.77 - #define SYSCALL_ERROR_HANDLER					\
  304.78 -
   305.1 --- a/patches/glibc/2.2.5/sh-setjmp-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   305.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   305.3 @@ -1,29 +0,0 @@
   305.4 -Fixes glibc 'make tests' failure running isomac
   305.5 -
   305.6 -make[2]: *** [/home3/dank/wk/ixos/dap_interim/linux/3rdParty/crosstool/crosstool-0.15/build/sh4-unknown-linux-gnu/gcc-ss-3_3-20030714-glibc-2.2.5/build-glibc/stdlib/isomac.out] Error 2
   305.7 -
   305.8 -isomac.out contains:
   305.9 -...
  305.10 -setjmp.h
  305.11 -#define JB_SIZE (4 * 15)
  305.12 -
  305.13 -See http://sources.redhat.com/ml/libc-hacker/2002-11/msg00009.html
  305.14 -and http://www.schweikhardt.net/isomac.c.html
  305.15 -
  305.16 -===================================================================
  305.17 -RCS file: /cvs/glibc/libc/sysdeps/sh/bits/setjmp.h,v
  305.18 -retrieving revision 1.4
  305.19 -retrieving revision 1.5
  305.20 -diff -u -r1.4 -r1.5
  305.21 ---- libc/sysdeps/sh/bits/setjmp.h	2001/07/06 04:56:03	1.4
  305.22 -+++ libc/sysdeps/sh/bits/setjmp.h	2002/11/06 00:08:30	1.5
  305.23 -@@ -42,7 +42,9 @@
  305.24 -   } __jmp_buf[1];
  305.25 - #endif
  305.26 - 
  305.27 -+#if defined __USE_MISC || defined _ASM
  305.28 - #define JB_SIZE		(4 * 15)
  305.29 -+#endif
  305.30 - 
  305.31 - /* Test if longjmp to JMPBUF would unwind the frame
  305.32 -    containing a local variable at ADDRESS.  */
   306.1 --- a/patches/glibc/2.2.5/sprintf-prototype.patch	Tue Aug 14 19:32:22 2007 +0000
   306.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   306.3 @@ -1,13 +0,0 @@
   306.4 ---- glibc-2.2.5/stdio-common/sprintf.c.old	Wed May 28 08:59:11 2003
   306.5 -+++ glibc-2.2.5/stdio-common/sprintf.c	Wed May 28 08:59:45 2003
   306.6 -@@ -27,9 +27,7 @@
   306.7 - /* Write formatted output into S, according to the format string FORMAT.  */
   306.8 - /* VARARGS2 */
   306.9 - int
  306.10 --sprintf (s, format)
  306.11 --     char *s;
  306.12 --     const char *format;
  306.13 -+sprintf (char *s, const char *format, ...)
  306.14 - {
  306.15 -   va_list arg;
  306.16 -   int done;
   307.1 --- a/patches/glibc/2.2.5/sscanf.patch	Tue Aug 14 19:32:22 2007 +0000
   307.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   307.3 @@ -1,82 +0,0 @@
   307.4 -[dank] Modified very slightly to apply to 2.2.5.
   307.5 -
   307.6 -2003-03-05  Roland McGrath  <roland@redhat.com>
   307.7 -
   307.8 -	* stdio-common/sscanf.c: Use prototype defn with ... syntax.
   307.9 -	* libio/swscanf.c: Likewise.
  307.10 -	* libio/swprintf.c: Likewise.
  307.11 -
  307.12 -===================================================================
  307.13 -RCS file: /cvs/glibc/libc/stdio-common/sscanf.c,v
  307.14 -retrieving revision 1.8
  307.15 -retrieving revision 1.9
  307.16 -diff -u -r1.8 -r1.9
  307.17 ---- libc/stdio-common/sscanf.c	2002/08/10 09:24:42	1.8
  307.18 -+++ libc/stdio-common/sscanf.c	2003/03/05 19:58:03	1.9
  307.19 -@@ -1,4 +1,4 @@
  307.20 --/* Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc.
  307.21 -+/* Copyright (C) 1991,1995,1996,1998,2002,2003 Free Software Foundation, Inc.
  307.22 -    This file is part of the GNU C Library.
  307.23 - 
  307.24 -    The GNU C Library is free software; you can redistribute it and/or
  307.25 -@@ -27,9 +27,7 @@
  307.26 - /* Read formatted input from S, according to the format string FORMAT.  */
  307.27 - /* VARARGS2 */
  307.28 - int
  307.29 --sscanf (s, format)
  307.30 --     const char *s;
  307.31 --     const char *format;
  307.32 -+sscanf (const char *s, const char *format, ...)
  307.33 - {
  307.34 -   va_list arg;
  307.35 -   int done;
  307.36 -===================================================================
  307.37 -RCS file: /cvs/glibc/libc/libio/swprintf.c,v
  307.38 -retrieving revision 1.3
  307.39 -retrieving revision 1.4
  307.40 -diff -u -r1.3 -r1.4
  307.41 ---- libc/libio/swprintf.c	2001/07/06 04:55:32	1.3
  307.42 -+++ libc/libio/swprintf.c	2003/03/05 19:58:03	1.4
  307.43 -@@ -1,4 +1,5 @@
  307.44 --/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
  307.45 -+/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
  307.46 -+	Free Software Foundation, Inc.
  307.47 -    This file is part of the GNU C Library.
  307.48 - 
  307.49 -    The GNU C Library is free software; you can redistribute it and/or
  307.50 -@@ -22,10 +23,7 @@
  307.51 - /* Write formatted output into S, according to the format string FORMAT.  */
  307.52 - /* VARARGS3 */
  307.53 - int
  307.54 --swprintf (s, n, format)
  307.55 --     wchar_t *s;
  307.56 --     size_t n;
  307.57 --     const wchar_t *format;
  307.58 -+swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
  307.59 - {
  307.60 -   va_list arg;
  307.61 -   int done;
  307.62 -===================================================================
  307.63 -RCS file: /cvs/glibc/libc/libio/swscanf.c,v
  307.64 -retrieving revision 1.2
  307.65 -retrieving revision 1.3
  307.66 -diff -u -r1.2 -r1.3
  307.67 ---- libc/libio/swscanf.c	2001/07/06 04:55:32	1.2
  307.68 -+++ libc/libio/swscanf.c	2003/03/05 19:58:03	1.3
  307.69 -@@ -1,4 +1,4 @@
  307.70 --/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
  307.71 -+/* Copyright (C) 1991,1995,1996,1998,1999,2003 Free Software Foundation, Inc.
  307.72 -    This file is part of the GNU C Library.
  307.73 - 
  307.74 -    The GNU C Library is free software; you can redistribute it and/or
  307.75 -@@ -22,9 +22,7 @@
  307.76 - /* Read formatted input from S, according to the format string FORMAT.  */
  307.77 - /* VARARGS2 */
  307.78 - int
  307.79 --swscanf (s, format)
  307.80 --     const wchar_t *s;
  307.81 --     const wchar_t *format;
  307.82 -+swscanf (const wchar_t *s, const wchar_t *format, ...)
  307.83 - {
  307.84 -   va_list arg;
  307.85 -   int done;
   308.1 --- a/patches/glibc/2.2.5/unwind-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   308.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   308.3 @@ -1,19 +0,0 @@
   308.4 -# See http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2002-September/011508.html
   308.5 -# Fixes error
   308.6 -# arm-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc.so.6: undefined reference to `size_of_encoded_value'
   308.7 -# arm-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/libc.so.6: undefined reference to `read_encoded_value_with_base'
   308.8 -# make[2]: *** [arm-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/iconv/iconvconfig] Error 1
   308.9 -
  308.10 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/configure.old	Sun Jan 20 19:27:33 2002
  308.11 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/configure	Sun Jun  8 03:33:03 2003
  308.12 -@@ -56,6 +56,10 @@
  308.13 -     arch_minimum_kernel=2.1.100
  308.14 -     libc_cv_gcc_unwind_find_fde=yes
  308.15 -     ;;
  308.16 -+  arm*)
  308.17 -+    libc_cv_gcc_unwind_find_fde=yes
  308.18 -+    arch_minimum_kernel=2.0.10
  308.19 -+    ;;
  308.20 -   i386*)
  308.21 -     libc_cv_gcc_unwind_find_fde=yes
  308.22 -     arch_minimum_kernel=2.0.10
   309.1 --- a/patches/glibc/2.3.2/README-hppa	Tue Aug 14 19:32:22 2007 +0000
   309.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   309.3 @@ -1,32 +0,0 @@
   309.4 -[See also http://parisc-linux.org/toolchain
   309.5 - One of these days I'll have a look at what they've
   309.6 - got there, and incorporate their patches.]
   309.7 -
   309.8 --------
   309.9 -
  309.10 -The error
  309.11 -
  309.12 -../linuxthreads/sysdeps/pthread/errno-loc.c: In function `__errno_location':
  309.13 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: `pthread_descr' undeclared (first use in this function)
  309.14 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: (Each undeclared identifier is reported only once
  309.15 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: for each function it appears in.)
  309.16 -../linuxthreads/sysdeps/pthread/errno-loc.c:39: syntax error before "self"
  309.17 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: warning: implicit declaration of function `LIBC_THREAD_GETMEM'
  309.18 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: `self' undeclared (first use in this function)
  309.19 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: `p_errnop' undeclared (first use in this function)
  309.20 -../linuxthreads/sysdeps/pthread/errno-loc.c:40: warning: return makes pointer from integer without a cast
  309.21 -make[2]: *** [/home/gotom/glibc/glibc-2.3.2/build/csu/errno-loc.o] Error 1
  309.22 -make[2]: Leaving directory `/home/gotom/glibc/glibc-2.3.2/glibc-2.3.2/csu'
  309.23 -make[1]: *** [csu/subdir_lib] Error 2
  309.24 -
  309.25 -means that hppa does not yet have the proper stuff for linuxthreads.
  309.26 -
  309.27 -See
  309.28 -http://groups.google.com/groups?selm=20030322165012%247208%40gated-at.bofh.it
  309.29 -http://lists.debian.org/debian-glibc/2003/debian-glibc-200303/msg00472.html
  309.30 -
  309.31 -A set of experimental patches is at
  309.32 -http://www.baldric.uwo.ca/~carlos/glibc-2.3.2-patches.tar.gz
  309.33 -but since they touch generic code, I'm not comfortable using them in general yet.
  309.34 -Go ahead and grab them if you want to build for hppa before hppa
  309.35 -support is merged into glibc.
   310.1 --- a/patches/glibc/2.3.2/arm-asm-clobber.patch	Tue Aug 14 19:32:22 2007 +0000
   310.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   310.3 @@ -1,26 +0,0 @@
   310.4 -http://gcc.gnu.org/PR11103
   310.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/arm/sysdep.h.diff?r1=1.22&r2=1.23&cvsroot=glibc
   310.6 -http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-July/005826.html
   310.7 -
   310.8 -Error:
   310.9 -../sysdeps/unix/sysv/linux/arm/sigaction.c: In function `__libc_sigaction':
  310.10 -../sysdeps/unix/sysv/linux/arm/sigaction.c:100: error: asm-specifier for variable `_a1' conflicts with asm clobber list
  310.11 -../sysdeps/unix/sysv/linux/arm/sigaction.c:139: error: asm-specifier for variable `_a1' conflicts with asm clobber list
  310.12 -make[2]: *** [build-glibc/signal/sigaction.o] Error 1
  310.13 -
  310.14 -===================================================================
  310.15 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/sysdep.h,v
  310.16 -retrieving revision 1.22
  310.17 -retrieving revision 1.23
  310.18 -diff -u -r1.22 -r1.23
  310.19 ---- libc/sysdeps/unix/sysv/linux/arm/sysdep.h	2003/03/23 19:42:22	1.22
  310.20 -+++ libc/sysdeps/unix/sysv/linux/arm/sysdep.h	2003/03/24 19:00:28	1.23
  310.21 -@@ -174,7 +174,7 @@
  310.22 -        asm volatile ("swi	%1	@ syscall " #name	\
  310.23 - 		     : "=r" (_a1)				\
  310.24 - 		     : "i" (SYS_ify(name)) ASM_ARGS_##nr	\
  310.25 --		     : "a1", "memory");				\
  310.26 -+		     : "memory");				\
  310.27 -        _sys_result = _a1;					\
  310.28 -      }								\
  310.29 -      (int) _sys_result; })
   311.1 --- a/patches/glibc/2.3.2/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   311.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   311.3 @@ -1,51 +0,0 @@
   311.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   311.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   311.6 -Fixes following error:
   311.7 -
   311.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   311.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  311.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  311.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  311.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  311.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  311.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  311.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  311.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  311.17 -
  311.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  311.19 -
  311.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  311.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  311.22 -@@ -47,6 +47,12 @@
  311.23 - #include <asm/page.h>
  311.24 - #include <sys/sysctl.h>
  311.25 - 
  311.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  311.27 -+#include <linux/version.h>
  311.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  311.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  311.30 -+#endif
  311.31 -+
  311.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  311.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  311.34 - 
  311.35 -@@ -80,7 +86,7 @@
  311.36 -  * Initialize I/O system.  There are several ways to get the information
  311.37 -  * we need.  Each is tried in turn until one succeeds.
  311.38 -  *
  311.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  311.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  311.41 -  *    but not all kernels support it.
  311.42 -  *
  311.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  311.44 -@@ -100,8 +106,8 @@
  311.45 - {
  311.46 -   char systype[256];
  311.47 -   int i, n;
  311.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  311.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  311.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  311.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  311.52 -   size_t len = sizeof(io.base);
  311.53 - 
  311.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   312.1 --- a/patches/glibc/2.3.2/arm-mcount_internal.patch	Tue Aug 14 19:32:22 2007 +0000
   312.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   312.3 @@ -1,30 +0,0 @@
   312.4 -#
   312.5 -# Submitted:
   312.6 -# 
   312.7 -# Robert Schwebel, 2003-12-22
   312.8 -#  
   312.9 -# Error:
  312.10 -# 
  312.11 -# ... undefined reference to mcount_internal ...
  312.12 -# 
  312.13 -# Description: 
  312.14 -#
  312.15 -# State:
  312.16 -# 
  312.17 -# unknown
  312.18 -#
  312.19 -
  312.20 ---- glibc-2.3.2/sysdeps/arm/machine-gmon.h	2001-07-07 21:21:19.000000000 +0200
  312.21 -+++ glibc-2.3.2-ptx/sysdeps/arm/machine-gmon.h	2003-12-21 23:58:26.000000000 +0100
  312.22 -@@ -32,10 +32,8 @@
  312.23 - weak_alias (_mcount, mcount)
  312.24 - #endif
  312.25 - 
  312.26 --static void mcount_internal (u_long frompc, u_long selfpc);
  312.27 --
  312.28 - #define _MCOUNT_DECL(frompc, selfpc) \
  312.29 --static void mcount_internal (u_long frompc, u_long selfpc)
  312.30 -+void mcount_internal (u_long frompc, u_long selfpc)
  312.31 - 
  312.32 - /* This macro/func MUST save r0, r1 because the compiler inserts
  312.33 - 	blind calls to _mount(), ignoring the fact that _mcount may
   313.1 --- a/patches/glibc/2.3.2/epoll-epollet.patch	Tue Aug 14 19:32:22 2007 +0000
   313.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   313.3 @@ -1,28 +0,0 @@
   313.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sys/epoll.h.diff?r1=1.1&r2=1.2&cvsroot=glibc
   313.5 -Needed for modern sys_epoll.
   313.6 -
   313.7 -===================================================================
   313.8 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sys/epoll.h,v
   313.9 -retrieving revision 1.1
  313.10 -retrieving revision 1.2
  313.11 -diff -u -r1.1 -r1.2
  313.12 ---- libc/sysdeps/unix/sysv/linux/sys/epoll.h	2002/12/16 23:35:27	1.1
  313.13 -+++ libc/sysdeps/unix/sysv/linux/sys/epoll.h	2003/03/24 23:50:25	1.2
  313.14 -@@ -1,4 +1,4 @@
  313.15 --/* Copyright (C) 2002 Free Software Foundation, Inc.
  313.16 -+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
  313.17 -    This file is part of the GNU C Library.
  313.18 - 
  313.19 -    The GNU C Library is free software; you can redistribute it and/or
  313.20 -@@ -42,8 +42,10 @@
  313.21 - #define EPOLLMSG EPOLLMSG
  313.22 -     EPOLLERR = 0x008,
  313.23 - #define EPOLLERR EPOLLERR
  313.24 --    EPOLLHUP = 0x010
  313.25 -+    EPOLLHUP = 0x010,
  313.26 - #define EPOLLHUP EPOLLHUP
  313.27 -+    EPOLLET = (1 << 31)
  313.28 -+#define EPOLLET EPOLLET
  313.29 -   };
  313.30 - 
  313.31 - 
   314.1 --- a/patches/glibc/2.3.2/epoll-stdint.patch	Tue Aug 14 19:32:22 2007 +0000
   314.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   314.3 @@ -1,22 +0,0 @@
   314.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sys/epoll.h.diff?r1=1.2&r2=1.3&cvsroot=glibc
   314.5 -Include <stdint.h>.
   314.6 -
   314.7 -Fixes error
   314.8 -/foo/gcc-3.3.2-glibc-2.3.2/powerpc-750-linux-gnu/sys-include/sys/epoll.h:60: error: parse error before "uint32_t"
   314.9 -/foo/gcc-3.3.2-glibc-2.3.2/powerpc-750-linux-gnu/sys-include/sys/epoll.h:66: error: parse error before "uint32_t"
  314.10 -
  314.11 -===================================================================
  314.12 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sys/epoll.h,v
  314.13 -retrieving revision 1.2
  314.14 -retrieving revision 1.3
  314.15 -diff -u -r1.2 -r1.3
  314.16 ---- libc/sysdeps/unix/sysv/linux/sys/epoll.h	2003/03/24 23:50:25	1.2
  314.17 -+++ libc/sysdeps/unix/sysv/linux/sys/epoll.h	2003/06/13 19:49:50	1.3
  314.18 -@@ -19,6 +19,7 @@
  314.19 - #ifndef	_SYS_EPOLL_H
  314.20 - #define	_SYS_EPOLL_H	1
  314.21 - 
  314.22 -+#include <stdint.h>
  314.23 - #include <sys/types.h>
  314.24 - 
  314.25 - 
   315.1 --- a/patches/glibc/2.3.2/errlist-awk.patch	Tue Aug 14 19:32:22 2007 +0000
   315.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   315.3 @@ -1,11 +0,0 @@
   315.4 ---- glibc-2.3.2/sysdeps/gnu/errlist.awk.old	Tue May 27 18:10:37 2003
   315.5 -+++ glibc-2.3.2/sysdeps/gnu/errlist.awk	Tue May 27 18:10:47 2003
   315.6 -@@ -39,7 +39,7 @@
   315.7 - 
   315.8 -     print "/* This file is generated from errno.texi by errlist.awk.  */"
   315.9 -     print "";
  315.10 --    print "#include <errno.h>";
  315.11 -+    print "#include <stdlib/errno.h>";
  315.12 -     print "#include <libintl.h>";
  315.13 -     print "";
  315.14 -     print "#ifndef ERR_REMAP";
   316.1 --- a/patches/glibc/2.3.2/fixup.patch	Tue Aug 14 19:32:22 2007 +0000
   316.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   316.3 @@ -1,74 +0,0 @@
   316.4 -Fixes
   316.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
   316.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
   316.7 -when building with gcc-3.4.0
   316.8 -
   316.9 -First hunk:
  316.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
  316.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
  316.12 -
  316.13 -Second hunk:
  316.14 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
  316.15 -Use macro in fixup function definitions.
  316.16 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
  316.17 -[rediffed against glibc-2.3.2]
  316.18 -
  316.19 -===================================================================
  316.20 -RCS file: /cvs/glibc/libc/sysdeps/i386/dl-machine.h,v
  316.21 -retrieving revision 1.124
  316.22 -retrieving revision 1.125
  316.23 -diff -u -r1.124 -r1.125
  316.24 ---- libc/sysdeps/i386/dl-machine.h	2004/03/05 10:14:49	1.124
  316.25 -+++ libc/sysdeps/i386/dl-machine.h	2004/03/09 07:42:29	1.125
  316.26 -@@ -154,11 +154,14 @@
  316.27 -    destroys the passed register information.  */
  316.28 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
  316.29 -    without the `__unbounded' qualifier.  */
  316.30 --static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
  316.31 --     __attribute__ ((regparm (2), unused));
  316.32 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
  316.33 -+
  316.34 -+static ElfW(Addr) fixup (struct link_map *__unbounded l,
  316.35 -+			 ElfW(Word) reloc_offset)
  316.36 -+     ARCH_FIXUP_ATTRIBUTE;
  316.37 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
  316.38 - 				 ElfW(Addr) retaddr)
  316.39 --     __attribute__ ((regparm (3), unused));
  316.40 -+     ARCH_FIXUP_ATTRIBUTE;
  316.41 - # endif
  316.42 - 
  316.43 - /* This code is used in dl-runtime.c to call the `fixup' function
  316.44 -===================================================================
  316.45 ---- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c	Fri Feb  7 11:41:12 2003
  316.46 -+++ glibc-2.3.2/elf/dl-runtime.c	Thu Apr  8 22:24:26 2004
  316.47 -@@ -36,6 +36,12 @@
  316.48 - # define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
  316.49 - #endif
  316.50 - 
  316.51 -+/* The fixup functions might have need special attributes.  If none
  316.52 -+   are provided define the macro as empty.  */
  316.53 -+#ifndef ARCH_FIXUP_ATTRIBUTE
  316.54 -+# define ARCH_FIXUP_ATTRIBUTE
  316.55 -+#endif
  316.56 -+
  316.57 - 
  316.58 - /* This function is called through a special trampoline from the PLT the
  316.59 -    first time each PLT entry is called.  We must perform the relocation
  316.60 -@@ -45,7 +51,7 @@
  316.61 -    function.  */
  316.62 - 
  316.63 - #ifndef ELF_MACHINE_NO_PLT
  316.64 --static ElfW(Addr) __attribute_used__
  316.65 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
  316.66 - fixup (
  316.67 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  316.68 -         ELF_MACHINE_RUNTIME_FIXUP_ARGS,
  316.69 -@@ -132,7 +138,7 @@
  316.70 - 
  316.71 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
  316.72 - 
  316.73 --static ElfW(Addr) __attribute_used__
  316.74 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
  316.75 - profile_fixup (
  316.76 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  316.77 -        ELF_MACHINE_RUNTIME_FIXUP_ARGS,
   317.1 --- a/patches/glibc/2.3.2/gcc-pr-9552-workaround.patch	Tue Aug 14 19:32:22 2007 +0000
   317.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   317.3 @@ -1,20 +0,0 @@
   317.4 -See http://gcc.gnu.org/PR9552
   317.5 -
   317.6 -Works around gcc error
   317.7 -  "soinit.c:25: internal compiler error: in named_section_flags, at varasm.c:412"
   317.8 -by fixing slightly incorrect code in glibc (the .eh_frame section used to
   317.9 -be read-write, but it's now readonly according to discussion in
  317.10 -http://sources.redhat.com/ml/binutils/2002-11/msg00592.html,
  317.11 -so it's arguably incorrect to continue to put variables in there that aren't const).
  317.12 -
  317.13 ---- glibc-2.3.2/elf/soinit.c 2001-11-16 00:09:20.000000000 +0100
  317.14 -+++ glibc-2.3.2/elf/soinit.c   2003-08-12 09:13:34.000000000 +0200
  317.15 -@@ -25,7 +25,7 @@
  317.16 - }
  317.17 -
  317.18 - #ifdef HAVE_DWARF2_UNWIND_INFO
  317.19 --static char __EH_FRAME_BEGIN__[]
  317.20 -+const static char __EH_FRAME_BEGIN__[]
  317.21 -      __attribute__ ((section (".eh_frame")))
  317.22 -      = { };
  317.23 - # ifdef HAVE_DWARF2_UNWIND_INFO_STATIC
   318.1 --- a/patches/glibc/2.3.2/glibc-2.2.5-crosstest.patch	Tue Aug 14 19:32:22 2007 +0000
   318.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   318.3 @@ -1,27 +0,0 @@
   318.4 -Fixes errors like
   318.5 -  /build-glibc/dlfcn/glrefmain: cannot load `glreflib1.so'
   318.6 -in glibc regression test
   318.7 -
   318.8 ---- glibc-2.2.5/dlfcn/Makefile.old	Thu Jul 24 16:30:20 2003
   318.9 -+++ glibc-2.2.5/dlfcn/Makefile	Thu Jul 24 17:25:01 2003
  318.10 -@@ -60,6 +60,8 @@
  318.11 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
  318.12 - $(test-modules): $(objpfx)%.so: $(objpfx)%.os
  318.13 - 	$(build-module)
  318.14 -+# without following rule, test-modules don't get built when cross-compiling
  318.15 -+tests: $(test-modules)
  318.16 - 
  318.17 - $(objpfx)glrefmain: $(libdl)
  318.18 - $(objpfx)glrefmain.out: $(objpfx)glrefmain \
  318.19 ---- glibc-2.2.5/elf/Makefile.old	Thu Jul 24 18:17:12 2003
  318.20 -+++ glibc-2.2.5/elf/Makefile	Thu Jul 24 18:18:58 2003
  318.21 -@@ -263,6 +263,9 @@
  318.22 - test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
  318.23 - generated += $(addsuffix .so,$(strip $(modules-names)))
  318.24 - 
  318.25 -+# without following rule, test-modules don't get built when cross-compiling
  318.26 -+tests: $(test-modules)
  318.27 -+
  318.28 - ifeq (yes,$(build-shared))
  318.29 - ifeq ($(cross-compiling),no)
  318.30 - tests: $(objpfx)tst-pathopt.out
   319.1 --- a/patches/glibc/2.3.2/glibc-2.2.5-mips-clone-local-label.patch	Tue Aug 14 19:32:22 2007 +0000
   319.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   319.3 @@ -1,47 +0,0 @@
   319.4 -This is a workaround for
   319.5 -
   319.6 -mipsel-unknown-linux-gnu-gcc ../sysdeps/unix/sysv/linux/mips/clone.S -c  -I../include -I. -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc -I.. -I../libio  -I/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc -I../sysdeps/mips/elf -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/mips -I../sysdeps/unix/sysv/linux/mips -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/mips -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/mips/mipsel -I../sysdeps/mips/fpu -I../sysdeps/mips -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic  -nostdinc -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/lib/gcc-lib/mipsel-unknown-linux-gnu/3.2.3/include -isystem /home3/dank/crosstool-0.7/result/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/mipsel-unknown-linux-gnu/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC   -DASSEMBLER   -o /home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o
   319.7 -../sysdeps/unix/sysv/linux/mips/clone.S: Assembler messages:
   319.8 -../sysdeps/unix/sysv/linux/mips/clone.S:66: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format
   319.9 -make[2]: *** [/home3/dank/crosstool-0.7/build/mipsel-unknown-linux-gnu/gcc-3.2.3-glibc-2.2.5/build-glibc/misc/clone.o] Error 1
  319.10 -
  319.11 -which was using h.j.lu's binutils-2.13.90.0.18.
  319.12 -
  319.13 -
  319.14 -But see http://lists.debian.org/debian-mips/2003/debian-mips-200305/msg00011.html
  319.15 -which says
  319.16 -"A newer version of binutils (CVS post 2003-03-12) fixes it without
  319.17 -the need of changing perfectly legal code."
  319.18 -So presumably this can be ditched sooner or later.
  319.19 -
  319.20 -From http://honk.physik.uni-konstanz.de/~agx/linux-mips/glibc/patches/applied/clone-local-label.diff
  319.21 -
  319.22 -2003-03-13  Guido Guenther  <agx@sigxcpu.org>
  319.23 -
  319.24 -	* sysdeps/unix/sysv/linux/mips/clone.S: introduce and use local label
  319.25 -	  .Lthread_start since current binutils don't allow branches to globally
  319.26 -	  visible symbols.
  319.27 -
  319.28 -===================================================================
  319.29 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/clone.S,v
  319.30 -retrieving revision 1.10
  319.31 -diff -u -r1.10 clone.S
  319.32 ---- glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 01:04:51 -0000	1.10
  319.33 -+++ glibc-2.2.5/sysdeps/unix/sysv/linux/mips/clone.S	12 Mar 2003 19:04:39 -0000
  319.34 -@@ -63,7 +63,7 @@
  319.35 - 	syscall
  319.36 - 
  319.37 - 	bnez		a3,error
  319.38 --	beqz		v0,__thread_start
  319.39 -+	beqz		v0,.Lthread_start
  319.40 - 
  319.41 - 	/* Successful return from the parent */
  319.42 - 	addiu		sp,32
  319.43 -@@ -85,6 +85,7 @@
  319.44 -    debug info.  */
  319.45 - 
  319.46 - ENTRY(__thread_start)
  319.47 -+.Lthread_start:
  319.48 - 	/* cp is already loaded.  */
  319.49 - 	.cprestore	16
  319.50 - 	/* The stackframe has been created on entry of clone().  */
   320.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.4-inline.patch	Tue Aug 14 19:32:22 2007 +0000
   320.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   320.3 @@ -1,23 +0,0 @@
   320.4 -Fixes
   320.5 -cc1: error: invalid parameter `max-inline-insns'
   320.6 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc6/build/powerpc64-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/dl-load.o] Error 1
   320.7 -when building with gcc-3.4.0, which no longer has a single
   320.8 ---max-inline-insns parameter.
   320.9 -
  320.10 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc64/Makefile.diff?r1=1.3&r2=1.4&cvsroot=glibc
  320.11 -
  320.12 -===================================================================
  320.13 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/Makefile,v
  320.14 -retrieving revision 1.3
  320.15 -retrieving revision 1.4
  320.16 -diff -u -r1.3 -r1.4
  320.17 ---- libc/sysdeps/powerpc/powerpc64/Makefile     2003/10/22 21:30:03     1.3
  320.18 -+++ libc/sysdeps/powerpc/powerpc64/Makefile     2004/02/20 05:43:52     1.4
  320.19 -@@ -20,5 +20,5 @@
  320.20 - 
  320.21 - ifeq ($(subdir),elf)
  320.22 - # help gcc inline asm code from dl-machine.h
  320.23 --+cflags += --param max-inline-insns=2000
  320.24 -++cflags += -finline-limit=2000
  320.25 - endif
  320.26 -
   321.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.4-nounit.patch	Tue Aug 14 19:32:22 2007 +0000
   321.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   321.3 @@ -1,137 +0,0 @@
   321.4 -Fixes errors like
   321.5 -
   321.6 -# gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crtn.o(.text+0x0):mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crtn.S:20: multiple definition of `dummy'
   321.7 -# gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.o(.text+0x0):mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.S:42: first defined here
   321.8 -# /gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.o(.init+0x28):mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/crti.S:58: undefined reference to `i_am_not_a_leaf'
   321.9 -
  321.10 -CVSROOT:	/cvs/glibc
  321.11 -Module name:	libc
  321.12 -Changes by:	aj@sourceware.org	2003-12-02 07:37:29
  321.13 -
  321.14 -Modified files:
  321.15 -	.              : configure.in configure config.make.in 
  321.16 -	csu            : Makefile 
  321.17 -	locale         : Makefile 
  321.18 -	linuxthreads   : Makefile 
  321.19 -	linuxthreads/sysdeps/unix/sysv/linux/x86_64: Makefile 
  321.20 -	nptl           : Makefile 
  321.21 -	nptl/sysdeps/unix/sysv/linux/x86_64: Makefile 
  321.22 -
  321.23 -Log message:
  321.24 -	* config.make.in (fno-unit-at-a-time): Define.
  321.25 -	
  321.26 -	* configure.in: Add test for -fno-unit-at-a-time.
  321.27 -	Fix text for -fpie.
  321.28 -	
  321.29 -	* csu/Makefile (CFLAGS-initfini.s): Add $(fno_unit_at_a_time).
  321.30 -	* locale/Makefile (CFLAGS-loadlocale.c): Likewise.
  321.31 -	
  321.32 -	For linuxthreads:
  321.33 -	* Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
  321.34 -	* sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
  321.35 -	Likewise.
  321.36 -	
  321.37 -	For nptl:
  321.38 -	* Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
  321.39 -	* sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
  321.40 -	Likewise.
  321.41 -
  321.42 -Main glibc change retrieved with
  321.43 -wget -O foo.patch 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/config.make.in.diff?r1=1.98&r2=1.99&cvsroot=glibc' \
  321.44 -'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/configure.diff?r1=1.393&r2=1.394&cvsroot=glibc' \
  321.45 -'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/csu/Makefile.diff?r1=1.71&r2=1.72&cvsroot=glibc' \
  321.46 -'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/locale/Makefile.diff?r1=1.71&r2=1.72&cvsroot=glibc'
  321.47 -
  321.48 -and then rediffed against glibc-2.3.2
  321.49 -See also ../glibc-linuxthreads-2.3.2/glibc-linuxthreads-2.3.2-allow-3.4.patch
  321.50 -
  321.51 -diff -aur glibc-2.3.2/config.make.in glibc-2.3.2-nounit/config.make.in
  321.52 ---- glibc-2.3.2/config.make.in	2002-11-14 14:53:32.000000000 -0800
  321.53 -+++ glibc-2.3.2-nounit/config.make.in	2004-05-29 23:19:58.000000000 -0700
  321.54 -@@ -50,6 +50,7 @@
  321.55 - old-glibc-headers = @old_glibc_headers@
  321.56 - unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
  321.57 - have-initfini-array = @libc_cv_initfinit_array@
  321.58 -+fno-unit-at-a-time = @fno_unit_at_a_time@
  321.59 - 
  321.60 - static-libgcc = @libc_cv_gcc_static_libgcc@
  321.61 - 
  321.62 -diff -aur glibc-2.3.2/configure glibc-2.3.2-nounit/configure
  321.63 ---- glibc-2.3.2/configure	2003-02-26 01:20:48.000000000 -0800
  321.64 -+++ glibc-2.3.2-nounit/configure	2004-05-30 06:22:31.000000000 -0700
  321.65 -@@ -312,7 +312,7 @@
  321.66 - # include <unistd.h>
  321.67 - #endif"
  321.68 - 
  321.69 --ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S PWD_P CC MAKE MSGFMT MAKEINFO SED AUTOCONF CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO OLD_DEBIAN_INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup libc_cv_z_combreloc libc_cv_have_initfini no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
  321.70 -+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S PWD_P CC MAKE MSGFMT MAKEINFO SED AUTOCONF CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO OLD_DEBIAN_INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup libc_cv_z_combreloc fno_unit_at_a_time libc_cv_have_initfini no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS'
  321.71 - ac_subst_files=''
  321.72 - 
  321.73 - # Initialize some variables set by options.
  321.74 -@@ -4984,6 +4984,35 @@
  321.75 - fi
  321.76 - 
  321.77 - 
  321.78 -+echo "$as_me:$LINENO: checking for -fno-unit-at-a-time" >&5
  321.79 -+echo $ECHO_N "checking for -fno-unit-at-a-time... $ECHO_C" >&6
  321.80 -+if test "${libc_cv_fno_unit_at_a_time+set}" = set; then
  321.81 -+  echo $ECHO_N "(cached) $ECHO_C" >&6
  321.82 -+else
  321.83 -+  cat > conftest.c <<EOF
  321.84 -+int foo;
  321.85 -+EOF
  321.86 -+if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
  321.87 -+			    conftest.c 1>&5'
  321.88 -+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  321.89 -+  (eval $ac_try) 2>&5
  321.90 -+  ac_status=$?
  321.91 -+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  321.92 -+  (exit $ac_status); }; }
  321.93 -+then
  321.94 -+  libc_cv_fno_unit_at_a_time=yes
  321.95 -+else
  321.96 -+  libc_cv_fno_unit_at_a_time=no
  321.97 -+fi
  321.98 -+rm -f conftest*
  321.99 -+fi
 321.100 -+echo "$as_me:$LINENO: result: $libc_cv_fno_unit_at_a_time" >&5
 321.101 -+echo "${ECHO_T}$libc_cv_fno_unit_at_a_time" >&6
 321.102 -+if test $libc_cv_fno_unit_at_a_time = yes; then
 321.103 -+  fno_unit_at_a_time=-fno-unit-at-a-time
 321.104 -+fi
 321.105 -+
 321.106 -+
 321.107 - if test $elf != yes; then
 321.108 -   echo "$as_me:$LINENO: checking for .init and .fini sections" >&5
 321.109 - echo $ECHO_N "checking for .init and .fini sections... $ECHO_C" >&6
 321.110 -@@ -7236,6 +7265,7 @@
 321.111 - s,@libc_cv_z_initfirst@,$libc_cv_z_initfirst,;t t
 321.112 - s,@libc_cv_Bgroup@,$libc_cv_Bgroup,;t t
 321.113 - s,@libc_cv_z_combreloc@,$libc_cv_z_combreloc,;t t
 321.114 -+s,@fno_unit_at_a_time@,$fno_unit_at_a_time,;t t
 321.115 - s,@libc_cv_have_initfini@,$libc_cv_have_initfini,;t t
 321.116 - s,@no_whole_archive@,$no_whole_archive,;t t
 321.117 - s,@exceptions@,$exceptions,;t t
 321.118 -diff -aur glibc-2.3.2/csu/Makefile glibc-2.3.2-nounit/csu/Makefile
 321.119 ---- glibc-2.3.2/csu/Makefile	2002-12-31 14:24:37.000000000 -0800
 321.120 -+++ glibc-2.3.2-nounit/csu/Makefile	2004-05-29 23:18:27.000000000 -0700
 321.121 -@@ -99,7 +99,7 @@
 321.122 - $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
 321.123 - 	$(compile.S) -g0 $(ASFLAGS-.os) -o $@
 321.124 - 
 321.125 --CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
 321.126 -+CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
 321.127 - 
 321.128 - vpath initfini.c $(full_config_sysdirs)
 321.129 - 
 321.130 -diff -aur glibc-2.3.2/locale/Makefile glibc-2.3.2-nounit/locale/Makefile
 321.131 ---- glibc-2.3.2/locale/Makefile	2002-10-17 10:05:53.000000000 -0700
 321.132 -+++ glibc-2.3.2-nounit/locale/Makefile	2004-05-29 23:18:27.000000000 -0700
 321.133 -@@ -100,6 +100,7 @@
 321.134 - CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
 321.135 - CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
 321.136 - CFLAGS-charmap-dir.c = -Wno-write-strings
 321.137 -+CFLAGS-loadlocale.c = $(fno-unit-at-a-time)
 321.138 - 
 321.139 - # This makes sure -DNOT_IN_libc is passed for all these modules.
 321.140 - cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
   322.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-PR14096.patch	Tue Aug 14 19:32:22 2007 +0000
   322.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   322.3 @@ -1,55 +0,0 @@
   322.4 ---- glibc-2.3.2/stdlib/abs.c.old	2004-07-18 12:08:43.000000000 -0700
   322.5 -+++ glibc-2.3.2/stdlib/abs.c	2004-07-18 12:09:18.000000000 -0700
   322.6 -@@ -16,6 +16,8 @@
   322.7 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   322.8 -    02111-1307 USA.  */
   322.9 - 
  322.10 -+#define __NO_INLINE__ 1	/* avoid http://gcc.gnu.org/PR14096 */
  322.11 -+
  322.12 - #include <stdlib.h>
  322.13 - 
  322.14 - #undef	abs
  322.15 ---- glibc-2.3.2/stdlib/atoi.c.old	2004-07-18 12:08:17.000000000 -0700
  322.16 -+++ glibc-2.3.2/stdlib/atoi.c	2004-07-18 12:08:27.000000000 -0700
  322.17 -@@ -16,6 +16,8 @@
  322.18 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  322.19 -    02111-1307 USA.  */
  322.20 - 
  322.21 -+#define __NO_INLINE__ 1	/* avoid http://gcc.gnu.org/PR14096 */
  322.22 -+
  322.23 - #include <stdlib.h>
  322.24 - 
  322.25 - #undef	atoi
  322.26 ---- glibc-2.3.2/stdlib/atof.c.old	2004-07-18 12:06:09.000000000 -0700
  322.27 -+++ glibc-2.3.2/stdlib/atof.c	2004-07-18 12:05:31.000000000 -0700
  322.28 -@@ -16,6 +16,8 @@
  322.29 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  322.30 -    02111-1307 USA.  */
  322.31 - 
  322.32 -+#define __NO_INLINE__ 1	/* avoid http://gcc.gnu.org/PR14096 */
  322.33 -+
  322.34 - #include <stdlib.h>
  322.35 - 
  322.36 - #undef	atof
  322.37 ---- glibc-2.3.2/stdlib/atol.c.old	2004-07-18 12:08:49.000000000 -0700
  322.38 -+++ glibc-2.3.2/stdlib/atol.c	2004-07-18 12:09:40.000000000 -0700
  322.39 -@@ -16,6 +16,8 @@
  322.40 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  322.41 -    02111-1307 USA.  */
  322.42 - 
  322.43 -+#define __NO_INLINE__ 1	/* avoid http://gcc.gnu.org/PR14096 */
  322.44 -+
  322.45 - #include <stdlib.h>
  322.46 - 
  322.47 - #undef	atol
  322.48 ---- glibc-2.3.2/stdlib/atoll.c.old	2004-07-18 12:08:55.000000000 -0700
  322.49 -+++ glibc-2.3.2/stdlib/atoll.c	2004-07-18 12:09:59.000000000 -0700
  322.50 -@@ -16,6 +16,8 @@
  322.51 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  322.52 -    02111-1307 USA.  */
  322.53 - 
  322.54 -+#define __NO_INLINE__ 1	/* avoid http://gcc.gnu.org/PR14096 */
  322.55 -+
  322.56 - #include <stdlib.h>
  322.57 - 
  322.58 - #undef	atoll
   323.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-elf.patch	Tue Aug 14 19:32:22 2007 +0000
   323.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   323.3 @@ -1,34 +0,0 @@
   323.4 -
   323.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
   323.6 -
   323.7 -Fixes gcc-3.5 errors
   323.8 -
   323.9 -dl-load.c: In function `_dl_map_object_from_fd':
  323.10 -dl-load.c:1179: error: invalid lvalue in assignment
  323.11 -dl-load.c:1205: error: invalid lvalue in assignment
  323.12 -
  323.13 -===================================================================
  323.14 -RCS file: /cvs/glibc/libc/elf/dl-load.c,v
  323.15 -retrieving revision 1.235
  323.16 -retrieving revision 1.236
  323.17 -diff -u -r1.235 -r1.236
  323.18 ---- libc/elf/dl-load.c	2004/02/09 07:03:48	1.235
  323.19 -+++ libc/elf/dl-load.c	2004/02/21 18:25:41	1.236
  323.20 -@@ -1228,7 +1228,7 @@
  323.21 -       }
  323.22 -     else
  323.23 -       /* Adjust the PT_PHDR value by the runtime load address.  */
  323.24 --      (ElfW(Addr)) l->l_phdr += l->l_addr;
  323.25 -+      l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
  323.26 -   }
  323.27 - 
  323.28 - #ifdef USE_TLS
  323.29 -@@ -1254,7 +1254,7 @@
  323.30 - 	}
  323.31 -     }
  323.32 -   else
  323.33 --    (ElfW(Addr)) l->l_ld += l->l_addr;
  323.34 -+    l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
  323.35 - 
  323.36 -   l->l_entry += l->l_addr;
  323.37 - 
   324.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-gconv.patch	Tue Aug 14 19:32:22 2007 +0000
   324.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   324.3 @@ -1,228 +0,0 @@
   324.4 -Fixes
   324.5 -gconv_open.c: In function `__gconv_open':
   324.6 -gconv_open.c:186: error: invalid lvalue in assignment
   324.7 -when building glibc-2.3.2 with gcc-3.5.
   324.8 -
   324.9 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_simple.c.diff?r1=1.59&r2=1.63&cvsroot=glibc'
  324.10 -        * (internal_ucs4_loop): Fix typo in last change.
  324.11 -
  324.12 -        * (internal_ucs4le_loop): Remove cast used as lvalue.
  324.13 -
  324.14 -        * Fix last commit.
  324.15 -
  324.16 -	* iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
  324.17 -	(internal_ucs4le_loop_single): Likewise.
  324.18 -	(ucs4_internal_loop): Likewise.
  324.19 -	(BODY): Likewise.
  324.20 -	(internal_ucs4_loop_single): Likewise.
  324.21 -
  324.22 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_open.c.diff?r1=1.32&r2=1.33&cvsroot=glibc'
  324.23 -	* iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
  324.24 -	(internal_ucs4le_loop_single): Likewise.
  324.25 -	(ucs4_internal_loop): Likewise.
  324.26 -	(BODY): Likewise.
  324.27 -	(internal_ucs4_loop_single): Likewise.
  324.28 -
  324.29 -
  324.30 -===================================================================
  324.31 -RCS file: /cvs/glibc/libc/iconv/gconv_open.c,v
  324.32 -retrieving revision 1.32
  324.33 -retrieving revision 1.33
  324.34 -diff -u -r1.32 -r1.33
  324.35 ---- libc/iconv/gconv_open.c	2001/11/29 04:51:58	1.32
  324.36 -+++ libc/iconv/gconv_open.c	2004/02/07 15:56:32	1.33
  324.37 -@@ -1,5 +1,5 @@
  324.38 - /* Find matching transformation algorithms and initialize steps.
  324.39 --   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  324.40 -+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
  324.41 -    This file is part of the GNU C Library.
  324.42 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  324.43 - 
  324.44 -@@ -182,8 +182,13 @@
  324.45 - 	      || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
  324.46 - 	    lastp = runp;
  324.47 - 	  else
  324.48 --	    /* This means we haven't found the module.  Remove it.  */
  324.49 --	    (lastp == NULL ? trans : lastp->next) = runp->next;
  324.50 -+	    {
  324.51 -+	      /* This means we haven't found the module.  Remove it.  */
  324.52 -+	      if (lastp == NULL)
  324.53 -+		trans  = runp->next;
  324.54 -+	      else
  324.55 -+		lastp->next  = runp->next;
  324.56 -+	    }
  324.57 - 	}
  324.58 - 
  324.59 -       /* Allocate room for handle.  */
  324.60 -===================================================================
  324.61 -RCS file: /cvs/glibc/libc/iconv/gconv_simple.c,v
  324.62 -retrieving revision 1.59
  324.63 -retrieving revision 1.63
  324.64 -diff -u -r1.59 -r1.63
  324.65 ---- libc/iconv/gconv_simple.c	2003/06/11 21:36:37	1.59
  324.66 -+++ libc/iconv/gconv_simple.c	2004/03/09 10:00:31	1.63
  324.67 -@@ -1,5 +1,5 @@
  324.68 - /* Simple transformations functions.
  324.69 --   Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
  324.70 -+   Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc.
  324.71 -    This file is part of the GNU C Library.
  324.72 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  324.73 - 
  324.74 -@@ -87,12 +87,13 @@
  324.75 - #if __BYTE_ORDER == __LITTLE_ENDIAN
  324.76 -   /* Sigh, we have to do some real work.  */
  324.77 -   size_t cnt;
  324.78 -+  uint32_t *outptr32 = (uint32_t *) outptr;
  324.79 - 
  324.80 -   for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
  324.81 --    *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
  324.82 -+    *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
  324.83 - 
  324.84 -   *inptrp = inptr;
  324.85 --  *outptrp = outptr;
  324.86 -+  *outptrp = (unsigned char *) outptr32;
  324.87 - #elif __BYTE_ORDER == __BIG_ENDIAN
  324.88 -   /* Simply copy the data.  */
  324.89 -   *inptrp = inptr + n_convert * 4;
  324.90 -@@ -192,13 +193,16 @@
  324.91 -   (*outptrp)[2] = state->__value.__wchb[1];
  324.92 -   (*outptrp)[3] = state->__value.__wchb[0];
  324.93 - 
  324.94 --  *outptrp += 4;
  324.95 - #elif __BYTE_ORDER == __BIG_ENDIAN
  324.96 -   /* XXX unaligned */
  324.97 --  *(*((uint32_t **) outptrp)++) = state->__value.__wch;
  324.98 -+  (*outptrp)[0] = state->__value.__wchb[0];
  324.99 -+  (*outptrp)[1] = state->__value.__wchb[1];
 324.100 -+  (*outptrp)[2] = state->__value.__wchb[2];
 324.101 -+  (*outptrp)[3] = state->__value.__wchb[3];
 324.102 - #else
 324.103 - # error "This endianess is not supported."
 324.104 - #endif
 324.105 -+  *outptrp += 4;
 324.106 - 
 324.107 -   /* Clear the state buffer.  */
 324.108 -   state->__count &= ~7;
 324.109 -@@ -268,7 +272,8 @@
 324.110 - 	  return __GCONV_ILLEGAL_INPUT;
 324.111 - 	}
 324.112 - 
 324.113 --      *((uint32_t *) outptr)++ = inval;
 324.114 -+      *((uint32_t *) outptr) = inval;
 324.115 -+      outptr += sizeof (uint32_t);
 324.116 -     }
 324.117 - 
 324.118 -   *inptrp = inptr;
 324.119 -@@ -447,9 +452,11 @@
 324.120 - #if __BYTE_ORDER == __BIG_ENDIAN
 324.121 -   /* Sigh, we have to do some real work.  */
 324.122 -   size_t cnt;
 324.123 -+  uint32_t *outptr32 = (uint32_t *) outptr;
 324.124 - 
 324.125 -   for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
 324.126 --    *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
 324.127 -+    *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
 324.128 -+  outptr = (unsigned char *) outptr32;
 324.129 - 
 324.130 -   *inptrp = inptr;
 324.131 -   *outptrp = outptr;
 324.132 -@@ -555,12 +562,17 @@
 324.133 -   (*outptrp)[2] = state->__value.__wchb[1];
 324.134 -   (*outptrp)[3] = state->__value.__wchb[0];
 324.135 - 
 324.136 --  *outptrp += 4;
 324.137 - #else
 324.138 -   /* XXX unaligned */
 324.139 --  *(*((uint32_t **) outptrp)++) = state->__value.__wch;
 324.140 -+  (*outptrp)[0] = state->__value.__wchb[0];
 324.141 -+  (*outptrp)[1] = state->__value.__wchb[1];
 324.142 -+  (*outptrp)[2] = state->__value.__wchb[2];
 324.143 -+  (*outptrp)[3] = state->__value.__wchb[3];
 324.144 -+
 324.145 - #endif
 324.146 - 
 324.147 -+  *outptrp += 4;
 324.148 -+
 324.149 -   /* Clear the state buffer.  */
 324.150 -   state->__count &= ~7;
 324.151 - 
 324.152 -@@ -626,7 +638,8 @@
 324.153 - 	  return __GCONV_ILLEGAL_INPUT;
 324.154 - 	}
 324.155 - 
 324.156 --      *((uint32_t *) outptr)++ = inval;
 324.157 -+      *((uint32_t *) outptr) = inval;
 324.158 -+      outptr += sizeof (uint32_t);
 324.159 -     }
 324.160 - 
 324.161 -   *inptrp = inptr;
 324.162 -@@ -808,7 +821,8 @@
 324.163 -       }									      \
 324.164 -     else								      \
 324.165 -       /* It's an one byte sequence.  */					      \
 324.166 --      *((uint32_t *) outptr)++ = *inptr++;				      \
 324.167 -+      *((uint32_t *) outptr) = *inptr++;				      \
 324.168 -+      outptr += sizeof (uint32_t);					      \
 324.169 -   }
 324.170 - #define LOOP_NEED_FLAGS
 324.171 - #include <iconv/loop.c>
 324.172 -@@ -838,7 +852,8 @@
 324.173 -       }									      \
 324.174 -     else								      \
 324.175 -       /* It's an one byte sequence.  */					      \
 324.176 --      *outptr++ = *((const uint32_t *) inptr)++;			      \
 324.177 -+      *outptr++ = *((const uint32_t *) inptr);				      \
 324.178 -+      inptr += sizeof (uint32_t);					      \
 324.179 -   }
 324.180 - #define LOOP_NEED_FLAGS
 324.181 - #include <iconv/loop.c>
 324.182 -@@ -1032,7 +1047,8 @@
 324.183 -       }									      \
 324.184 - 									      \
 324.185 -     /* Now adjust the pointers and store the result.  */		      \
 324.186 --    *((uint32_t *) outptr)++ = ch;					      \
 324.187 -+    *((uint32_t *) outptr) = ch;					      \
 324.188 -+    outptr += sizeof (uint32_t);					      \
 324.189 -   }
 324.190 - #define LOOP_NEED_FLAGS
 324.191 - 
 324.192 -@@ -1153,7 +1169,8 @@
 324.193 - 	STANDARD_FROM_LOOP_ERR_HANDLER (2);				      \
 324.194 -       }									      \
 324.195 - 									      \
 324.196 --    *((uint32_t *) outptr)++ = u1;					      \
 324.197 -+    *((uint32_t *) outptr) = u1;					      \
 324.198 -+    outptr += sizeof (uint32_t);					      \
 324.199 -     inptr += 2;								      \
 324.200 -   }
 324.201 - #define LOOP_NEED_FLAGS
 324.202 -@@ -1201,7 +1218,8 @@
 324.203 -       }									      \
 324.204 -     else								      \
 324.205 -       {									      \
 324.206 --	*((uint16_t *) outptr)++ = val;					      \
 324.207 -+	*((uint16_t *) outptr) = val;					      \
 324.208 -+        outptr += sizeof (uint16_t);					      \
 324.209 - 	inptr += 4;							      \
 324.210 -       }									      \
 324.211 -   }
 324.212 -@@ -1242,7 +1260,8 @@
 324.213 - 	continue;							      \
 324.214 -       }									      \
 324.215 - 									      \
 324.216 --    *((uint32_t *) outptr)++ = u1;					      \
 324.217 -+    *((uint32_t *) outptr) = u1;					      \
 324.218 -+    outptr += sizeof (uint32_t);					      \
 324.219 -     inptr += 2;								      \
 324.220 -   }
 324.221 - #define LOOP_NEED_FLAGS
 324.222 -@@ -1291,7 +1310,8 @@
 324.223 -       }									      \
 324.224 -     else								      \
 324.225 -       {									      \
 324.226 --	*((uint16_t *) outptr)++ = bswap_16 (val);			      \
 324.227 -+	*((uint16_t *) outptr) = bswap_16 (val);			      \
 324.228 -+	outptr += sizeof (uint16_t);					      \
 324.229 - 	inptr += 4;							      \
 324.230 -       }									      \
 324.231 -   }
   325.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-msort.patch	Tue Aug 14 19:32:22 2007 +0000
   325.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   325.3 @@ -1,46 +0,0 @@
   325.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/msort.c.diff?r1=1.20&r2=1.21&cvsroot=glibc
   325.5 -
   325.6 -Fixes
   325.7 -
   325.8 -msort.c: In function `msort_with_tmp':
   325.9 -msort.c:59: error: invalid lvalue in increment
  325.10 -msort.c:59: error: invalid lvalue in increment
  325.11 -msort.c:64: error: invalid lvalue in increment
  325.12 -msort.c:64: error: invalid lvalue in increment
  325.13 -
  325.14 -when building with gcc-3.5.
  325.15 -
  325.16 -===================================================================
  325.17 -RCS file: /cvs/glibc/libc/stdlib/msort.c,v
  325.18 -retrieving revision 1.20
  325.19 -retrieving revision 1.21
  325.20 -diff -u -r1.20 -r1.21
  325.21 ---- libc/stdlib/msort.c	2002/09/24 04:20:57	1.20
  325.22 -+++ libc/stdlib/msort.c	2004/02/07 15:57:34	1.21
  325.23 -@@ -1,6 +1,6 @@
  325.24 - /* An alternative to qsort, with an identical interface.
  325.25 -    This file is part of the GNU C Library.
  325.26 --   Copyright (C) 1992,95-97,99,2000,01,02 Free Software Foundation, Inc.
  325.27 -+   Copyright (C) 1992,95-97,99,2000,01,02,04 Free Software Foundation, Inc.
  325.28 -    Written by Mike Haertel, September 1988.
  325.29 - 
  325.30 -    The GNU C Library is free software; you can redistribute it and/or
  325.31 -@@ -56,12 +56,16 @@
  325.32 - 	if ((*cmp) (b1, b2) <= 0)
  325.33 - 	  {
  325.34 - 	    --n1;
  325.35 --	    *((op_t *) tmp)++ = *((op_t *) b1)++;
  325.36 -+	    *((op_t *) tmp) = *((op_t *) b1);
  325.37 -+	    tmp += sizeof (op_t);
  325.38 -+	    b1 += sizeof (op_t);
  325.39 - 	  }
  325.40 - 	else
  325.41 - 	  {
  325.42 - 	    --n2;
  325.43 --	    *((op_t *) tmp)++ = *((op_t *) b2)++;
  325.44 -+	    *((op_t *) tmp) = *((op_t *) b2);
  325.45 -+	    tmp += sizeof (op_t);
  325.46 -+	    b2 += sizeof (op_t);
  325.47 - 	  }
  325.48 -       }
  325.49 -   else
   326.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-sunrpc.patch	Tue Aug 14 19:32:22 2007 +0000
   326.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   326.3 @@ -1,233 +0,0 @@
   326.4 -http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
   326.5 -[Also in CVS, but the original patch is easier to get.]
   326.6 -
   326.7 -Fixes errors like
   326.8 -
   326.9 -clnt_perr.c: In function `_buf':
  326.10 -clnt_perr.c:67: error: invalid lvalue in assignment
  326.11 -
  326.12 -when building with gcc-3.5.
  326.13 -
  326.14 -To: libc-hacker at sources dot redhat dot com
  326.15 -Subject: Fix cast as lvalue in sunrpc
  326.16 -From: Andreas Schwab <schwab at suse dot de>
  326.17 -X-Yow: SHHHH!!  I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
  326.18 - into empty OIL DRUMS dot  dot 
  326.19 -Date: Sun, 08 Feb 2004 17:38:31 +0100
  326.20 -Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
  326.21 -
  326.22 -This fixes the uses of casts as lvalue in the sunrpc code.
  326.23 -
  326.24 -Andreas.
  326.25 -
  326.26 -2004-02-08  Andreas Schwab  <schwab@suse.de>
  326.27 -
  326.28 -	* include/rpc/rpc.h: Declare thread variables with their correct
  326.29 -	type.
  326.30 -	* sunrpc/clnt_perr.c: Don't cast thread variables.
  326.31 -	* sunrpc/clnt_raw.c: Likewise.
  326.32 -	* sunrpc/clnt_simp.c: Likewise.
  326.33 -	* sunrpc/key_call.c: Likewise.
  326.34 -	* sunrpc/svcauth_des.c: Likewise.
  326.35 -	* sunrpc/svc.c: Likewise.
  326.36 -	* sunrpc/svc_raw.c: Likewise.
  326.37 -	* sunrpc/svc_simple.c: Likewise.
  326.38 -
  326.39 -Index: include/rpc/rpc.h
  326.40 -===================================================================
  326.41 -RCS file: /cvs/glibc/libc/include/rpc/rpc.h,v
  326.42 -retrieving revision 1.8
  326.43 -diff -u -p -a -r1.8 rpc.h
  326.44 ---- glibc/include/rpc/rpc.h	5 Aug 2002 22:10:59 -0000	1.8
  326.45 -+++ glibc/include/rpc/rpc.h	8 Feb 2004 14:19:14 -0000
  326.46 -@@ -17,24 +17,24 @@ struct rpc_thread_variables {
  326.47 - 	struct pollfd	*svc_pollfd_s;		/* Global, rpc_common.c */
  326.48 - 	int		svc_max_pollfd_s;	/* Global, rpc_common.c */
  326.49 - 
  326.50 --	void		*clnt_perr_buf_s;	/* clnt_perr.c */
  326.51 -+	char		*clnt_perr_buf_s;	/* clnt_perr.c */
  326.52 - 
  326.53 --	void		*clntraw_private_s;	/* clnt_raw.c */
  326.54 -+	struct clntraw_private_s *clntraw_private_s;	/* clnt_raw.c */
  326.55 - 
  326.56 --	void		*callrpc_private_s;	/* clnt_simp.c */
  326.57 -+	struct callrpc_private_s *callrpc_private_s;	/* clnt_simp.c */
  326.58 - 
  326.59 --	void		*key_call_private_s;	/* key_call.c */
  326.60 -+	struct key_call_private *key_call_private_s;	/* key_call.c */
  326.61 - 
  326.62 --	void		*authdes_cache_s;	/* svcauth_des.c */
  326.63 --	void		*authdes_lru_s;		/* svcauth_des.c */
  326.64 -+	struct cache_entry *authdes_cache_s;	/* svcauth_des.c */
  326.65 -+	int		*authdes_lru_s;		/* svcauth_des.c */
  326.66 - 
  326.67 --	void		*svc_xports_s;		/* svc.c */
  326.68 --	void		*svc_head_s;		/* svc.c */
  326.69 -+	SVCXPRT		**svc_xports_s;		/* svc.c */
  326.70 -+	struct svc_callout *svc_head_s;		/* svc.c */
  326.71 - 
  326.72 --	void		*svcraw_private_s;	/* svc_raw.c */
  326.73 -+	struct svcraw_private_s *svcraw_private_s;	/* svc_raw.c */
  326.74 - 
  326.75 --	void		*svcsimple_proglst_s;	/* svc_simple.c */
  326.76 --	void		*svcsimple_transp_s;	/* svc_simple.c */
  326.77 -+	struct proglst_ *svcsimple_proglst_s;	/* svc_simple.c */
  326.78 -+	SVCXPRT		*svcsimple_transp_s;	/* svc_simple.c */
  326.79 - };
  326.80 - 
  326.81 - extern struct rpc_thread_variables *__rpc_thread_variables(void)
  326.82 -Index: sunrpc/clnt_perr.c
  326.83 -===================================================================
  326.84 -RCS file: /cvs/glibc/libc/sunrpc/clnt_perr.c,v
  326.85 -retrieving revision 1.19
  326.86 -diff -u -p -a -r1.19 clnt_perr.c
  326.87 ---- glibc/sunrpc/clnt_perr.c	1 Nov 2002 20:43:54 -0000	1.19
  326.88 -+++ glibc/sunrpc/clnt_perr.c	8 Feb 2004 14:19:14 -0000
  326.89 -@@ -55,7 +55,7 @@ static char *auth_errmsg (enum auth_stat
  326.90 -  * buf variable in a few functions.  Overriding a global variable
  326.91 -  * with a local variable of the same name is a bad idea, anyway.
  326.92 -  */
  326.93 --#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
  326.94 -+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
  326.95 - #else
  326.96 - static char *buf;
  326.97 - #endif
  326.98 -Index: sunrpc/clnt_raw.c
  326.99 -===================================================================
 326.100 -RCS file: /cvs/glibc/libc/sunrpc/clnt_raw.c,v
 326.101 -retrieving revision 1.10
 326.102 -diff -u -p -a -r1.10 clnt_raw.c
 326.103 ---- glibc/sunrpc/clnt_raw.c	15 May 2002 00:21:00 -0000	1.10
 326.104 -+++ glibc/sunrpc/clnt_raw.c	8 Feb 2004 14:19:14 -0000
 326.105 -@@ -61,7 +61,7 @@ struct clntraw_private_s
 326.106 -     u_int mcnt;
 326.107 -   };
 326.108 - #ifdef _RPC_THREAD_SAFE_
 326.109 --#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
 326.110 -+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
 326.111 - #else
 326.112 - static struct clntraw_private_s *clntraw_private;
 326.113 - #endif
 326.114 -Index: sunrpc/clnt_simp.c
 326.115 -===================================================================
 326.116 -RCS file: /cvs/glibc/libc/sunrpc/clnt_simp.c,v
 326.117 -retrieving revision 1.14
 326.118 -diff -u -p -a -r1.14 clnt_simp.c
 326.119 ---- glibc/sunrpc/clnt_simp.c	15 May 2002 00:21:00 -0000	1.14
 326.120 -+++ glibc/sunrpc/clnt_simp.c	8 Feb 2004 14:19:14 -0000
 326.121 -@@ -55,7 +55,7 @@ struct callrpc_private_s
 326.122 -     char *oldhost;
 326.123 -   };
 326.124 - #ifdef _RPC_THREAD_SAFE_
 326.125 --#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
 326.126 -+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
 326.127 - #else
 326.128 - static struct callrpc_private_s *callrpc_private;
 326.129 - #endif
 326.130 -Index: sunrpc/key_call.c
 326.131 -===================================================================
 326.132 -RCS file: /cvs/glibc/libc/sunrpc/key_call.c,v
 326.133 -retrieving revision 1.16
 326.134 -diff -u -p -a -r1.16 key_call.c
 326.135 ---- glibc/sunrpc/key_call.c	6 Aug 2002 06:08:50 -0000	1.16
 326.136 -+++ glibc/sunrpc/key_call.c	8 Feb 2004 14:19:14 -0000
 326.137 -@@ -370,7 +370,7 @@ struct  key_call_private {
 326.138 -   uid_t   uid;            /* user-id at last authorization */
 326.139 - };
 326.140 - #ifdef _RPC_THREAD_SAFE_
 326.141 --#define key_call_private_main ((struct  key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
 326.142 -+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
 326.143 - #else
 326.144 - static struct key_call_private *key_call_private_main;
 326.145 - #endif
 326.146 -Index: sunrpc/svc.c
 326.147 -===================================================================
 326.148 -RCS file: /cvs/glibc/libc/sunrpc/svc.c,v
 326.149 -retrieving revision 1.17
 326.150 -diff -u -p -a -r1.17 svc.c
 326.151 ---- glibc/sunrpc/svc.c	29 Aug 2003 07:45:18 -0000	1.17
 326.152 -+++ glibc/sunrpc/svc.c	8 Feb 2004 14:19:14 -0000
 326.153 -@@ -44,7 +44,7 @@
 326.154 - #include <sys/poll.h>
 326.155 - 
 326.156 - #ifdef _RPC_THREAD_SAFE_
 326.157 --#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
 326.158 -+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
 326.159 - #else
 326.160 - static SVCXPRT **xports;
 326.161 - #endif
 326.162 -@@ -63,7 +63,7 @@ struct svc_callout {
 326.163 -   void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
 326.164 - };
 326.165 - #ifdef _RPC_THREAD_SAFE_
 326.166 --#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
 326.167 -+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
 326.168 - #else
 326.169 - static struct svc_callout *svc_head;
 326.170 - #endif
 326.171 -Index: sunrpc/svc_raw.c
 326.172 -===================================================================
 326.173 -RCS file: /cvs/glibc/libc/sunrpc/svc_raw.c,v
 326.174 -retrieving revision 1.5
 326.175 -diff -u -p -a -r1.5 svc_raw.c
 326.176 ---- glibc/sunrpc/svc_raw.c	26 Feb 2002 01:43:56 -0000	1.5
 326.177 -+++ glibc/sunrpc/svc_raw.c	8 Feb 2004 14:19:14 -0000
 326.178 -@@ -54,7 +54,7 @@ struct svcraw_private_s
 326.179 -     char verf_body[MAX_AUTH_BYTES];
 326.180 -   };
 326.181 - #ifdef _RPC_THREAD_SAFE_
 326.182 --#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
 326.183 -+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
 326.184 - #else
 326.185 - static struct svcraw_private_s *svcraw_private;
 326.186 - #endif
 326.187 -Index: sunrpc/svc_simple.c
 326.188 -===================================================================
 326.189 -RCS file: /cvs/glibc/libc/sunrpc/svc_simple.c,v
 326.190 -retrieving revision 1.16
 326.191 -diff -u -p -a -r1.16 svc_simple.c
 326.192 ---- glibc/sunrpc/svc_simple.c	6 Aug 2002 05:10:30 -0000	1.16
 326.193 -+++ glibc/sunrpc/svc_simple.c	8 Feb 2004 14:19:14 -0000
 326.194 -@@ -61,7 +61,7 @@ struct proglst_
 326.195 -     struct proglst_ *p_nxt;
 326.196 -   };
 326.197 - #ifdef _RPC_THREAD_SAFE_
 326.198 --#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
 326.199 -+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
 326.200 - #else
 326.201 - static struct proglst_ *proglst;
 326.202 - #endif
 326.203 -@@ -69,7 +69,7 @@ static struct proglst_ *proglst;
 326.204 - 
 326.205 - static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
 326.206 - #ifdef _RPC_THREAD_SAFE_
 326.207 --#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
 326.208 -+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
 326.209 - #else
 326.210 - static SVCXPRT *transp;
 326.211 - #endif
 326.212 -Index: sunrpc/svcauth_des.c
 326.213 -===================================================================
 326.214 -RCS file: /cvs/glibc/libc/sunrpc/svcauth_des.c,v
 326.215 -retrieving revision 1.8
 326.216 -diff -u -p -a -r1.8 svcauth_des.c
 326.217 ---- glibc/sunrpc/svcauth_des.c	20 Aug 2001 06:37:09 -0000	1.8
 326.218 -+++ glibc/sunrpc/svcauth_des.c	8 Feb 2004 14:19:14 -0000
 326.219 -@@ -72,8 +72,8 @@ struct cache_entry
 326.220 -     char *localcred;		/* generic local credential */
 326.221 -   };
 326.222 - #ifdef _RPC_THREAD_SAFE_
 326.223 --#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
 326.224 --#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
 326.225 -+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
 326.226 -+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
 326.227 - #else
 326.228 - static struct cache_entry *authdes_cache;
 326.229 - static int *authdes_lru;
 326.230 -
 326.231 --- 
 326.232 -Andreas Schwab, SuSE Labs, schwab@suse.de
 326.233 -SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
 326.234 -Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
 326.235 -"And now for something completely different."
 326.236 -
   327.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-xdr.patch	Tue Aug 14 19:32:22 2007 +0000
   327.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   327.3 @@ -1,44 +0,0 @@
   327.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/rpc/xdr.h.diff?r1=1.27&r2=1.28&cvsroot=glibc
   327.5 -(but see also http://sources.redhat.com/ml/libc-alpha/2004-03/msg00267.html
   327.6 -and http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02056.html)
   327.7 -
   327.8 -Fixes errors
   327.9 -
  327.10 -rpc_cmsg.c: In function `xdr_callmsg':
  327.11 -rpc_cmsg.c:70: error: invalid lvalue in increment
  327.12 -rpc_cmsg.c:71: error: invalid lvalue in increment
  327.13 -rpc_cmsg.c:74: error: invalid lvalue in increment
  327.14 -rpc_cmsg.c:77: error: invalid lvalue in increment
  327.15 -rpc_cmsg.c:78: error: invalid lvalue in increment
  327.16 -rpc_cmsg.c:79: error: invalid lvalue in increment
  327.17 -rpc_cmsg.c:81: error: invalid lvalue in increment
  327.18 -rpc_cmsg.c:89: error: invalid lvalue in increment
  327.19 -rpc_cmsg.c:106: error: invalid lvalue in increment
  327.20 -rpc_cmsg.c:107: error: invalid lvalue in increment
  327.21 -rpc_cmsg.c:112: error: invalid lvalue in increment
  327.22 -rpc_cmsg.c:117: error: invalid lvalue in increment
  327.23 -rpc_cmsg.c:118: error: invalid lvalue in increment
  327.24 -rpc_cmsg.c:119: error: invalid lvalue in increment
  327.25 -rpc_cmsg.c:121: error: invalid lvalue in increment
  327.26 -rpc_cmsg.c:160: error: invalid lvalue in increment
  327.27 -
  327.28 -===================================================================
  327.29 -RCS file: /cvs/glibc/libc/sunrpc/rpc/xdr.h,v
  327.30 -retrieving revision 1.27
  327.31 -retrieving revision 1.28
  327.32 -diff -u -r1.27 -r1.28
  327.33 ---- libc/sunrpc/rpc/xdr.h	2002/12/16 02:05:49	1.27
  327.34 -+++ libc/sunrpc/rpc/xdr.h	2004/03/22 10:52:33	1.28
  327.35 -@@ -262,10 +262,8 @@
  327.36 -  * and shouldn't be used any longer. Code which use this defines or longs
  327.37 -  * in the RPC code will not work on 64bit Solaris platforms !
  327.38 -  */
  327.39 --#define IXDR_GET_LONG(buf) \
  327.40 --	((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
  327.41 --#define IXDR_PUT_LONG(buf, v) \
  327.42 --	(*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
  327.43 -+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
  327.44 -+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
  327.45 - #define IXDR_GET_U_LONG(buf)	      ((u_long)IXDR_GET_LONG(buf))
  327.46 - #define IXDR_PUT_U_LONG(buf, v)	      IXDR_PUT_LONG(buf, (long)(v))
  327.47 - 
   328.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-alpha-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   328.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   328.3 @@ -1,54 +0,0 @@
   328.4 -Fix for this error:
   328.5 -
   328.6 -crosstool-0.28-rc19/build/alpha-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc_pic.os(.text+0xd9b2c): In function `posix_fallocate64':
   328.7 -: undefined reference to `__GI___pwrite64'
   328.8 -collect2: ld returned 1 exit status
   328.9 -make[1]: *** [crosstool-0.28-rc19/build/alpha-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.so] Error 1
  328.10 -make[1]: Leaving directory `crosstool-0.28-rc19/build/alpha-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2'
  328.11 -make: *** [all] Error 2
  328.12 -
  328.13 -extracted from GLIBC CVS by Dan Kegel
  328.14 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
  328.15 -(to match context of...)
  328.16 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
  328.17 -and rediffed.
  328.18 -
  328.19 -cf. 
  328.20 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
  328.21 -
  328.22 -Originally thought we needed this hunk, too:
  328.23 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
  328.24 -but it seems the sysdep.h change is sufficient, and works better 
  328.25 -when compiling against linux-2.4.
  328.26 -
  328.27 -===================================================================
  328.28 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h.old	2004-05-24 22:21:44.000000000 -0700
  328.29 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/alpha/sysdep.h	2004-05-24 22:22:48.000000000 -0700
  328.30 -@@ -1,4 +1,4 @@
  328.31 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
  328.32 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
  328.33 -    Free Software Foundation, Inc.
  328.34 -    This file is part of the GNU C Library.
  328.35 -    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
  328.36 -@@ -60,6 +60,21 @@
  328.37 - #define __NR_osf_getsysinfo	256
  328.38 - #define __NR_osf_setsysinfo	257
  328.39 - 
  328.40 -+/* Help old kernel headers where particular syscalls are not available.  */
  328.41 -+#ifndef __NR_semtimedop
  328.42 -+# define __NR_semtimedop	423
  328.43 -+#endif
  328.44 -+
  328.45 -+/* This is a kludge to make syscalls.list find these under the names
  328.46 -+   pread and pwrite, since some kernel headers define those names
  328.47 -+   and some define the *64 names for the same system calls.  */
  328.48 -+#if !defined __NR_pread && defined __NR_pread64
  328.49 -+# define __NR_pread __NR_pread64
  328.50 -+#endif
  328.51 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  328.52 -+# define __NR_pwrite __NR_pwrite64
  328.53 -+#endif
  328.54 -+
  328.55 - /*
  328.56 -  * In order to get the hidden arguments for rt_sigaction set up
  328.57 -  * properly, we need to call the assembly version.  Detect this in the
   329.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-arm-fix-strlen.patch	Tue Aug 14 19:32:22 2007 +0000
   329.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   329.3 @@ -1,54 +0,0 @@
   329.4 -See also
   329.5 -http://lists.gnu.org/archive/html/bug-glibc/2002-12/msg00056.html
   329.6 -http://lists.arm.linux.org.uk/pipermail/linux-arm-toolchain/2004-June/000016.html
   329.7 -
   329.8 -2002-12-12  Andreas Schwab  <schwab@suse.de>
   329.9 -        * sysdeps/arm/strlen.S: Fix last word check for big endian.
  329.10 -
  329.11 -To: libc-alpha at sources dot redhat dot com
  329.12 -Subject: [PATCH] REPOST: ARM big-endian strlen() fix
  329.13 -References: <m3brjy27mo.fsf@defiant.pm.waw.pl>
  329.14 -From: Krzysztof Halasa <khc at pm dot waw dot pl>
  329.15 -Date: Thu, 10 Jun 2004 13:41:44 +0200
  329.16 -Message-ID: <m3r7sn8wsn.fsf@defiant.pm.waw.pl>
  329.17 -MIME-Version: 1.0
  329.18 -Content-Type: multipart/mixed; boundary="=-=-="
  329.19 -
  329.20 ---=-=-=
  329.21 -
  329.22 -The attached patch fixes strlen() on big-endian ARM. Please apply.
  329.23 -Thanks.
  329.24 --- 
  329.25 -Krzysztof Halasa, B*FH
  329.26 -
  329.27 ---=-=-=
  329.28 -Content-Type: text/x-patch
  329.29 -Content-Disposition: inline; filename=glibc-strlen.patch
  329.30 -
  329.31 ---- glibc-2.3.3.old/sysdeps/arm/strlen.S	2003-04-30 00:47:20.000000000 +0200
  329.32 -+++ glibc-2.3.3/sysdeps/arm/strlen.S	2004-06-06 03:21:48.351931240 +0200
  329.33 -@@ -53,12 +53,21 @@
  329.34 - 	ldrne   r2, [r1], $4            @ and we continue to the next word
  329.35 - 	bne     Laligned                @
  329.36 - Llastword:				@ drop through to here once we find a
  329.37 -+#ifdef __ARMEB__
  329.38 -+	tst     r2, $0xff000000         @ word that has a zero byte in it
  329.39 -+	addne   r0, r0, $1              @
  329.40 -+	tstne   r2, $0x00ff0000         @ and add up to 3 bytes on to it
  329.41 -+	addne   r0, r0, $1              @
  329.42 -+	tstne   r2, $0x0000ff00         @ (if first three all non-zero, 4th
  329.43 -+	addne   r0, r0, $1              @  must be zero)
  329.44 -+#else
  329.45 - 	tst     r2, $0x000000ff         @ word that has a zero byte in it
  329.46 - 	addne   r0, r0, $1              @
  329.47 - 	tstne   r2, $0x0000ff00         @ and add up to 3 bytes on to it
  329.48 - 	addne   r0, r0, $1              @
  329.49 - 	tstne   r2, $0x00ff0000         @ (if first three all non-zero, 4th
  329.50 - 	addne   r0, r0, $1              @  must be zero)
  329.51 -+#endif
  329.52 - 	RETINSTR(mov,pc,lr)
  329.53 - END(strlen)
  329.54 - libc_hidden_builtin_def (strlen)
  329.55 -
  329.56 ---=-=-=--
  329.57 -
   330.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-cross-2.patch	Tue Aug 14 19:32:22 2007 +0000
   330.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   330.3 @@ -1,18 +0,0 @@
   330.4 -When configuring canadian cross toolchain and you're unlucky enough to be
   330.5 -using a build and host that are different, but that config.sub thinks mean the same thing,
   330.6 -you might end up without BUILD_CC being defined as 'cc' or 'gcc',
   330.7 -which might cause $CC to be used instead, which would be wrong...
   330.8 -
   330.9 -Dan Kegel
  330.10 -
  330.11 ---- glibc-2.3.2/configure.old	2004-05-26 19:46:43.000000000 -0700
  330.12 -+++ glibc-2.3.2/configure	2004-05-26 19:52:47.000000000 -0700
  330.13 -@@ -3323,7 +3323,7 @@
  330.14 - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  330.15 - ac_compiler_gnu=$ac_cv_c_compiler_gnu
  330.16 - 
  330.17 --if test $host != $build; then
  330.18 -+if test "$cross_compiling" = yes; then
  330.19 -   for ac_prog in gcc cc
  330.20 - do
  330.21 -   # Extract the first word of "$ac_prog", so it can be a program name with args.
   331.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-cross.patch	Tue Aug 14 19:32:22 2007 +0000
   331.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   331.3 @@ -1,27 +0,0 @@
   331.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/resolv/Makefile.diff?r1=1.41&r2=1.42&cvsroot=glibc
   331.5 -
   331.6 -Fixes 
   331.7 -/bin/sh: /crosstool-0.15/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/elf/ld.so.1: cannot execute binary file
   331.8 -make[2]: *** [/crosstool-0.15/build/powerpc-750-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/resolv/tst-leaks.out] Error 126
   331.9 -
  331.10 -2003-03-01  Andreas Schwab  <schwab@suse.de>
  331.11 -
  331.12 -	* resolv/Makefile (tests): Don't depend on
  331.13 -	$(objpfx)mtrace-tst-leaks when cross compiling.
  331.14 -
  331.15 -===================================================================
  331.16 -RCS file: /cvs/glibc/libc/resolv/Makefile,v
  331.17 -retrieving revision 1.41
  331.18 -retrieving revision 1.42
  331.19 -diff -u -r1.41 -r1.42
  331.20 ---- libc/resolv/Makefile	2003/02/23 03:35:39	1.41
  331.21 -+++ libc/resolv/Makefile	2003/03/01 22:15:00	1.42
  331.22 -@@ -93,6 +93,8 @@
  331.23 - tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace
  331.24 - $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
  331.25 - 	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
  331.26 -+ifeq (no,$(cross-compiling))
  331.27 - ifneq (no,$(PERL))
  331.28 - tests: $(objpfx)mtrace-tst-leaks
  331.29 - endif
  331.30 -+endif
   332.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   332.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   332.3 @@ -1,90 +0,0 @@
   332.4 -Fixes
   332.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   332.6 -...
   332.7 -when building glibc-2.3.2 on cygwin
   332.8 -
   332.9 -Idea from
  332.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  332.11 -Basically, make glibc use .oST as suffix for 'object static'
  332.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  332.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  332.14 -
  332.15 -glibc-linuxthreads-2.3.2 also requires a patch, see 
  332.16 -../glibc-linuxthreads-2.3.2/glibc-linuxthreads-2.3.2-cygwin.patch
  332.17 -
  332.18 -
  332.19 ---- glibc-2.3.2/Makeconfig.orig	2003-01-05 21:31:36.000000000 -0800
  332.20 -+++ glibc-2.3.2/Makeconfig	2004-03-13 23:42:03.781250000 -0800
  332.21 -@@ -433,13 +433,13 @@
  332.22 - # run the linked programs.
  332.23 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  332.24 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  332.25 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  332.26 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  332.27 - # This is how to find at build-time things that will be installed there.
  332.28 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  332.29 - else
  332.30 - ifneq (,$(filter aix aix%,$(config-os)))
  332.31 - link-libc = $(common-objpfx)libc.a \
  332.32 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  332.33 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  332.34 - rpath-dirs = math dlfcn nss nis rt resolv crypt
  332.35 - endif
  332.36 - endif
  332.37 -@@ -652,7 +652,7 @@
  332.38 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  332.39 - # to pass different flags for each flavor.
  332.40 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  332.41 --all-object-suffixes := .o .os .op .og .ob .oS
  332.42 -+all-object-suffixes := .o .os .op .og .ob .oST
  332.43 - object-suffixes :=
  332.44 - CPPFLAGS-.o = $(pic-default)
  332.45 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  332.46 -@@ -706,14 +706,14 @@
  332.47 - 
  332.48 - ifeq (yes,$(build-shared))
  332.49 - # Build special library that contains the static-only routines for libc.
  332.50 --object-suffixes-for-libc += .oS
  332.51 -+object-suffixes-for-libc += .oST
  332.52 - 
  332.53 - # Must build the routines as PIC, though, because they can end up in (users')
  332.54 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  332.55 - # example, make that processor-specific.
  332.56 --CFLAGS-.oS = $(CFLAGS-.o) $(pic-ccflag)
  332.57 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  332.58 --libtype.oS = lib%_nonshared.a
  332.59 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  332.60 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  332.61 -+libtype.oST = lib%_nonshared.a
  332.62 - endif
  332.63 - 
  332.64 - 
  332.65 ---- glibc-2.3.2/Makerules.orig	2003-02-22 15:23:31.000000000 -0800
  332.66 -+++ glibc-2.3.2/Makerules	2004-03-13 23:43:40.984375000 -0800
  332.67 -@@ -446,7 +446,7 @@
  332.68 - # Bounded pointer thunks are only built for *.ob
  332.69 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  332.70 - 
  332.71 --elide-routines.oS += $(filter-out $(static-only-routines),\
  332.72 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  332.73 - 				  $(routines) $(aux) $(sysdep_routines)) \
  332.74 - 		     $(elide-bp-thunks)
  332.75 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  332.76 -@@ -958,7 +958,7 @@
  332.77 - install: $(inst_libdir)/libc.so
  332.78 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
  332.79 - 			$(common-objpfx)libc.so$(libc.so-version) \
  332.80 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  332.81 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  332.82 - 						  $(libprefix)$(libc-name)) \
  332.83 - 			$(+force)
  332.84 - 	(echo '/* GNU ld script';\
  332.85 -@@ -966,7 +966,7 @@
  332.86 - 	 echo '   the static library, so try that secondarily.  */';\
  332.87 - 	 cat $<; \
  332.88 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  332.89 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  332.90 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  332.91 - 	      ')' \
  332.92 - 	) > $@.new
  332.93 - 	mv -f $@.new $@
   333.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-mips-user.patch	Tue Aug 14 19:32:22 2007 +0000
   333.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   333.3 @@ -1,588 +0,0 @@
   333.4 -Retrieved from
   333.5 -http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-04&msgid=orfzoof4j0.fsf%40free.redhat.lsd.ic.unicamp.br
   333.6 -paths adjusted, and rediffed against glibc-2.3.2
   333.7 -(i.e. to compensate for fact that
   333.8 -http://sources.redhat.com/ml/glibc-cvs/2003-q1/msg01155.html
   333.9 -is not present)
  333.10 -
  333.11 -Should fix
  333.12 -
  333.13 -In file included from ../sysdeps/unix/sysv/linux/mips/sys/procfs.h:29,
  333.14 -                 from ../linuxthreads_db/proc_service.h:20,
  333.15 -                 from ../linuxthreads_db/thread_dbP.h:7,
  333.16 -                 from ../linuxthreads/descr.h:43,
  333.17 -                 from ../linuxthreads/internals.h:29,
  333.18 -                 from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
  333.19 -                 from ../sysdeps/generic/ldsodefs.h:38,
  333.20 -                 from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
  333.21 -                 from ../sysdeps/mips/elf/ldsodefs.h:25,
  333.22 -                 from ../sysdeps/unix/sysv/linux/init-first.c:30:
  333.23 -../sysdeps/unix/sysv/linux/mips/sys/user.h:26:21: asm/reg.h: No such file or directory
  333.24 -In file included from ../sysdeps/unix/sysv/linux/mips/sys/procfs.h:29,
  333.25 -                 from ../linuxthreads_db/proc_service.h:20,
  333.26 -                 from ../linuxthreads_db/thread_dbP.h:7,
  333.27 -                 from ../linuxthreads/descr.h:43,
  333.28 -                 from ../linuxthreads/internals.h:29,
  333.29 -                 from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
  333.30 -                 from ../sysdeps/generic/ldsodefs.h:38,
  333.31 -                 from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
  333.32 -                 from ../sysdeps/mips/elf/ldsodefs.h:25,
  333.33 -                 from ../sysdeps/unix/sysv/linux/init-first.c:30:
  333.34 -../sysdeps/unix/sysv/linux/mips/sys/user.h:30: error: `EF_SIZE' undeclared here (not in a function)
  333.35 -make[2]: *** [mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/csu/init-first.o] Error 1
  333.36 -make[2]: Leaving directory `mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/csu'
  333.37 -make[1]: *** [csu/subdir_lib] Error 2
  333.38 -make[1]: Leaving directory `mipsel-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2'
  333.39 -make: *** [all] Error 2
  333.40 -
  333.41 -From libc-alpha-return-12105-listarch-libc-alpha=sources dot redhat dot com at sources dot redhat dot com Sat Apr 12 09:28:56 2003
  333.42 -Return-Path: <libc-alpha-return-12105-listarch-libc-alpha=sources dot redhat dot com at sources dot redhat dot com>
  333.43 -Delivered-To: listarch-libc-alpha at sources dot redhat dot com
  333.44 -Received: (qmail 2802 invoked by alias); 12 Apr 2003 09:28:56 -0000
  333.45 -Mailing-List: contact libc-alpha-help at sources dot redhat dot com; run by ezmlm
  333.46 -Precedence: bulk
  333.47 -List-Subscribe: <mailto:libc-alpha-subscribe at sources dot redhat dot com>
  333.48 -List-Archive: <http://sources.redhat.com/ml/libc-alpha/>
  333.49 -List-Post: <mailto:libc-alpha at sources dot redhat dot com>
  333.50 -List-Help: <mailto:libc-alpha-help at sources dot redhat dot com>, <http://sources dot redhat dot com/ml/#faqs>
  333.51 -Sender: libc-alpha-owner at sources dot redhat dot com
  333.52 -Delivered-To: mailing list libc-alpha at sources dot redhat dot com
  333.53 -Received: (qmail 2795 invoked from network); 12 Apr 2003 09:28:55 -0000
  333.54 -Received: from unknown (HELO lacrosse.corp.redhat.com) (66.187.233.200)
  333.55 -  by sources dot redhat dot com with SMTP; 12 Apr 2003 09:28:55 -0000
  333.56 -Received: from free.redhat.lsd.ic.unicamp.br (aoliva.cipe.redhat.com [10.0.1.10])
  333.57 -	by lacrosse dot corp dot redhat dot com (8 dot 11 dot 6/8 dot 9 dot 3) with ESMTP id h3C9SqV01131
  333.58 -	for <libc-alpha at sources dot redhat dot com>; Sat, 12 Apr 2003 05:28:52 -0400
  333.59 -Received: from free.redhat.lsd.ic.unicamp.br (free.redhat.lsd.ic.unicamp.br [127.0.0.1])
  333.60 -	by free dot redhat dot lsd dot ic dot unicamp dot br (8 dot 12 dot 8/8 dot 12 dot 8) with ESMTP id h3C9SpVT028734
  333.61 -	for <libc-alpha at sources dot redhat dot com>; Sat, 12 Apr 2003 06:28:51 -0300
  333.62 -Received: (from aoliva@localhost)
  333.63 -	by free dot redhat dot lsd dot ic dot unicamp dot br (8 dot 12 dot 8/8 dot 12 dot 8/Submit) id h3C9SpFb028730;
  333.64 -	Sat, 12 Apr 2003 06:28:51 -0300
  333.65 -To: libc-alpha at sources dot redhat dot com
  333.66 -Subject: signal-handling tweaks for mips/mips64
  333.67 -From: Alexandre Oliva <aoliva at redhat dot com>
  333.68 -Organization: GCC Team, Red Hat
  333.69 -Date: 12 Apr 2003 06:28:51 -0300
  333.70 -Message-ID: <orfzoof4j0.fsf@free.redhat.lsd.ic.unicamp.br>
  333.71 -Lines: 49
  333.72 -User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2
  333.73 -MIME-Version: 1.0
  333.74 -Content-Type: multipart/mixed; boundary="=-=-="
  333.75 -
  333.76 ---=-=-=
  333.77 -
  333.78 -It was reported to me that ucontext is utterly broken, even in o32
  333.79 -with a stable 32-bit mips kernel.  Indeed, it doesn't match the
  333.80 -ucontext structure defined by the kernel at all.  This means that
  333.81 -programs taking real-time signals in o32 won't be able to extract
  333.82 -correct information from the mcontext_t, since the kernel puts data in
  333.83 -there that's in an entirely different format.
  333.84 -
  333.85 -I've looked for any ways in which the current data structures could
  333.86 -possibly be useful, and didn't find any.  gdb and rda thought they
  333.87 -were using the register arrays, but it turned out they were using the
  333.88 -arrays in procps instead.  makecontext(), [sg]etcontext() et al aren't
  333.89 -implemented on mips, so any uses thereof will just return ENOSYS,
  333.90 -without messing with the given data structure.  So, I believe it is
  333.91 -not too late for us to fix it such that it matches the kernel data
  333.92 -structures.
  333.93 -
  333.94 -While at that, I fixed a number of incompatibilities introduced by
  333.95 -either differences between kernel headers that we used to include,
  333.96 -whose contents are different depending on whether asm points to
  333.97 -asm-mips or asm-mips64.
  333.98 -
  333.99 -With this patch, after some pending kernel patches are checked in, one
 333.100 -will be able to obtain the correct information from signal handlers in
 333.101 -all mips ABIs.  With n64, this is already true.  With o32, it works
 333.102 -with the 32-bit mips kernel, but the mips64 kernel needs a patch to
 333.103 -implement the proper sigcontext ABI.  n32 still a patch to be
 333.104 -developed for it to be possible for ucontext to be POSIX-compliant.
 333.105 -Currently, the kernel uses the same ucontext for n32 and n64, but this
 333.106 -doesn't work in n32 because uc_link must be a pointer and stack_t must
 333.107 -contain a pointer and a size_t, whose sizes differ between n32 and
 333.108 -n64.  I believe Ralf is working on a patch for the kernel to generate
 333.109 -n32-compliant ucontext when invoking signal handlers in n32 processes.
 333.110 -The only uncertainty is whether uc_flags will be a 32- or 64-bit value
 333.111 -in n32; I left it as the latter, just because I already had that in
 333.112 -place; if it changes, a (simplifying) follow-up patch will be posted.
 333.113 -However, I wanted to circulate the idea of fixing ucontext_t for o32
 333.114 -as soon as possible, so I didn't wait for a decision on the exact n32
 333.115 -ABI.
 333.116 -
 333.117 -Ok to install?
 333.118 -
 333.119 -
 333.120 ---=-=-=
 333.121 -Content-Type: text/x-patch
 333.122 -Content-Disposition: inline; filename=mips-sigstuff.patch
 333.123 -
 333.124 -Index: ChangeLog
 333.125 -from  Alexandre Oliva  <aoliva@redhat.com>
 333.126 -
 333.127 -	* sysdeps/unix/sysv/linux/mips/profil-counter: New.
 333.128 -	* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Port to n32/n64.
 333.129 -	* sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: New.
 333.130 -	* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Port to n32/n64.
 333.131 -	(mcontext_t): Make it match the 32-bit mips kernel in o32.
 333.132 -	* sysdeps/unix/sysv/linux/mips/sys/user.h: Bring in constants from
 333.133 -	the mips and mips64 headers.
 333.134 -	(struct user): Port to n32/n64.
 333.135 -
 333.136 -Index: sysdeps/unix/sysv/linux/mips/profil-counter.h
 333.137 -===================================================================
 333.138 -RCS file: sysdeps/unix/sysv/linux/mips/profil-counter.h
 333.139 -diff -N sysdeps/unix/sysv/linux/mips/profil-counter.h
 333.140 ---- /dev/null	1 Jan 1970 00:00:00 -0000
 333.141 -+++ libc/sysdeps/unix/sysv/linux/mips/profil-counter.h 12 Apr 2003 09:13:13 -0000
 333.142 -@@ -0,0 +1,2 @@
 333.143 -+/* We can use the ix86 version.  */
 333.144 -+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
 333.145 -Index: sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
 333.146 -===================================================================
 333.147 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h,v
 333.148 -retrieving revision 1.6
 333.149 -diff -u -p -r1.6 sigcontextinfo.h
 333.150 ---- libc/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h 6 Jul 2001 04:56:18 -0000 1.6
 333.151 -+++ libc/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h 12 Apr 2003 09:13:13 -0000
 333.152 -@@ -1,4 +1,4 @@
 333.153 --/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 333.154 -+/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
 333.155 -    This file is part of the GNU C Library.
 333.156 -    Contributed by Andreas Jaeger <aj@suse.de>, 2000.
 333.157 - 
 333.158 -@@ -18,6 +18,8 @@
 333.159 -    02111-1307 USA.  */
 333.160 - 
 333.161 - 
 333.162 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
 333.163 -+
 333.164 - #define SIGCONTEXT unsigned long _code, struct sigcontext *
 333.165 - #define SIGCONTEXT_EXTRA_ARGS _code,
 333.166 - #define GET_PC(ctx)	((void *) ctx->sc_pc)
 333.167 -@@ -25,3 +27,15 @@
 333.168 - #define GET_STACK(ctx)	((void *) ctx->sc_regs[29])
 333.169 - #define CALL_SIGHANDLER(handler, signo, ctx) \
 333.170 -   (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
 333.171 -+
 333.172 -+#else
 333.173 -+
 333.174 -+#define SIGCONTEXT unsigned long _code, ucontext_t *
 333.175 -+#define SIGCONTEXT_EXTRA_ARGS _code,
 333.176 -+#define GET_PC(ctx)	((void *) ctx->uc_mcontext.pc)
 333.177 -+#define GET_FRAME(ctx)	((void *) ctx->uc_mcontext.gregs[30])
 333.178 -+#define GET_STACK(ctx)	((void *) ctx->uc_mcontext.gregs[29])
 333.179 -+#define CALL_SIGHANDLER(handler, signo, ctx) \
 333.180 -+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
 333.181 -+
 333.182 -+#endif
 333.183 -Index: sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
 333.184 -===================================================================
 333.185 -RCS file: sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
 333.186 -diff -N sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
 333.187 ---- /dev/null	1 Jan 1970 00:00:00 -0000
 333.188 -+++ libc/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h 12 Apr 2003 09:13:13 -0000
 333.189 -@@ -0,0 +1,103 @@
 333.190 -+/* Copyright (C) 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
 333.191 -+   This file is part of the GNU C Library.
 333.192 -+
 333.193 -+   The GNU C Library is free software; you can redistribute it and/or
 333.194 -+   modify it under the terms of the GNU Lesser General Public
 333.195 -+   License as published by the Free Software Foundation; either
 333.196 -+   version 2.1 of the License, or (at your option) any later version.
 333.197 -+
 333.198 -+   The GNU C Library is distributed in the hope that it will be useful,
 333.199 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 333.200 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 333.201 -+   Lesser General Public License for more details.
 333.202 -+
 333.203 -+   You should have received a copy of the GNU Lesser General Public
 333.204 -+   License along with the GNU C Library; if not, write to the Free
 333.205 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 333.206 -+   02111-1307 USA.  */
 333.207 -+
 333.208 -+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
 333.209 -+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
 333.210 -+#endif
 333.211 -+
 333.212 -+#ifndef sigcontext_struct
 333.213 -+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
 333.214 -+   we need sigcontext.  */
 333.215 -+# define sigcontext_struct sigcontext
 333.216 -+
 333.217 -+/* # include <asm/sigcontext.h> */
 333.218 -+/* Instead of including the kernel header, that will vary depending on
 333.219 -+   whether the 32- or the 64-bit kernel is installed, we paste the
 333.220 -+   contents here.  In case you're wondering about the different
 333.221 -+   licenses, the fact that the file is pasted, instead of included,
 333.222 -+   doesn't really make any difference for the program that includes
 333.223 -+   this header.  */
 333.224 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
 333.225 -+/*
 333.226 -+ * This file is subject to the terms and conditions of the GNU General Public
 333.227 -+ * License.  See the file "COPYING" in the main directory of this archive
 333.228 -+ * for more details.
 333.229 -+ *
 333.230 -+ * Copyright (C) 1996, 1997, 2000 by Ralf Baechle
 333.231 -+ */
 333.232 -+#ifndef _ASM_SIGCONTEXT_H
 333.233 -+#define _ASM_SIGCONTEXT_H
 333.234 -+
 333.235 -+/*
 333.236 -+ * Keep this struct definition in sync with the sigcontext fragment
 333.237 -+ * in arch/mips/tools/offset.c
 333.238 -+ */
 333.239 -+struct sigcontext {
 333.240 -+	unsigned int       sc_regmask;		/* Unused */
 333.241 -+	unsigned int       sc_status;
 333.242 -+	unsigned long long sc_pc;
 333.243 -+	unsigned long long sc_regs[32];
 333.244 -+	unsigned long long sc_fpregs[32];
 333.245 -+	unsigned int       sc_ownedfp;		/* Unused */
 333.246 -+	unsigned int       sc_fpc_csr;
 333.247 -+	unsigned int       sc_fpc_eir;		/* Unused */
 333.248 -+	unsigned int       sc_used_math;
 333.249 -+	unsigned int       sc_ssflags;		/* Unused */
 333.250 -+	unsigned long long sc_mdhi;
 333.251 -+	unsigned long long sc_mdlo;
 333.252 -+
 333.253 -+	unsigned int       sc_cause;		/* Unused */
 333.254 -+	unsigned int       sc_badvaddr;		/* Unused */
 333.255 -+
 333.256 -+	unsigned long      sc_sigset[4];	/* kernel's sigset_t */
 333.257 -+};
 333.258 -+
 333.259 -+#endif /* _ASM_SIGCONTEXT_H */
 333.260 -+#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
 333.261 -+/*
 333.262 -+ * This file is subject to the terms and conditions of the GNU General Public
 333.263 -+ * License.  See the file "COPYING" in the main directory of this archive
 333.264 -+ * for more details.
 333.265 -+ *
 333.266 -+ * Copyright (C) 1996, 1997, 1999 by Ralf Baechle
 333.267 -+ * Copyright (C) 1999 Silicon Graphics, Inc.
 333.268 -+ */
 333.269 -+#ifndef _ASM_SIGCONTEXT_H
 333.270 -+#define _ASM_SIGCONTEXT_H
 333.271 -+
 333.272 -+/*
 333.273 -+ * Keep this struct definition in sync with the sigcontext fragment
 333.274 -+ * in arch/mips/tools/offset.c
 333.275 -+ */
 333.276 -+struct sigcontext {
 333.277 -+	unsigned long long sc_regs[32];
 333.278 -+	unsigned long long sc_fpregs[32];
 333.279 -+	unsigned long long sc_mdhi;
 333.280 -+	unsigned long long sc_mdlo;
 333.281 -+	unsigned long long sc_pc;
 333.282 -+	unsigned int       sc_status;
 333.283 -+	unsigned int       sc_fpc_csr;
 333.284 -+	unsigned int       sc_fpc_eir;
 333.285 -+	unsigned int       sc_used_math;
 333.286 -+	unsigned int       sc_cause;
 333.287 -+	unsigned int       sc_badvaddr;
 333.288 -+};
 333.289 -+
 333.290 -+#endif /* _ASM_SIGCONTEXT_H */
 333.291 -+#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
 333.292 -+#endif
 333.293 -[hunk deleted, see below]
 333.294 -Index: sysdeps/unix/sysv/linux/mips/sys/user.h
 333.295 -===================================================================
 333.296 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/sys/user.h,v
 333.297 -retrieving revision 1.1
 333.298 -diff -u -p -r1.1 user.h
 333.299 ---- libc/sysdeps/unix/sysv/linux/mips/sys/user.h 8 Feb 2002 16:21:00 -0000 1.1
 333.300 -+++ libc/sysdeps/unix/sysv/linux/mips/sys/user.h 12 Apr 2003 09:13:13 -0000
 333.301 -@@ -1,4 +1,4 @@
 333.302 --/* Copyright (C) 2002 Free Software Foundation, Inc.
 333.303 -+/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 333.304 -    This file is part of the GNU C Library.
 333.305 - 
 333.306 -    The GNU C Library is free software; you can redistribute it and/or
 333.307 -@@ -23,7 +23,154 @@
 333.308 -    too much into it.  Don't use it for anything other than GDB unless
 333.309 -    you know what you are doing.  */
 333.310 - 
 333.311 --#include <asm/reg.h>
 333.312 -+/* #include <asm/reg.h> */
 333.313 -+/* Instead of including the kernel header, that will vary depending on
 333.314 -+   whether the 32- or the 64-bit kernel is installed, we paste its
 333.315 -+   contents here.  Note that the fact that the file is inline here,
 333.316 -+   instead of included separately, doesn't change in any way the
 333.317 -+   licensing status of a program that includes user.h.  Since this is
 333.318 -+   for gdb alone, and gdb is GPLed, no surprises here.  */
 333.319 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
 333.320 -+/*
 333.321 -+ * Various register offset definitions for debuggers, core file
 333.322 -+ * examiners and whatnot.
 333.323 -+ *
 333.324 -+ * This file is subject to the terms and conditions of the GNU General Public
 333.325 -+ * License.  See the file "COPYING" in the main directory of this archive
 333.326 -+ * for more details.
 333.327 -+ *
 333.328 -+ * Copyright (C) 1995, 1999 by Ralf Baechle
 333.329 -+ */
 333.330 -+#ifndef __ASM_MIPS_REG_H
 333.331 -+#define __ASM_MIPS_REG_H
 333.332 -+
 333.333 -+/*
 333.334 -+ * This defines/structures correspond to the register layout on stack -
 333.335 -+ * if the order here is changed, it needs to be updated in
 333.336 -+ * include/asm-mips/stackframe.h
 333.337 -+ */
 333.338 -+#define EF_REG0			6
 333.339 -+#define EF_REG1			7
 333.340 -+#define EF_REG2			8
 333.341 -+#define EF_REG3			9
 333.342 -+#define EF_REG4			10
 333.343 -+#define EF_REG5			11
 333.344 -+#define EF_REG6			12
 333.345 -+#define EF_REG7			13
 333.346 -+#define EF_REG8			14
 333.347 -+#define EF_REG9			15
 333.348 -+#define EF_REG10		16
 333.349 -+#define EF_REG11		17
 333.350 -+#define EF_REG12		18
 333.351 -+#define EF_REG13		19
 333.352 -+#define EF_REG14		20
 333.353 -+#define EF_REG15		21
 333.354 -+#define EF_REG16		22
 333.355 -+#define EF_REG17		23
 333.356 -+#define EF_REG18		24
 333.357 -+#define EF_REG19		25
 333.358 -+#define EF_REG20		26
 333.359 -+#define EF_REG21		27
 333.360 -+#define EF_REG22		28
 333.361 -+#define EF_REG23		29
 333.362 -+#define EF_REG24		30
 333.363 -+#define EF_REG25		31
 333.364 -+/*
 333.365 -+ * k0/k1 unsaved
 333.366 -+ */
 333.367 -+#define EF_REG28		34
 333.368 -+#define EF_REG29		35
 333.369 -+#define EF_REG30		36
 333.370 -+#define EF_REG31		37
 333.371 -+
 333.372 -+/*
 333.373 -+ * Saved special registers
 333.374 -+ */
 333.375 -+#define EF_LO			38
 333.376 -+#define EF_HI			39
 333.377 -+
 333.378 -+#define EF_CP0_EPC		40
 333.379 -+#define EF_CP0_BADVADDR		41
 333.380 -+#define EF_CP0_STATUS		42
 333.381 -+#define EF_CP0_CAUSE		43
 333.382 -+
 333.383 -+#define EF_SIZE			180	/* size in bytes */
 333.384 -+
 333.385 -+#endif /* __ASM_MIPS_REG_H */
 333.386 -+
 333.387 -+#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
 333.388 -+
 333.389 -+/*
 333.390 -+ * Various register offset definitions for debuggers, core file
 333.391 -+ * examiners and whatnot.
 333.392 -+ *
 333.393 -+ * This file is subject to the terms and conditions of the GNU General Public
 333.394 -+ * License.  See the file "COPYING" in the main directory of this archive
 333.395 -+ * for more details.
 333.396 -+ *
 333.397 -+ * Copyright (C) 1995, 1999 Ralf Baechle
 333.398 -+ * Copyright (C) 1995, 1999 Silicon Graphics
 333.399 -+ */
 333.400 -+#ifndef _ASM_REG_H
 333.401 -+#define _ASM_REG_H
 333.402 -+
 333.403 -+/*
 333.404 -+ * This defines/structures correspond to the register layout on stack -
 333.405 -+ * if the order here is changed, it needs to be updated in
 333.406 -+ * include/asm-mips/stackframe.h
 333.407 -+ */
 333.408 -+#define EF_REG0			 0
 333.409 -+#define EF_REG1			 1
 333.410 -+#define EF_REG2			 2
 333.411 -+#define EF_REG3			 3
 333.412 -+#define EF_REG4			 4
 333.413 -+#define EF_REG5			 5
 333.414 -+#define EF_REG6			 6
 333.415 -+#define EF_REG7			 7
 333.416 -+#define EF_REG8			 8
 333.417 -+#define EF_REG9			 9
 333.418 -+#define EF_REG10		10
 333.419 -+#define EF_REG11		11
 333.420 -+#define EF_REG12		12
 333.421 -+#define EF_REG13		13
 333.422 -+#define EF_REG14		14
 333.423 -+#define EF_REG15		15
 333.424 -+#define EF_REG16		16
 333.425 -+#define EF_REG17		17
 333.426 -+#define EF_REG18		18
 333.427 -+#define EF_REG19		19
 333.428 -+#define EF_REG20		20
 333.429 -+#define EF_REG21		21
 333.430 -+#define EF_REG22		22
 333.431 -+#define EF_REG23		23
 333.432 -+#define EF_REG24		24
 333.433 -+#define EF_REG25		25
 333.434 -+/*
 333.435 -+ * k0/k1 unsaved
 333.436 -+ */
 333.437 -+#define EF_REG28		28
 333.438 -+#define EF_REG29		29
 333.439 -+#define EF_REG30		30
 333.440 -+#define EF_REG31		31
 333.441 -+
 333.442 -+/*
 333.443 -+ * Saved special registers
 333.444 -+ */
 333.445 -+#define EF_LO			32
 333.446 -+#define EF_HI			33
 333.447 -+
 333.448 -+#define EF_CP0_EPC		34
 333.449 -+#define EF_CP0_BADVADDR		35
 333.450 -+#define EF_CP0_STATUS		36
 333.451 -+#define EF_CP0_CAUSE		37
 333.452 -+
 333.453 -+#define EF_SIZE			304	/* size in bytes */
 333.454 -+
 333.455 -+#endif /* _ASM_REG_H */
 333.456 -+
 333.457 -+#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
 333.458 -+
 333.459 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
 333.460 - 
 333.461 - struct user
 333.462 - {
 333.463 -@@ -39,6 +186,24 @@ struct user
 333.464 -   unsigned long	magic;			/* identifies a core file */
 333.465 -   char		u_comm[32];		/* user command name */
 333.466 - };
 333.467 -+
 333.468 -+#else
 333.469 -+
 333.470 -+struct user {
 333.471 -+  __extension__ unsigned long	regs[EF_SIZE/8+64]; /* integer and fp regs */
 333.472 -+  __extension__ unsigned long	u_tsize;	/* text size (pages) */
 333.473 -+  __extension__ unsigned long	u_dsize;	/* data size (pages) */
 333.474 -+  __extension__ unsigned long	u_ssize;	/* stack size (pages) */
 333.475 -+  __extension__ unsigned long long start_code;	/* text starting address */
 333.476 -+  __extension__ unsigned long long start_data;	/* data starting address */
 333.477 -+  __extension__ unsigned long long start_stack;	/* stack starting address */
 333.478 -+  __extension__ long long	signal;		/* signal causing core dump */
 333.479 -+  __extension__ unsigned long long u_ar0;	/* help gdb find registers */
 333.480 -+  __extension__ unsigned long long magic;	/* identifies a core file */
 333.481 -+  char		u_comm[32];		/* user command name */
 333.482 -+};
 333.483 -+
 333.484 -+#endif
 333.485 - 
 333.486 - #define PAGE_SHIFT		12
 333.487 - #define PAGE_SIZE		(1UL << PAGE_SHIFT)
 333.488 -
 333.489 ---=-=-=
 333.490 -
 333.491 -
 333.492 --- 
 333.493 -Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
 333.494 -Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
 333.495 -CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
 333.496 -Free Software Evangelist                Professional serial bug killer
 333.497 -
 333.498 ---=-=-=--
 333.499 -
 333.500 -And the rediffed hunk:
 333.501 -
 333.502 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/mips/sys/ucontext.h.old	2004-05-30 07:23:32.000000000 -0700
 333.503 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/sys/ucontext.h	2004-05-30 07:22:56.000000000 -0700
 333.504 -@@ -29,43 +29,72 @@
 333.505 - #include <bits/sigcontext.h>
 333.506 - 
 333.507 - 
 333.508 --/* Type for general register.  */
 333.509 --typedef unsigned long int greg_t;
 333.510 -+/* Type for general register.  Even in o32 we assume 64-bit registers,
 333.511 -+   like the kernel.  */
 333.512 -+__extension__ typedef unsigned long long int greg_t;
 333.513 - 
 333.514 - /* Number of general registers.  */
 333.515 --#define NGREG	37
 333.516 --#define NFPREG	33
 333.517 -+#define NGREG	32
 333.518 -+#define NFPREG	32
 333.519 - 
 333.520 - /* Container for all general registers.  */
 333.521 --/* gregset_t must be an array.  The below declared array corresponds to:
 333.522 --typedef struct gregset {
 333.523 --	greg_t	g_regs[32];
 333.524 --	greg_t	g_hi;
 333.525 --	greg_t	g_lo;
 333.526 --	greg_t	g_pad[3];
 333.527 --} gregset_t;  */
 333.528 - typedef greg_t gregset_t[NGREG];
 333.529 - 
 333.530 - /* Container for all FPU registers.  */
 333.531 - typedef struct fpregset {
 333.532 - 	union {
 333.533 --		double	fp_dregs[32];
 333.534 -+		double	fp_dregs[NFPREG];
 333.535 - 		struct {
 333.536 - 			float		_fp_fregs;
 333.537 - 			unsigned int	_fp_pad;
 333.538 --		} fp_fregs[32];
 333.539 -+		} fp_fregs[NFPREG];
 333.540 - 	} fp_r;
 333.541 --	unsigned int	fp_csr;
 333.542 --	unsigned int	fp_pad;
 333.543 - } fpregset_t;
 333.544 - 
 333.545 - 
 333.546 - /* Context to describe whole processor state.  */
 333.547 -+#if _MIPS_SIM == _MIPS_SIM_ABI32
 333.548 -+/* Earlier versions of glibc for mips had an entirely different
 333.549 -+   definition of mcontext_t, that didn't even resemble the
 333.550 -+   corresponding kernel data structure.  Since all legitimate uses of
 333.551 -+   ucontext_t in glibc mustn't have accessed anything beyond
 333.552 -+   uc_mcontext and, even then, taking a pointer to it, casting it to
 333.553 -+   sigcontext_t, and accessing it as such, which is what it has always
 333.554 -+   been, this can still be rectified.  Fortunately, makecontext,
 333.555 -+   [gs]etcontext et all have never been implemented.  */
 333.556 - typedef struct
 333.557 -   {
 333.558 -+    unsigned int regmask;
 333.559 -+    unsigned int status;
 333.560 -+    greg_t pc;
 333.561 -     gregset_t gregs;
 333.562 -     fpregset_t fpregs;
 333.563 -+    unsigned int fp_owned;
 333.564 -+    unsigned int fpc_csr;
 333.565 -+    unsigned int fpc_eir;
 333.566 -+    unsigned int used_math;
 333.567 -+    unsigned int ssflags;
 333.568 -+    greg_t mdhi;
 333.569 -+    greg_t mdlo;
 333.570 -+    unsigned int cause;
 333.571 -+    unsigned int badvaddr;
 333.572 -   } mcontext_t;
 333.573 -+#else
 333.574 -+typedef struct
 333.575 -+  {
 333.576 -+    gregset_t gregs;
 333.577 -+    fpregset_t fpregs;
 333.578 -+    greg_t mdhi;
 333.579 -+    greg_t mdlo;
 333.580 -+    greg_t pc;
 333.581 -+    unsigned int status;
 333.582 -+    unsigned int fpc_csr;
 333.583 -+    unsigned int fpc_eir;
 333.584 -+    unsigned int used_math;
 333.585 -+    unsigned int cause;
 333.586 -+    unsigned int badvaddr;
 333.587 -+  } mcontext_t;
 333.588 -+#endif
 333.589 - 
 333.590 - /* Userlevel context.  */
 333.591 - typedef struct ucontext
   334.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-mips.patch	Tue Aug 14 19:32:22 2007 +0000
   334.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   334.3 @@ -1,60 +0,0 @@
   334.4 -From Bill Gatliff, who said:
   334.5 -"Attached is a glibc-2.3.2 patchfile I use for MIPS.  Versions prior to and including glibc-2.3.2 won't build without it."
   334.6 -
   334.7 -diff -bBurN glibc-2.3.2.orig/elf/dl-conflict.c glibc-2.3.2/elf/dl-conflict.c
   334.8 ---- glibc-2.3.2.orig/elf/dl-conflict.c	2003-06-12 21:07:54.000000000 -0500
   334.9 -+++ glibc-2.3.2/elf/dl-conflict.c	2003-06-12 21:09:12.000000000 -0500
  334.10 -@@ -33,6 +33,7 @@
  334.11 - _dl_resolve_conflicts (struct link_map *l, ElfW(Rela) *conflict,
  334.12 - 		       ElfW(Rela) *conflictend)
  334.13 - {
  334.14 -+#ifndef _DL_HAVE_NO_ELF_MACHINE_RELA
  334.15 -   if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_RELOC, 0))
  334.16 -     _dl_printf ("\nconflict processing: %s\n",
  334.17 - 		l->l_name[0] ? l->l_name : rtld_progname);
  334.18 -@@ -64,4 +65,5 @@
  334.19 -     for (; conflict < conflictend; ++conflict)
  334.20 -       elf_machine_rela (l, conflict, NULL, NULL, (void *) conflict->r_offset);
  334.21 -   }
  334.22 -+#endif
  334.23 - }
  334.24 -diff -bBurN glibc-2.3.2.orig/sysdeps/mips/dl-machine.h glibc-2.3.2/sysdeps/mips/dl-machine.h
  334.25 ---- glibc-2.3.2.orig/sysdeps/mips/dl-machine.h	2003-06-12 21:07:49.000000000 -0500
  334.26 -+++ glibc-2.3.2/sysdeps/mips/dl-machine.h	2003-06-12 21:11:10.000000000 -0500
  334.27 -@@ -56,6 +56,10 @@
  334.28 - #define ELF_MACHINE_JMP_SLOT			R_MIPS_REL32
  334.29 - #define elf_machine_type_class(type)		ELF_RTYPE_CLASS_PLT
  334.30 - 
  334.31 -+/* MIPS doesn't support RELA; see:
  334.32 -+   http://lists.debian.org/debian-mips/2002/debian-mips-200209/msg00020.html */
  334.33 -+#define _DL_HAVE_NO_ELF_MACHINE_RELA
  334.34 -+
  334.35 - /* Translate a processor specific dynamic tag to the index
  334.36 -    in l_info array.  */
  334.37 - #define DT_MIPS(x) (DT_MIPS_##x - DT_LOPROC + DT_NUM)
  334.38 -diff -bBurN glibc-2.3.2.orig/sysdeps/mips/Makefile glibc-2.3.2/sysdeps/mips/Makefile
  334.39 ---- glibc-2.3.2.orig/sysdeps/mips/Makefile	2003-06-12 21:07:48.000000000 -0500
  334.40 -+++ glibc-2.3.2/sysdeps/mips/Makefile	2003-06-12 21:10:14.000000000 -0500
  334.41 -@@ -6,3 +6,11 @@
  334.42 - ifeq ($(subdir),setjmp)
  334.43 - sysdep_routines += setjmp_aux
  334.44 - endif
  334.45 -+
  334.46 -+ifeq ($(subdir),csu)
  334.47 -+ifeq (yes,$(build-shared))
  334.48 -+# Compatibility
  334.49 -+sysdep_routines += divdi3
  334.50 -+shared-only-routines += divdi3
  334.51 -+endif
  334.52 -+endif
  334.53 -diff -bBurN glibc-2.3.2.orig/sysdeps/unix/sysv/linux/mips/syscalls.list glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list
  334.54 ---- glibc-2.3.2.orig/sysdeps/unix/sysv/linux/mips/syscalls.list	2003-06-12 21:07:53.000000000 -0500
  334.55 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/mips/syscalls.list	2003-06-12 21:12:30.000000000 -0500
  334.56 -@@ -41,6 +41,7 @@
  334.57 - sys_mknod	xmknod	mknod		i:sii	__syscall_mknod
  334.58 - 
  334.59 - # System calls with wrappers.
  334.60 -+s_readahead     EXTRA   readahead       i:iipi  __syscall_readahead
  334.61 - rt_sigaction	-	rt_sigaction	i:ippi	__syscall_rt_sigaction
  334.62 - rt_sigpending	-	rt_sigpending	i:pi	__syscall_rt_sigpending
  334.63 - rt_sigprocmask	-	rt_sigprocmask	i:ippi	__syscall_rt_sigprocmask
   335.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-override.patch	Tue Aug 14 19:32:22 2007 +0000
   335.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   335.3 @@ -1,38 +0,0 @@
   335.4 -The error
   335.5 -
   335.6 -make[2]: *** [.../gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/share/zoneinfo/Africa/Algiers] Segmentation fault
   335.7 -make[2]: Leaving directory `.../gcc-3.3.3-glibc-2.1.3/glibc-2.1.3/timezone'
   335.8 -make[1]: *** [timezone/subdir_install] Error 2
   335.9 -
  335.10 -is caused by glibc trying to run something it just compiled.
  335.11 -A crude workaround for this was posted at
  335.12 -http://lists.scratchbox.org/pipermail/scratchbox-users/2004-February/000018.html
  335.13 -but the following patch lets you optionally override these programs at
  335.14 -make time by setting Make variables 
  335.15 -  localedef_FOR_BUILD rpcgen_FOR_BUILD zic_FOR_BUILD
  335.16 -and maybe a few others to point to versions of those programs
  335.17 -that can run on the build machine.
  335.18 -Thanks to http://groups.google.com/groups?selm=9012160052.AA23106%40kaos.ksr.com
  335.19 -for pointing out the idiom for inline $(ifdef ...) in GNU Make.
  335.20 -
  335.21 -Dan Kegel 2004-05-17
  335.22 -[rediffed for glibc-2.3.2]
  335.23 -[typos corrected - those are make variables, not environment variables,
  335.24 - and it's $(built-program-override-name), not $(build-program-override-name)]
  335.25 -
  335.26 ---- glibc-2.3.2/Makeconfig.old	2004-05-17 13:53:46.000000000 -0700
  335.27 -+++ glibc-2.3.2/Makeconfig	2004-05-17 14:09:59.000000000 -0700
  335.28 -@@ -534,9 +534,12 @@
  335.29 - run-program-prefix =
  335.30 - endif
  335.31 - # Never use $(run-program-prefix) for the statically-linked %-bp test programs
  335.32 --built-program-cmd = $(patsubst %,$(run-program-prefix),\
  335.33 -+built-program-real = $(patsubst %,$(run-program-prefix),\
  335.34 - 			$(filter-out %-bp,$(built-program-file))) \
  335.35 - 		    $(built-program-file)
  335.36 -+# If user set foo_FOR_BUILD, use that instead of actually running the program we just linked.
  335.37 -+built-program-override-name = $(notdir $(word 2,$^))_FOR_BUILD
  335.38 -+built-program-cmd = $(if $(findstring undefined,$(origin $(built-program-override-name))),$(built-program-real),$($(built-program-override-name)))
  335.39 - 
  335.40 - ifndef LD
  335.41 - LD := ld -X
   336.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-powerpc-as.patch	Tue Aug 14 19:32:22 2007 +0000
   336.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   336.3 @@ -1,58 +0,0 @@
   336.4 -Retrieved from
   336.5 -  http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc32/Makefile.diff?r1=1.4&r2=1.5&cvsroot=glibc
   336.6 -  http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc64/Makefile.diff?r1=1.2&r2=1.3&cvsroot=glibc
   336.7 -Fixes
   336.8 - /tmp/ccEVhqgD.s:279: Error: Unrecognized opcode: `stvx'
   336.9 - /tmp/ccEVhqgD.s:288: Error: Unrecognized opcode: `lvx'
  336.10 - make[2]: *** [powerpc-7450-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/dlfcn/eval.os] Error 1
  336.11 - make[2]: Leaving directory `powerpc-7450-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/dlfcn'
  336.12 - make[1]: *** [dlfcn/others] Error 2
  336.13 - make[1]: Leaving directory `powerpc-7450-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2'
  336.14 - make: *** [all] Error 2
  336.15 -
  336.16 -
  336.17 -Revision 1.5 Wed Oct 22 21:30:02 2003 UTC (7 months, 1 week ago) by roland
  336.18 -Branch: MAIN
  336.19 -CVS Tags: HEAD
  336.20 -Changes since 1.4: +0 -3 lines
  336.21 -Diff to previous 1.4 (colored)
  336.22 -
  336.23 -2003-10-22  Steven Munroe  <sjmunroe@us.ibm.com>
  336.24 -
  336.25 -	* sysdeps/powerpc/powerpc32/Makefile (+cflags, asm-CPPFLAGS): Don't
  336.26 -	append options to these.
  336.27 -	* sysdeps/powerpc/powerpc64/Makefile (+cflags, asm-CPPFLAGS): Likewise.
  336.28 -
  336.29 -===================================================================
  336.30 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc32/Makefile,v
  336.31 -retrieving revision 1.4
  336.32 -retrieving revision 1.5
  336.33 -diff -u -r1.4 -r1.5
  336.34 ---- libc/sysdeps/powerpc/powerpc32/Makefile	2003/01/27 21:02:01	1.4
  336.35 -+++ libc/sysdeps/powerpc/powerpc32/Makefile	2003/10/22 21:30:02	1.5
  336.36 -@@ -1,8 +1,5 @@
  336.37 - # Powerpc32 specific build options.
  336.38 - 
  336.39 --+cflags += -Wa,-mppc -mpowerpc
  336.40 --asm-CPPFLAGS += -Wa,-mppc
  336.41 --
  336.42 - ifeq ($(with-fp),no)
  336.43 - +cflags += -msoft-float
  336.44 - sysdep-LDFLAGS += -msoft-float
  336.45 -===================================================================
  336.46 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/Makefile,v
  336.47 -retrieving revision 1.2
  336.48 -retrieving revision 1.3
  336.49 -diff -u -r1.2 -r1.3
  336.50 ---- libc/sysdeps/powerpc/powerpc64/Makefile	2002/09/27 19:44:16	1.2
  336.51 -+++ libc/sysdeps/powerpc/powerpc64/Makefile	2003/10/22 21:30:03	1.3
  336.52 -@@ -1,9 +1,6 @@
  336.53 - # Powerpc64 specific build options.
  336.54 - # this is ./sysdeps/powerpc/powerpc64/Makefile
  336.55 - 
  336.56 --+cflags += -Wa,-mppc64 -mpowerpc64
  336.57 --asm-CPPFLAGS += -Wa,-mppc64
  336.58 --
  336.59 - # Each TOC entry takes 8 bytes and the TOC holds up to 2^16 bytes,
  336.60 - # or 8192 entries.
  336.61 - # If -fpic is not specified, the latest gcc-3.2.1 now generates
   337.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-pr139-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   337.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   337.3 @@ -1,104 +0,0 @@
   337.4 -2004-04-29  Jakub Jelinek  <jakub@redhat.com>
   337.5 -
   337.6 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c (_Qp_qtoi): Use %f31
   337.7 -	for single precision register, add it to __asm clobbers [BZ #139].
   337.8 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c (_Qp_qtoui): Use %f31
   337.9 -	for single precision register, add it to __asm clobbers.
  337.10 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c (_Qp_qtoux): Use fqtox
  337.11 -	instead of fqtoi in QP_HANDLE_EXCEPTIONS.
  337.12 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c (_Qp_qtox): Likewise.
  337.13 -	Reported by M. H. VanLeeuwen <vanl@megsinet.net>.
  337.14 -
  337.15 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=139
  337.16 -Fixes error
  337.17 -qp_qtoi.s:261: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
  337.18 -plus a couple other things vanl noticed.
  337.19 -
  337.20 -diff -ur orig/qp_qtoi.c new/qp_qtoi.c
  337.21 ---- orig/qp_qtoi.c	Sat May  1 00:40:06 2004
  337.22 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c	Sat May  1 00:39:40 2004
  337.23 -@@ -1,6 +1,6 @@
  337.24 - /* Software floating-point emulation.
  337.25 -    Return (int)(*a)
  337.26 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  337.27 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  337.28 -    This file is part of the GNU C Library.
  337.29 -    Contributed by Richard Henderson (rth@cygnus.com) and
  337.30 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  337.31 -@@ -38,9 +38,9 @@
  337.32 -   	__asm (
  337.33 - "	ldd [%1], %%f52\n"
  337.34 - "	ldd [%1+8], %%f54\n"
  337.35 --"	fqtoi %%f52, %%f60\n"
  337.36 --"	st %%f60, [%0]\n"
  337.37 --"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
  337.38 -+"	fqtoi %%f52, %%f31\n"
  337.39 -+"	st %%f31, [%0]\n"
  337.40 -+"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
  337.41 - 	r = rx);
  337.42 - 
  337.43 -   return r;
  337.44 -diff -ur orig/qp_qtoui.c new/qp_qtoui.c
  337.45 ---- orig/qp_qtoui.c	Sat May  1 00:40:06 2004
  337.46 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c	Sat May  1 00:39:40 2004
  337.47 -@@ -1,6 +1,6 @@
  337.48 - /* Software floating-point emulation.
  337.49 -    Return (unsigned int)(*a)
  337.50 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  337.51 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  337.52 -    This file is part of the GNU C Library.
  337.53 -    Contributed by Richard Henderson (rth@cygnus.com) and
  337.54 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  337.55 -@@ -38,9 +38,9 @@
  337.56 -   	__asm (
  337.57 - "	ldd [%1], %%f52\n"
  337.58 - "	ldd [%1+8], %%f54\n"
  337.59 --"	fqtoi %%f52, %%f60\n"
  337.60 --"	st %%f60, [%0]\n"
  337.61 --"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
  337.62 -+"	fqtoi %%f52, %%f31\n"
  337.63 -+"	st %%f31, [%0]\n"
  337.64 -+"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
  337.65 - 	r = rx);
  337.66 - 
  337.67 -   return r;
  337.68 -diff -ur orig/qp_qtoux.c new/qp_qtoux.c
  337.69 ---- orig/qp_qtoux.c	Sat May  1 00:40:06 2004
  337.70 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c	Sat May  1 00:39:40 2004
  337.71 -@@ -1,6 +1,6 @@
  337.72 - /* Software floating-point emulation.
  337.73 -    Return (unsigned long)(*a)
  337.74 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  337.75 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  337.76 -    This file is part of the GNU C Library.
  337.77 -    Contributed by Richard Henderson (rth@cygnus.com) and
  337.78 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  337.79 -@@ -38,7 +38,7 @@
  337.80 -   	__asm (
  337.81 - "	ldd [%1], %%f52\n"
  337.82 - "	ldd [%1+8], %%f54\n"
  337.83 --"	fqtoi %%f52, %%f60\n"
  337.84 -+"	fqtox %%f52, %%f60\n"
  337.85 - "	std %%f60, [%0]\n"
  337.86 - "	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
  337.87 - 	r = rx);
  337.88 -diff -ur orig/qp_qtox.c new/qp_qtox.c
  337.89 ---- orig/qp_qtox.c	Sat May  1 00:40:06 2004
  337.90 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c	Sat May  1 00:39:40 2004
  337.91 -@@ -1,6 +1,6 @@
  337.92 - /* Software floating-point emulation.
  337.93 -    Return (long)(*a)
  337.94 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  337.95 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  337.96 -    This file is part of the GNU C Library.
  337.97 -    Contributed by Richard Henderson (rth@cygnus.com) and
  337.98 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  337.99 -@@ -38,7 +38,7 @@
 337.100 -   	__asm (
 337.101 - "	ldd [%1], %%f52\n"
 337.102 - "	ldd [%1+8], %%f54\n"
 337.103 --"	fqtoi %%f52, %%f60\n"
 337.104 -+"	fqtox %%f52, %%f60\n"
 337.105 - "	std %%f60, [%0]\n"
 337.106 - "	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
 337.107 - 	r = rx);
   338.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sh4-socket.patch	Tue Aug 14 19:32:22 2007 +0000
   338.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   338.3 @@ -1,39 +0,0 @@
   338.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sh/socket.S.diff?r1=1.5&r2=1.6&cvsroot=glibc
   338.5 -
   338.6 -Ankur Sheth said:
   338.7 -"The problem that I ran into was that multi-threaded apps would crash with a
   338.8 -seg fault when they invoked some of the socket calls (sendto() in my case.
   338.9 -This happened only on the sh4.  Turns out that a certain register (PR) was
  338.10 -not being saved and restored properly before and after invoking the system
  338.11 -call.  This patch fixes it.  It applies cleanly on glibc 2.3.2. 
  338.12 -[Thanks to Kaz for helping us find this.]"
  338.13 -
  338.14 -===================================================================
  338.15 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sh/socket.S,v
  338.16 -retrieving revision 1.5
  338.17 -retrieving revision 1.6
  338.18 -diff -u -r1.5 -r1.6
  338.19 ---- libc/sysdeps/unix/sysv/linux/sh/socket.S	2003/01/05 11:07:44	1.5
  338.20 -+++ libc/sysdeps/unix/sysv/linux/sh/socket.S	2003/07/12 01:25:53	1.6
  338.21 -@@ -94,7 +94,9 @@
  338.22 - #if defined NEED_CANCELLATION && defined CENABLE
  338.23 - .Lsocket_cancel:
  338.24 - 	/* Enable asynchronous cancellation.  */
  338.25 -+	sts.l pr,@-r15
  338.26 - 	CENABLE
  338.27 -+	lds.l @r15+,pr
  338.28 - 
  338.29 - 	/* Do the system call trap.  */
  338.30 - 	mov #+P(SOCKOP_,socket), r4
  338.31 -@@ -102,9 +104,11 @@
  338.32 - 	mov.l .L1,r3
  338.33 - 	trapa #0x12
  338.34 - 
  338.35 -+	sts.l pr,@-r15
  338.36 - 	mov.l r0,@-r15
  338.37 - 	CDISABLE
  338.38 - 	mov.l @r15+,r0
  338.39 -+	lds.l @r15+,pr
  338.40 - 
  338.41 - 	/* Pop args off the stack */
  338.42 - 	P(POPARGS_,NARGS)
   339.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sh4-trapa.patch	Tue Aug 14 19:32:22 2007 +0000
   339.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   339.3 @@ -1,55 +0,0 @@
   339.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/sh/sysdep.h.diff?r1=1.9&r2=1.10&cvsroot=glibc
   339.5 -
   339.6 -Ankur Sheth said:
   339.7 -
   339.8 -"This is actually a workaround for a bug in the sh4.  The actual bug is
   339.9 -documented here :
  339.10 -http://documentation.renesas.com/eng/products/mpumcu/tu/tnsh7456ae.pdf
  339.11 -Basically the cache & TLB should not be accessed for 4 (or was it 5?) cycles
  339.12 -after isssuing a TRAPA instruction.  I didn't run into any specific problem
  339.13 -because of this bug, but it seems useful to have and the patch itself seems
  339.14 -pretty harmless."
  339.15 -
  339.16 -
  339.17 -===================================================================
  339.18 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sh/sysdep.h,v
  339.19 -retrieving revision 1.9
  339.20 -retrieving revision 1.10
  339.21 -diff -u -r1.9 -r1.10
  339.22 ---- libc/sysdeps/unix/sysv/linux/sh/sysdep.h	2003/09/01 04:05:21	1.9
  339.23 -+++ libc/sysdeps/unix/sysv/linux/sh/sysdep.h	2003/10/15 04:36:32	1.10
  339.24 -@@ -183,6 +183,13 @@
  339.25 - # endif	/* _LIBC_REENTRANT */
  339.26 - #endif	/* PIC */
  339.27 - 
  339.28 -+# ifdef NEED_SYSCALL_INST_PAD
  339.29 -+#  define SYSCALL_INST_PAD \
  339.30 -+	or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
  339.31 -+# else
  339.32 -+#  define SYSCALL_INST_PAD
  339.33 -+# endif
  339.34 -+
  339.35 - #define SYSCALL_INST0	trapa #0x10
  339.36 - #define SYSCALL_INST1	trapa #0x11
  339.37 - #define SYSCALL_INST2	trapa #0x12
  339.38 -@@ -195,19 +202,13 @@
  339.39 - #define DO_CALL(syscall_name, args)	\
  339.40 -     mov.l 1f,r3;			\
  339.41 -     SYSCALL_INST##args;			\
  339.42 -+    SYSCALL_INST_PAD;			\
  339.43 -     bra 2f;				\
  339.44 -      nop;				\
  339.45 -     .align 2;				\
  339.46 -  1: .long SYS_ify (syscall_name);	\
  339.47 -  2:
  339.48 - 
  339.49 --# ifdef NEED_SYSCALL_INST_PAD
  339.50 --#  define SYSCALL_INST_PAD \
  339.51 --	or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
  339.52 --# else
  339.53 --#  define SYSCALL_INST_PAD
  339.54 --# endif
  339.55 --
  339.56 - #else /* not __ASSEMBLER__ */
  339.57 - 
  339.58 - #define SYSCALL_INST_STR0	"trapa #0x10\n\t"
   340.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc32-sysdep.patch	Tue Aug 14 19:32:22 2007 +0000
   340.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   340.3 @@ -1,46 +0,0 @@
   340.4 -Fixes the error
   340.5 -
   340.6 -<stdin>: Assembler messages:
   340.7 -<stdin>:2: Error: junk at end of line, first unrecognized character is `1' ...
   340.8 -<stdin>:2: Error: Illegal operands: PC-relative operand can't be a constant
   340.9 -make[4]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-open.os] Error 1
  340.10 -make[4]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/io'
  340.11 -make[3]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-xstat64.os] Error 2
  340.12 -make[3]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
  340.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/rtld-libc.a] Error 2
  340.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
  340.15 -make[1]: *** [elf/subdir_lib] Error 2
  340.16 -
  340.17 -when building glibc-2.3.2 with gcc-3.4.0 for sparc32.
  340.18 -
  340.19 -The .s file left behind by -save-temps contains the big long line
  340.20 -
  340.21 -.text; .global __libc_open; .align 4; __libc_open:; .type __libc_open,@function;; mov 5, %g1; ta 0x10; bcs __syscall_error_handler; nop; .section .gnu.linkonce.t. 1 .get_pic.l7,"ax",@progbits; .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7; .type 1 .get_pic.l7,@function; 1 .get_pic.l7: retl; add %o7, %l7, %l7; .previous; .subsection 3; __syscall_error_handler: save %sp,-96,%sp; sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; call 1 .get_pic.l7; add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; ld [%l7 + errno], %l0; st %i0, [%l0]; jmpl %i7+8, %g0; restore %g0, -1, %o0; .previous;
  340.22 - retl; nop 
  340.23 - 
  340.24 -The error messages appear to refer to the '1 .get_pic.17', e.g.
  340.25 -        .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7;
  340.26 -which seems to come from
  340.27 -glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
  340.28 -where it appears originally as
  340.29 -        .globl __sparc.get_pic.l7;                                      \
  340.30 -        .hidden __sparc.get_pic.l7;                                     \
  340.31 -
  340.32 -Note that __sparc is a predefined symbol on Solaris and some other environments;
  340.33 -it's not surprising to see it predefined on Linux, too.
  340.34 -
  340.35 -
  340.36 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h.old	2004-05-15 10:23:11.000000000 -0700
  340.37 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h	2004-05-15 10:24:12.000000000 -0700
  340.38 -@@ -39,6 +39,11 @@
  340.39 - #undef END
  340.40 - #undef LOC
  340.41 - 
  340.42 -+/* gcc-3.4.0 seems to expand __sparc as a predefined preprocessor symbol, which we don't want here */
  340.43 -+#ifdef __sparc
  340.44 -+#undef __sparc
  340.45 -+#endif
  340.46 -+
  340.47 - #define ENTRY(name) \
  340.48 - 	.global C_SYMBOL_NAME(name); \
  340.49 - 	.align 4;\
   341.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc64-dl-machine.patch	Tue Aug 14 19:32:22 2007 +0000
   341.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   341.3 @@ -1,29 +0,0 @@
   341.4 -See http://gcc.gnu.org/PR15345
   341.5 -
   341.6 -Quick kludge by H.J.Lu
   341.7 -Works around gcc-3.4.0 error which shows up when building glibc-2.3.2 for sparc64:
   341.8 -
   341.9 -.../sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.a(dl-reloc.o)(.text+0x4b4): In function `elf_machine_load_address.3':
  341.10 -: undefined reference to `_DYNAMIC'
  341.11 -collect2: ld returned 1 exit status
  341.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/sln] Error 1
  341.13 -
  341.14 -
  341.15 ---- glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h.orig	Sat May  8 20:54:26 2004
  341.16 -+++ glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h	Sat May  8 17:18:04 2004
  341.17 -@@ -65,6 +65,7 @@
  341.18 - }
  341.19 - 
  341.20 - /* Return the run-time load address of the shared object.  */
  341.21 -+#ifdef IS_IN_rtld
  341.22 - static inline Elf64_Addr
  341.23 - elf_machine_load_address (void)
  341.24 - {
  341.25 -@@ -84,6 +85,7 @@
  341.26 -      pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12  */
  341.27 -   return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
  341.28 - }
  341.29 -+#endif
  341.30 - 
  341.31 - /* We have 4 cases to handle.  And we code different code sequences
  341.32 -    for each one.  I love V9 code models...  */
   342.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc64-pause.patch	Tue Aug 14 19:32:22 2007 +0000
   342.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   342.3 @@ -1,22 +0,0 @@
   342.4 -From: "M.H.VanLeeuwen" 
   342.5 -Subject: crosstool, sparc64, linux 2.6.4, gcc 3.3.3, glibc 2.3.2 success
   342.6 -Date: Mon, 15 Mar 2004 00:23:04 -0600
   342.7 -To: crossgcc@sources.redhat.com
   342.8 -Message-ID: <40554BC8.749A5EC3@megsinet.net>
   342.9 -...
  342.10 -
  342.11 -backported from GLIBC CVS
  342.12 -
  342.13 -Fixes:
  342.14 -../sysdeps/unix/sysv/linux/sparc/sparc64/pause.c:1:39: sysdeps/unix/common/pause.c: No such file or directory
  342.15 -make[2]: *** [/cross/build/sparc64-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/build-glibc/posix/pause.o] Error 1
  342.16 -make[2]: Leaving directory `/cross/build/sparc64-unknown-linux-gnu/gcc-3.3.2-glibc-2.3.2/glibc-2.3.2/posix'
  342.17 -make[1]: *** [posix/subdir_lib] Error 2
  342.18 -make: *** [all] Error 2
  342.19 -
  342.20 -=========================================================================================================================
  342.21 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c.orig	Sun Mar  7 08:51:20 2004
  342.22 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/pause.c	Sun Mar  7 08:51:29 2004
  342.23 -@@ -1 +1 @@
  342.24 --#include <sysdeps/unix/common/pause.c>
  342.25 -+#include <sysdeps/posix/pause.c>
   343.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-sparc64-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   343.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   343.3 @@ -1,36 +0,0 @@
   343.4 -Fix for this error:
   343.5 -
   343.6 -/cross/crosstool-0.27/build/sparc64-unknown-linux-gnu/gcc-3.3.3-glibc-2.3.2/build-glibc/libc_pic.os(.text+0xc4d28): In function `posix_fallocate64':
   343.7 -: undefined reference to `__GI___pwrite64'
   343.8 -collect2: ld returned 1 exit status
   343.9 -make[1]: *** [/cross/crosstool-0.27/build/sparc64-unknown-linux-gnu/gcc-3.3.3-glibc-2.3.2/build-glibc/libc.so] Error 1
  343.10 -
  343.11 -extracted from GLIBC CVS by M.H.VanLeeuwen
  343.12 -
  343.13 -cf. 
  343.14 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
  343.15 -
  343.16 -Originally thought we needed this hunk, too:
  343.17 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
  343.18 -but it seems the sysdep.h change is sufficient, and works better 
  343.19 -when compiling against linux-2.4.
  343.20 -
  343.21 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h.orig	Sat Mar 13 02:01:51 2004
  343.22 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h	Sat Mar 13 02:02:20 2004
  343.23 -@@ -29,6 +29,16 @@
  343.24 - #undef SYS_ify
  343.25 - #define SYS_ify(syscall_name) __NR_##syscall_name
  343.26 - 
  343.27 -+/* This is a kludge to make syscalls.list find these under the names
  343.28 -+   pread and pwrite, since some kernel headers define those names
  343.29 -+   and some define the *64 names for the same system calls.  */
  343.30 -+#if !defined __NR_pread && defined __NR_pread64
  343.31 -+# define __NR_pread __NR_pread64
  343.32 -+#endif
  343.33 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  343.34 -+# define __NR_pwrite __NR_pwrite64
  343.35 -+#endif
  343.36 -+
  343.37 - #ifdef __ASSEMBLER__
  343.38 - 
  343.39 - #define LOADSYSCALL(x) mov __NR_##x, %g1
   344.1 --- a/patches/glibc/2.3.2/glibc-2.3.2-without-fp.patch	Tue Aug 14 19:32:22 2007 +0000
   344.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   344.3 @@ -1,89 +0,0 @@
   344.4 -Sender: libc-alpha-owner@sources.redhat.com
   344.5 -Date: Tue, 29 Jul 2003 17:49:47 -0400
   344.6 -From: Daniel Jacobowitz <drow@mvista.com>
   344.7 -To: GNU C Library <libc-alpha@sources.redhat.com>
   344.8 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
   344.9 -Message-ID: <20030729214947.GA29932@nevyn.them.org>
  344.10 -
  344.11 -On Tue, Jul 29, 2003 at 02:53:33PM -0700, Dan Kegel wrote:
  344.12 -> On ppc405, I'm getting the following when linking glibc's libm:
  344.13 -> /gcc-3.3-glibc-2.3.2/build-glibc/math/libm_pic.a(fclrexcpt.os)(.text+0x1a): 
  344.14 -> In function `feclearexcept@GLIBC_2.1':
  344.15 -> : undefined reference to `__sim_exceptions'
  344.16 -> 
  344.17 -> That symbol seems to be present in libc.so.  nm shows
  344.18 -
  344.19 ---without-fp doesn't work.  Try this.  Make up a changelog entry if it
  344.20 -works.
  344.21 -
  344.22 -Date: Tue, 29 Jul 2003 14:56:50 -0700
  344.23 -Message-Id: <200307292156.h6TLuol24356@magilla.sf.frob.com>
  344.24 -From: Roland McGrath <roland@redhat.com>
  344.25 -To: Daniel Jacobowitz <drow@mvista.com>
  344.26 -Cc: GNU C Library <libc-alpha@sources.redhat.com>
  344.27 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
  344.28 -In-Reply-To: Daniel Jacobowitz's message of  Tuesday, 29 July 2003 17:49:47 -0400 <20030729214947.GA29932@nevyn.them.org>
  344.29 -
  344.30 -> +int __sim_exceptions __attribute__ ((section(".bss")));
  344.31 -
  344.32 -Use __attribute__ ((nocommon)) instead (and please watch the standard
  344.33 -whitespace conventions, i.e. ``section ('').
  344.34 -
  344.35 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c
  344.36 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c	2002-10-19 16:06:29.000000000 -0400
  344.37 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c	2003-05-14 15:10:42.000000000 -0400
  344.38 -@@ -24,11 +24,14 @@
  344.39 - 
  344.40 - /* Global to store sticky exceptions.  */
  344.41 --int __sim_exceptions;
  344.42 -+int __sim_exceptions __attribute__ ((nocommon));
  344.43 -+libc_hidden_data_def (__sim_exceptions);
  344.44 - 
  344.45 - /* By default, no exceptions should trap.  */
  344.46 - int __sim_disabled_exceptions = 0xffffffff;
  344.47 -+libc_hidden_data_def (__sim_disabled_exceptions);
  344.48 - 
  344.49 --int __sim_round_mode;
  344.50 -+int __sim_round_mode __attribute__ ((nocommon));
  344.51 -+libc_hidden_data_def (__sim_round_mode);
  344.52 - 
  344.53 - void
  344.54 - __simulate_exceptions (int x)
  344.55 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h
  344.56 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h	2002-10-19 16:06:29.000000000 -0400
  344.57 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h	2003-05-14 15:09:53.000000000 -0400
  344.58 -@@ -27,7 +27,11 @@ typedef union
  344.59 - } fenv_union_t;
  344.60 - 
  344.61 - 
  344.62 --extern int __sim_exceptions attribute_hidden;
  344.63 --extern int __sim_disabled_exceptions attribute_hidden;
  344.64 --extern int __sim_round_mode attribute_hidden;
  344.65 -+extern int __sim_exceptions;
  344.66 -+libc_hidden_proto (__sim_exceptions);
  344.67 -+extern int __sim_disabled_exceptions;
  344.68 -+libc_hidden_proto (__sim_disabled_exceptions);
  344.69 -+extern int __sim_round_mode;
  344.70 -+libc_hidden_proto (__sim_round_mode);
  344.71 -+
  344.72 - extern void __simulate_exceptions (int x) attribute_hidden;
  344.73 -diff -urp glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h
  344.74 ---- glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h	2002-10-17 18:36:14.000000000 -0400
  344.75 -+++ glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h	2003-05-14 16:48:13.000000000 -0400
  344.76 -@@ -52,7 +52,11 @@
  344.77 - #define FP_HANDLE_EXCEPTIONS  __simulate_exceptions (_fex)
  344.78 - #define FP_ROUNDMODE          __sim_round_mode
  344.79 - 
  344.80 --extern int __sim_exceptions attribute_hidden;
  344.81 --extern int __sim_disabled_exceptions attribute_hidden;
  344.82 --extern int __sim_round_mode attribute_hidden;
  344.83 -+extern int __sim_exceptions;
  344.84 -+libc_hidden_proto (__sim_exceptions);
  344.85 -+extern int __sim_disabled_exceptions;
  344.86 -+libc_hidden_proto (__sim_disabled_exceptions);
  344.87 -+extern int __sim_round_mode;
  344.88 -+libc_hidden_proto (__sim_round_mode);
  344.89 -+
  344.90 - extern void __simulate_exceptions (int x) attribute_hidden;
  344.91 -
  344.92 -
   345.1 --- a/patches/glibc/2.3.2/glibc-2.3.3-allow-gcc-4.0-configure.patch	Tue Aug 14 19:32:22 2007 +0000
   345.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   345.3 @@ -1,30 +0,0 @@
   345.4 -Fixes following problem building glibc-2.3.3 with gcc-4.0:
   345.5 -
   345.6 -checking version of i686-unknown-linux-gnu-gcc ... 4.0.0, bad
   345.7 -checking for gnumake... no
   345.8 -checking for gmake... gmake
   345.9 -checking version of gmake... 3.79.1, ok
  345.10 -checking for gnumsgfmt... no
  345.11 -checking for gmsgfmt... no
  345.12 -checking for msgfmt... msgfmt
  345.13 -checking version of msgfmt... 0.11.4, ok
  345.14 -checking for makeinfo... makeinfo
  345.15 -checking version of makeinfo... 4.3, ok
  345.16 -checking for sed... sed
  345.17 -checking version of sed... 4.0.5, ok
  345.18 -checking for autoconf... autoconf
  345.19 -checking whether autoconf works... yes
  345.20 -configure: error:
  345.21 -*** These critical programs are missing or too old: gcc
  345.22 -
  345.23 ---- glibc-2.3.3/configure.old	Mon Mar 14 12:01:10 2005
  345.24 -+++ glibc-2.3.3/configure	Mon Mar 14 12:02:03 2005
  345.25 -@@ -3899,7 +3899,7 @@
  345.26 -   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
  345.27 -   case $ac_prog_version in
  345.28 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  345.29 --    3.[2-9]*)
  345.30 -+    3.[2-9]*|4.[01]*)
  345.31 -        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  345.32 -     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  345.33 - 
   346.1 --- a/patches/glibc/2.3.2/glibc-2.3.3-allow-gcc-4.0-powerpc-procfs.patch	Tue Aug 14 19:32:22 2007 +0000
   346.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   346.3 @@ -1,65 +0,0 @@
   346.4 -(Combined with earlier fix old/glibc-2.3.2-powerpc-procfs.patch
   346.5 -from http://sources.redhat.com/ml/libc-alpha/2003-12/msg00101.html)
   346.6 -
   346.7 -This fix discussed here:
   346.8 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
   346.9 -
  346.10 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
  346.11 -Branch: MAIN
  346.12 -CVS Tags: fedora-glibc-20050303T1335, HEAD
  346.13 -Changes since 1.11: +3 -8 lines
  346.14 -Diff to previous 1.11 (colored)
  346.15 -
  346.16 -2005-02-21  Alan Modra <amodra@bigpond.net.au>
  346.17 -
  346.18 -	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
  346.19 -	use __uint128_t.
  346.20 -
  346.21 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
  346.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
  346.23 -
  346.24 -Fixes
  346.25 -
  346.26 -In file included from ../linuxthreads_db/proc_service.h:20,
  346.27 -                 from ../linuxthreads_db/thread_dbP.h:7,
  346.28 -                 from ../linuxthreads/descr.h:44,
  346.29 -                 from ../linuxthreads/internals.h:30,
  346.30 -                 from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
  346.31 -                 from ../sysdeps/generic/ldsodefs.h:38,
  346.32 -                 from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
  346.33 -                 from <stdin>:2:
  346.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
  346.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
  346.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
  346.37 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
  346.38 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
  346.39 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
  346.40 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
  346.41 -
  346.42 -Rediffed against glibc-2.3.3
  346.43 -
  346.44 ---- glibc-2.3.3.orig/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	Sun Jan 12 00:24:23 2003
  346.45 -+++ glibc-2.3.3.new/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	Fri Mar 18 11:20:58 2005
  346.46 -@@ -45,18 +45,13 @@
  346.47 - 
  346.48 - typedef double elf_fpreg_t;
  346.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  346.50 --#endif
  346.51 --
  346.52 --/* gcc 3.1 and newer support __uint128_t.  */
  346.53 --#if !__GNUC_PREREQ(3,1)
  346.54 --typedef struct {
  346.55 --  unsigned long u[4];
  346.56 --} __attribute((aligned(16))) __uint128_t;
  346.57 --#endif
  346.58 - 
  346.59 - /* Altivec registers */
  346.60 --typedef __uint128_t elf_vrreg_t;
  346.61 -+typedef struct {
  346.62 -+  unsigned int u[4];
  346.63 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
  346.64 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
  346.65 -+#endif
  346.66 - 
  346.67 - struct elf_siginfo
  346.68 -   {
   347.1 --- a/patches/glibc/2.3.2/glibc-configure-apple-as.patch	Tue Aug 14 19:32:22 2007 +0000
   347.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   347.3 @@ -1,23 +0,0 @@
   347.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
   347.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
   347.6 -
   347.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
   347.8 -where the assembler but doesn't understand the --version flag.
   347.9 -
  347.10 -Fixes the symptom
  347.11 -checking whether ld is GNU ld... no
  347.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
  347.13 -checking version of /usr/libexec/gcc/darwin/ppc/as... 
  347.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
  347.15 -
  347.16 ---- glibc-2.3.2/configure~	Wed Feb 26 09:20:48 2003
  347.17 -+++ glibc-2.3.2/configure	Fri Feb 27 13:12:53 2004
  347.18 -@@ -3789,7 +3789,7 @@
  347.19 -   # Found it, now check the version.
  347.20 -   echo "$as_me:$LINENO: checking version of $AS" >&5
  347.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
  347.22 --  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  347.23 -+  ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  347.24 -   case $ac_prog_version in
  347.25 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  347.26 -     2.1[3-9]*)
   348.1 --- a/patches/glibc/2.3.2/glibc-drow-sh.patch	Tue Aug 14 19:32:22 2007 +0000
   348.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   348.3 @@ -1,77 +0,0 @@
   348.4 -[pread changes deleted, since those seem to be specific to glibc-2.3.2]
   348.5 -
   348.6 -Date: Thu, 19 Jun 2003 20:02:07 -0400
   348.7 -From: Daniel Jacobowitz <drow@false.org>
   348.8 -Subject: [linux-sh:02808] Patch needed for CVS glibc on SH
   348.9 -To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
  348.10 -Message-Id: <20030620000207.GA19907@nevyn.them.org>
  348.11 -X-ML-Name: linux-sh
  348.12 -X-Mail-Count: 02808
  348.13 -X-MLServer: fml [fml 4.0.1]; post only (only members can post)
  348.14 -X-ML-Info: If you have a question, send e-mail with the body
  348.15 -	"help" (without quotes) to the address linux-sh-ctl@m17n.org;
  348.16 -	help=<mailto:linux-sh-ctl@m17n.org?body=help>
  348.17 -Mail-Followup-To: linux-sh@m17n.org, libc-alpha@sources.redhat.com
  348.18 -Content-Disposition: inline
  348.19 -User-Agent: Mutt/1.5.1i
  348.20 -Mime-Version: 1.0
  348.21 -Content-Type: text/plain; charset=us-ascii
  348.22 -Precedence: bulk
  348.23 -Lines: 74
  348.24 -List-Software: fml [fml 4.0.1]
  348.25 -List-Post: <mailto:linux-sh@m17n.org>
  348.26 -List-Owner: <mailto:linux-sh-admin@m17n.org>
  348.27 -List-Help: <mailto:linux-sh-ctl@m17n.org?body=help>
  348.28 -List-Unsubscribe: <mailto:linux-sh-ctl@m17n.org?body=unsubscribe>
  348.29 -List-Id: linux-sh.m17n.org
  348.30 -
  348.31 -I believe this flushes my current patches to make glibc work on SH.  Issues:
  348.32 - - MIPS pread functions have some wackiness in them for the MIPS calling
  348.33 -   conventions, which align long longs to even register pairs; it appears
  348.34 -   that SH does not do this.  This fixes pread64/pwrite64.
  348.35 - - st_ino is _NOT_ 64-bit in the latest SH kernel trees, or at least it
  348.36 -   wasn't when I checked in April.  --enable-kernel=2.4.x breaks terribly
  348.37 -   without this patch; the errors are along the lines of "version GLIBC_2.3
  348.38 -   not found", because that's the first consequence of a messed up inode
  348.39 -   field - ld.so compares by inodes at some point.
  348.40 -
  348.41 --- 
  348.42 -Daniel Jacobowitz
  348.43 -MontaVista Software                         Debian GNU/Linux Developer
  348.44 -
  348.45 -2003-06-19  Daniel Jacobowitz  <drow@mvista.com>
  348.46 -
  348.47 -	* sysdeps/unix/sysv/linux/kernel-features.h: Update kernel features
  348.48 -	for the SH architecture.
  348.49 -	* sysdeps/unix/sysv/linux/sh/pread.c: Use generic Linux version
  348.50 -	instead of the MIPS version.
  348.51 -	* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
  348.52 -	* sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
  348.53 -	* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
  348.54 -
  348.55 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h.org	2003-04-21 10:57:55.000000000 -0400
  348.56 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/kernel-features.h	2003-04-21 11:16:47.000000000 -0400
  348.57 -@@ -151,11 +151,20 @@
  348.58 - 
  348.59 - /* The changed st_ino field appeared in 2.4.0-test6.  But we cannot
  348.60 -    distinguish this version from other 2.4.0 releases.  Therefore play
  348.61 --   save and assume it available is for 2.4.1 and up.  */
  348.62 --#if __LINUX_KERNEL_VERSION >= 132097
  348.63 -+   save and assume it available is for 2.4.1 and up.  However, SH is lame,
  348.64 -+   and still does not have a 64-bit inode field.  */
  348.65 -+#if __LINUX_KERNEL_VERSION >= 132097 \
  348.66 -+    && !defined __sh__
  348.67 - # define __ASSUME_ST_INO_64_BIT		1
  348.68 - #endif
  348.69 - 
  348.70 -+/* SH kernels got stat64, mmap2, and truncate64 during 2.4.0-test.  */
  348.71 -+#if __LINUX_KERNEL_VERSION >= 132096 && defined __sh__
  348.72 -+# define __ASSUME_TRUNCATE64_SYSCALL	1
  348.73 -+# define __ASSUME_MMAP2_SYSCALL		1
  348.74 -+# define __ASSUME_STAT64_SYSCALL	1
  348.75 -+#endif
  348.76 -+
  348.77 - /* To support locking of large files a new fcntl() syscall was introduced
  348.78 -    in 2.4.0-test7.  We test for 2.4.1 for the earliest version we know
  348.79 -    the syscall is available.  */
  348.80 -
   349.1 --- a/patches/glibc/2.3.2/glibc-fp-byteorder.patch	Tue Aug 14 19:32:22 2007 +0000
   349.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   349.3 @@ -1,203 +0,0 @@
   349.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
   349.5 -Author: addsub@eyou.com
   349.6 -Target: ARM
   349.7 -
   349.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
   349.9 -and makes printf("%f", 1.0) work.
  349.10 -
  349.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
  349.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
  349.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
  349.14 - It's definitely needed for hardfloat.  So I'd think it's needed for
  349.15 - big-endian systems in any case, and for VFP on little-endian systems
  349.16 - too.  Someone would have to verify that though.
  349.17 -
  349.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
  349.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
  349.20 - for this version.  glibc-20040830 out-of-the-box still contains the
  349.21 - following wrong assumptions:
  349.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
  349.23 -   not on vfp systems)
  349.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
  349.25 -   are not on big endian systems, neither on vfp systems)
  349.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
  349.27 -   (which they are not on big endian systems)
  349.28 - [This patch] seems the right solution for all of these issues.
  349.29 -
  349.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
  349.31 - It's even needed for glibc CVS, AFAICS.
  349.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
  349.33 - (currently at version 1.4) is only needed for proper VFP operation.
  349.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
  349.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
  349.36 - for proper operation of *any* FP model on big endian ARM.
  349.37 -
  349.38 -See also discussion in followups to
  349.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
  349.40 -
  349.41 -Message-ID: <276985760.37584@eyou.com>
  349.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
  349.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
  349.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
  349.45 -Date: 17 Feb 2004 10:42:38 +0800
  349.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
  349.47 -From: "add" <addsub@eyou.com>
  349.48 -To: dank@kegel.com
  349.49 -Reply-To: "add" <addsub@eyou.com>
  349.50 -Subject: Re:&nbsp;&nbsp;&nbsp;problem&nbsp;while&nbsp;building&nbsp;arm&nbsp;vfp&nbsp;softfloat&nbsp;gcc&nbsp;`
  349.51 -
  349.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
  349.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
  349.54 -
  349.55 -
  349.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
  349.57 ---- glibc.old/sysdeps/arm/bits/endian.h	1999-04-12 11:59:13.000000000 -0400
  349.58 -+++ glibc.new/sysdeps/arm/bits/endian.h	2004-02-12 09:15:13.000000000 -0500
  349.59 -@@ -9,4 +9,9 @@
  349.60 - #else
  349.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
  349.62 - #endif
  349.63 -+
  349.64 -+#ifdef __VFP_FP__
  349.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
  349.66 -+#else
  349.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
  349.68 -+#endif
  349.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
  349.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h	2001-07-07 15:21:19.000000000 -0400
  349.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h	2004-02-12 09:15:13.000000000 -0500
  349.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
  349.73 - #define BITS_PER_SHORTINT 16
  349.74 - #define BITS_PER_CHAR 8
  349.75 - 
  349.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
  349.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
  349.78 -+#if defined(__ARMEB__)
  349.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  349.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
  349.81 -+#elif defined(__VFP_FP__)
  349.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  349.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  349.84 -+#else
  349.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  349.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
  349.87 -+#endif
  349.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
  349.89 ---- glibc.old/sysdeps/arm/ieee754.h	2001-07-07 15:21:19.000000000 -0400
  349.90 -+++ glibc.new/sysdeps/arm/ieee754.h	1969-12-31 19:00:00.000000000 -0500
  349.91 -@@ -1,115 +0,0 @@
  349.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
  349.93 --   This file is part of the GNU C Library.
  349.94 --
  349.95 --   The GNU C Library is free software; you can redistribute it and/or
  349.96 --   modify it under the terms of the GNU Lesser General Public
  349.97 --   License as published by the Free Software Foundation; either
  349.98 --   version 2.1 of the License, or (at your option) any later version.
  349.99 --
 349.100 --   The GNU C Library is distributed in the hope that it will be useful,
 349.101 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 349.102 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 349.103 --   Lesser General Public License for more details.
 349.104 --
 349.105 --   You should have received a copy of the GNU Lesser General Public
 349.106 --   License along with the GNU C Library; if not, write to the Free
 349.107 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 349.108 --   02111-1307 USA.  */
 349.109 --
 349.110 --#ifndef _IEEE754_H
 349.111 --
 349.112 --#define _IEEE754_H 1
 349.113 --#include <features.h>
 349.114 --
 349.115 --#include <endian.h>
 349.116 --
 349.117 --__BEGIN_DECLS
 349.118 --
 349.119 --union ieee754_float
 349.120 --  {
 349.121 --    float f;
 349.122 --
 349.123 --    /* This is the IEEE 754 single-precision format.  */
 349.124 --    struct
 349.125 --      {
 349.126 --	unsigned int mantissa:23;
 349.127 --	unsigned int exponent:8;
 349.128 --	unsigned int negative:1;
 349.129 --      } ieee;
 349.130 --
 349.131 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 349.132 --    struct
 349.133 --      {
 349.134 --	unsigned int mantissa:22;
 349.135 --	unsigned int quiet_nan:1;
 349.136 --	unsigned int exponent:8;
 349.137 --	unsigned int negative:1;
 349.138 --      } ieee_nan;
 349.139 --  };
 349.140 --
 349.141 --#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
 349.142 --
 349.143 --
 349.144 --union ieee754_double
 349.145 --  {
 349.146 --    double d;
 349.147 --
 349.148 --    /* This is the IEEE 754 double-precision format.  */
 349.149 --    struct
 349.150 --      {
 349.151 --	unsigned int mantissa0:20;
 349.152 --	unsigned int exponent:11;
 349.153 --	unsigned int negative:1;
 349.154 --	unsigned int mantissa1:32;
 349.155 --      } ieee;
 349.156 --
 349.157 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 349.158 --    struct
 349.159 --      {
 349.160 --	unsigned int mantissa0:19;
 349.161 --	unsigned int quiet_nan:1;
 349.162 --	unsigned int exponent:11;
 349.163 --	unsigned int negative:1;
 349.164 --	unsigned int mantissa1:32;
 349.165 --      } ieee_nan;
 349.166 --  };
 349.167 --
 349.168 --#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
 349.169 --
 349.170 --
 349.171 --/* The following two structures are correct for `new' floating point systems but
 349.172 --   wrong for the old FPPC.  The only solution seems to be to avoid their use on
 349.173 --   old hardware.  */
 349.174 --
 349.175 --union ieee854_long_double
 349.176 --  {
 349.177 --    long double d;
 349.178 --
 349.179 --    /* This is the IEEE 854 double-extended-precision format.  */
 349.180 --    struct
 349.181 --      {
 349.182 --	unsigned int exponent:15;
 349.183 --	unsigned int empty:16;
 349.184 --	unsigned int negative:1;
 349.185 --	unsigned int mantissa1:32;
 349.186 --	unsigned int mantissa0:32;
 349.187 --      } ieee;
 349.188 --
 349.189 --    /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
 349.190 --    struct
 349.191 --      {
 349.192 --	unsigned int exponent:15;
 349.193 --	unsigned int empty:16;
 349.194 --	unsigned int negative:1;
 349.195 --	unsigned int mantissa1:32;
 349.196 --	unsigned int mantissa0:30;
 349.197 --	unsigned int quiet_nan:1;
 349.198 --	unsigned int one:1;
 349.199 --      } ieee_nan;
 349.200 --  };
 349.201 --
 349.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
 349.203 --
 349.204 --__END_DECLS
 349.205 --
 349.206 --#endif /* ieee754.h */
   350.1 --- a/patches/glibc/2.3.2/glibc-test-lowram.patch	Tue Aug 14 19:32:22 2007 +0000
   350.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   350.3 @@ -1,14 +0,0 @@
   350.4 ---- glibc-2.2.5/malloc/tst-calloc.c.old	Sun Aug  3 16:17:58 2003
   350.5 -+++ glibc-2.2.5/malloc/tst-calloc.c	Sun Aug  3 16:20:01 2003
   350.6 -@@ -24,9 +24,8 @@
   350.7 - #include <stdio.h>
   350.8 - 
   350.9 - 
  350.10 --/* Number of samples per size.  */
  350.11 --#define N 50000
  350.12 --
  350.13 -+/* Number of samples per size.  This is also the maximum memory consumption in kilobytes. */
  350.14 -+#define N 8000
  350.15 - 
  350.16 - static void
  350.17 - fixed_test (int size)
   351.1 --- a/patches/glibc/2.3.2/nobits.patch	Tue Aug 14 19:32:22 2007 +0000
   351.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   351.3 @@ -1,27 +0,0 @@
   351.4 -Fix build on architectures (like arm) where gas accepts @ as comment.
   351.5 -
   351.6 -First reported here:
   351.7 -http://sources.redhat.com/ml/libc-alpha/2003-04/msg00265.html
   351.8 -
   351.9 -In use here:
  351.10 -http://www.netwinder.org/autobuild/nw-9/patches/glibc-2.3.2-nobits.patch
  351.11 -
  351.12 -Committed to cvs:
  351.13 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.52&r2=1.53&cvsroot=glibc
  351.14 -
  351.15 -===================================================================
  351.16 -RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
  351.17 -retrieving revision 1.52
  351.18 -retrieving revision 1.53
  351.19 -diff -u -r1.52 -r1.53
  351.20 ---- libc/include/libc-symbols.h	2003/04/30 04:18:03	1.52
  351.21 -+++ libc/include/libc-symbols.h	2003/05/02 02:20:48	1.53
  351.22 -@@ -247,7 +247,7 @@
  351.23 -     __attribute__ ((unused, section (".gnu.warning." #symbol __sec_comment))) \
  351.24 -     = msg;
  351.25 - #  define libc_freeres_ptr(decl) \
  351.26 --  __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", @nobits") \
  351.27 -+  __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \
  351.28 -   decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment)))
  351.29 - #  define __libc_freeres_fn_section \
  351.30 -   __attribute__ ((section ("__libc_freeres_fn")))
   352.1 --- a/patches/glibc/2.3.2/old/glibc-2.3.2-powerpc-procfs.patch	Tue Aug 14 19:32:22 2007 +0000
   352.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   352.3 @@ -1,28 +0,0 @@
   352.4 -See http://sources.redhat.com/ml/libc-alpha/2003-12/msg00101.html
   352.5 -Fixes
   352.6 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: conflicting types  for 'elf_vrreg_t' 
   352.7 -when building glibc-2.3.2 for powerpc64 and linux-2.6.x
   352.8 -
   352.9 -===================================================================
  352.10 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h,v
  352.11 -retrieving revision 1.10
  352.12 -retrieving revision 1.11
  352.13 -diff -u -r1.10 -r1.11
  352.14 ---- libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2003/01/12 08:24:23	1.10
  352.15 -+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2003/12/17 23:09:34	1.11
  352.16 -@@ -45,7 +45,6 @@
  352.17 - 
  352.18 - typedef double elf_fpreg_t;
  352.19 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  352.20 --#endif
  352.21 - 
  352.22 - /* gcc 3.1 and newer support __uint128_t.  */
  352.23 - #if !__GNUC_PREREQ(3,1)
  352.24 -@@ -57,6 +56,7 @@
  352.25 - /* Altivec registers */
  352.26 - typedef __uint128_t elf_vrreg_t;
  352.27 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
  352.28 -+#endif
  352.29 - 
  352.30 - struct elf_siginfo
  352.31 -   {
   353.1 --- a/patches/glibc/2.3.2/sscanf.patch	Tue Aug 14 19:32:22 2007 +0000
   353.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   353.3 @@ -1,80 +0,0 @@
   353.4 -2003-03-05  Roland McGrath  <roland@redhat.com>
   353.5 -
   353.6 -	* stdio-common/sscanf.c: Use prototype defn with ... syntax.
   353.7 -	* libio/swscanf.c: Likewise.
   353.8 -	* libio/swprintf.c: Likewise.
   353.9 -
  353.10 -===================================================================
  353.11 -RCS file: /cvs/glibc/libc/stdio-common/sscanf.c,v
  353.12 -retrieving revision 1.8
  353.13 -retrieving revision 1.9
  353.14 -diff -u -r1.8 -r1.9
  353.15 ---- libc/stdio-common/sscanf.c	2002/08/10 09:24:42	1.8
  353.16 -+++ libc/stdio-common/sscanf.c	2003/03/05 19:58:03	1.9
  353.17 -@@ -1,4 +1,4 @@
  353.18 --/* Copyright (C) 1991,95,96,98,2002 Free Software Foundation, Inc.
  353.19 -+/* Copyright (C) 1991,1995,1996,1998,2002,2003 Free Software Foundation, Inc.
  353.20 -    This file is part of the GNU C Library.
  353.21 - 
  353.22 -    The GNU C Library is free software; you can redistribute it and/or
  353.23 -@@ -27,9 +27,7 @@
  353.24 - /* Read formatted input from S, according to the format string FORMAT.  */
  353.25 - /* VARARGS2 */
  353.26 - int
  353.27 --sscanf (s, format)
  353.28 --     const char *s;
  353.29 --     const char *format;
  353.30 -+sscanf (const char *s, const char *format, ...)
  353.31 - {
  353.32 -   va_list arg;
  353.33 -   int done;
  353.34 -===================================================================
  353.35 -RCS file: /cvs/glibc/libc/libio/swprintf.c,v
  353.36 -retrieving revision 1.3
  353.37 -retrieving revision 1.4
  353.38 -diff -u -r1.3 -r1.4
  353.39 ---- libc/libio/swprintf.c	2001/07/06 04:55:32	1.3
  353.40 -+++ libc/libio/swprintf.c	2003/03/05 19:58:03	1.4
  353.41 -@@ -1,4 +1,5 @@
  353.42 --/* Copyright (C) 1991,1995,1997,1998,1999,2000 Free Software Foundation, Inc.
  353.43 -+/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
  353.44 -+	Free Software Foundation, Inc.
  353.45 -    This file is part of the GNU C Library.
  353.46 - 
  353.47 -    The GNU C Library is free software; you can redistribute it and/or
  353.48 -@@ -22,10 +23,7 @@
  353.49 - /* Write formatted output into S, according to the format string FORMAT.  */
  353.50 - /* VARARGS3 */
  353.51 - int
  353.52 --swprintf (s, n, format)
  353.53 --     wchar_t *s;
  353.54 --     size_t n;
  353.55 --     const wchar_t *format;
  353.56 -+swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
  353.57 - {
  353.58 -   va_list arg;
  353.59 -   int done;
  353.60 -===================================================================
  353.61 -RCS file: /cvs/glibc/libc/libio/swscanf.c,v
  353.62 -retrieving revision 1.2
  353.63 -retrieving revision 1.3
  353.64 -diff -u -r1.2 -r1.3
  353.65 ---- libc/libio/swscanf.c	2001/07/06 04:55:32	1.2
  353.66 -+++ libc/libio/swscanf.c	2003/03/05 19:58:03	1.3
  353.67 -@@ -1,4 +1,4 @@
  353.68 --/* Copyright (C) 1991, 1995, 1996, 1998, 1999 Free Software Foundation, Inc.
  353.69 -+/* Copyright (C) 1991,1995,1996,1998,1999,2003 Free Software Foundation, Inc.
  353.70 -    This file is part of the GNU C Library.
  353.71 - 
  353.72 -    The GNU C Library is free software; you can redistribute it and/or
  353.73 -@@ -22,9 +22,7 @@
  353.74 - /* Read formatted input from S, according to the format string FORMAT.  */
  353.75 - /* VARARGS2 */
  353.76 - int
  353.77 --swscanf (s, format)
  353.78 --     const wchar_t *s;
  353.79 --     const wchar_t *format;
  353.80 -+swscanf (const wchar_t *s, const wchar_t *format, ...)
  353.81 - {
  353.82 -   va_list arg;
  353.83 -   int done;
   354.1 --- a/patches/glibc/2.3.2/string2-typedef.patch	Tue Aug 14 19:32:22 2007 +0000
   354.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   354.3 @@ -1,35 +0,0 @@
   354.4 -See http://gcc.gnu.org/ml/gcc/2003-08/msg00959.html
   354.5 -
   354.6 -Compiling glibc-2.3.2 with a gcc-3.4 snapshot, I'm seeing
   354.7 -a whole bunch of warnings like this:
   354.8 -
   354.9 -../string/bits/string2.h:80: warning: `packed' attribute ignored
  354.10 -../string/bits/string2.h:81: warning: `packed' attribute ignored
  354.11 -...
  354.12 -
  354.13 -Looks like it was bad code that was silently ignored by previous compilers.
  354.14 -Ulrich fixed it as follows:
  354.15 -
  354.16 -===================================================================
  354.17 -RCS file: /cvs/glibc/libc/string/bits/string2.h,v
  354.18 -retrieving revision 1.68
  354.19 -retrieving revision 1.69
  354.20 -diff -u -r1.68 -r1.69
  354.21 ---- libc/string/bits/string2.h	2002/05/25 06:10:18	1.68
  354.22 -+++ libc/string/bits/string2.h	2003/08/20 00:07:37	1.69
  354.23 -@@ -1,5 +1,5 @@
  354.24 - /* Machine-independant string function optimizations.
  354.25 --   Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
  354.26 -+   Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
  354.27 -    This file is part of the GNU C Library.
  354.28 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  354.29 - 
  354.30 -@@ -76,7 +76,7 @@
  354.31 -    use unaligned memory accesses.  */
  354.32 - # define __STRING2_COPY_TYPE(N) \
  354.33 -   typedef struct { unsigned char __arr[N]; }				      \
  354.34 --    __STRING2_COPY_ARR##N __attribute__ ((packed))
  354.35 -+    __attribute__ ((__packed__)) __STRING2_COPY_ARR##N
  354.36 - __STRING2_COPY_TYPE (2);
  354.37 - __STRING2_COPY_TYPE (3);
  354.38 - __STRING2_COPY_TYPE (4);
   355.1 --- a/patches/glibc/2.3.3/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   355.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   355.3 @@ -1,51 +0,0 @@
   355.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   355.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   355.6 -Fixes following error:
   355.7 -
   355.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   355.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  355.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  355.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  355.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  355.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  355.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  355.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  355.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  355.17 -
  355.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  355.19 -
  355.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  355.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  355.22 -@@ -47,6 +47,12 @@
  355.23 - #include <asm/page.h>
  355.24 - #include <sys/sysctl.h>
  355.25 - 
  355.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  355.27 -+#include <linux/version.h>
  355.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  355.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  355.30 -+#endif
  355.31 -+
  355.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  355.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  355.34 - 
  355.35 -@@ -80,7 +86,7 @@
  355.36 -  * Initialize I/O system.  There are several ways to get the information
  355.37 -  * we need.  Each is tried in turn until one succeeds.
  355.38 -  *
  355.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  355.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  355.41 -  *    but not all kernels support it.
  355.42 -  *
  355.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  355.44 -@@ -100,8 +106,8 @@
  355.45 - {
  355.46 -   char systype[256];
  355.47 -   int i, n;
  355.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  355.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  355.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  355.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  355.52 -   size_t len = sizeof(io.base);
  355.53 - 
  355.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   356.1 --- a/patches/glibc/2.3.3/bad/glibc-2.3.3-alpha-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   356.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   356.3 @@ -1,51 +0,0 @@
   356.4 -Attempted fix for this error:
   356.5 -
   356.6 -
   356.7 -crosstool-0.30/build/alpha-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.3/build-glibc/libc_pic.os(.text+0xc8bd0): In function `__posix_fallocate64_l64':
   356.8 -: undefined reference to `__GI___pwrite64'
   356.9 -collect2: ld returned 1 exit status
  356.10 -make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/alpha-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.3/glibc-2.3.3'
  356.11 -make[1]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/alpha-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.3/build-glibc/libc.so] Error 1
  356.12 -make: *** [all] Error 2
  356.13 -
  356.14 -extracted from GLIBC CVS by Dan Kegel
  356.15 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.14&r2=1.15&cvsroot=glibc'
  356.16 -(to match context of...)
  356.17 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
  356.18 -and rediffed.
  356.19 -
  356.20 -cf. 
  356.21 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
  356.22 -
  356.23 -Originally thought we needed this hunk, too:
  356.24 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00037.html
  356.25 -but it seems the sysdep.h change is sufficient, and works better 
  356.26 -when compiling against linux-2.4.
  356.27 -
  356.28 -And then rediffed again against glibc-2.3.3
  356.29 -
  356.30 ---- glibc-2.3.3.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h	Fri Jun 20 09:24:36 2003
  356.31 -+++ glibc-2.3.3/sysdeps/unix/sysv/linux/alpha/sysdep.h	Wed Mar 23 23:59:58 2005
  356.32 -@@ -1,4 +1,4 @@
  356.33 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
  356.34 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
  356.35 -    Free Software Foundation, Inc.
  356.36 -    This file is part of the GNU C Library.
  356.37 -    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
  356.38 -@@ -63,6 +63,16 @@
  356.39 - /* Help old kernel headers where particular syscalls are not available.  */
  356.40 - #ifndef __NR_semtimedop
  356.41 - # define __NR_semtimedop	423
  356.42 -+#endif
  356.43 -+
  356.44 -+/* This is a kludge to make syscalls.list find these under the names
  356.45 -+   pread and pwrite, since some kernel headers define those names
  356.46 -+   and some define the *64 names for the same system calls.  */
  356.47 -+#if !defined __NR_pread && defined __NR_pread64
  356.48 -+# define __NR_pread __NR_pread64
  356.49 -+#endif
  356.50 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  356.51 -+# define __NR_pwrite __NR_pwrite64
  356.52 - #endif
  356.53 - 
  356.54 - /*
   357.1 --- a/patches/glibc/2.3.3/fixup.patch	Tue Aug 14 19:32:22 2007 +0000
   357.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   357.3 @@ -1,74 +0,0 @@
   357.4 -Fixes
   357.5 -dl-runtime.c:56: error: conflicting types for 'fixup'
   357.6 -../sysdeps/i386/dl-machine.h:158: error: previous declaration of 'fixup' was here
   357.7 -when building with gcc-3.4.0
   357.8 -
   357.9 -First hunk:
  357.10 -Define ARCH_FIXUP_ATTRIBUTE and use it in the fixup function declarations.
  357.11 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.124&r2=1.125&cvsroot=glibc
  357.12 -
  357.13 -Second hunk:
  357.14 -If ARCH_FIXUP_ATTRIBUTE is not defined, provide dummy definition.
  357.15 -Use macro in fixup function definitions.
  357.16 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-runtime.c.diff?r1=1.64&r2=1.65&cvsroot=glibc
  357.17 -[rediffed against glibc-2.3.2]
  357.18 -
  357.19 -===================================================================
  357.20 -RCS file: /cvs/glibc/libc/sysdeps/i386/dl-machine.h,v
  357.21 -retrieving revision 1.124
  357.22 -retrieving revision 1.125
  357.23 -diff -u -r1.124 -r1.125
  357.24 ---- libc/sysdeps/i386/dl-machine.h	2004/03/05 10:14:49	1.124
  357.25 -+++ libc/sysdeps/i386/dl-machine.h	2004/03/09 07:42:29	1.125
  357.26 -@@ -154,11 +154,14 @@
  357.27 -    destroys the passed register information.  */
  357.28 - /* GKM FIXME: Fix trampoline to pass bounds so we can do
  357.29 -    without the `__unbounded' qualifier.  */
  357.30 --static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
  357.31 --     __attribute__ ((regparm (2), unused));
  357.32 -+#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused))
  357.33 -+
  357.34 -+static ElfW(Addr) fixup (struct link_map *__unbounded l,
  357.35 -+			 ElfW(Word) reloc_offset)
  357.36 -+     ARCH_FIXUP_ATTRIBUTE;
  357.37 - static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
  357.38 - 				 ElfW(Addr) retaddr)
  357.39 --     __attribute__ ((regparm (3), unused));
  357.40 -+     ARCH_FIXUP_ATTRIBUTE;
  357.41 - # endif
  357.42 - 
  357.43 - /* This code is used in dl-runtime.c to call the `fixup' function
  357.44 -===================================================================
  357.45 ---- /home/dank/downloads/glibc-2.3.2/elf/dl-runtime.c	Fri Feb  7 11:41:12 2003
  357.46 -+++ glibc-2.3.2/elf/dl-runtime.c	Thu Apr  8 22:24:26 2004
  357.47 -@@ -36,6 +36,12 @@
  357.48 - # define VERSYMIDX(sym)	(DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
  357.49 - #endif
  357.50 - 
  357.51 -+/* The fixup functions might have need special attributes.  If none
  357.52 -+   are provided define the macro as empty.  */
  357.53 -+#ifndef ARCH_FIXUP_ATTRIBUTE
  357.54 -+# define ARCH_FIXUP_ATTRIBUTE
  357.55 -+#endif
  357.56 -+
  357.57 - 
  357.58 - /* This function is called through a special trampoline from the PLT the
  357.59 -    first time each PLT entry is called.  We must perform the relocation
  357.60 -@@ -45,7 +51,7 @@
  357.61 -    function.  */
  357.62 - 
  357.63 - #ifndef ELF_MACHINE_NO_PLT
  357.64 --static ElfW(Addr) __attribute_used__
  357.65 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
  357.66 - fixup (
  357.67 - # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  357.68 -         ELF_MACHINE_RUNTIME_FIXUP_ARGS,
  357.69 -@@ -132,7 +138,7 @@
  357.70 - 
  357.71 - #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
  357.72 - 
  357.73 --static ElfW(Addr) __attribute_used__
  357.74 -+static ElfW(Addr) __attribute_used__ ARCH_FIXUP_ATTRIBUTE
  357.75 - profile_fixup (
  357.76 - #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
  357.77 -        ELF_MACHINE_RUNTIME_FIXUP_ARGS,
   358.1 --- a/patches/glibc/2.3.3/glibc-2.2.5-allow-gcc-4.0-malloc.patch	Tue Aug 14 19:32:22 2007 +0000
   358.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   358.3 @@ -1,48 +0,0 @@
   358.4 -Fixes
   358.5 -programs/ld-collate.c: In function 'obstack_int32_grow':
   358.6 -programs/ld-collate.c:48: error: invalid lvalue in increment
   358.7 -programs/ld-collate.c: In function 'obstack_int32_grow_fast':
   358.8 -programs/ld-collate.c:57: error: invalid lvalue in increment
   358.9 -
  358.10 -Change taken by eyeball from version 1.20 at
  358.11 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/malloc/obstack.h?cvsroot=glibc
  358.12 -
  358.13 ---- /home/dank/downloads/glibc-2.2.5/malloc/obstack.h	2001-07-05 21:55:35.000000000 -0700
  358.14 -+++ glibc-2.2.5/malloc/obstack.h	2005-03-11 16:12:16.175812224 -0800
  358.15 -@@ -423,22 +423,29 @@
  358.16 - ({ struct obstack *__o = (OBSTACK);					\
  358.17 -    if (__o->next_free + sizeof (void *) > __o->chunk_limit)		\
  358.18 -      _obstack_newchunk (__o, sizeof (void *));				\
  358.19 --   *((void **)__o->next_free)++ = (datum);				\
  358.20 --   (void) 0; })
  358.21 -+   obstack_ptr_grow_fast (__o, datum); })
  358.22 - 
  358.23 - # define obstack_int_grow(OBSTACK,datum)				\
  358.24 - __extension__								\
  358.25 - ({ struct obstack *__o = (OBSTACK);					\
  358.26 -    if (__o->next_free + sizeof (int) > __o->chunk_limit)		\
  358.27 -      _obstack_newchunk (__o, sizeof (int));				\
  358.28 --   *((int *)__o->next_free)++ = (datum);				\
  358.29 -+   obstack_int_grow_fast (__o, datum); })
  358.30 -+
  358.31 -+# define obstack_ptr_grow_fast(OBSTACK,aptr)				\
  358.32 -+__extension__								\
  358.33 -+({ struct obstack *__o1 = (OBSTACK);					\
  358.34 -+   *(const void **) __o1->next_free = (aptr);				\
  358.35 -+   __o1->next_free += sizeof (const void *);				\
  358.36 -    (void) 0; })
  358.37 - 
  358.38 --# define obstack_ptr_grow_fast(h,aptr)					\
  358.39 --  (*((void **) (h)->next_free)++ = (aptr))
  358.40 -+# define obstack_int_grow_fast(OBSTACK,aint)				\
  358.41 -+__extension__								\
  358.42 -+({ struct obstack *__o1 = (OBSTACK);					\
  358.43 -+   *(int *) __o1->next_free = (aint);					\
  358.44 -+   __o1->next_free += sizeof (int);					\
  358.45 -+   (void) 0; })
  358.46 - 
  358.47 --# define obstack_int_grow_fast(h,aint)					\
  358.48 --  (*((int *) (h)->next_free)++ = (aint))
  358.49 - 
  358.50 - # define obstack_blank(OBSTACK,length)					\
  358.51 - __extension__								\
   359.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.4-inline.patch	Tue Aug 14 19:32:22 2007 +0000
   359.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   359.3 @@ -1,23 +0,0 @@
   359.4 -Fixes
   359.5 -cc1: error: invalid parameter `max-inline-insns'
   359.6 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc6/build/powerpc64-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/dl-load.o] Error 1
   359.7 -when building with gcc-3.4.0, which no longer has a single
   359.8 ---max-inline-insns parameter.
   359.9 -
  359.10 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/powerpc/powerpc64/Makefile.diff?r1=1.3&r2=1.4&cvsroot=glibc
  359.11 -
  359.12 -===================================================================
  359.13 -RCS file: /cvs/glibc/libc/sysdeps/powerpc/powerpc64/Makefile,v
  359.14 -retrieving revision 1.3
  359.15 -retrieving revision 1.4
  359.16 -diff -u -r1.3 -r1.4
  359.17 ---- libc/sysdeps/powerpc/powerpc64/Makefile     2003/10/22 21:30:03     1.3
  359.18 -+++ libc/sysdeps/powerpc/powerpc64/Makefile     2004/02/20 05:43:52     1.4
  359.19 -@@ -20,5 +20,5 @@
  359.20 - 
  359.21 - ifeq ($(subdir),elf)
  359.22 - # help gcc inline asm code from dl-machine.h
  359.23 --+cflags += --param max-inline-insns=2000
  359.24 -++cflags += -finline-limit=2000
  359.25 - endif
  359.26 -
   360.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-elf.patch	Tue Aug 14 19:32:22 2007 +0000
   360.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   360.3 @@ -1,34 +0,0 @@
   360.4 -
   360.5 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
   360.6 -
   360.7 -Fixes gcc-3.5 errors
   360.8 -
   360.9 -dl-load.c: In function `_dl_map_object_from_fd':
  360.10 -dl-load.c:1179: error: invalid lvalue in assignment
  360.11 -dl-load.c:1205: error: invalid lvalue in assignment
  360.12 -
  360.13 -===================================================================
  360.14 -RCS file: /cvs/glibc/libc/elf/dl-load.c,v
  360.15 -retrieving revision 1.235
  360.16 -retrieving revision 1.236
  360.17 -diff -u -r1.235 -r1.236
  360.18 ---- libc/elf/dl-load.c	2004/02/09 07:03:48	1.235
  360.19 -+++ libc/elf/dl-load.c	2004/02/21 18:25:41	1.236
  360.20 -@@ -1228,7 +1228,7 @@
  360.21 -       }
  360.22 -     else
  360.23 -       /* Adjust the PT_PHDR value by the runtime load address.  */
  360.24 --      (ElfW(Addr)) l->l_phdr += l->l_addr;
  360.25 -+      l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
  360.26 -   }
  360.27 - 
  360.28 - #ifdef USE_TLS
  360.29 -@@ -1254,7 +1254,7 @@
  360.30 - 	}
  360.31 -     }
  360.32 -   else
  360.33 --    (ElfW(Addr)) l->l_ld += l->l_addr;
  360.34 -+    l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
  360.35 - 
  360.36 -   l->l_entry += l->l_addr;
  360.37 - 
   361.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-gconv.patch	Tue Aug 14 19:32:22 2007 +0000
   361.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   361.3 @@ -1,228 +0,0 @@
   361.4 -Fixes
   361.5 -gconv_open.c: In function `__gconv_open':
   361.6 -gconv_open.c:186: error: invalid lvalue in assignment
   361.7 -when building glibc-2.3.2 with gcc-3.5.
   361.8 -
   361.9 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_simple.c.diff?r1=1.59&r2=1.63&cvsroot=glibc'
  361.10 -        * (internal_ucs4_loop): Fix typo in last change.
  361.11 -
  361.12 -        * (internal_ucs4le_loop): Remove cast used as lvalue.
  361.13 -
  361.14 -        * Fix last commit.
  361.15 -
  361.16 -	* iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
  361.17 -	(internal_ucs4le_loop_single): Likewise.
  361.18 -	(ucs4_internal_loop): Likewise.
  361.19 -	(BODY): Likewise.
  361.20 -	(internal_ucs4_loop_single): Likewise.
  361.21 -
  361.22 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/gconv_open.c.diff?r1=1.32&r2=1.33&cvsroot=glibc'
  361.23 -	* iconv/gconv_simple.c (ucs4le_internal_loop): Remove cast used as lvalue.
  361.24 -	(internal_ucs4le_loop_single): Likewise.
  361.25 -	(ucs4_internal_loop): Likewise.
  361.26 -	(BODY): Likewise.
  361.27 -	(internal_ucs4_loop_single): Likewise.
  361.28 -
  361.29 -
  361.30 -===================================================================
  361.31 -RCS file: /cvs/glibc/libc/iconv/gconv_open.c,v
  361.32 -retrieving revision 1.32
  361.33 -retrieving revision 1.33
  361.34 -diff -u -r1.32 -r1.33
  361.35 ---- libc/iconv/gconv_open.c	2001/11/29 04:51:58	1.32
  361.36 -+++ libc/iconv/gconv_open.c	2004/02/07 15:56:32	1.33
  361.37 -@@ -1,5 +1,5 @@
  361.38 - /* Find matching transformation algorithms and initialize steps.
  361.39 --   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  361.40 -+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
  361.41 -    This file is part of the GNU C Library.
  361.42 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  361.43 - 
  361.44 -@@ -182,8 +182,13 @@
  361.45 - 	      || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
  361.46 - 	    lastp = runp;
  361.47 - 	  else
  361.48 --	    /* This means we haven't found the module.  Remove it.  */
  361.49 --	    (lastp == NULL ? trans : lastp->next) = runp->next;
  361.50 -+	    {
  361.51 -+	      /* This means we haven't found the module.  Remove it.  */
  361.52 -+	      if (lastp == NULL)
  361.53 -+		trans  = runp->next;
  361.54 -+	      else
  361.55 -+		lastp->next  = runp->next;
  361.56 -+	    }
  361.57 - 	}
  361.58 - 
  361.59 -       /* Allocate room for handle.  */
  361.60 -===================================================================
  361.61 -RCS file: /cvs/glibc/libc/iconv/gconv_simple.c,v
  361.62 -retrieving revision 1.59
  361.63 -retrieving revision 1.63
  361.64 -diff -u -r1.59 -r1.63
  361.65 ---- libc/iconv/gconv_simple.c	2003/06/11 21:36:37	1.59
  361.66 -+++ libc/iconv/gconv_simple.c	2004/03/09 10:00:31	1.63
  361.67 -@@ -1,5 +1,5 @@
  361.68 - /* Simple transformations functions.
  361.69 --   Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
  361.70 -+   Copyright (C) 1997-2003, 2004 Free Software Foundation, Inc.
  361.71 -    This file is part of the GNU C Library.
  361.72 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  361.73 - 
  361.74 -@@ -87,12 +87,13 @@
  361.75 - #if __BYTE_ORDER == __LITTLE_ENDIAN
  361.76 -   /* Sigh, we have to do some real work.  */
  361.77 -   size_t cnt;
  361.78 -+  uint32_t *outptr32 = (uint32_t *) outptr;
  361.79 - 
  361.80 -   for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
  361.81 --    *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
  361.82 -+    *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
  361.83 - 
  361.84 -   *inptrp = inptr;
  361.85 --  *outptrp = outptr;
  361.86 -+  *outptrp = (unsigned char *) outptr32;
  361.87 - #elif __BYTE_ORDER == __BIG_ENDIAN
  361.88 -   /* Simply copy the data.  */
  361.89 -   *inptrp = inptr + n_convert * 4;
  361.90 -@@ -192,13 +193,16 @@
  361.91 -   (*outptrp)[2] = state->__value.__wchb[1];
  361.92 -   (*outptrp)[3] = state->__value.__wchb[0];
  361.93 - 
  361.94 --  *outptrp += 4;
  361.95 - #elif __BYTE_ORDER == __BIG_ENDIAN
  361.96 -   /* XXX unaligned */
  361.97 --  *(*((uint32_t **) outptrp)++) = state->__value.__wch;
  361.98 -+  (*outptrp)[0] = state->__value.__wchb[0];
  361.99 -+  (*outptrp)[1] = state->__value.__wchb[1];
 361.100 -+  (*outptrp)[2] = state->__value.__wchb[2];
 361.101 -+  (*outptrp)[3] = state->__value.__wchb[3];
 361.102 - #else
 361.103 - # error "This endianess is not supported."
 361.104 - #endif
 361.105 -+  *outptrp += 4;
 361.106 - 
 361.107 -   /* Clear the state buffer.  */
 361.108 -   state->__count &= ~7;
 361.109 -@@ -268,7 +272,8 @@
 361.110 - 	  return __GCONV_ILLEGAL_INPUT;
 361.111 - 	}
 361.112 - 
 361.113 --      *((uint32_t *) outptr)++ = inval;
 361.114 -+      *((uint32_t *) outptr) = inval;
 361.115 -+      outptr += sizeof (uint32_t);
 361.116 -     }
 361.117 - 
 361.118 -   *inptrp = inptr;
 361.119 -@@ -447,9 +452,11 @@
 361.120 - #if __BYTE_ORDER == __BIG_ENDIAN
 361.121 -   /* Sigh, we have to do some real work.  */
 361.122 -   size_t cnt;
 361.123 -+  uint32_t *outptr32 = (uint32_t *) outptr;
 361.124 - 
 361.125 -   for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
 361.126 --    *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
 361.127 -+    *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
 361.128 -+  outptr = (unsigned char *) outptr32;
 361.129 - 
 361.130 -   *inptrp = inptr;
 361.131 -   *outptrp = outptr;
 361.132 -@@ -555,12 +562,17 @@
 361.133 -   (*outptrp)[2] = state->__value.__wchb[1];
 361.134 -   (*outptrp)[3] = state->__value.__wchb[0];
 361.135 - 
 361.136 --  *outptrp += 4;
 361.137 - #else
 361.138 -   /* XXX unaligned */
 361.139 --  *(*((uint32_t **) outptrp)++) = state->__value.__wch;
 361.140 -+  (*outptrp)[0] = state->__value.__wchb[0];
 361.141 -+  (*outptrp)[1] = state->__value.__wchb[1];
 361.142 -+  (*outptrp)[2] = state->__value.__wchb[2];
 361.143 -+  (*outptrp)[3] = state->__value.__wchb[3];
 361.144 -+
 361.145 - #endif
 361.146 - 
 361.147 -+  *outptrp += 4;
 361.148 -+
 361.149 -   /* Clear the state buffer.  */
 361.150 -   state->__count &= ~7;
 361.151 - 
 361.152 -@@ -626,7 +638,8 @@
 361.153 - 	  return __GCONV_ILLEGAL_INPUT;
 361.154 - 	}
 361.155 - 
 361.156 --      *((uint32_t *) outptr)++ = inval;
 361.157 -+      *((uint32_t *) outptr) = inval;
 361.158 -+      outptr += sizeof (uint32_t);
 361.159 -     }
 361.160 - 
 361.161 -   *inptrp = inptr;
 361.162 -@@ -808,7 +821,8 @@
 361.163 -       }									      \
 361.164 -     else								      \
 361.165 -       /* It's an one byte sequence.  */					      \
 361.166 --      *((uint32_t *) outptr)++ = *inptr++;				      \
 361.167 -+      *((uint32_t *) outptr) = *inptr++;				      \
 361.168 -+      outptr += sizeof (uint32_t);					      \
 361.169 -   }
 361.170 - #define LOOP_NEED_FLAGS
 361.171 - #include <iconv/loop.c>
 361.172 -@@ -838,7 +852,8 @@
 361.173 -       }									      \
 361.174 -     else								      \
 361.175 -       /* It's an one byte sequence.  */					      \
 361.176 --      *outptr++ = *((const uint32_t *) inptr)++;			      \
 361.177 -+      *outptr++ = *((const uint32_t *) inptr);				      \
 361.178 -+      inptr += sizeof (uint32_t);					      \
 361.179 -   }
 361.180 - #define LOOP_NEED_FLAGS
 361.181 - #include <iconv/loop.c>
 361.182 -@@ -1032,7 +1047,8 @@
 361.183 -       }									      \
 361.184 - 									      \
 361.185 -     /* Now adjust the pointers and store the result.  */		      \
 361.186 --    *((uint32_t *) outptr)++ = ch;					      \
 361.187 -+    *((uint32_t *) outptr) = ch;					      \
 361.188 -+    outptr += sizeof (uint32_t);					      \
 361.189 -   }
 361.190 - #define LOOP_NEED_FLAGS
 361.191 - 
 361.192 -@@ -1153,7 +1169,8 @@
 361.193 - 	STANDARD_FROM_LOOP_ERR_HANDLER (2);				      \
 361.194 -       }									      \
 361.195 - 									      \
 361.196 --    *((uint32_t *) outptr)++ = u1;					      \
 361.197 -+    *((uint32_t *) outptr) = u1;					      \
 361.198 -+    outptr += sizeof (uint32_t);					      \
 361.199 -     inptr += 2;								      \
 361.200 -   }
 361.201 - #define LOOP_NEED_FLAGS
 361.202 -@@ -1201,7 +1218,8 @@
 361.203 -       }									      \
 361.204 -     else								      \
 361.205 -       {									      \
 361.206 --	*((uint16_t *) outptr)++ = val;					      \
 361.207 -+	*((uint16_t *) outptr) = val;					      \
 361.208 -+        outptr += sizeof (uint16_t);					      \
 361.209 - 	inptr += 4;							      \
 361.210 -       }									      \
 361.211 -   }
 361.212 -@@ -1242,7 +1260,8 @@
 361.213 - 	continue;							      \
 361.214 -       }									      \
 361.215 - 									      \
 361.216 --    *((uint32_t *) outptr)++ = u1;					      \
 361.217 -+    *((uint32_t *) outptr) = u1;					      \
 361.218 -+    outptr += sizeof (uint32_t);					      \
 361.219 -     inptr += 2;								      \
 361.220 -   }
 361.221 - #define LOOP_NEED_FLAGS
 361.222 -@@ -1291,7 +1310,8 @@
 361.223 -       }									      \
 361.224 -     else								      \
 361.225 -       {									      \
 361.226 --	*((uint16_t *) outptr)++ = bswap_16 (val);			      \
 361.227 -+	*((uint16_t *) outptr) = bswap_16 (val);			      \
 361.228 -+	outptr += sizeof (uint16_t);					      \
 361.229 - 	inptr += 4;							      \
 361.230 -       }									      \
 361.231 -   }
   362.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-msort.patch	Tue Aug 14 19:32:22 2007 +0000
   362.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   362.3 @@ -1,46 +0,0 @@
   362.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdlib/msort.c.diff?r1=1.20&r2=1.21&cvsroot=glibc
   362.5 -
   362.6 -Fixes
   362.7 -
   362.8 -msort.c: In function `msort_with_tmp':
   362.9 -msort.c:59: error: invalid lvalue in increment
  362.10 -msort.c:59: error: invalid lvalue in increment
  362.11 -msort.c:64: error: invalid lvalue in increment
  362.12 -msort.c:64: error: invalid lvalue in increment
  362.13 -
  362.14 -when building with gcc-3.5.
  362.15 -
  362.16 -===================================================================
  362.17 -RCS file: /cvs/glibc/libc/stdlib/msort.c,v
  362.18 -retrieving revision 1.20
  362.19 -retrieving revision 1.21
  362.20 -diff -u -r1.20 -r1.21
  362.21 ---- libc/stdlib/msort.c	2002/09/24 04:20:57	1.20
  362.22 -+++ libc/stdlib/msort.c	2004/02/07 15:57:34	1.21
  362.23 -@@ -1,6 +1,6 @@
  362.24 - /* An alternative to qsort, with an identical interface.
  362.25 -    This file is part of the GNU C Library.
  362.26 --   Copyright (C) 1992,95-97,99,2000,01,02 Free Software Foundation, Inc.
  362.27 -+   Copyright (C) 1992,95-97,99,2000,01,02,04 Free Software Foundation, Inc.
  362.28 -    Written by Mike Haertel, September 1988.
  362.29 - 
  362.30 -    The GNU C Library is free software; you can redistribute it and/or
  362.31 -@@ -56,12 +56,16 @@
  362.32 - 	if ((*cmp) (b1, b2) <= 0)
  362.33 - 	  {
  362.34 - 	    --n1;
  362.35 --	    *((op_t *) tmp)++ = *((op_t *) b1)++;
  362.36 -+	    *((op_t *) tmp) = *((op_t *) b1);
  362.37 -+	    tmp += sizeof (op_t);
  362.38 -+	    b1 += sizeof (op_t);
  362.39 - 	  }
  362.40 - 	else
  362.41 - 	  {
  362.42 - 	    --n2;
  362.43 --	    *((op_t *) tmp)++ = *((op_t *) b2)++;
  362.44 -+	    *((op_t *) tmp) = *((op_t *) b2);
  362.45 -+	    tmp += sizeof (op_t);
  362.46 -+	    b2 += sizeof (op_t);
  362.47 - 	  }
  362.48 -       }
  362.49 -   else
   363.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-sunrpc.patch	Tue Aug 14 19:32:22 2007 +0000
   363.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   363.3 @@ -1,233 +0,0 @@
   363.4 -http://sources.redhat.com/ml/libc-hacker/2004-02/msg00005.html
   363.5 -[Also in CVS, but the original patch is easier to get.]
   363.6 -
   363.7 -Fixes errors like
   363.8 -
   363.9 -clnt_perr.c: In function `_buf':
  363.10 -clnt_perr.c:67: error: invalid lvalue in assignment
  363.11 -
  363.12 -when building with gcc-3.5.
  363.13 -
  363.14 -To: libc-hacker at sources dot redhat dot com
  363.15 -Subject: Fix cast as lvalue in sunrpc
  363.16 -From: Andreas Schwab <schwab at suse dot de>
  363.17 -X-Yow: SHHHH!!  I hear SIX TATTOOED TRUCK-DRIVERS tossing ENGINE BLOCKS
  363.18 - into empty OIL DRUMS dot  dot 
  363.19 -Date: Sun, 08 Feb 2004 17:38:31 +0100
  363.20 -Message-ID: <je4qu1frw8.fsf@sykes.suse.de>
  363.21 -
  363.22 -This fixes the uses of casts as lvalue in the sunrpc code.
  363.23 -
  363.24 -Andreas.
  363.25 -
  363.26 -2004-02-08  Andreas Schwab  <schwab@suse.de>
  363.27 -
  363.28 -	* include/rpc/rpc.h: Declare thread variables with their correct
  363.29 -	type.
  363.30 -	* sunrpc/clnt_perr.c: Don't cast thread variables.
  363.31 -	* sunrpc/clnt_raw.c: Likewise.
  363.32 -	* sunrpc/clnt_simp.c: Likewise.
  363.33 -	* sunrpc/key_call.c: Likewise.
  363.34 -	* sunrpc/svcauth_des.c: Likewise.
  363.35 -	* sunrpc/svc.c: Likewise.
  363.36 -	* sunrpc/svc_raw.c: Likewise.
  363.37 -	* sunrpc/svc_simple.c: Likewise.
  363.38 -
  363.39 -Index: include/rpc/rpc.h
  363.40 -===================================================================
  363.41 -RCS file: /cvs/glibc/libc/include/rpc/rpc.h,v
  363.42 -retrieving revision 1.8
  363.43 -diff -u -p -a -r1.8 rpc.h
  363.44 ---- glibc/include/rpc/rpc.h	5 Aug 2002 22:10:59 -0000	1.8
  363.45 -+++ glibc/include/rpc/rpc.h	8 Feb 2004 14:19:14 -0000
  363.46 -@@ -17,24 +17,24 @@ struct rpc_thread_variables {
  363.47 - 	struct pollfd	*svc_pollfd_s;		/* Global, rpc_common.c */
  363.48 - 	int		svc_max_pollfd_s;	/* Global, rpc_common.c */
  363.49 - 
  363.50 --	void		*clnt_perr_buf_s;	/* clnt_perr.c */
  363.51 -+	char		*clnt_perr_buf_s;	/* clnt_perr.c */
  363.52 - 
  363.53 --	void		*clntraw_private_s;	/* clnt_raw.c */
  363.54 -+	struct clntraw_private_s *clntraw_private_s;	/* clnt_raw.c */
  363.55 - 
  363.56 --	void		*callrpc_private_s;	/* clnt_simp.c */
  363.57 -+	struct callrpc_private_s *callrpc_private_s;	/* clnt_simp.c */
  363.58 - 
  363.59 --	void		*key_call_private_s;	/* key_call.c */
  363.60 -+	struct key_call_private *key_call_private_s;	/* key_call.c */
  363.61 - 
  363.62 --	void		*authdes_cache_s;	/* svcauth_des.c */
  363.63 --	void		*authdes_lru_s;		/* svcauth_des.c */
  363.64 -+	struct cache_entry *authdes_cache_s;	/* svcauth_des.c */
  363.65 -+	int		*authdes_lru_s;		/* svcauth_des.c */
  363.66 - 
  363.67 --	void		*svc_xports_s;		/* svc.c */
  363.68 --	void		*svc_head_s;		/* svc.c */
  363.69 -+	SVCXPRT		**svc_xports_s;		/* svc.c */
  363.70 -+	struct svc_callout *svc_head_s;		/* svc.c */
  363.71 - 
  363.72 --	void		*svcraw_private_s;	/* svc_raw.c */
  363.73 -+	struct svcraw_private_s *svcraw_private_s;	/* svc_raw.c */
  363.74 - 
  363.75 --	void		*svcsimple_proglst_s;	/* svc_simple.c */
  363.76 --	void		*svcsimple_transp_s;	/* svc_simple.c */
  363.77 -+	struct proglst_ *svcsimple_proglst_s;	/* svc_simple.c */
  363.78 -+	SVCXPRT		*svcsimple_transp_s;	/* svc_simple.c */
  363.79 - };
  363.80 - 
  363.81 - extern struct rpc_thread_variables *__rpc_thread_variables(void)
  363.82 -Index: sunrpc/clnt_perr.c
  363.83 -===================================================================
  363.84 -RCS file: /cvs/glibc/libc/sunrpc/clnt_perr.c,v
  363.85 -retrieving revision 1.19
  363.86 -diff -u -p -a -r1.19 clnt_perr.c
  363.87 ---- glibc/sunrpc/clnt_perr.c	1 Nov 2002 20:43:54 -0000	1.19
  363.88 -+++ glibc/sunrpc/clnt_perr.c	8 Feb 2004 14:19:14 -0000
  363.89 -@@ -55,7 +55,7 @@ static char *auth_errmsg (enum auth_stat
  363.90 -  * buf variable in a few functions.  Overriding a global variable
  363.91 -  * with a local variable of the same name is a bad idea, anyway.
  363.92 -  */
  363.93 --#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
  363.94 -+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
  363.95 - #else
  363.96 - static char *buf;
  363.97 - #endif
  363.98 -Index: sunrpc/clnt_raw.c
  363.99 -===================================================================
 363.100 -RCS file: /cvs/glibc/libc/sunrpc/clnt_raw.c,v
 363.101 -retrieving revision 1.10
 363.102 -diff -u -p -a -r1.10 clnt_raw.c
 363.103 ---- glibc/sunrpc/clnt_raw.c	15 May 2002 00:21:00 -0000	1.10
 363.104 -+++ glibc/sunrpc/clnt_raw.c	8 Feb 2004 14:19:14 -0000
 363.105 -@@ -61,7 +61,7 @@ struct clntraw_private_s
 363.106 -     u_int mcnt;
 363.107 -   };
 363.108 - #ifdef _RPC_THREAD_SAFE_
 363.109 --#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
 363.110 -+#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
 363.111 - #else
 363.112 - static struct clntraw_private_s *clntraw_private;
 363.113 - #endif
 363.114 -Index: sunrpc/clnt_simp.c
 363.115 -===================================================================
 363.116 -RCS file: /cvs/glibc/libc/sunrpc/clnt_simp.c,v
 363.117 -retrieving revision 1.14
 363.118 -diff -u -p -a -r1.14 clnt_simp.c
 363.119 ---- glibc/sunrpc/clnt_simp.c	15 May 2002 00:21:00 -0000	1.14
 363.120 -+++ glibc/sunrpc/clnt_simp.c	8 Feb 2004 14:19:14 -0000
 363.121 -@@ -55,7 +55,7 @@ struct callrpc_private_s
 363.122 -     char *oldhost;
 363.123 -   };
 363.124 - #ifdef _RPC_THREAD_SAFE_
 363.125 --#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
 363.126 -+#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
 363.127 - #else
 363.128 - static struct callrpc_private_s *callrpc_private;
 363.129 - #endif
 363.130 -Index: sunrpc/key_call.c
 363.131 -===================================================================
 363.132 -RCS file: /cvs/glibc/libc/sunrpc/key_call.c,v
 363.133 -retrieving revision 1.16
 363.134 -diff -u -p -a -r1.16 key_call.c
 363.135 ---- glibc/sunrpc/key_call.c	6 Aug 2002 06:08:50 -0000	1.16
 363.136 -+++ glibc/sunrpc/key_call.c	8 Feb 2004 14:19:14 -0000
 363.137 -@@ -370,7 +370,7 @@ struct  key_call_private {
 363.138 -   uid_t   uid;            /* user-id at last authorization */
 363.139 - };
 363.140 - #ifdef _RPC_THREAD_SAFE_
 363.141 --#define key_call_private_main ((struct  key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
 363.142 -+#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
 363.143 - #else
 363.144 - static struct key_call_private *key_call_private_main;
 363.145 - #endif
 363.146 -Index: sunrpc/svc.c
 363.147 -===================================================================
 363.148 -RCS file: /cvs/glibc/libc/sunrpc/svc.c,v
 363.149 -retrieving revision 1.17
 363.150 -diff -u -p -a -r1.17 svc.c
 363.151 ---- glibc/sunrpc/svc.c	29 Aug 2003 07:45:18 -0000	1.17
 363.152 -+++ glibc/sunrpc/svc.c	8 Feb 2004 14:19:14 -0000
 363.153 -@@ -44,7 +44,7 @@
 363.154 - #include <sys/poll.h>
 363.155 - 
 363.156 - #ifdef _RPC_THREAD_SAFE_
 363.157 --#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
 363.158 -+#define xports RPC_THREAD_VARIABLE(svc_xports_s)
 363.159 - #else
 363.160 - static SVCXPRT **xports;
 363.161 - #endif
 363.162 -@@ -63,7 +63,7 @@ struct svc_callout {
 363.163 -   void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
 363.164 - };
 363.165 - #ifdef _RPC_THREAD_SAFE_
 363.166 --#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
 363.167 -+#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
 363.168 - #else
 363.169 - static struct svc_callout *svc_head;
 363.170 - #endif
 363.171 -Index: sunrpc/svc_raw.c
 363.172 -===================================================================
 363.173 -RCS file: /cvs/glibc/libc/sunrpc/svc_raw.c,v
 363.174 -retrieving revision 1.5
 363.175 -diff -u -p -a -r1.5 svc_raw.c
 363.176 ---- glibc/sunrpc/svc_raw.c	26 Feb 2002 01:43:56 -0000	1.5
 363.177 -+++ glibc/sunrpc/svc_raw.c	8 Feb 2004 14:19:14 -0000
 363.178 -@@ -54,7 +54,7 @@ struct svcraw_private_s
 363.179 -     char verf_body[MAX_AUTH_BYTES];
 363.180 -   };
 363.181 - #ifdef _RPC_THREAD_SAFE_
 363.182 --#define svcraw_private ((struct svcraw_private_s *)RPC_THREAD_VARIABLE(svcraw_private_s))
 363.183 -+#define svcraw_private RPC_THREAD_VARIABLE(svcraw_private_s)
 363.184 - #else
 363.185 - static struct svcraw_private_s *svcraw_private;
 363.186 - #endif
 363.187 -Index: sunrpc/svc_simple.c
 363.188 -===================================================================
 363.189 -RCS file: /cvs/glibc/libc/sunrpc/svc_simple.c,v
 363.190 -retrieving revision 1.16
 363.191 -diff -u -p -a -r1.16 svc_simple.c
 363.192 ---- glibc/sunrpc/svc_simple.c	6 Aug 2002 05:10:30 -0000	1.16
 363.193 -+++ glibc/sunrpc/svc_simple.c	8 Feb 2004 14:19:14 -0000
 363.194 -@@ -61,7 +61,7 @@ struct proglst_
 363.195 -     struct proglst_ *p_nxt;
 363.196 -   };
 363.197 - #ifdef _RPC_THREAD_SAFE_
 363.198 --#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
 363.199 -+#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
 363.200 - #else
 363.201 - static struct proglst_ *proglst;
 363.202 - #endif
 363.203 -@@ -69,7 +69,7 @@ static struct proglst_ *proglst;
 363.204 - 
 363.205 - static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
 363.206 - #ifdef _RPC_THREAD_SAFE_
 363.207 --#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
 363.208 -+#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
 363.209 - #else
 363.210 - static SVCXPRT *transp;
 363.211 - #endif
 363.212 -Index: sunrpc/svcauth_des.c
 363.213 -===================================================================
 363.214 -RCS file: /cvs/glibc/libc/sunrpc/svcauth_des.c,v
 363.215 -retrieving revision 1.8
 363.216 -diff -u -p -a -r1.8 svcauth_des.c
 363.217 ---- glibc/sunrpc/svcauth_des.c	20 Aug 2001 06:37:09 -0000	1.8
 363.218 -+++ glibc/sunrpc/svcauth_des.c	8 Feb 2004 14:19:14 -0000
 363.219 -@@ -72,8 +72,8 @@ struct cache_entry
 363.220 -     char *localcred;		/* generic local credential */
 363.221 -   };
 363.222 - #ifdef _RPC_THREAD_SAFE_
 363.223 --#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
 363.224 --#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
 363.225 -+#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
 363.226 -+#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
 363.227 - #else
 363.228 - static struct cache_entry *authdes_cache;
 363.229 - static int *authdes_lru;
 363.230 -
 363.231 --- 
 363.232 -Andreas Schwab, SuSE Labs, schwab@suse.de
 363.233 -SuSE Linux AG, Maxfeldstraße 5, 90409 Nürnberg, Germany
 363.234 -Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
 363.235 -"And now for something completely different."
 363.236 -
   364.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-allow-gcc-3.5-xdr.patch	Tue Aug 14 19:32:22 2007 +0000
   364.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   364.3 @@ -1,44 +0,0 @@
   364.4 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sunrpc/rpc/xdr.h.diff?r1=1.27&r2=1.28&cvsroot=glibc
   364.5 -(but see also http://sources.redhat.com/ml/libc-alpha/2004-03/msg00267.html
   364.6 -and http://gcc.gnu.org/ml/gcc-patches/2004-03/msg02056.html)
   364.7 -
   364.8 -Fixes errors
   364.9 -
  364.10 -rpc_cmsg.c: In function `xdr_callmsg':
  364.11 -rpc_cmsg.c:70: error: invalid lvalue in increment
  364.12 -rpc_cmsg.c:71: error: invalid lvalue in increment
  364.13 -rpc_cmsg.c:74: error: invalid lvalue in increment
  364.14 -rpc_cmsg.c:77: error: invalid lvalue in increment
  364.15 -rpc_cmsg.c:78: error: invalid lvalue in increment
  364.16 -rpc_cmsg.c:79: error: invalid lvalue in increment
  364.17 -rpc_cmsg.c:81: error: invalid lvalue in increment
  364.18 -rpc_cmsg.c:89: error: invalid lvalue in increment
  364.19 -rpc_cmsg.c:106: error: invalid lvalue in increment
  364.20 -rpc_cmsg.c:107: error: invalid lvalue in increment
  364.21 -rpc_cmsg.c:112: error: invalid lvalue in increment
  364.22 -rpc_cmsg.c:117: error: invalid lvalue in increment
  364.23 -rpc_cmsg.c:118: error: invalid lvalue in increment
  364.24 -rpc_cmsg.c:119: error: invalid lvalue in increment
  364.25 -rpc_cmsg.c:121: error: invalid lvalue in increment
  364.26 -rpc_cmsg.c:160: error: invalid lvalue in increment
  364.27 -
  364.28 -===================================================================
  364.29 -RCS file: /cvs/glibc/libc/sunrpc/rpc/xdr.h,v
  364.30 -retrieving revision 1.27
  364.31 -retrieving revision 1.28
  364.32 -diff -u -r1.27 -r1.28
  364.33 ---- libc/sunrpc/rpc/xdr.h	2002/12/16 02:05:49	1.27
  364.34 -+++ libc/sunrpc/rpc/xdr.h	2004/03/22 10:52:33	1.28
  364.35 -@@ -262,10 +262,8 @@
  364.36 -  * and shouldn't be used any longer. Code which use this defines or longs
  364.37 -  * in the RPC code will not work on 64bit Solaris platforms !
  364.38 -  */
  364.39 --#define IXDR_GET_LONG(buf) \
  364.40 --	((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
  364.41 --#define IXDR_PUT_LONG(buf, v) \
  364.42 --	(*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
  364.43 -+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
  364.44 -+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
  364.45 - #define IXDR_GET_U_LONG(buf)	      ((u_long)IXDR_GET_LONG(buf))
  364.46 - #define IXDR_PUT_U_LONG(buf, v)	      IXDR_PUT_LONG(buf, (long)(v))
  364.47 - 
   365.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-arm-fix-strlen.patch	Tue Aug 14 19:32:22 2007 +0000
   365.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   365.3 @@ -1,54 +0,0 @@
   365.4 -See also
   365.5 -http://lists.gnu.org/archive/html/bug-glibc/2002-12/msg00056.html
   365.6 -http://lists.arm.linux.org.uk/pipermail/linux-arm-toolchain/2004-June/000016.html
   365.7 -
   365.8 -2002-12-12  Andreas Schwab  <schwab@suse.de>
   365.9 -        * sysdeps/arm/strlen.S: Fix last word check for big endian.
  365.10 -
  365.11 -To: libc-alpha at sources dot redhat dot com
  365.12 -Subject: [PATCH] REPOST: ARM big-endian strlen() fix
  365.13 -References: <m3brjy27mo.fsf@defiant.pm.waw.pl>
  365.14 -From: Krzysztof Halasa <khc at pm dot waw dot pl>
  365.15 -Date: Thu, 10 Jun 2004 13:41:44 +0200
  365.16 -Message-ID: <m3r7sn8wsn.fsf@defiant.pm.waw.pl>
  365.17 -MIME-Version: 1.0
  365.18 -Content-Type: multipart/mixed; boundary="=-=-="
  365.19 -
  365.20 ---=-=-=
  365.21 -
  365.22 -The attached patch fixes strlen() on big-endian ARM. Please apply.
  365.23 -Thanks.
  365.24 --- 
  365.25 -Krzysztof Halasa, B*FH
  365.26 -
  365.27 ---=-=-=
  365.28 -Content-Type: text/x-patch
  365.29 -Content-Disposition: inline; filename=glibc-strlen.patch
  365.30 -
  365.31 ---- glibc-2.3.3.old/sysdeps/arm/strlen.S	2003-04-30 00:47:20.000000000 +0200
  365.32 -+++ glibc-2.3.3/sysdeps/arm/strlen.S	2004-06-06 03:21:48.351931240 +0200
  365.33 -@@ -53,12 +53,21 @@
  365.34 - 	ldrne   r2, [r1], $4            @ and we continue to the next word
  365.35 - 	bne     Laligned                @
  365.36 - Llastword:				@ drop through to here once we find a
  365.37 -+#ifdef __ARMEB__
  365.38 -+	tst     r2, $0xff000000         @ word that has a zero byte in it
  365.39 -+	addne   r0, r0, $1              @
  365.40 -+	tstne   r2, $0x00ff0000         @ and add up to 3 bytes on to it
  365.41 -+	addne   r0, r0, $1              @
  365.42 -+	tstne   r2, $0x0000ff00         @ (if first three all non-zero, 4th
  365.43 -+	addne   r0, r0, $1              @  must be zero)
  365.44 -+#else
  365.45 - 	tst     r2, $0x000000ff         @ word that has a zero byte in it
  365.46 - 	addne   r0, r0, $1              @
  365.47 - 	tstne   r2, $0x0000ff00         @ and add up to 3 bytes on to it
  365.48 - 	addne   r0, r0, $1              @
  365.49 - 	tstne   r2, $0x00ff0000         @ (if first three all non-zero, 4th
  365.50 - 	addne   r0, r0, $1              @  must be zero)
  365.51 -+#endif
  365.52 - 	RETINSTR(mov,pc,lr)
  365.53 - END(strlen)
  365.54 - libc_hidden_builtin_def (strlen)
  365.55 -
  365.56 ---=-=-=--
  365.57 -
   366.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-pr139-fix.patch	Tue Aug 14 19:32:22 2007 +0000
   366.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   366.3 @@ -1,104 +0,0 @@
   366.4 -2004-04-29  Jakub Jelinek  <jakub@redhat.com>
   366.5 -
   366.6 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c (_Qp_qtoi): Use %f31
   366.7 -	for single precision register, add it to __asm clobbers [BZ #139].
   366.8 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c (_Qp_qtoui): Use %f31
   366.9 -	for single precision register, add it to __asm clobbers.
  366.10 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c (_Qp_qtoux): Use fqtox
  366.11 -	instead of fqtoi in QP_HANDLE_EXCEPTIONS.
  366.12 -	* sysdeps/sparc/sparc64/soft-fp/qp_qtox.c (_Qp_qtox): Likewise.
  366.13 -	Reported by M. H. VanLeeuwen <vanl@megsinet.net>.
  366.14 -
  366.15 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=139
  366.16 -Fixes error
  366.17 -qp_qtoi.s:261: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
  366.18 -plus a couple other things vanl noticed.
  366.19 -
  366.20 -diff -ur orig/qp_qtoi.c new/qp_qtoi.c
  366.21 ---- orig/qp_qtoi.c	Sat May  1 00:40:06 2004
  366.22 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoi.c	Sat May  1 00:39:40 2004
  366.23 -@@ -1,6 +1,6 @@
  366.24 - /* Software floating-point emulation.
  366.25 -    Return (int)(*a)
  366.26 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  366.27 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  366.28 -    This file is part of the GNU C Library.
  366.29 -    Contributed by Richard Henderson (rth@cygnus.com) and
  366.30 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  366.31 -@@ -38,9 +38,9 @@
  366.32 -   	__asm (
  366.33 - "	ldd [%1], %%f52\n"
  366.34 - "	ldd [%1+8], %%f54\n"
  366.35 --"	fqtoi %%f52, %%f60\n"
  366.36 --"	st %%f60, [%0]\n"
  366.37 --"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
  366.38 -+"	fqtoi %%f52, %%f31\n"
  366.39 -+"	st %%f31, [%0]\n"
  366.40 -+"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
  366.41 - 	r = rx);
  366.42 - 
  366.43 -   return r;
  366.44 -diff -ur orig/qp_qtoui.c new/qp_qtoui.c
  366.45 ---- orig/qp_qtoui.c	Sat May  1 00:40:06 2004
  366.46 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoui.c	Sat May  1 00:39:40 2004
  366.47 -@@ -1,6 +1,6 @@
  366.48 - /* Software floating-point emulation.
  366.49 -    Return (unsigned int)(*a)
  366.50 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  366.51 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  366.52 -    This file is part of the GNU C Library.
  366.53 -    Contributed by Richard Henderson (rth@cygnus.com) and
  366.54 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  366.55 -@@ -38,9 +38,9 @@
  366.56 -   	__asm (
  366.57 - "	ldd [%1], %%f52\n"
  366.58 - "	ldd [%1+8], %%f54\n"
  366.59 --"	fqtoi %%f52, %%f60\n"
  366.60 --"	st %%f60, [%0]\n"
  366.61 --"	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
  366.62 -+"	fqtoi %%f52, %%f31\n"
  366.63 -+"	st %%f31, [%0]\n"
  366.64 -+"	" : : "r" (&rx), "r" (a) : QP_CLOBBER, "f31");
  366.65 - 	r = rx);
  366.66 - 
  366.67 -   return r;
  366.68 -diff -ur orig/qp_qtoux.c new/qp_qtoux.c
  366.69 ---- orig/qp_qtoux.c	Sat May  1 00:40:06 2004
  366.70 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtoux.c	Sat May  1 00:39:40 2004
  366.71 -@@ -1,6 +1,6 @@
  366.72 - /* Software floating-point emulation.
  366.73 -    Return (unsigned long)(*a)
  366.74 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  366.75 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  366.76 -    This file is part of the GNU C Library.
  366.77 -    Contributed by Richard Henderson (rth@cygnus.com) and
  366.78 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  366.79 -@@ -38,7 +38,7 @@
  366.80 -   	__asm (
  366.81 - "	ldd [%1], %%f52\n"
  366.82 - "	ldd [%1+8], %%f54\n"
  366.83 --"	fqtoi %%f52, %%f60\n"
  366.84 -+"	fqtox %%f52, %%f60\n"
  366.85 - "	std %%f60, [%0]\n"
  366.86 - "	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
  366.87 - 	r = rx);
  366.88 -diff -ur orig/qp_qtox.c new/qp_qtox.c
  366.89 ---- orig/qp_qtox.c	Sat May  1 00:40:06 2004
  366.90 -+++ libc/sysdeps/sparc/sparc64/soft-fp/qp_qtox.c	Sat May  1 00:39:40 2004
  366.91 -@@ -1,6 +1,6 @@
  366.92 - /* Software floating-point emulation.
  366.93 -    Return (long)(*a)
  366.94 --   Copyright (C) 1997,1999 Free Software Foundation, Inc.
  366.95 -+   Copyright (C) 1997, 1999, 2004 Free Software Foundation, Inc.
  366.96 -    This file is part of the GNU C Library.
  366.97 -    Contributed by Richard Henderson (rth@cygnus.com) and
  366.98 - 		  Jakub Jelinek (jj@ultra.linux.cz).
  366.99 -@@ -38,7 +38,7 @@
 366.100 -   	__asm (
 366.101 - "	ldd [%1], %%f52\n"
 366.102 - "	ldd [%1+8], %%f54\n"
 366.103 --"	fqtoi %%f52, %%f60\n"
 366.104 -+"	fqtox %%f52, %%f60\n"
 366.105 - "	std %%f60, [%0]\n"
 366.106 - "	" : : "r" (&rx), "r" (a) : QP_CLOBBER);
 366.107 - 	r = rx);
   367.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-sparc32-sysdep.patch	Tue Aug 14 19:32:22 2007 +0000
   367.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   367.3 @@ -1,46 +0,0 @@
   367.4 -Fixes the error
   367.5 -
   367.6 -<stdin>: Assembler messages:
   367.7 -<stdin>:2: Error: junk at end of line, first unrecognized character is `1' ...
   367.8 -<stdin>:2: Error: Illegal operands: PC-relative operand can't be a constant
   367.9 -make[4]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-open.os] Error 1
  367.10 -make[4]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/io'
  367.11 -make[3]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/io/rtld-xstat64.os] Error 2
  367.12 -make[3]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
  367.13 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/rtld-libc.a] Error 2
  367.14 -make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc13/build/sparc-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/glibc-2.3.2/elf'
  367.15 -make[1]: *** [elf/subdir_lib] Error 2
  367.16 -
  367.17 -when building glibc-2.3.2 with gcc-3.4.0 for sparc32.
  367.18 -
  367.19 -The .s file left behind by -save-temps contains the big long line
  367.20 -
  367.21 -.text; .global __libc_open; .align 4; __libc_open:; .type __libc_open,@function;; mov 5, %g1; ta 0x10; bcs __syscall_error_handler; nop; .section .gnu.linkonce.t. 1 .get_pic.l7,"ax",@progbits; .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7; .type 1 .get_pic.l7,@function; 1 .get_pic.l7: retl; add %o7, %l7, %l7; .previous; .subsection 3; __syscall_error_handler: save %sp,-96,%sp; sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; call 1 .get_pic.l7; add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; ld [%l7 + errno], %l0; st %i0, [%l0]; jmpl %i7+8, %g0; restore %g0, -1, %o0; .previous;
  367.22 - retl; nop 
  367.23 - 
  367.24 -The error messages appear to refer to the '1 .get_pic.17', e.g.
  367.25 -        .globl 1 .get_pic.l7; .hidden 1 .get_pic.l7;
  367.26 -which seems to come from
  367.27 -glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
  367.28 -where it appears originally as
  367.29 -        .globl __sparc.get_pic.l7;                                      \
  367.30 -        .hidden __sparc.get_pic.l7;                                     \
  367.31 -
  367.32 -Note that __sparc is a predefined symbol on Solaris and some other environments;
  367.33 -it's not surprising to see it predefined on Linux, too.
  367.34 -
  367.35 -
  367.36 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h.old	2004-05-15 10:23:11.000000000 -0700
  367.37 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h	2004-05-15 10:24:12.000000000 -0700
  367.38 -@@ -39,6 +39,11 @@
  367.39 - #undef END
  367.40 - #undef LOC
  367.41 - 
  367.42 -+/* gcc-3.4.0 seems to expand __sparc as a predefined preprocessor symbol, which we don't want here */
  367.43 -+#ifdef __sparc
  367.44 -+#undef __sparc
  367.45 -+#endif
  367.46 -+
  367.47 - #define ENTRY(name) \
  367.48 - 	.global C_SYMBOL_NAME(name); \
  367.49 - 	.align 4;\
   368.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-sparc64-dl-machine.patch	Tue Aug 14 19:32:22 2007 +0000
   368.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   368.3 @@ -1,29 +0,0 @@
   368.4 -See http://gcc.gnu.org/PR15345
   368.5 -
   368.6 -Quick kludge by H.J.Lu
   368.7 -Works around gcc-3.4.0 error which shows up when building glibc-2.3.2 for sparc64:
   368.8 -
   368.9 -.../sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.a(dl-reloc.o)(.text+0x4b4): In function `elf_machine_load_address.3':
  368.10 -: undefined reference to `_DYNAMIC'
  368.11 -collect2: ld returned 1 exit status
  368.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/sln] Error 1
  368.13 -
  368.14 -
  368.15 ---- glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h.orig	Sat May  8 20:54:26 2004
  368.16 -+++ glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h	Sat May  8 17:18:04 2004
  368.17 -@@ -65,6 +65,7 @@
  368.18 - }
  368.19 - 
  368.20 - /* Return the run-time load address of the shared object.  */
  368.21 -+#ifdef IS_IN_rtld
  368.22 - static inline Elf64_Addr
  368.23 - elf_machine_load_address (void)
  368.24 - {
  368.25 -@@ -84,6 +85,7 @@
  368.26 -      pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12  */
  368.27 -   return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
  368.28 - }
  368.29 -+#endif
  368.30 - 
  368.31 - /* We have 4 cases to handle.  And we code different code sequences
  368.32 -    for each one.  I love V9 code models...  */
   369.1 --- a/patches/glibc/2.3.3/glibc-2.3.2-without-fp.patch	Tue Aug 14 19:32:22 2007 +0000
   369.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   369.3 @@ -1,89 +0,0 @@
   369.4 -Sender: libc-alpha-owner@sources.redhat.com
   369.5 -Date: Tue, 29 Jul 2003 17:49:47 -0400
   369.6 -From: Daniel Jacobowitz <drow@mvista.com>
   369.7 -To: GNU C Library <libc-alpha@sources.redhat.com>
   369.8 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
   369.9 -Message-ID: <20030729214947.GA29932@nevyn.them.org>
  369.10 -
  369.11 -On Tue, Jul 29, 2003 at 02:53:33PM -0700, Dan Kegel wrote:
  369.12 -> On ppc405, I'm getting the following when linking glibc's libm:
  369.13 -> /gcc-3.3-glibc-2.3.2/build-glibc/math/libm_pic.a(fclrexcpt.os)(.text+0x1a): 
  369.14 -> In function `feclearexcept@GLIBC_2.1':
  369.15 -> : undefined reference to `__sim_exceptions'
  369.16 -> 
  369.17 -> That symbol seems to be present in libc.so.  nm shows
  369.18 -
  369.19 ---without-fp doesn't work.  Try this.  Make up a changelog entry if it
  369.20 -works.
  369.21 -
  369.22 -Date: Tue, 29 Jul 2003 14:56:50 -0700
  369.23 -Message-Id: <200307292156.h6TLuol24356@magilla.sf.frob.com>
  369.24 -From: Roland McGrath <roland@redhat.com>
  369.25 -To: Daniel Jacobowitz <drow@mvista.com>
  369.26 -Cc: GNU C Library <libc-alpha@sources.redhat.com>
  369.27 -Subject: Re: __sim_exceptions undefined when linking glibc-2.3.2's libm.so with --without-fp
  369.28 -In-Reply-To: Daniel Jacobowitz's message of  Tuesday, 29 July 2003 17:49:47 -0400 <20030729214947.GA29932@nevyn.them.org>
  369.29 -
  369.30 -> +int __sim_exceptions __attribute__ ((section(".bss")));
  369.31 -
  369.32 -Use __attribute__ ((nocommon)) instead (and please watch the standard
  369.33 -whitespace conventions, i.e. ``section ('').
  369.34 -
  369.35 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c
  369.36 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/sim-full.c	2002-10-19 16:06:29.000000000 -0400
  369.37 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/sim-full.c	2003-05-14 15:10:42.000000000 -0400
  369.38 -@@ -24,11 +24,14 @@
  369.39 - 
  369.40 - /* Global to store sticky exceptions.  */
  369.41 --int __sim_exceptions;
  369.42 -+int __sim_exceptions __attribute__ ((nocommon));
  369.43 -+libc_hidden_data_def (__sim_exceptions);
  369.44 - 
  369.45 - /* By default, no exceptions should trap.  */
  369.46 - int __sim_disabled_exceptions = 0xffffffff;
  369.47 -+libc_hidden_data_def (__sim_disabled_exceptions);
  369.48 - 
  369.49 --int __sim_round_mode;
  369.50 -+int __sim_round_mode __attribute__ ((nocommon));
  369.51 -+libc_hidden_data_def (__sim_round_mode);
  369.52 - 
  369.53 - void
  369.54 - __simulate_exceptions (int x)
  369.55 -diff -purN glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h
  369.56 ---- glibc-2.3.2.orig/sysdeps/powerpc/nofpu/soft-supp.h	2002-10-19 16:06:29.000000000 -0400
  369.57 -+++ glibc-2.3.2/sysdeps/powerpc/nofpu/soft-supp.h	2003-05-14 15:09:53.000000000 -0400
  369.58 -@@ -27,7 +27,11 @@ typedef union
  369.59 - } fenv_union_t;
  369.60 - 
  369.61 - 
  369.62 --extern int __sim_exceptions attribute_hidden;
  369.63 --extern int __sim_disabled_exceptions attribute_hidden;
  369.64 --extern int __sim_round_mode attribute_hidden;
  369.65 -+extern int __sim_exceptions;
  369.66 -+libc_hidden_proto (__sim_exceptions);
  369.67 -+extern int __sim_disabled_exceptions;
  369.68 -+libc_hidden_proto (__sim_disabled_exceptions);
  369.69 -+extern int __sim_round_mode;
  369.70 -+libc_hidden_proto (__sim_round_mode);
  369.71 -+
  369.72 - extern void __simulate_exceptions (int x) attribute_hidden;
  369.73 -diff -urp glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h
  369.74 ---- glibc-2.3.2.orig/sysdeps/powerpc/soft-fp/sfp-machine.h	2002-10-17 18:36:14.000000000 -0400
  369.75 -+++ glibc-2.3.2/sysdeps/powerpc/soft-fp/sfp-machine.h	2003-05-14 16:48:13.000000000 -0400
  369.76 -@@ -52,7 +52,11 @@
  369.77 - #define FP_HANDLE_EXCEPTIONS  __simulate_exceptions (_fex)
  369.78 - #define FP_ROUNDMODE          __sim_round_mode
  369.79 - 
  369.80 --extern int __sim_exceptions attribute_hidden;
  369.81 --extern int __sim_disabled_exceptions attribute_hidden;
  369.82 --extern int __sim_round_mode attribute_hidden;
  369.83 -+extern int __sim_exceptions;
  369.84 -+libc_hidden_proto (__sim_exceptions);
  369.85 -+extern int __sim_disabled_exceptions;
  369.86 -+libc_hidden_proto (__sim_disabled_exceptions);
  369.87 -+extern int __sim_round_mode;
  369.88 -+libc_hidden_proto (__sim_round_mode);
  369.89 -+
  369.90 - extern void __simulate_exceptions (int x) attribute_hidden;
  369.91 -
  369.92 -
   370.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-configure.patch	Tue Aug 14 19:32:22 2007 +0000
   370.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   370.3 @@ -1,30 +0,0 @@
   370.4 -Fixes following problem building glibc-2.3.3 with gcc-4.0:
   370.5 -
   370.6 -checking version of i686-unknown-linux-gnu-gcc ... 4.0.0, bad
   370.7 -checking for gnumake... no
   370.8 -checking for gmake... gmake
   370.9 -checking version of gmake... 3.79.1, ok
  370.10 -checking for gnumsgfmt... no
  370.11 -checking for gmsgfmt... no
  370.12 -checking for msgfmt... msgfmt
  370.13 -checking version of msgfmt... 0.11.4, ok
  370.14 -checking for makeinfo... makeinfo
  370.15 -checking version of makeinfo... 4.3, ok
  370.16 -checking for sed... sed
  370.17 -checking version of sed... 4.0.5, ok
  370.18 -checking for autoconf... autoconf
  370.19 -checking whether autoconf works... yes
  370.20 -configure: error:
  370.21 -*** These critical programs are missing or too old: gcc
  370.22 -
  370.23 ---- glibc-2.3.3/configure.old	Mon Mar 14 12:01:10 2005
  370.24 -+++ glibc-2.3.3/configure	Mon Mar 14 12:02:03 2005
  370.25 -@@ -3899,7 +3899,7 @@
  370.26 -   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
  370.27 -   case $ac_prog_version in
  370.28 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  370.29 --    3.[2-9]*)
  370.30 -+    3.[2-9]*|4.[01]*)
  370.31 -        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
  370.32 -     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
  370.33 - 
   371.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-elf-2.patch	Tue Aug 14 19:32:22 2007 +0000
   371.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   371.3 @@ -1,53 +0,0 @@
   371.4 -Fixes
   371.5 -
   371.6 -In file included from dynamic-link.h:310,
   371.7 -                 from dl-reloc.c:265:
   371.8 -do-rel.h:56: error: invalid storage class for function 'elf_dynamic_do_rela'
   371.9 -In file included from dl-reloc.c:265:
  371.10 -dynamic-link.h: In function '_dl_relocate_object':
  371.11 -dynamic-link.h:33: error: invalid storage class for function 'elf_get_dynamic_info'
  371.12 -
  371.13 -when building glibc-2.3.3 with gcc-4.0
  371.14 -2nd hunk is like http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dynamic-link.h.diff?r1=1.50&r2=1.51&cvsroot=glibc
  371.15 -but works with older compilers, too
  371.16 -
  371.17 ---- glibc-2.3.3/elf/do-rel.h.old	2005-03-16 13:09:37.000000000 -0800
  371.18 -+++ glibc-2.3.3/elf/do-rel.h	2005-03-16 13:10:50.000000000 -0800
  371.19 -@@ -49,7 +49,14 @@
  371.20 -    relocations; they should be set up to call _dl_runtime_resolve, rather
  371.21 -    than fully resolved now.  */
  371.22 - 
  371.23 --static inline void __attribute__ ((always_inline))
  371.24 -+#if __GNUC__ >= 4
  371.25 -+  auto inline void
  371.26 -+#else
  371.27 -+  static inline void
  371.28 -+#endif
  371.29 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  371.30 -+  __attribute ((always_inline))
  371.31 -+#endif
  371.32 - elf_dynamic_do_rel (struct link_map *map,
  371.33 - 		    ElfW(Addr) reladdr, ElfW(Addr) relsize,
  371.34 - 		    int lazy)
  371.35 ---- glibc-2.3.3/elf/dynamic-link.h.old	2005-03-16 13:22:35.000000000 -0800
  371.36 -+++ glibc-2.3.3/elf/dynamic-link.h	2005-03-16 13:26:23.000000000 -0800
  371.37 -@@ -27,8 +27,17 @@
  371.38 - 
  371.39 - 
  371.40 - /* Read the dynamic section at DYN and fill in INFO with indices DT_*.  */
  371.41 --
  371.42 --static inline void __attribute__ ((unused, always_inline))
  371.43 -+#if !defined(RESOLVE) || __GNUC__ < 4
  371.44 -+static
  371.45 -+#else
  371.46 -+auto
  371.47 -+#endif
  371.48 -+inline void 
  371.49 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  371.50 -+  __attribute__ ((unused, always_inline))
  371.51 -+#else
  371.52 -+  __attribute__ ((unused))
  371.53 -+#endif
  371.54 - elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp)
  371.55 - {
  371.56 -   ElfW(Dyn) *dyn = l->l_ld;
   372.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-elf-3.patch	Tue Aug 14 19:32:22 2007 +0000
   372.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   372.3 @@ -1,79 +0,0 @@
   372.4 -Fixes
   372.5 -In file included from ldconfig.c:136:
   372.6 -../sysdeps/i386/dl-procinfo.c:53: error: static declaration of '_dl_x86_cap_flags' follows non-static declaration
   372.7 -../sysdeps/i386/dl-procinfo.c:61: error: previous declaration of '_dl_x86_cap_flags' was here
   372.8 -../sysdeps/i386/dl-procinfo.c:72: error: static declaration of '_dl_x86_platforms' follows non-static declaration
   372.9 -../sysdeps/i386/dl-procinfo.c:77: error: previous declaration of '_dl_x86_platforms' was here
  372.10 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
  372.11 -when building with gcc-4.0.
  372.12 -
  372.13 -2004-07-10  Ulrich Drepper  <drepper@redhat.com>
  372.14 -
  372.15 -        * elf/ldconfig.c: Define PROCINFO_CLASS as static before including
  372.16 -        ldsodefs.h.
  372.17 -        * sysdeps/generic/ldsodefs.h: Only define PROCINFO_CLASS if it is not
  372.18 -        already defined.
  372.19 -        * sysdeps/i386/dl-procinfo.c: Define PROCINFO_CALLS only if not
  372.20 -        already defined.
  372.21 -
  372.22 -See 
  372.23 -http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg00093.html
  372.24 -http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg00097.html
  372.25 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-procinfo.c.diff?cvsroot=glibc&r1=1.1&r2=1.2
  372.26 -
  372.27 -rediffed against glibc-2.3.3
  372.28 -
  372.29 -diff -ur glibc-2.3.3.orig/elf/ldconfig.c glibc-2.3.3/elf/ldconfig.c
  372.30 ---- glibc-2.3.3.orig/elf/ldconfig.c	Tue Aug 26 01:07:19 2003
  372.31 -+++ glibc-2.3.3/elf/ldconfig.c	Sat Mar 19 12:02:08 2005
  372.32 -@@ -17,6 +17,7 @@
  372.33 -    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  372.34 -    02111-1307 USA.  */
  372.35 - 
  372.36 -+#define PROCINFO_CLASS static
  372.37 - #include <alloca.h>
  372.38 - #include <argp.h>
  372.39 - #include <dirent.h>
  372.40 -diff -ur glibc-2.3.3.orig/sysdeps/generic/ldsodefs.h glibc-2.3.3/sysdeps/generic/ldsodefs.h
  372.41 ---- glibc-2.3.3.orig/sysdeps/generic/ldsodefs.h	Mon Nov 24 14:56:07 2003
  372.42 -+++ glibc-2.3.3/sysdeps/generic/ldsodefs.h	Sat Mar 19 12:02:08 2005
  372.43 -@@ -348,7 +348,9 @@
  372.44 - 
  372.45 -   /* Get architecture specific definitions.  */
  372.46 - #define PROCINFO_DECL
  372.47 --#define PROCINFO_CLASS EXTERN
  372.48 -+#ifndef PROCINFO_CLASS
  372.49 -+# define PROCINFO_CLASS EXTERN
  372.50 -+#endif
  372.51 - #include <dl-procinfo.c>
  372.52 - 
  372.53 -   /* Structure describing the dynamic linker itself.  */
  372.54 -Only in glibc-2.3.3/sysdeps/generic: ldsodefs.h~
  372.55 -diff -ur glibc-2.3.3.orig/sysdeps/i386/dl-procinfo.c glibc-2.3.3/sysdeps/i386/dl-procinfo.c
  372.56 ---- glibc-2.3.3.orig/sysdeps/i386/dl-procinfo.c	Wed Sep 24 20:54:54 2003
  372.57 -+++ glibc-2.3.3/sysdeps/i386/dl-procinfo.c	Sat Mar 19 12:02:08 2005
  372.58 -@@ -1,5 +1,5 @@
  372.59 - /* Data for i386 version of processor capability information.
  372.60 --   Copyright (C) 2001,2002,2003 Free Software Foundation, Inc.
  372.61 -+   Copyright (C) 2001,2002,2003, 2004 Free Software Foundation, Inc.
  372.62 -    This file is part of the GNU C Library.
  372.63 -    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  372.64 - 
  372.65 -@@ -24,7 +24,7 @@
  372.66 -    If anything should be added here check whether the size of each string
  372.67 -    is still ok with the given array size.
  372.68 - 
  372.69 --   All the #ifdefs in the definitions ar equite irritating but
  372.70 -+   All the #ifdefs in the definitions are quite irritating but
  372.71 -    necessary if we want to avoid duplicating the information.  There
  372.72 -    are three different modes:
  372.73 - 
  372.74 -@@ -41,7 +41,7 @@
  372.75 -   */
  372.76 - 
  372.77 - #ifndef PROCINFO_CLASS
  372.78 --#define PROCINFO_CLASS
  372.79 -+# define PROCINFO_CLASS
  372.80 - #endif
  372.81 - 
  372.82 - #if !defined PROCINFO_DECL && defined SHARED
   373.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-i386.patch	Tue Aug 14 19:32:22 2007 +0000
   373.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   373.3 @@ -1,111 +0,0 @@
   373.4 -Fixes
   373.5 -
   373.6 -In file included from dynamic-link.h:22,
   373.7 -                 from dl-reloc.c:265:
   373.8 -../sysdeps/i386/dl-machine.h: In function '_dl_relocate_object':
   373.9 -../sysdeps/i386/dl-machine.h:395: error: invalid storage class for function 'elf_machine_rel'
  373.10 -../sysdeps/i386/dl-machine.h:539: error: invalid storage class for function 'elf_machine_rela'
  373.11 -../sysdeps/i386/dl-machine.h:640: error: invalid storage class for function 'elf_machine_rel_relative'
  373.12 -../sysdeps/i386/dl-machine.h:650: error: invalid storage class for function 'elf_machine_rela_relative'
  373.13 -../sysdeps/i386/dl-machine.h:659: error: invalid storage class for function 'elf_machine_lazy_rel'
  373.14 -../sysdeps/i386/dl-machine.h:680: error: invalid storage class for function 'elf_machine_lazy_rela'
  373.15 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/build-glibc/elf/dl-reloc.o] Error 1
  373.16 -
  373.17 ---- glibc-2.3.3/sysdeps/i386/dl-machine.h.old	Wed Mar 16 22:24:09 2005
  373.18 -+++ glibc-2.3.3/sysdeps/i386/dl-machine.h	Thu Mar 17 01:30:09 2005
  373.19 -@@ -385,7 +385,14 @@
  373.20 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
  373.21 -    MAP is the object containing the reloc.  */
  373.22 - 
  373.23 --static inline void
  373.24 -+#if __GNUC__ >= 4
  373.25 -+  auto inline void
  373.26 -+#else
  373.27 -+  static inline void
  373.28 -+#endif
  373.29 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  373.30 -+  __attribute ((always_inline))
  373.31 -+#endif
  373.32 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
  373.33 - 		 const Elf32_Sym *sym, const struct r_found_version *version,
  373.34 - 		 void *const reloc_addr_arg)
  373.35 -@@ -529,7 +536,14 @@
  373.36 - }
  373.37 - 
  373.38 - #ifndef RTLD_BOOTSTRAP
  373.39 --static inline void
  373.40 -+#if __GNUC__ >= 4
  373.41 -+  auto inline void
  373.42 -+#else
  373.43 -+  static inline void
  373.44 -+#endif
  373.45 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  373.46 -+  __attribute ((always_inline))
  373.47 -+#endif
  373.48 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
  373.49 - 		  const Elf32_Sym *sym, const struct r_found_version *version,
  373.50 - 		  void *const reloc_addr_arg)
  373.51 -@@ -631,7 +645,14 @@
  373.52 - }
  373.53 - #endif	/* !RTLD_BOOTSTRAP */
  373.54 - 
  373.55 --static inline void
  373.56 -+#if __GNUC__ >= 4
  373.57 -+  auto inline void
  373.58 -+#else
  373.59 -+  static inline void
  373.60 -+#endif
  373.61 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  373.62 -+  __attribute ((always_inline))
  373.63 -+#endif
  373.64 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
  373.65 - 			  void *const reloc_addr_arg)
  373.66 - {
  373.67 -@@ -641,7 +662,14 @@
  373.68 - }
  373.69 - 
  373.70 - #ifndef RTLD_BOOTSTRAP
  373.71 --static inline void
  373.72 -+#if __GNUC__ >= 4
  373.73 -+  auto inline void
  373.74 -+#else
  373.75 -+  static inline void
  373.76 -+#endif
  373.77 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  373.78 -+  __attribute ((always_inline))
  373.79 -+#endif
  373.80 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
  373.81 - 			   void *const reloc_addr_arg)
  373.82 - {
  373.83 -@@ -650,7 +678,14 @@
  373.84 - }
  373.85 - #endif	/* !RTLD_BOOTSTRAP */
  373.86 - 
  373.87 --static inline void
  373.88 -+#if __GNUC__ >= 4
  373.89 -+  auto inline void
  373.90 -+#else
  373.91 -+  static inline void
  373.92 -+#endif
  373.93 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  373.94 -+  __attribute ((always_inline))
  373.95 -+#endif
  373.96 - elf_machine_lazy_rel (struct link_map *map,
  373.97 - 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
  373.98 - {
  373.99 -@@ -671,7 +706,14 @@
 373.100 - 
 373.101 - #ifndef RTLD_BOOTSTRAP
 373.102 - 
 373.103 --static inline void
 373.104 -+#if __GNUC__ >= 4
 373.105 -+  auto inline void
 373.106 -+#else
 373.107 -+  static inline void
 373.108 -+#endif
 373.109 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 373.110 -+  __attribute ((always_inline))
 373.111 -+#endif
 373.112 - elf_machine_lazy_rela (struct link_map *map,
 373.113 - 		       Elf32_Addr l_addr, const Elf32_Rela *reloc)
 373.114 - {
   374.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconv.patch	Tue Aug 14 19:32:22 2007 +0000
   374.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   374.3 @@ -1,24 +0,0 @@
   374.4 -Fixes
   374.5 -iconvconfig.c: In function 'write_output':
   374.6 -iconvconfig.c:1014: error: invalid storage class for function 'name_insert'
   374.7 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/x86_64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/iconv'
   374.8 -
   374.9 -Like http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/iconv/iconvconfig.c.diff?r1=1.19&r2=1.20&cvsroot=glibc
  374.10 -but works with older compilers
  374.11 -
  374.12 ---- glibc-2.3.3/iconv/iconvconfig.c.old	Thu Mar 17 01:23:04 2005
  374.13 -+++ glibc-2.3.3/iconv/iconvconfig.c	Thu Mar 17 01:24:56 2005
  374.14 -@@ -1010,7 +1010,12 @@
  374.15 -   char finalname[prefix_len + sizeof (GCONV_MODULES_CACHE)];
  374.16 - 
  374.17 -   /* Function to insert the names.  */
  374.18 --  static void name_insert (const void *nodep, VISIT value, int level)
  374.19 -+#if __GNUC__ >= 4
  374.20 -+  auto void 
  374.21 -+#else
  374.22 -+  static void 
  374.23 -+#endif
  374.24 -+  name_insert (const void *nodep, VISIT value, int level)
  374.25 -     {
  374.26 -       struct name *name;
  374.27 -       unsigned int idx;
   375.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconvdata-2.patch	Tue Aug 14 19:32:22 2007 +0000
   375.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   375.3 @@ -1,124 +0,0 @@
   375.4 -To: Glibc hackers <libc-hacker at sources dot redhat dot com>
   375.5 -Subject: iconvdata: Get rid of lvalue casts
   375.6 -From: Andreas Jaeger <aj at suse dot de>
   375.7 -Date: Sun, 07 Mar 2004 08:29:47 +0100
   375.8 -Message-ID: <m3fzclt8r8.fsf@gromit.moeb>
   375.9 -
  375.10 -Here's one more patch to get rid of lvalues to make GCC 3.5 happy.  It
  375.11 -generates the same code as before on my machine and passes the
  375.12 -testsuite.
  375.13 -
  375.14 -Ok to commit?
  375.15 -
  375.16 -Andreas
  375.17 -
  375.18 -2004-03-07  Andreas Jaeger  <aj@suse.de>
  375.19 -
  375.20 -	* iconvdata/iso-2022-cn-ext.c (BODY): Remove cast used as lvalue.
  375.21 -	* iconvdata/tcvn5712-1.c (EMIT_SHIFT_TO_INIT): Likewise.
  375.22 -	* iconvdata/euc-jisx0213.c (EMIT_SHIFT_TO_INIT): Likewise.
  375.23 -	* iconvdata/shift_jisx0213.c (EMIT_SHIFT_TO_INIT): Likewise.
  375.24 -	* iconvdata/tscii.c (EMIT_SHIFT_TO_INIT): Likewise.
  375.25 -
  375.26 -[rediffed to make crosstool happy]
  375.27 -
  375.28 -diff -ur glibc-2.3.3.orig/iconvdata/euc-jisx0213.c glibc-2.3.3.new/iconvdata/euc-jisx0213.c
  375.29 ---- glibc-2.3.3.orig/iconvdata/euc-jisx0213.c	Mon Dec  2 14:07:54 2002
  375.30 -+++ glibc-2.3.3.new/iconvdata/euc-jisx0213.c	Fri Mar 18 09:29:22 2005
  375.31 -@@ -1,5 +1,5 @@
  375.32 - /* Conversion from and to EUC-JISX0213.
  375.33 --   Copyright (C) 2002 Free Software Foundation, Inc.
  375.34 -+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
  375.35 -    This file is part of the GNU C Library.
  375.36 -    Contributed by Bruno Haible <bruno@clisp.org>, 2002.
  375.37 - 
  375.38 -@@ -83,7 +83,8 @@
  375.39 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
  375.40 - 	    {								      \
  375.41 - 	      /* Write out the last character.  */			      \
  375.42 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
  375.43 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
  375.44 -+	      outbuf += sizeof (uint32_t);				      \
  375.45 - 	      data->__statep->__count = 0;				      \
  375.46 - 	    }								      \
  375.47 - 	  else								      \
  375.48 -diff -ur glibc-2.3.3.orig/iconvdata/iso-2022-cn-ext.c glibc-2.3.3.new/iconvdata/iso-2022-cn-ext.c
  375.49 ---- glibc-2.3.3.orig/iconvdata/iso-2022-cn-ext.c	Fri Jun 28 14:13:14 2002
  375.50 -+++ glibc-2.3.3.new/iconvdata/iso-2022-cn-ext.c	Fri Mar 18 09:29:22 2005
  375.51 -@@ -1,5 +1,5 @@
  375.52 - /* Conversion module for ISO-2022-CN-EXT.
  375.53 --   Copyright (C) 2000-2002 Free Software Foundation, Inc.
  375.54 -+   Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
  375.55 -    This file is part of the GNU C Library.
  375.56 -    Contributed by Ulrich Drepper <drepper@cygnus.com>, 2000.
  375.57 - 
  375.58 -@@ -377,7 +377,8 @@
  375.59 - 	  }								      \
  375.60 -       }									      \
  375.61 - 									      \
  375.62 --    *((uint32_t *) outptr)++ = ch;					      \
  375.63 -+    *((uint32_t *) outptr) = ch;					      \
  375.64 -+    outptr += sizeof (uint32_t);					      \
  375.65 -   }
  375.66 - #define EXTRA_LOOP_DECLS	, int *setp
  375.67 - #define INIT_PARAMS		int set = (*setp >> 3) & CURRENT_MASK; \
  375.68 -diff -ur glibc-2.3.3.orig/iconvdata/shift_jisx0213.c glibc-2.3.3.new/iconvdata/shift_jisx0213.c
  375.69 ---- glibc-2.3.3.orig/iconvdata/shift_jisx0213.c	Mon Dec  2 14:07:56 2002
  375.70 -+++ glibc-2.3.3.new/iconvdata/shift_jisx0213.c	Fri Mar 18 09:29:22 2005
  375.71 -@@ -1,5 +1,5 @@
  375.72 - /* Conversion from and to Shift_JISX0213.
  375.73 --   Copyright (C) 2002 Free Software Foundation, Inc.
  375.74 -+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
  375.75 -    This file is part of the GNU C Library.
  375.76 -    Contributed by Bruno Haible <bruno@clisp.org>, 2002.
  375.77 - 
  375.78 -@@ -83,7 +83,8 @@
  375.79 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
  375.80 - 	    {								      \
  375.81 - 	      /* Write out the last character.  */			      \
  375.82 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
  375.83 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
  375.84 -+	      outbuf += sizeof (uint32_t);				      \
  375.85 - 	      data->__statep->__count = 0;				      \
  375.86 - 	    }								      \
  375.87 - 	  else								      \
  375.88 -diff -ur glibc-2.3.3.orig/iconvdata/tcvn5712-1.c glibc-2.3.3.new/iconvdata/tcvn5712-1.c
  375.89 ---- glibc-2.3.3.orig/iconvdata/tcvn5712-1.c	Mon Dec  2 14:07:52 2002
  375.90 -+++ glibc-2.3.3.new/iconvdata/tcvn5712-1.c	Fri Mar 18 09:29:22 2005
  375.91 -@@ -1,5 +1,5 @@
  375.92 - /* Conversion to and from TCVN5712-1.
  375.93 --   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
  375.94 -+   Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
  375.95 -    This file is part of the GNU C Library.
  375.96 -    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  375.97 - 
  375.98 -@@ -68,7 +68,8 @@
  375.99 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
 375.100 - 	    {								      \
 375.101 - 	      /* Write out the last character.  */			      \
 375.102 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
 375.103 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
 375.104 -+	      outbuf += sizeof (uint32_t);				      \
 375.105 - 	      data->__statep->__count = 0;				      \
 375.106 - 	    }								      \
 375.107 - 	  else								      \
 375.108 -diff -ur glibc-2.3.3.orig/iconvdata/tscii.c glibc-2.3.3.new/iconvdata/tscii.c
 375.109 ---- glibc-2.3.3.orig/iconvdata/tscii.c	Mon Sep 23 20:39:45 2002
 375.110 -+++ glibc-2.3.3.new/iconvdata/tscii.c	Fri Mar 18 09:29:22 2005
 375.111 -@@ -1,5 +1,5 @@
 375.112 - /* Conversion from and to TSCII.
 375.113 --   Copyright (C) 2002 Free Software Foundation, Inc.
 375.114 -+   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 375.115 -    This file is part of the GNU C Library.
 375.116 -    Contributed by Bruno Haible <bruno@clisp.org>, 2002.
 375.117 - 
 375.118 -@@ -98,7 +98,8 @@
 375.119 - 		  break;						      \
 375.120 - 		}							      \
 375.121 - 	      /* Write out the pending character.  */			      \
 375.122 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 8;	      \
 375.123 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 8;	      \
 375.124 -+	      outbuf += sizeof (uint32_t);				      \
 375.125 - 	      /* Retrieve the successor state.  */			      \
 375.126 - 	      data->__statep->__count =					      \
 375.127 - 		tscii_next_state[(data->__statep->__count >> 4) & 0x0f];      \
   376.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-iconvdata.patch	Tue Aug 14 19:32:22 2007 +0000
   376.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   376.3 @@ -1,142 +0,0 @@
   376.4 -Fixes
   376.5 -
   376.6 -In file included from jis0208.c:23:
   376.7 -jis0208.h:32: error: array type has incomplete element type
   376.8 -when building with gcc-4.0
   376.9 -
  376.10 -In file included from cp1258.c:869:
  376.11 -../iconv/skeleton.c: In function 'gconv':
  376.12 -../iconv/skeleton.c:323: error: invalid lvalue in increment
  376.13 -
  376.14 -In file included from cp1255.c:550:
  376.15 -../iconv/skeleton.c: In function 'gconv':
  376.16 -../iconv/skeleton.c:323: error: invalid lvalue in increment
  376.17 -
  376.18 -In file included from gb18030.c:22114:
  376.19 -../iconv/loop.c: In function 'from_gb18030':
  376.20 -../iconv/loop.c:282: error: invalid lvalue in increment
  376.21 -../iconv/loop.c: In function 'from_gb18030_single':
  376.22 -../iconv/loop.c:384: error: invalid lvalue in increment
  376.23 -
  376.24 -In file included from iso8859-1.c:43:
  376.25 -../iconv/loop.c: In function 'from_iso8859_1':
  376.26 -../iconv/loop.c:311: error: invalid lvalue in increment
  376.27 -
  376.28 -Rediffed, updated for glibc-2.3.3, added:
  376.29 -
  376.30 -In file included from armscii-8.c:85:
  376.31 -../iconv/loop.c: In function 'from_armscii_8':
  376.32 -../iconv/loop.c:311: error: invalid lvalue in increment
  376.33 -../iconv/loop.c:311: error: invalid lvalue in increment
  376.34 -
  376.35 ---- glibc-2.3.3.orig/iconvdata/armscii-8.c	Mon Dec  2 14:07:52 2002
  376.36 -+++ glibc-2.3.3/iconvdata/armscii-8.c	Thu Mar 17 16:01:23 2005
  376.37 -@@ -57,11 +57,17 @@
  376.38 -     uint_fast8_t ch = *inptr;						      \
  376.39 - 									      \
  376.40 -     if (ch <= 0xa0)							      \
  376.41 --      /* Upto and including 0xa0 the ARMSCII-8 corresponds to Unicode.  */    \
  376.42 --      *((uint32_t *) outptr)++ = ch;					      \
  376.43 -+      {									      \
  376.44 -+        /* Upto and including 0xa0 the ARMSCII-8 corresponds to Unicode.  */  \
  376.45 -+        *((uint32_t *) outptr) = ch;					      \
  376.46 -+        outptr += sizeof (uint32_t);					      \
  376.47 -+      }									      \
  376.48 -     else if (ch >= 0xa2 && ch <= 0xfe)					      \
  376.49 --      /* Use the table.  */						      \
  376.50 --      *((uint32_t *) outptr)++ = map_from_armscii_8[ch - 0xa2];		      \
  376.51 -+      {									      \
  376.52 -+        /* Use the table.  */						      \
  376.53 -+        *((uint32_t *) outptr) = map_from_armscii_8[ch - 0xa2];		      \
  376.54 -+        outptr += sizeof (uint32_t);					      \
  376.55 -+      }									      \
  376.56 -     else								      \
  376.57 -       {									      \
  376.58 - 	/* This is an illegal character.  */				      \
  376.59 -diff -ur glibc-2.3.3.orig/iconvdata/cp1255.c glibc-2.3.3/iconvdata/cp1255.c
  376.60 ---- glibc-2.3.3.orig/iconvdata/cp1255.c	Mon Dec  2 14:07:52 2002
  376.61 -+++ glibc-2.3.3/iconvdata/cp1255.c	Thu Mar 17 08:20:13 2005
  376.62 -@@ -69,7 +69,8 @@
  376.63 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
  376.64 - 	    {								      \
  376.65 - 	      /* Write out the last character.  */			      \
  376.66 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
  376.67 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
  376.68 -+	      outbuf += sizeof (uint32_t);				      \
  376.69 - 	      data->__statep->__count = 0;				      \
  376.70 - 	    }								      \
  376.71 - 	  else								      \
  376.72 -diff -ur glibc-2.3.3.orig/iconvdata/cp1258.c glibc-2.3.3/iconvdata/cp1258.c
  376.73 ---- glibc-2.3.3.orig/iconvdata/cp1258.c	Mon Dec  2 14:07:52 2002
  376.74 -+++ glibc-2.3.3/iconvdata/cp1258.c	Thu Mar 17 08:20:13 2005
  376.75 -@@ -70,7 +70,8 @@
  376.76 - 	  if (__builtin_expect (outbuf + 4 <= outend, 1))		      \
  376.77 - 	    {								      \
  376.78 - 	      /* Write out the last character.  */			      \
  376.79 --	      *((uint32_t *) outbuf)++ = data->__statep->__count >> 3;	      \
  376.80 -+	      *((uint32_t *) outbuf) = data->__statep->__count >> 3;	      \
  376.81 -+	      outbuf += sizeof (uint32_t);				      \
  376.82 - 	      data->__statep->__count = 0;				      \
  376.83 - 	    }								      \
  376.84 - 	  else								      \
  376.85 -diff -ur glibc-2.3.3.orig/iconvdata/gb18030.c glibc-2.3.3/iconvdata/gb18030.c
  376.86 ---- glibc-2.3.3.orig/iconvdata/gb18030.c	Mon Dec  2 14:07:54 2002
  376.87 -+++ glibc-2.3.3/iconvdata/gb18030.c	Thu Mar 17 08:20:13 2005
  376.88 -@@ -25769,7 +25769,8 @@
  376.89 - 	    }							      	      \
  376.90 - 	}								      \
  376.91 - 									      \
  376.92 --    *((uint32_t *) outptr)++ = ch;					      \
  376.93 -+    *((uint32_t *) outptr) = ch;					      \
  376.94 -+    outptr += sizeof (uint32_t);					      \
  376.95 -   }
  376.96 - #define LOOP_NEED_FLAGS
  376.97 - #define ONEBYTE_BODY \
  376.98 -diff -ur glibc-2.3.3.orig/iconvdata/iso8859-1.c glibc-2.3.3/iconvdata/iso8859-1.c
  376.99 ---- glibc-2.3.3.orig/iconvdata/iso8859-1.c	Mon Dec  2 14:07:56 2002
 376.100 -+++ glibc-2.3.3/iconvdata/iso8859-1.c	Thu Mar 17 08:20:47 2005
 376.101 -@@ -35,7 +35,8 @@
 376.102 - #define MIN_NEEDED_OUTPUT	MIN_NEEDED_TO
 376.103 - #define LOOPFCT			FROM_LOOP
 376.104 - #define BODY \
 376.105 --  *((uint32_t *) outptr)++ = *inptr++;
 376.106 -+  *((uint32_t *) outptr) = *inptr++;					      \
 376.107 -+  outptr += sizeof (uint32_t);
 376.108 - #define ONEBYTE_BODY \
 376.109 -   {									      \
 376.110 -     return c;								      \
 376.111 -diff -ur glibc-2.3.3.orig/iconvdata/jis0208.h glibc-2.3.3/iconvdata/jis0208.h
 376.112 ---- glibc-2.3.3.orig/iconvdata/jis0208.h	Wed Jun 11 14:40:42 2003
 376.113 -+++ glibc-2.3.3/iconvdata/jis0208.h	Thu Mar 17 08:20:13 2005
 376.114 -@@ -24,15 +24,6 @@
 376.115 - #include <gconv.h>
 376.116 - #include <stdint.h>
 376.117 - 
 376.118 --/* Conversion table.  */
 376.119 --extern const uint16_t __jis0208_to_ucs[];
 376.120 --
 376.121 --extern const char __jisx0208_from_ucs4_lat1[256][2];
 376.122 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
 376.123 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
 376.124 --extern const char __jisx0208_from_ucs_tab[][2];
 376.125 --
 376.126 --
 376.127 - /* Struct for table with indeces in UCS mapping table.  */
 376.128 - struct jisx0208_ucs_idx
 376.129 - {
 376.130 -@@ -40,6 +31,15 @@
 376.131 -   uint16_t end;
 376.132 -   uint16_t idx;
 376.133 - };
 376.134 -+
 376.135 -+
 376.136 -+/* Conversion table.  */
 376.137 -+extern const uint16_t __jis0208_to_ucs[];
 376.138 -+
 376.139 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
 376.140 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
 376.141 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
 376.142 -+extern const char __jisx0208_from_ucs_tab[][2];
 376.143 - 
 376.144 - 
 376.145 - static inline uint32_t
   377.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-locale.patch	Tue Aug 14 19:32:22 2007 +0000
   377.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   377.3 @@ -1,34 +0,0 @@
   377.4 ---- glibc-2.3.3/locale/weight.h.old	2003-06-11 14:52:12.000000000 -0700
   377.5 -+++ glibc-2.3.3/locale/weight.h	2005-03-15 12:05:37.000000000 -0800
   377.6 -@@ -18,8 +18,14 @@
   377.7 -    02111-1307 USA.  */
   377.8 - 
   377.9 - /* Find index of weight.  */
  377.10 -+#if __GNUC__ >= 4
  377.11 -+auto inline int32_t
  377.12 -+#else
  377.13 - static inline int32_t
  377.14 -+#endif
  377.15 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  377.16 - __attribute ((always_inline))
  377.17 -+#endif
  377.18 - findidx (const unsigned char **cpp)
  377.19 - {
  377.20 -   int_fast32_t i = table[*(*cpp)++];
  377.21 ---- glibc-2.3.3/locale/weightwc.h.old	2003-06-13 13:44:58.000000000 -0700
  377.22 -+++ glibc-2.3.3/locale/weightwc.h	2005-03-15 12:06:46.000000000 -0800
  377.23 -@@ -18,8 +18,14 @@
  377.24 -    02111-1307 USA.  */
  377.25 - 
  377.26 - /* Find index of weight.  */
  377.27 -+#if __GNUC__ >= 4
  377.28 -+auto inline int32_t
  377.29 -+#else
  377.30 - static inline int32_t
  377.31 -+#endif
  377.32 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  377.33 - __attribute ((always_inline))
  377.34 -+#endif
  377.35 - findidx (const wint_t **cpp)
  377.36 - {
  377.37 -   int32_t i;
   378.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-posix.patch	Tue Aug 14 19:32:22 2007 +0000
   378.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   378.3 @@ -1,77 +0,0 @@
   378.4 -Fixes errors
   378.5 -
   378.6 -regcomp.c: In function 'parse_bracket_exp':
   378.7 -regcomp.c:2724: error: invalid storage class for function 'seek_collating_symbol_entry'
   378.8 -regcomp.c:2757: error: invalid storage class for function 'lookup_collation_sequence_value'
   378.9 -regcomp.c:2826: error: invalid storage class for function 'build_range_exp'
  378.10 -regcomp.c:2913: error: invalid storage class for function 'build_collating_symbol'
  378.11 -...
  378.12 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-dev/build/x86_64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/build-glibc/posix/regex.o] Error 1
  378.13 -
  378.14 -See also http://sources.redhat.com/ml/glibc-cvs/2004-q3/msg01071.html
  378.15 -That fix requires gcc-4.0, but the fix proposed here works with older compilers, too
  378.16 -
  378.17 ---- glibc-2.3.3/posix/regcomp.c.old	2005-03-16 11:40:55.000000000 -0800
  378.18 -+++ glibc-2.3.3/posix/regcomp.c	2005-03-16 11:50:31.000000000 -0800
  378.19 -@@ -2718,8 +2718,14 @@
  378.20 -      Seek the collating symbol entry correspondings to NAME.
  378.21 -      Return the index of the symbol in the SYMB_TABLE.  */
  378.22 - 
  378.23 -+#if __GNUC__ >= 4
  378.24 -+  auto inline int32_t
  378.25 -+#else
  378.26 -   static inline int32_t
  378.27 -+#endif
  378.28 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  378.29 -   __attribute ((always_inline))
  378.30 -+#endif
  378.31 -   seek_collating_symbol_entry (name, name_len)
  378.32 - 	 const unsigned char *name;
  378.33 - 	 size_t name_len;
  378.34 -@@ -2751,8 +2757,14 @@
  378.35 -      Look up the collation sequence value of BR_ELEM.
  378.36 -      Return the value if succeeded, UINT_MAX otherwise.  */
  378.37 - 
  378.38 -+#if __GNUC__ >= 4
  378.39 -+  auto inline unsigned int
  378.40 -+#else
  378.41 -   static inline unsigned int
  378.42 -+#endif
  378.43 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  378.44 -   __attribute ((always_inline))
  378.45 -+#endif
  378.46 -   lookup_collation_sequence_value (br_elem)
  378.47 - 	 bracket_elem_t *br_elem;
  378.48 -     {
  378.49 -@@ -2819,8 +2831,14 @@
  378.50 -      mbcset->range_ends, is a pointer argument sinse we may
  378.51 -      update it.  */
  378.52 - 
  378.53 --  static inline reg_errcode_t
  378.54 -+#if __GNUC__ >= 4
  378.55 -+  auto inline reg_errcode_t
  378.56 -+#else
  378.57 -+  static inline reg_errcode_t
  378.58 -+#endif
  378.59 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  378.60 -   __attribute ((always_inline))
  378.61 -+#endif
  378.62 - # ifdef RE_ENABLE_I18N
  378.63 -   build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
  378.64 - 	 re_charset_t *mbcset;
  378.65 -@@ -2906,8 +2924,14 @@
  378.66 -      COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
  378.67 -      pointer argument sinse we may update it.  */
  378.68 - 
  378.69 --  static inline reg_errcode_t
  378.70 -+#if __GNUC__ >= 4
  378.71 -+  auto inline reg_errcode_t
  378.72 -+#else
  378.73 -+  static inline reg_errcode_t
  378.74 -+#endif
  378.75 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  378.76 -   __attribute ((always_inline))
  378.77 -+#endif
  378.78 - # ifdef RE_ENABLE_I18N
  378.79 -   build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
  378.80 - 	 re_charset_t *mbcset;
   379.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-powerpc-procfs.patch	Tue Aug 14 19:32:22 2007 +0000
   379.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   379.3 @@ -1,65 +0,0 @@
   379.4 -(Combined with earlier fix old/glibc-2.3.2-powerpc-procfs.patch
   379.5 -from http://sources.redhat.com/ml/libc-alpha/2003-12/msg00101.html)
   379.6 -
   379.7 -This fix discussed here:
   379.8 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
   379.9 -
  379.10 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
  379.11 -Branch: MAIN
  379.12 -CVS Tags: fedora-glibc-20050303T1335, HEAD
  379.13 -Changes since 1.11: +3 -8 lines
  379.14 -Diff to previous 1.11 (colored)
  379.15 -
  379.16 -2005-02-21  Alan Modra <amodra@bigpond.net.au>
  379.17 -
  379.18 -	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
  379.19 -	use __uint128_t.
  379.20 -
  379.21 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
  379.22 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
  379.23 -
  379.24 -Fixes
  379.25 -
  379.26 -In file included from ../linuxthreads_db/proc_service.h:20,
  379.27 -                 from ../linuxthreads_db/thread_dbP.h:7,
  379.28 -                 from ../linuxthreads/descr.h:44,
  379.29 -                 from ../linuxthreads/internals.h:30,
  379.30 -                 from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
  379.31 -                 from ../sysdeps/generic/ldsodefs.h:38,
  379.32 -                 from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
  379.33 -                 from <stdin>:2:
  379.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
  379.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
  379.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
  379.37 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
  379.38 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
  379.39 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
  379.40 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
  379.41 -
  379.42 -Rediffed against glibc-2.3.3
  379.43 -
  379.44 ---- glibc-2.3.3.orig/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	Sun Jan 12 00:24:23 2003
  379.45 -+++ glibc-2.3.3.new/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	Fri Mar 18 11:20:58 2005
  379.46 -@@ -45,18 +45,13 @@
  379.47 - 
  379.48 - typedef double elf_fpreg_t;
  379.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  379.50 --#endif
  379.51 --
  379.52 --/* gcc 3.1 and newer support __uint128_t.  */
  379.53 --#if !__GNUC_PREREQ(3,1)
  379.54 --typedef struct {
  379.55 --  unsigned long u[4];
  379.56 --} __attribute((aligned(16))) __uint128_t;
  379.57 --#endif
  379.58 - 
  379.59 - /* Altivec registers */
  379.60 --typedef __uint128_t elf_vrreg_t;
  379.61 -+typedef struct {
  379.62 -+  unsigned int u[4];
  379.63 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
  379.64 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
  379.65 -+#endif
  379.66 - 
  379.67 - struct elf_siginfo
  379.68 -   {
   380.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-allow-gcc-4.0-x86_64.patch	Tue Aug 14 19:32:22 2007 +0000
   380.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   380.3 @@ -1,60 +0,0 @@
   380.4 -Fixes
   380.5 -
   380.6 -In file included from dynamic-link.h:22,
   380.7 -                 from dl-reloc.c:265:
   380.8 -../sysdeps/x86_64/dl-machine.h: In function '_dl_relocate_object':
   380.9 -../sysdeps/x86_64/dl-machine.h:361: error: invalid storage class for function 'elf_machine_rela'
  380.10 -../sysdeps/x86_64/dl-machine.h:525: error: invalid storage class for function 'elf_machine_rela_relative'
  380.11 -../sysdeps/x86_64/dl-machine.h:534: error: invalid storage class for function 'elf_machine_lazy_rel'
  380.12 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-dev/build/x86_64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/build-glibc/elf/dl-reloc.o] Error 1
  380.13 -
  380.14 ---- glibc-2.3.3/sysdeps/x86_64/dl-machine.h.old	Wed Mar 16 16:19:15 2005
  380.15 -+++ glibc-2.3.3/sysdeps/x86_64/dl-machine.h	Wed Mar 16 16:22:09 2005
  380.16 -@@ -354,7 +354,14 @@
  380.17 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
  380.18 -    MAP is the object containing the reloc.  */
  380.19 - 
  380.20 --static inline void
  380.21 -+#if __GNUC__ >= 4
  380.22 -+  auto inline void
  380.23 -+#else
  380.24 -+  static inline void
  380.25 -+#endif
  380.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  380.27 -+  __attribute ((always_inline))
  380.28 -+#endif
  380.29 - elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
  380.30 - 		  const Elf64_Sym *sym, const struct r_found_version *version,
  380.31 - 		  void *const reloc_addr_arg)
  380.32 -@@ -519,7 +526,14 @@
  380.33 -     }
  380.34 - }
  380.35 - 
  380.36 --static inline void
  380.37 -+#if __GNUC__ >= 4
  380.38 -+  auto inline void
  380.39 -+#else
  380.40 -+  static inline void
  380.41 -+#endif
  380.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  380.43 -+  __attribute ((always_inline))
  380.44 -+#endif
  380.45 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
  380.46 - 			   void *const reloc_addr_arg)
  380.47 - {
  380.48 -@@ -528,7 +542,14 @@
  380.49 -   *reloc_addr = l_addr + reloc->r_addend;
  380.50 - }
  380.51 - 
  380.52 --static inline void
  380.53 -+#if __GNUC__ >= 4
  380.54 -+  auto inline void
  380.55 -+#else
  380.56 -+  static inline void
  380.57 -+#endif
  380.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  380.59 -+  __attribute ((always_inline))
  380.60 -+#endif
  380.61 - elf_machine_lazy_rel (struct link_map *map,
  380.62 - 		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
  380.63 - {
   381.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-alpha-pwrite64.patch	Tue Aug 14 19:32:22 2007 +0000
   381.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   381.3 @@ -1,41 +0,0 @@
   381.4 -Fix for this error:
   381.5 -
   381.6 -crosstool-0.32/build/alpha-unknown-linux-gnu/gcc-3.3.5-glibc-2.3.3/build-glibc/libc_pic.os(.text+0xc8bd0): In function `__posix_fallocate64_l64':
   381.7 -: undefined reference to `__GI___pwrite64'
   381.8 -collect2: ld returned 1 exit status
   381.9 -make[1]: *** [crosstool-0.32/build/alpha-unknown-linux-gnu/gcc-3.3.5-glibc-2.3.3/build-glibc/libc.so] Error 1
  381.10 -make[1]: Leaving directory `crosstool-0.32/build/alpha-unknown-linux-gnu/gcc-3.3.5-glibc-2.3.3/glibc-2.3.3'
  381.11 -make: *** [all] Error 2
  381.12 -
  381.13 -extracted from GLIBC CVS by Dan Kegel
  381.14 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h.diff?r1=1.16&r2=1.17&cvsroot=glibc'
  381.15 -
  381.16 -cf. 
  381.17 -http://sources.redhat.com/ml/libc-alpha/2003-10/msg00038.html
  381.18 -
  381.19 -
  381.20 ---- glibc-2.3.3/sysdeps/unix/sysv/linux/alpha/sysdep.h.old	2003-06-20 09:24:36.000000000 -0700
  381.21 -+++ glibc-2.3.3/sysdeps/unix/sysv/linux/alpha/sysdep.h	2005-04-27 11:23:46.000000000 -0700
  381.22 -@@ -1,4 +1,4 @@
  381.23 --/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003
  381.24 -+/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 2002, 2003, 2004
  381.25 -    Free Software Foundation, Inc.
  381.26 -    This file is part of the GNU C Library.
  381.27 -    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
  381.28 -@@ -65,6 +65,16 @@
  381.29 - # define __NR_semtimedop	423
  381.30 - #endif
  381.31 - 
  381.32 -+/* This is a kludge to make syscalls.list find these under the names
  381.33 -+   pread and pwrite, since some kernel headers define those names
  381.34 -+   and some define the *64 names for the same system calls.  */
  381.35 -+#if !defined __NR_pread && defined __NR_pread64
  381.36 -+# define __NR_pread __NR_pread64
  381.37 -+#endif
  381.38 -+#if !defined __NR_pwrite && defined __NR_pwrite64
  381.39 -+# define __NR_pwrite __NR_pwrite64
  381.40 -+#endif
  381.41 -+
  381.42 - /*
  381.43 -  * In order to get the hidden arguments for rt_sigaction set up
  381.44 -  * properly, we need to call the assembly version.  This shouldn't
   382.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   382.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   382.3 @@ -1,103 +0,0 @@
   382.4 -Fixes
   382.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   382.6 -...
   382.7 -when building glibc-2.3.3 on cygwin
   382.8 -
   382.9 -Idea from
  382.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  382.11 -Basically, make glibc use .oST as suffix for 'object static'
  382.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  382.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  382.14 -
  382.15 -glibc-linuxthreads-2.3.3 also requires a patch, see 
  382.16 -../glibc-linuxthreads-2.3.3/glibc-linuxthreads-2.3.3-cygwin.patch
  382.17 -
  382.18 -[ Rediffed against glibc-2.3.3 ]
  382.19 -
  382.20 -
  382.21 -diff -aur glibc-2.3.3/Makeconfig glibc-2.3.3-cygwin/Makeconfig
  382.22 ---- glibc-2.3.3/Makeconfig	2003-09-17 01:36:10.000000000 -0700
  382.23 -+++ glibc-2.3.3-cygwin/Makeconfig	2004-08-27 20:34:43.000000000 -0700
  382.24 -@@ -439,13 +439,13 @@
  382.25 - # run the linked programs.
  382.26 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  382.27 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  382.28 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  382.29 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  382.30 - # This is how to find at build-time things that will be installed there.
  382.31 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  382.32 - else
  382.33 - ifneq (,$(filter aix aix%,$(config-os)))
  382.34 - link-libc = $(common-objpfx)libc.a \
  382.35 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  382.36 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  382.37 - rpath-dirs = math dlfcn nss nis rt resolv crypt
  382.38 - endif
  382.39 - endif
  382.40 -@@ -658,7 +658,7 @@
  382.41 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  382.42 - # to pass different flags for each flavor.
  382.43 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  382.44 --all-object-suffixes := .o .os .op .og .ob .oS
  382.45 -+all-object-suffixes := .o .os .op .og .ob .oST
  382.46 - object-suffixes :=
  382.47 - CPPFLAGS-.o = $(pic-default)
  382.48 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  382.49 -@@ -714,14 +714,14 @@
  382.50 - 
  382.51 - ifeq (yes,$(build-shared))
  382.52 - # Build special library that contains the static-only routines for libc.
  382.53 --object-suffixes-for-libc += .oS
  382.54 -+object-suffixes-for-libc += .oST
  382.55 - 
  382.56 - # Must build the routines as PIC, though, because they can end up in (users')
  382.57 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  382.58 - # example, make that processor-specific.
  382.59 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
  382.60 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  382.61 --libtype.oS = lib%_nonshared.a
  382.62 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  382.63 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  382.64 -+libtype.oST = lib%_nonshared.a
  382.65 - endif
  382.66 - 
  382.67 - # The assembler can generate debug information too.
  382.68 -diff -aur glibc-2.3.3/Makerules glibc-2.3.3-cygwin/Makerules
  382.69 ---- glibc-2.3.3/Makerules	2003-10-31 16:35:57.000000000 -0800
  382.70 -+++ glibc-2.3.3-cygwin/Makerules	2004-08-27 20:33:47.000000000 -0700
  382.71 -@@ -414,7 +414,7 @@
  382.72 - # Bounded pointer thunks are only built for *.ob
  382.73 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  382.74 - 
  382.75 --elide-routines.oS += $(filter-out $(static-only-routines),\
  382.76 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  382.77 - 				  $(routines) $(aux) $(sysdep_routines)) \
  382.78 - 		     $(elide-bp-thunks)
  382.79 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  382.80 -@@ -934,7 +934,7 @@
  382.81 - install: $(inst_libdir)/libc.so
  382.82 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
  382.83 - 			$(common-objpfx)libc.so$(libc.so-version) \
  382.84 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  382.85 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  382.86 - 						  $(libprefix)$(libc-name)) \
  382.87 - 			$(+force)
  382.88 - 	(echo '/* GNU ld script';\
  382.89 -@@ -942,7 +942,7 @@
  382.90 - 	 echo '   the static library, so try that secondarily.  */';\
  382.91 - 	 cat $<; \
  382.92 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  382.93 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  382.94 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  382.95 - 	      ')' \
  382.96 - 	) > $@.new
  382.97 - 	mv -f $@.new $@
  382.98 -diff -aur glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
  382.99 ---- glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile	2002-08-29 03:41:15.000000000 -0700
 382.100 -+++ glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-27 20:35:43.000000000 -0700
 382.101 -@@ -10,4 +10,4 @@
 382.102 - ASFLAGS-.op += -Wa,-Av9a
 382.103 - ASFLAGS-.og += -Wa,-Av9a
 382.104 - ASFLAGS-.ob += -Wa,-Av9a
 382.105 --ASFLAGS-.oS += -Wa,-Av9a
 382.106 -+ASFLAGS-.oST += -Wa,-Av9a
   383.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-libeh-kludge.patch	Tue Aug 14 19:32:22 2007 +0000
   383.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   383.3 @@ -1,75 +0,0 @@
   383.4 -wget "http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-09&msgid=20030911190500.GE12344%40sunsite.ms.mff.cuni.cz"
   383.5 -aka http://sources.redhat.com/ml/libc-alpha/2003-09/msg00104.html
   383.6 -
   383.7 -This seems to fix the error
   383.8 -   gcc-3.4.1-glibc-2.3.3/lib/gcc/powerpc-7400-linux-gnu/3.4.1/../../../../powerpc-7400-linux-gnu/bin/ld: cannot find -lgcc_eh
   383.9 -   make[1]: *** [build/powerpc-7400-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/libc.so] Error 1
  383.10 -but I assume it might cause trouble with nptl
  383.11 -FIXME: once we figure out why this patch is wrong, fix it right :-)
  383.12 -
  383.13 -Date: Thu, 11 Sep 2003 21:05:00 +0200
  383.14 -From: Jakub Jelinek <jakub at redhat dot com>
  383.15 -To: libc-alpha at sources dot redhat dot com
  383.16 -Subject: Re: Another ugly bootstrapping patch for libgcc_eh
  383.17 -Message-ID: <20030911190500.GE12344@sunsite.ms.mff.cuni.cz>
  383.18 -Reply-To: Jakub Jelinek <jakub at redhat dot com>
  383.19 -References: <20030911194944.GA6104@nevyn.them.org> <20030911180703.GD12344@sunsite.ms.mff.cuni.cz> <20030911203621.GA31503@nevyn.them.org>
  383.20 -In-Reply-To: <20030911203621 dot GA31503 at nevyn dot them dot org>
  383.21 -
  383.22 -On Thu, Sep 11, 2003 at 04:36:21PM -0400, Daniel Jacobowitz wrote:
  383.23 -> > Why exactly do you need that?
  383.24 -> > What exact library needs the functions from libgcc_eh.a?
  383.25 -> > There shouldn't be any these days (__register_*/__frame_state_for etc.
  383.26 -> > functions should come from sysdeps/generic on arches which need them,
  383.27 -> > _Unwind_* come from unwind*.c).
  383.28 -> > IMHO both:
  383.29 -> > 
  383.30 -> > # Force the backward compatibility EH functions to be linked.
  383.31 -> > LDFLAGS-c.so += -u __register_frame
  383.32 -> > 
  383.33 -> > in Makerules and -lgcc_eh in Makeconfig should go.
  383.34 -> 
  383.35 -> If you say so.  That -lgcc_eh's been in and out quite a number of
  383.36 -> times.  I was just assuming that it was necessary.
  383.37 -
  383.38 -I have been testing following patch on hammer.
  383.39 -linuxthreads built just fine and NPTL libraries too,
  383.40 -and in both cases libraries had the same exported symbols as without
  383.41 -the patch (though its .text slightly shrunk because it no longer contained
  383.42 -unneeded libgcc_eh routines (and also libc.so has fewer .plt slots).
  383.43 -Unfortunately, sln in NPTL build doesn't link, as libgcc_eh.a is needed
  383.44 -in this case.
  383.45 -So, IMHO we need my Makerules change and Daniel's patch.
  383.46 -
  383.47 -2003-09-11  Jakub Jelinek  <jakub@redhat.com>
  383.48 -
  383.49 -	#* Makerules (LDFLAGS-c.so): Remove -u __register_frame.
  383.50 -	* Makeconfig (gnulib): Remove -lgcc_eh.
  383.51 -
  383.52 -# Ulrich already applied this.
  383.53 -#--- libc/Makerules.jj	2003-07-23 03:56:16.000000000 -0400
  383.54 -#+++ libc/Makerules	2003-09-11 16:22:44.000000000 -0400
  383.55 -#@@ -572,8 +572,6 @@ LDFLAGS-c.so = -nostdlib -nostartfiles
  383.56 -# LDLIBS-c.so += $(gnulib)
  383.57 -# # Give libc.so an entry point and make it directly runnable itself.
  383.58 -# LDFLAGS-c.so += -e __libc_main
  383.59 -#-# Force the backward compatibility EH functions to be linked.
  383.60 -#-LDFLAGS-c.so += -u __register_frame
  383.61 -# # Pre-link the objects of libc_pic.a so that we can locally resolve
  383.62 -# # COMMON symbols before we link against ld.so.  This is because ld.so
  383.63 -# # contains some of libc_pic.a already, which will prevent the COMMONs
  383.64 ---- libc/Makeconfig.jj	2003-07-22 08:25:32.000000000 -0400
  383.65 -+++ libc/Makeconfig	2003-09-11 16:23:08.000000000 -0400
  383.66 -@@ -505,7 +505,7 @@ link-libc-bounded = $(common-objpfx)libc
  383.67 - link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a)
  383.68 - 
  383.69 - ifndef gnulib
  383.70 --gnulib := -lgcc -lgcc_eh
  383.71 -+gnulib := -lgcc
  383.72 - endif
  383.73 - ifeq ($(elf),yes)
  383.74 - +preinit = $(addprefix $(csu-objpfx),crti.o)
  383.75 -
  383.76 -
  383.77 -	Jakub
  383.78 -
   384.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-s390-fadvise64.patch	Tue Aug 14 19:32:22 2007 +0000
   384.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   384.3 @@ -1,128 +0,0 @@
   384.4 -See http://sources.redhat.com/ml/libc-hacker/2003-12/msg00023.html
   384.5 -or http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c?cvsroot=glibc
   384.6 -
   384.7 -Should fix error 
   384.8 -
   384.9 -../sysdeps/unix/sysv/linux/posix_fadvise64.c: In function `__posix_fadvise64_l64':
  384.10 -../sysdeps/unix/sysv/linux/posix_fadvise64.c:35: warning: implicit declaration of function `DECLARGS_6'
  384.11 -../sysdeps/unix/sysv/linux/posix_fadvise64.c:35: error: parse error before "register"
  384.12 -...
  384.13 -../sysdeps/unix/sysv/linux/posix_fadvise64.c:35: error: parse error before "ASMFMT_6"
  384.14 -make[2]: *** [crosstool-0.28-rc34/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/io/posix_fadvise64.o] Error 1
  384.15 -
  384.16 -
  384.17 -From: Martin Schwidefsky <schwidefsky at de dot ibm dot com>
  384.18 -Organization: IBM Deutschland GmbH
  384.19 -To: libc-hacker at sources dot redhat dot com
  384.20 -Subject: fadvise64_64 for s390-32.
  384.21 -Date: Fri, 5 Dec 2003 18:46:33 +0100
  384.22 -
  384.23 -Hi,
  384.24 -on s390* system calls can have up to 5 paramters. The generic linux
  384.25 -implemenation of fadvise64_64 for 32 bit systems needs 6 parameters,
  384.26 -so we need to have a s390-32 special version of posix_fadvise64.c.
  384.27 -For s390-64 we do not have the problem because there fadvise64_64
  384.28 -has only 4 parameters.
  384.29 -
  384.30 -blue skies,
  384.31 -  Martin.
  384.32 -
  384.33 -2003-12-05  Martin Schwidefsky  <schwidefsky@de.ibm.com>
  384.34 -
  384.35 -	* sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c: New file.
  384.36 -
  384.37 -diff -urN libc/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
  384.38 ---- libc/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c	1970-01-01 01:00:00.000000000 +0100
  384.39 -+++ libc-s390/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c	2003-11-13 15:31:40.000000000 +0100
  384.40 -@@ -0,0 +1,90 @@
  384.41 -+/* Copyright (C) 2003 Free Software Foundation, Inc.
  384.42 -+   This file is part of the GNU C Library.
  384.43 -+
  384.44 -+   The GNU C Library is free software; you can redistribute it and/or
  384.45 -+   modify it under the terms of the GNU Lesser General Public
  384.46 -+   License as published by the Free Software Foundation; either
  384.47 -+   version 2.1 of the License, or (at your option) any later version.
  384.48 -+
  384.49 -+   The GNU C Library is distributed in the hope that it will be useful,
  384.50 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
  384.51 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  384.52 -+   Lesser General Public License for more details.
  384.53 -+
  384.54 -+   You should have received a copy of the GNU Lesser General Public
  384.55 -+   License along with the GNU C Library; if not, write to the Free
  384.56 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  384.57 -+   02111-1307 USA.  */
  384.58 -+
  384.59 -+#include <errno.h>
  384.60 -+#include <fcntl.h>
  384.61 -+#include <sysdep.h>
  384.62 -+#include <kernel-features.h>
  384.63 -+
  384.64 -+int __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise);
  384.65 -+int __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise);
  384.66 -+
  384.67 -+/* Advice the system about the expected behaviour of the application with
  384.68 -+   respect to the file associated with FD.  */
  384.69 -+
  384.70 -+struct fadvise64_64_layout
  384.71 -+{
  384.72 -+  int fd;
  384.73 -+  off64_t offset;
  384.74 -+  off64_t len;
  384.75 -+  int advise;
  384.76 -+};
  384.77 -+
  384.78 -+int
  384.79 -+__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
  384.80 -+{
  384.81 -+#ifdef __NR_fadvise64_64
  384.82 -+  struct fadvise64_64_layout parameters;
  384.83 -+  INTERNAL_SYSCALL_DECL (err);
  384.84 -+  
  384.85 -+  parameters.fd = fd;
  384.86 -+  parameters.offset = offset;
  384.87 -+  parameters.len = len;
  384.88 -+  parameters.advise = advise;
  384.89 -+  int ret = INTERNAL_SYSCALL (fadvise64_64, err, 1, &parameters);
  384.90 -+  if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  384.91 -+    return 0;
  384.92 -+# ifndef __ASSUME_FADVISE64_64_SYSCALL
  384.93 -+  if (INTERNAL_SYSCALL_ERRNO (ret, err) != ENOSYS)
  384.94 -+# endif
  384.95 -+   return INTERNAL_SYSCALL_ERRNO (ret, err);
  384.96 -+#endif
  384.97 -+#ifndef __ASSUME_FADVISE64_64_SYSCALL
  384.98 -+# ifdef __NR_fadvise64
  384.99 -+  if (len != (off_t) len)
 384.100 -+    return EOVERFLOW;
 384.101 -+
 384.102 -+  INTERNAL_SYSCALL_DECL (err2);
 384.103 -+  int ret2 = INTERNAL_SYSCALL (fadvise64, err2, 5, fd,
 384.104 -+			       __LONG_LONG_PAIR ((long) (offset >> 32),
 384.105 -+						 (long) offset),
 384.106 -+			       (off_t) len, advise);
 384.107 -+  if (!INTERNAL_SYSCALL_ERROR_P (ret2, err2))
 384.108 -+    return 0;
 384.109 -+  return INTERNAL_SYSCALL_ERRNO (ret2, err2);
 384.110 -+# else
 384.111 -+  return ENOSYS;
 384.112 -+# endif
 384.113 -+#endif
 384.114 -+}
 384.115 -+
 384.116 -+#include <shlib-compat.h>
 384.117 -+
 384.118 -+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
 384.119 -+
 384.120 -+int
 384.121 -+__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
 384.122 -+{
 384.123 -+  return __posix_fadvise64_l64 (fd, offset, len, advise);
 384.124 -+}
 384.125 -+
 384.126 -+versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
 384.127 -+compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
 384.128 -+#else
 384.129 -+strong_alias (__posix_fadvise64_l64, posix_fadvise64);
 384.130 -+#endif
 384.131 -
   385.1 --- a/patches/glibc/2.3.3/glibc-2.3.3-unwind-dw2.patch	Tue Aug 14 19:32:22 2007 +0000
   385.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   385.3 @@ -1,66 +0,0 @@
   385.4 -See http://sources.redhat.com/ml/libc-alpha/2004-02/msg00138.html
   385.5 -aka http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2004-02&msgid=20040220044155.GE22135%40baldric.uwo.ca
   385.6 -
   385.7 -In CVS as
   385.8 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/generic/unwind-dw2.c.diff?r1=1.7&r2=1.8&cvsroot=glibc'
   385.9 -
  385.10 -Revision 1.8, Sat Feb 21 09:07:29 2004 UTC (5 months, 3 weeks ago) by drepper
  385.11 -
  385.12 -	Allow sjlj enabled compilers to build the code by removing
  385.13 -	__USING_SJLJ_EXCEPTIONS__ wrapper.
  385.14 -
  385.15 -plus
  385.16 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/generic/framestate.c.diff?r1=1.3&r2=1.4&cvsroot=glibc'
  385.17 -
  385.18 -Revision 1.4, Sat Feb 21 09:07:05 2004 UTC (5 months, 3 weeks ago) by drepper
  385.19 -
  385.20 -	[__USING_SJLJ_EXCEPTIONS__] (__frame_state_for): Set frame_State_for
  385.21 -	to abort if the compiler is using sjlj.
  385.22 -
  385.23 -Fixes compile error
  385.24 -
  385.25 -../sysdeps/generic/framestate.c: In function `__frame_state_for':
  385.26 -../sysdeps/generic/framestate.c:44: error: `fallback_frame_state_for' undeclared (first use in this function)
  385.27 -../sysdeps/generic/framestate.c:44: error: (Each undeclared identifier is reported only once
  385.28 -../sysdeps/generic/framestate.c:44: error: for each function it appears in.)
  385.29 -make[2]: *** [crosstool-0.28-rc34/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/elf/framestate.os] Error 1
  385.30 -
  385.31 -===================================================================
  385.32 -RCS file: /cvs/glibc/libc/sysdeps/generic/unwind-dw2.c,v
  385.33 -retrieving revision 1.7
  385.34 -retrieving revision 1.8
  385.35 -diff -u -r1.7 -r1.8
  385.36 ---- libc/sysdeps/generic/unwind-dw2.c	2003/07/22 23:55:55	1.7
  385.37 -+++ libc/sysdeps/generic/unwind-dw2.c	2004/02/21 09:07:29	1.8
  385.38 -@@ -39,7 +39,6 @@
  385.39 - #endif
  385.40 - 
  385.41 - 
  385.42 --#ifndef __USING_SJLJ_EXCEPTIONS__
  385.43 - 
  385.44 - #ifndef STACK_GROWS_DOWNWARD
  385.45 - #define STACK_GROWS_DOWNWARD 0
  385.46 -@@ -1287,4 +1286,3 @@
  385.47 - #include "unwind.inc"
  385.48 - 
  385.49 - #endif /* _LIBC */
  385.50 --#endif /* !USING_SJLJ_EXCEPTIONS */
  385.51 -===================================================================
  385.52 -RCS file: /cvs/glibc/libc/sysdeps/generic/framestate.c,v
  385.53 -retrieving revision 1.3
  385.54 -retrieving revision 1.4
  385.55 -diff -u -r1.3 -r1.4
  385.56 ---- libc/sysdeps/generic/framestate.c	2003/01/08 06:46:06	1.3
  385.57 -+++ libc/sysdeps/generic/framestate.c	2004/02/21 09:07:05	1.4
  385.58 -@@ -41,7 +41,11 @@
  385.59 -       if (handle == NULL
  385.60 - 	  || (frame_state_for
  385.61 - 	      = (framesf) __libc_dlsym (handle, "__frame_state_for")) == NULL)
  385.62 -+#ifndef __USING_SJLJ_EXCEPTIONS__
  385.63 - 	frame_state_for = fallback_frame_state_for;
  385.64 -+#else
  385.65 -+      	frame_state_for = abort;
  385.66 -+#endif
  385.67 -     }
  385.68 - 
  385.69 -   return frame_state_for (pc, frame_state);
   386.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   386.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   386.3 @@ -1,117 +0,0 @@
   386.4 -Fixes
   386.5 -In file included from dynamic-link.h:22,
   386.6 -                 from dl-reloc.c:265:
   386.7 -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
   386.8 -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
   386.9 -../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
  386.10 -../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
  386.11 -../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
  386.12 -../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
  386.13 -../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
  386.14 -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
  386.15 -
  386.16 -when building glibc-2.3.[34] with gcc-4.0
  386.17 -
  386.18 -Like
  386.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
  386.20 -but works with older compilers, and fixes fix_bad_pc24.
  386.21 -
  386.22 -
  386.23 ---- glibc-2.3.4/sysdeps/arm/dl-machine.h.old	Sun Mar 20 17:54:37 2005
  386.24 -+++ glibc-2.3.4/sysdeps/arm/dl-machine.h	Sun Mar 20 17:57:32 2005
  386.25 -@@ -359,7 +359,14 @@
  386.26 - # endif
  386.27 - 
  386.28 - /* Deal with an out-of-range PC24 reloc.  */
  386.29 --static Elf32_Addr
  386.30 -+#if __GNUC__ >= 4
  386.31 -+  auto inline Elf32_Addr
  386.32 -+#else
  386.33 -+  static inline Elf32_Addr
  386.34 -+#endif
  386.35 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  386.36 -+  __attribute ((always_inline))
  386.37 -+#endif
  386.38 - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
  386.39 - {
  386.40 -   static void *fix_page;
  386.41 -@@ -392,7 +399,14 @@
  386.42 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
  386.43 -    MAP is the object containing the reloc.  */
  386.44 - 
  386.45 --static inline void
  386.46 -+#if __GNUC__ >= 4
  386.47 -+  auto inline void
  386.48 -+#else
  386.49 -+  static inline void
  386.50 -+#endif
  386.51 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  386.52 -+  __attribute ((always_inline))
  386.53 -+#endif
  386.54 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
  386.55 - 		 const Elf32_Sym *sym, const struct r_found_version *version,
  386.56 - 		 void *const reloc_addr_arg)
  386.57 -@@ -517,7 +531,14 @@
  386.58 - }
  386.59 - 
  386.60 - # ifndef RTLD_BOOTSTRAP
  386.61 --static inline void
  386.62 -+#if __GNUC__ >= 4
  386.63 -+  auto inline void
  386.64 -+#else
  386.65 -+  static inline void
  386.66 -+#endif
  386.67 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  386.68 -+  __attribute ((always_inline))
  386.69 -+#endif
  386.70 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
  386.71 - 		  const Elf32_Sym *sym, const struct r_found_version *version,
  386.72 - 		  void *const reloc_addr_arg)
  386.73 -@@ -597,7 +618,14 @@
  386.74 - }
  386.75 - # endif
  386.76 - 
  386.77 --static inline void
  386.78 -+#if __GNUC__ >= 4
  386.79 -+  auto inline void
  386.80 -+#else
  386.81 -+  static inline void
  386.82 -+#endif
  386.83 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  386.84 -+  __attribute ((always_inline))
  386.85 -+#endif
  386.86 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
  386.87 - 			  void *const reloc_addr_arg)
  386.88 - {
  386.89 -@@ -606,7 +634,14 @@
  386.90 - }
  386.91 - 
  386.92 - # ifndef RTLD_BOOTSTRAP
  386.93 --static inline void
  386.94 -+#if __GNUC__ >= 4
  386.95 -+  auto inline void
  386.96 -+#else
  386.97 -+  static inline void
  386.98 -+#endif
  386.99 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 386.100 -+  __attribute ((always_inline))
 386.101 -+#endif
 386.102 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
 386.103 - 			   void *const reloc_addr_arg)
 386.104 - {
 386.105 -@@ -615,7 +650,14 @@
 386.106 - }
 386.107 - # endif
 386.108 - 
 386.109 --static inline void
 386.110 -+#if __GNUC__ >= 4
 386.111 -+  auto inline void
 386.112 -+#else
 386.113 -+  static inline void
 386.114 -+#endif
 386.115 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 386.116 -+  __attribute ((always_inline))
 386.117 -+#endif
 386.118 - elf_machine_lazy_rel (struct link_map *map,
 386.119 - 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
 386.120 - {
   387.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-elf.patch	Tue Aug 14 19:32:22 2007 +0000
   387.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   387.3 @@ -1,61 +0,0 @@
   387.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
   387.5 -Fixes
   387.6 -  rtld.c: In function '_dl_start':
   387.7 -  dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
   387.8 -  dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
   387.9 -when compiling glibc-2.3.4 with gcc-4.0
  387.10 -
  387.11 -But see also
  387.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
  387.13 -and
  387.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
  387.15 -which seem to propose less radical fixes?
  387.16 -
  387.17 -Aha.  See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
  387.18 -
  387.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old	2005-03-12 18:12:37.000000000 -0800
  387.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h	2005-03-12 18:12:59.777820848 -0800
  387.21 -@@ -19,43 +19,6 @@
  387.22 - 
  387.23 - #include <elf.h>
  387.24 - #include <assert.h>
  387.25 --
  387.26 --#ifdef RESOLVE
  387.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
  387.28 --   ElfW(Addr), because not all architectures can assume that the
  387.29 --   relocated address is properly aligned, whereas the compiler is
  387.30 --   entitled to assume that a pointer to a type is properly aligned for
  387.31 --   the type.  Even if we cast the pointer back to some other type with
  387.32 --   less strict alignment requirements, the compiler might still
  387.33 --   remember that the pointer was originally more aligned, thereby
  387.34 --   optimizing away alignment tests or using word instructions for
  387.35 --   copying memory, breaking the very code written to handle the
  387.36 --   unaligned cases.  */
  387.37 --auto void __attribute__((always_inline))
  387.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
  387.39 --		 const ElfW(Sym) *sym, const struct r_found_version *version,
  387.40 --		 void *const reloc_addr);
  387.41 --auto void __attribute__((always_inline))
  387.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
  387.43 --		  const ElfW(Sym) *sym, const struct r_found_version *version,
  387.44 --		  void *const reloc_addr);
  387.45 --auto void __attribute__((always_inline))
  387.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
  387.47 --			  void *const reloc_addr);
  387.48 --auto void __attribute__((always_inline))
  387.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
  387.50 --			   void *const reloc_addr);
  387.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
  387.52 --auto void __attribute__((always_inline))
  387.53 --elf_machine_lazy_rel (struct link_map *map,
  387.54 --		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
  387.55 --# else
  387.56 --auto void __attribute__((always_inline))
  387.57 --elf_machine_lazy_rel (struct link_map *map,
  387.58 --		      ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
  387.59 --# endif
  387.60 --#endif
  387.61 --
  387.62 - #include <dl-machine.h>
  387.63 - 
  387.64 - #ifndef VERSYMIDX
   388.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch	Tue Aug 14 19:32:22 2007 +0000
   388.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   388.3 @@ -1,42 +0,0 @@
   388.4 -Fixes
   388.5 -
   388.6 -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object':
   388.7 -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative'
   388.8 -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel'
   388.9 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1
  388.10 -
  388.11 -diff -ur glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h
  388.12 ---- glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h	Wed Jul 30 23:33:52 2003
  388.13 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h	Thu Mar 17 13:19:16 2005
  388.14 -@@ -455,7 +455,14 @@
  388.15 -     }
  388.16 - }
  388.17 - 
  388.18 --static inline void
  388.19 -+#if __GNUC__ >= 4
  388.20 -+  auto inline void
  388.21 -+#else
  388.22 -+  static inline void
  388.23 -+#endif
  388.24 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  388.25 -+  __attribute ((always_inline))
  388.26 -+#endif
  388.27 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
  388.28 - 			   void *const reloc_addr_arg)
  388.29 - {
  388.30 -@@ -463,7 +470,14 @@
  388.31 -   *reloc_addr = l_addr + reloc->r_addend;
  388.32 - }
  388.33 - 
  388.34 --static inline void
  388.35 -+#if __GNUC__ >= 4
  388.36 -+  auto inline void
  388.37 -+#else
  388.38 -+  static inline void
  388.39 -+#endif
  388.40 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  388.41 -+  __attribute ((always_inline))
  388.42 -+#endif
  388.43 - elf_machine_lazy_rel (struct link_map *map,
  388.44 - 		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
  388.45 - {
   389.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch	Tue Aug 14 19:32:22 2007 +0000
   389.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   389.3 @@ -1,60 +0,0 @@
   389.4 -Fixes:
   389.5 -
   389.6 -In file included from dynamic-link.h:22,
   389.7 -                 from dl-reloc.c:269:
   389.8 -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object':
   389.9 -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative'
  389.10 -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela'
  389.11 -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel'
  389.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf'
  389.13 -
  389.14 ---- glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h.old	Thu Mar 17 13:35:23 2005
  389.15 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h	Thu Mar 17 13:37:12 2005
  389.16 -@@ -567,7 +567,14 @@
  389.17 -                                 const Elf64_Sym *refsym)
  389.18 -                                 attribute_hidden;
  389.19 - 
  389.20 --static inline void
  389.21 -+#if __GNUC__ >= 4
  389.22 -+  auto inline void
  389.23 -+#else
  389.24 -+  static inline void
  389.25 -+#endif
  389.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  389.27 -+  __attribute ((always_inline))
  389.28 -+#endif
  389.29 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
  389.30 - 			   void *const reloc_addr_arg)
  389.31 - {
  389.32 -@@ -598,7 +605,14 @@
  389.33 - 
  389.34 - /* Perform the relocation specified by RELOC and SYM (which is fully
  389.35 -    resolved).  MAP is the object containing the reloc.  */
  389.36 --static inline void
  389.37 -+#if __GNUC__ >= 4
  389.38 -+  auto inline void
  389.39 -+#else
  389.40 -+  static inline void
  389.41 -+#endif
  389.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  389.43 -+  __attribute ((always_inline))
  389.44 -+#endif
  389.45 - elf_machine_rela (struct link_map *map,
  389.46 - 		  const Elf64_Rela *reloc,
  389.47 - 		  const Elf64_Sym *sym,
  389.48 -@@ -883,7 +897,14 @@
  389.49 -   MODIFIED_CODE_NOQUEUE (reloc_addr);
  389.50 - }
  389.51 - 
  389.52 --static inline void
  389.53 -+#if __GNUC__ >= 4
  389.54 -+  auto inline void
  389.55 -+#else
  389.56 -+  static inline void
  389.57 -+#endif
  389.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  389.59 -+  __attribute ((always_inline))
  389.60 -+#endif
  389.61 - elf_machine_lazy_rel (struct link_map *map,
  389.62 - 		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
  389.63 - {
   390.1 --- a/patches/glibc/2.3.3/glibc-configure-apple-as.patch	Tue Aug 14 19:32:22 2007 +0000
   390.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   390.3 @@ -1,23 +0,0 @@
   390.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
   390.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
   390.6 -
   390.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
   390.8 -where the assembler but doesn't understand the --version flag.
   390.9 -
  390.10 -Fixes the symptom
  390.11 -checking whether ld is GNU ld... no
  390.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
  390.13 -checking version of /usr/libexec/gcc/darwin/ppc/as... 
  390.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
  390.15 -
  390.16 ---- glibc-2.3.2/configure~	Wed Feb 26 09:20:48 2003
  390.17 -+++ glibc-2.3.2/configure	Fri Feb 27 13:12:53 2004
  390.18 -@@ -3789,7 +3789,7 @@
  390.19 -   # Found it, now check the version.
  390.20 -   echo "$as_me:$LINENO: checking version of $AS" >&5
  390.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
  390.22 --  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  390.23 -+  ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  390.24 -   case $ac_prog_version in
  390.25 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  390.26 -     2.1[3-9]*)
   391.1 --- a/patches/glibc/2.3.3/glibc-fp-byteorder.patch	Tue Aug 14 19:32:22 2007 +0000
   391.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   391.3 @@ -1,203 +0,0 @@
   391.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
   391.5 -Author: addsub@eyou.com
   391.6 -Target: ARM
   391.7 -
   391.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
   391.9 -and makes printf("%f", 1.0) work.
  391.10 -
  391.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
  391.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
  391.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
  391.14 - It's definitely needed for hardfloat.  So I'd think it's needed for
  391.15 - big-endian systems in any case, and for VFP on little-endian systems
  391.16 - too.  Someone would have to verify that though.
  391.17 -
  391.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
  391.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
  391.20 - for this version.  glibc-20040830 out-of-the-box still contains the
  391.21 - following wrong assumptions:
  391.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
  391.23 -   not on vfp systems)
  391.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
  391.25 -   are not on big endian systems, neither on vfp systems)
  391.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
  391.27 -   (which they are not on big endian systems)
  391.28 - [This patch] seems the right solution for all of these issues.
  391.29 -
  391.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
  391.31 - It's even needed for glibc CVS, AFAICS.
  391.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
  391.33 - (currently at version 1.4) is only needed for proper VFP operation.
  391.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
  391.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
  391.36 - for proper operation of *any* FP model on big endian ARM.
  391.37 -
  391.38 -See also discussion in followups to
  391.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
  391.40 -
  391.41 -Message-ID: <276985760.37584@eyou.com>
  391.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
  391.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
  391.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
  391.45 -Date: 17 Feb 2004 10:42:38 +0800
  391.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
  391.47 -From: "add" <addsub@eyou.com>
  391.48 -To: dank@kegel.com
  391.49 -Reply-To: "add" <addsub@eyou.com>
  391.50 -Subject: Re:&nbsp;&nbsp;&nbsp;problem&nbsp;while&nbsp;building&nbsp;arm&nbsp;vfp&nbsp;softfloat&nbsp;gcc&nbsp;`
  391.51 -
  391.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
  391.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
  391.54 -
  391.55 -
  391.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
  391.57 ---- glibc.old/sysdeps/arm/bits/endian.h	1999-04-12 11:59:13.000000000 -0400
  391.58 -+++ glibc.new/sysdeps/arm/bits/endian.h	2004-02-12 09:15:13.000000000 -0500
  391.59 -@@ -9,4 +9,9 @@
  391.60 - #else
  391.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
  391.62 - #endif
  391.63 -+
  391.64 -+#ifdef __VFP_FP__
  391.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
  391.66 -+#else
  391.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
  391.68 -+#endif
  391.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
  391.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h	2001-07-07 15:21:19.000000000 -0400
  391.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h	2004-02-12 09:15:13.000000000 -0500
  391.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
  391.73 - #define BITS_PER_SHORTINT 16
  391.74 - #define BITS_PER_CHAR 8
  391.75 - 
  391.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
  391.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
  391.78 -+#if defined(__ARMEB__)
  391.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  391.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
  391.81 -+#elif defined(__VFP_FP__)
  391.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  391.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  391.84 -+#else
  391.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  391.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
  391.87 -+#endif
  391.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
  391.89 ---- glibc.old/sysdeps/arm/ieee754.h	2001-07-07 15:21:19.000000000 -0400
  391.90 -+++ glibc.new/sysdeps/arm/ieee754.h	1969-12-31 19:00:00.000000000 -0500
  391.91 -@@ -1,115 +0,0 @@
  391.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
  391.93 --   This file is part of the GNU C Library.
  391.94 --
  391.95 --   The GNU C Library is free software; you can redistribute it and/or
  391.96 --   modify it under the terms of the GNU Lesser General Public
  391.97 --   License as published by the Free Software Foundation; either
  391.98 --   version 2.1 of the License, or (at your option) any later version.
  391.99 --
 391.100 --   The GNU C Library is distributed in the hope that it will be useful,
 391.101 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 391.102 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 391.103 --   Lesser General Public License for more details.
 391.104 --
 391.105 --   You should have received a copy of the GNU Lesser General Public
 391.106 --   License along with the GNU C Library; if not, write to the Free
 391.107 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 391.108 --   02111-1307 USA.  */
 391.109 --
 391.110 --#ifndef _IEEE754_H
 391.111 --
 391.112 --#define _IEEE754_H 1
 391.113 --#include <features.h>
 391.114 --
 391.115 --#include <endian.h>
 391.116 --
 391.117 --__BEGIN_DECLS
 391.118 --
 391.119 --union ieee754_float
 391.120 --  {
 391.121 --    float f;
 391.122 --
 391.123 --    /* This is the IEEE 754 single-precision format.  */
 391.124 --    struct
 391.125 --      {
 391.126 --	unsigned int mantissa:23;
 391.127 --	unsigned int exponent:8;
 391.128 --	unsigned int negative:1;
 391.129 --      } ieee;
 391.130 --
 391.131 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 391.132 --    struct
 391.133 --      {
 391.134 --	unsigned int mantissa:22;
 391.135 --	unsigned int quiet_nan:1;
 391.136 --	unsigned int exponent:8;
 391.137 --	unsigned int negative:1;
 391.138 --      } ieee_nan;
 391.139 --  };
 391.140 --
 391.141 --#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
 391.142 --
 391.143 --
 391.144 --union ieee754_double
 391.145 --  {
 391.146 --    double d;
 391.147 --
 391.148 --    /* This is the IEEE 754 double-precision format.  */
 391.149 --    struct
 391.150 --      {
 391.151 --	unsigned int mantissa0:20;
 391.152 --	unsigned int exponent:11;
 391.153 --	unsigned int negative:1;
 391.154 --	unsigned int mantissa1:32;
 391.155 --      } ieee;
 391.156 --
 391.157 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 391.158 --    struct
 391.159 --      {
 391.160 --	unsigned int mantissa0:19;
 391.161 --	unsigned int quiet_nan:1;
 391.162 --	unsigned int exponent:11;
 391.163 --	unsigned int negative:1;
 391.164 --	unsigned int mantissa1:32;
 391.165 --      } ieee_nan;
 391.166 --  };
 391.167 --
 391.168 --#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
 391.169 --
 391.170 --
 391.171 --/* The following two structures are correct for `new' floating point systems but
 391.172 --   wrong for the old FPPC.  The only solution seems to be to avoid their use on
 391.173 --   old hardware.  */
 391.174 --
 391.175 --union ieee854_long_double
 391.176 --  {
 391.177 --    long double d;
 391.178 --
 391.179 --    /* This is the IEEE 854 double-extended-precision format.  */
 391.180 --    struct
 391.181 --      {
 391.182 --	unsigned int exponent:15;
 391.183 --	unsigned int empty:16;
 391.184 --	unsigned int negative:1;
 391.185 --	unsigned int mantissa1:32;
 391.186 --	unsigned int mantissa0:32;
 391.187 --      } ieee;
 391.188 --
 391.189 --    /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
 391.190 --    struct
 391.191 --      {
 391.192 --	unsigned int exponent:15;
 391.193 --	unsigned int empty:16;
 391.194 --	unsigned int negative:1;
 391.195 --	unsigned int mantissa1:32;
 391.196 --	unsigned int mantissa0:30;
 391.197 --	unsigned int quiet_nan:1;
 391.198 --	unsigned int one:1;
 391.199 --      } ieee_nan;
 391.200 --  };
 391.201 --
 391.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
 391.203 --
 391.204 --__END_DECLS
 391.205 --
 391.206 --#endif /* ieee754.h */
   392.1 --- a/patches/glibc/2.3.4/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   392.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   392.3 @@ -1,51 +0,0 @@
   392.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   392.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   392.6 -Fixes following error:
   392.7 -
   392.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   392.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  392.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  392.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  392.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  392.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  392.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  392.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  392.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  392.17 -
  392.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  392.19 -
  392.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  392.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  392.22 -@@ -47,6 +47,12 @@
  392.23 - #include <asm/page.h>
  392.24 - #include <sys/sysctl.h>
  392.25 - 
  392.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  392.27 -+#include <linux/version.h>
  392.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  392.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  392.30 -+#endif
  392.31 -+
  392.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  392.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  392.34 - 
  392.35 -@@ -80,7 +86,7 @@
  392.36 -  * Initialize I/O system.  There are several ways to get the information
  392.37 -  * we need.  Each is tried in turn until one succeeds.
  392.38 -  *
  392.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  392.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  392.41 -  *    but not all kernels support it.
  392.42 -  *
  392.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  392.44 -@@ -100,8 +106,8 @@
  392.45 - {
  392.46 -   char systype[256];
  392.47 -   int i, n;
  392.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  392.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  392.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  392.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  392.52 -   size_t len = sizeof(io.base);
  392.53 - 
  392.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   393.1 --- a/patches/glibc/2.3.4/bad/glibc-2.3.4-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   393.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   393.3 @@ -1,96 +0,0 @@
   393.4 -Fixes
   393.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   393.6 -...
   393.7 -when building glibc-2.3.3 on cygwin
   393.8 -
   393.9 -Idea from
  393.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  393.11 -Basically, make glibc use .oST as suffix for 'object static'
  393.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  393.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  393.14 -
  393.15 -glibc-linuxthreads-2.3.3 also requires a patch, see 
  393.16 -../glibc-linuxthreads-2.3.3/glibc-linuxthreads-2.3.3-cygwin.patch
  393.17 -
  393.18 -[ Rediffed against glibc-2.3.3 ]
  393.19 -
  393.20 -
  393.21 -diff -urN glibc-2.3.4-orig/Makeconfig glibc-2.3.4/Makeconfig
  393.22 ---- glibc-2.3.4-orig/Makeconfig	2004-12-15 19:51:47.000000000 +0100
  393.23 -+++ glibc-2.3.4/Makeconfig	2005-03-13 18:54:58.000000000 +0100
  393.24 -@@ -449,7 +449,7 @@
  393.25 - # run the linked programs.
  393.26 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  393.27 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  393.28 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  393.29 -+            $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  393.30 - # This is how to find at build-time things that will be installed there.
  393.31 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  393.32 - endif
  393.33 -@@ -667,7 +667,7 @@
  393.34 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  393.35 - # to pass different flags for each flavor.
  393.36 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  393.37 --all-object-suffixes := .o .os .op .og .ob .oS
  393.38 -+all-object-suffixes := .o .os .op .og .ob .oST
  393.39 - object-suffixes :=
  393.40 - CPPFLAGS-.o = $(pic-default)
  393.41 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  393.42 -@@ -723,14 +723,14 @@
  393.43 - 
  393.44 - ifeq (yes,$(build-shared))
  393.45 - # Build special library that contains the static-only routines for libc.
  393.46 --object-suffixes-for-libc += .oS
  393.47 -+object-suffixes-for-libc += .oST
  393.48 - 
  393.49 - # Must build the routines as PIC, though, because they can end up in (users')
  393.50 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  393.51 - # example, make that processor-specific.
  393.52 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
  393.53 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  393.54 --libtype.oS = lib%_nonshared.a
  393.55 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  393.56 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  393.57 -+libtype.oST = lib%_nonshared.a
  393.58 - endif
  393.59 - 
  393.60 - # The assembler can generate debug information too.
  393.61 -diff -urN glibc-2.3.4-orig/Makerules glibc-2.3.4/Makerules
  393.62 ---- glibc-2.3.4-orig/Makerules	2004-12-15 19:52:39.000000000 +0100
  393.63 -+++ glibc-2.3.4/Makerules	2005-03-13 18:50:09.000000000 +0100
  393.64 -@@ -416,7 +416,7 @@
  393.65 - # Bounded pointer thunks are only built for *.ob
  393.66 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  393.67 - 
  393.68 --elide-routines.oS += $(filter-out $(static-only-routines),\
  393.69 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  393.70 - 				  $(routines) $(aux) $(sysdep_routines)) \
  393.71 - 		     $(elide-bp-thunks)
  393.72 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  393.73 -@@ -961,7 +961,7 @@
  393.74 - install: $(inst_libdir)/libc.so
  393.75 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
  393.76 - 			$(common-objpfx)libc.so$(libc.so-version) \
  393.77 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  393.78 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  393.79 - 						  $(libprefix)$(libc-name)) \
  393.80 - 			$(+force)
  393.81 - 	(echo '/* GNU ld script';\
  393.82 -@@ -969,7 +969,7 @@
  393.83 - 	 echo '   the static library, so try that secondarily.  */';\
  393.84 - 	 cat $<; \
  393.85 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  393.86 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  393.87 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  393.88 - 	      ')' \
  393.89 - 	) > $@.new
  393.90 - 	mv -f $@.new $@
  393.91 -diff -urN glibc-2.3.4-orig/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.4/sysdeps/sparc/sparc32/sparcv9/Makefile
  393.92 ---- glibc-2.3.4-orig/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-16 08:46:14.000000000 +0200
  393.93 -+++ glibc-2.3.4/sysdeps/sparc/sparc32/sparcv9/Makefile	2005-03-13 18:50:09.000000000 +0100
  393.94 -@@ -10,4 +10,4 @@
  393.95 - ASFLAGS-.op += -Wa,-Av9a
  393.96 - ASFLAGS-.og += -Wa,-Av9a
  393.97 - ASFLAGS-.ob += -Wa,-Av9a
  393.98 --ASFLAGS-.oS += -Wa,-Av9a
  393.99 -+ASFLAGS-.oST += -Wa,-Av9a
   394.1 --- a/patches/glibc/2.3.4/fix-pr398.patch	Tue Aug 14 19:32:22 2007 +0000
   394.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   394.3 @@ -1,70 +0,0 @@
   394.4 -Fixes error
   394.5 -
   394.6 -dl-runtime.c:222: error: parse error before "CFI_STARTPROC"
   394.7 -make[2]: *** [crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/elf/dl-runtim
   394.8 -e.o] Error 1
   394.9 -make[2]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
  394.10 -822/elf'
  394.11 -make[1]: *** [elf/subdir_lib] Error 2
  394.12 -make[1]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
  394.13 -822'
  394.14 -make: *** [all] Error 2
  394.15 -
  394.16 ------------------
  394.17 -
  394.18 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=398
  394.19 -http://sources.redhat.com/ml/libc-alpha/2004-07/msg00023.html
  394.20 -
  394.21 ------------------
  394.22 -
  394.23 -CVSROOT:	/cvs/glibc
  394.24 -Module name:	libc
  394.25 -Branch: 	glibc-2_3-branch
  394.26 -Changes by:	roland@sources.redhat.com	2006-02-23 22:36:51
  394.27 -
  394.28 -Modified files:
  394.29 -	sysdeps/s390/s390-64: dl-machine.h 
  394.30 -	sysdeps/s390/s390-32: dl-machine.h 
  394.31 -
  394.32 -Log message:
  394.33 -	2004-07-10  GOTO Masanori  <gotom@debian.or.jp>
  394.34 -	
  394.35 -	[BZ #398]
  394.36 -	* sysdeps/s390/s390-32/dl-machine.h: Include <sysdep.h> for CFI
  394.37 -	directive.
  394.38 -	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
  394.39 -
  394.40 -Patches:
  394.41 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-64/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.19.4.1&r2=1.19.4.2
  394.42 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-32/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.20.4.1&r2=1.20.4.2
  394.43 -
  394.44 -===================================================================
  394.45 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-64/dl-machine.h,v
  394.46 -retrieving revision 1.19.4.1
  394.47 -retrieving revision 1.19.4.2
  394.48 -diff -u -r1.19.4.1 -r1.19.4.2
  394.49 ---- libc/sysdeps/s390/s390-64/dl-machine.h	2005/10/17 04:57:27	1.19.4.1
  394.50 -+++ libc/sysdeps/s390/s390-64/dl-machine.h	2006/02/23 22:36:51	1.19.4.2
  394.51 -@@ -27,6 +27,7 @@
  394.52 - #include <sys/param.h>
  394.53 - #include <string.h>
  394.54 - #include <link.h>
  394.55 -+#include <sysdep.h>
  394.56 - 
  394.57 - /* This is an older, now obsolete value.  */
  394.58 - #define EM_S390_OLD	0xA390
  394.59 -===================================================================
  394.60 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-32/dl-machine.h,v
  394.61 -retrieving revision 1.20.4.1
  394.62 -retrieving revision 1.20.4.2
  394.63 -diff -u -r1.20.4.1 -r1.20.4.2
  394.64 ---- libc/sysdeps/s390/s390-32/dl-machine.h	2005/10/17 04:57:27	1.20.4.1
  394.65 -+++ libc/sysdeps/s390/s390-32/dl-machine.h	2006/02/23 22:36:51	1.20.4.2
  394.66 -@@ -27,6 +27,7 @@
  394.67 - #include <sys/param.h>
  394.68 - #include <string.h>
  394.69 - #include <link.h>
  394.70 -+#include <sysdep.h>
  394.71 - 
  394.72 - /* This is an older, now obsolete value.  */
  394.73 - #define EM_S390_OLD	0xA390
   395.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   395.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   395.3 @@ -1,117 +0,0 @@
   395.4 -Fixes
   395.5 -In file included from dynamic-link.h:22,
   395.6 -                 from dl-reloc.c:265:
   395.7 -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
   395.8 -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
   395.9 -../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
  395.10 -../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
  395.11 -../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
  395.12 -../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
  395.13 -../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
  395.14 -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
  395.15 -
  395.16 -when building glibc-2.3.[34] with gcc-4.0
  395.17 -
  395.18 -Like
  395.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
  395.20 -but works with older compilers, and fixes fix_bad_pc24.
  395.21 -
  395.22 -
  395.23 ---- glibc-2.3.4/sysdeps/arm/dl-machine.h.old	Sun Mar 20 17:54:37 2005
  395.24 -+++ glibc-2.3.4/sysdeps/arm/dl-machine.h	Sun Mar 20 17:57:32 2005
  395.25 -@@ -359,7 +359,14 @@
  395.26 - # endif
  395.27 - 
  395.28 - /* Deal with an out-of-range PC24 reloc.  */
  395.29 --static Elf32_Addr
  395.30 -+#if __GNUC__ >= 4
  395.31 -+  auto inline Elf32_Addr
  395.32 -+#else
  395.33 -+  static inline Elf32_Addr
  395.34 -+#endif
  395.35 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  395.36 -+  __attribute ((always_inline))
  395.37 -+#endif
  395.38 - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
  395.39 - {
  395.40 -   static void *fix_page;
  395.41 -@@ -392,7 +399,14 @@
  395.42 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
  395.43 -    MAP is the object containing the reloc.  */
  395.44 - 
  395.45 --static inline void
  395.46 -+#if __GNUC__ >= 4
  395.47 -+  auto inline void
  395.48 -+#else
  395.49 -+  static inline void
  395.50 -+#endif
  395.51 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  395.52 -+  __attribute ((always_inline))
  395.53 -+#endif
  395.54 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
  395.55 - 		 const Elf32_Sym *sym, const struct r_found_version *version,
  395.56 - 		 void *const reloc_addr_arg)
  395.57 -@@ -517,7 +531,14 @@
  395.58 - }
  395.59 - 
  395.60 - # ifndef RTLD_BOOTSTRAP
  395.61 --static inline void
  395.62 -+#if __GNUC__ >= 4
  395.63 -+  auto inline void
  395.64 -+#else
  395.65 -+  static inline void
  395.66 -+#endif
  395.67 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  395.68 -+  __attribute ((always_inline))
  395.69 -+#endif
  395.70 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
  395.71 - 		  const Elf32_Sym *sym, const struct r_found_version *version,
  395.72 - 		  void *const reloc_addr_arg)
  395.73 -@@ -597,7 +618,14 @@
  395.74 - }
  395.75 - # endif
  395.76 - 
  395.77 --static inline void
  395.78 -+#if __GNUC__ >= 4
  395.79 -+  auto inline void
  395.80 -+#else
  395.81 -+  static inline void
  395.82 -+#endif
  395.83 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  395.84 -+  __attribute ((always_inline))
  395.85 -+#endif
  395.86 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
  395.87 - 			  void *const reloc_addr_arg)
  395.88 - {
  395.89 -@@ -606,7 +634,14 @@
  395.90 - }
  395.91 - 
  395.92 - # ifndef RTLD_BOOTSTRAP
  395.93 --static inline void
  395.94 -+#if __GNUC__ >= 4
  395.95 -+  auto inline void
  395.96 -+#else
  395.97 -+  static inline void
  395.98 -+#endif
  395.99 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 395.100 -+  __attribute ((always_inline))
 395.101 -+#endif
 395.102 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
 395.103 - 			   void *const reloc_addr_arg)
 395.104 - {
 395.105 -@@ -615,7 +650,14 @@
 395.106 - }
 395.107 - # endif
 395.108 - 
 395.109 --static inline void
 395.110 -+#if __GNUC__ >= 4
 395.111 -+  auto inline void
 395.112 -+#else
 395.113 -+  static inline void
 395.114 -+#endif
 395.115 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 395.116 -+  __attribute ((always_inline))
 395.117 -+#endif
 395.118 - elf_machine_lazy_rel (struct link_map *map,
 395.119 - 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
 395.120 - {
   396.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-elf.patch	Tue Aug 14 19:32:22 2007 +0000
   396.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   396.3 @@ -1,61 +0,0 @@
   396.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
   396.5 -Fixes
   396.6 -  rtld.c: In function '_dl_start':
   396.7 -  dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
   396.8 -  dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
   396.9 -when compiling glibc-2.3.4 with gcc-4.0
  396.10 -
  396.11 -But see also
  396.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
  396.13 -and
  396.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
  396.15 -which seem to propose less radical fixes?
  396.16 -
  396.17 -Aha.  See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
  396.18 -
  396.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old	2005-03-12 18:12:37.000000000 -0800
  396.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h	2005-03-12 18:12:59.777820848 -0800
  396.21 -@@ -19,43 +19,6 @@
  396.22 - 
  396.23 - #include <elf.h>
  396.24 - #include <assert.h>
  396.25 --
  396.26 --#ifdef RESOLVE
  396.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
  396.28 --   ElfW(Addr), because not all architectures can assume that the
  396.29 --   relocated address is properly aligned, whereas the compiler is
  396.30 --   entitled to assume that a pointer to a type is properly aligned for
  396.31 --   the type.  Even if we cast the pointer back to some other type with
  396.32 --   less strict alignment requirements, the compiler might still
  396.33 --   remember that the pointer was originally more aligned, thereby
  396.34 --   optimizing away alignment tests or using word instructions for
  396.35 --   copying memory, breaking the very code written to handle the
  396.36 --   unaligned cases.  */
  396.37 --auto void __attribute__((always_inline))
  396.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
  396.39 --		 const ElfW(Sym) *sym, const struct r_found_version *version,
  396.40 --		 void *const reloc_addr);
  396.41 --auto void __attribute__((always_inline))
  396.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
  396.43 --		  const ElfW(Sym) *sym, const struct r_found_version *version,
  396.44 --		  void *const reloc_addr);
  396.45 --auto void __attribute__((always_inline))
  396.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
  396.47 --			  void *const reloc_addr);
  396.48 --auto void __attribute__((always_inline))
  396.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
  396.50 --			   void *const reloc_addr);
  396.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
  396.52 --auto void __attribute__((always_inline))
  396.53 --elf_machine_lazy_rel (struct link_map *map,
  396.54 --		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
  396.55 --# else
  396.56 --auto void __attribute__((always_inline))
  396.57 --elf_machine_lazy_rel (struct link_map *map,
  396.58 --		      ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
  396.59 --# endif
  396.60 --#endif
  396.61 --
  396.62 - #include <dl-machine.h>
  396.63 - 
  396.64 - #ifndef VERSYMIDX
   397.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-iconvdata.patch	Tue Aug 14 19:32:22 2007 +0000
   397.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   397.3 @@ -1,44 +0,0 @@
   397.4 -See http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
   397.5 -and http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
   397.6 -
   397.7 -Fixes
   397.8 -  In file included from jis0208.c:23:
   397.9 -  jis0208.h:32: error: array type has incomplete element type
  397.10 -when building glibc with gcc-4.0
  397.11 -The bug has been present since at least glibc-2.2.5.
  397.12 -This patch applies cleanly to glibc-2.3.4
  397.13 -
  397.14 ---- /home/dank/downloads/glibc-2.3-20050307/iconvdata/jis0208.h	2003-06-11 14:40:42.000000000 -0700
  397.15 -+++ glibc-2.3-20050307/iconvdata/jis0208.h	2005-03-13 20:55:01.784054760 -0800
  397.16 -@@ -24,15 +24,6 @@
  397.17 - #include <gconv.h>
  397.18 - #include <stdint.h>
  397.19 - 
  397.20 --/* Conversion table.  */
  397.21 --extern const uint16_t __jis0208_to_ucs[];
  397.22 --
  397.23 --extern const char __jisx0208_from_ucs4_lat1[256][2];
  397.24 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
  397.25 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
  397.26 --extern const char __jisx0208_from_ucs_tab[][2];
  397.27 --
  397.28 --
  397.29 - /* Struct for table with indeces in UCS mapping table.  */
  397.30 - struct jisx0208_ucs_idx
  397.31 - {
  397.32 -@@ -42,6 +33,15 @@
  397.33 - };
  397.34 - 
  397.35 - 
  397.36 -+/* Conversion table.  */
  397.37 -+extern const uint16_t __jis0208_to_ucs[];
  397.38 -+
  397.39 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
  397.40 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
  397.41 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
  397.42 -+extern const char __jisx0208_from_ucs_tab[][2];
  397.43 -+
  397.44 -+
  397.45 - static inline uint32_t
  397.46 - __attribute ((always_inline))
  397.47 - jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
   398.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc-procfs.patch	Tue Aug 14 19:32:22 2007 +0000
   398.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   398.3 @@ -1,62 +0,0 @@
   398.4 -First discussed here:
   398.5 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
   398.6 -
   398.7 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
   398.8 -Branch: MAIN
   398.9 -CVS Tags: fedora-glibc-20050303T1335, HEAD
  398.10 -Changes since 1.11: +3 -8 lines
  398.11 -Diff to previous 1.11 (colored)
  398.12 -
  398.13 -2005-02-21  Alan Modra <amodra@bigpond.net.au>
  398.14 -
  398.15 -	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
  398.16 -	use __uint128_t.
  398.17 -
  398.18 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
  398.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
  398.20 -
  398.21 -Fixes
  398.22 -
  398.23 -In file included from ../linuxthreads_db/proc_service.h:20,
  398.24 -                 from ../linuxthreads_db/thread_dbP.h:7,
  398.25 -                 from ../linuxthreads/descr.h:44,
  398.26 -                 from ../linuxthreads/internals.h:30,
  398.27 -                 from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
  398.28 -                 from ../sysdeps/generic/ldsodefs.h:38,
  398.29 -                 from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
  398.30 -                 from <stdin>:2:
  398.31 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
  398.32 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
  398.33 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
  398.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
  398.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
  398.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
  398.37 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
  398.38 -
  398.39 -
  398.40 -===================================================================
  398.41 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h,v
  398.42 -retrieving revision 1.11
  398.43 -retrieving revision 1.12
  398.44 -diff -u -r1.11 -r1.12
  398.45 ---- libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2003/12/17 23:09:34	1.11
  398.46 -+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2005/03/02 20:11:38	1.12
  398.47 -@@ -46,15 +46,10 @@
  398.48 - typedef double elf_fpreg_t;
  398.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  398.50 - 
  398.51 --/* gcc 3.1 and newer support __uint128_t.  */
  398.52 --#if !__GNUC_PREREQ(3,1)
  398.53 --typedef struct {
  398.54 --  unsigned long u[4];
  398.55 --} __attribute((aligned(16))) __uint128_t;
  398.56 --#endif
  398.57 --
  398.58 - /* Altivec registers */
  398.59 --typedef __uint128_t elf_vrreg_t;
  398.60 -+typedef struct {
  398.61 -+  unsigned int u[4];
  398.62 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
  398.63 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
  398.64 - #endif
  398.65 - 
   399.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch	Tue Aug 14 19:32:22 2007 +0000
   399.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   399.3 @@ -1,42 +0,0 @@
   399.4 -Fixes
   399.5 -
   399.6 -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object':
   399.7 -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative'
   399.8 -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel'
   399.9 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1
  399.10 -
  399.11 -diff -ur glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h
  399.12 ---- glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h	Wed Jul 30 23:33:52 2003
  399.13 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h	Thu Mar 17 13:19:16 2005
  399.14 -@@ -455,7 +455,14 @@
  399.15 -     }
  399.16 - }
  399.17 - 
  399.18 --static inline void
  399.19 -+#if __GNUC__ >= 4
  399.20 -+  auto inline void
  399.21 -+#else
  399.22 -+  static inline void
  399.23 -+#endif
  399.24 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  399.25 -+  __attribute ((always_inline))
  399.26 -+#endif
  399.27 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
  399.28 - 			   void *const reloc_addr_arg)
  399.29 - {
  399.30 -@@ -463,7 +470,14 @@
  399.31 -   *reloc_addr = l_addr + reloc->r_addend;
  399.32 - }
  399.33 - 
  399.34 --static inline void
  399.35 -+#if __GNUC__ >= 4
  399.36 -+  auto inline void
  399.37 -+#else
  399.38 -+  static inline void
  399.39 -+#endif
  399.40 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  399.41 -+  __attribute ((always_inline))
  399.42 -+#endif
  399.43 - elf_machine_lazy_rel (struct link_map *map,
  399.44 - 		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
  399.45 - {
   400.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch	Tue Aug 14 19:32:22 2007 +0000
   400.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   400.3 @@ -1,60 +0,0 @@
   400.4 -Fixes:
   400.5 -
   400.6 -In file included from dynamic-link.h:22,
   400.7 -                 from dl-reloc.c:269:
   400.8 -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object':
   400.9 -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative'
  400.10 -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela'
  400.11 -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel'
  400.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf'
  400.13 -
  400.14 ---- glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h.old	Thu Mar 17 13:35:23 2005
  400.15 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h	Thu Mar 17 13:37:12 2005
  400.16 -@@ -567,7 +567,14 @@
  400.17 -                                 const Elf64_Sym *refsym)
  400.18 -                                 attribute_hidden;
  400.19 - 
  400.20 --static inline void
  400.21 -+#if __GNUC__ >= 4
  400.22 -+  auto inline void
  400.23 -+#else
  400.24 -+  static inline void
  400.25 -+#endif
  400.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  400.27 -+  __attribute ((always_inline))
  400.28 -+#endif
  400.29 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
  400.30 - 			   void *const reloc_addr_arg)
  400.31 - {
  400.32 -@@ -598,7 +605,14 @@
  400.33 - 
  400.34 - /* Perform the relocation specified by RELOC and SYM (which is fully
  400.35 -    resolved).  MAP is the object containing the reloc.  */
  400.36 --static inline void
  400.37 -+#if __GNUC__ >= 4
  400.38 -+  auto inline void
  400.39 -+#else
  400.40 -+  static inline void
  400.41 -+#endif
  400.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  400.43 -+  __attribute ((always_inline))
  400.44 -+#endif
  400.45 - elf_machine_rela (struct link_map *map,
  400.46 - 		  const Elf64_Rela *reloc,
  400.47 - 		  const Elf64_Sym *sym,
  400.48 -@@ -883,7 +897,14 @@
  400.49 -   MODIFIED_CODE_NOQUEUE (reloc_addr);
  400.50 - }
  400.51 - 
  400.52 --static inline void
  400.53 -+#if __GNUC__ >= 4
  400.54 -+  auto inline void
  400.55 -+#else
  400.56 -+  static inline void
  400.57 -+#endif
  400.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  400.59 -+  __attribute ((always_inline))
  400.60 -+#endif
  400.61 - elf_machine_lazy_rel (struct link_map *map,
  400.62 - 		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
  400.63 - {
   401.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   401.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   401.3 @@ -1,166 +0,0 @@
   401.4 -Fixes
   401.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   401.6 -...
   401.7 -when building glibc-2.3.4 on cygwin
   401.8 -
   401.9 -Idea from
  401.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  401.11 -Basically, make glibc use .oST as suffix for 'object static'
  401.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  401.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  401.14 -
  401.15 -glibc-linuxthreads-2.3.4 also requires a patch, see 
  401.16 -../glibc-linuxthreads-2.3.4/glibc-linuxthreads-2.3.4-cygwin.patch
  401.17 -
  401.18 -[ Ported to glibc-2.3.4 by steve@digidescorp.com ]
  401.19 -
  401.20 ---- glibc-2.3.4/Makeconfig.orig	2004-12-15 12:51:47.000000000 -0600
  401.21 -+++ glibc-2.3.4/Makeconfig	2005-06-29 00:31:27.000000000 -0500
  401.22 -@@ -449,7 +449,7 @@
  401.23 - # run the linked programs.
  401.24 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  401.25 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  401.26 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  401.27 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  401.28 - # This is how to find at build-time things that will be installed there.
  401.29 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  401.30 - endif
  401.31 -@@ -667,7 +667,7 @@
  401.32 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  401.33 - # to pass different flags for each flavor.
  401.34 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  401.35 --all-object-suffixes := .o .os .op .og .ob .oS
  401.36 -+all-object-suffixes := .o .os .op .og .ob .oST
  401.37 - object-suffixes :=
  401.38 - CPPFLAGS-.o = $(pic-default)
  401.39 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  401.40 -@@ -723,14 +723,14 @@
  401.41 - 
  401.42 - ifeq (yes,$(build-shared))
  401.43 - # Build special library that contains the static-only routines for libc.
  401.44 --object-suffixes-for-libc += .oS
  401.45 -+object-suffixes-for-libc += .oST
  401.46 - 
  401.47 - # Must build the routines as PIC, though, because they can end up in (users')
  401.48 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  401.49 - # example, make that processor-specific.
  401.50 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
  401.51 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  401.52 --libtype.oS = lib%_nonshared.a
  401.53 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  401.54 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  401.55 -+libtype.oST = lib%_nonshared.a
  401.56 - endif
  401.57 - 
  401.58 - # The assembler can generate debug information too.
  401.59 ---- glibc-2.3.4/Makerules.orig	2005-06-28 20:57:52.562500000 -0500
  401.60 -+++ glibc-2.3.4/Makerules	2005-06-29 00:27:21.328125000 -0500
  401.61 -@@ -416,7 +416,7 @@
  401.62 - # Bounded pointer thunks are only built for *.ob
  401.63 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  401.64 - 
  401.65 --elide-routines.oS += $(filter-out $(static-only-routines),\
  401.66 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  401.67 - 				  $(routines) $(aux) $(sysdep_routines)) \
  401.68 - 		     $(elide-bp-thunks)
  401.69 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  401.70 -@@ -968,7 +968,7 @@
  401.71 - install: $(inst_libdir)/libc.so
  401.72 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
  401.73 - 			$(common-objpfx)libc.so$(libc.so-version) \
  401.74 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  401.75 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  401.76 - 						  $(libprefix)$(libc-name)) \
  401.77 - 			$(+force)
  401.78 - 	(echo '/* GNU ld script';\
  401.79 -@@ -976,7 +976,7 @@
  401.80 - 	 echo '   the static library, so try that secondarily.  */';\
  401.81 - 	 cat $<; \
  401.82 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  401.83 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  401.84 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  401.85 - 	      ')' \
  401.86 - 	) > $@.new
  401.87 - 	mv -f $@.new $@
  401.88 -diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk
  401.89 ---- glibc-2.3.5/extra-lib.mk	2004-12-02 23:54:47.000000000 +0100
  401.90 -+++ glibc-2.3.5-cygwin/extra-lib.mk	2005-05-11 08:27:28.156250000 +0200
  401.91 -@@ -13,7 +13,7 @@
  401.92 - 
  401.93 - ifneq (,$($(lib)-static-only-routines))
  401.94 - ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
  401.95 --object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
  401.96 -+object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST)
  401.97 - endif
  401.98 - endif
  401.99 - 
 401.100 -@@ -29,7 +29,7 @@
 401.101 - 
 401.102 - # Add each flavor of library to the lists of things to build and install.
 401.103 - install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
 401.104 --extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\
 401.105 -+extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\
 401.106 - 			$(patsubst %,%$o,$(filter-out \
 401.107 - 					   $($(lib)-shared-only-routines),\
 401.108 - 					   $(all-$(lib)-routines))))
 401.109 -@@ -57,7 +57,7 @@
 401.110 - 
 401.111 - 
 401.112 - # Use o-iterator.mk to generate a rule for each flavor of library.
 401.113 --ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib))))
 401.114 -+ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib))))
 401.115 - define o-iterator-doit
 401.116 - $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
 401.117 -   $(patsubst %,$(objpfx)%$o,\
 401.118 -@@ -65,7 +65,7 @@
 401.119 - 			  $(all-$(lib)-routines))); \
 401.120 - 	$$(build-extra-lib)
 401.121 - endef
 401.122 --object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib)))
 401.123 -+object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib)))
 401.124 - include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
 401.125 - endif
 401.126 - 
 401.127 -@@ -77,9 +77,9 @@
 401.128 - 	$(build-extra-lib)
 401.129 - endif
 401.130 - 
 401.131 --ifneq (,$(filter .oS,$(object-suffixes-$(lib))))
 401.132 --$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
 401.133 --  $(patsubst %,$(objpfx)%.oS,\
 401.134 -+ifneq (,$(filter .oST,$(object-suffixes-$(lib))))
 401.135 -+$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \
 401.136 -+  $(patsubst %,$(objpfx)%.oST,\
 401.137 - 	     $(filter $($(lib)-static-only-routines),\
 401.138 - 		      $(all-$(lib)-routines)))
 401.139 - 	$(build-extra-lib)
 401.140 -diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile
 401.141 ---- glibc-2.3.5/nptl/Makefile	2005-02-16 09:45:56.000000000 +0100
 401.142 -+++ glibc-2.3.5-cygwin/nptl/Makefile	2005-05-11 08:26:01.812500000 +0200
 401.143 -@@ -360,7 +360,7 @@
 401.144 - 
 401.145 - $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
 401.146 - 			      $(objpfx)libpthread.so$(libpthread.so-version) \
 401.147 --			      $(inst_libdir)/$(patsubst %,$(libtype.oS),\
 401.148 -+			      $(inst_libdir)/$(patsubst %,$(libtype.oST),\
 401.149 - 							$(libprefix)pthread) \
 401.150 - 			      $(+force)
 401.151 - 	(echo '/* GNU ld script';\
 401.152 -@@ -368,7 +368,7 @@
 401.153 - 	 echo '   the static library, so try that secondarily.  */';\
 401.154 - 	 cat $<; \
 401.155 - 	 echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
 401.156 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
 401.157 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\
 401.158 - 	      ')' \
 401.159 - 	) > $@.new
 401.160 - 	mv -f $@.new $@
 401.161 -diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
 401.162 ---- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-16 08:46:14.000000000 +0200
 401.163 -+++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile	2005-05-11 08:26:25.937500000 +0200
 401.164 -@@ -10,4 +10,4 @@
 401.165 - ASFLAGS-.op += -Wa,-Av9a
 401.166 - ASFLAGS-.og += -Wa,-Av9a
 401.167 - ASFLAGS-.ob += -Wa,-Av9a
 401.168 --ASFLAGS-.oS += -Wa,-Av9a
 401.169 -+ASFLAGS-.oST += -Wa,-Av9a
   402.1 --- a/patches/glibc/2.3.4/glibc-2.3.4-memcmp.patch	Tue Aug 14 19:32:22 2007 +0000
   402.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   402.3 @@ -1,46 +0,0 @@
   402.4 -Fixes
   402.5 -    ../sysdeps/i386/i686/memcmp.S: Assembler messages:
   402.6 -    ../sysdeps/i386/i686/memcmp.S:390: Error: can't resolve  `.rodata' {.rodata section} - `memcmp' {.text section}
   402.7 -when building on macosx.
   402.8 -
   402.9 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S?cvsroot=glibc
  402.10 -Revision 1.4, Thu Apr 28 18:19:25 2005 UTC by drepper
  402.11 -Branch: MAIN
  402.12 -CVS Tags: fedora-glibc-20050503T0852
  402.13 -Changes since 1.3: +2 -2 lines
  402.14 -Diff to previous 1.3 (colored)
  402.15 -
  402.16 -Move misplaced END.
  402.17 -
  402.18 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S.diff?r1=1.3&r2=1.4&cvsroot=glibc
  402.19 -
  402.20 -===================================================================
  402.21 -RCS file: /cvs/glibc/libc/sysdeps/i386/i686/memcmp.S,v
  402.22 -retrieving revision 1.3
  402.23 -retrieving revision 1.4
  402.24 -diff -u -r1.3 -r1.4
  402.25 ---- libc/sysdeps/i386/i686/memcmp.S	2004/04/01 23:28:37	1.3
  402.26 -+++ libc/sysdeps/i386/i686/memcmp.S	2005/04/28 18:19:25	1.4
  402.27 -@@ -1,5 +1,5 @@
  402.28 - /* Compare two memory blocks for differences in the first COUNT bytes.
  402.29 --   Copyright (C) 2004 Free Software Foundation, Inc.
  402.30 -+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  402.31 -    This file is part of the GNU C Library.
  402.32 - 
  402.33 -    The GNU C Library is free software; you can redistribute it and/or
  402.34 -@@ -350,6 +350,7 @@
  402.35 - 	sbbl	$-1, %eax
  402.36 - 	popl	%esi
  402.37 - 	RETURN
  402.38 -+END (BP_SYM (memcmp))
  402.39 - 
  402.40 - 	.section	.rodata
  402.41 - 	ALIGN (2)
  402.42 -@@ -387,7 +388,6 @@
  402.43 - 	.long	L(30bytes) - . + 0x78
  402.44 - 	.long	L(31bytes) - . + 0x7c
  402.45 - 
  402.46 --END (BP_SYM (memcmp))
  402.47 - 
  402.48 - #undef bcmp
  402.49 - weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
   403.1 --- a/patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-string.patch	Tue Aug 14 19:32:22 2007 +0000
   403.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   403.3 @@ -1,83 +0,0 @@
   403.4 -
   403.5 -Fixes? the following error when building with gcc-4.0.0:
   403.6 -
   403.7 -../string/strcoll.c:39: error: '__EI_strcoll' aliased to undefined symbol '__GI_strcoll'
   403.8 -make[2]: *** [/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcscoll.os] Error 1
   403.9 -make[2]: Leaving directory `/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4/wcsmbs'
  403.10 -
  403.11 -
  403.12 -Thu Mar 17 21:06:24 2005 UTC (3 weeks, 5 days ago) by roland
  403.13 -Branch: MAIN
  403.14 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
  403.15 -
  403.16 -2005-03-16  Richard Henderson  <rth@redhat.com>
  403.17 -
  403.18 -	* include/wchar.h (__wcscoll): Remove.
  403.19 -	* wcsmbs/wcscoll.c: Define wcscoll directly instead of via __wcscoll.
  403.20 -	* string/strcoll.c: Don't issue libc_hidden_def STRCOLL redefined.
  403.21 -
  403.22 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/string/strcoll.c.diff?r1=1.33&r2=1.34&cvsroot=glibc
  403.23 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/wchar.h.diff?r1=1.26&r2=1.27&cvsroot=glibc
  403.24 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/wcsmbs/wcscoll.c.diff?r1=1.13&r2=1.14&cvsroot=glibc
  403.25 -
  403.26 -===================================================================
  403.27 -RCS file: /cvs/glibc/libc/string/strcoll.c,v
  403.28 -retrieving revision 1.33
  403.29 -retrieving revision 1.34
  403.30 -diff -u -r1.33 -r1.34
  403.31 ---- libc/string/strcoll.c	2004/03/14 20:51:30	1.33
  403.32 -+++ libc/string/strcoll.c	2005/03/17 21:06:24	1.34
  403.33 -@@ -23,6 +23,7 @@
  403.34 - # define STRING_TYPE char
  403.35 - # define STRCOLL strcoll
  403.36 - # define STRCOLL_L __strcoll_l
  403.37 -+# define USE_HIDDEN_DEF
  403.38 - #endif
  403.39 - 
  403.40 - #include "../locale/localeinfo.h"
  403.41 -@@ -35,6 +36,7 @@
  403.42 - {
  403.43 -   return STRCOLL_L (s1, s2, _NL_CURRENT_LOCALE);
  403.44 - }
  403.45 --#if !defined WIDE_CHAR_VERSION
  403.46 --libc_hidden_def (strcoll)
  403.47 -+
  403.48 -+#ifdef USE_HIDDEN_DEF
  403.49 -+libc_hidden_def (STRCOLL)
  403.50 - #endif
  403.51 -===================================================================
  403.52 -RCS file: /cvs/glibc/libc/include/wchar.h,v
  403.53 -retrieving revision 1.26
  403.54 -retrieving revision 1.27
  403.55 -diff -u -r1.26 -r1.27
  403.56 ---- libc/include/wchar.h	2004/03/14 20:45:10	1.26
  403.57 -+++ libc/include/wchar.h	2005/03/17 21:06:24	1.27
  403.58 -@@ -56,7 +56,6 @@
  403.59 - extern int __wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
  403.60 - 			  size_t __n)
  403.61 -      __attribute_pure__;
  403.62 --extern int __wcscoll (__const wchar_t *__s1, __const wchar_t *__s2);
  403.63 - extern size_t __wcslen (__const wchar_t *__s) __attribute_pure__;
  403.64 - extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen)
  403.65 -      __attribute_pure__;
  403.66 -===================================================================
  403.67 -RCS file: /cvs/glibc/libc/wcsmbs/wcscoll.c,v
  403.68 -retrieving revision 1.13
  403.69 -retrieving revision 1.14
  403.70 -diff -u -r1.13 -r1.14
  403.71 ---- libc/wcsmbs/wcscoll.c	2004/03/14 21:05:48	1.13
  403.72 -+++ libc/wcsmbs/wcscoll.c	2005/03/17 21:06:24	1.14
  403.73 -@@ -22,12 +22,11 @@
  403.74 - 
  403.75 - #define STRING_TYPE wchar_t
  403.76 - #define USTRING_TYPE wint_t
  403.77 --#define STRCOLL __wcscoll
  403.78 -+#define STRCOLL wcscoll
  403.79 - #define STRCOLL_L __wcscoll_l
  403.80 - 
  403.81 - #include "../string/strcoll.c"
  403.82 - 
  403.83 - #ifndef USE_IN_EXTENDED_LOCALE_MODEL
  403.84 --weak_alias (__wcscoll, wcscoll)
  403.85 - libc_hidden_weak (wcscoll)
  403.86 - #endif
   404.1 --- a/patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-symbols.patch	Tue Aug 14 19:32:22 2007 +0000
   404.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   404.3 @@ -1,126 +0,0 @@
   404.4 -If I'm really lucky, this fixes the following error building with gcc-4.0.0:
   404.5 -
   404.6 -../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
   404.7 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/math/s_isinf.os] Error 1
   404.8 -make[1]: *** [math/subdir_lib] Error 2
   404.9 -make: *** [lib] Error 2
  404.10 -
  404.11 ----
  404.12 -
  404.13 -
  404.14 -Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
  404.15 -Branch: MAIN
  404.16 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
  404.17 -Changes since 1.70: +11 -66 lines
  404.18 -Diff to previous 1.70 (colored)
  404.19 -
  404.20 -2005-03-16  Richard Henderson  <rth@redhat.com>
  404.21 -
  404.22 -	* include/libc-symbols.h (__hidden_proto): Remove bogus declaration
  404.23 -	of internal.
  404.24 -	(__hidden_def1, __hidden_dot_def1): Remove.
  404.25 -	(__hidden_def2, __hidden_def3): Remove.
  404.26 -	(__hidden_ver1): New.
  404.27 -	(hidden_ver, hidden_def, hidden_weak): Use it.
  404.28 -	(hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
  404.29 -	version of the macro.
  404.30 -
  404.31 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
  404.32 -
  404.33 -===================================================================
  404.34 -RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
  404.35 -retrieving revision 1.70
  404.36 -retrieving revision 1.71
  404.37 -diff -u -r1.70 -r1.71
  404.38 ---- libc/include/libc-symbols.h	2005/02/11 00:29:46	1.70
  404.39 -+++ libc/include/libc-symbols.h	2005/03/17 21:06:27	1.71
  404.40 -@@ -583,78 +583,23 @@
  404.41 - #  define hidden_proto(name, attrs...) \
  404.42 -   __hidden_proto (name, __GI_##name, ##attrs)
  404.43 - #  define __hidden_proto(name, internal, attrs...) \
  404.44 --  extern __typeof (name) internal; \
  404.45 -   extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
  404.46 -   __hidden_proto_hiddenattr (attrs);
  404.47 - #  define __hidden_asmname(name) \
  404.48 -   __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
  404.49 - #  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
  404.50 - #  define __hidden_asmname2(prefix, name) #prefix name
  404.51 --#  ifdef HAVE_ASM_SET_DIRECTIVE
  404.52 --#   define __hidden_def1(original, alias)			\
  404.53 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
  404.54 --  .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
  404.55 --#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
  404.56 --#     define __hidden_dot_def1(original, alias)	 ASM_LINE_SEP	\
  404.57 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
  404.58 --  .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
  404.59 --#   else
  404.60 --#     define __hidden_dot_def1(original, alias)
  404.61 --#   endif
  404.62 --#  else
  404.63 --#   define __hidden_def1(original, alias)			\
  404.64 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
  404.65 --  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
  404.66 --#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
  404.67 --#    define __hidden_dot_def1(original, alias)	ASM_LINE_SEP	\
  404.68 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
  404.69 --  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
  404.70 --#   else
  404.71 --#    define __hidden_dot_def1(original, alias)
  404.72 --#   endif
  404.73 --#  endif
  404.74 --#  define __hidden_def2(...) #__VA_ARGS__
  404.75 --#  define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
  404.76 --#  define hidden_def(name)					\
  404.77 --  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
  404.78 --  __hidden_dot_def1 (__GI_##name, name)));
  404.79 --#  define hidden_data_def(name)					\
  404.80 --  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
  404.81 --#  define hidden_ver(local, name)				\
  404.82 --  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
  404.83 --  __hidden_dot_def1 (local, __GI_##name)));
  404.84 --#  define hidden_data_ver(local, name)				\
  404.85 --  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
  404.86 --#  ifdef HAVE_WEAK_SYMBOLS
  404.87 --#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
  404.88 --#    define __hidden_weak1(original, alias)			\
  404.89 --  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
  404.90 --#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
  404.91 --#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
  404.92 --  .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
  404.93 --#    else
  404.94 --#     define __hidden_dot_weak1(original, alias)
  404.95 --#    endif
  404.96 --#   else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
  404.97 --#    define __hidden_weak1(original, alias)			\
  404.98 --  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
  404.99 --  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
 404.100 --#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
 404.101 --#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
 404.102 --  .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
 404.103 --  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
 404.104 --#    else
 404.105 --#     define __hidden_dot_weak1(original, alias)
 404.106 --#    endif
 404.107 --#   endif
 404.108 --#   define hidden_weak(name)					\
 404.109 --  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
 404.110 --  __hidden_dot_weak1 (__GI_##name, name)));
 404.111 --#   define hidden_data_weak(name)					\
 404.112 --  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
 404.113 --#  else
 404.114 --#   define hidden_weak(name) hidden_def (name)
 404.115 --#  endif
 404.116 -+#  define __hidden_ver1(local, internal, name) \
 404.117 -+  extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
 404.118 -+  extern __typeof (name) __EI_##name \
 404.119 -+	__attribute__((alias (__hidden_asmname (#local))))
 404.120 -+#  define hidden_ver(local, name)	__hidden_ver1(local, __GI_##name, name);
 404.121 -+#  define hidden_data_ver(local, name)	hidden_ver(local, name)
 404.122 -+#  define hidden_def(name)		__hidden_ver1(__GI_##name, name, name);
 404.123 -+#  define hidden_data_def(name)		hidden_def(name)
 404.124 -+#  define hidden_weak(name) \
 404.125 -+	__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
 404.126 -+#  define hidden_data_weak(name)	hidden_weak(name)
 404.127 - # else
 404.128 - /* For assembly, we need to do the opposite of what we do in C:
 404.129 -    in assembly gcc __REDIRECT stuff is not in place, so functions
   405.1 --- a/patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-wcstol_l.patch	Tue Aug 14 19:32:22 2007 +0000
   405.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   405.3 @@ -1,57 +0,0 @@
   405.4 -Fixes
   405.5 -../sysdeps/wordsize-64/wcstol_l.c:11: error: '____wcstoll_l_internal' aliased to undefined symbol '____wcstol_l_internal'
   405.6 -../sysdeps/wordsize-64/wcstol_l.c:12: error: '__wcstoll_l' aliased to undefined symbol '__wcstol_l'
   405.7 -../sysdeps/wordsize-64/wcstol_l.c:13: error: 'wcstoll_l' aliased to undefined symbol '__wcstol_l'
   405.8 -make[2]: *** [/home/dkegel/queue/jobdir.produser_cpsm10/crosstool-0.32/build/x86_64-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcstoul_l.o] Error 1
   405.9 -
  405.10 -https://www.redhat.com/archives/fedora-cvs-commits/2005-March/msg00408.html
  405.11 -%changelog
  405.12 -+* Fri Mar 25 2005 Jakub Jelinek <jakub redhat com> 2.3.4-18
  405.13 -+- fix build on 64-bit arches with new GCC
  405.14 -
  405.15 -Revision 1.4.2.1, Fri Mar 25 11:59:01 2005 UTC (3 weeks, 4 days ago) by jakub
  405.16 -Branch: fedora-branch
  405.17 -CVS Tags: fedora-glibc-2_3_4-18
  405.18 -Changes since 1.4: +2 -0 lines
  405.19 -Diff to previous 1.4 (colored)
  405.20 -
  405.21 -	* sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED.
  405.22 -	* sysdeps/wordsize-64/wcstol_l.c: Likewise.
  405.23 -
  405.24 -
  405.25 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/strtol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
  405.26 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/wcstol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
  405.27 -
  405.28 -===================================================================
  405.29 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/strtol_l.c,v
  405.30 -retrieving revision 1.4
  405.31 -retrieving revision 1.4.2.1
  405.32 -diff -u -r1.4 -r1.4.2.1
  405.33 ---- libc/sysdeps/wordsize-64/strtol_l.c	2003/03/03 09:45:12	1.4
  405.34 -+++ libc/sysdeps/wordsize-64/strtol_l.c	2005/03/25 11:59:01	1.4.2.1
  405.35 -@@ -8,7 +8,9 @@
  405.36 - #undef ____strtoll_l_internal
  405.37 - #undef __strtoll_l
  405.38 - #undef strtoll_l
  405.39 -+#if !UNSIGNED
  405.40 - strong_alias (____strtol_l_internal, ____strtoll_l_internal)
  405.41 - libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal)
  405.42 - weak_alias (__strtol_l, __strtoll_l)
  405.43 - weak_alias (__strtol_l, strtoll_l)
  405.44 -+#endif
  405.45 -===================================================================
  405.46 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/wcstol_l.c,v
  405.47 -retrieving revision 1.4
  405.48 -retrieving revision 1.4.2.1
  405.49 -diff -u -r1.4 -r1.4.2.1
  405.50 ---- libc/sysdeps/wordsize-64/wcstol_l.c	2002/08/08 11:44:51	1.4
  405.51 -+++ libc/sysdeps/wordsize-64/wcstol_l.c	2005/03/25 11:59:01	1.4.2.1
  405.52 -@@ -8,6 +8,8 @@
  405.53 - #undef ____wcstoll_l_internal
  405.54 - #undef __wcstoll_l
  405.55 - #undef wcstoll_l
  405.56 -+#if !UNSIGNED
  405.57 - strong_alias (____wcstol_l_internal, ____wcstoll_l_internal)
  405.58 - weak_alias (__wcstol_l, __wcstoll_l)
  405.59 - weak_alias (__wcstol_l, wcstoll_l)
  405.60 -+#endif
   406.1 --- a/patches/glibc/2.3.4/glibc-configure-apple-as.patch	Tue Aug 14 19:32:22 2007 +0000
   406.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   406.3 @@ -1,23 +0,0 @@
   406.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
   406.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
   406.6 -
   406.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
   406.8 -where the assembler but doesn't understand the --version flag.
   406.9 -
  406.10 -Fixes the symptom
  406.11 -checking whether ld is GNU ld... no
  406.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
  406.13 -checking version of /usr/libexec/gcc/darwin/ppc/as... 
  406.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
  406.15 -
  406.16 ---- glibc-2.3.2/configure~	Wed Feb 26 09:20:48 2003
  406.17 -+++ glibc-2.3.2/configure	Fri Feb 27 13:12:53 2004
  406.18 -@@ -3789,7 +3789,7 @@
  406.19 -   # Found it, now check the version.
  406.20 -   echo "$as_me:$LINENO: checking version of $AS" >&5
  406.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
  406.22 --  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  406.23 -+  ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  406.24 -   case $ac_prog_version in
  406.25 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  406.26 -     2.1[3-9]*)
   407.1 --- a/patches/glibc/2.3.4/glibc-fp-byteorder.patch	Tue Aug 14 19:32:22 2007 +0000
   407.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   407.3 @@ -1,203 +0,0 @@
   407.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
   407.5 -Author: addsub@eyou.com
   407.6 -Target: ARM
   407.7 -
   407.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
   407.9 -and makes printf("%f", 1.0) work.
  407.10 -
  407.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
  407.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
  407.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
  407.14 - It's definitely needed for hardfloat.  So I'd think it's needed for
  407.15 - big-endian systems in any case, and for VFP on little-endian systems
  407.16 - too.  Someone would have to verify that though.
  407.17 -
  407.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
  407.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
  407.20 - for this version.  glibc-20040830 out-of-the-box still contains the
  407.21 - following wrong assumptions:
  407.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
  407.23 -   not on vfp systems)
  407.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
  407.25 -   are not on big endian systems, neither on vfp systems)
  407.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
  407.27 -   (which they are not on big endian systems)
  407.28 - [This patch] seems the right solution for all of these issues.
  407.29 -
  407.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
  407.31 - It's even needed for glibc CVS, AFAICS.
  407.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
  407.33 - (currently at version 1.4) is only needed for proper VFP operation.
  407.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
  407.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
  407.36 - for proper operation of *any* FP model on big endian ARM.
  407.37 -
  407.38 -See also discussion in followups to
  407.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
  407.40 -
  407.41 -Message-ID: <276985760.37584@eyou.com>
  407.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
  407.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
  407.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
  407.45 -Date: 17 Feb 2004 10:42:38 +0800
  407.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
  407.47 -From: "add" <addsub@eyou.com>
  407.48 -To: dank@kegel.com
  407.49 -Reply-To: "add" <addsub@eyou.com>
  407.50 -Subject: Re:&nbsp;&nbsp;&nbsp;problem&nbsp;while&nbsp;building&nbsp;arm&nbsp;vfp&nbsp;softfloat&nbsp;gcc&nbsp;`
  407.51 -
  407.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
  407.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
  407.54 -
  407.55 -
  407.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
  407.57 ---- glibc.old/sysdeps/arm/bits/endian.h	1999-04-12 11:59:13.000000000 -0400
  407.58 -+++ glibc.new/sysdeps/arm/bits/endian.h	2004-02-12 09:15:13.000000000 -0500
  407.59 -@@ -9,4 +9,9 @@
  407.60 - #else
  407.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
  407.62 - #endif
  407.63 -+
  407.64 -+#ifdef __VFP_FP__
  407.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
  407.66 -+#else
  407.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
  407.68 -+#endif
  407.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
  407.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h	2001-07-07 15:21:19.000000000 -0400
  407.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h	2004-02-12 09:15:13.000000000 -0500
  407.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
  407.73 - #define BITS_PER_SHORTINT 16
  407.74 - #define BITS_PER_CHAR 8
  407.75 - 
  407.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
  407.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
  407.78 -+#if defined(__ARMEB__)
  407.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  407.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
  407.81 -+#elif defined(__VFP_FP__)
  407.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  407.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  407.84 -+#else
  407.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  407.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
  407.87 -+#endif
  407.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
  407.89 ---- glibc.old/sysdeps/arm/ieee754.h	2001-07-07 15:21:19.000000000 -0400
  407.90 -+++ glibc.new/sysdeps/arm/ieee754.h	1969-12-31 19:00:00.000000000 -0500
  407.91 -@@ -1,115 +0,0 @@
  407.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
  407.93 --   This file is part of the GNU C Library.
  407.94 --
  407.95 --   The GNU C Library is free software; you can redistribute it and/or
  407.96 --   modify it under the terms of the GNU Lesser General Public
  407.97 --   License as published by the Free Software Foundation; either
  407.98 --   version 2.1 of the License, or (at your option) any later version.
  407.99 --
 407.100 --   The GNU C Library is distributed in the hope that it will be useful,
 407.101 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 407.102 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 407.103 --   Lesser General Public License for more details.
 407.104 --
 407.105 --   You should have received a copy of the GNU Lesser General Public
 407.106 --   License along with the GNU C Library; if not, write to the Free
 407.107 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 407.108 --   02111-1307 USA.  */
 407.109 --
 407.110 --#ifndef _IEEE754_H
 407.111 --
 407.112 --#define _IEEE754_H 1
 407.113 --#include <features.h>
 407.114 --
 407.115 --#include <endian.h>
 407.116 --
 407.117 --__BEGIN_DECLS
 407.118 --
 407.119 --union ieee754_float
 407.120 --  {
 407.121 --    float f;
 407.122 --
 407.123 --    /* This is the IEEE 754 single-precision format.  */
 407.124 --    struct
 407.125 --      {
 407.126 --	unsigned int mantissa:23;
 407.127 --	unsigned int exponent:8;
 407.128 --	unsigned int negative:1;
 407.129 --      } ieee;
 407.130 --
 407.131 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 407.132 --    struct
 407.133 --      {
 407.134 --	unsigned int mantissa:22;
 407.135 --	unsigned int quiet_nan:1;
 407.136 --	unsigned int exponent:8;
 407.137 --	unsigned int negative:1;
 407.138 --      } ieee_nan;
 407.139 --  };
 407.140 --
 407.141 --#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
 407.142 --
 407.143 --
 407.144 --union ieee754_double
 407.145 --  {
 407.146 --    double d;
 407.147 --
 407.148 --    /* This is the IEEE 754 double-precision format.  */
 407.149 --    struct
 407.150 --      {
 407.151 --	unsigned int mantissa0:20;
 407.152 --	unsigned int exponent:11;
 407.153 --	unsigned int negative:1;
 407.154 --	unsigned int mantissa1:32;
 407.155 --      } ieee;
 407.156 --
 407.157 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 407.158 --    struct
 407.159 --      {
 407.160 --	unsigned int mantissa0:19;
 407.161 --	unsigned int quiet_nan:1;
 407.162 --	unsigned int exponent:11;
 407.163 --	unsigned int negative:1;
 407.164 --	unsigned int mantissa1:32;
 407.165 --      } ieee_nan;
 407.166 --  };
 407.167 --
 407.168 --#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
 407.169 --
 407.170 --
 407.171 --/* The following two structures are correct for `new' floating point systems but
 407.172 --   wrong for the old FPPC.  The only solution seems to be to avoid their use on
 407.173 --   old hardware.  */
 407.174 --
 407.175 --union ieee854_long_double
 407.176 --  {
 407.177 --    long double d;
 407.178 --
 407.179 --    /* This is the IEEE 854 double-extended-precision format.  */
 407.180 --    struct
 407.181 --      {
 407.182 --	unsigned int exponent:15;
 407.183 --	unsigned int empty:16;
 407.184 --	unsigned int negative:1;
 407.185 --	unsigned int mantissa1:32;
 407.186 --	unsigned int mantissa0:32;
 407.187 --      } ieee;
 407.188 --
 407.189 --    /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
 407.190 --    struct
 407.191 --      {
 407.192 --	unsigned int exponent:15;
 407.193 --	unsigned int empty:16;
 407.194 --	unsigned int negative:1;
 407.195 --	unsigned int mantissa1:32;
 407.196 --	unsigned int mantissa0:30;
 407.197 --	unsigned int quiet_nan:1;
 407.198 --	unsigned int one:1;
 407.199 --      } ieee_nan;
 407.200 --  };
 407.201 --
 407.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
 407.203 --
 407.204 --__END_DECLS
 407.205 --
 407.206 --#endif /* ieee754.h */
   408.1 --- a/patches/glibc/2.3.4/make-install-lib-all.patch	Tue Aug 14 19:32:22 2007 +0000
   408.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   408.3 @@ -1,24 +0,0 @@
   408.4 -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
   408.5 -Rule to install all needed libraries, not just the ones installed by install-lib,
   408.6 -yet not install programs.  
   408.7 -Needed because we can't use the main install target, as we can't build programs before
   408.8 -we have the final gcc installed; linking fails because libeh.a is not present,
   408.9 -and glibc insists on linking programs with that library.
  408.10 -
  408.11 -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
  408.12 ---- glibc-2.3.4.orig/Makerules	2004-12-15 20:52:39.000000000 +0200
  408.13 -+++ glibc-2.3.4/Makerules	2005-02-19 15:16:31.415125176 +0200
  408.14 -@@ -844,6 +844,13 @@
  408.15 - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
  408.16 - 			     $(inst_libdir)/$(patsubst %,$(libtype$o),\
  408.17 - 						     $(libprefix)$(libc-name)))
  408.18 -+
  408.19 -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
  408.20 -+		$(inst_slibdir)/libc-$(version).so \
  408.21 -+		$(inst_libdir)/libc.so \
  408.22 -+		$(inst_libdir)/libc.a \
  408.23 -+		install-lib
  408.24 -+
  408.25 - install: $(installed-libcs)
  408.26 - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
  408.27 - 	$(make-target-directory)
   409.1 --- a/patches/glibc/2.3.4/pr758.patch	Tue Aug 14 19:32:22 2007 +0000
   409.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   409.3 @@ -1,256 +0,0 @@
   409.4 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=758
   409.5 -
   409.6 -Submitted By: Jim Gifford (patches at jg555 dot com)
   409.7 -Date: 2005-02-23
   409.8 -Initial Package Version: 2.3.4
   409.9 -Origin: Richard Sandiford
  409.10 -Upstream Status: Unknown
  409.11 -Description: Fixes Syscall.h generation
  409.12 - 
  409.13 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile
  409.14 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile	2004-11-24 04:38:15 +0000
  409.15 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile	2005-02-23 18:21:54 +0000
  409.16 -@@ -9,11 +9,73 @@
  409.17 - 
  409.18 - no_syscall_list_h = 1
  409.19 - 
  409.20 --# Generate the list of SYS_* macros for the system calls (__NR_* macros).
  409.21 --# We generate not only SYS_<syscall>, pointing at SYS_<abi>_<syscall> if
  409.22 --# it exists, but also define SYS_<abi>_<syscall> for all ABIs.
  409.23 -+# A callable macro that expands to a shell command.  Preprocess file $(1)
  409.24 -+# using ABI option $(2) and see which macros it defines.  Print FOO for each
  409.25 -+# macro of the form __NR$(3)_FOO, filtering out ABI-specific __NR macros
  409.26 -+# that have a prefix other than $(3).
  409.27 -+mips_list_syscalls =	$(filter-out -m%,$(CC)) -E -x c $(+includes) \
  409.28 -+			    $(sysincludes) -D_LIBC -dM -mabi=$(2) $(1) | \
  409.29 -+			sed -n 's@^\#define __NR$(3)_\([^ ]*\) .*@\1@p' | \
  409.30 -+			sed -e '/^[ON]32_/d' -e '/^N64_/d' -e '/^64_/d' | \
  409.31 -+			LC_ALL=C sort
  409.32 -+
  409.33 -+# Generate a list of SYS_* macros from the linux __NR macros.
  409.34 -+#
  409.35 -+# Before version 2.6, linux had separate 32-bit and 64-bit MIPS ports,
  409.36 -+# each with its own set of headers.  The ports were merged for 2.6 and
  409.37 -+# this merged port defines the syscalls in a slightly different way.
  409.38 -+# There are therefore three sets of headers that we need to consider:
  409.39 -+#
  409.40 -+#    (1) Headers from the separate 32-bit MIPS port.  They just define
  409.41 -+#	 a single list of __NR macros.
  409.42 -+#
  409.43 -+#    (2) Headers from the separate 64-bit MIPS port.  They unconditionally
  409.44 -+#	 define syscalls for all three ABIs, with o32 syscalls prefixed
  409.45 -+#	 by __NR_O32, n32 syscalls prefixed by __NR_N32 and n64 syscalls
  409.46 -+#	 prefixed by plain __NR.
  409.47 -+#
  409.48 -+#    (3) Headers from the combined port.  They use the _MIPS_SIM macro to
  409.49 -+#	 define the right set of syscalls for the current ABI.  The syscalls
  409.50 -+#	 themselves have no special ABI prefix, but the headers also define:
  409.51 -+#
  409.52 -+#	    __NR_O32_Linux{,_syscalls}
  409.53 -+#	    __NR_N32_Linux{,_syscalls}
  409.54 -+#	    __NR_64_Linux{,_syscalls}
  409.55 -+#
  409.56 -+# In case (1) we just want a simple list of SYS_* macros.  In cases (2)
  409.57 -+# and (3) we want a file that will work for all three ABIs, regardless
  409.58 -+# of which ABI we are currently using.  We also want the file to work
  409.59 -+# if the user later moves from (2) to (3).  Thus the file we create
  409.60 -+# for (2) and (3) has the form:
  409.61 -+#
  409.62 -+#    #if _MIPS_SIM == _MIPS_SIM_NABI32
  409.63 -+#    # ifdef __NR_N32_open
  409.64 -+#    #  define SYS_n32syscall1 __NR_N32_n32syscall1
  409.65 -+#    #  ...
  409.66 -+#    # else
  409.67 -+#    #  define SYS_n32syscall1 __NR_n32syscall1
  409.68 -+#    #  ...
  409.69 -+#    # endif
  409.70 -+#    #elif _MIPS_SIM == _MIPS_SIM_ABI64
  409.71 -+#    # define SYS_n64syscall1 __NR_n64syscall1
  409.72 -+#    # ...
  409.73 -+#    #else
  409.74 -+#    # ifdef __NR_O32_open
  409.75 -+#    #  define SYS_o32syscall1 __NR_O32_o32syscall1
  409.76 -+#    #  ...
  409.77 -+#    # else
  409.78 -+#    #  define SYS_o32syscall1 __NR_o32syscall1
  409.79 -+#    #  ...
  409.80 -+#    # endif
  409.81 -+#    #endif
  409.82 -+#
  409.83 -+# Here, __NR_N32_open and __NR_O32_open are used to detect case (2)
  409.84 -+# over case (3).  The n64 SYS_* macros can always use the normal
  409.85 -+# ABI-less names.
  409.86 - $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h
  409.87 - 	$(make-target-directory)
  409.88 -+	$(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC $< -MD -MP \
  409.89 -+	      -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' > /dev/null
  409.90 - 	{ \
  409.91 - 	 echo '/* Generated at libc build time from kernel syscall list.  */';\
  409.92 - 	 echo ''; \
  409.93 -@@ -22,28 +84,38 @@
  409.94 - 	 echo '#endif'; \
  409.95 - 	 echo ''; \
  409.96 - 	 echo '#include <sgidefs.h>'; \
  409.97 --	 rm -f $(@:.d=.h).newt; \
  409.98 --	 $(CC) -E -MD -MP -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' \
  409.99 --	       -x c $(+includes) $(sysincludes) $< -D_LIBC -dM | \
 409.100 --	 sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
 409.101 --	     > $(@:.d=.h).newt; \
 409.102 --	 if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
 409.103 -+ 	 rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
 409.104 -+ 	 $(call mips_list_syscalls,$<,n32,_N32) > $(@:.d=.h).newn32; \
 409.105 -+ 	 if test -s $(@:.d=.h).newn32; then \
 409.106 -+ 	   if grep open $(@:.d=.h).newn32 > /dev/null; then \
 409.107 -+ 	     $(call mips_list_syscalls,$<,32,_O32) > $(@:.d=.h).new32; \
 409.108 -+ 	     $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
 409.109 -+ 	   else \
 409.110 -+ 	     $(call mips_list_syscalls,$<,32,) > $(@:.d=.h).new32; \
 409.111 -+ 	     $(call mips_list_syscalls,$<,n32,) > $(@:.d=.h).newn32; \
 409.112 -+ 	     $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
 409.113 -+ 	   fi; \
 409.114 - 	   echo '#if _MIPS_SIM == _ABIN32'; \
 409.115 --	   sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
 409.116 --		LC_ALL=C sort; \
 409.117 -+ 	   echo '# ifdef __NR_N32_open'; \
 409.118 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_N32_\1@' < $(@:.d=.h).newn32; \
 409.119 -+ 	   echo '# else'; \
 409.120 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).newn32; \
 409.121 -+ 	   echo '# endif'; \
 409.122 - 	   echo '#elif _MIPS_SIM == _ABI64'; \
 409.123 --	   sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
 409.124 --		LC_ALL=C sort; \
 409.125 -+ 	   sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new64; \
 409.126 - 	   echo '#else'; \
 409.127 --	   sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt | \
 409.128 --		LC_ALL=C sort; \
 409.129 -+ 	   echo '# ifdef __NR_O32_open'; \
 409.130 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_O32_\1@' < $(@:.d=.h).new32; \
 409.131 -+ 	   echo '# else'; \
 409.132 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).new32; \
 409.133 -+ 	   echo '# endif'; \
 409.134 - 	   echo '#endif'; \
 409.135 --	   sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt | \
 409.136 --		LC_ALL=C sort +1.8; \
 409.137 - 	 else \
 409.138 --	   cat $(@:.d=.h).newt; \
 409.139 -+ 	   $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC -dM $< | \
 409.140 -+ 	   sed -n 's@^\#define __NR_\([^ ]*\) .*@\#define SYS_\1 __NR_\1@p' | \
 409.141 -+ 	   LC_ALL=C sort; \
 409.142 - 	 fi; \
 409.143 --	 rm $(@:.d=.h).newt; \
 409.144 -+ 	 rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
 409.145 - 	} > $(@:.d=.h).new
 409.146 - 	mv -f $(@:.d=.h).new $(@:.d=.h)
 409.147 - ifneq (,$(objpfx))
 409.148 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure
 409.149 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure	2004-11-24 04:42:45 +0000
 409.150 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure	2005-02-23 18:10:11 +0000
 409.151 -@@ -18,7 +18,7 @@
 409.152 -     { echo "$as_me:$LINENO: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&5
 409.153 - echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&2;}
 409.154 -     echo '#include <asm/unistd.h>' > asm-unistd.h
 409.155 --  else
 409.156 -+  elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
 409.157 -     # The point of this preprocessing is to turn __NR_<syscall> into
 409.158 -     # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
 409.159 -     # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
 409.160 -@@ -68,6 +68,8 @@
 409.161 - {
 409.162 - 	print;
 409.163 - }'
 409.164 -+  else
 409.165 -+    echo '#include <asm/unistd.h>' > asm-unistd.h
 409.166 -   fi ;;
 409.167 - mips*)
 409.168 -   rm -f asm-unistd.h
 409.169 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in
 409.170 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in	2004-11-24 04:38:31 +0000
 409.171 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in	2005-02-23 18:10:11 +0000
 409.172 -@@ -18,7 +18,7 @@
 409.173 -   if test ! -f "$asm_unistd_h"; then
 409.174 -     AC_MSG_WARN([*** asm/unistd.h not found, it will not be pre-processed])
 409.175 -     echo '#include <asm/unistd.h>' > asm-unistd.h
 409.176 --  else
 409.177 -+  elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
 409.178 -     # The point of this preprocessing is to turn __NR_<syscall> into
 409.179 -     # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
 409.180 -     # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
 409.181 -@@ -68,6 +68,8 @@
 409.182 - {
 409.183 - 	print;
 409.184 - }'
 409.185 -+  else
 409.186 -+    echo '#include <asm/unistd.h>' > asm-unistd.h
 409.187 -   fi ;;
 409.188 - mips*)
 409.189 -   rm -f asm-unistd.h
 409.190 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h
 409.191 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h	2003-03-29 08:15:29 +0000
 409.192 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h	2005-02-23 18:10:11 +0000
 409.193 -@@ -1,36 +0,0 @@
 409.194 --/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
 409.195 --   This file is part of the GNU C Library.
 409.196 --
 409.197 --   The GNU C Library is free software; you can redistribute it and/or
 409.198 --   modify it under the terms of the GNU Lesser General Public
 409.199 --   License as published by the Free Software Foundation; either
 409.200 --   version 2.1 of the License, or (at your option) any later version.
 409.201 --
 409.202 --   The GNU C Library is distributed in the hope that it will be useful,
 409.203 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 409.204 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 409.205 --   Lesser General Public License for more details.
 409.206 --
 409.207 --   You should have received a copy of the GNU Lesser General Public
 409.208 --   License along with the GNU C Library; if not, write to the Free
 409.209 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 409.210 --   02111-1307 USA.  */
 409.211 --
 409.212 --#ifndef _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H
 409.213 --#define _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H 1
 409.214 --
 409.215 --/* There is some commonality.  */
 409.216 --#include <sysdeps/unix/sysv/linux/mips/mips32/sysdep.h>
 409.217 --
 409.218 --/* For Linux we can use the system call table in the header file
 409.219 --	/usr/include/asm/unistd.h
 409.220 --   of the kernel.  But these symbols do not follow the SYS_* syntax
 409.221 --   so we have to redefine the `SYS_ify' macro here.  */
 409.222 --#undef SYS_ify
 409.223 --#ifdef __STDC__
 409.224 --# define SYS_ify(syscall_name)	__NR_O32_##syscall_name
 409.225 --#else
 409.226 --# define SYS_ify(syscall_name)	__NR_O32_/**/syscall_name
 409.227 --#endif
 409.228 --
 409.229 --#endif /* linux/mips/mips32/kern64/sysdep.h */
 409.230 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
 409.231 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h	2004-10-18 05:16:07 +0000
 409.232 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h	2005-02-23 18:10:11 +0000
 409.233 -@@ -28,9 +28,9 @@
 409.234 -    so we have to redefine the `SYS_ify' macro here.  */
 409.235 - #undef SYS_ify
 409.236 - #ifdef __STDC__
 409.237 --# define SYS_ify(syscall_name)	__NR_N32_##syscall_name
 409.238 -+# define SYS_ify(syscall_name)	__NR_##syscall_name
 409.239 - #else
 409.240 --# define SYS_ify(syscall_name)	__NR_N32_/**/syscall_name
 409.241 -+# define SYS_ify(syscall_name)	__NR_/**/syscall_name
 409.242 - #endif
 409.243 - 
 409.244 - #ifdef __ASSEMBLER__
 409.245 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
 409.246 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h	2004-10-18 05:16:08 +0000
 409.247 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h	2005-02-23 18:10:11 +0000
 409.248 -@@ -28,9 +28,9 @@
 409.249 -    so we have to redefine the `SYS_ify' macro here.  */
 409.250 - #undef SYS_ify
 409.251 - #ifdef __STDC__
 409.252 --# define SYS_ify(syscall_name)	__NR_N64_##syscall_name
 409.253 -+# define SYS_ify(syscall_name)	__NR_##syscall_name
 409.254 - #else
 409.255 --# define SYS_ify(syscall_name)	__NR_N64_/**/syscall_name
 409.256 -+# define SYS_ify(syscall_name)	__NR_/**/syscall_name
 409.257 - #endif
 409.258 - 
 409.259 - #ifdef __ASSEMBLER__
   410.1 --- a/patches/glibc/2.3.5/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   410.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   410.3 @@ -1,51 +0,0 @@
   410.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   410.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   410.6 -Fixes following error:
   410.7 -
   410.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   410.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  410.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  410.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  410.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  410.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  410.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  410.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  410.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  410.17 -
  410.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  410.19 -
  410.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  410.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  410.22 -@@ -47,6 +47,12 @@
  410.23 - #include <asm/page.h>
  410.24 - #include <sys/sysctl.h>
  410.25 - 
  410.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  410.27 -+#include <linux/version.h>
  410.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  410.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  410.30 -+#endif
  410.31 -+
  410.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  410.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  410.34 - 
  410.35 -@@ -80,7 +86,7 @@
  410.36 -  * Initialize I/O system.  There are several ways to get the information
  410.37 -  * we need.  Each is tried in turn until one succeeds.
  410.38 -  *
  410.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  410.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  410.41 -  *    but not all kernels support it.
  410.42 -  *
  410.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  410.44 -@@ -100,8 +106,8 @@
  410.45 - {
  410.46 -   char systype[256];
  410.47 -   int i, n;
  410.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  410.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  410.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  410.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  410.52 -   size_t len = sizeof(io.base);
  410.53 - 
  410.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   411.1 --- a/patches/glibc/2.3.5/fix-pr398.patch	Tue Aug 14 19:32:22 2007 +0000
   411.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   411.3 @@ -1,70 +0,0 @@
   411.4 -Fixes error
   411.5 -
   411.6 -dl-runtime.c:222: error: parse error before "CFI_STARTPROC"
   411.7 -make[2]: *** [crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/elf/dl-runtim
   411.8 -e.o] Error 1
   411.9 -make[2]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
  411.10 -822/elf'
  411.11 -make[1]: *** [elf/subdir_lib] Error 2
  411.12 -make[1]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040
  411.13 -822'
  411.14 -make: *** [all] Error 2
  411.15 -
  411.16 ------------------
  411.17 -
  411.18 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=398
  411.19 -http://sources.redhat.com/ml/libc-alpha/2004-07/msg00023.html
  411.20 -
  411.21 ------------------
  411.22 -
  411.23 -CVSROOT:	/cvs/glibc
  411.24 -Module name:	libc
  411.25 -Branch: 	glibc-2_3-branch
  411.26 -Changes by:	roland@sources.redhat.com	2006-02-23 22:36:51
  411.27 -
  411.28 -Modified files:
  411.29 -	sysdeps/s390/s390-64: dl-machine.h 
  411.30 -	sysdeps/s390/s390-32: dl-machine.h 
  411.31 -
  411.32 -Log message:
  411.33 -	2004-07-10  GOTO Masanori  <gotom@debian.or.jp>
  411.34 -	
  411.35 -	[BZ #398]
  411.36 -	* sysdeps/s390/s390-32/dl-machine.h: Include <sysdep.h> for CFI
  411.37 -	directive.
  411.38 -	* sysdeps/s390/s390-64/dl-machine.h: Likewise.
  411.39 -
  411.40 -Patches:
  411.41 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-64/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.19.4.1&r2=1.19.4.2
  411.42 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-32/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.20.4.1&r2=1.20.4.2
  411.43 -
  411.44 -===================================================================
  411.45 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-64/dl-machine.h,v
  411.46 -retrieving revision 1.19.4.1
  411.47 -retrieving revision 1.19.4.2
  411.48 -diff -u -r1.19.4.1 -r1.19.4.2
  411.49 ---- libc/sysdeps/s390/s390-64/dl-machine.h	2005/10/17 04:57:27	1.19.4.1
  411.50 -+++ libc/sysdeps/s390/s390-64/dl-machine.h	2006/02/23 22:36:51	1.19.4.2
  411.51 -@@ -27,6 +27,7 @@
  411.52 - #include <sys/param.h>
  411.53 - #include <string.h>
  411.54 - #include <link.h>
  411.55 -+#include <sysdep.h>
  411.56 - 
  411.57 - /* This is an older, now obsolete value.  */
  411.58 - #define EM_S390_OLD	0xA390
  411.59 -===================================================================
  411.60 -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-32/dl-machine.h,v
  411.61 -retrieving revision 1.20.4.1
  411.62 -retrieving revision 1.20.4.2
  411.63 -diff -u -r1.20.4.1 -r1.20.4.2
  411.64 ---- libc/sysdeps/s390/s390-32/dl-machine.h	2005/10/17 04:57:27	1.20.4.1
  411.65 -+++ libc/sysdeps/s390/s390-32/dl-machine.h	2006/02/23 22:36:51	1.20.4.2
  411.66 -@@ -27,6 +27,7 @@
  411.67 - #include <sys/param.h>
  411.68 - #include <string.h>
  411.69 - #include <link.h>
  411.70 -+#include <sysdep.h>
  411.71 - 
  411.72 - /* This is an older, now obsolete value.  */
  411.73 - #define EM_S390_OLD	0xA390
   412.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-arm.patch	Tue Aug 14 19:32:22 2007 +0000
   412.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   412.3 @@ -1,117 +0,0 @@
   412.4 -Fixes
   412.5 -In file included from dynamic-link.h:22,
   412.6 -                 from dl-reloc.c:265:
   412.7 -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
   412.8 -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
   412.9 -../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
  412.10 -../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
  412.11 -../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
  412.12 -../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
  412.13 -../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
  412.14 -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
  412.15 -
  412.16 -when building glibc-2.3.[34] with gcc-4.0
  412.17 -
  412.18 -Like
  412.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
  412.20 -but works with older compilers, and fixes fix_bad_pc24.
  412.21 -
  412.22 -
  412.23 ---- glibc-2.3.4/sysdeps/arm/dl-machine.h.old	Sun Mar 20 17:54:37 2005
  412.24 -+++ glibc-2.3.4/sysdeps/arm/dl-machine.h	Sun Mar 20 17:57:32 2005
  412.25 -@@ -359,7 +359,14 @@
  412.26 - # endif
  412.27 - 
  412.28 - /* Deal with an out-of-range PC24 reloc.  */
  412.29 --static Elf32_Addr
  412.30 -+#if __GNUC__ >= 4
  412.31 -+  auto inline Elf32_Addr
  412.32 -+#else
  412.33 -+  static inline Elf32_Addr
  412.34 -+#endif
  412.35 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  412.36 -+  __attribute ((always_inline))
  412.37 -+#endif
  412.38 - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
  412.39 - {
  412.40 -   static void *fix_page;
  412.41 -@@ -392,7 +399,14 @@
  412.42 - /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
  412.43 -    MAP is the object containing the reloc.  */
  412.44 - 
  412.45 --static inline void
  412.46 -+#if __GNUC__ >= 4
  412.47 -+  auto inline void
  412.48 -+#else
  412.49 -+  static inline void
  412.50 -+#endif
  412.51 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  412.52 -+  __attribute ((always_inline))
  412.53 -+#endif
  412.54 - elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
  412.55 - 		 const Elf32_Sym *sym, const struct r_found_version *version,
  412.56 - 		 void *const reloc_addr_arg)
  412.57 -@@ -517,7 +531,14 @@
  412.58 - }
  412.59 - 
  412.60 - # ifndef RTLD_BOOTSTRAP
  412.61 --static inline void
  412.62 -+#if __GNUC__ >= 4
  412.63 -+  auto inline void
  412.64 -+#else
  412.65 -+  static inline void
  412.66 -+#endif
  412.67 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  412.68 -+  __attribute ((always_inline))
  412.69 -+#endif
  412.70 - elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
  412.71 - 		  const Elf32_Sym *sym, const struct r_found_version *version,
  412.72 - 		  void *const reloc_addr_arg)
  412.73 -@@ -597,7 +618,14 @@
  412.74 - }
  412.75 - # endif
  412.76 - 
  412.77 --static inline void
  412.78 -+#if __GNUC__ >= 4
  412.79 -+  auto inline void
  412.80 -+#else
  412.81 -+  static inline void
  412.82 -+#endif
  412.83 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  412.84 -+  __attribute ((always_inline))
  412.85 -+#endif
  412.86 - elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
  412.87 - 			  void *const reloc_addr_arg)
  412.88 - {
  412.89 -@@ -606,7 +634,14 @@
  412.90 - }
  412.91 - 
  412.92 - # ifndef RTLD_BOOTSTRAP
  412.93 --static inline void
  412.94 -+#if __GNUC__ >= 4
  412.95 -+  auto inline void
  412.96 -+#else
  412.97 -+  static inline void
  412.98 -+#endif
  412.99 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 412.100 -+  __attribute ((always_inline))
 412.101 -+#endif
 412.102 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
 412.103 - 			   void *const reloc_addr_arg)
 412.104 - {
 412.105 -@@ -615,7 +650,14 @@
 412.106 - }
 412.107 - # endif
 412.108 - 
 412.109 --static inline void
 412.110 -+#if __GNUC__ >= 4
 412.111 -+  auto inline void
 412.112 -+#else
 412.113 -+  static inline void
 412.114 -+#endif
 412.115 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
 412.116 -+  __attribute ((always_inline))
 412.117 -+#endif
 412.118 - elf_machine_lazy_rel (struct link_map *map,
 412.119 - 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
 412.120 - {
   413.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-elf.patch	Tue Aug 14 19:32:22 2007 +0000
   413.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   413.3 @@ -1,61 +0,0 @@
   413.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
   413.5 -Fixes
   413.6 -  rtld.c: In function '_dl_start':
   413.7 -  dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
   413.8 -  dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
   413.9 -when compiling glibc-2.3.4 with gcc-4.0
  413.10 -
  413.11 -But see also
  413.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
  413.13 -and
  413.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
  413.15 -which seem to propose less radical fixes?
  413.16 -
  413.17 -Aha.  See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
  413.18 -
  413.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old	2005-03-12 18:12:37.000000000 -0800
  413.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h	2005-03-12 18:12:59.777820848 -0800
  413.21 -@@ -19,43 +19,6 @@
  413.22 - 
  413.23 - #include <elf.h>
  413.24 - #include <assert.h>
  413.25 --
  413.26 --#ifdef RESOLVE
  413.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
  413.28 --   ElfW(Addr), because not all architectures can assume that the
  413.29 --   relocated address is properly aligned, whereas the compiler is
  413.30 --   entitled to assume that a pointer to a type is properly aligned for
  413.31 --   the type.  Even if we cast the pointer back to some other type with
  413.32 --   less strict alignment requirements, the compiler might still
  413.33 --   remember that the pointer was originally more aligned, thereby
  413.34 --   optimizing away alignment tests or using word instructions for
  413.35 --   copying memory, breaking the very code written to handle the
  413.36 --   unaligned cases.  */
  413.37 --auto void __attribute__((always_inline))
  413.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
  413.39 --		 const ElfW(Sym) *sym, const struct r_found_version *version,
  413.40 --		 void *const reloc_addr);
  413.41 --auto void __attribute__((always_inline))
  413.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
  413.43 --		  const ElfW(Sym) *sym, const struct r_found_version *version,
  413.44 --		  void *const reloc_addr);
  413.45 --auto void __attribute__((always_inline))
  413.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
  413.47 --			  void *const reloc_addr);
  413.48 --auto void __attribute__((always_inline))
  413.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
  413.50 --			   void *const reloc_addr);
  413.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
  413.52 --auto void __attribute__((always_inline))
  413.53 --elf_machine_lazy_rel (struct link_map *map,
  413.54 --		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
  413.55 --# else
  413.56 --auto void __attribute__((always_inline))
  413.57 --elf_machine_lazy_rel (struct link_map *map,
  413.58 --		      ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
  413.59 --# endif
  413.60 --#endif
  413.61 --
  413.62 - #include <dl-machine.h>
  413.63 - 
  413.64 - #ifndef VERSYMIDX
   414.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-iconvdata.patch	Tue Aug 14 19:32:22 2007 +0000
   414.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   414.3 @@ -1,44 +0,0 @@
   414.4 -See http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
   414.5 -and http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
   414.6 -
   414.7 -Fixes
   414.8 -  In file included from jis0208.c:23:
   414.9 -  jis0208.h:32: error: array type has incomplete element type
  414.10 -when building glibc with gcc-4.0
  414.11 -The bug has been present since at least glibc-2.2.5.
  414.12 -This patch applies cleanly to glibc-2.3.4
  414.13 -
  414.14 ---- /home/dank/downloads/glibc-2.3-20050307/iconvdata/jis0208.h	2003-06-11 14:40:42.000000000 -0700
  414.15 -+++ glibc-2.3-20050307/iconvdata/jis0208.h	2005-03-13 20:55:01.784054760 -0800
  414.16 -@@ -24,15 +24,6 @@
  414.17 - #include <gconv.h>
  414.18 - #include <stdint.h>
  414.19 - 
  414.20 --/* Conversion table.  */
  414.21 --extern const uint16_t __jis0208_to_ucs[];
  414.22 --
  414.23 --extern const char __jisx0208_from_ucs4_lat1[256][2];
  414.24 --extern const char __jisx0208_from_ucs4_greek[0xc1][2];
  414.25 --extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
  414.26 --extern const char __jisx0208_from_ucs_tab[][2];
  414.27 --
  414.28 --
  414.29 - /* Struct for table with indeces in UCS mapping table.  */
  414.30 - struct jisx0208_ucs_idx
  414.31 - {
  414.32 -@@ -42,6 +33,15 @@
  414.33 - };
  414.34 - 
  414.35 - 
  414.36 -+/* Conversion table.  */
  414.37 -+extern const uint16_t __jis0208_to_ucs[];
  414.38 -+
  414.39 -+extern const char __jisx0208_from_ucs4_lat1[256][2];
  414.40 -+extern const char __jisx0208_from_ucs4_greek[0xc1][2];
  414.41 -+extern const struct jisx0208_ucs_idx __jisx0208_from_ucs_idx[];
  414.42 -+extern const char __jisx0208_from_ucs_tab[][2];
  414.43 -+
  414.44 -+
  414.45 - static inline uint32_t
  414.46 - __attribute ((always_inline))
  414.47 - jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
   415.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc-procfs.patch	Tue Aug 14 19:32:22 2007 +0000
   415.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   415.3 @@ -1,62 +0,0 @@
   415.4 -First discussed here:
   415.5 -http://gcc.gnu.org/ml/gcc/2005-01/msg00509.html
   415.6 -
   415.7 -Revision 1.12, Wed Mar 2 20:11:38 2005 UTC by roland
   415.8 -Branch: MAIN
   415.9 -CVS Tags: fedora-glibc-20050303T1335, HEAD
  415.10 -Changes since 1.11: +3 -8 lines
  415.11 -Diff to previous 1.11 (colored)
  415.12 -
  415.13 -2005-02-21  Alan Modra <amodra@bigpond.net.au>
  415.14 -
  415.15 -	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (elf_vrreg_t): Don't
  415.16 -	use __uint128_t.
  415.17 -
  415.18 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h?cvsroot=glibc
  415.19 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h.diff?r1=1.11&r2=1.12&cvsroot=glibc
  415.20 -
  415.21 -Fixes
  415.22 -
  415.23 -In file included from ../linuxthreads_db/proc_service.h:20,
  415.24 -                 from ../linuxthreads_db/thread_dbP.h:7,
  415.25 -                 from ../linuxthreads/descr.h:44,
  415.26 -                 from ../linuxthreads/internals.h:30,
  415.27 -                 from ../linuxthreads/sysdeps/pthread/bits/libc-lock.h:27,
  415.28 -                 from ../sysdeps/generic/ldsodefs.h:38,
  415.29 -                 from ../sysdeps/unix/sysv/linux/ldsodefs.h:25,
  415.30 -                 from <stdin>:2:
  415.31 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: error: syntax error before 'elf_vrreg_t'
  415.32 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: type defaults to 'int' in declaration of 'elf_vrreg_t'
  415.33 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:57: warning: data definition has no type or storage class
  415.34 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: error: syntax error before 'elf_vrregset_t'
  415.35 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: type defaults to 'int' in declaration of 'elf_vrregset_t'
  415.36 -../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h:58: warning: data definition has no type or storage class
  415.37 -make[2]: make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/csu'
  415.38 -
  415.39 -
  415.40 -===================================================================
  415.41 -RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h,v
  415.42 -retrieving revision 1.11
  415.43 -retrieving revision 1.12
  415.44 -diff -u -r1.11 -r1.12
  415.45 ---- libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2003/12/17 23:09:34	1.11
  415.46 -+++ libc/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h	2005/03/02 20:11:38	1.12
  415.47 -@@ -46,15 +46,10 @@
  415.48 - typedef double elf_fpreg_t;
  415.49 - typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  415.50 - 
  415.51 --/* gcc 3.1 and newer support __uint128_t.  */
  415.52 --#if !__GNUC_PREREQ(3,1)
  415.53 --typedef struct {
  415.54 --  unsigned long u[4];
  415.55 --} __attribute((aligned(16))) __uint128_t;
  415.56 --#endif
  415.57 --
  415.58 - /* Altivec registers */
  415.59 --typedef __uint128_t elf_vrreg_t;
  415.60 -+typedef struct {
  415.61 -+  unsigned int u[4];
  415.62 -+} __attribute__ ((aligned (16))) elf_vrreg_t;
  415.63 - typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
  415.64 - #endif
  415.65 - 
   416.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc32.patch	Tue Aug 14 19:32:22 2007 +0000
   416.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   416.3 @@ -1,42 +0,0 @@
   416.4 -Fixes
   416.5 -
   416.6 -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object':
   416.7 -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative'
   416.8 -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel'
   416.9 -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1
  416.10 -
  416.11 -diff -ur glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h
  416.12 ---- glibc-2.3-20050307.orig/sysdeps/powerpc/powerpc32/dl-machine.h	Wed Jul 30 23:33:52 2003
  416.13 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc32/dl-machine.h	Thu Mar 17 13:19:16 2005
  416.14 -@@ -455,7 +455,14 @@
  416.15 -     }
  416.16 - }
  416.17 - 
  416.18 --static inline void
  416.19 -+#if __GNUC__ >= 4
  416.20 -+  auto inline void
  416.21 -+#else
  416.22 -+  static inline void
  416.23 -+#endif
  416.24 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  416.25 -+  __attribute ((always_inline))
  416.26 -+#endif
  416.27 - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
  416.28 - 			   void *const reloc_addr_arg)
  416.29 - {
  416.30 -@@ -463,7 +470,14 @@
  416.31 -   *reloc_addr = l_addr + reloc->r_addend;
  416.32 - }
  416.33 - 
  416.34 --static inline void
  416.35 -+#if __GNUC__ >= 4
  416.36 -+  auto inline void
  416.37 -+#else
  416.38 -+  static inline void
  416.39 -+#endif
  416.40 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  416.41 -+  __attribute ((always_inline))
  416.42 -+#endif
  416.43 - elf_machine_lazy_rel (struct link_map *map,
  416.44 - 		      Elf32_Addr l_addr, const Elf32_Rela *reloc)
  416.45 - {
   417.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch	Tue Aug 14 19:32:22 2007 +0000
   417.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   417.3 @@ -1,60 +0,0 @@
   417.4 -Fixes:
   417.5 -
   417.6 -In file included from dynamic-link.h:22,
   417.7 -                 from dl-reloc.c:269:
   417.8 -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object':
   417.9 -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative'
  417.10 -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela'
  417.11 -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel'
  417.12 -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf'
  417.13 -
  417.14 ---- glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h.old	Thu Mar 17 13:35:23 2005
  417.15 -+++ glibc-2.3-20050307/sysdeps/powerpc/powerpc64/dl-machine.h	Thu Mar 17 13:37:12 2005
  417.16 -@@ -567,7 +567,14 @@
  417.17 -                                 const Elf64_Sym *refsym)
  417.18 -                                 attribute_hidden;
  417.19 - 
  417.20 --static inline void
  417.21 -+#if __GNUC__ >= 4
  417.22 -+  auto inline void
  417.23 -+#else
  417.24 -+  static inline void
  417.25 -+#endif
  417.26 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  417.27 -+  __attribute ((always_inline))
  417.28 -+#endif
  417.29 - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
  417.30 - 			   void *const reloc_addr_arg)
  417.31 - {
  417.32 -@@ -598,7 +605,14 @@
  417.33 - 
  417.34 - /* Perform the relocation specified by RELOC and SYM (which is fully
  417.35 -    resolved).  MAP is the object containing the reloc.  */
  417.36 --static inline void
  417.37 -+#if __GNUC__ >= 4
  417.38 -+  auto inline void
  417.39 -+#else
  417.40 -+  static inline void
  417.41 -+#endif
  417.42 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  417.43 -+  __attribute ((always_inline))
  417.44 -+#endif
  417.45 - elf_machine_rela (struct link_map *map,
  417.46 - 		  const Elf64_Rela *reloc,
  417.47 - 		  const Elf64_Sym *sym,
  417.48 -@@ -883,7 +897,14 @@
  417.49 -   MODIFIED_CODE_NOQUEUE (reloc_addr);
  417.50 - }
  417.51 - 
  417.52 --static inline void
  417.53 -+#if __GNUC__ >= 4
  417.54 -+  auto inline void
  417.55 -+#else
  417.56 -+  static inline void
  417.57 -+#endif
  417.58 -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
  417.59 -+  __attribute ((always_inline))
  417.60 -+#endif
  417.61 - elf_machine_lazy_rel (struct link_map *map,
  417.62 - 		      Elf64_Addr l_addr, const Elf64_Rela *reloc)
  417.63 - {
   418.1 --- a/patches/glibc/2.3.5/glibc-2.3.4-memcmp.patch	Tue Aug 14 19:32:22 2007 +0000
   418.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   418.3 @@ -1,46 +0,0 @@
   418.4 -Fixes
   418.5 -    ../sysdeps/i386/i686/memcmp.S: Assembler messages:
   418.6 -    ../sysdeps/i386/i686/memcmp.S:390: Error: can't resolve  `.rodata' {.rodata section} - `memcmp' {.text section}
   418.7 -when building on macosx.
   418.8 -
   418.9 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S?cvsroot=glibc
  418.10 -Revision 1.4, Thu Apr 28 18:19:25 2005 UTC by drepper
  418.11 -Branch: MAIN
  418.12 -CVS Tags: fedora-glibc-20050503T0852
  418.13 -Changes since 1.3: +2 -2 lines
  418.14 -Diff to previous 1.3 (colored)
  418.15 -
  418.16 -Move misplaced END.
  418.17 -
  418.18 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/i686/memcmp.S.diff?r1=1.3&r2=1.4&cvsroot=glibc
  418.19 -
  418.20 -===================================================================
  418.21 -RCS file: /cvs/glibc/libc/sysdeps/i386/i686/memcmp.S,v
  418.22 -retrieving revision 1.3
  418.23 -retrieving revision 1.4
  418.24 -diff -u -r1.3 -r1.4
  418.25 ---- libc/sysdeps/i386/i686/memcmp.S	2004/04/01 23:28:37	1.3
  418.26 -+++ libc/sysdeps/i386/i686/memcmp.S	2005/04/28 18:19:25	1.4
  418.27 -@@ -1,5 +1,5 @@
  418.28 - /* Compare two memory blocks for differences in the first COUNT bytes.
  418.29 --   Copyright (C) 2004 Free Software Foundation, Inc.
  418.30 -+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  418.31 -    This file is part of the GNU C Library.
  418.32 - 
  418.33 -    The GNU C Library is free software; you can redistribute it and/or
  418.34 -@@ -350,6 +350,7 @@
  418.35 - 	sbbl	$-1, %eax
  418.36 - 	popl	%esi
  418.37 - 	RETURN
  418.38 -+END (BP_SYM (memcmp))
  418.39 - 
  418.40 - 	.section	.rodata
  418.41 - 	ALIGN (2)
  418.42 -@@ -387,7 +388,6 @@
  418.43 - 	.long	L(30bytes) - . + 0x78
  418.44 - 	.long	L(31bytes) - . + 0x7c
  418.45 - 
  418.46 --END (BP_SYM (memcmp))
  418.47 - 
  418.48 - #undef bcmp
  418.49 - weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
   419.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc-4.0-wordexp.patch	Tue Aug 14 19:32:22 2007 +0000
   419.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   419.3 @@ -1,19 +0,0 @@
   419.4 -../sysdeps/generic/wordexp.c: In function 'exec_comm':
   419.5 -../sysdeps/generic/wordexp.c:815: sorry, unimplemented: inlining failed in call to 'exec_comm_child': function body not available
   419.6 -../sysdeps/generic/wordexp.c:900: sorry, unimplemented: called from here
   419.7 -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/posix/wordexp.o] Error
   419.8 -
   419.9 -I had to add the keyword 'inline' to get it to compile:
  419.10 -
  419.11 ---- glibc-2.3-20050307/sysdeps/generic/wordexp.c.old	2005-03-12 08:54:15.709253928 -0800
  419.12 -+++ glibc-2.3-20050307/sysdeps/generic/wordexp.c	2005-03-12 08:54:51.242852000 -0800
  419.13 -@@ -809,7 +809,7 @@
  419.14 - }
  419.15 -
  419.16 - /* Function called by child process in exec_comm() */
  419.17 --static void
  419.18 -+static inline void
  419.19 - internal_function __attribute__ ((always_inline))
  419.20 - exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
  419.21 - {
  419.22 -
   420.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-string.patch	Tue Aug 14 19:32:22 2007 +0000
   420.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   420.3 @@ -1,83 +0,0 @@
   420.4 -
   420.5 -Fixes? the following error when building with gcc-4.0.0:
   420.6 -
   420.7 -../string/strcoll.c:39: error: '__EI_strcoll' aliased to undefined symbol '__GI_strcoll'
   420.8 -make[2]: *** [/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcscoll.os] Error 1
   420.9 -make[2]: Leaving directory `/home/dank/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4/wcsmbs'
  420.10 -
  420.11 -
  420.12 -Thu Mar 17 21:06:24 2005 UTC (3 weeks, 5 days ago) by roland
  420.13 -Branch: MAIN
  420.14 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
  420.15 -
  420.16 -2005-03-16  Richard Henderson  <rth@redhat.com>
  420.17 -
  420.18 -	* include/wchar.h (__wcscoll): Remove.
  420.19 -	* wcsmbs/wcscoll.c: Define wcscoll directly instead of via __wcscoll.
  420.20 -	* string/strcoll.c: Don't issue libc_hidden_def STRCOLL redefined.
  420.21 -
  420.22 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/string/strcoll.c.diff?r1=1.33&r2=1.34&cvsroot=glibc
  420.23 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/wchar.h.diff?r1=1.26&r2=1.27&cvsroot=glibc
  420.24 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/wcsmbs/wcscoll.c.diff?r1=1.13&r2=1.14&cvsroot=glibc
  420.25 -
  420.26 -===================================================================
  420.27 -RCS file: /cvs/glibc/libc/string/strcoll.c,v
  420.28 -retrieving revision 1.33
  420.29 -retrieving revision 1.34
  420.30 -diff -u -r1.33 -r1.34
  420.31 ---- libc/string/strcoll.c	2004/03/14 20:51:30	1.33
  420.32 -+++ libc/string/strcoll.c	2005/03/17 21:06:24	1.34
  420.33 -@@ -23,6 +23,7 @@
  420.34 - # define STRING_TYPE char
  420.35 - # define STRCOLL strcoll
  420.36 - # define STRCOLL_L __strcoll_l
  420.37 -+# define USE_HIDDEN_DEF
  420.38 - #endif
  420.39 - 
  420.40 - #include "../locale/localeinfo.h"
  420.41 -@@ -35,6 +36,7 @@
  420.42 - {
  420.43 -   return STRCOLL_L (s1, s2, _NL_CURRENT_LOCALE);
  420.44 - }
  420.45 --#if !defined WIDE_CHAR_VERSION
  420.46 --libc_hidden_def (strcoll)
  420.47 -+
  420.48 -+#ifdef USE_HIDDEN_DEF
  420.49 -+libc_hidden_def (STRCOLL)
  420.50 - #endif
  420.51 -===================================================================
  420.52 -RCS file: /cvs/glibc/libc/include/wchar.h,v
  420.53 -retrieving revision 1.26
  420.54 -retrieving revision 1.27
  420.55 -diff -u -r1.26 -r1.27
  420.56 ---- libc/include/wchar.h	2004/03/14 20:45:10	1.26
  420.57 -+++ libc/include/wchar.h	2005/03/17 21:06:24	1.27
  420.58 -@@ -56,7 +56,6 @@
  420.59 - extern int __wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
  420.60 - 			  size_t __n)
  420.61 -      __attribute_pure__;
  420.62 --extern int __wcscoll (__const wchar_t *__s1, __const wchar_t *__s2);
  420.63 - extern size_t __wcslen (__const wchar_t *__s) __attribute_pure__;
  420.64 - extern size_t __wcsnlen (__const wchar_t *__s, size_t __maxlen)
  420.65 -      __attribute_pure__;
  420.66 -===================================================================
  420.67 -RCS file: /cvs/glibc/libc/wcsmbs/wcscoll.c,v
  420.68 -retrieving revision 1.13
  420.69 -retrieving revision 1.14
  420.70 -diff -u -r1.13 -r1.14
  420.71 ---- libc/wcsmbs/wcscoll.c	2004/03/14 21:05:48	1.13
  420.72 -+++ libc/wcsmbs/wcscoll.c	2005/03/17 21:06:24	1.14
  420.73 -@@ -22,12 +22,11 @@
  420.74 - 
  420.75 - #define STRING_TYPE wchar_t
  420.76 - #define USTRING_TYPE wint_t
  420.77 --#define STRCOLL __wcscoll
  420.78 -+#define STRCOLL wcscoll
  420.79 - #define STRCOLL_L __wcscoll_l
  420.80 - 
  420.81 - #include "../string/strcoll.c"
  420.82 - 
  420.83 - #ifndef USE_IN_EXTENDED_LOCALE_MODEL
  420.84 --weak_alias (__wcscoll, wcscoll)
  420.85 - libc_hidden_weak (wcscoll)
  420.86 - #endif
   421.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-symbols.patch	Tue Aug 14 19:32:22 2007 +0000
   421.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   421.3 @@ -1,126 +0,0 @@
   421.4 -If I'm really lucky, this fixes the following error building with gcc-4.0.0:
   421.5 -
   421.6 -../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
   421.7 -make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/math/s_isinf.os] Error 1
   421.8 -make[1]: *** [math/subdir_lib] Error 2
   421.9 -make: *** [lib] Error 2
  421.10 -
  421.11 ----
  421.12 -
  421.13 -
  421.14 -Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
  421.15 -Branch: MAIN
  421.16 -CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
  421.17 -Changes since 1.70: +11 -66 lines
  421.18 -Diff to previous 1.70 (colored)
  421.19 -
  421.20 -2005-03-16  Richard Henderson  <rth@redhat.com>
  421.21 -
  421.22 -	* include/libc-symbols.h (__hidden_proto): Remove bogus declaration
  421.23 -	of internal.
  421.24 -	(__hidden_def1, __hidden_dot_def1): Remove.
  421.25 -	(__hidden_def2, __hidden_def3): Remove.
  421.26 -	(__hidden_ver1): New.
  421.27 -	(hidden_ver, hidden_def, hidden_weak): Use it.
  421.28 -	(hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
  421.29 -	version of the macro.
  421.30 -
  421.31 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
  421.32 -
  421.33 -===================================================================
  421.34 -RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
  421.35 -retrieving revision 1.70
  421.36 -retrieving revision 1.71
  421.37 -diff -u -r1.70 -r1.71
  421.38 ---- libc/include/libc-symbols.h	2005/02/11 00:29:46	1.70
  421.39 -+++ libc/include/libc-symbols.h	2005/03/17 21:06:27	1.71
  421.40 -@@ -583,78 +583,23 @@
  421.41 - #  define hidden_proto(name, attrs...) \
  421.42 -   __hidden_proto (name, __GI_##name, ##attrs)
  421.43 - #  define __hidden_proto(name, internal, attrs...) \
  421.44 --  extern __typeof (name) internal; \
  421.45 -   extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
  421.46 -   __hidden_proto_hiddenattr (attrs);
  421.47 - #  define __hidden_asmname(name) \
  421.48 -   __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
  421.49 - #  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
  421.50 - #  define __hidden_asmname2(prefix, name) #prefix name
  421.51 --#  ifdef HAVE_ASM_SET_DIRECTIVE
  421.52 --#   define __hidden_def1(original, alias)			\
  421.53 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
  421.54 --  .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
  421.55 --#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
  421.56 --#     define __hidden_dot_def1(original, alias)	 ASM_LINE_SEP	\
  421.57 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
  421.58 --  .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
  421.59 --#   else
  421.60 --#     define __hidden_dot_def1(original, alias)
  421.61 --#   endif
  421.62 --#  else
  421.63 --#   define __hidden_def1(original, alias)			\
  421.64 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
  421.65 --  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
  421.66 --#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
  421.67 --#    define __hidden_dot_def1(original, alias)	ASM_LINE_SEP	\
  421.68 --  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
  421.69 --  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
  421.70 --#   else
  421.71 --#    define __hidden_dot_def1(original, alias)
  421.72 --#   endif
  421.73 --#  endif
  421.74 --#  define __hidden_def2(...) #__VA_ARGS__
  421.75 --#  define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
  421.76 --#  define hidden_def(name)					\
  421.77 --  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
  421.78 --  __hidden_dot_def1 (__GI_##name, name)));
  421.79 --#  define hidden_data_def(name)					\
  421.80 --  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
  421.81 --#  define hidden_ver(local, name)				\
  421.82 --  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
  421.83 --  __hidden_dot_def1 (local, __GI_##name)));
  421.84 --#  define hidden_data_ver(local, name)				\
  421.85 --  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
  421.86 --#  ifdef HAVE_WEAK_SYMBOLS
  421.87 --#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
  421.88 --#    define __hidden_weak1(original, alias)			\
  421.89 --  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
  421.90 --#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
  421.91 --#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
  421.92 --  .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
  421.93 --#    else
  421.94 --#     define __hidden_dot_weak1(original, alias)
  421.95 --#    endif
  421.96 --#   else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
  421.97 --#    define __hidden_weak1(original, alias)			\
  421.98 --  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
  421.99 --  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
 421.100 --#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
 421.101 --#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
 421.102 --  .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
 421.103 --  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
 421.104 --#    else
 421.105 --#     define __hidden_dot_weak1(original, alias)
 421.106 --#    endif
 421.107 --#   endif
 421.108 --#   define hidden_weak(name)					\
 421.109 --  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
 421.110 --  __hidden_dot_weak1 (__GI_##name, name)));
 421.111 --#   define hidden_data_weak(name)					\
 421.112 --  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
 421.113 --#  else
 421.114 --#   define hidden_weak(name) hidden_def (name)
 421.115 --#  endif
 421.116 -+#  define __hidden_ver1(local, internal, name) \
 421.117 -+  extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
 421.118 -+  extern __typeof (name) __EI_##name \
 421.119 -+	__attribute__((alias (__hidden_asmname (#local))))
 421.120 -+#  define hidden_ver(local, name)	__hidden_ver1(local, __GI_##name, name);
 421.121 -+#  define hidden_data_ver(local, name)	hidden_ver(local, name)
 421.122 -+#  define hidden_def(name)		__hidden_ver1(__GI_##name, name, name);
 421.123 -+#  define hidden_data_def(name)		hidden_def(name)
 421.124 -+#  define hidden_weak(name) \
 421.125 -+	__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
 421.126 -+#  define hidden_data_weak(name)	hidden_weak(name)
 421.127 - # else
 421.128 - /* For assembly, we need to do the opposite of what we do in C:
 421.129 -    in assembly gcc __REDIRECT stuff is not in place, so functions
   422.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-allow-gcc4-wcstol_l.patch	Tue Aug 14 19:32:22 2007 +0000
   422.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   422.3 @@ -1,57 +0,0 @@
   422.4 -Fixes
   422.5 -../sysdeps/wordsize-64/wcstol_l.c:11: error: '____wcstoll_l_internal' aliased to undefined symbol '____wcstol_l_internal'
   422.6 -../sysdeps/wordsize-64/wcstol_l.c:12: error: '__wcstoll_l' aliased to undefined symbol '__wcstol_l'
   422.7 -../sysdeps/wordsize-64/wcstol_l.c:13: error: 'wcstoll_l' aliased to undefined symbol '__wcstol_l'
   422.8 -make[2]: *** [/home/dkegel/queue/jobdir.produser_cpsm10/crosstool-0.32/build/x86_64-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcstoul_l.o] Error 1
   422.9 -
  422.10 -https://www.redhat.com/archives/fedora-cvs-commits/2005-March/msg00408.html
  422.11 -%changelog
  422.12 -+* Fri Mar 25 2005 Jakub Jelinek <jakub redhat com> 2.3.4-18
  422.13 -+- fix build on 64-bit arches with new GCC
  422.14 -
  422.15 -Revision 1.4.2.1, Fri Mar 25 11:59:01 2005 UTC (3 weeks, 4 days ago) by jakub
  422.16 -Branch: fedora-branch
  422.17 -CVS Tags: fedora-glibc-2_3_4-18
  422.18 -Changes since 1.4: +2 -0 lines
  422.19 -Diff to previous 1.4 (colored)
  422.20 -
  422.21 -	* sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED.
  422.22 -	* sysdeps/wordsize-64/wcstol_l.c: Likewise.
  422.23 -
  422.24 -
  422.25 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/strtol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
  422.26 -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/wcstol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc
  422.27 -
  422.28 -===================================================================
  422.29 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/strtol_l.c,v
  422.30 -retrieving revision 1.4
  422.31 -retrieving revision 1.4.2.1
  422.32 -diff -u -r1.4 -r1.4.2.1
  422.33 ---- libc/sysdeps/wordsize-64/strtol_l.c	2003/03/03 09:45:12	1.4
  422.34 -+++ libc/sysdeps/wordsize-64/strtol_l.c	2005/03/25 11:59:01	1.4.2.1
  422.35 -@@ -8,7 +8,9 @@
  422.36 - #undef ____strtoll_l_internal
  422.37 - #undef __strtoll_l
  422.38 - #undef strtoll_l
  422.39 -+#if !UNSIGNED
  422.40 - strong_alias (____strtol_l_internal, ____strtoll_l_internal)
  422.41 - libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal)
  422.42 - weak_alias (__strtol_l, __strtoll_l)
  422.43 - weak_alias (__strtol_l, strtoll_l)
  422.44 -+#endif
  422.45 -===================================================================
  422.46 -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/wcstol_l.c,v
  422.47 -retrieving revision 1.4
  422.48 -retrieving revision 1.4.2.1
  422.49 -diff -u -r1.4 -r1.4.2.1
  422.50 ---- libc/sysdeps/wordsize-64/wcstol_l.c	2002/08/08 11:44:51	1.4
  422.51 -+++ libc/sysdeps/wordsize-64/wcstol_l.c	2005/03/25 11:59:01	1.4.2.1
  422.52 -@@ -8,6 +8,8 @@
  422.53 - #undef ____wcstoll_l_internal
  422.54 - #undef __wcstoll_l
  422.55 - #undef wcstoll_l
  422.56 -+#if !UNSIGNED
  422.57 - strong_alias (____wcstol_l_internal, ____wcstoll_l_internal)
  422.58 - weak_alias (__wcstol_l, __wcstoll_l)
  422.59 - weak_alias (__wcstol_l, wcstoll_l)
  422.60 -+#endif
   423.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   423.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   423.3 @@ -1,185 +0,0 @@
   423.4 -Fixes
   423.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   423.6 -...
   423.7 -when building glibc-2.3.x on cygwin
   423.8 -
   423.9 -Idea from
  423.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  423.11 -Basically, make glibc use .oST as suffix for 'object static'
  423.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  423.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  423.14 -
  423.15 -glibc-linuxthreads-2.3.5 also requires a patch, see 
  423.16 -../glibc-linuxthreads-2.3.5/glibc-linuxthreads-2.3.5-cygwin.patch
  423.17 -
  423.18 -[ forward ported to glibc-2.3.5 by Petr Cvachoucek:
  423.19 -
  423.20 -Message-ID: <4282FCBA.3040000@unicontrols.cz>
  423.21 -Date: Thu, 12 May 2005 08:50:34 +0200
  423.22 -From: Petr Cvachoucek <cvachoucek@unicontrols.cz>
  423.23 -To: Dan Kegel <dank@kegel.com>
  423.24 -CC:  crossgcc@sources.redhat.com
  423.25 -Subject: Patches to build gcc 3.4.3 / glibc 2.3.5 on cygwin
  423.26 -
  423.27 -Hi Dan,
  423.28 -following patches are needed to build gcc-3.4.3/glibc-2.3.5 toolchain
  423.29 -on cygwin. Tested to build toolchains for powerpc 604 and 750 targets.
  423.30 -
  423.31 --- 
  423.32 -                     Petr Cvachoucek
  423.33 -                     Unicontrols a.s.
  423.34 -                     http://www.unicontrols.cz
  423.35 -]
  423.36 -
  423.37 -diff -aur glibc-2.3.5/Makeconfig glibc-2.3.5-cygwin/Makeconfig
  423.38 ---- glibc-2.3.5/Makeconfig	2005-02-16 11:50:19.000000000 +0100
  423.39 -+++ glibc-2.3.5-cygwin/Makeconfig	2005-05-11 08:24:51.046875000 +0200
  423.40 -@@ -449,7 +449,7 @@
  423.41 - # run the linked programs.
  423.42 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  423.43 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  423.44 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  423.45 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  423.46 - # This is how to find at build-time things that will be installed there.
  423.47 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  423.48 - endif
  423.49 -@@ -656,7 +656,7 @@
  423.50 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  423.51 - # to pass different flags for each flavor.
  423.52 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  423.53 --all-object-suffixes := .o .os .op .og .ob .oS
  423.54 -+all-object-suffixes := .o .os .op .og .ob .oST
  423.55 - object-suffixes :=
  423.56 - CPPFLAGS-.o = $(pic-default)
  423.57 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  423.58 -@@ -712,14 +712,14 @@
  423.59 - 
  423.60 - ifeq (yes,$(build-shared))
  423.61 - # Build special library that contains the static-only routines for libc.
  423.62 --object-suffixes-for-libc += .oS
  423.63 -+object-suffixes-for-libc += .oST
  423.64 - 
  423.65 - # Must build the routines as PIC, though, because they can end up in (users')
  423.66 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  423.67 - # example, make that processor-specific.
  423.68 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
  423.69 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  423.70 --libtype.oS = lib%_nonshared.a
  423.71 -+CFLAGS-.oST = $(CFLAGS-.o) $(PIC-ccflag)
  423.72 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  423.73 -+libtype.oST = lib%_nonshared.a
  423.74 - endif
  423.75 - 
  423.76 - # The assembler can generate debug information too.
  423.77 -diff -aur glibc-2.3.5/Makerules glibc-2.3.5-cygwin/Makerules
  423.78 ---- glibc-2.3.5/Makerules	2004-12-15 19:52:39.000000000 +0100
  423.79 -+++ glibc-2.3.5-cygwin/Makerules	2005-05-11 08:25:33.578125000 +0200
  423.80 -@@ -416,7 +416,7 @@
  423.81 - # Bounded pointer thunks are only built for *.ob
  423.82 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  423.83 - 
  423.84 --elide-routines.oS += $(filter-out $(static-only-routines),\
  423.85 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  423.86 - 				  $(routines) $(aux) $(sysdep_routines)) \
  423.87 - 		     $(elide-bp-thunks)
  423.88 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  423.89 -@@ -961,7 +961,7 @@
  423.90 - install: $(inst_libdir)/libc.so
  423.91 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
  423.92 - 			$(common-objpfx)libc.so$(libc.so-version) \
  423.93 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  423.94 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  423.95 - 						  $(libprefix)$(libc-name)) \
  423.96 - 			$(+force)
  423.97 - 	(echo '/* GNU ld script';\
  423.98 -@@ -969,7 +969,7 @@
  423.99 - 	 echo '   the static library, so try that secondarily.  */';\
 423.100 - 	 cat $<; \
 423.101 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
 423.102 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
 423.103 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
 423.104 - 	      ')' \
 423.105 - 	) > $@.new
 423.106 - 	mv -f $@.new $@
 423.107 -diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk
 423.108 ---- glibc-2.3.5/extra-lib.mk	2004-12-02 23:54:47.000000000 +0100
 423.109 -+++ glibc-2.3.5-cygwin/extra-lib.mk	2005-05-11 08:27:28.156250000 +0200
 423.110 -@@ -13,7 +13,7 @@
 423.111 - 
 423.112 - ifneq (,$($(lib)-static-only-routines))
 423.113 - ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
 423.114 --object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
 423.115 -+object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST)
 423.116 - endif
 423.117 - endif
 423.118 - 
 423.119 -@@ -29,7 +29,7 @@
 423.120 - 
 423.121 - # Add each flavor of library to the lists of things to build and install.
 423.122 - install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
 423.123 --extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\
 423.124 -+extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\
 423.125 - 			$(patsubst %,%$o,$(filter-out \
 423.126 - 					   $($(lib)-shared-only-routines),\
 423.127 - 					   $(all-$(lib)-routines))))
 423.128 -@@ -57,7 +57,7 @@
 423.129 - 
 423.130 - 
 423.131 - # Use o-iterator.mk to generate a rule for each flavor of library.
 423.132 --ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib))))
 423.133 -+ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib))))
 423.134 - define o-iterator-doit
 423.135 - $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
 423.136 -   $(patsubst %,$(objpfx)%$o,\
 423.137 -@@ -65,7 +65,7 @@
 423.138 - 			  $(all-$(lib)-routines))); \
 423.139 - 	$$(build-extra-lib)
 423.140 - endef
 423.141 --object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib)))
 423.142 -+object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib)))
 423.143 - include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
 423.144 - endif
 423.145 - 
 423.146 -@@ -77,9 +77,9 @@
 423.147 - 	$(build-extra-lib)
 423.148 - endif
 423.149 - 
 423.150 --ifneq (,$(filter .oS,$(object-suffixes-$(lib))))
 423.151 --$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
 423.152 --  $(patsubst %,$(objpfx)%.oS,\
 423.153 -+ifneq (,$(filter .oST,$(object-suffixes-$(lib))))
 423.154 -+$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \
 423.155 -+  $(patsubst %,$(objpfx)%.oST,\
 423.156 - 	     $(filter $($(lib)-static-only-routines),\
 423.157 - 		      $(all-$(lib)-routines)))
 423.158 - 	$(build-extra-lib)
 423.159 -diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile
 423.160 ---- glibc-2.3.5/nptl/Makefile	2005-02-16 09:45:56.000000000 +0100
 423.161 -+++ glibc-2.3.5-cygwin/nptl/Makefile	2005-05-11 08:26:01.812500000 +0200
 423.162 -@@ -360,7 +360,7 @@
 423.163 - 
 423.164 - $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
 423.165 - 			      $(objpfx)libpthread.so$(libpthread.so-version) \
 423.166 --			      $(inst_libdir)/$(patsubst %,$(libtype.oS),\
 423.167 -+			      $(inst_libdir)/$(patsubst %,$(libtype.oST),\
 423.168 - 							$(libprefix)pthread) \
 423.169 - 			      $(+force)
 423.170 - 	(echo '/* GNU ld script';\
 423.171 -@@ -368,7 +368,7 @@
 423.172 - 	 echo '   the static library, so try that secondarily.  */';\
 423.173 - 	 cat $<; \
 423.174 - 	 echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
 423.175 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
 423.176 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\
 423.177 - 	      ')' \
 423.178 - 	) > $@.new
 423.179 - 	mv -f $@.new $@
 423.180 -diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
 423.181 ---- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-16 08:46:14.000000000 +0200
 423.182 -+++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile	2005-05-11 08:26:25.937500000 +0200
 423.183 -@@ -10,4 +10,4 @@
 423.184 - ASFLAGS-.op += -Wa,-Av9a
 423.185 - ASFLAGS-.og += -Wa,-Av9a
 423.186 - ASFLAGS-.ob += -Wa,-Av9a
 423.187 --ASFLAGS-.oS += -Wa,-Av9a
 423.188 -+ASFLAGS-.oST += -Wa,-Av9a
   424.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-fix-pr631.patch	Tue Aug 14 19:32:22 2007 +0000
   424.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   424.3 @@ -1,43 +0,0 @@
   424.4 -From dank@kegel.com
   424.5 -Wed Jun 15 09:12:43 PDT 2005
   424.6 -
   424.7 -Fixes
   424.8 -
   424.9 -build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
  424.10 -build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
  424.11 -... 53 lines deleted ...
  424.12 -build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
  424.13 -collect2: ld returned 1 exit status
  424.14 -make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1
  424.15 -
  424.16 -when building glibc with --enable-static-nss.
  424.17 -
  424.18 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
  424.19 -
  424.20 ---- glibc-2.3.5/Makeconfig.old	Wed Jun 15 08:13:12 2005
  424.21 -+++ glibc-2.3.5/Makeconfig	Wed Jun 15 08:13:14 2005
  424.22 -@@ -487,7 +487,7 @@
  424.23 - 
  424.24 - # The static libraries.
  424.25 - ifeq (yes,$(build-static))
  424.26 --link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
  424.27 -+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
  424.28 - else
  424.29 - ifeq (yes,$(build-shared))
  424.30 - # We can try to link the programs with lib*_pic.a...
  424.31 ---- glibc-2.3.5/elf/Makefile.old	Wed Jun 15 07:46:49 2005
  424.32 -+++ glibc-2.3.5/elf/Makefile	Wed Jun 15 08:14:00 2005
  424.33 -@@ -114,6 +114,13 @@
  424.34 - install-bin-script = ldd
  424.35 - endif
  424.36 - 
  424.37 -+ifeq (yes,$(build-static-nss))
  424.38 -+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
  424.39 -+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
  424.40 -+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
  424.41 -+	     $(resolvobjdir)/libresolv.a
  424.42 -+endif
  424.43 -+
  424.44 - others		= sprof sln
  424.45 - install-bin	= sprof
  424.46 - others-static   = sln
   425.1 --- a/patches/glibc/2.3.5/glibc-2.3.5-sh-memset.patch	Tue Aug 14 19:32:22 2007 +0000
   425.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   425.3 @@ -1,69 +0,0 @@
   425.4 -[http://sources.redhat.com/ml/crossgcc/2005-10/msg00035.html]
   425.5 -
   425.6 -Message-ID: <434576E1.6020305@sscd.de>
   425.7 -Date: Thu, 06 Oct 2005 21:11:29 +0200
   425.8 -From: Alexander Sieb <sieb@sscd.de>
   425.9 -To: crossgcc@sourceware.org
  425.10 -Subject: Crosstool sh4-linux-gcc-4.0.2-glibc-2.3.5 patches
  425.11 -
  425.12 -Hi,
  425.13 -
  425.14 -attached you find the files I needed to add to crosstool-0.38
  425.15 -in order to build a sh4-linux gcc-4.0.2-glibc-2.3.5 tool chain.
  425.16 -
  425.17 -Files attached:
  425.18 -
  425.19 -sh4-gcc4.dat:
  425.20 -        * gcc4 needs --with-multilib-list=m4,m4-nofpu otherwise a linux
  425.21 -        kernel won't build as it uses the -m4-nofpu option.
  425.22 -
  425.23 -gcc-pr21623.patch:
  425.24 -        * Kaz Kojima provided a patch [really, a workaround -dank] for http://gcc.gnu.org/PR21623
  425.25 -
  425.26 -glibc-2.3.5-sh-memset.patch:
  425.27 -        * A patch for glibc-2.3.5 which corrects memset. From SUGIOKA Toshinobu.
  425.28 -        See content for rationale.
  425.29 -
  425.30 --- snip --
  425.31 -
  425.32 --- Here's patch 2 of 2, plus URLs showing where it is in CVS --
  425.33 -
  425.34 -[http://sources.redhat.com/ml/glibc-cvs/2005-q3/msg00319.html]
  425.35 -
  425.36 -Date: 24 Jul 2005 22:54:32 -0000
  425.37 -Message-ID: <20050724225432.2111.qmail@sourceware.org>
  425.38 -From: roland at sourceware dot org
  425.39 -To: glibc-cvs at sources dot redhat dot com
  425.40 -Subject: libc/sysdeps/sh memset.S
  425.41 -
  425.42 -CVSROOT:	/cvs/glibc
  425.43 -Module name:	libc
  425.44 -Changes by:	roland@sources.redhat.com	2005-07-24 22:54:32
  425.45 -
  425.46 -Modified files:
  425.47 -	sysdeps/sh     : memset.S 
  425.48 -
  425.49 -Log message:
  425.50 -	2005-07-24  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
  425.51 -	
  425.52 -	* sysdeps/sh/memset.S (memset): Correct 2nd argument handling.
  425.53 -
  425.54 -[http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/sh/memset.S.diff?cvsroot=glibc&r1=1.4&r2=1.5]
  425.55 -
  425.56 -RCS file: /cvs/glibc/libc/sysdeps/sh/memset.S,v
  425.57 -retrieving revision 1.4
  425.58 -retrieving revision 1.5
  425.59 -diff -u -r1.4 -r1.5
  425.60 ---- libc/sysdeps/sh/memset.S	2003/04/29 22:47:18	1.4
  425.61 -+++ libc/sysdeps/sh/memset.S	2005/07/24 22:54:32	1.5
  425.62 -@@ -28,6 +28,7 @@
  425.63 - 	bt.s	L_byte_loop_init
  425.64 - 	mov	r4,r7
  425.65 - 
  425.66 -+	extu.b	r5,r5
  425.67 - 	swap.b	r5,r1
  425.68 - 	or	r1,r5
  425.69 - 	swap.w	r5,r1
  425.70 -
  425.71 -
  425.72 -[See also http://sources.redhat.com/ml/libc-alpha/2005-07/msg00051.html]
   426.1 --- a/patches/glibc/2.3.5/glibc-configure-apple-as.patch	Tue Aug 14 19:32:22 2007 +0000
   426.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   426.3 @@ -1,23 +0,0 @@
   426.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
   426.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
   426.6 -
   426.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
   426.8 -where the assembler but doesn't understand the --version flag.
   426.9 -
  426.10 -Fixes the symptom
  426.11 -checking whether ld is GNU ld... no
  426.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
  426.13 -checking version of /usr/libexec/gcc/darwin/ppc/as... 
  426.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
  426.15 -
  426.16 ---- glibc-2.3.2/configure~	Wed Feb 26 09:20:48 2003
  426.17 -+++ glibc-2.3.2/configure	Fri Feb 27 13:12:53 2004
  426.18 -@@ -3789,7 +3789,7 @@
  426.19 -   # Found it, now check the version.
  426.20 -   echo "$as_me:$LINENO: checking version of $AS" >&5
  426.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
  426.22 --  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  426.23 -+  ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  426.24 -   case $ac_prog_version in
  426.25 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  426.26 -     2.1[3-9]*)
   427.1 --- a/patches/glibc/2.3.5/glibc-fp-byteorder.patch	Tue Aug 14 19:32:22 2007 +0000
   427.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   427.3 @@ -1,203 +0,0 @@
   427.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
   427.5 -Author: addsub@eyou.com
   427.6 -Target: ARM
   427.7 -
   427.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
   427.9 -and makes printf("%f", 1.0) work.
  427.10 -
  427.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
  427.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
  427.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
  427.14 - It's definitely needed for hardfloat.  So I'd think it's needed for
  427.15 - big-endian systems in any case, and for VFP on little-endian systems
  427.16 - too.  Someone would have to verify that though.
  427.17 -
  427.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
  427.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
  427.20 - for this version.  glibc-20040830 out-of-the-box still contains the
  427.21 - following wrong assumptions:
  427.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
  427.23 -   not on vfp systems)
  427.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
  427.25 -   are not on big endian systems, neither on vfp systems)
  427.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
  427.27 -   (which they are not on big endian systems)
  427.28 - [This patch] seems the right solution for all of these issues.
  427.29 -
  427.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
  427.31 - It's even needed for glibc CVS, AFAICS.
  427.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
  427.33 - (currently at version 1.4) is only needed for proper VFP operation.
  427.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
  427.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
  427.36 - for proper operation of *any* FP model on big endian ARM.
  427.37 -
  427.38 -See also discussion in followups to
  427.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
  427.40 -
  427.41 -Message-ID: <276985760.37584@eyou.com>
  427.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
  427.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
  427.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
  427.45 -Date: 17 Feb 2004 10:42:38 +0800
  427.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
  427.47 -From: "add" <addsub@eyou.com>
  427.48 -To: dank@kegel.com
  427.49 -Reply-To: "add" <addsub@eyou.com>
  427.50 -Subject: Re:&nbsp;&nbsp;&nbsp;problem&nbsp;while&nbsp;building&nbsp;arm&nbsp;vfp&nbsp;softfloat&nbsp;gcc&nbsp;`
  427.51 -
  427.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
  427.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
  427.54 -
  427.55 -
  427.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
  427.57 ---- glibc.old/sysdeps/arm/bits/endian.h	1999-04-12 11:59:13.000000000 -0400
  427.58 -+++ glibc.new/sysdeps/arm/bits/endian.h	2004-02-12 09:15:13.000000000 -0500
  427.59 -@@ -9,4 +9,9 @@
  427.60 - #else
  427.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
  427.62 - #endif
  427.63 -+
  427.64 -+#ifdef __VFP_FP__
  427.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
  427.66 -+#else
  427.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
  427.68 -+#endif
  427.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
  427.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h	2001-07-07 15:21:19.000000000 -0400
  427.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h	2004-02-12 09:15:13.000000000 -0500
  427.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
  427.73 - #define BITS_PER_SHORTINT 16
  427.74 - #define BITS_PER_CHAR 8
  427.75 - 
  427.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
  427.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
  427.78 -+#if defined(__ARMEB__)
  427.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  427.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
  427.81 -+#elif defined(__VFP_FP__)
  427.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  427.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  427.84 -+#else
  427.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  427.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
  427.87 -+#endif
  427.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
  427.89 ---- glibc.old/sysdeps/arm/ieee754.h	2001-07-07 15:21:19.000000000 -0400
  427.90 -+++ glibc.new/sysdeps/arm/ieee754.h	1969-12-31 19:00:00.000000000 -0500
  427.91 -@@ -1,115 +0,0 @@
  427.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
  427.93 --   This file is part of the GNU C Library.
  427.94 --
  427.95 --   The GNU C Library is free software; you can redistribute it and/or
  427.96 --   modify it under the terms of the GNU Lesser General Public
  427.97 --   License as published by the Free Software Foundation; either
  427.98 --   version 2.1 of the License, or (at your option) any later version.
  427.99 --
 427.100 --   The GNU C Library is distributed in the hope that it will be useful,
 427.101 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 427.102 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 427.103 --   Lesser General Public License for more details.
 427.104 --
 427.105 --   You should have received a copy of the GNU Lesser General Public
 427.106 --   License along with the GNU C Library; if not, write to the Free
 427.107 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 427.108 --   02111-1307 USA.  */
 427.109 --
 427.110 --#ifndef _IEEE754_H
 427.111 --
 427.112 --#define _IEEE754_H 1
 427.113 --#include <features.h>
 427.114 --
 427.115 --#include <endian.h>
 427.116 --
 427.117 --__BEGIN_DECLS
 427.118 --
 427.119 --union ieee754_float
 427.120 --  {
 427.121 --    float f;
 427.122 --
 427.123 --    /* This is the IEEE 754 single-precision format.  */
 427.124 --    struct
 427.125 --      {
 427.126 --	unsigned int mantissa:23;
 427.127 --	unsigned int exponent:8;
 427.128 --	unsigned int negative:1;
 427.129 --      } ieee;
 427.130 --
 427.131 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 427.132 --    struct
 427.133 --      {
 427.134 --	unsigned int mantissa:22;
 427.135 --	unsigned int quiet_nan:1;
 427.136 --	unsigned int exponent:8;
 427.137 --	unsigned int negative:1;
 427.138 --      } ieee_nan;
 427.139 --  };
 427.140 --
 427.141 --#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
 427.142 --
 427.143 --
 427.144 --union ieee754_double
 427.145 --  {
 427.146 --    double d;
 427.147 --
 427.148 --    /* This is the IEEE 754 double-precision format.  */
 427.149 --    struct
 427.150 --      {
 427.151 --	unsigned int mantissa0:20;
 427.152 --	unsigned int exponent:11;
 427.153 --	unsigned int negative:1;
 427.154 --	unsigned int mantissa1:32;
 427.155 --      } ieee;
 427.156 --
 427.157 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 427.158 --    struct
 427.159 --      {
 427.160 --	unsigned int mantissa0:19;
 427.161 --	unsigned int quiet_nan:1;
 427.162 --	unsigned int exponent:11;
 427.163 --	unsigned int negative:1;
 427.164 --	unsigned int mantissa1:32;
 427.165 --      } ieee_nan;
 427.166 --  };
 427.167 --
 427.168 --#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
 427.169 --
 427.170 --
 427.171 --/* The following two structures are correct for `new' floating point systems but
 427.172 --   wrong for the old FPPC.  The only solution seems to be to avoid their use on
 427.173 --   old hardware.  */
 427.174 --
 427.175 --union ieee854_long_double
 427.176 --  {
 427.177 --    long double d;
 427.178 --
 427.179 --    /* This is the IEEE 854 double-extended-precision format.  */
 427.180 --    struct
 427.181 --      {
 427.182 --	unsigned int exponent:15;
 427.183 --	unsigned int empty:16;
 427.184 --	unsigned int negative:1;
 427.185 --	unsigned int mantissa1:32;
 427.186 --	unsigned int mantissa0:32;
 427.187 --      } ieee;
 427.188 --
 427.189 --    /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
 427.190 --    struct
 427.191 --      {
 427.192 --	unsigned int exponent:15;
 427.193 --	unsigned int empty:16;
 427.194 --	unsigned int negative:1;
 427.195 --	unsigned int mantissa1:32;
 427.196 --	unsigned int mantissa0:30;
 427.197 --	unsigned int quiet_nan:1;
 427.198 --	unsigned int one:1;
 427.199 --      } ieee_nan;
 427.200 --  };
 427.201 --
 427.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
 427.203 --
 427.204 --__END_DECLS
 427.205 --
 427.206 --#endif /* ieee754.h */
   428.1 --- a/patches/glibc/2.3.5/glibc-mips-bootstrap-gcc-header-install.patch	Tue Aug 14 19:32:22 2007 +0000
   428.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   428.3 @@ -1,35 +0,0 @@
   428.4 -http://sourceware.org/ml/crossgcc/2005-05/msg00165.html
   428.5 -Fixes a MIPS build problem (unrelated to NPTL)
   428.6 -
   428.7 -Message-ID: <428E8B24.1000201@realitydiluted.com>
   428.8 -Date: Fri, 20 May 2005 20:13:08 -0500
   428.9 -From: "Steven J dot  Hill" <sjhill at realitydiluted dot com>
  428.10 -To:  crossgcc at sources dot redhat dot com,  toolchain at gentoo dot org, 
  428.11 - Shay_Gal-On at pmc-sierra dot com,  TheNop at gmx dot net
  428.12 -Subject: New NPTL patches for crosstools and MIPS NPTL patches....
  428.13 -
  428.14 -Greetings.
  428.15 -
  428.16 -I have uploaded the latest NPTL patch for crosstool-0.34. I have also
  428.17 -uploaded a tarball of the patches necessary to build a MIPS NPTL
  428.18 -cross toolchain. To build a MIPS NPTL toolchain you will need the
  428.19 -released version of binutils-2.16 and the absolute latest GCC and
  428.20 -glibc code from the HEAD of cvs. Use the 'demo-mips-nptl.sh' script
  428.21 -to build the toolchain. Please report bugs or issues to the crossgcc
  428.22 -mailing list. Here is the link off of my FTP site:
  428.23 -
  428.24 -    ftp://ftp.realitydiluted.com/crosstools/crosstool-0.34/
  428.25 -
  428.26 -[Note: BOOTSTRAP_GCC is set by crosstool.sh when invoking make install-headers]
  428.27 -
  428.28 -diff -ur glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile
  428.29 ---- glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile	2003-03-29 02:15:28.000000000 -0600
  428.30 -+++ glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile	2005-04-12 21:36:51.318837655 -0500
  428.31 -@@ -1,3 +1,7 @@
  428.32 -+ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),)
  428.33 - ifeq ($(filter -mabi=32,$(CC)),)
  428.34 - CC += -mabi=32
  428.35 - endif
  428.36 -+else
  428.37 -+CC += -D"_MIPS_SZPTR=32"
  428.38 -+endif
   429.1 --- a/patches/glibc/2.3.5/make-install-lib-all.patch	Tue Aug 14 19:32:22 2007 +0000
   429.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   429.3 @@ -1,24 +0,0 @@
   429.4 -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
   429.5 -Rule to install all needed libraries, not just the ones installed by install-lib,
   429.6 -yet not install programs.  
   429.7 -Needed because we can't use the main install target, as we can't build programs before
   429.8 -we have the final gcc installed; linking fails because libeh.a is not present,
   429.9 -and glibc insists on linking programs with that library.
  429.10 -
  429.11 -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
  429.12 ---- glibc-2.3.4.orig/Makerules	2004-12-15 20:52:39.000000000 +0200
  429.13 -+++ glibc-2.3.4/Makerules	2005-02-19 15:16:31.415125176 +0200
  429.14 -@@ -844,6 +844,13 @@
  429.15 - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
  429.16 - 			     $(inst_libdir)/$(patsubst %,$(libtype$o),\
  429.17 - 						     $(libprefix)$(libc-name)))
  429.18 -+
  429.19 -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
  429.20 -+		$(inst_slibdir)/libc-$(version).so \
  429.21 -+		$(inst_libdir)/libc.so \
  429.22 -+		$(inst_libdir)/libc.a \
  429.23 -+		install-lib
  429.24 -+
  429.25 - install: $(installed-libcs)
  429.26 - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
  429.27 - 	$(make-target-directory)
   430.1 --- a/patches/glibc/2.3.5/pr758.patch	Tue Aug 14 19:32:22 2007 +0000
   430.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   430.3 @@ -1,256 +0,0 @@
   430.4 -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=758
   430.5 -
   430.6 -Submitted By: Jim Gifford (patches at jg555 dot com)
   430.7 -Date: 2005-02-23
   430.8 -Initial Package Version: 2.3.4
   430.9 -Origin: Richard Sandiford
  430.10 -Upstream Status: Unknown
  430.11 -Description: Fixes Syscall.h generation
  430.12 - 
  430.13 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile
  430.14 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/Makefile	2004-11-24 04:38:15 +0000
  430.15 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/Makefile	2005-02-23 18:21:54 +0000
  430.16 -@@ -9,11 +9,73 @@
  430.17 - 
  430.18 - no_syscall_list_h = 1
  430.19 - 
  430.20 --# Generate the list of SYS_* macros for the system calls (__NR_* macros).
  430.21 --# We generate not only SYS_<syscall>, pointing at SYS_<abi>_<syscall> if
  430.22 --# it exists, but also define SYS_<abi>_<syscall> for all ABIs.
  430.23 -+# A callable macro that expands to a shell command.  Preprocess file $(1)
  430.24 -+# using ABI option $(2) and see which macros it defines.  Print FOO for each
  430.25 -+# macro of the form __NR$(3)_FOO, filtering out ABI-specific __NR macros
  430.26 -+# that have a prefix other than $(3).
  430.27 -+mips_list_syscalls =	$(filter-out -m%,$(CC)) -E -x c $(+includes) \
  430.28 -+			    $(sysincludes) -D_LIBC -dM -mabi=$(2) $(1) | \
  430.29 -+			sed -n 's@^\#define __NR$(3)_\([^ ]*\) .*@\1@p' | \
  430.30 -+			sed -e '/^[ON]32_/d' -e '/^N64_/d' -e '/^64_/d' | \
  430.31 -+			LC_ALL=C sort
  430.32 -+
  430.33 -+# Generate a list of SYS_* macros from the linux __NR macros.
  430.34 -+#
  430.35 -+# Before version 2.6, linux had separate 32-bit and 64-bit MIPS ports,
  430.36 -+# each with its own set of headers.  The ports were merged for 2.6 and
  430.37 -+# this merged port defines the syscalls in a slightly different way.
  430.38 -+# There are therefore three sets of headers that we need to consider:
  430.39 -+#
  430.40 -+#    (1) Headers from the separate 32-bit MIPS port.  They just define
  430.41 -+#	 a single list of __NR macros.
  430.42 -+#
  430.43 -+#    (2) Headers from the separate 64-bit MIPS port.  They unconditionally
  430.44 -+#	 define syscalls for all three ABIs, with o32 syscalls prefixed
  430.45 -+#	 by __NR_O32, n32 syscalls prefixed by __NR_N32 and n64 syscalls
  430.46 -+#	 prefixed by plain __NR.
  430.47 -+#
  430.48 -+#    (3) Headers from the combined port.  They use the _MIPS_SIM macro to
  430.49 -+#	 define the right set of syscalls for the current ABI.  The syscalls
  430.50 -+#	 themselves have no special ABI prefix, but the headers also define:
  430.51 -+#
  430.52 -+#	    __NR_O32_Linux{,_syscalls}
  430.53 -+#	    __NR_N32_Linux{,_syscalls}
  430.54 -+#	    __NR_64_Linux{,_syscalls}
  430.55 -+#
  430.56 -+# In case (1) we just want a simple list of SYS_* macros.  In cases (2)
  430.57 -+# and (3) we want a file that will work for all three ABIs, regardless
  430.58 -+# of which ABI we are currently using.  We also want the file to work
  430.59 -+# if the user later moves from (2) to (3).  Thus the file we create
  430.60 -+# for (2) and (3) has the form:
  430.61 -+#
  430.62 -+#    #if _MIPS_SIM == _MIPS_SIM_NABI32
  430.63 -+#    # ifdef __NR_N32_open
  430.64 -+#    #  define SYS_n32syscall1 __NR_N32_n32syscall1
  430.65 -+#    #  ...
  430.66 -+#    # else
  430.67 -+#    #  define SYS_n32syscall1 __NR_n32syscall1
  430.68 -+#    #  ...
  430.69 -+#    # endif
  430.70 -+#    #elif _MIPS_SIM == _MIPS_SIM_ABI64
  430.71 -+#    # define SYS_n64syscall1 __NR_n64syscall1
  430.72 -+#    # ...
  430.73 -+#    #else
  430.74 -+#    # ifdef __NR_O32_open
  430.75 -+#    #  define SYS_o32syscall1 __NR_O32_o32syscall1
  430.76 -+#    #  ...
  430.77 -+#    # else
  430.78 -+#    #  define SYS_o32syscall1 __NR_o32syscall1
  430.79 -+#    #  ...
  430.80 -+#    # endif
  430.81 -+#    #endif
  430.82 -+#
  430.83 -+# Here, __NR_N32_open and __NR_O32_open are used to detect case (2)
  430.84 -+# over case (3).  The n64 SYS_* macros can always use the normal
  430.85 -+# ABI-less names.
  430.86 - $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h
  430.87 - 	$(make-target-directory)
  430.88 -+	$(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC $< -MD -MP \
  430.89 -+	      -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' > /dev/null
  430.90 - 	{ \
  430.91 - 	 echo '/* Generated at libc build time from kernel syscall list.  */';\
  430.92 - 	 echo ''; \
  430.93 -@@ -22,28 +84,38 @@
  430.94 - 	 echo '#endif'; \
  430.95 - 	 echo ''; \
  430.96 - 	 echo '#include <sgidefs.h>'; \
  430.97 --	 rm -f $(@:.d=.h).newt; \
  430.98 --	 $(CC) -E -MD -MP -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' \
  430.99 --	       -x c $(+includes) $(sysincludes) $< -D_LIBC -dM | \
 430.100 --	 sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
 430.101 --	     > $(@:.d=.h).newt; \
 430.102 --	 if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
 430.103 -+ 	 rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
 430.104 -+ 	 $(call mips_list_syscalls,$<,n32,_N32) > $(@:.d=.h).newn32; \
 430.105 -+ 	 if test -s $(@:.d=.h).newn32; then \
 430.106 -+ 	   if grep open $(@:.d=.h).newn32 > /dev/null; then \
 430.107 -+ 	     $(call mips_list_syscalls,$<,32,_O32) > $(@:.d=.h).new32; \
 430.108 -+ 	     $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
 430.109 -+ 	   else \
 430.110 -+ 	     $(call mips_list_syscalls,$<,32,) > $(@:.d=.h).new32; \
 430.111 -+ 	     $(call mips_list_syscalls,$<,n32,) > $(@:.d=.h).newn32; \
 430.112 -+ 	     $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
 430.113 -+ 	   fi; \
 430.114 - 	   echo '#if _MIPS_SIM == _ABIN32'; \
 430.115 --	   sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
 430.116 --		LC_ALL=C sort; \
 430.117 -+ 	   echo '# ifdef __NR_N32_open'; \
 430.118 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_N32_\1@' < $(@:.d=.h).newn32; \
 430.119 -+ 	   echo '# else'; \
 430.120 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).newn32; \
 430.121 -+ 	   echo '# endif'; \
 430.122 - 	   echo '#elif _MIPS_SIM == _ABI64'; \
 430.123 --	   sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
 430.124 --		LC_ALL=C sort; \
 430.125 -+ 	   sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new64; \
 430.126 - 	   echo '#else'; \
 430.127 --	   sed -n 's/^\(#define SYS_\)O32_/\1/p' < $(@:.d=.h).newt | \
 430.128 --		LC_ALL=C sort; \
 430.129 -+ 	   echo '# ifdef __NR_O32_open'; \
 430.130 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_O32_\1@' < $(@:.d=.h).new32; \
 430.131 -+ 	   echo '# else'; \
 430.132 -+ 	   sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).new32; \
 430.133 -+ 	   echo '# endif'; \
 430.134 - 	   echo '#endif'; \
 430.135 --	   sed -n '/^#define SYS_\([ON]32\|N64\)_/p' < $(@:.d=.h).newt | \
 430.136 --		LC_ALL=C sort +1.8; \
 430.137 - 	 else \
 430.138 --	   cat $(@:.d=.h).newt; \
 430.139 -+ 	   $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC -dM $< | \
 430.140 -+ 	   sed -n 's@^\#define __NR_\([^ ]*\) .*@\#define SYS_\1 __NR_\1@p' | \
 430.141 -+ 	   LC_ALL=C sort; \
 430.142 - 	 fi; \
 430.143 --	 rm $(@:.d=.h).newt; \
 430.144 -+ 	 rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
 430.145 - 	} > $(@:.d=.h).new
 430.146 - 	mv -f $(@:.d=.h).new $(@:.d=.h)
 430.147 - ifneq (,$(objpfx))
 430.148 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure
 430.149 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure	2004-11-24 04:42:45 +0000
 430.150 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure	2005-02-23 18:10:11 +0000
 430.151 -@@ -18,7 +18,7 @@
 430.152 -     { echo "$as_me:$LINENO: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&5
 430.153 - echo "$as_me: WARNING: *** asm/unistd.h not found, it will not be pre-processed" >&2;}
 430.154 -     echo '#include <asm/unistd.h>' > asm-unistd.h
 430.155 --  else
 430.156 -+  elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
 430.157 -     # The point of this preprocessing is to turn __NR_<syscall> into
 430.158 -     # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
 430.159 -     # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
 430.160 -@@ -68,6 +68,8 @@
 430.161 - {
 430.162 - 	print;
 430.163 - }'
 430.164 -+  else
 430.165 -+    echo '#include <asm/unistd.h>' > asm-unistd.h
 430.166 -   fi ;;
 430.167 - mips*)
 430.168 -   rm -f asm-unistd.h
 430.169 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in
 430.170 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/configure.in	2004-11-24 04:38:31 +0000
 430.171 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/configure.in	2005-02-23 18:10:11 +0000
 430.172 -@@ -18,7 +18,7 @@
 430.173 -   if test ! -f "$asm_unistd_h"; then
 430.174 -     AC_MSG_WARN([*** asm/unistd.h not found, it will not be pre-processed])
 430.175 -     echo '#include <asm/unistd.h>' > asm-unistd.h
 430.176 --  else
 430.177 -+  elif grep __NR_N32_open "$asm_unistd_h" > /dev/null; then
 430.178 -     # The point of this preprocessing is to turn __NR_<syscall> into
 430.179 -     # __NR_N64_<syscall>, as well as to define __NR_<syscall> to
 430.180 -     # __NR_<abi>_<syscall>, if __NR_<abi>_<syscall> is defined
 430.181 -@@ -68,6 +68,8 @@
 430.182 - {
 430.183 - 	print;
 430.184 - }'
 430.185 -+  else
 430.186 -+    echo '#include <asm/unistd.h>' > asm-unistd.h
 430.187 -   fi ;;
 430.188 - mips*)
 430.189 -   rm -f asm-unistd.h
 430.190 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h
 430.191 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h	2003-03-29 08:15:29 +0000
 430.192 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h	2005-02-23 18:10:11 +0000
 430.193 -@@ -1,36 +0,0 @@
 430.194 --/* Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
 430.195 --   This file is part of the GNU C Library.
 430.196 --
 430.197 --   The GNU C Library is free software; you can redistribute it and/or
 430.198 --   modify it under the terms of the GNU Lesser General Public
 430.199 --   License as published by the Free Software Foundation; either
 430.200 --   version 2.1 of the License, or (at your option) any later version.
 430.201 --
 430.202 --   The GNU C Library is distributed in the hope that it will be useful,
 430.203 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 430.204 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 430.205 --   Lesser General Public License for more details.
 430.206 --
 430.207 --   You should have received a copy of the GNU Lesser General Public
 430.208 --   License along with the GNU C Library; if not, write to the Free
 430.209 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 430.210 --   02111-1307 USA.  */
 430.211 --
 430.212 --#ifndef _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H
 430.213 --#define _LINUX_MIPS_MIPS32_KERN64_SYSDEP_H 1
 430.214 --
 430.215 --/* There is some commonality.  */
 430.216 --#include <sysdeps/unix/sysv/linux/mips/mips32/sysdep.h>
 430.217 --
 430.218 --/* For Linux we can use the system call table in the header file
 430.219 --	/usr/include/asm/unistd.h
 430.220 --   of the kernel.  But these symbols do not follow the SYS_* syntax
 430.221 --   so we have to redefine the `SYS_ify' macro here.  */
 430.222 --#undef SYS_ify
 430.223 --#ifdef __STDC__
 430.224 --# define SYS_ify(syscall_name)	__NR_O32_##syscall_name
 430.225 --#else
 430.226 --# define SYS_ify(syscall_name)	__NR_O32_/**/syscall_name
 430.227 --#endif
 430.228 --
 430.229 --#endif /* linux/mips/mips32/kern64/sysdep.h */
 430.230 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
 430.231 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h	2004-10-18 05:16:07 +0000
 430.232 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h	2005-02-23 18:10:11 +0000
 430.233 -@@ -28,9 +28,9 @@
 430.234 -    so we have to redefine the `SYS_ify' macro here.  */
 430.235 - #undef SYS_ify
 430.236 - #ifdef __STDC__
 430.237 --# define SYS_ify(syscall_name)	__NR_N32_##syscall_name
 430.238 -+# define SYS_ify(syscall_name)	__NR_##syscall_name
 430.239 - #else
 430.240 --# define SYS_ify(syscall_name)	__NR_N32_/**/syscall_name
 430.241 -+# define SYS_ify(syscall_name)	__NR_/**/syscall_name
 430.242 - #endif
 430.243 - 
 430.244 - #ifdef __ASSEMBLER__
 430.245 -diff -Naur glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
 430.246 ---- glibc-2.3.4.orig/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h	2004-10-18 05:16:08 +0000
 430.247 -+++ glibc-2.3.4/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h	2005-02-23 18:10:11 +0000
 430.248 -@@ -28,9 +28,9 @@
 430.249 -    so we have to redefine the `SYS_ify' macro here.  */
 430.250 - #undef SYS_ify
 430.251 - #ifdef __STDC__
 430.252 --# define SYS_ify(syscall_name)	__NR_N64_##syscall_name
 430.253 -+# define SYS_ify(syscall_name)	__NR_##syscall_name
 430.254 - #else
 430.255 --# define SYS_ify(syscall_name)	__NR_N64_/**/syscall_name
 430.256 -+# define SYS_ify(syscall_name)	__NR_/**/syscall_name
 430.257 - #endif
 430.258 - 
 430.259 - #ifdef __ASSEMBLER__
   431.1 --- a/patches/glibc/20040827/arm-ctl_bus_isa.patch	Tue Aug 14 19:32:22 2007 +0000
   431.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   431.3 @@ -1,51 +0,0 @@
   431.4 -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004.
   431.5 -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, 
   431.6 -Fixes following error:
   431.7 -
   431.8 -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys':
   431.9 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function)
  431.10 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once
  431.11 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.)
  431.12 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant
  431.13 -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]')
  431.14 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant
  431.15 -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]')
  431.16 -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1
  431.17 -
  431.18 -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA",  http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html
  431.19 -
  431.20 ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old	2003-02-20 14:22:24.000000000 -0800
  431.21 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c	2004-01-31 16:01:50.000000000 -0800
  431.22 -@@ -47,6 +47,12 @@
  431.23 - #include <asm/page.h>
  431.24 - #include <sys/sysctl.h>
  431.25 - 
  431.26 -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */
  431.27 -+#include <linux/version.h>
  431.28 -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23))
  431.29 -+#define CTL_BUS_ISA BUS_ISA	/* and hope it's not the one from linux/input.h */
  431.30 -+#endif
  431.31 -+
  431.32 - #define PATH_ARM_SYSTYPE	"/etc/arm_systype"
  431.33 - #define PATH_CPUINFO		"/proc/cpuinfo"
  431.34 - 
  431.35 -@@ -80,7 +86,7 @@
  431.36 -  * Initialize I/O system.  There are several ways to get the information
  431.37 -  * we need.  Each is tried in turn until one succeeds.
  431.38 -  *
  431.39 -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*).  This is the preferred method
  431.40 -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).  This is the preferred method
  431.41 -  *    but not all kernels support it.
  431.42 -  *
  431.43 -  * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE.
  431.44 -@@ -100,8 +106,8 @@
  431.45 - {
  431.46 -   char systype[256];
  431.47 -   int i, n;
  431.48 --  static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE };
  431.49 --  static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT };
  431.50 -+  static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
  431.51 -+  static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
  431.52 -   size_t len = sizeof(io.base);
  431.53 - 
  431.54 -   if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
   432.1 --- a/patches/glibc/20040827/glibc-2.3.2-sparc64-dl-machine.patch	Tue Aug 14 19:32:22 2007 +0000
   432.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   432.3 @@ -1,29 +0,0 @@
   432.4 -See http://gcc.gnu.org/PR15345
   432.5 -
   432.6 -Quick kludge by H.J.Lu
   432.7 -Works around gcc-3.4.0 error which shows up when building glibc-2.3.2 for sparc64:
   432.8 -
   432.9 -.../sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/libc.a(dl-reloc.o)(.text+0x4b4): In function `elf_machine_load_address.3':
  432.10 -: undefined reference to `_DYNAMIC'
  432.11 -collect2: ld returned 1 exit status
  432.12 -make[2]: *** [/home/dank/wk/crosstool-0.28-rc10/build/sparc64-unknown-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/elf/sln] Error 1
  432.13 -
  432.14 -
  432.15 ---- glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h.orig	Sat May  8 20:54:26 2004
  432.16 -+++ glibc-2.3.2/sysdeps/sparc/sparc64/dl-machine.h	Sat May  8 17:18:04 2004
  432.17 -@@ -65,6 +65,7 @@
  432.18 - }
  432.19 - 
  432.20 - /* Return the run-time load address of the shared object.  */
  432.21 -+#ifdef IS_IN_rtld
  432.22 - static inline Elf64_Addr
  432.23 - elf_machine_load_address (void)
  432.24 - {
  432.25 -@@ -84,6 +85,7 @@
  432.26 -      pc[3]*4 is l_addr + _GLOBAL_OFFSET_TABLE_ - (long)pc - 12  */
  432.27 -   return (Elf64_Addr) got - *got + (Elf32_Sword) ((pc[2] - pc[3]) * 4) - 4;
  432.28 - }
  432.29 -+#endif
  432.30 - 
  432.31 - /* We have 4 cases to handle.  And we code different code sequences
  432.32 -    for each one.  I love V9 code models...  */
   433.1 --- a/patches/glibc/20040827/glibc-2.3.3-cygwin.patch	Tue Aug 14 19:32:22 2007 +0000
   433.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   433.3 @@ -1,103 +0,0 @@
   433.4 -Fixes
   433.5 -elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
   433.6 -...
   433.7 -when building glibc-2.3.3 on cygwin
   433.8 -
   433.9 -Idea from
  433.10 -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
  433.11 -Basically, make glibc use .oST as suffix for 'object static'
  433.12 -instead of .oS, since cygwin has trouble distinguishing .os from .oS
  433.13 -(Original patch had .on, but .oST is more mnemonic for 'object static')
  433.14 -
  433.15 -glibc-linuxthreads-2.3.3 also requires a patch, see 
  433.16 -../glibc-linuxthreads-2.3.3/glibc-linuxthreads-2.3.3-cygwin.patch
  433.17 -
  433.18 -[ Rediffed against glibc-2.3.3 ]
  433.19 -
  433.20 -
  433.21 -diff -aur glibc-2.3.3/Makeconfig glibc-2.3.3-cygwin/Makeconfig
  433.22 ---- glibc-2.3.3/Makeconfig	2003-09-17 01:36:10.000000000 -0700
  433.23 -+++ glibc-2.3.3-cygwin/Makeconfig	2004-08-27 20:34:43.000000000 -0700
  433.24 -@@ -439,13 +439,13 @@
  433.25 - # run the linked programs.
  433.26 - link-libc = -Wl,-rpath-link=$(rpath-link) \
  433.27 - 	    $(common-objpfx)libc.so$(libc.so-version) \
  433.28 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  433.29 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  433.30 - # This is how to find at build-time things that will be installed there.
  433.31 - rpath-dirs = math elf dlfcn nss nis rt resolv crypt
  433.32 - else
  433.33 - ifneq (,$(filter aix aix%,$(config-os)))
  433.34 - link-libc = $(common-objpfx)libc.a \
  433.35 --	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
  433.36 -+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
  433.37 - rpath-dirs = math dlfcn nss nis rt resolv crypt
  433.38 - endif
  433.39 - endif
  433.40 -@@ -658,7 +658,7 @@
  433.41 - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
  433.42 - # to pass different flags for each flavor.
  433.43 - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
  433.44 --all-object-suffixes := .o .os .op .og .ob .oS
  433.45 -+all-object-suffixes := .o .os .op .og .ob .oST
  433.46 - object-suffixes :=
  433.47 - CPPFLAGS-.o = $(pic-default)
  433.48 - CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
  433.49 -@@ -714,14 +714,14 @@
  433.50 - 
  433.51 - ifeq (yes,$(build-shared))
  433.52 - # Build special library that contains the static-only routines for libc.
  433.53 --object-suffixes-for-libc += .oS
  433.54 -+object-suffixes-for-libc += .oST
  433.55 - 
  433.56 - # Must build the routines as PIC, though, because they can end up in (users')
  433.57 - # shared objects.  We don't want to use CFLAGS-os because users may, for
  433.58 - # example, make that processor-specific.
  433.59 --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
  433.60 --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  433.61 --libtype.oS = lib%_nonshared.a
  433.62 -+CFLAGS-.oST = $(CFLAGS-.o) $(pic-ccflag)
  433.63 -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
  433.64 -+libtype.oST = lib%_nonshared.a
  433.65 - endif
  433.66 - 
  433.67 - # The assembler can generate debug information too.
  433.68 -diff -aur glibc-2.3.3/Makerules glibc-2.3.3-cygwin/Makerules
  433.69 ---- glibc-2.3.3/Makerules	2003-10-31 16:35:57.000000000 -0800
  433.70 -+++ glibc-2.3.3-cygwin/Makerules	2004-08-27 20:33:47.000000000 -0700
  433.71 -@@ -414,7 +414,7 @@
  433.72 - # Bounded pointer thunks are only built for *.ob
  433.73 - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
  433.74 - 
  433.75 --elide-routines.oS += $(filter-out $(static-only-routines),\
  433.76 -+elide-routines.oST += $(filter-out $(static-only-routines),\
  433.77 - 				  $(routines) $(aux) $(sysdep_routines)) \
  433.78 - 		     $(elide-bp-thunks)
  433.79 - elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
  433.80 -@@ -934,7 +934,7 @@
  433.81 - install: $(inst_libdir)/libc.so
  433.82 - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
  433.83 - 			$(common-objpfx)libc.so$(libc.so-version) \
  433.84 --			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
  433.85 -+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
  433.86 - 						  $(libprefix)$(libc-name)) \
  433.87 - 			$(+force)
  433.88 - 	(echo '/* GNU ld script';\
  433.89 -@@ -942,7 +942,7 @@
  433.90 - 	 echo '   the static library, so try that secondarily.  */';\
  433.91 - 	 cat $<; \
  433.92 - 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
  433.93 --	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
  433.94 -+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
  433.95 - 	      ')' \
  433.96 - 	) > $@.new
  433.97 - 	mv -f $@.new $@
  433.98 -diff -aur glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
  433.99 ---- glibc-2.3.3/sysdeps/sparc/sparc32/sparcv9/Makefile	2002-08-29 03:41:15.000000000 -0700
 433.100 -+++ glibc-2.3.3-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-27 20:35:43.000000000 -0700
 433.101 -@@ -10,4 +10,4 @@
 433.102 - ASFLAGS-.op += -Wa,-Av9a
 433.103 - ASFLAGS-.og += -Wa,-Av9a
 433.104 - ASFLAGS-.ob += -Wa,-Av9a
 433.105 --ASFLAGS-.oS += -Wa,-Av9a
 433.106 -+ASFLAGS-.oST += -Wa,-Av9a
   434.1 --- a/patches/glibc/20040827/glibc-2.3.3-libeh-kludge.patch	Tue Aug 14 19:32:22 2007 +0000
   434.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   434.3 @@ -1,26 +0,0 @@
   434.4 -wget "http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-09&msgid=20030911190500.GE12344%40sunsite.ms.mff.cuni.cz"
   434.5 -aka http://sources.redhat.com/ml/libc-alpha/2003-09/msg00104.html
   434.6 -
   434.7 -This seems to fix the error
   434.8 -   gcc-3.4.1-glibc-2.3.3/lib/gcc/powerpc-7400-linux-gnu/3.4.1/../../../../powerpc-7400-linux-gnu/bin/ld: cannot find -lgcc_eh
   434.9 -   make[1]: *** [build/powerpc-7400-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/libc.so] Error 1
  434.10 -but I assume it will cause trouble with nptl, since it's so violent
  434.11 -
  434.12 -FIXME: once we figure out why this patch is wrong, fix it right :-)
  434.13 -
  434.14 -Rediffed against glibc-20040822
  434.15 -
  434.16 -
  434.17 ---- glibc-20040822/Makeconfig.orig	2004-08-04 20:34:28.000000000 -0700
  434.18 -+++ glibc-20040822/Makeconfig	2004-08-24 07:36:49.000000000 -0700
  434.19 -@@ -527,8 +527,8 @@
  434.20 -  libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) -Wl,--no-as-needed
  434.21 - endif
  434.22 - ifneq ($(have-cc-with-libunwind),yes)
  434.23 -- gnulib := -lgcc $(libgcc_eh)
  434.24 -- static-gnulib := -lgcc -lgcc_eh
  434.25 -+ gnulib := -lgcc 
  434.26 -+ static-gnulib := -lgcc 
  434.27 - else
  434.28 -  gnulib := -lgcc $(libgcc_eh) -lunwind
  434.29 -  static-gnulib := -lgcc -lgcc_eh -lunwind
   435.1 --- a/patches/glibc/20040827/glibc-configure-apple-as.patch	Tue Aug 14 19:32:22 2007 +0000
   435.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   435.3 @@ -1,23 +0,0 @@
   435.4 -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch
   435.5 -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html
   435.6 -
   435.7 -The following makes it possible to configure glibc-2.3.2 on Mac OS X,
   435.8 -where the assembler but doesn't understand the --version flag.
   435.9 -
  435.10 -Fixes the symptom
  435.11 -checking whether ld is GNU ld... no
  435.12 -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as
  435.13 -checking version of /usr/libexec/gcc/darwin/ppc/as... 
  435.14 -<PAUSES HERE AND JUST SITS THERE DOING NOTHING>
  435.15 -
  435.16 ---- glibc-2.3.2/configure~	Wed Feb 26 09:20:48 2003
  435.17 -+++ glibc-2.3.2/configure	Fri Feb 27 13:12:53 2004
  435.18 -@@ -3789,7 +3789,7 @@
  435.19 -   # Found it, now check the version.
  435.20 -   echo "$as_me:$LINENO: checking version of $AS" >&5
  435.21 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6
  435.22 --  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  435.23 -+  ac_prog_version=`$AS -v </dev/null 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
  435.24 -   case $ac_prog_version in
  435.25 -     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
  435.26 -     2.1[3-9]*)
   436.1 --- a/patches/glibc/20040827/glibc-fp-byteorder.patch	Tue Aug 14 19:32:22 2007 +0000
   436.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   436.3 @@ -1,203 +0,0 @@
   436.4 -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
   436.5 -Author: addsub@eyou.com
   436.6 -Target: ARM
   436.7 -
   436.8 -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c
   436.9 -and makes printf("%f", 1.0) work.
  436.10 -
  436.11 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html :
  436.12 - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point
  436.13 - is broken' on my big-endian hardfloat FPA ARM platform. ...
  436.14 - It's definitely needed for hardfloat.  So I'd think it's needed for
  436.15 - big-endian systems in any case, and for VFP on little-endian systems
  436.16 - too.  Someone would have to verify that though.
  436.17 -
  436.18 -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html
  436.19 - I just had a look at glibc-20040830, and [this patch] is still needed and useful
  436.20 - for this version.  glibc-20040830 out-of-the-box still contains the
  436.21 - following wrong assumptions:
  436.22 - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is
  436.23 -   not on vfp systems)
  436.24 - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they
  436.25 -   are not on big endian systems, neither on vfp systems)
  436.26 - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order
  436.27 -   (which they are not on big endian systems)
  436.28 - [This patch] seems the right solution for all of these issues.
  436.29 -
  436.30 -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html :
  436.31 - It's even needed for glibc CVS, AFAICS.
  436.32 - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h
  436.33 - (currently at version 1.4) is only needed for proper VFP operation.
  436.34 - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk
  436.35 - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed
  436.36 - for proper operation of *any* FP model on big endian ARM.
  436.37 -
  436.38 -See also discussion in followups to
  436.39 -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html)
  436.40 -
  436.41 -Message-ID: <276985760.37584@eyou.com>
  436.42 -Received: from unknown (HELO eyou.com) (172.16.2.2)
  436.43 - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800
  436.44 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800
  436.45 -Date: 17 Feb 2004 10:42:38 +0800
  436.46 -Message-ID: <20040217104238.8237.qmail@eyou.com>
  436.47 -From: "add" <addsub@eyou.com>
  436.48 -To: dank@kegel.com
  436.49 -Reply-To: "add" <addsub@eyou.com>
  436.50 -Subject: Re:&nbsp;&nbsp;&nbsp;problem&nbsp;while&nbsp;building&nbsp;arm&nbsp;vfp&nbsp;softfloat&nbsp;gcc&nbsp;`
  436.51 -
  436.52 -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat
  436.53 -toolchain can printf("%f\n",1.0). So you may have a try of this
  436.54 -
  436.55 -
  436.56 -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h
  436.57 ---- glibc.old/sysdeps/arm/bits/endian.h	1999-04-12 11:59:13.000000000 -0400
  436.58 -+++ glibc.new/sysdeps/arm/bits/endian.h	2004-02-12 09:15:13.000000000 -0500
  436.59 -@@ -9,4 +9,9 @@
  436.60 - #else
  436.61 - #define __BYTE_ORDER __LITTLE_ENDIAN
  436.62 - #endif
  436.63 -+
  436.64 -+#ifdef __VFP_FP__
  436.65 -+#define __FLOAT_WORD_ORDER __BYTE_ORDER
  436.66 -+#else
  436.67 - #define __FLOAT_WORD_ORDER __BIG_ENDIAN
  436.68 -+#endif
  436.69 -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h
  436.70 ---- glibc.old/sysdeps/arm/gmp-mparam.h	2001-07-07 15:21:19.000000000 -0400
  436.71 -+++ glibc.new/sysdeps/arm/gmp-mparam.h	2004-02-12 09:15:13.000000000 -0500
  436.72 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */
  436.73 - #define BITS_PER_SHORTINT 16
  436.74 - #define BITS_PER_CHAR 8
  436.75 - 
  436.76 --#define IEEE_DOUBLE_BIG_ENDIAN 0
  436.77 --#define IEEE_DOUBLE_MIXED_ENDIAN 1
  436.78 -+#if defined(__ARMEB__)
  436.79 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  436.80 -+# define IEEE_DOUBLE_BIG_ENDIAN 1
  436.81 -+#elif defined(__VFP_FP__)
  436.82 -+# define IEEE_DOUBLE_MIXED_ENDIAN 0
  436.83 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  436.84 -+#else
  436.85 -+# define IEEE_DOUBLE_BIG_ENDIAN 0
  436.86 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1
  436.87 -+#endif
  436.88 -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h
  436.89 ---- glibc.old/sysdeps/arm/ieee754.h	2001-07-07 15:21:19.000000000 -0400
  436.90 -+++ glibc.new/sysdeps/arm/ieee754.h	1969-12-31 19:00:00.000000000 -0500
  436.91 -@@ -1,115 +0,0 @@
  436.92 --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc.
  436.93 --   This file is part of the GNU C Library.
  436.94 --
  436.95 --   The GNU C Library is free software; you can redistribute it and/or
  436.96 --   modify it under the terms of the GNU Lesser General Public
  436.97 --   License as published by the Free Software Foundation; either
  436.98 --   version 2.1 of the License, or (at your option) any later version.
  436.99 --
 436.100 --   The GNU C Library is distributed in the hope that it will be useful,
 436.101 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
 436.102 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 436.103 --   Lesser General Public License for more details.
 436.104 --
 436.105 --   You should have received a copy of the GNU Lesser General Public
 436.106 --   License along with the GNU C Library; if not, write to the Free
 436.107 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 436.108 --   02111-1307 USA.  */
 436.109 --
 436.110 --#ifndef _IEEE754_H
 436.111 --
 436.112 --#define _IEEE754_H 1
 436.113 --#include <features.h>
 436.114 --
 436.115 --#include <endian.h>
 436.116 --
 436.117 --__BEGIN_DECLS
 436.118 --
 436.119 --union ieee754_float
 436.120 --  {
 436.121 --    float f;
 436.122 --
 436.123 --    /* This is the IEEE 754 single-precision format.  */
 436.124 --    struct
 436.125 --      {
 436.126 --	unsigned int mantissa:23;
 436.127 --	unsigned int exponent:8;
 436.128 --	unsigned int negative:1;
 436.129 --      } ieee;
 436.130 --
 436.131 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 436.132 --    struct
 436.133 --      {
 436.134 --	unsigned int mantissa:22;
 436.135 --	unsigned int quiet_nan:1;
 436.136 --	unsigned int exponent:8;
 436.137 --	unsigned int negative:1;
 436.138 --      } ieee_nan;
 436.139 --  };
 436.140 --
 436.141 --#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
 436.142 --
 436.143 --
 436.144 --union ieee754_double
 436.145 --  {
 436.146 --    double d;
 436.147 --
 436.148 --    /* This is the IEEE 754 double-precision format.  */
 436.149 --    struct
 436.150 --      {
 436.151 --	unsigned int mantissa0:20;
 436.152 --	unsigned int exponent:11;
 436.153 --	unsigned int negative:1;
 436.154 --	unsigned int mantissa1:32;
 436.155 --      } ieee;
 436.156 --
 436.157 --    /* This format makes it easier to see if a NaN is a signalling NaN.  */
 436.158 --    struct
 436.159 --      {
 436.160 --	unsigned int mantissa0:19;
 436.161 --	unsigned int quiet_nan:1;
 436.162 --	unsigned int exponent:11;
 436.163 --	unsigned int negative:1;
 436.164 --	unsigned int mantissa1:32;
 436.165 --      } ieee_nan;
 436.166 --  };
 436.167 --
 436.168 --#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
 436.169 --
 436.170 --
 436.171 --/* The following two structures are correct for `new' floating point systems but
 436.172 --   wrong for the old FPPC.  The only solution seems to be to avoid their use on
 436.173 --   old hardware.  */
 436.174 --
 436.175 --union ieee854_long_double
 436.176 --  {
 436.177 --    long double d;
 436.178 --
 436.179 --    /* This is the IEEE 854 double-extended-precision format.  */
 436.180 --    struct
 436.181 --      {
 436.182 --	unsigned int exponent:15;
 436.183 --	unsigned int empty:16;
 436.184 --	unsigned int negative:1;
 436.185 --	unsigned int mantissa1:32;
 436.186 --	unsigned int mantissa0:32;
 436.187 --      } ieee;
 436.188 --
 436.189 --    /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
 436.190 --    struct
 436.191 --      {
 436.192 --	unsigned int exponent:15;
 436.193 --	unsigned int empty:16;
 436.194 --	unsigned int negative:1;
 436.195 --	unsigned int mantissa1:32;
 436.196 --	unsigned int mantissa0:30;
 436.197 --	unsigned int quiet_nan:1;
 436.198 --	unsigned int one:1;
 436.199 --      } ieee_nan;
 436.200 --  };
 436.201 --
 436.202 --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
 436.203 --
 436.204 --__END_DECLS
 436.205 --
 436.206 --#endif /* ieee754.h */
   437.1 --- a/patches/glibc/20050502/make-install-lib-all.patch	Tue Aug 14 19:32:22 2007 +0000
   437.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   437.3 @@ -1,24 +0,0 @@
   437.4 -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
   437.5 -Rule to install all needed libraries, not just the ones installed by install-lib,
   437.6 -yet not install programs.
   437.7 -Needed because we can't use the main install target, as we can't build programs before
   437.8 -we have the final gcc installed; linking fails because libeh.a is not present,
   437.9 -and glibc insists on linking programs with that library.
  437.10 -
  437.11 -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
  437.12 ---- glibc-2.3.4.orig/Makerules	2004-12-15 20:52:39.000000000 +0200
  437.13 -+++ glibc-2.3.4/Makerules	2005-02-19 15:16:31.415125176 +0200
  437.14 -@@ -844,6 +844,13 @@
  437.15 - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
  437.16 - 			     $(inst_libdir)/$(patsubst %,$(libtype$o),\
  437.17 - 						     $(libprefix)$(libc-name)))
  437.18 -+
  437.19 -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
  437.20 -+		$(inst_slibdir)/libc-$(version).so \
  437.21 -+		$(inst_libdir)/libc.so \
  437.22 -+		$(inst_libdir)/libc.a \
  437.23 -+		install-lib
  437.24 -+
  437.25 - install: $(installed-libcs)
  437.26 - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
  437.27 - 	$(make-target-directory)
   438.1 --- a/patches/glibc/compat-2.1/rh62-09-glibc-compat-2.1.3-security2.patch	Tue Aug 14 19:32:22 2007 +0000
   438.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   438.3 @@ -1,66 +0,0 @@
   438.4 -2002-07-05  Tomohiro Kato <tomop@teamgedoh.net>
   438.5 -
   438.6 -	* glibc-compat/nss_dns/dns-network.c (getanswer_r): Reduce
   438.7 -	linebuflen in parallel to bumping up the buffer pointer.
   438.8 -	* glibc-compat/nss_dns/dns-host.c (getanswer_r): Likewise.
   438.9 -	Compare n with linebuflen instead of buflen.
  438.10 -
  438.11 -2002-07-02  Andreas Schwab  <schwab@suse.de>
  438.12 -
  438.13 -	* resolv/nss_dns/dns-network.c (getanswer_r): Reduce linebuflen
  438.14 -	in parallel to bumping up the buffer pointer.
  438.15 -
  438.16 ---- libc/glibc-compat/nss_dns/dns-network.c.jj	Wed Jan 10 11:58:20 2001
  438.17 -+++ libc/glibc-compat/nss_dns/dns-network.c	Tue Jul  9 10:31:15 2002
  438.18 -@@ -283,7 +283,9 @@ getanswer_r (const querybuf *answer, int
  438.19 - 	    }
  438.20 - 	  cp += n;
  438.21 - 	  *alias_pointer++ = bp;
  438.22 --	  bp += strlen (bp) + 1;
  438.23 -+	  n = strlen (bp) + 1;
  438.24 -+	  bp += n;
  438.25 -+	  linebuflen -= n;
  438.26 - 	  result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
  438.27 - 	  ++have_answer;
  438.28 - 	}
  438.29 ---- libc/glibc-compat/nss_dns/dns-host.c.jj	Wed Jan 10 11:58:20 2001
  438.30 -+++ libc/glibc-compat/nss_dns/dns-host.c	Tue Jul  9 10:36:41 2002
  438.31 -@@ -424,7 +424,7 @@ getanswer_r (const querybuf *answer, int
  438.32 - 	  linebuflen -= n;
  438.33 - 	  /* Get canonical name.  */
  438.34 - 	  n = strlen (tbuf) + 1;	/* For the \0.  */
  438.35 --	  if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
  438.36 -+	  if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
  438.37 - 	    {
  438.38 - 	      ++had_error;
  438.39 - 	      continue;
  438.40 -@@ -447,7 +447,7 @@ getanswer_r (const querybuf *answer, int
  438.41 - 	  cp += n;
  438.42 - 	  /* Get canonical name. */
  438.43 - 	  n = strlen (tbuf) + 1;   /* For the \0.  */
  438.44 --	  if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
  438.45 -+	  if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
  438.46 - 	    {
  438.47 - 	      ++had_error;
  438.48 - 	      continue;
  438.49 -@@ -542,6 +542,7 @@ getanswer_r (const querybuf *answer, int
  438.50 - 	      linebuflen -= nn;
  438.51 - 	    }
  438.52 - 
  438.53 -+	  linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align));
  438.54 - 	  bp += sizeof (align) - ((u_long) bp % sizeof (align));
  438.55 - 
  438.56 - 	  if (n >= linebuflen)
  438.57 -#--- libc/resolv/nss_dns/dns-network.c.jj	Mon Jul  9 14:59:24 2001
  438.58 -#+++ libc/resolv/nss_dns/dns-network.c	Tue Jul  9 10:30:31 2002
  438.59 -#@@ -328,7 +328,9 @@ getanswer_r (const querybuf *answer, int
  438.60 -# 	    }
  438.61 -# 	  cp += n;
  438.62 -# 	  *alias_pointer++ = bp;
  438.63 -#-	  bp += strlen (bp) + 1;
  438.64 -#+	  n = strlen (bp) + 1;
  438.65 -#+	  bp += n;
  438.66 -#+	  linebuflen -= n;
  438.67 -# 	  result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
  438.68 -# 	  ++have_answer;
  438.69 -# 	}
   439.1 --- a/patches/glibc/compat-2.1/rh62-12-glibc-compat-2.1.3-maxpacket.patch	Tue Aug 14 19:32:22 2007 +0000
   439.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   439.3 @@ -1,512 +0,0 @@
   439.4 -#--- libc/resolv/nss_dns/dns-host.c.jj	Tue Sep 14 03:05:08 1999
   439.5 -#+++ libc/resolv/nss_dns/dns-host.c	Thu Oct 10 13:07:33 2002
   439.6 -#@@ -129,9 +129,10 @@ _nss_dns_gethostbyname2_r (const char *n
   439.7 -# 			   char *buffer, size_t buflen, int *errnop,
   439.8 -# 			   int *h_errnop)
   439.9 -# {
  439.10 -#-  querybuf host_buffer;
  439.11 -#+  querybuf *host_buffer;
  439.12 -#   int size, type, n;
  439.13 -#   const char *cp;
  439.14 -#+  enum nss_status status;
  439.15 -# 
  439.16 -#   switch (af) {
  439.17 -#   case AF_INET:
  439.18 -#@@ -159,16 +160,25 @@ _nss_dns_gethostbyname2_r (const char *n
  439.19 -#   if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
  439.20 -#     name = cp;
  439.21 -# 
  439.22 -#-  n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
  439.23 -#+  host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
  439.24 -#+  if (host_buffer == NULL) {
  439.25 -#+    *errnop = ENOMEM;
  439.26 -#+    return NSS_STATUS_UNAVAIL;
  439.27 -#+  }
  439.28 -#+
  439.29 -#+  n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
  439.30 -#   if (n < 0)
  439.31 -#     {
  439.32 -#       *h_errnop = h_errno;
  439.33 -#       *errnop = *h_errnop == TRY_AGAIN ? EAGAIN : ENOENT;
  439.34 -#+      free (host_buffer);
  439.35 -#       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
  439.36 -#     }
  439.37 -# 
  439.38 -#-  return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
  439.39 -#-		      errnop, h_errnop);
  439.40 -#+  status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
  439.41 -#+			errnop, h_errnop);
  439.42 -#+  free (host_buffer);
  439.43 -#+  return status; 
  439.44 -# }
  439.45 -# 
  439.46 -# 
  439.47 -#@@ -205,7 +215,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
  439.48 -#     char *h_addr_ptrs[MAX_NR_ADDRS + 1];
  439.49 -#     char linebuffer[0];
  439.50 -#   } *host_data = (struct host_data *) buffer;
  439.51 -#-  querybuf host_buffer;
  439.52 -#+  querybuf *host_buffer;
  439.53 -#   char qbuf[MAXDNAME+1], *qp;
  439.54 -#   size_t size;
  439.55 -#   int n, status;
  439.56 -#@@ -257,17 +267,25 @@ _nss_dns_gethostbyaddr_r (const char *ad
  439.57 -#       /* Cannot happen.  */
  439.58 -#     }
  439.59 -# 
  439.60 -#-  n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
  439.61 -#-		 sizeof host_buffer);
  439.62 -#+  host_buffer = (querybuf *) malloc (sizeof (*host_buffer));
  439.63 -#+  if (host_buffer == NULL) {
  439.64 -#+    *errnop = ENOMEM;
  439.65 -#+    return NSS_STATUS_UNAVAIL;
  439.66 -#+  }
  439.67 -#+
  439.68 -#+  n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
  439.69 -#+		 sizeof (host_buffer->buf));
  439.70 -#   if (n < 0)
  439.71 -#     {
  439.72 -#       *h_errnop = h_errno;
  439.73 -#       *errnop = errno;
  439.74 -#+      free (host_buffer);
  439.75 -#       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
  439.76 -#     }
  439.77 -# 
  439.78 -#-  status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
  439.79 -#+  status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
  439.80 -# 			errnop, h_errnop);
  439.81 -#+  free (host_buffer);
  439.82 -#   if (status != NSS_STATUS_SUCCESS)
  439.83 -#     {
  439.84 -#       *h_errnop = h_errno;
  439.85 -#--- libc/resolv/nss_dns/dns-network.c.jj	Wed Jun 30 12:01:14 1999
  439.86 -#+++ libc/resolv/nss_dns/dns-network.c	Thu Oct 10 13:09:49 2002
  439.87 -#@@ -113,24 +113,36 @@ _nss_dns_getnetbyname_r (const char *nam
  439.88 -# 			 char *buffer, size_t buflen, int *errnop)
  439.89 -# {
  439.90 -#   /* Return entry for network with NAME.  */
  439.91 -#-  querybuf net_buffer;
  439.92 -#+  querybuf *net_buffer;
  439.93 -#   int anslen;
  439.94 -#   char *qbuf;
  439.95 -#+  enum nss_status status;
  439.96 -# 
  439.97 -#   qbuf = strdupa (name);
  439.98 -#-  anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
  439.99 -#-		       sizeof (querybuf));
 439.100 -#+
 439.101 -#+  net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
 439.102 -#+  if (net_buffer == NULL)
 439.103 -#+    {
 439.104 -#+      *errnop = ENOMEM;
 439.105 -#+      return NSS_STATUS_UNAVAIL;
 439.106 -#+    }
 439.107 -#+
 439.108 -#+  anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
 439.109 -#+		       sizeof (net_buffer->buf));
 439.110 -#   if (anslen < 0)
 439.111 -#     {
 439.112 -#       /* Nothing found.  */
 439.113 -#       *errnop = errno;
 439.114 -#+      free (net_buffer);
 439.115 -#       return (errno == ECONNREFUSED
 439.116 -# 	      || errno == EPFNOSUPPORT
 439.117 -# 	      || errno == EAFNOSUPPORT)
 439.118 -# 	? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.119 -#     }
 439.120 -# 
 439.121 -#-  return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
 439.122 -#+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
 439.123 -#+  free (net_buffer);
 439.124 -#+  return status;
 439.125 -# }
 439.126 -# 
 439.127 -# 
 439.128 -#@@ -140,7 +152,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
 439.129 -# {
 439.130 -#   /* Return entry for network with NAME.  */
 439.131 -#   enum nss_status status;
 439.132 -#-  querybuf net_buffer;
 439.133 -#+  querybuf *net_buffer;
 439.134 -#   unsigned int net_bytes[4];
 439.135 -#   char qbuf[MAXDNAME];
 439.136 -#   int cnt, anslen;
 439.137 -#@@ -176,19 +188,28 @@ _nss_dns_getnetbyaddr_r (long net, int t
 439.138 -#       break;
 439.139 -#     }
 439.140 -# 
 439.141 -#-  anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
 439.142 -#-		      sizeof (querybuf));
 439.143 -#+  net_buffer = (querybuf *) malloc (sizeof (*net_buffer));
 439.144 -#+  if (net_buffer == NULL)
 439.145 -#+    {
 439.146 -#+      *errnop = ENOMEM;
 439.147 -#+      return NSS_STATUS_UNAVAIL;
 439.148 -#+    }
 439.149 -#+
 439.150 -#+  anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
 439.151 -#+		      sizeof (net_buffer->buf));
 439.152 -#   if (anslen < 0)
 439.153 -#     {
 439.154 -#       /* Nothing found.  */
 439.155 -#       *errnop = errno;
 439.156 -#+      free (net_buffer);
 439.157 -#       return (errno == ECONNREFUSED
 439.158 -# 	      || errno == EPFNOSUPPORT
 439.159 -# 	      || errno == EAFNOSUPPORT)
 439.160 -# 	? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.161 -#     }
 439.162 -# 
 439.163 -#-  status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
 439.164 -#+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
 439.165 -#+  free (net_buffer);
 439.166 -#   if (status == NSS_STATUS_SUCCESS)
 439.167 -#     {
 439.168 -#       /* Strip trailing zeros.  */
 439.169 -#--- libc/resolv/res_query.c.jj	Wed Jun 30 12:01:06 1999
 439.170 -#+++ libc/resolv/res_query.c	Thu Oct 10 13:01:12 2002
 439.171 -#@@ -106,7 +106,7 @@ res_query(name, class, type, answer, ans
 439.172 -# 	u_char *answer;		/* buffer to put answer */
 439.173 -# 	int anslen;		/* size of answer buffer */
 439.174 -# {
 439.175 -#-	u_char buf[MAXPACKET];
 439.176 -#+	u_char *buf;
 439.177 -# 	register HEADER *hp = (HEADER *) answer;
 439.178 -# 	int n;
 439.179 -# 
 439.180 -#@@ -121,17 +121,25 @@ res_query(name, class, type, answer, ans
 439.181 -# 		printf(";; res_query(%s, %d, %d)\n", name, class, type);
 439.182 -# #endif
 439.183 -# 
 439.184 -#+	buf = malloc (MAXPACKET);
 439.185 -#+	if (buf == NULL) {
 439.186 -#+		__set_h_errno (NETDB_INTERNAL);
 439.187 -#+		return -1;
 439.188 -#+	}
 439.189 -#+
 439.190 -# 	n = res_mkquery(QUERY, name, class, type, NULL, 0, NULL,
 439.191 -#-			buf, sizeof(buf));
 439.192 -#+			buf, MAXPACKET);
 439.193 -# 	if (n <= 0) {
 439.194 -# #ifdef DEBUG
 439.195 -# 		if (_res.options & RES_DEBUG)
 439.196 -# 			printf(";; res_query: mkquery failed\n");
 439.197 -# #endif
 439.198 -# 		__set_h_errno (NO_RECOVERY);
 439.199 -#+		free (buf);
 439.200 -# 		return (n);
 439.201 -# 	}
 439.202 -# 	n = res_send(buf, n, answer, anslen);
 439.203 -#+	free (buf);
 439.204 -# 	if (n < 0) {
 439.205 -# #ifdef DEBUG
 439.206 -# 		if (_res.options & RES_DEBUG)
 439.207 -#--- libc/resolv/gethnamaddr.c.jj	Tue Dec  7 11:50:36 1999
 439.208 -#+++ libc/resolv/gethnamaddr.c	Thu Oct 10 15:05:50 2002
 439.209 -#@@ -512,10 +512,11 @@ gethostbyname2(name, af)
 439.210 -# 	const char *name;
 439.211 -# 	int af;
 439.212 -# {
 439.213 -#-	querybuf buf;
 439.214 -#+	querybuf *buf;
 439.215 -# 	register const char *cp;
 439.216 -# 	char *bp;
 439.217 -# 	int n, size, type, len;
 439.218 -#+	struct hostent *ret;
 439.219 -# 	extern struct hostent *_gethtbyname2();
 439.220 -# 
 439.221 -# 	if ((_res.options & RES_INIT) == 0 && res_init() == -1) {
 439.222 -#@@ -617,13 +618,22 @@ gethostbyname2(name, af)
 439.223 -# 				break;
 439.224 -# 		}
 439.225 -# 
 439.226 -#-	if ((n = res_search(name, C_IN, type, buf.buf, sizeof(buf.buf))) < 0) {
 439.227 -#+	buf = (querybuf *) malloc (sizeof (*buf));
 439.228 -#+	if (buf == NULL) {
 439.229 -#+		__set_h_errno (NETDB_INTERNAL);
 439.230 -#+		return NULL;
 439.231 -#+	}
 439.232 -#+
 439.233 -#+	if ((n = res_search(name, C_IN, type, buf->buf, sizeof(buf->buf))) < 0) {
 439.234 -#+		free (buf);
 439.235 -# 		dprintf("res_search failed (%d)\n", n);
 439.236 -# 		if (errno == ECONNREFUSED)
 439.237 -# 			return (_gethtbyname2(name, af));
 439.238 -# 		return (NULL);
 439.239 -# 	}
 439.240 -#-	return (getanswer(&buf, n, name, type));
 439.241 -#+	ret = getanswer(buf, n, name, type);
 439.242 -#+	free (buf);
 439.243 -#+	return ret;
 439.244 -# }
 439.245 -# 
 439.246 -# struct hostent *
 439.247 -#@@ -636,7 +646,7 @@ gethostbyaddr(addr, len, af)
 439.248 -# 	static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff };
 439.249 -# 	static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 };
 439.250 -# 	int n, size;
 439.251 -#-	querybuf buf;
 439.252 -#+	querybuf *buf;
 439.253 -# 	register struct hostent *hp;
 439.254 -# 	char qbuf[MAXDNAME+1], *qp;
 439.255 -# #ifdef SUNSECURITY
 439.256 -#@@ -697,14 +707,24 @@ gethostbyaddr(addr, len, af)
 439.257 -# 	default:
 439.258 -# 		abort();
 439.259 -# 	}
 439.260 -#-	n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf);
 439.261 -#+
 439.262 -#+	buf = (querybuf *) malloc (sizeof (*buf));
 439.263 -#+	if (buf == NULL) {
 439.264 -#+		__set_h_errno (NETDB_INTERNAL);
 439.265 -#+		return NULL;
 439.266 -#+	}
 439.267 -#+
 439.268 -#+	n = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof buf->buf);
 439.269 -# 	if (n < 0) {
 439.270 -#+		free (buf);
 439.271 -# 		dprintf("res_query failed (%d)\n", n);
 439.272 -# 		if (errno == ECONNREFUSED)
 439.273 -# 			return (_gethtbyaddr(addr, len, af));
 439.274 -# 		return (NULL);
 439.275 -# 	}
 439.276 -#-	if (!(hp = getanswer(&buf, n, qbuf, T_PTR)))
 439.277 -#+	hp = getanswer(buf, n, qbuf, T_PTR);
 439.278 -#+	free (buf);
 439.279 -#+	if (!hp)
 439.280 -# 		return (NULL);	/* h_errno was set by getanswer() */
 439.281 -# #ifdef SUNSECURITY
 439.282 -# 	if (af == AF_INET) {
 439.283 -#--- libc/resolv/getnetnamadr.c.jj	Wed Jun 30 12:00:50 1999
 439.284 -#+++ libc/resolv/getnetnamadr.c	Thu Oct 10 13:14:01 2002
 439.285 -#@@ -210,7 +210,7 @@ getnetbyaddr(net, net_type)
 439.286 -# {
 439.287 -# 	unsigned int netbr[4];
 439.288 -# 	int nn, anslen;
 439.289 -#-	querybuf buf;
 439.290 -#+	querybuf *buf;
 439.291 -# 	char qbuf[MAXDNAME];
 439.292 -# 	u_int32_t net2;		/* Changed from unsigned long --roland */
 439.293 -# 	struct netent *net_entry;
 439.294 -#@@ -236,8 +236,15 @@ getnetbyaddr(net, net_type)
 439.295 -# 		    netbr[1], netbr[0]);
 439.296 -# 		break;
 439.297 -# 	}
 439.298 -#-	anslen = res_query(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
 439.299 -#+
 439.300 -#+	buf = (querybuf *) malloc (sizeof (*buf));
 439.301 -#+	if (buf == NULL) {
 439.302 -#+		return NULL;
 439.303 -#+	}
 439.304 -#+
 439.305 -#+	anslen = res_query(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
 439.306 -# 	if (anslen < 0) {
 439.307 -#+		free (buf);
 439.308 -# #ifdef DEBUG
 439.309 -# 		if (_res.options & RES_DEBUG)
 439.310 -# 			printf("res_query failed\n");
 439.311 -#@@ -246,7 +253,8 @@ getnetbyaddr(net, net_type)
 439.312 -# 			return (_getnetbyaddr(net, net_type));
 439.313 -# 		return (NULL);
 439.314 -# 	}
 439.315 -#-	net_entry = getnetanswer(&buf, anslen, BYADDR);
 439.316 -#+	net_entry = getnetanswer(buf, anslen, BYADDR);
 439.317 -#+	free (buf);
 439.318 -# 	if (net_entry) {
 439.319 -# 		unsigned u_net = net;	/* maybe net should be unsigned ? */
 439.320 -# 
 439.321 -#@@ -264,7 +272,7 @@ getnetbyname(net)
 439.322 -# 	register const char *net;
 439.323 -# {
 439.324 -# 	int anslen;
 439.325 -#-	querybuf buf;
 439.326 -#+	querybuf *buf;
 439.327 -# 	char qbuf[MAXDNAME];
 439.328 -# 	struct netent *net_entry;
 439.329 -# 
 439.330 -#@@ -273,8 +281,13 @@ getnetbyname(net)
 439.331 -# 		return (NULL);
 439.332 -# 	}
 439.333 -# 	strcpy(&qbuf[0], net);
 439.334 -#-	anslen = res_search(qbuf, C_IN, T_PTR, (u_char *)&buf, sizeof(buf));
 439.335 -#+	buf = (querybuf *) malloc (sizeof (*buf));
 439.336 -#+	if (buf == NULL) {
 439.337 -#+		return NULL;
 439.338 -#+	}
 439.339 -#+	anslen = res_search(qbuf, C_IN, T_PTR, buf->buf, sizeof(buf->buf));
 439.340 -# 	if (anslen < 0) {
 439.341 -#+		free (buf);
 439.342 -# #ifdef DEBUG
 439.343 -# 		if (_res.options & RES_DEBUG)
 439.344 -# 			printf("res_query failed\n");
 439.345 -#@@ -283,7 +296,8 @@ getnetbyname(net)
 439.346 -# 			return (_getnetbyname(net));
 439.347 -# 		return (_getnetbyname(net));
 439.348 -# 	}
 439.349 -#-	net_entry = getnetanswer(&buf, anslen, BYNAME);
 439.350 -#+	net_entry = getnetanswer(buf, anslen, BYNAME);
 439.351 -#+	free (buf);
 439.352 -# 	if (net_entry)
 439.353 -# 		return (net_entry);
 439.354 -# 	return (_getnetbyname(net));
 439.355 ---- libc/glibc-compat/nss_dns/dns-host.c.jj	Mon Jan  3 20:07:08 2000
 439.356 -+++ libc/glibc-compat/nss_dns/dns-host.c	Thu Oct 10 12:46:24 2002
 439.357 -@@ -126,9 +126,10 @@ enum nss_status
 439.358 - _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result,
 439.359 - 			   char *buffer, size_t buflen, int *h_errnop)
 439.360 - {
 439.361 --  querybuf host_buffer;
 439.362 -+  querybuf *host_buffer;
 439.363 -   int size, type, n;
 439.364 -   const char *cp;
 439.365 -+  enum nss_status status;
 439.366 - 
 439.367 -   switch (af) {
 439.368 -   case AF_INET:
 439.369 -@@ -156,15 +157,22 @@ _nss_dns_gethostbyname2_r (const char *n
 439.370 -   if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL)
 439.371 -     name = cp;
 439.372 - 
 439.373 --  n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf));
 439.374 -+  host_buffer = (querybuf *) malloc (sizeof (querybuf));
 439.375 -+  if (host_buffer == NULL)
 439.376 -+    return NSS_STATUS_UNAVAIL;
 439.377 -+
 439.378 -+  n = res_search (name, C_IN, type, host_buffer->buf, sizeof (host_buffer->buf));
 439.379 -   if (n < 0)
 439.380 -     {
 439.381 -       *h_errnop = h_errno;
 439.382 -+      free (host_buffer);
 439.383 -       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.384 -     }
 439.385 - 
 439.386 --  return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen,
 439.387 --		      h_errnop);
 439.388 -+  status = getanswer_r (host_buffer, n, name, type, result, buffer, buflen,
 439.389 -+			h_errnop);
 439.390 -+  free (host_buffer);
 439.391 -+  return status;
 439.392 - }
 439.393 - 
 439.394 - 
 439.395 -@@ -200,7 +208,7 @@ _nss_dns_gethostbyaddr_r (const char *ad
 439.396 -     char *h_addr_ptrs[MAX_NR_ADDRS + 1];
 439.397 -     char linebuffer[0];
 439.398 -   } *host_data = (struct host_data *) buffer;
 439.399 --  querybuf host_buffer;
 439.400 -+  querybuf *host_buffer;
 439.401 -   char qbuf[MAXDNAME+1], *qp;
 439.402 -   int size, n, status;
 439.403 - 
 439.404 -@@ -251,16 +259,22 @@ _nss_dns_gethostbyaddr_r (const char *ad
 439.405 -       /* Cannot happen.  */
 439.406 -     }
 439.407 - 
 439.408 --  n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf,
 439.409 --		 sizeof host_buffer);
 439.410 -+  host_buffer = (querybuf *) malloc (sizeof (querybuf));
 439.411 -+  if (host_buffer == NULL)
 439.412 -+    return NSS_STATUS_UNAVAIL;
 439.413 -+
 439.414 -+  n = res_query (qbuf, C_IN, T_PTR, host_buffer->buf,
 439.415 -+		 sizeof (host_buffer->buf));
 439.416 -   if (n < 0)
 439.417 -     {
 439.418 -       *h_errnop = h_errno;
 439.419 -+      free (host_buffer);
 439.420 -       return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.421 -     }
 439.422 - 
 439.423 --  status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
 439.424 -+  status = getanswer_r (host_buffer, n, qbuf, T_PTR, result, buffer, buflen,
 439.425 - 			h_errnop);
 439.426 -+  free (host_buffer);
 439.427 -   if (status != NSS_STATUS_SUCCESS)
 439.428 -     {
 439.429 -       *h_errnop = h_errno;
 439.430 ---- libc/glibc-compat/nss_dns/dns-network.c.jj	Mon Jan  3 20:07:08 2000
 439.431 -+++ libc/glibc-compat/nss_dns/dns-network.c	Thu Oct 10 12:46:24 2002
 439.432 -@@ -107,21 +107,32 @@ _nss_dns_getnetbyname_r (const char *nam
 439.433 - 			 char *buffer, size_t buflen)
 439.434 - {
 439.435 -   /* Return entry for network with NAME.  */
 439.436 --  querybuf net_buffer;
 439.437 -+  querybuf *net_buffer;
 439.438 -   int anslen;
 439.439 -   char *qbuf;
 439.440 -+  enum nss_status status;
 439.441 - 
 439.442 -   qbuf = strdupa (name);
 439.443 --  anslen = res_search (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
 439.444 --		       sizeof (querybuf));
 439.445 -+
 439.446 -+  net_buffer = (querybuf *) malloc (sizeof (querybuf));
 439.447 -+  if (net_buffer == NULL)
 439.448 -+    return NSS_STATUS_UNAVAIL;
 439.449 -+
 439.450 -+  anslen = res_search (qbuf, C_IN, T_PTR, net_buffer->buf,
 439.451 -+		       sizeof (net_buffer->buf));
 439.452 -   if (anslen < 0)
 439.453 --    /* Nothing found.  */
 439.454 --    return (errno == ECONNREFUSED
 439.455 --	    || errno == EPFNOSUPPORT
 439.456 --	    || errno == EAFNOSUPPORT)
 439.457 --      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.458 -+    {
 439.459 -+      free (net_buffer);
 439.460 -+      /* Nothing found.  */
 439.461 -+      return (errno == ECONNREFUSED
 439.462 -+	      || errno == EPFNOSUPPORT
 439.463 -+	      || errno == EAFNOSUPPORT)
 439.464 -+	      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.465 -+    }
 439.466 - 
 439.467 --  return getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYNAME);
 439.468 -+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYNAME);
 439.469 -+  free (net_buffer);
 439.470 -+  return status;
 439.471 - }
 439.472 - 
 439.473 - 
 439.474 -@@ -131,7 +142,7 @@ _nss_dns_getnetbyaddr_r (long net, int t
 439.475 - {
 439.476 -   /* Return entry for network with NAME.  */
 439.477 -   enum nss_status status;
 439.478 --  querybuf net_buffer;
 439.479 -+  querybuf *net_buffer;
 439.480 -   unsigned int net_bytes[4];
 439.481 -   char qbuf[MAXDNAME];
 439.482 -   int cnt, anslen;
 439.483 -@@ -167,16 +178,24 @@ _nss_dns_getnetbyaddr_r (long net, int t
 439.484 -       break;
 439.485 -     }
 439.486 - 
 439.487 --  anslen = res_query (qbuf, C_IN, T_PTR, (u_char *) &net_buffer,
 439.488 --		      sizeof (querybuf));
 439.489 -+  net_buffer = (querybuf *) malloc (sizeof (querybuf));
 439.490 -+  if (net_buffer == NULL)
 439.491 -+    return NSS_STATUS_UNAVAIL;
 439.492 -+
 439.493 -+  anslen = res_query (qbuf, C_IN, T_PTR, net_buffer->buf,
 439.494 -+		      sizeof (net_buffer->buf));
 439.495 -   if (anslen < 0)
 439.496 --    /* Nothing found.  */
 439.497 --    return (errno == ECONNREFUSED
 439.498 --	    || errno == EPFNOSUPPORT
 439.499 --	    || errno == EAFNOSUPPORT)
 439.500 --      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.501 -+    {
 439.502 -+      free (net_buffer);
 439.503 -+      /* Nothing found.  */
 439.504 -+      return (errno == ECONNREFUSED
 439.505 -+	      || errno == EPFNOSUPPORT
 439.506 -+	      || errno == EAFNOSUPPORT)
 439.507 -+	      ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
 439.508 -+    }
 439.509 - 
 439.510 --  status = getanswer_r (&net_buffer, anslen, result, buffer, buflen, BYADDR);
 439.511 -+  status = getanswer_r (net_buffer, anslen, result, buffer, buflen, BYADDR);
 439.512 -+  free (net_buffer);
 439.513 -   if (status == NSS_STATUS_SUCCESS)
 439.514 -     {
 439.515 -       /* Strip trailing zeros.  */