Merge.
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Oct 29 00:10:06 2009 +0100 (2009-10-29)
changeset 16177d70bcf940a9
parent 1602 1ba79f2126df
parent 1616 1fda13e5d961
child 1618 7f52e1cca71e
Merge.
patches/binutils/2.14/100-sh-relocs.patch
patches/binutils/2.14/110-i386-no-divide-comment.patch
patches/binutils/2.14/270-i386-no-divide-comment.patch
patches/binutils/2.15/100-uclibc.patch
patches/binutils/2.15/110-uclibc-conf.patch
patches/binutils/2.15/120-cflags.patch
patches/binutils/2.15/130-mips-ELF_MAXPAGESIZE-4K.patch
patches/binutils/2.15/140-arm-textrel.patch
patches/binutils/2.15/150-bfd-hash-tweak.patch
patches/binutils/2.15/160-allow-gcc-4.0.patch
patches/binutils/2.15/170-psignal.patch
patches/binutils/2.15/180-solaris-qsort.patch
patches/binutils/2.15/190-vmx.patch
patches/binutils/2.15/200-arm-undef-imm.patch
patches/binutils/2.15/210-skip-comments.patch
patches/binutils/2.15/220-cross-gprof.patch
patches/binutils/2.15/230-gccpr15247-fix.patch
patches/binutils/2.15/240-ld-callahan.patch
patches/binutils/2.15/250-ld-stabs-tweak.patch
patches/binutils/2.15/260-s390-invalid-insn-format.patch
patches/binutils/2.18.50.0.4/100-arm-uclibcgnueabi.patch
patches/binutils/2.18.50.0.4/110-ld-makefile-path.patch
patches/binutils/2.18.50.0.4/120-check-ldrunpath-length.patch
patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch
patches/binutils/2.18.50.0.6/100-arm-uclibcgnueabi.patch
patches/binutils/2.18.50.0.6/110-ld-makefile-path.patch
patches/binutils/2.18.50.0.6/120-check-ldrunpath-length.patch
patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch
patches/binutils/2.18.50.0.7/100-arm-uclibcgnueabi.patch
patches/binutils/2.18.50.0.7/110-ld-makefile-path.patch
patches/binutils/2.18.50.0.7/120-check-ldrunpath-length.patch
patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch
patches/binutils/2.18.50.0.8/100-arm-uclibcgnueabi.patch
patches/binutils/2.18.50.0.8/110-ld-makefile-path.patch
patches/binutils/2.18.50.0.8/120-check-ldrunpath-length.patch
patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch
patches/binutils/2.18.50.0.9/100-arm-uclibcgnueabi.patch
patches/binutils/2.18.50.0.9/110-ld-makefile-path.patch
patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch
patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch
patches/gcc/2.95.3/100-arm-linux.patch
patches/gcc/2.95.3/110-backport-config.gcc-1.4.patch
patches/gcc/2.95.3/120-backport-config.gcc-1.92.patch
patches/gcc/2.95.3/130-config.sub.patch
patches/gcc/2.95.3/140-deque-leak-fix.patch
patches/gcc/2.95.3/150-cygwin-020611.patch
patches/gcc/2.95.3/160-trap-posix.patch
patches/gcc/2.95.3/170-pr3106.patch
patches/gcc/2.95.3/180-threads_snafu.patch
patches/gcc/3.2.3/100-config.sub.patch
patches/gcc/3.2.3/110-ppc405erratum77.patch
patches/gcc/3.2.3/120-sh-linux-1.patch
patches/gcc/3.2.3/130-g++.exp.patch
patches/gcc/3.2.3/140-libffi-1.patch
patches/gcc/3.2.3/150-ppc-asm-spec.patch
patches/gcc/3.2.3/160-trap-posix.patch
patches/gcc/3.2.3/170-libstdc++-v3-dg.exp.patch
patches/gcc/3.2.3/README-mips
patches/gcc/3.2.3/README-sh
patches/gcc/3.2.3/gcc-sh-linux.spec
patches/gcc/3.3.6/100-fix-fixincl.patch
patches/gcc/3.3.6/110-arm-bigendian.patch
patches/gcc/3.3.6/120-arm-pr22528.patch
patches/gcc/4.0.0/100-fix-fixincl.patch
patches/gcc/4.0.0/110-arm-bigendian.patch
patches/gcc/4.0.0/120-pr20815-fix.patch
patches/gcc/4.0.0/130-pr20973-fix.patch
patches/gcc/4.0.0/140-pr21173-fix.patch
patches/gcc/4.0.0/150-pr21951.patch
patches/gcc/4.0.1/100-fix-fixincl.patch
patches/gcc/4.0.1/110-pr20815-fix.patch
patches/gcc/4.0.1/120-pr21951-fix2.patch
patches/gcc/4.0.2/100-fix-fixincl.patch
patches/gcc/4.0.2/110-pr20815-fix.patch
patches/gcc/4.0.2/120-pr21623-workaround.patch
patches/gcc/4.0.3/100-uclibc-conf.patch
patches/gcc/4.0.3/110-uclibc-locale.patch
patches/gcc/4.0.3/120-libstdc++-pic.patch
patches/gcc/4.0.3/130-missing-execinfo_h.patch
patches/gcc/4.0.3/140-c99-snprintf.patch
patches/gcc/4.0.3/150-c99-complex-ugly-hack.patch
patches/gcc/4.0.3/160-index_macro.patch
patches/gcc/4.0.3/170-sdk-libstdc++-includes.patch
patches/gcc/4.0.3/180-arm-bigendian.patch
patches/gcc/4.1.0/100-fix-fixincl.patch
patches/gcc/4.1.1/100-uclibc-conf.patch
patches/gcc/4.1.1/110-arm-eabi.patch
patches/gcc/4.1.1/120-uclibc-locale.patch
patches/gcc/4.1.1/130-libstdc++-pic.patch
patches/gcc/4.1.1/140-missing-execinfo_h.patch
patches/gcc/4.1.1/150-c99-snprintf.patch
patches/gcc/4.1.1/160-c99-complex-ugly-hack.patch
patches/gcc/4.1.1/170-index_macro.patch
patches/gcc/4.1.1/180-sh-pr24836.patch
patches/gcc/4.1.1/190-arm-bigendian.patch
patches/gcc/4.1.1/200-softfloat-fix.patch
patches/gdb/6.4/100-uclibc-conf.patch
patches/gdb/6.4/110-uclibc-readline-conf.patch
patches/gdb/6.4/120-thread-timeout.patch
patches/gdb/6.4/130-fix-compile-flag-mismatch.patch
patches/gdb/6.4/400-mips-coredump.patch-2.4.23-29
patches/gdb/6.5/100-uclibc-conf.patch
patches/gdb/6.5/110-uclibc-readline-conf.patch
patches/gdb/6.5/120-thread-timeout.patch
patches/gdb/6.5/130-fix-compile-flag-mismatch.patch
patches/gdb/6.5/400-mips-coredump.patch-2.4.23-29
patches/gdb/6.6/100-uclibc-conf.patch
patches/gdb/6.6/110-fix-compile-flag-mismatch.patch
patches/gdb/6.7.1/100-security-errata-20050610.patch
patches/gdb/6.7.1/110-hppa-offsets.patch
patches/gdb/6.7.1/120-deleted-children.patch
patches/gdb/6.7.1/130-dwarf-stack-overflow.patch
patches/gdb/6.7/100-security-errata-20050610.patch
patches/gdb/6.7/110-hppa-offsets.patch
patches/gdb/6.7/120-dwarf-stack-overflow.patch
patches/uClibc/0.9.28.1/100-string-functions.patch
patches/uClibc/0.9.28.1/110-install_dev.patch
patches/uClibc/0.9.28.1/120-no_LFS-no_readahead.patch
patches/uClibc/0.9.28.1/130-time-locale.patch
patches/uClibc/0.9.28.1/140-ctype.patch
patches/uClibc/0.9.28.1/150-custom-ISA.patch
patches/uClibc/0.9.28.1/160-mips-asm.h.patch
patches/uClibc/0.9.28.2/100-string-functions.patch
patches/uClibc/0.9.28.2/110-install_dev.patch
patches/uClibc/0.9.28.2/120-no_LFS-no_readahead.patch
patches/uClibc/0.9.28.2/130-ctype.patch
patches/uClibc/0.9.28.2/140-custom-ISA.patch
patches/uClibc/0.9.28.2/150-mips-asm.h.patch
patches/uClibc/0.9.28/100-string-functions.patch
patches/uClibc/0.9.28/110-install_dev.patch
patches/uClibc/0.9.28/120-no_LFS-no_readahead.patch
patches/uClibc/0.9.28/130-ctype.patch
patches/uClibc/0.9.28/140-fix_includes.sh.patch
patches/uClibc/0.9.28/150-custom-ISA.patch
patches/uClibc/0.9.28/160-mips-asm.h.patch
patches/uClibc/20080801/100-ifaddrs.patch
patches/uClibc/20080801/200-mips-typeof.patch
patches/uClibc/20080801/300-fix-asm.patch
     1.1 --- a/config/binutils/binutils.in	Wed Oct 28 12:03:38 2009 +0100
     1.2 +++ b/config/binutils/binutils.in	Thu Oct 29 00:10:06 2009 +0100
     1.3 @@ -2,29 +2,15 @@
     1.4  
     1.5  comment "GNU binutils"
     1.6  
     1.7 -config BINUTILS_VERSION
     1.8 -    string
     1.9 -
    1.10  choice
    1.11      bool
    1.12      prompt "binutils version"
    1.13  # Don't remove next line
    1.14  # CT_INSERT_VERSION_BELOW
    1.15  
    1.16 -config BINUTILS_V_2_19_51_0_2
    1.17 +config BINUTILS_V_2_20
    1.18      bool
    1.19 -    prompt "2.19.51.0.2 (EXPERIMENTAL)"
    1.20 -    depends on EXPERIMENTAL
    1.21 -
    1.22 -config BINUTILS_V_2_19_51_0_1
    1.23 -    bool
    1.24 -    prompt "2.19.51.0.1 (EXPERIMENTAL)"
    1.25 -    depends on EXPERIMENTAL
    1.26 -
    1.27 -config BINUTILS_V_2_19_50_0_1
    1.28 -    bool
    1.29 -    prompt "2.19.50.0.1 (EXPERIMENTAL)"
    1.30 -    depends on EXPERIMENTAL
    1.31 +    prompt "2.20"
    1.32  
    1.33  config BINUTILS_V_2_19_1
    1.34      bool
    1.35 @@ -34,71 +20,18 @@
    1.36      bool
    1.37      prompt "2.19"
    1.38  
    1.39 -config BINUTILS_V_2_18_93
    1.40 -    bool
    1.41 -    prompt "2.18.93 (EXPERIMENTAL)"
    1.42 -    depends on EXPERIMENTAL
    1.43 -
    1.44 -config BINUTILS_V_2_18_92
    1.45 -    bool
    1.46 -    prompt "2.18.92 (EXPERIMENTAL)"
    1.47 -    depends on EXPERIMENTAL
    1.48 -
    1.49 -config BINUTILS_V_2_18_91
    1.50 -    bool
    1.51 -    prompt "2.18.91 (EXPERIMENTAL)"
    1.52 -    depends on EXPERIMENTAL
    1.53 -
    1.54 -config BINUTILS_V_2_18_90
    1.55 -    bool
    1.56 -    prompt "2.18.90 (EXPERIMENTAL)"
    1.57 -    depends on EXPERIMENTAL
    1.58 -
    1.59 -config BINUTILS_V_2_18_50_0_9
    1.60 -    bool
    1.61 -    prompt "2.18.50.0.9 (EXPERIMENTAL)"
    1.62 -    depends on EXPERIMENTAL
    1.63 -
    1.64 -config BINUTILS_V_2_18_50_0_8
    1.65 -    bool
    1.66 -    prompt "2.18.50.0.8 (EXPERIMENTAL)"
    1.67 -    depends on EXPERIMENTAL
    1.68 -
    1.69 -config BINUTILS_V_2_18_50_0_7
    1.70 -    bool
    1.71 -    prompt "2.18.50.0.7 (EXPERIMENTAL)"
    1.72 -    depends on EXPERIMENTAL
    1.73 -
    1.74 -config BINUTILS_V_2_18_50_0_6
    1.75 -    bool
    1.76 -    prompt "2.18.50.0.6 (EXPERIMENTAL)"
    1.77 -    depends on EXPERIMENTAL
    1.78 -
    1.79 -config BINUTILS_V_2_18_50_0_4
    1.80 -    bool
    1.81 -    prompt "2.18.50.0.4 (EXPERIMENTAL)"
    1.82 -    depends on EXPERIMENTAL
    1.83 -
    1.84  config BINUTILS_V_2_18
    1.85      bool
    1.86      prompt "2.18"
    1.87  
    1.88  config BINUTILS_V_2_17
    1.89      bool
    1.90 -    prompt "2.17"
    1.91 +    prompt "2.17 (OBSOLETE)"
    1.92 +    depends on OBSOLETE
    1.93  
    1.94  config BINUTILS_V_2_16_1
    1.95      bool
    1.96 -    prompt "2.16.1"
    1.97 -
    1.98 -config BINUTILS_V_2_15
    1.99 -    bool
   1.100 -    prompt "2.15 (OBSOLETE)"
   1.101 -    depends on OBSOLETE
   1.102 -
   1.103 -config BINUTILS_V_2_14
   1.104 -    bool
   1.105 -    prompt "2.14 (OBSOLETE)"
   1.106 +    prompt "2.16.1 (OBSOLETE)"
   1.107      depends on OBSOLETE
   1.108  
   1.109  endchoice
   1.110 @@ -107,25 +40,12 @@
   1.111      string
   1.112  # Don't remove next line
   1.113  # CT_INSERT_VERSION_STRING_BELOW
   1.114 -    default "2.19.51.0.2" if BINUTILS_V_2_19_51_0_2
   1.115 -    default "2.19.51.0.1" if BINUTILS_V_2_19_51_0_1
   1.116 -    default "2.19.50.0.1" if BINUTILS_V_2_19_50_0_1
   1.117 +    default "2.20" if BINUTILS_V_2_20
   1.118      default "2.19.1" if BINUTILS_V_2_19_1
   1.119      default "2.19" if BINUTILS_V_2_19
   1.120 -    default "2.18.93" if BINUTILS_V_2_18_93
   1.121 -    default "2.18.92" if BINUTILS_V_2_18_92
   1.122 -    default "2.18.91" if BINUTILS_V_2_18_91
   1.123 -    default "2.18.90" if BINUTILS_V_2_18_90
   1.124 -    default "2.18.50.0.9" if BINUTILS_V_2_18_50_0_9
   1.125 -    default "2.18.50.0.8" if BINUTILS_V_2_18_50_0_8
   1.126 -    default "2.18.50.0.7" if BINUTILS_V_2_18_50_0_7
   1.127 -    default "2.18.50.0.6" if BINUTILS_V_2_18_50_0_6
   1.128 -    default "2.18.50.0.4" if BINUTILS_V_2_18_50_0_4
   1.129      default "2.18" if BINUTILS_V_2_18
   1.130      default "2.17" if BINUTILS_V_2_17
   1.131      default "2.16.1" if BINUTILS_V_2_16_1
   1.132 -    default "2.15" if BINUTILS_V_2_15
   1.133 -    default "2.14" if BINUTILS_V_2_14
   1.134  
   1.135  config BINUTILS_EXTRA_CONFIG
   1.136      string
     2.1 --- a/config/binutils/elf2flt.in	Wed Oct 28 12:03:38 2009 +0100
     2.2 +++ b/config/binutils/elf2flt.in	Thu Oct 29 00:10:06 2009 +0100
     2.3 @@ -4,9 +4,6 @@
     2.4  
     2.5  comment "elf2flt"
     2.6  
     2.7 -config ELF2FLT_VERSION
     2.8 -    string
     2.9 -
    2.10  choice
    2.11      bool
    2.12      prompt "elf2flt version"
     3.1 --- a/config/cc/gcc.in	Wed Oct 28 12:03:38 2009 +0100
     3.2 +++ b/config/cc/gcc.in	Thu Oct 29 00:10:06 2009 +0100
     3.3 @@ -19,6 +19,13 @@
     3.4  # Don't remove next line
     3.5  # CT_INSERT_VERSION_BELOW
     3.6  
     3.7 +config CC_V_4_4_2
     3.8 +    bool
     3.9 +    prompt "4.4.2 (EXPERIMENTAL)"
    3.10 +    depends on EXPERIMENTAL
    3.11 +    select CC_GCC_4_3_or_later
    3.12 +    select CC_GCC_4_4_or_later
    3.13 +
    3.14  config CC_V_4_4_1
    3.15      bool
    3.16      prompt "4.4.1 (EXPERIMENTAL)"
    3.17 @@ -65,7 +72,8 @@
    3.18  
    3.19  config CC_V_4_2_3
    3.20      bool
    3.21 -    prompt "4.2.3"
    3.22 +    prompt "4.2.3 (OBSOLETE)"
    3.23 +    depends on OBSOLETE
    3.24  
    3.25  config CC_V_4_2_2
    3.26      bool
    3.27 @@ -73,48 +81,22 @@
    3.28  
    3.29  config CC_V_4_2_1
    3.30      bool
    3.31 -    prompt "4.2.1"
    3.32 +    prompt "4.2.1 (OBSOLETE)"
    3.33 +    depends on OBSOLETE
    3.34  
    3.35  config CC_V_4_2_0
    3.36      bool
    3.37 -    prompt "4.2.0"
    3.38 +    prompt "4.2.0 (OBSOLETE)"
    3.39 +    depends on OBSOLETE
    3.40  
    3.41  config CC_V_4_1_2
    3.42      bool
    3.43 -    prompt "4.1.2"
    3.44 -
    3.45 -config CC_V_4_1_1
    3.46 -    bool
    3.47 -    prompt "4.1.1 (OBSOLETE)"
    3.48 -    depends on OBSOLETE
    3.49 -
    3.50 -config CC_V_4_1_0
    3.51 -    bool
    3.52 -    prompt "4.1.0 (OBSOLETE)"
    3.53 +    prompt "4.1.2 (OBSOLETE)"
    3.54      depends on OBSOLETE
    3.55  
    3.56  config CC_V_4_0_4
    3.57      bool
    3.58 -    prompt "4.0.4"
    3.59 -
    3.60 -config CC_V_4_0_3
    3.61 -    bool
    3.62 -    prompt "4.0.3 (OBSOLETE)"
    3.63 -    depends on OBSOLETE
    3.64 -
    3.65 -config CC_V_4_0_2
    3.66 -    bool
    3.67 -    prompt "4.0.2 (OBSOLETE)"
    3.68 -    depends on OBSOLETE
    3.69 -
    3.70 -config CC_V_4_0_1
    3.71 -    bool
    3.72 -    prompt "4.0.1 (OBSOLETE)"
    3.73 -    depends on OBSOLETE
    3.74 -
    3.75 -config CC_V_4_0_0
    3.76 -    bool
    3.77 -    prompt "4.0.0 (OBSOLETE)"
    3.78 +    prompt "4.0.4 (OBSOLETE)"
    3.79      depends on OBSOLETE
    3.80  
    3.81  config CC_V_3_4_6
    3.82 @@ -122,16 +104,6 @@
    3.83      prompt "3.4.6 (OBSOLETE)"
    3.84      depends on OBSOLETE
    3.85  
    3.86 -config CC_V_3_3_6
    3.87 -    bool
    3.88 -    prompt "3.3.6 (OBSOLETE)"
    3.89 -    depends on OBSOLETE
    3.90 -
    3.91 -config CC_V_3_2_3
    3.92 -    bool
    3.93 -    prompt "3.2.3 (OBSOLETE)"
    3.94 -    depends on OBSOLETE
    3.95 -
    3.96  endchoice
    3.97  
    3.98  config CC_GCC_4_3_or_later
    3.99 @@ -148,6 +120,7 @@
   3.100      string
   3.101  # Don't remove next line
   3.102  # CT_INSERT_VERSION_STRING_BELOW
   3.103 +    default "4.4.2" if CC_V_4_4_2
   3.104      default "4.4.1" if CC_V_4_4_1
   3.105      default "4.4.0" if CC_V_4_4_0
   3.106      default "4.3.4" if CC_V_4_3_4
   3.107 @@ -161,16 +134,8 @@
   3.108      default "4.2.1" if CC_V_4_2_1
   3.109      default "4.2.0" if CC_V_4_2_0
   3.110      default "4.1.2" if CC_V_4_1_2
   3.111 -    default "4.1.1" if CC_V_4_1_1
   3.112 -    default "4.1.0" if CC_V_4_1_0
   3.113      default "4.0.4" if CC_V_4_0_4
   3.114 -    default "4.0.3" if CC_V_4_0_3
   3.115 -    default "4.0.2" if CC_V_4_0_2
   3.116 -    default "4.0.1" if CC_V_4_0_1
   3.117 -    default "4.0.0" if CC_V_4_0_0
   3.118      default "3.4.6" if CC_V_3_4_6
   3.119 -    default "3.3.6" if CC_V_3_3_6
   3.120 -    default "3.2.3" if CC_V_3_2_3
   3.121  
   3.122  config CC_CXA_ATEXIT
   3.123      bool
     4.1 --- a/config/companion_libs/cloog.in	Wed Oct 28 12:03:38 2009 +0100
     4.2 +++ b/config/companion_libs/cloog.in	Thu Oct 29 00:10:06 2009 +0100
     4.3 @@ -16,15 +16,18 @@
     4.4  
     4.5  config CLOOG_V_0_15_5
     4.6      bool
     4.7 -    prompt "0.15.5"
     4.8 +    prompt "0.15.5 (OBSOLETE)"
     4.9 +    depends on OBSOLETE
    4.10  
    4.11  config CLOOG_V_0_15_4
    4.12      bool
    4.13 -    prompt "0.15.4"
    4.14 +    prompt "0.15.4 (OBSOLETE)"
    4.15 +    depends on OBSOLETE
    4.16  
    4.17  config CLOOG_V_0_15_3
    4.18      bool
    4.19 -    prompt "0.15.3"
    4.20 +    prompt "0.15.3 (OBSOLETE)"
    4.21 +    depends on OBSOLETE
    4.22  
    4.23  endchoice
    4.24  
     5.1 --- a/config/companion_libs/gmp.in	Wed Oct 28 12:03:38 2009 +0100
     5.2 +++ b/config/companion_libs/gmp.in	Thu Oct 29 00:10:06 2009 +0100
     5.3 @@ -16,11 +16,13 @@
     5.4  
     5.5  config GMP_V_4_2_4
     5.6      bool
     5.7 -    prompt "4.2.4"
     5.8 +    prompt "4.2.4 (OBSOLETE)"
     5.9 +    depends on OBSOLETE
    5.10  
    5.11  config GMP_V_4_2_2
    5.12      bool
    5.13 -    prompt "4.2.2"
    5.14 +    prompt "4.2.2 (OBSOLETE)"
    5.15 +    depends on OBSOLETE
    5.16  
    5.17  endchoice
    5.18  
     6.1 --- a/config/companion_libs/mpc.in	Wed Oct 28 12:03:38 2009 +0100
     6.2 +++ b/config/companion_libs/mpc.in	Thu Oct 29 00:10:06 2009 +0100
     6.3 @@ -12,7 +12,8 @@
     6.4  
     6.5  config MPC_V_0_6
     6.6      bool
     6.7 -    prompt "0.6"
     6.8 +    prompt "0.6 (OBSOLETE)"
     6.9 +    depends on OBSOLETE
    6.10  
    6.11  endchoice
    6.12  
     7.1 --- a/config/companion_libs/mpfr.in	Wed Oct 28 12:03:38 2009 +0100
     7.2 +++ b/config/companion_libs/mpfr.in	Thu Oct 29 00:10:06 2009 +0100
     7.3 @@ -16,11 +16,13 @@
     7.4  
     7.5  config MPFR_V_2_3_2
     7.6      bool
     7.7 -    prompt "2.3.2"
     7.8 +    prompt "2.3.2 (OBSOLETE)"
     7.9 +    depends on OBSOLETE
    7.10  
    7.11  config MPFR_V_2_3_1
    7.12      bool
    7.13 -    prompt "2.3.1"
    7.14 +    prompt "2.3.1 (OBSOLETE)"
    7.15 +    depends on OBSOLETE
    7.16  
    7.17  endchoice
    7.18  
     8.1 --- a/config/debug/dmalloc.in	Wed Oct 28 12:03:38 2009 +0100
     8.2 +++ b/config/debug/dmalloc.in	Thu Oct 29 00:10:06 2009 +0100
     8.3 @@ -13,11 +13,6 @@
     8.4      bool
     8.5      prompt "5.5.2"
     8.6  
     8.7 -config DMALLOC_V_5_4_3
     8.8 -    bool
     8.9 -    prompt "5.4.3 (OBSOLETE)"
    8.10 -    depends on OBSOLETE
    8.11 -
    8.12  endchoice
    8.13  
    8.14  config DMALLOC_VERSION
    8.15 @@ -25,4 +20,3 @@
    8.16  # Don't remove next line
    8.17  # CT_INSERT_VERSION_STRING_BELOW
    8.18      default "5.5.2" if DMALLOC_V_5_5_2
    8.19 -    default "5.4.3" if DMALLOC_V_5_4_3
     9.1 --- a/config/debug/duma.in	Wed Oct 28 12:03:38 2009 +0100
     9.2 +++ b/config/debug/duma.in	Thu Oct 29 00:10:06 2009 +0100
     9.3 @@ -29,19 +29,23 @@
     9.4  
     9.5  config DUMA_V_2_5_14
     9.6      bool
     9.7 -    prompt "2_5_14"
     9.8 +    prompt "2_5_14 (OBSOLETE)"
     9.9 +    depends on OBSOLETE
    9.10  
    9.11  config DUMA_V_2_5_12
    9.12      bool
    9.13 -    prompt "2_5_12"
    9.14 +    prompt "2_5_12 (OBSOLETE)"
    9.15 +    depends on OBSOLETE
    9.16  
    9.17  config DUMA_V_2_5_8
    9.18      bool
    9.19 -    prompt "2_5_8"
    9.20 +    prompt "2_5_8 (OBSOLETE)"
    9.21 +    depends on OBSOLETE
    9.22  
    9.23  config DUMA_V_2_5_1
    9.24      bool
    9.25 -    prompt "2_5_1"
    9.26 +    prompt "2_5_1 (OBSOLETE)"
    9.27 +    depends on OBSOLETE
    9.28  
    9.29  endchoice
    9.30  
    10.1 --- a/config/debug/gdb.in	Wed Oct 28 12:03:38 2009 +0100
    10.2 +++ b/config/debug/gdb.in	Thu Oct 29 00:10:06 2009 +0100
    10.3 @@ -99,34 +99,15 @@
    10.4  # Don't remove next line
    10.5  # CT_INSERT_VERSION_BELOW
    10.6  
    10.7 +config GDB_V_7_0
    10.8 +    bool
    10.9 +    prompt "7.0 (EXPERIMENTAL)"
   10.10 +    depends on EXPERIMENTAL
   10.11 +
   10.12  config GDB_V_6_8
   10.13      bool
   10.14      prompt "6.8"
   10.15  
   10.16 -config GDB_V_6_7_1
   10.17 -    bool
   10.18 -    prompt "6.7.1 (EXPERIMENTAL)"
   10.19 -    depends on EXPERIMENTAL
   10.20 -
   10.21 -config GDB_V_6_7
   10.22 -    bool
   10.23 -    prompt "6.7 (EXPERIMENTAL)"
   10.24 -    depends on EXPERIMENTAL
   10.25 -
   10.26 -config GDB_V_6_6
   10.27 -    bool
   10.28 -    prompt "6.6"
   10.29 -
   10.30 -config GDB_V_6_5
   10.31 -    bool
   10.32 -    prompt "6.5 (OBSOLETE)"
   10.33 -    depends on OBSOLETE
   10.34 -
   10.35 -config GDB_V_6_4
   10.36 -    bool
   10.37 -    prompt "6.4 (OBSOLETE)"
   10.38 -    depends on OBSOLETE
   10.39 -
   10.40  config GDB_V_snapshot
   10.41      bool
   10.42      prompt "snapshot (EXPERIMENTAL)"
   10.43 @@ -139,12 +120,8 @@
   10.44      string
   10.45  # Don't remove next line
   10.46  # CT_INSERT_VERSION_STRING_BELOW
   10.47 +    default "7.0" if GDB_V_7_0
   10.48      default "6.8" if GDB_V_6_8
   10.49 -    default "6.7.1" if GDB_V_6_7_1
   10.50 -    default "6.7" if GDB_V_6_7
   10.51 -    default "6.6" if GDB_V_6_6
   10.52 -    default "6.5" if GDB_V_6_5
   10.53 -    default "6.4" if GDB_V_6_4
   10.54      default "snapshot" if GDB_V_snapshot
   10.55  
   10.56  if GDB_NATIVE
   10.57 @@ -161,7 +138,8 @@
   10.58  
   10.59  config NCURSES_V_5_6
   10.60      bool
   10.61 -    prompt "5.6"
   10.62 +    prompt "5.6 (OBSOLETE)"
   10.63 +    depends on OBSOLETE
   10.64  
   10.65  endchoice
   10.66  
    11.1 --- a/config/debug/ltrace.in	Wed Oct 28 12:03:38 2009 +0100
    11.2 +++ b/config/debug/ltrace.in	Thu Oct 29 00:10:06 2009 +0100
    11.3 @@ -25,11 +25,13 @@
    11.4  
    11.5  config LTRACE_V_0_5
    11.6      bool
    11.7 -    prompt "0.5"
    11.8 +    prompt "0.5 (OBSOLETE)"
    11.9 +    depends on OBSOLETE
   11.10  
   11.11  config LTRACE_V_0_4
   11.12      bool
   11.13 -    prompt "0.4"
   11.14 +    prompt "0.4 (OBSOLETE)"
   11.15 +    depends on OBSOLETE
   11.16  
   11.17  endchoice
   11.18  
    12.1 --- a/config/debug/strace.in	Wed Oct 28 12:03:38 2009 +0100
    12.2 +++ b/config/debug/strace.in	Thu Oct 29 00:10:06 2009 +0100
    12.3 @@ -8,31 +8,28 @@
    12.4  # Don't remove next line
    12.5  # CT_INSERT_VERSION_BELOW
    12.6  
    12.7 +config STRACE_V_4_5_19
    12.8 +    bool
    12.9 +    prompt "4.5.19 (EXPERIMENTAL)"
   12.10 +    depends on EXPERIMENTAL
   12.11 +
   12.12  config STRACE_V_4_5_18
   12.13      bool
   12.14 -    prompt "4.5.18 (EXPERIMENTAL)"
   12.15 -    depends on EXPERIMENTAL
   12.16 +    prompt "4.5.18"
   12.17  
   12.18  config STRACE_V_4_5_17
   12.19      bool
   12.20 -    prompt "4.5.17"
   12.21 +    prompt "4.5.17 (OBSOLETE)"
   12.22 +    depends on OBSOLETE
   12.23  
   12.24  config STRACE_V_4_5_16
   12.25      bool
   12.26 -    prompt "4.5.16"
   12.27 +    prompt "4.5.16 (OBSOLETE)"
   12.28 +    depends on OBSOLETE
   12.29  
   12.30  config STRACE_V_4_5_15
   12.31      bool
   12.32 -    prompt "4.5.15"
   12.33 -
   12.34 -config STRACE_V_4_5_14
   12.35 -    bool
   12.36 -    prompt "4.5.14 (OBSOLETE)"
   12.37 -    depends on OBSOLETE
   12.38 -
   12.39 -config STRACE_V_4_5
   12.40 -    bool
   12.41 -    prompt "4.5 (OBSOLETE)"
   12.42 +    prompt "4.5.15 (OBSOLETE)"
   12.43      depends on OBSOLETE
   12.44  
   12.45  endchoice
   12.46 @@ -41,9 +38,8 @@
   12.47      string
   12.48  # Don't remove next line
   12.49  # CT_INSERT_VERSION_STRING_BELOW
   12.50 +    default "4.5.19" if STRACE_V_4_5_19
   12.51      default "4.5.18" if STRACE_V_4_5_18
   12.52      default "4.5.17" if STRACE_V_4_5_17
   12.53      default "4.5.16" if STRACE_V_4_5_16
   12.54      default "4.5.15" if STRACE_V_4_5_15
   12.55 -    default "4.5.14" if STRACE_V_4_5_14
   12.56 -    default "4.5" if STRACE_V_4_5
    13.1 --- a/config/kernel/linux.in	Wed Oct 28 12:03:38 2009 +0100
    13.2 +++ b/config/kernel/linux.in	Thu Oct 29 00:10:06 2009 +0100
    13.3 @@ -34,6 +34,22 @@
    13.4  # Don't remove next line
    13.5  # CT_INSERT_VERSION_BELOW
    13.6  
    13.7 +config KERNEL_V_2_6_31_5
    13.8 +    bool
    13.9 +    prompt "2.6.31.5"
   13.10 +
   13.11 +config KERNEL_V_2_6_31_4
   13.12 +    bool
   13.13 +    prompt "2.6.31.4"
   13.14 +
   13.15 +config KERNEL_V_2_6_31_3
   13.16 +    bool
   13.17 +    prompt "2.6.31.3"
   13.18 +
   13.19 +config KERNEL_V_2_6_31_2
   13.20 +    bool
   13.21 +    prompt "2.6.31.2"
   13.22 +
   13.23  config KERNEL_V_2_6_31_1
   13.24      bool
   13.25      prompt "2.6.31.1"
   13.26 @@ -42,6 +58,10 @@
   13.27      bool
   13.28      prompt "2.6.31"
   13.29  
   13.30 +config KERNEL_V_3_6_30_9
   13.31 +    bool
   13.32 +    prompt "3.6.30.9"
   13.33 +
   13.34  config KERNEL_V_3_6_30_8
   13.35      bool
   13.36      prompt "3.6.30.8"
   13.37 @@ -80,75 +100,31 @@
   13.38  
   13.39  config KERNEL_V_2_6_29_6
   13.40      bool
   13.41 -    prompt "2.6.29.6"
   13.42 +    prompt "2.6.29.6 (OBSOLETE)"
   13.43 +    depends on OBSOLETE
   13.44  
   13.45  config KERNEL_V_2_6_28_10
   13.46      bool
   13.47 -    prompt "2.6.28.10"
   13.48 -
   13.49 -config KERNEL_V_2_6_27_35
   13.50 -    bool
   13.51 -    prompt "2.6.27.35 (long-term stable)"
   13.52 -
   13.53 -config KERNEL_V_2_6_26_8
   13.54 -    bool
   13.55 -    prompt "2.6.26.8 (OBSOLETE)"
   13.56 +    prompt "2.6.28.10 (OBSOLETE)"
   13.57      depends on OBSOLETE
   13.58  
   13.59 -config KERNEL_V_2_6_25_20
   13.60 +config KERNEL_V_2_6_27_38
   13.61      bool
   13.62 -    prompt "2.6.25.20 (OBSOLETE)"
   13.63 -    depends on OBSOLETE
   13.64 -
   13.65 -config KERNEL_V_2_6_24_7
   13.66 -    bool
   13.67 -    prompt "2.6.24.7 (OBSOLETE)"
   13.68 -    depends on OBSOLETE
   13.69 -
   13.70 -config KERNEL_V_2_6_23_17
   13.71 -    bool
   13.72 -    prompt "2.6.23.17 (OBSOLETE)"
   13.73 -    depends on OBSOLETE
   13.74 -
   13.75 -config KERNEL_V_2_6_22_19
   13.76 -    bool
   13.77 -    prompt "2.6.22.19 (OBSOLETE)"
   13.78 -    depends on OBSOLETE
   13.79 -
   13.80 -config KERNEL_V_2_6_21_7
   13.81 -    bool
   13.82 -    prompt "2.6.21.7 (OBSOLETE)"
   13.83 -    depends on OBSOLETE
   13.84 -
   13.85 -config KERNEL_V_2_6_20_21
   13.86 -    bool
   13.87 -    prompt "2.6.20.21 (OBSOLETE)"
   13.88 -    depends on OBSOLETE
   13.89 -
   13.90 -config KERNEL_V_2_6_19_7
   13.91 -    bool
   13.92 -    prompt "2.6.19.7 (OBSOLETE)"
   13.93 -    depends on OBSOLETE
   13.94 -
   13.95 -config KERNEL_V_2_6_18_8
   13.96 -    bool
   13.97 -    prompt "2.6.18.8 (OBSOLETE)"
   13.98 -    depends on OBSOLETE
   13.99 -
  13.100 -config KERNEL_V_select
  13.101 -    bool
  13.102 -    prompt "Other version (EXPERIMENTAL)"
  13.103 -    depends on EXPERIMENTAL
  13.104 +    prompt "2.6.27.38 (long-term stable)"
  13.105  
  13.106  endchoice
  13.107  
  13.108  config KERNEL_VERSION
  13.109      string
  13.110 -    prompt "Kernel version" if KERNEL_V_select
  13.111  # Don't remove next line
  13.112  # CT_INSERT_VERSION_STRING_BELOW
  13.113 +    default "2.6.31.5" if KERNEL_V_2_6_31_5
  13.114 +    default "2.6.31.4" if KERNEL_V_2_6_31_4
  13.115 +    default "2.6.31.3" if KERNEL_V_2_6_31_3
  13.116 +    default "2.6.31.2" if KERNEL_V_2_6_31_2
  13.117      default "2.6.31.1" if KERNEL_V_2_6_31_1
  13.118      default "2.6.31" if KERNEL_V_2_6_31
  13.119 +    default "3.6.30.9" if KERNEL_V_3_6_30_9
  13.120      default "3.6.30.8" if KERNEL_V_3_6_30_8
  13.121      default "3.6.30.7" if KERNEL_V_3_6_30_7
  13.122      default "2.6.30.6" if KERNEL_V_2_6_30_6
  13.123 @@ -159,25 +135,8 @@
  13.124      default "2.6.30.1" if KERNEL_V_2_6_30_1
  13.125      default "2.6.30" if KERNEL_V_2_6_30
  13.126      default "2.6.29.6" if KERNEL_V_2_6_29_6
  13.127 -    default "2.6.29" if KERNEL_V_2_6_29
  13.128      default "2.6.28.10" if KERNEL_V_2_6_28_10
  13.129 -    default "2.6.27.35" if KERNEL_V_2_6_27_35
  13.130 -    default "2.6.26.8" if KERNEL_V_2_6_26_8
  13.131 -    default "2.6.25.20" if KERNEL_V_2_6_25_20
  13.132 -    default "2.6.24.7" if KERNEL_V_2_6_24_7
  13.133 -    default "2.6.23.17" if KERNEL_V_2_6_23_17
  13.134 -    default "2.6.22.19" if KERNEL_V_2_6_22_19
  13.135 -    default "2.6.21.7" if KERNEL_V_2_6_21_7
  13.136 -    default "2.6.20.21" if KERNEL_V_2_6_20_21
  13.137 -    default "2.6.19.7" if KERNEL_V_2_6_19_7
  13.138 -    default "2.6.18.8" if KERNEL_V_2_6_18_8
  13.139 -    help
  13.140 -      Enter here the kernel version you want to use, if it is
  13.141 -      not listed above. Something like V.P.S or V.P.S.E, where:
  13.142 -        V: VERSION
  13.143 -        P: PATCHLEVEL
  13.144 -        S: SUBLEVEL
  13.145 -        E: EXTRAVERSION
  13.146 +    default "2.6.27.38" if KERNEL_V_2_6_27_38
  13.147  
  13.148  choice
  13.149      bool
    14.1 --- a/config/libc/eglibc.in	Wed Oct 28 12:03:38 2009 +0100
    14.2 +++ b/config/libc/eglibc.in	Thu Oct 29 00:10:06 2009 +0100
    14.3 @@ -28,19 +28,23 @@
    14.4  
    14.5  config EGLIBC_V_2_8
    14.6      bool
    14.7 -    prompt "2_8"
    14.8 +    prompt "2_8 (OBSOLETE)"
    14.9 +    depends on OBSOLETE
   14.10  
   14.11  config EGLIBC_V_2_7
   14.12      bool
   14.13 -    prompt "2_7"
   14.14 +    prompt "2_7 (OBSOLETE)"
   14.15 +    depends on OBSOLETE
   14.16  
   14.17  config EGLIBC_V_2_6
   14.18      bool
   14.19 -    prompt "2_6"
   14.20 +    prompt "2_6 (OBSOLETE)"
   14.21 +    depends on OBSOLETE
   14.22  
   14.23  config EGLIBC_V_2_5
   14.24      bool
   14.25 -    prompt "2_5"
   14.26 +    prompt "2_5 (OBSOLETE)"
   14.27 +    depends on OBSOLETE
   14.28  
   14.29  config EGLIBC_V_TRUNK
   14.30      bool
    15.1 --- a/config/libc/glibc.in	Wed Oct 28 12:03:38 2009 +0100
    15.2 +++ b/config/libc/glibc.in	Thu Oct 29 00:10:06 2009 +0100
    15.3 @@ -26,23 +26,28 @@
    15.4  
    15.5  config LIBC_V_2_7
    15.6      bool
    15.7 -    prompt "2.7"
    15.8 +    prompt "2.7 (OBSOLETE)"
    15.9 +    depends on OBSOLETE
   15.10  
   15.11  config LIBC_V_2_6_1
   15.12      bool
   15.13 -    prompt "2.6.1"
   15.14 +    prompt "2.6.1 (OBSOLETE)"
   15.15 +    depends on OBSOLETE
   15.16  
   15.17  config LIBC_V_2_6
   15.18      bool
   15.19 -    prompt "2.6"
   15.20 +    prompt "2.6 (OBSOLETE)"
   15.21 +    depends on OBSOLETE
   15.22  
   15.23  config LIBC_V_2_5_1
   15.24      bool
   15.25 -    prompt "2.5.1"
   15.26 +    prompt "2.5.1 (OBSOLETE)"
   15.27 +    depends on OBSOLETE
   15.28  
   15.29  config LIBC_V_2_5
   15.30      bool
   15.31 -    prompt "2.5"
   15.32 +    prompt "2.5 (OBSOLETE)"
   15.33 +    depends on OBSOLETE
   15.34  
   15.35  config LIBC_V_2_3_6
   15.36      bool
    16.1 --- a/config/libc/uClibc.in	Wed Oct 28 12:03:38 2009 +0100
    16.2 +++ b/config/libc/uClibc.in	Thu Oct 29 00:10:06 2009 +0100
    16.3 @@ -26,25 +26,12 @@
    16.4  
    16.5  config LIBC_V_0_9_29
    16.6      bool
    16.7 -    prompt "0.9.29"
    16.8 +    prompt "0.9.29 (OBSOLETE)"
    16.9 +    depends on OBSOLETE
   16.10  
   16.11  config LIBC_V_0_9_28_3
   16.12      bool
   16.13 -    prompt "0.9.28.3"
   16.14 -
   16.15 -config LIBC_V_0_9_28_2
   16.16 -    bool
   16.17 -    prompt "0.9.28.2 (OBSOLETE)"
   16.18 -    depends on OBSOLETE
   16.19 -
   16.20 -config LIBC_V_0_9_28_1
   16.21 -    bool
   16.22 -    prompt "0.9.28.1 (OBSOLETE)"
   16.23 -    depends on OBSOLETE
   16.24 -
   16.25 -config LIBC_V_0_9_28
   16.26 -    bool
   16.27 -    prompt "0.9.28 (OBSOLETE)"
   16.28 +    prompt "0.9.28.3 (OBSOLETE)"
   16.29      depends on OBSOLETE
   16.30  
   16.31  config LIBC_V_snapshot
   16.32 @@ -68,9 +55,6 @@
   16.33      default "0.9.30" if LIBC_V_0_9_30
   16.34      default "0.9.29" if LIBC_V_0_9_29
   16.35      default "0.9.28.3" if LIBC_V_0_9_28_3
   16.36 -    default "0.9.28.2" if LIBC_V_0_9_28_2
   16.37 -    default "0.9.28.1" if LIBC_V_0_9_28_1
   16.38 -    default "0.9.28" if LIBC_V_0_9_28
   16.39      default "snapshot" if LIBC_V_snapshot
   16.40  
   16.41  config LIBC_UCLIBC_0_9_30_or_later
    17.1 --- a/config/tools/libelf.in	Wed Oct 28 12:03:38 2009 +0100
    17.2 +++ b/config/tools/libelf.in	Thu Oct 29 00:10:06 2009 +0100
    17.3 @@ -21,7 +21,8 @@
    17.4  
    17.5  config LIBELF_V_0_8_10
    17.6      bool
    17.7 -    prompt "0.8.10"
    17.8 +    prompt "0.8.10 (OBSOLETE)"
    17.9 +    depends on OBSOLETE
   17.10  
   17.11  endchoice
   17.12  
    18.1 --- a/config/tools/sstrip.in	Wed Oct 28 12:03:38 2009 +0100
    18.2 +++ b/config/tools/sstrip.in	Thu Oct 29 00:10:06 2009 +0100
    18.3 @@ -19,7 +19,8 @@
    18.4  
    18.5  config SSTRIP_ELFKICKERS
    18.6      bool
    18.7 -    prompt "ELFkickers"
    18.8 +    prompt "ELFkickers (OBSOLETE)"
    18.9 +    depends on OBSOLETE
   18.10      help
   18.11        The original, ageing version, of sstrip from ELFkickers.
   18.12        Fully functional, but not maintained anymore.
    19.1 --- a/patches/binutils/2.14/100-sh-relocs.patch	Wed Oct 28 12:03:38 2009 +0100
    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/110-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,38 +0,0 @@
    20.4 -diff -durN binutils-2.14.orig/gas/config/tc-i386.c binutils-2.14/gas/config/tc-i386.c
    20.5 ---- binutils-2.14.orig/gas/config/tc-i386.c	2003-01-29 11:05:52.000000000 +0100
    20.6 -+++ binutils-2.14/gas/config/tc-i386.c	2008-09-22 08:54:50.000000000 +0200
    20.7 -@@ -189,15 +189,10 @@
    20.8 - const char extra_symbol_chars[] = "*%-([";
    20.9 - #endif
   20.10 - 
   20.11 --#if (defined (TE_I386AIX)				\
   20.12 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   20.13 --	 && !defined (TE_LINUX)				\
   20.14 --	 && !defined (TE_FreeBSD)			\
   20.15 --	 && !defined (TE_NetBSD)))
   20.16 - /* This array holds the chars that always start a comment.  If the
   20.17 -    pre-processor is disabled, these aren't very useful.  */
   20.18 --const char comment_chars[] = "#/";
   20.19 --#define PREFIX_SEPARATOR '\\'
   20.20 -+const char comment_chars[] = "#";
   20.21 -+#define PREFIX_SEPARATOR '/'
   20.22 - 
   20.23 - /* This array holds the chars that only start a comment at the beginning of
   20.24 -    a line.  If the line seems to have the form '# 123 filename'
   20.25 -@@ -207,16 +202,7 @@
   20.26 -    #NO_APP at the beginning of its output.
   20.27 -    Also note that comments started like this one will always work if
   20.28 -    '/' isn't otherwise defined.  */
   20.29 --const char line_comment_chars[] = "#";
   20.30 --
   20.31 --#else
   20.32 --/* Putting '/' here makes it impossible to use the divide operator.
   20.33 --   However, we need it for compatibility with SVR4 systems.  */
   20.34 --const char comment_chars[] = "#";
   20.35 --#define PREFIX_SEPARATOR '/'
   20.36 --
   20.37 - const char line_comment_chars[] = "/#";
   20.38 --#endif
   20.39 - 
   20.40 - const char line_separator_chars[] = ";";
   20.41 - 
    21.1 --- a/patches/binutils/2.14/270-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    21.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3 @@ -1,38 +0,0 @@
    21.4 -diff -durN binutils-2.15.orig/gas/config/tc-i386.c binutils-2.15/gas/config/tc-i386.c
    21.5 ---- binutils-2.15.orig/gas/config/tc-i386.c	2004-05-17 21:36:09.000000000 +0200
    21.6 -+++ binutils-2.15/gas/config/tc-i386.c	2008-09-22 08:57:14.000000000 +0200
    21.7 -@@ -185,15 +185,10 @@
    21.8 - const char extra_symbol_chars[] = "*%-([";
    21.9 - #endif
   21.10 - 
   21.11 --#if (defined (TE_I386AIX)				\
   21.12 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   21.13 --	 && !defined (TE_LINUX)				\
   21.14 --	 && !defined (TE_FreeBSD)			\
   21.15 --	 && !defined (TE_NetBSD)))
   21.16 - /* This array holds the chars that always start a comment.  If the
   21.17 -    pre-processor is disabled, these aren't very useful.  */
   21.18 --const char comment_chars[] = "#/";
   21.19 --#define PREFIX_SEPARATOR '\\'
   21.20 -+const char comment_chars[] = "#";
   21.21 -+#define PREFIX_SEPARATOR '/'
   21.22 - 
   21.23 - /* This array holds the chars that only start a comment at the beginning of
   21.24 -    a line.  If the line seems to have the form '# 123 filename'
   21.25 -@@ -203,16 +198,7 @@
   21.26 -    #NO_APP at the beginning of its output.
   21.27 -    Also note that comments started like this one will always work if
   21.28 -    '/' isn't otherwise defined.  */
   21.29 --const char line_comment_chars[] = "#";
   21.30 --
   21.31 --#else
   21.32 --/* Putting '/' here makes it impossible to use the divide operator.
   21.33 --   However, we need it for compatibility with SVR4 systems.  */
   21.34 --const char comment_chars[] = "#";
   21.35 --#define PREFIX_SEPARATOR '/'
   21.36 --
   21.37 - const char line_comment_chars[] = "/#";
   21.38 --#endif
   21.39 - 
   21.40 - const char line_separator_chars[] = ";";
   21.41 - 
    22.1 --- a/patches/binutils/2.15/100-uclibc.patch	Wed Oct 28 12:03:38 2009 +0100
    22.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.3 @@ -1,144 +0,0 @@
    22.4 -diff -uNr binutils-2.15-pristine/bfd/configure binutils-2.15/bfd/configure
    22.5 ---- binutils-2.15-pristine/bfd/configure	2004-05-17 12:35:57.000000000 -0700
    22.6 -+++ binutils-2.15/bfd/configure	2004-07-19 16:36:19.000000000 -0700
    22.7 -@@ -1009,7 +1009,7 @@
    22.8 - bfd_version_string="\"${VERSION}\""
    22.9 - if test x${is_release} = x; then
   22.10 -   bfd_version_date=`sed -n -e 's/.*DATE //p' < ${srcdir}/version.h`
   22.11 --  bfd_version_string="\"${VERSION} ${bfd_version_date}\""
   22.12 -+  bfd_version_string="\"${VERSION} ${bfd_version_date} uClibc\""
   22.13 - fi
   22.14 - 
   22.15 - 
   22.16 -diff -uNr binutils-2.15-pristine/bfd/elf32-arm.h binutils-2.15/bfd/elf32-arm.h
   22.17 ---- binutils-2.15-pristine/bfd/elf32-arm.h	2004-05-17 12:35:58.000000000 -0700
   22.18 -+++ binutils-2.15/bfd/elf32-arm.h	2004-07-19 16:37:06.000000000 -0700
   22.19 -@@ -124,7 +124,7 @@
   22.20 - 
   22.21 - /* The name of the dynamic interpreter.  This is put in the .interp
   22.22 -    section.  */
   22.23 --#define ELF_DYNAMIC_INTERPRETER     "/usr/lib/ld.so.1"
   22.24 -+#define ELF_DYNAMIC_INTERPRETER     "/lib/ld-uClibc.so.0"
   22.25 - 
   22.26 - #ifdef FOUR_WORD_PLT
   22.27 - 
   22.28 -diff -uNr binutils-2.15-pristine/bfd/elf32-cris.c binutils-2.15/bfd/elf32-cris.c
   22.29 ---- binutils-2.15-pristine/bfd/elf32-cris.c	2004-05-17 12:35:58.000000000 -0700
   22.30 -+++ binutils-2.15/bfd/elf32-cris.c	2004-07-19 16:49:59.000000000 -0700
   22.31 -@@ -536,7 +536,7 @@
   22.32 - /* The name of the dynamic interpreter.  This is put in the .interp
   22.33 -    section.  */
   22.34 - 
   22.35 --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
   22.36 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
   22.37 - 
   22.38 - /* The size in bytes of an entry in the procedure linkage table.  */
   22.39 - 
   22.40 -diff -uNr binutils-2.15-pristine/bfd/elf32-frv.c binutils-2.15/bfd/elf32-frv.c
   22.41 ---- binutils-2.15-pristine/bfd/elf32-frv.c	2004-05-17 12:35:58.000000000 -0700
   22.42 -+++ binutils-2.15/bfd/elf32-frv.c	2004-07-19 16:49:59.000000000 -0700
   22.43 -@@ -2913,7 +2913,7 @@
   22.44 - /* The name of the dynamic interpreter.  This is put in the .interp
   22.45 -    section.  */
   22.46 - 
   22.47 --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
   22.48 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
   22.49 - 
   22.50 - #define DEFAULT_STACK_SIZE 0x20000
   22.51 - 
   22.52 -diff -uNr binutils-2.15-pristine/bfd/elf32-hppa.c binutils-2.15/bfd/elf32-hppa.c
   22.53 ---- binutils-2.15-pristine/bfd/elf32-hppa.c	2004-05-17 12:35:58.000000000 -0700
   22.54 -+++ binutils-2.15/bfd/elf32-hppa.c	2004-07-19 16:49:59.000000000 -0700
   22.55 -@@ -115,7 +115,7 @@
   22.56 - 
   22.57 - #define PLT_ENTRY_SIZE 8
   22.58 - #define GOT_ENTRY_SIZE 4
   22.59 --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
   22.60 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
   22.61 - 
   22.62 - static const bfd_byte plt_stub[] =
   22.63 - {
   22.64 -diff -uNr binutils-2.15-pristine/bfd/elf32-ppc.c binutils-2.15/bfd/elf32-ppc.c
   22.65 ---- binutils-2.15-pristine/bfd/elf32-ppc.c	2004-05-17 12:35:59.000000000 -0700
   22.66 -+++ binutils-2.15/bfd/elf32-ppc.c	2004-07-19 16:49:59.000000000 -0700
   22.67 -@@ -49,7 +49,7 @@
   22.68 - 
   22.69 - /* The name of the dynamic interpreter.  This is put in the .interp
   22.70 -    section.  */
   22.71 --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
   22.72 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
   22.73 - 
   22.74 - /* The size in bytes of an entry in the procedure linkage table.  */
   22.75 - #define PLT_ENTRY_SIZE 12
   22.76 -diff -uNr binutils-2.15-pristine/bfd/elf32-s390.c binutils-2.15/bfd/elf32-s390.c
   22.77 ---- binutils-2.15-pristine/bfd/elf32-s390.c	2004-05-17 12:35:59.000000000 -0700
   22.78 -+++ binutils-2.15/bfd/elf32-s390.c	2004-07-19 16:49:59.000000000 -0700
   22.79 -@@ -452,7 +452,7 @@
   22.80 - /* The name of the dynamic interpreter.  This is put in the .interp
   22.81 -    section.  */
   22.82 - 
   22.83 --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
   22.84 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
   22.85 - 
   22.86 - /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
   22.87 -    copying dynamic variables from a shared lib into an app's dynbss
   22.88 -diff -uNr binutils-2.15-pristine/bfd/elf32-sparc.c binutils-2.15/bfd/elf32-sparc.c
   22.89 ---- binutils-2.15-pristine/bfd/elf32-sparc.c	2004-05-17 12:36:00.000000000 -0700
   22.90 -+++ binutils-2.15/bfd/elf32-sparc.c	2004-07-19 16:49:59.000000000 -0700
   22.91 -@@ -536,7 +536,7 @@
   22.92 - /* The name of the dynamic interpreter.  This is put in the .interp
   22.93 -    section.  */
   22.94 - 
   22.95 --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
   22.96 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
   22.97 - 
   22.98 - /* The nop opcode we use.  */
   22.99 - 
  22.100 -diff -uNr binutils-2.15-pristine/bfd/elf64-ppc.c binutils-2.15/bfd/elf64-ppc.c
  22.101 ---- binutils-2.15-pristine/bfd/elf64-ppc.c	2004-05-17 12:36:01.000000000 -0700
  22.102 -+++ binutils-2.15/bfd/elf64-ppc.c	2004-07-19 16:49:59.000000000 -0700
  22.103 -@@ -99,7 +99,7 @@
  22.104 - 
  22.105 - /* The name of the dynamic interpreter.  This is put in the .interp
  22.106 -    section.  */
  22.107 --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
  22.108 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
  22.109 - 
  22.110 - /* The size in bytes of an entry in the procedure linkage table.  */
  22.111 - #define PLT_ENTRY_SIZE 24
  22.112 -diff -uNr binutils-2.15-pristine/bfd/elf64-s390.c binutils-2.15/bfd/elf64-s390.c
  22.113 ---- binutils-2.15-pristine/bfd/elf64-s390.c	2004-05-17 12:36:01.000000000 -0700
  22.114 -+++ binutils-2.15/bfd/elf64-s390.c	2004-07-19 16:49:59.000000000 -0700
  22.115 -@@ -473,7 +473,7 @@
  22.116 - /* The name of the dynamic interpreter.  This is put in the .interp
  22.117 -    section.  */
  22.118 - 
  22.119 --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
  22.120 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
  22.121 - 
  22.122 - /* If ELIMINATE_COPY_RELOCS is non-zero, the linker will try to avoid
  22.123 -    copying dynamic variables from a shared lib into an app's dynbss
  22.124 -diff -uNr binutils-2.15-pristine/bfd/elf-m10300.c binutils-2.15/bfd/elf-m10300.c
  22.125 ---- binutils-2.15-pristine/bfd/elf-m10300.c	2004-05-17 12:35:57.000000000 -0700
  22.126 -+++ binutils-2.15/bfd/elf-m10300.c	2004-07-19 16:49:59.000000000 -0700
  22.127 -@@ -4026,7 +4026,7 @@
  22.128 - /* The name of the dynamic interpreter.  This is put in the .interp
  22.129 -    section.  */
  22.130 - 
  22.131 --#define ELF_DYNAMIC_INTERPRETER "/lib/ld.so.1"
  22.132 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
  22.133 - 
  22.134 - /* Create dynamic sections when linking against a dynamic object.  */
  22.135 - 
  22.136 -diff -uNr binutils-2.15-pristine/bfd/elfxx-ia64.c binutils-2.15/bfd/elfxx-ia64.c
  22.137 ---- binutils-2.15-pristine/bfd/elfxx-ia64.c	2004-05-17 12:36:02.000000000 -0700
  22.138 -+++ binutils-2.15/bfd/elfxx-ia64.c	2004-07-19 16:49:59.000000000 -0700
  22.139 -@@ -643,7 +643,7 @@
  22.140 -   0x60, 0x00, 0x80, 0x00               /*               br.few b6;;        */
  22.141 - };
  22.142 - 
  22.143 --#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
  22.144 -+#define ELF_DYNAMIC_INTERPRETER "/lib/ld-uClibc.so.0"
  22.145 - 
  22.146 - static const bfd_byte oor_brl[16] =
  22.147 - {
    23.1 --- a/patches/binutils/2.15/110-uclibc-conf.patch	Wed Oct 28 12:03:38 2009 +0100
    23.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.3 @@ -1,692 +0,0 @@
    23.4 -diff -urN binutils-2.15-dist/bfd/config.bfd binutils-2.15/bfd/config.bfd
    23.5 ---- binutils-2.15-dist/bfd/config.bfd	2004-05-17 14:35:56.000000000 -0500
    23.6 -+++ binutils-2.15/bfd/config.bfd	2004-08-04 12:01:44.000000000 -0500
    23.7 -@@ -126,7 +126,7 @@
    23.8 -     targ_defvec=ecoffalpha_little_vec
    23.9 -     targ_selvecs=bfd_elf64_alpha_vec
   23.10 -     ;;
   23.11 --  alpha*-*-linux-gnu* | alpha*-*-elf*)
   23.12 -+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
   23.13 -     targ_defvec=bfd_elf64_alpha_vec
   23.14 -     targ_selvecs=ecoffalpha_little_vec
   23.15 -     ;;
   23.16 -@@ -136,7 +136,7 @@
   23.17 -   alpha*-*-*)
   23.18 -     targ_defvec=ecoffalpha_little_vec
   23.19 -     ;;
   23.20 --  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
   23.21 -+  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-linux-uclibc* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
   23.22 -     targ_defvec=bfd_elf64_ia64_little_vec
   23.23 -     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
   23.24 -     ;;
   23.25 -@@ -213,7 +213,7 @@
   23.26 -     targ_defvec=bfd_elf32_littlearm_vec
   23.27 -     targ_selvecs=bfd_elf32_bigarm_vec
   23.28 -     ;;
   23.29 --  armeb-*-elf | arm*b-*-linux-gnu*)
   23.30 -+  armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
   23.31 -     targ_defvec=bfd_elf32_bigarm_vec
   23.32 -     targ_selvecs=bfd_elf32_littlearm_vec
   23.33 -     ;;
   23.34 -@@ -221,7 +221,7 @@
   23.35 -     targ_defvec=bfd_elf32_littlearm_vec
   23.36 -     targ_selvecs=bfd_elf32_bigarm_vec
   23.37 -     ;;
   23.38 --  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
   23.39 -+  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | arm*-*-conix* | \
   23.40 -   arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks)
   23.41 -     targ_defvec=bfd_elf32_littlearm_vec
   23.42 -     targ_selvecs=bfd_elf32_bigarm_vec
   23.43 -@@ -360,7 +360,7 @@
   23.44 -     ;;
   23.45 - 
   23.46 - #ifdef BFD64
   23.47 --  hppa*64*-*-linux-gnu*)
   23.48 -+  hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
   23.49 -     targ_defvec=bfd_elf64_hppa_linux_vec
   23.50 -     targ_selvecs=bfd_elf64_hppa_vec
   23.51 -     ;;
   23.52 -@@ -371,7 +371,7 @@
   23.53 -     ;;
   23.54 - #endif
   23.55 - 
   23.56 --  hppa*-*-linux-gnu* | hppa*-*-netbsd*)
   23.57 -+  hppa*-*-linux-gnu* | hppa*-*-linux-uclibc* | hppa*-*-netbsd*)
   23.58 -     targ_defvec=bfd_elf32_hppa_linux_vec
   23.59 -     targ_selvecs=bfd_elf32_hppa_vec
   23.60 -     ;;
   23.61 -@@ -494,7 +494,7 @@
   23.62 -     targ_selvecs=bfd_elf32_i386_vec
   23.63 -     targ_underscore=yes
   23.64 -     ;;
   23.65 --  i[3-7]86-*-linux-gnu*)
   23.66 -+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
   23.67 -     targ_defvec=bfd_elf32_i386_vec
   23.68 -     targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
   23.69 -     targ64_selvecs=bfd_elf64_x86_64_vec
   23.70 -@@ -508,7 +508,7 @@
   23.71 -     targ_defvec=bfd_elf64_x86_64_vec
   23.72 -     targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
   23.73 -     ;;
   23.74 --  x86_64-*-linux-gnu*)
   23.75 -+  x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
   23.76 -     targ_defvec=bfd_elf64_x86_64_vec
   23.77 -     targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
   23.78 -     ;;
   23.79 -@@ -683,7 +683,7 @@
   23.80 -     targ_selvecs=bfd_elf32_m68k_vec
   23.81 -     targ_underscore=yes
   23.82 -     ;;
   23.83 --  m68*-*-linux-gnu*)
   23.84 -+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
   23.85 -     targ_defvec=bfd_elf32_m68k_vec
   23.86 -     targ_selvecs=m68klinux_vec
   23.87 -     ;;
   23.88 -@@ -955,7 +955,8 @@
   23.89 -     ;;
   23.90 - #endif
   23.91 -   powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
   23.92 --  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
   23.93 -+  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \
   23.94 -+  powerpc-*-rtems* | \
   23.95 -   powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
   23.96 -     targ_defvec=bfd_elf32_powerpc_vec
   23.97 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
   23.98 -@@ -987,8 +988,8 @@
   23.99 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
  23.100 -     ;;
  23.101 -   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
  23.102 --  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
  23.103 --  powerpcle-*-rtems*)
  23.104 -+  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\
  23.105 -+  powerpcle-*-vxworks* | powerpcle-*-rtems*)
  23.106 -     targ_defvec=bfd_elf32_powerpcle_vec
  23.107 -     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
  23.108 -     targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
  23.109 -@@ -1149,7 +1150,7 @@
  23.110 -     targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
  23.111 -     targ_underscore=yes
  23.112 -     ;;
  23.113 --  sparc-*-linux-gnu*)
  23.114 -+  sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
  23.115 -     targ_defvec=bfd_elf32_sparc_vec
  23.116 -     targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
  23.117 -     ;;
  23.118 -@@ -1196,7 +1197,7 @@
  23.119 -     targ_defvec=sunos_big_vec
  23.120 -     targ_underscore=yes
  23.121 -     ;;
  23.122 --  sparc64-*-linux-gnu*)
  23.123 -+  sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
  23.124 -     targ_defvec=bfd_elf64_sparc_vec
  23.125 -     targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
  23.126 -     ;;
  23.127 -@@ -1265,7 +1266,7 @@
  23.128 -     targ_underscore=yes
  23.129 -     ;;
  23.130 - 
  23.131 --  vax-*-linux-gnu*)
  23.132 -+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
  23.133 -     targ_defvec=bfd_elf32_vax_vec
  23.134 -     ;;
  23.135 - 
  23.136 -diff -urN binutils-2.15-dist/bfd/configure binutils-2.15/bfd/configure
  23.137 ---- binutils-2.15-dist/bfd/configure	2004-05-17 14:35:57.000000000 -0500
  23.138 -+++ binutils-2.15/bfd/configure	2004-08-04 12:01:44.000000000 -0500
  23.139 -@@ -1699,6 +1699,11 @@
  23.140 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.141 -   ;;
  23.142 - 
  23.143 -+linux-uclibc*)
  23.144 -+  lt_cv_deplibs_check_method=pass_all
  23.145 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.146 -+  ;;
  23.147 -+
  23.148 - netbsd*)
  23.149 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.150 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  23.151 -@@ -5278,7 +5283,7 @@
  23.152 -   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
  23.153 - 	COREFILE=''
  23.154 - 	;;
  23.155 --  alpha*-*-linux-gnu*)
  23.156 -+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
  23.157 - 	COREFILE=trad-core.lo
  23.158 - 	TRAD_HEADER='"hosts/alphalinux.h"'
  23.159 - 	;;
  23.160 -@@ -5338,7 +5343,7 @@
  23.161 - 	COREFILE=trad-core.lo
  23.162 - 	TRAD_HEADER='"hosts/i386mach3.h"'
  23.163 - 	;;
  23.164 --  i[3-7]86-*-linux-gnu*)
  23.165 -+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
  23.166 - 	COREFILE=trad-core.lo
  23.167 - 	TRAD_HEADER='"hosts/i386linux.h"'
  23.168 - 	;;
  23.169 -@@ -5376,7 +5381,7 @@
  23.170 - 	COREFILE=trad-core.lo
  23.171 - 	TRAD_HEADER='"hosts/hp300bsd.h"'
  23.172 - 	;;
  23.173 --  m68*-*-linux-gnu*)
  23.174 -+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
  23.175 - 	COREFILE=trad-core.lo
  23.176 - 	TRAD_HEADER='"hosts/m68klinux.h"'
  23.177 - 	;;
  23.178 -@@ -5477,7 +5482,7 @@
  23.179 - 	COREFILE=trad-core.lo
  23.180 - 	TRAD_HEADER='"hosts/vaxult2.h"'
  23.181 - 	;;
  23.182 --  vax-*-linux-gnu*)
  23.183 -+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
  23.184 - 	COREFILE=trad-core.lo
  23.185 - 	TRAD_HEADER='"hosts/vaxlinux.h"'
  23.186 - 	;;
  23.187 -diff -urN binutils-2.15-dist/bfd/configure.in binutils-2.15/bfd/configure.in
  23.188 ---- binutils-2.15-dist/bfd/configure.in	2004-05-17 14:35:57.000000000 -0500
  23.189 -+++ binutils-2.15/bfd/configure.in	2004-08-04 12:01:44.000000000 -0500
  23.190 -@@ -178,7 +178,7 @@
  23.191 -   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
  23.192 - 	COREFILE=''
  23.193 - 	;;
  23.194 --  alpha*-*-linux-gnu*)
  23.195 -+  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
  23.196 - 	COREFILE=trad-core.lo
  23.197 - 	TRAD_HEADER='"hosts/alphalinux.h"'
  23.198 - 	;;
  23.199 -@@ -259,7 +259,7 @@
  23.200 - 	TRAD_HEADER='"hosts/i386mach3.h"'
  23.201 - 	;;
  23.202 - changequote(,)dnl
  23.203 --  i[3-7]86-*-linux-gnu*)
  23.204 -+  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
  23.205 - changequote([,])dnl
  23.206 - 	COREFILE=trad-core.lo
  23.207 - 	TRAD_HEADER='"hosts/i386linux.h"'
  23.208 -@@ -300,7 +300,7 @@
  23.209 - 	COREFILE=trad-core.lo
  23.210 - 	TRAD_HEADER='"hosts/hp300bsd.h"'
  23.211 - 	;;
  23.212 --  m68*-*-linux-gnu*)
  23.213 -+  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
  23.214 - 	COREFILE=trad-core.lo
  23.215 - 	TRAD_HEADER='"hosts/m68klinux.h"'
  23.216 - 	;;
  23.217 -@@ -385,7 +385,7 @@
  23.218 - 	COREFILE=trad-core.lo
  23.219 - 	TRAD_HEADER='"hosts/vaxult2.h"'
  23.220 - 	;;
  23.221 --  vax-*-linux-gnu*)
  23.222 -+  vax-*-linux-gnu* | vax-*-linux-uclibc*)
  23.223 - 	COREFILE=trad-core.lo
  23.224 - 	TRAD_HEADER='"hosts/vaxlinux.h"'
  23.225 - 	;;
  23.226 -diff -urN binutils-2.15-dist/binutils/configure binutils-2.15/binutils/configure
  23.227 ---- binutils-2.15-dist/binutils/configure	2004-01-02 11:08:04.000000000 -0600
  23.228 -+++ binutils-2.15/binutils/configure	2004-08-04 12:01:44.000000000 -0500
  23.229 -@@ -1585,6 +1585,11 @@
  23.230 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.231 -   ;;
  23.232 - 
  23.233 -+linux-uclibc*)
  23.234 -+  lt_cv_deplibs_check_method=pass_all
  23.235 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.236 -+  ;;
  23.237 -+
  23.238 - netbsd*)
  23.239 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.240 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  23.241 -diff -urN binutils-2.15-dist/configure binutils-2.15/configure
  23.242 ---- binutils-2.15-dist/configure	2004-05-17 14:36:20.000000000 -0500
  23.243 -+++ binutils-2.15/configure	2004-08-04 12:01:44.000000000 -0500
  23.244 -@@ -1288,6 +1288,18 @@
  23.245 -   i[3456789]86-*-freebsd* | i[3456789]86-*-kfreebsd*-gnu)
  23.246 -     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
  23.247 -     ;;
  23.248 -+  i[3456789]86-*-linux-uclibc*)
  23.249 -+    # This section makes it possible to build newlib natively on linux.
  23.250 -+    # If we are using a cross compiler then don't configure newlib.
  23.251 -+    if test x${is_cross_compiler} != xno ; then
  23.252 -+      noconfigdirs="$noconfigdirs target-newlib"
  23.253 -+    fi
  23.254 -+    noconfigdirs="$noconfigdirs target-libgloss"
  23.255 -+    # If we are not using a cross compiler, do configure newlib.
  23.256 -+    # Note however, that newlib will only be configured in this situation
  23.257 -+    # if the --with-newlib option has been given, because otherwise
  23.258 -+    # 'target-newlib' will appear in skipdirs.
  23.259 -+    ;;
  23.260 -   i[3456789]86-*-linux*)
  23.261 -     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
  23.262 -     # not build java stuff by default.
  23.263 -diff -urN binutils-2.15-dist/configure.in binutils-2.15/configure.in
  23.264 ---- binutils-2.15-dist/configure.in	2004-05-17 14:40:54.000000000 -0500
  23.265 -+++ binutils-2.15/configure.in	2004-08-04 12:01:44.000000000 -0500
  23.266 -@@ -521,6 +521,18 @@
  23.267 -   i[[3456789]]86-*-freebsd* | i[[3456789]]86-*-kfreebsd*-gnu)
  23.268 -     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
  23.269 -     ;;
  23.270 -+  i[[3456789]]86-*-linux-uclibc*)
  23.271 -+    # This section makes it possible to build newlib natively on linux.
  23.272 -+    # If we are using a cross compiler then don't configure newlib.
  23.273 -+    if test x${is_cross_compiler} != xno ; then
  23.274 -+      noconfigdirs="$noconfigdirs target-newlib"
  23.275 -+    fi
  23.276 -+    noconfigdirs="$noconfigdirs target-libgloss"
  23.277 -+    # If we are not using a cross compiler, do configure newlib.
  23.278 -+    # Note however, that newlib will only be configured in this situation
  23.279 -+    # if the --with-newlib option has been given, because otherwise
  23.280 -+    # 'target-newlib' will appear in skipdirs.
  23.281 -+    ;;
  23.282 -   i[[3456789]]86-*-linux*)
  23.283 -     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
  23.284 -     # not build java stuff by default.
  23.285 -diff -urN binutils-2.15-dist/gas/configure binutils-2.15/gas/configure
  23.286 ---- binutils-2.15-dist/gas/configure	2004-05-17 14:36:07.000000000 -0500
  23.287 -+++ binutils-2.15/gas/configure	2004-08-04 12:07:50.000000000 -0500
  23.288 -@@ -3400,6 +3400,11 @@
  23.289 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.290 -   ;;
  23.291 - 
  23.292 -+linux-uclibc*)
  23.293 -+  lt_cv_deplibs_check_method=pass_all
  23.294 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.295 -+  ;;
  23.296 -+
  23.297 - netbsd*)
  23.298 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.299 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  23.300 -@@ -4224,6 +4229,7 @@
  23.301 -       alpha*-*-osf*)			fmt=ecoff ;;
  23.302 -       alpha*-*-linuxecoff*)		fmt=ecoff ;;
  23.303 -       alpha*-*-linux-gnu*)		fmt=elf em=linux ;;
  23.304 -+      alpha*-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.305 -       alpha*-*-netbsd*)			fmt=elf em=nbsd ;;
  23.306 -       alpha*-*-openbsd*)		fmt=elf em=obsd ;;
  23.307 - 
  23.308 -@@ -4240,6 +4246,7 @@
  23.309 -       arm*-*-conix*)			fmt=elf ;;
  23.310 -       arm-*-linux*aout*)		fmt=aout em=linux ;;
  23.311 -       arm*-*-linux-gnu*)		fmt=elf  em=linux ;;
  23.312 -+      arm*-*-linux-uclibc*)		fmt=elf  em=linux ;;
  23.313 -       arm*-*-uclinux*)			fmt=elf  em=linux ;;
  23.314 -       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
  23.315 -       arm-*-*n*bsd*)			fmt=aout em=nbsd ;;
  23.316 -@@ -4253,6 +4260,7 @@
  23.317 -       avr-*-*)				fmt=elf ;;
  23.318 - 
  23.319 -       cris-*-linux-gnu*)		fmt=multi bfd_gas=yes em=linux ;;
  23.320 -+      cris-*-linux-uclibc*)		fmt=multi bfd_gas=yes em=linux ;;
  23.321 -       cris-*-*)				fmt=multi bfd_gas=yes ;;
  23.322 - 
  23.323 -       d10v-*-*)				fmt=elf ;;
  23.324 -@@ -4310,7 +4318,9 @@
  23.325 -       i386-*-linux*oldld)		fmt=aout em=linux ;;
  23.326 -       i386-*-linux*coff*)		fmt=coff em=linux ;;
  23.327 -       i386-*-linux-gnu*)		fmt=elf em=linux ;;
  23.328 -+      i386-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.329 -       x86_64-*-linux-gnu*)		fmt=elf em=linux ;;
  23.330 -+      x86_64-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.331 -       i386-*-lynxos*)			fmt=coff em=lynx ;;
  23.332 -       i386-*-sysv[45]*)			fmt=elf ;;
  23.333 -       i386-*-solaris*)			fmt=elf ;;
  23.334 -@@ -4370,6 +4380,7 @@
  23.335 -       ia64-*-elf*)			fmt=elf ;;
  23.336 -       ia64-*-aix*)			fmt=elf em=ia64aix ;;
  23.337 -       ia64-*-linux-gnu*)		fmt=elf em=linux ;;
  23.338 -+      ia64-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.339 -       ia64-*-hpux*)			fmt=elf em=hpux ;;
  23.340 -       ia64-*-netbsd*)			fmt=elf em=nbsd ;;
  23.341 - 
  23.342 -@@ -4397,6 +4408,7 @@
  23.343 -       m68k-*-hpux*)			fmt=hp300 em=hp300 ;;
  23.344 -       m68k-*-linux*aout*)		fmt=aout em=linux ;;
  23.345 -       m68k-*-linux-gnu*)		fmt=elf em=linux ;;
  23.346 -+      m68k-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.347 -       m68k-*-uclinux*)			fmt=elf ;;
  23.348 -       m68k-*-gnu*)			fmt=elf ;;
  23.349 -       m68k-*-lynxos*)			fmt=coff em=lynx ;;
  23.350 -@@ -4459,6 +4471,7 @@
  23.351 -       ppc-*-beos*)			fmt=coff ;;
  23.352 -       ppc-*-*n*bsd* | ppc-*-elf*)	fmt=elf ;;
  23.353 -       ppc-*-eabi* | ppc-*-sysv4*)	fmt=elf ;;
  23.354 -+      ppc-*-linux-uclibc* | \
  23.355 -       ppc-*-linux-gnu*)			fmt=elf em=linux
  23.356 - 	    case "$endian" in
  23.357 - 		big)  ;;
  23.358 -@@ -4486,7 +4499,9 @@
  23.359 -       ppc-*-kaos*)			fmt=elf ;;
  23.360 - 
  23.361 -       s390x-*-linux-gnu*)		fmt=elf em=linux ;;
  23.362 -+      s390x-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.363 -       s390-*-linux-gnu*)		fmt=elf em=linux ;;
  23.364 -+      s390-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.365 - 
  23.366 -       sh*-*-linux*)			fmt=elf em=linux
  23.367 - 	    case ${cpu} in
  23.368 -@@ -4519,6 +4534,7 @@
  23.369 -       sparc-*-coff)			fmt=coff ;;
  23.370 -       sparc-*-linux*aout*)		fmt=aout em=linux ;;
  23.371 -       sparc-*-linux-gnu*)		fmt=elf em=linux ;;
  23.372 -+      sparc-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.373 -       sparc-*-lynxos*)			fmt=coff em=lynx ;;
  23.374 -       sparc-fujitsu-none)		fmt=aout ;;
  23.375 -       sparc-*-elf)			fmt=elf ;;
  23.376 -diff -urN binutils-2.15-dist/gas/configure.in binutils-2.15/gas/configure.in
  23.377 ---- binutils-2.15-dist/gas/configure.in	2004-05-17 14:36:07.000000000 -0500
  23.378 -+++ binutils-2.15/gas/configure.in	2004-08-04 12:07:21.000000000 -0500
  23.379 -@@ -194,6 +194,7 @@
  23.380 -       alpha*-*-osf*)			fmt=ecoff ;;
  23.381 -       alpha*-*-linuxecoff*)		fmt=ecoff ;;
  23.382 -       alpha*-*-linux-gnu*)		fmt=elf em=linux ;;
  23.383 -+      alpha*-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.384 -       alpha*-*-netbsd*)			fmt=elf em=nbsd ;;
  23.385 -       alpha*-*-openbsd*)		fmt=elf em=obsd ;;
  23.386 - 
  23.387 -@@ -210,6 +211,7 @@
  23.388 -       arm*-*-conix*)			fmt=elf ;;
  23.389 -       arm-*-linux*aout*)		fmt=aout em=linux ;;
  23.390 -       arm*-*-linux-gnu*)		fmt=elf  em=linux ;;
  23.391 -+      arm*-*-linux-uclibc*)		fmt=elf  em=linux ;;
  23.392 -       arm*-*-uclinux*)			fmt=elf  em=linux ;;
  23.393 -       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
  23.394 -       arm-*-*n*bsd*)			fmt=aout em=nbsd ;;
  23.395 -@@ -223,6 +225,7 @@
  23.396 -       avr-*-*)				fmt=elf ;;
  23.397 - 
  23.398 -       cris-*-linux-gnu*)		fmt=multi bfd_gas=yes em=linux ;;
  23.399 -+      cris-*-linux-uclibc*)		fmt=multi bfd_gas=yes em=linux ;;
  23.400 -       cris-*-*)				fmt=multi bfd_gas=yes ;;
  23.401 - 
  23.402 -       d10v-*-*)				fmt=elf ;;
  23.403 -@@ -280,7 +283,9 @@
  23.404 -       i386-*-linux*oldld)		fmt=aout em=linux ;;
  23.405 -       i386-*-linux*coff*)		fmt=coff em=linux ;;
  23.406 -       i386-*-linux-gnu*)		fmt=elf em=linux ;;
  23.407 -+      i386-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.408 -       x86_64-*-linux-gnu*)		fmt=elf em=linux ;;
  23.409 -+      x86_64-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.410 -       i386-*-lynxos*)			fmt=coff em=lynx ;;
  23.411 - changequote(,)dnl
  23.412 -       i386-*-sysv[45]*)			fmt=elf ;;
  23.413 -@@ -333,6 +338,7 @@
  23.414 -       ia64-*-elf*)			fmt=elf ;;
  23.415 -       ia64-*-aix*)			fmt=elf em=ia64aix ;;
  23.416 -       ia64-*-linux-gnu*)		fmt=elf em=linux ;;
  23.417 -+      ia64-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.418 -       ia64-*-hpux*)			fmt=elf em=hpux ;;
  23.419 -       ia64-*-netbsd*)			fmt=elf em=nbsd ;;
  23.420 - 
  23.421 -@@ -360,6 +366,7 @@
  23.422 -       m68k-*-hpux*)			fmt=hp300 em=hp300 ;;
  23.423 -       m68k-*-linux*aout*)		fmt=aout em=linux ;;
  23.424 -       m68k-*-linux-gnu*)		fmt=elf em=linux ;;
  23.425 -+      m68k-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.426 -       m68k-*-uclinux*)			fmt=elf ;;
  23.427 -       m68k-*-gnu*)			fmt=elf ;;
  23.428 -       m68k-*-lynxos*)			fmt=coff em=lynx ;;
  23.429 -@@ -419,6 +426,7 @@
  23.430 -       ppc-*-beos*)			fmt=coff ;;
  23.431 -       ppc-*-*n*bsd* | ppc-*-elf*)	fmt=elf ;;
  23.432 -       ppc-*-eabi* | ppc-*-sysv4*)	fmt=elf ;;
  23.433 -+      ppc-*-linux-uclibc* | \
  23.434 -       ppc-*-linux-gnu*)			fmt=elf em=linux
  23.435 - 	    case "$endian" in
  23.436 - 		big)  ;;
  23.437 -@@ -439,7 +447,9 @@
  23.438 -       ppc-*-kaos*)			fmt=elf ;;
  23.439 - 
  23.440 -       s390x-*-linux-gnu*)		fmt=elf em=linux ;;
  23.441 -+      s390x-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.442 -       s390-*-linux-gnu*)		fmt=elf em=linux ;;
  23.443 -+      s390-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.444 - 
  23.445 -       sh*-*-linux*)			fmt=elf em=linux
  23.446 - 	    case ${cpu} in
  23.447 -@@ -472,6 +482,7 @@
  23.448 -       sparc-*-coff)			fmt=coff ;;
  23.449 -       sparc-*-linux*aout*)		fmt=aout em=linux ;;
  23.450 -       sparc-*-linux-gnu*)		fmt=elf em=linux ;;
  23.451 -+      sparc-*-linux-uclibc*)		fmt=elf em=linux ;;
  23.452 -       sparc-*-lynxos*)			fmt=coff em=lynx ;;
  23.453 -       sparc-fujitsu-none)		fmt=aout ;;
  23.454 -       sparc-*-elf)			fmt=elf ;;
  23.455 -diff -urN binutils-2.15-dist/gprof/configure binutils-2.15/gprof/configure
  23.456 ---- binutils-2.15-dist/gprof/configure	2003-08-26 12:19:19.000000000 -0500
  23.457 -+++ binutils-2.15/gprof/configure	2004-08-04 12:01:45.000000000 -0500
  23.458 -@@ -1581,6 +1581,11 @@
  23.459 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.460 -   ;;
  23.461 - 
  23.462 -+linux-uclibc*)
  23.463 -+  lt_cv_deplibs_check_method=pass_all
  23.464 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.465 -+  ;;
  23.466 -+
  23.467 - netbsd*)
  23.468 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.469 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  23.470 -diff -urN binutils-2.15-dist/ld/configure binutils-2.15/ld/configure
  23.471 ---- binutils-2.15-dist/ld/configure	2003-04-24 07:36:07.000000000 -0500
  23.472 -+++ binutils-2.15/ld/configure	2004-08-04 12:01:45.000000000 -0500
  23.473 -@@ -1589,6 +1589,11 @@
  23.474 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.475 -   ;;
  23.476 - 
  23.477 -+linux-uclibc*)
  23.478 -+  lt_cv_deplibs_check_method=pass_all
  23.479 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.480 -+  ;;
  23.481 -+
  23.482 - netbsd*)
  23.483 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.484 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  23.485 -diff -urN binutils-2.15-dist/ld/configure.tgt binutils-2.15/ld/configure.tgt
  23.486 ---- binutils-2.15-dist/ld/configure.tgt	2004-05-17 14:36:15.000000000 -0500
  23.487 -+++ binutils-2.15/ld/configure.tgt	2004-08-04 12:01:45.000000000 -0500
  23.488 -@@ -30,6 +30,7 @@
  23.489 - 			targ_extra_emuls="criself crislinux"
  23.490 - 			targ_extra_libpath=$targ_extra_emuls ;;
  23.491 - cris-*-linux-gnu*)	targ_emul=crislinux ;;
  23.492 -+cris-*-linux-uclibc*)	targ_emul=crislinux ;;
  23.493 - cris-*-*)		targ_emul=criself
  23.494 - 			targ_extra_emuls="crisaout crislinux"
  23.495 - 			targ_extra_libpath=$targ_extra_emuls ;;
  23.496 -@@ -59,14 +60,16 @@
  23.497 - 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
  23.498 - 			tdir_sun4=sparc-sun-sunos4
  23.499 - 			;;
  23.500 --sparc64-*-linux-gnu*)	targ_emul=elf64_sparc
  23.501 -+sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)	 \
  23.502 -+			targ_emul=elf64_sparc
  23.503 - 			targ_extra_emuls="elf32_sparc sparclinux sun4"
  23.504 - 			targ_extra_libpath=elf32_sparc
  23.505 - 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
  23.506 - 			tdir_sparclinux=${tdir_elf32_sparc}aout
  23.507 - 			tdir_sun4=sparc-sun-sunos4
  23.508 - 			;;
  23.509 --sparc*-*-linux-gnu*)	targ_emul=elf32_sparc
  23.510 -+sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \
  23.511 -+			targ_emul=elf32_sparc
  23.512 - 			targ_extra_emuls="sparclinux elf64_sparc sun4"
  23.513 - 			targ_extra_libpath=elf64_sparc
  23.514 - 			tdir_sparclinux=${targ_alias}aout
  23.515 -@@ -118,7 +121,9 @@
  23.516 - m32r*le-*-elf*)         targ_emul=m32rlelf ;;
  23.517 - m32r*-*-elf*)           targ_emul=m32relf ;;
  23.518 - m32r*le-*-linux-gnu*)   targ_emul=m32rlelf_linux ;;
  23.519 -+m32r*le-*-linux-uclibc*) targ_emul=m32rlelf_linux ;;
  23.520 - m32r*-*-linux-gnu*)     targ_emul=m32relf_linux ;;
  23.521 -+m32r*-*-linux-uclibc*)  targ_emul=m32relf_linux ;;
  23.522 - m68hc11-*-*|m6811-*-*)	targ_emul=m68hc11elf 
  23.523 - 			targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
  23.524 - m68hc12-*-*|m6812-*-*)	targ_emul=m68hc12elf 
  23.525 -@@ -128,7 +133,7 @@
  23.526 - m68*-ericsson-ose)	targ_emul=sun3 ;;
  23.527 - m68*-apple-aux*)	targ_emul=m68kaux ;;
  23.528 - *-tandem-none)		targ_emul=st2000 ;;
  23.529 --i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
  23.530 -+i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;;
  23.531 - i[3-7]86-*-nto-qnx*)	targ_emul=i386nto ;;
  23.532 - i[3-7]86-*-vsta)	targ_emul=vsta ;;
  23.533 - i[3-7]86-go32-rtems*)	targ_emul=i386go32 ;;
  23.534 -@@ -152,14 +157,16 @@
  23.535 - 			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
  23.536 - 			;;
  23.537 - i[3-7]86-*-linux*oldld)	targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
  23.538 --i[3-7]86-*-linux-gnu*)	targ_emul=elf_i386
  23.539 -+i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \
  23.540 -+			targ_emul=elf_i386
  23.541 - 			targ_extra_emuls=i386linux
  23.542 - 			if test x${want64} = xtrue; then
  23.543 - 			  targ_extra_emuls="$targ_extra_emuls elf_x86_64"
  23.544 - 			fi
  23.545 - 			tdir_i386linux=${targ_alias}aout
  23.546 - 			;;
  23.547 --x86_64-*-linux-gnu*)	targ_emul=elf_x86_64
  23.548 -+x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \
  23.549 -+			targ_emul=elf_x86_64
  23.550 - 			targ_extra_emuls="elf_i386 i386linux"
  23.551 - 			targ_extra_libpath=elf_i386
  23.552 - 			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
  23.553 -@@ -259,10 +266,13 @@
  23.554 - arm9e-*-elf)		targ_emul=armelf ;;
  23.555 - arm-*-oabi)		targ_emul=armelf_oabi ;;
  23.556 - arm*b-*-linux-gnu*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
  23.557 -+arm*b-*-linux-uclibc*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
  23.558 - arm*-*-linux-gnu*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
  23.559 -+arm*-*-linux-uclibc*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
  23.560 - arm*-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
  23.561 - arm*-*-conix*)		targ_emul=armelf ;;
  23.562 --thumb-*-linux-gnu* | thumb-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
  23.563 -+thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
  23.564 -+			targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
  23.565 - strongarm-*-coff)	targ_emul=armcoff ;;
  23.566 - strongarm-*-elf)	targ_emul=armelf ;;
  23.567 - strongarm-*-kaos*)	targ_emul=armelf ;;
  23.568 -@@ -364,7 +374,8 @@
  23.569 - 			targ_extra_emuls=m68kelf
  23.570 - 			tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
  23.571 - 			;;
  23.572 --m68k-*-linux-gnu*)	targ_emul=m68kelf
  23.573 -+m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
  23.574 -+			targ_emul=m68kelf
  23.575 - 			targ_extra_emuls=m68klinux
  23.576 - 			tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
  23.577 - 			;;
  23.578 -@@ -381,9 +392,9 @@
  23.579 - m68*-*-psos*)		targ_emul=m68kpsos ;;
  23.580 - m68*-*-rtemscoff*)	targ_emul=m68kcoff ;;
  23.581 - m68*-*-rtems*)		targ_emul=m68kelf ;;
  23.582 --hppa*64*-*-linux-gnu*)	targ_emul=hppa64linux ;;
  23.583 -+hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;;
  23.584 - hppa*64*-*)		targ_emul=elf64hppa ;;
  23.585 --hppa*-*-linux-gnu*)	targ_emul=hppalinux ;;
  23.586 -+hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)	targ_emul=hppalinux ;;
  23.587 - hppa*-*-*elf*)		targ_emul=hppaelf ;;
  23.588 - hppa*-*-lites*)		targ_emul=hppaelf ;;
  23.589 - hppa*-*-netbsd*)	targ_emul=hppanbsd ;;
  23.590 -@@ -396,6 +407,7 @@
  23.591 - 			targ_emul=vaxnbsd
  23.592 - 			targ_extra_emuls=elf32vax ;;
  23.593 - vax-*-linux-gnu*)	targ_emul=elf32vax ;;
  23.594 -+vax-*-linux-uclibc*)	targ_emul=elf32vax ;;
  23.595 - mips*-*-pe)		targ_emul=mipspe ;
  23.596 - 			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
  23.597 - mips*-dec-ultrix*)	targ_emul=mipslit ;;
  23.598 -@@ -429,16 +441,16 @@
  23.599 - mips*-*-vxworks*)	targ_emul=elf32ebmip
  23.600 - 		        targ_extra_emuls="elf32elmip" ;;
  23.601 - mips*-*-windiss)	targ_emul=elf32mipswindiss ;;
  23.602 --mips64*el-*-linux-gnu*)	targ_emul=elf32ltsmipn32
  23.603 -+mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*)	targ_emul=elf32ltsmipn32
  23.604 - 			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
  23.605 - 			;;
  23.606 --mips64*-*-linux-gnu*)	targ_emul=elf32btsmipn32
  23.607 -+mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*)	targ_emul=elf32btsmipn32
  23.608 - 			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
  23.609 - 			;;
  23.610 --mips*el-*-linux-gnu*)	targ_emul=elf32ltsmip
  23.611 -+mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*)	targ_emul=elf32ltsmip
  23.612 - 			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
  23.613 - 			;;
  23.614 --mips*-*-linux-gnu*)	targ_emul=elf32btsmip
  23.615 -+mips*-*-linux-gnu* | mips*-*-linux-uclibc*)	targ_emul=elf32btsmip
  23.616 - 			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
  23.617 - 			;;
  23.618 - mips*-*-lnews*)		targ_emul=mipslnews ;;
  23.619 -@@ -461,6 +473,10 @@
  23.620 - alpha*-*-linux-gnu*)	targ_emul=elf64alpha targ_extra_emuls=alpha
  23.621 - 			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
  23.622 - 			;;
  23.623 -+alpha*-*-linux-uclibc*)	targ_emul=elf64alpha targ_extra_emuls=alpha
  23.624 -+			# The following needs to be checked...
  23.625 -+			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
  23.626 -+			;;
  23.627 - alpha*-*-osf*)		targ_emul=alpha ;;
  23.628 - alpha*-*-gnu*)		targ_emul=elf64alpha ;;
  23.629 - alpha*-*-netware*)	targ_emul=alpha ;;
  23.630 -diff -urN binutils-2.15-dist/libtool.m4 binutils-2.15/libtool.m4
  23.631 ---- binutils-2.15-dist/libtool.m4	2003-04-10 22:58:39.000000000 -0500
  23.632 -+++ binutils-2.15/libtool.m4	2004-08-04 12:01:45.000000000 -0500
  23.633 -@@ -645,6 +645,11 @@
  23.634 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.635 -   ;;
  23.636 - 
  23.637 -+linux-uclibc*)
  23.638 -+  lt_cv_deplibs_check_method=pass_all
  23.639 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.640 -+  ;;
  23.641 -+
  23.642 - netbsd*)
  23.643 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.644 -     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
  23.645 -diff -urN binutils-2.15-dist/ltconfig binutils-2.15/ltconfig
  23.646 ---- binutils-2.15-dist/ltconfig	2003-10-03 23:54:47.000000000 -0500
  23.647 -+++ binutils-2.15/ltconfig	2004-08-04 12:01:45.000000000 -0500
  23.648 -@@ -603,6 +603,7 @@
  23.649 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  23.650 - case $host_os in
  23.651 - linux-gnu*) ;;
  23.652 -+linux-uclibc*) ;;
  23.653 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  23.654 - esac
  23.655 - 
  23.656 -@@ -1259,6 +1260,24 @@
  23.657 -   dynamic_linker='GNU/Linux ld.so'
  23.658 -   ;;
  23.659 - 
  23.660 -+linux-uclibc*)
  23.661 -+  version_type=linux
  23.662 -+  need_lib_prefix=no
  23.663 -+  need_version=no
  23.664 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  23.665 -+  soname_spec='${libname}${release}.so$major'
  23.666 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
  23.667 -+  shlibpath_var=LD_LIBRARY_PATH
  23.668 -+  shlibpath_overrides_runpath=no
  23.669 -+  # This implies no fast_install, which is unacceptable.
  23.670 -+  # Some rework will be needed to allow for fast_install
  23.671 -+  # before this can be enabled.
  23.672 -+  # Note: copied from linux-gnu, and may not be appropriate.
  23.673 -+  hardcode_into_libs=yes
  23.674 -+  # Assume using the uClibc dynamic linker.
  23.675 -+  dynamic_linker="uClibc ld.so"
  23.676 -+  ;;
  23.677 -+
  23.678 - netbsd*)
  23.679 -   need_lib_prefix=no
  23.680 -   need_version=no
  23.681 -diff -urN binutils-2.15-dist/opcodes/configure binutils-2.15/opcodes/configure
  23.682 ---- binutils-2.15-dist/opcodes/configure	2003-08-05 04:39:31.000000000 -0500
  23.683 -+++ binutils-2.15/opcodes/configure	2004-08-04 12:01:45.000000000 -0500
  23.684 -@@ -1700,6 +1700,11 @@
  23.685 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
  23.686 -   ;;
  23.687 - 
  23.688 -+linux-uclibc*)
  23.689 -+  lt_cv_deplibs_check_method=pass_all
  23.690 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  23.691 -+  ;;
  23.692 -+
  23.693 - netbsd*)
  23.694 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  23.695 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
    24.1 --- a/patches/binutils/2.15/120-cflags.patch	Wed Oct 28 12:03:38 2009 +0100
    24.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.3 @@ -1,32 +0,0 @@
    24.4 -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am
    24.5 ---- binutils-2.14.90.0.6/bfd/doc/Makefile.am	2003-07-23 10:08:09.000000000 -0500
    24.6 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am	2004-03-01 16:05:16.000000000 -0600
    24.7 -@@ -55,10 +55,10 @@
    24.8 - MKDOC = chew$(EXEEXT_FOR_BUILD)
    24.9 - 
   24.10 - $(MKDOC): chew.o
   24.11 --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
   24.12 -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
   24.13 - 
   24.14 - chew.o: chew.c
   24.15 --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
   24.16 -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
   24.17 - 
   24.18 - protos: libbfd.h libcoff.h bfd.h
   24.19 - 
   24.20 -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in
   24.21 ---- binutils-2.14.90.0.6/bfd/doc/Makefile.in	2003-07-23 10:08:09.000000000 -0500
   24.22 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in	2004-03-01 16:05:03.000000000 -0600
   24.23 -@@ -469,10 +469,10 @@
   24.24 - 
   24.25 - 
   24.26 - $(MKDOC): chew.o
   24.27 --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS)
   24.28 -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS)
   24.29 - 
   24.30 - chew.o: chew.c
   24.31 --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c
   24.32 -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
   24.33 - 
   24.34 - protos: libbfd.h libcoff.h bfd.h
   24.35 - 
    25.1 --- a/patches/binutils/2.15/130-mips-ELF_MAXPAGESIZE-4K.patch	Wed Oct 28 12:03:38 2009 +0100
    25.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.3 @@ -1,26 +0,0 @@
    25.4 ---- binutils/bfd/elf32-mips.c~
    25.5 -+++ binutils/bfd/elf32-mips.c
    25.6 -@@ -1611,7 +1611,9 @@
    25.7 - 
    25.8 - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
    25.9 -    page sizes of up to that limit, so we need to respect it.  */
   25.10 --#define ELF_MAXPAGESIZE			0x10000
   25.11 -+/*#define ELF_MAXPAGESIZE			0x10000*/
   25.12 -+/* Use 4K to shrink the elf header.  NOT for general use! */
   25.13 -+#define ELF_MAXPAGESIZE			0x1000
   25.14 - #define elf32_bed			elf32_tradbed
   25.15 - 
   25.16 - /* Include the target file again for this target.  */
   25.17 ---- binutils/bfd/elfn32-mips.c~
   25.18 -+++ binutils/bfd/elfn32-mips.c
   25.19 -@@ -1976,7 +1976,9 @@
   25.20 - 
   25.21 - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
   25.22 -    page sizes of up to that limit, so we need to respect it.  */
   25.23 --#define ELF_MAXPAGESIZE			0x10000
   25.24 -+/*#define ELF_MAXPAGESIZE			0x10000*/
   25.25 -+/* Use 4K to shrink the elf header.  NOT for general use! */
   25.26 -+#define ELF_MAXPAGESIZE			0x1000
   25.27 - #define elf32_bed			elf32_tradbed
   25.28 - 
   25.29 - /* Include the target file again for this target.  */
    26.1 --- a/patches/binutils/2.15/140-arm-textrel.patch	Wed Oct 28 12:03:38 2009 +0100
    26.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.3 @@ -1,63 +0,0 @@
    26.4 -http://sources.redhat.com/ml/binutils/2004-06/msg00010.html
    26.5 ---- binutils-2.15.90.0.3-old/bfd/elf32-arm.h	2004-04-12 14:56:33.000000000 -0500
    26.6 -+++ binutils-2.15.90.0.3/bfd/elf32-arm.h	2004-09-03 06:56:40.000000000 -0500
    26.7 -@@ -87,6 +87,8 @@
    26.8 - #endif
    26.9 - static bfd_boolean allocate_dynrelocs 
   26.10 -   PARAMS ((struct elf_link_hash_entry *h, PTR inf));
   26.11 -+static bfd_boolean elf32_arm_readonly_dynrelocs
   26.12 -+  PARAMS ((struct elf_link_hash_entry *, PTR));
   26.13 - static bfd_boolean create_got_section 
   26.14 -   PARAMS ((bfd * dynobj, struct bfd_link_info * info));
   26.15 - static bfd_boolean elf32_arm_create_dynamic_sections 
   26.16 -@@ -3531,6 +3533,37 @@
   26.17 -   return TRUE;
   26.18 - }
   26.19 - 
   26.20 -+/* Find any dynamic relocs that apply to read-only sections.  */
   26.21 -+
   26.22 -+static bfd_boolean
   26.23 -+elf32_arm_readonly_dynrelocs (h, inf)
   26.24 -+     struct elf_link_hash_entry *h;
   26.25 -+     PTR inf;
   26.26 -+{
   26.27 -+  struct elf32_arm_link_hash_entry *eh;
   26.28 -+  struct elf32_arm_relocs_copied *p;
   26.29 -+
   26.30 -+  if (h->root.type == bfd_link_hash_warning)
   26.31 -+    h = (struct elf_link_hash_entry *) h->root.u.i.link;
   26.32 -+
   26.33 -+  eh = (struct elf32_arm_link_hash_entry *) h;
   26.34 -+  for (p = eh->relocs_copied; p != NULL; p = p->next)
   26.35 -+    {
   26.36 -+      asection *s = p->section;
   26.37 -+
   26.38 -+      if (s != NULL && (s->flags & SEC_READONLY) != 0)
   26.39 -+       {
   26.40 -+         struct bfd_link_info *info = (struct bfd_link_info *) inf;
   26.41 -+
   26.42 -+         info->flags |= DF_TEXTREL;
   26.43 -+
   26.44 -+         /* Not an error, just cut short the traversal.  */
   26.45 -+         return FALSE;
   26.46 -+       }
   26.47 -+    }
   26.48 -+  return TRUE;
   26.49 -+}
   26.50 -+
   26.51 - /* Set the sizes of the dynamic sections.  */
   26.52 - 
   26.53 - static bfd_boolean
   26.54 -@@ -3740,6 +3773,12 @@
   26.55 - 	    return FALSE;
   26.56 - 	}
   26.57 - 
   26.58 -+      /* If any dynamic relocs apply to a read-only section,
   26.59 -+         then we need a DT_TEXTREL entry.  */
   26.60 -+      if ((info->flags & DF_TEXTREL) == 0)
   26.61 -+        elf_link_hash_traverse (&htab->root, elf32_arm_readonly_dynrelocs,
   26.62 -+                                (PTR) info);
   26.63 -+
   26.64 -       if ((info->flags & DF_TEXTREL) != 0)
   26.65 - 	{
   26.66 - 	  if (!add_dynamic_entry (DT_TEXTREL, 0))
    27.1 --- a/patches/binutils/2.15/150-bfd-hash-tweak.patch	Wed Oct 28 12:03:38 2009 +0100
    27.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.3 @@ -1,24 +0,0 @@
    27.4 -Signed-off-by: dank@kegel.com
    27.5 -
    27.6 -Raising the size of the hash table is a noticable win when linking 
    27.7 -at least one large app.  
    27.8 -
    27.9 -There was a patch,
   27.10 -http://sources.redhat.com/ml/binutils/2004-06/msg00165.html
   27.11 -to do this dynamically.  No idea why that didn't make it in.
   27.12 -So this tiny change to raise the default size is just
   27.13 -a stopgap for now.
   27.14 -
   27.15 -
   27.16 ---- binutils-2.15/bfd/hash.c.old	2003-12-01 01:33:01.000000000 -0500
   27.17 -+++ binutils-2.15/bfd/hash.c	2006-03-01 16:26:26.701991000 -0500
   27.18 -@@ -295,7 +295,7 @@
   27.19 - */
   27.20 - 
   27.21 - /* The default number of entries to use when creating a hash table.  */
   27.22 --#define DEFAULT_SIZE (4051)
   27.23 -+#define DEFAULT_SIZE (32749)
   27.24 - 
   27.25 - /* Create a new hash table, given a number of entries.  */
   27.26 - 
   27.27 -
    28.1 --- a/patches/binutils/2.15/160-allow-gcc-4.0.patch	Wed Oct 28 12:03:38 2009 +0100
    28.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.3 @@ -1,75 +0,0 @@
    28.4 -Fix found here: http://www.freelists.org/archives/openbeos/11-2005/msg00090.html
    28.5 -
    28.6 -Fixes:
    28.7 -In file included from ./targ-cpu.h:1,
    28.8 -                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/obj-elf.h:42,
    28.9 -                 from ./obj-format.h:1,
   28.10 -                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/te-linux.h:4,
   28.11 -                 from ./targ-env.h:1,
   28.12 -                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/as.h:626,
   28.13 -                 from /home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/app.c:30:
   28.14 -/home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/binutils-2.15/gas/config/tc-i386.h:451: error: array type has incomplete element type
   28.15 -make[3]: *** [app.o] Error 1
   28.16 -make[3]: Leaving directory `/home/dank/crosstool-new/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-binutils/gas'
   28.17 -
   28.18 -when building binutils-2.15 with gcc-4.0
   28.19 -
   28.20 -
   28.21 -diff -ur binutils-2.15.old/gas/as.h binutils-2.15/gas/as.h
   28.22 ---- binutils-2.15.old/gas/as.h	2003-11-22 18:14:21.000000000 -0800
   28.23 -+++ binutils-2.15/gas/as.h	2006-02-14 22:05:35.000000000 -0800
   28.24 -@@ -605,7 +605,26 @@
   28.25 - struct expressionS;
   28.26 - struct fix;
   28.27 - typedef struct symbol symbolS;
   28.28 --struct relax_type;
   28.29 -+
   28.30 -+/* JF moved this here from as.h under the theory that nobody except MACHINE.c
   28.31 -+   and write.c care about it anyway.  */
   28.32 -+/* [zooey]: the above no longer holds with gcc4, as it keeps bugging about
   28.33 -+            incomplete element types in arrays, if relax_type isn't defined
   28.34 -+            here. So I moved the definition back from tc.h to here. */
   28.35 -+struct relax_type
   28.36 -+{
   28.37 -+  /* Forward reach. Signed number. > 0.  */
   28.38 -+  long rlx_forward;
   28.39 -+  /* Backward reach. Signed number. < 0.  */
   28.40 -+  long rlx_backward;
   28.41 -+
   28.42 -+  /* Bytes length of this address.  */
   28.43 -+  unsigned char rlx_length;
   28.44 -+
   28.45 -+  /* Next longer relax-state.  0 means there is no 'next' relax-state.  */
   28.46 -+  relax_substateT rlx_more;
   28.47 -+};
   28.48 -+
   28.49 - typedef struct frag fragS;
   28.50 - 
   28.51 - #ifdef BFD_ASSEMBLER
   28.52 -diff -ur binutils-2.15.old/gas/tc.h binutils-2.15/gas/tc.h
   28.53 ---- binutils-2.15.old/gas/tc.h	2003-12-03 15:39:38.000000000 -0800
   28.54 -+++ binutils-2.15/gas/tc.h	2006-02-14 22:03:35.000000000 -0800
   28.55 -@@ -24,23 +24,6 @@
   28.56 - 
   28.57 - extern const pseudo_typeS md_pseudo_table[];
   28.58 - 
   28.59 --/* JF moved this here from as.h under the theory that nobody except MACHINE.c
   28.60 --   and write.c care about it anyway.  */
   28.61 --
   28.62 --struct relax_type
   28.63 --{
   28.64 --  /* Forward reach. Signed number. > 0.  */
   28.65 --  long rlx_forward;
   28.66 --  /* Backward reach. Signed number. < 0.  */
   28.67 --  long rlx_backward;
   28.68 --
   28.69 --  /* Bytes length of this address.  */
   28.70 --  unsigned char rlx_length;
   28.71 --
   28.72 --  /* Next longer relax-state.  0 means there is no 'next' relax-state.  */
   28.73 --  relax_substateT rlx_more;
   28.74 --};
   28.75 --
   28.76 - typedef struct relax_type relax_typeS;
   28.77 - 
   28.78 - extern const int md_reloc_size;	/* Size of a relocation record */
    29.1 --- a/patches/binutils/2.15/170-psignal.patch	Wed Oct 28 12:03:38 2009 +0100
    29.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.3 @@ -1,40 +0,0 @@
    29.4 -Make psignal prototype in libiberty match that in glibc.
    29.5 -
    29.6 -Fixes:
    29.7 -
    29.8 -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c: In function `psignal':
    29.9 -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:563: argument `signo' doesn't match prototype
   29.10 -/usr/include/signal.h:131: prototype declaration
   29.11 -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:563: argument `message' doesn't match prototype
   29.12 -/usr/include/signal.h:131: prototype declaration
   29.13 -gcc-2.95.3-glibc-2.1.3/binutils-2.15/libiberty/strsignal.c:568: warning: comparison between signed and unsigned
   29.14 -mprotect... make[1]: *** [strsignal.o] Error 1
   29.15 -make[1]: Leaving directory `/export/hda3/dkegel/queue/jobdir.produser_cpsm17/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-2.95.3-glibc-2.1.3/build-binutils/libiberty'
   29.16 -make: *** [all-libiberty] Error 2
   29.17 -
   29.18 -when building on red hat 7.1
   29.19 -though it's a bit of a mystery why libiberty's psignal is being compiled at
   29.20 -all, since red hat 7.1's glibc supports psignal (hence the error message)
   29.21 -
   29.22 ---- binutils-2.15/libiberty/strsignal.c.old	2005-04-18 13:57:40.000000000 -0700
   29.23 -+++ binutils-2.15/libiberty/strsignal.c	2005-04-18 13:59:09.000000000 -0700
   29.24 -@@ -544,7 +544,7 @@
   29.25 - 
   29.26 - /*
   29.27 - 
   29.28 --@deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message})
   29.29 -+@deftypefn Supplemental void psignal (int @var{signo}, const char *@var{message})
   29.30 - 
   29.31 - Print @var{message} to the standard error, followed by a colon,
   29.32 - followed by the description of the signal specified by @var{signo},
   29.33 -@@ -557,9 +557,7 @@
   29.34 - #ifndef HAVE_PSIGNAL
   29.35 - 
   29.36 - void
   29.37 --psignal (signo, message)
   29.38 --  unsigned signo;
   29.39 --  char *message;
   29.40 -+psignal (int signo, const char *message)
   29.41 - {
   29.42 -   if (signal_names == NULL)
   29.43 -     {
    30.1 --- a/patches/binutils/2.15/180-solaris-qsort.patch	Wed Oct 28 12:03:38 2009 +0100
    30.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.3 @@ -1,22 +0,0 @@
    30.4 -See http://sources.redhat.com/ml/binutils/2004-06/msg00114.html
    30.5 -
    30.6 ---- src/bfd/elflink.c.org	2004-07-05 09:11:42.920597000 -0400
    30.7 -+++ src/bfd/elflink.c	2004-07-05 09:12:59.240847000 -0400
    30.8 -@@ -2700,7 +2700,7 @@
    30.9 -     return vdiff > 0 ? 1 : -1;
   30.10 -   else
   30.11 -     {
   30.12 --      long sdiff = h1->root.u.def.section - h2->root.u.def.section;
   30.13 -+      long sdiff = h1->root.u.def.section->id - h2->root.u.def.section->id;
   30.14 -       if (sdiff != 0)
   30.15 - 	return sdiff > 0 ? 1 : -1;
   30.16 -     }
   30.17 -@@ -3954,7 +3954,7 @@
   30.18 - 		i = idx + 1;
   30.19 - 	      else
   30.20 - 		{
   30.21 --		  long sdiff = slook - h->root.u.def.section;
   30.22 -+		  long sdiff = slook->id - h->root.u.def.section->id;
   30.23 - 		  if (sdiff < 0)
   30.24 - 		    j = idx;
   30.25 - 		  else if (sdiff > 0)
    31.1 --- a/patches/binutils/2.15/190-vmx.patch	Wed Oct 28 12:03:38 2009 +0100
    31.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.3 @@ -1,45 +0,0 @@
    31.4 -Grabbed with
    31.5 -wget 'http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/opcodes/ppc-opc.c.diff?r1=1.70&r2=1.71&cvsroot=src'
    31.6 -See 
    31.7 -http://mail.gnu.org/archive/html/bug-binutils/2004-05/msg00071.html
    31.8 -and
    31.9 -http://sources.redhat.com/ml/binutils-cvs/2004-05/msg00111.html
   31.10 -
   31.11 -This fixes problems like
   31.12 -{standard input}: Assembler messages:
   31.13 -{standard input}:1: Error: Unrecognized opcode: `dssall' 
   31.14 -which show up in binutils-2.15 when building the Linux kernel,
   31.15 -or possibly failed compilations when building setjmp/longjmp in glibc.
   31.16 -
   31.17 -An alternative fix would be to pass -many to the assembler.
   31.18 -A patch to do that for glibc is at
   31.19 -wget 'http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2004-05&msgid=40B36E8C.9030609%40us.ibm.com'
   31.20 -Yet another, better, fix would be for gcc to generate assembly
   31.21 -that told the assembler which processor type to use.
   31.22 -Presumably the Linux kernel sources would need a fix, too.
   31.23 -Probably better to just fix binutils to accept sources that it used to.
   31.24 -
   31.25 -
   31.26 -===================================================================
   31.27 -RCS file: /cvs/src/src/opcodes/ppc-opc.c,v
   31.28 -retrieving revision 1.70
   31.29 -retrieving revision 1.71
   31.30 -diff -u -r1.70 -r1.71
   31.31 ---- src/opcodes/ppc-opc.c	2004/05/05 13:43:36	1.70
   31.32 -+++ src/opcodes/ppc-opc.c	2004/05/19 05:11:48	1.71
   31.33 -@@ -1004,8 +1004,13 @@
   31.34 - 
   31.35 -   /* If only one bit of the FXM field is set, we can use the new form
   31.36 -      of the instruction, which is faster.  Unlike the Power4 branch hint
   31.37 --     encoding, this is not backward compatible.  */
   31.38 --  else if ((dialect & PPC_OPCODE_POWER4) != 0 && (value & -value) == value)
   31.39 -+     encoding, this is not backward compatible.  Do not generate the
   31.40 -+     new form unless -mpower4 has been given, or -many and the two
   31.41 -+     operand form of mfcr was used.  */
   31.42 -+  else if ((value & -value) == value
   31.43 -+	   && ((dialect & PPC_OPCODE_POWER4) != 0
   31.44 -+	       || ((dialect & PPC_OPCODE_ANY) != 0
   31.45 -+		   && (insn & (0x3ff << 1)) == 19 << 1)))
   31.46 -     insn |= 1 << 20;
   31.47 - 
   31.48 -   /* Any other value on mfcr is an error.  */
    32.1 --- a/patches/binutils/2.15/200-arm-undef-imm.patch	Wed Oct 28 12:03:38 2009 +0100
    32.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.3 @@ -1,51 +0,0 @@
    32.4 -From http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/gas/config/tc-arm.c.diff?r1=1.168&r2=1.169&cvsroot=src
    32.5 -See also http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-July/023128.html,
    32.6 -"[CRITICAL PATCH] 2.6: fix silent build error]"
    32.7 -
    32.8 -Revision 1.169, Fri Jul 2 11:12:29 2004 UTC (19 hours, 4 minutes ago) by nickc
    32.9 -Branch: MAIN
   32.10 -CVS Tags: binutils_latest_snapshot, HEAD
   32.11 -Changes since 1.168: +14 -1 lines
   32.12 -
   32.13 -(md_apply_fix3:BFD_RELOC_ARM_IMMEDIATE): Do not allow values which have come
   32.14 -from undefined symbols.
   32.15 -Always consider this fixup to have been processed as a reloc cannot be
   32.16 -generated for it.
   32.17 -
   32.18 -
   32.19 -===================================================================
   32.20 -RCS file: /cvs/src/src/gas/config/tc-arm.c,v
   32.21 -retrieving revision 1.168
   32.22 -retrieving revision 1.169
   32.23 -diff -u -r1.168 -r1.169
   32.24 ---- src/gas/config/tc-arm.c	2004/04/30 10:51:12	1.168
   32.25 -+++ src/gas/config/tc-arm.c	2004/07/02 11:12:29	1.169
   32.26 -@@ -12186,6 +12186,20 @@
   32.27 -   switch (fixP->fx_r_type)
   32.28 -     {
   32.29 -     case BFD_RELOC_ARM_IMMEDIATE:
   32.30 -+      /* We claim that this fixup has been processed here,
   32.31 -+	 even if in fact we generate an error because we do
   32.32 -+	 not have a reloc for it, so tc_gen_reloc will reject it.  */
   32.33 -+      fixP->fx_done = 1;
   32.34 -+
   32.35 -+      if (fixP->fx_addsy
   32.36 -+	  && ! S_IS_DEFINED (fixP->fx_addsy))
   32.37 -+	{
   32.38 -+	  as_bad_where (fixP->fx_file, fixP->fx_line,
   32.39 -+			_("undefined symbol %s used as an immediate value"),
   32.40 -+			S_GET_NAME (fixP->fx_addsy));
   32.41 -+	  break;
   32.42 -+	}
   32.43 -+
   32.44 -       newimm = validate_immediate (value);
   32.45 -       temp = md_chars_to_number (buf, INSN_SIZE);
   32.46 - 
   32.47 -@@ -12202,7 +12216,6 @@
   32.48 - 
   32.49 -       newimm |= (temp & 0xfffff000);
   32.50 -       md_number_to_chars (buf, (valueT) newimm, INSN_SIZE);
   32.51 --      fixP->fx_done = 1;
   32.52 -       break;
   32.53 - 
   32.54 -     case BFD_RELOC_ARM_ADRL_IMMEDIATE:
    33.1 --- a/patches/binutils/2.15/210-skip-comments.patch	Wed Oct 28 12:03:38 2009 +0100
    33.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.3 @@ -1,101 +0,0 @@
    33.4 -Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
    33.5 -Fixes
    33.6 -localealias.s:544: Error: junk at end of line, first unrecognized character is `,' 
    33.7 -when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
    33.8 -
    33.9 -Paths adjusted to match crosstool's patcher.
   33.10 -
   33.11 -Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
   33.12 -From: Andreas Schwab <schwab at suse dot de>
   33.13 -To: Nathan Sidwell <nathan at codesourcery dot com>
   33.14 -Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
   33.15 -Date: Fri, 23 Apr 2004 22:27:19 +0200
   33.16 -Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
   33.17 -
   33.18 -Nathan Sidwell <nathan@codesourcery.com> writes:
   33.19 -
   33.20 -> Index: read.c
   33.21 -> ===================================================================
   33.22 -> RCS file: /cvs/src/src/gas/read.c,v
   33.23 -> retrieving revision 1.76
   33.24 -> diff -c -3 -p -r1.76 read.c
   33.25 -> *** read.c	12 Mar 2004 17:48:12 -0000	1.76
   33.26 -> --- read.c	18 Mar 2004 09:56:05 -0000
   33.27 -> *************** read_a_source_file (char *name)
   33.28 -> *** 1053,1059 ****
   33.29 ->   #endif
   33.30 ->   	  input_line_pointer--;
   33.31 ->   	  /* Report unknown char as ignored.  */
   33.32 -> ! 	  ignore_rest_of_line ();
   33.33 ->   	}
   33.34 ->   
   33.35 ->   #ifdef md_after_pass_hook
   33.36 -> --- 1053,1059 ----
   33.37 ->   #endif
   33.38 ->   	  input_line_pointer--;
   33.39 ->   	  /* Report unknown char as ignored.  */
   33.40 -> ! 	  demand_empty_rest_of_line ();
   33.41 ->   	}
   33.42 ->   
   33.43 ->   #ifdef md_after_pass_hook
   33.44 -
   33.45 -This means that the unknown character is no longer ignored, despite the
   33.46 -comment.  As a side effect a line starting with a line comment character
   33.47 -not followed by APP in NO_APP mode now triggers an error instead of just a
   33.48 -warning, breaking builds of glibc on m68k-linux.  Earlier in
   33.49 -read_a_source_file where #APP is handled there is another comment that
   33.50 -claims that unknown comments are ignored, when in fact they aren't (only
   33.51 -the initial line comment character is skipped).
   33.52 -
   33.53 -Note that the presence of #APP will mess up the line counters, but
   33.54 -that appears to be difficult to fix.
   33.55 -
   33.56 -Andreas.
   33.57 -
   33.58 -2004-04-23  Andreas Schwab  <schwab@suse.de>
   33.59 -
   33.60 -	* read.c (read_a_source_file): Ignore unknown text after line
   33.61 -	comment character.  Fix misleading comment.
   33.62 -
   33.63 ---- binutils/gas/read.c.~1.78.~	2004-04-23 08:58:23.000000000 +0200
   33.64 -+++ binutils/gas/read.c	2004-04-23 21:49:01.000000000 +0200
   33.65 -@@ -1,6 +1,6 @@
   33.66 - /* read.c - read a source file -
   33.67 -    Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
   33.68 --   1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   33.69 -+   1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
   33.70 - 
   33.71 - This file is part of GAS, the GNU Assembler.
   33.72 - 
   33.73 -@@ -950,10 +950,14 @@ read_a_source_file (char *name)
   33.74 - 	      unsigned int new_length;
   33.75 - 	      char *tmp_buf = 0;
   33.76 - 
   33.77 --	      bump_line_counters ();
   33.78 - 	      s = input_line_pointer;
   33.79 - 	      if (strncmp (s, "APP\n", 4))
   33.80 --		continue;	/* We ignore it */
   33.81 -+		{
   33.82 -+		  /* We ignore it */
   33.83 -+		  ignore_rest_of_line ();
   33.84 -+		  continue;
   33.85 -+		}
   33.86 -+	      bump_line_counters ();
   33.87 - 	      s += 4;
   33.88 - 
   33.89 - 	      sb_new (&sbuf);
   33.90 -@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
   33.91 - 	    continue;
   33.92 - #endif
   33.93 - 	  input_line_pointer--;
   33.94 --	  /* Report unknown char as ignored.  */
   33.95 -+	  /* Report unknown char as error.  */
   33.96 - 	  demand_empty_rest_of_line ();
   33.97 - 	}
   33.98 - 
   33.99 -
  33.100 --- 
  33.101 -Andreas Schwab, SuSE Labs, schwab@suse.de
  33.102 -SuSE Linux AG, Maxfeldstra&#xC3;e 5, 90409 N&#xC3;rnberg, Germany
  33.103 -Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
  33.104 -"And now for something completely different."
    34.1 --- a/patches/binutils/2.15/220-cross-gprof.patch	Wed Oct 28 12:03:38 2009 +0100
    34.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.3 @@ -1,22 +0,0 @@
    34.4 ---- binutils-2.15/configure.old	2004-07-21 21:36:47.000000000 -0700
    34.5 -+++ binutils-2.15/configure	2004-07-21 21:37:08.000000000 -0700
    34.6 -@@ -999,7 +999,7 @@
    34.7 - 
    34.8 - # Some tools are only suitable for building in a "native" situation.
    34.9 - # Remove these if host!=target.  
   34.10 --native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
   34.11 -+native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
   34.12 - 
   34.13 - # Similarly, some are only suitable for cross toolchains.
   34.14 - # Remove these if host=target.
   34.15 ---- binutils-2.15/configure.in.old	2004-07-21 21:37:19.000000000 -0700
   34.16 -+++ binutils-2.15/configure.in	2004-07-21 21:37:34.000000000 -0700
   34.17 -@@ -236,7 +236,7 @@
   34.18 - 
   34.19 - # Some tools are only suitable for building in a "native" situation.
   34.20 - # Remove these if host!=target.  
   34.21 --native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
   34.22 -+native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
   34.23 - 
   34.24 - # Similarly, some are only suitable for cross toolchains.
   34.25 - # Remove these if host=target.
    35.1 --- a/patches/binutils/2.15/230-gccpr15247-fix.patch	Wed Oct 28 12:03:38 2009 +0100
    35.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.3 @@ -1,192 +0,0 @@
    35.4 -See
    35.5 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15247
    35.6 -
    35.7 -Fixes spurious error
    35.8 -/tmp/ccvNi4ou.s: Assembler messages:
    35.9 -/tmp/ccvNi4ou.s:2310: Error: Illegal operands: There are only 32 single precision f registers; [0-31]
   35.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
   35.11 -
   35.12 -when compiling glibc's dosincos.c with gcc-3.4.0
   35.13 -
   35.14 -===================================================================
   35.15 -RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
   35.16 -retrieving revision 1.9
   35.17 -retrieving revision 1.10
   35.18 -diff -u -r1.9 -r1.10
   35.19 ---- src/opcodes/sparc-opc.c	2004/01/18 23:46:32	1.9
   35.20 -+++ src/opcodes/sparc-opc.c	2004/04/20 10:23:51	1.10
   35.21 -@@ -1273,110 +1273,72 @@
   35.22 - #define FM_DF 2		/* v9 */
   35.23 - #define FM_QF 3		/* v9 */
   35.24 - 
   35.25 --#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \
   35.26 --{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z,f,g", flags, v9 }, \
   35.27 --{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z,f,g", flags, v9 }
   35.28 --
   35.29 --#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \
   35.30 --{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \
   35.31 --{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \
   35.32 --{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \
   35.33 --{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 }
   35.34 -+#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \
   35.35 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z," args, flags, v9 }, \
   35.36 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z," args, flags, v9 }
   35.37 -+
   35.38 -+#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \
   35.39 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \
   35.40 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \
   35.41 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \
   35.42 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 }
   35.43 - 
   35.44 - /* FIXME: use fmovicc/fmovfcc? */ /* v9 */
   35.45 --#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \
   35.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 }, \
   35.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 }, \
   35.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 }, \
   35.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 }, \
   35.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 }, \
   35.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 }
   35.52 --
   35.53 --/* v9 */ fmovcc  ("fmovda",	FM_DF, CONDA, FCONDA, 0),
   35.54 --/* v9 */ fmovcc  ("fmovqa",	FM_QF, CONDA, FCONDA, 0),
   35.55 --/* v9 */ fmovcc  ("fmovsa",	FM_SF, CONDA, FCONDA, 0),
   35.56 --/* v9 */ fmovicc ("fmovdcc",	FM_DF, CONDCC, 0),
   35.57 --/* v9 */ fmovicc ("fmovqcc",	FM_QF, CONDCC, 0),
   35.58 --/* v9 */ fmovicc ("fmovscc",	FM_SF, CONDCC, 0),
   35.59 --/* v9 */ fmovicc ("fmovdcs",	FM_DF, CONDCS, 0),
   35.60 --/* v9 */ fmovicc ("fmovqcs",	FM_QF, CONDCS, 0),
   35.61 --/* v9 */ fmovicc ("fmovscs",	FM_SF, CONDCS, 0),
   35.62 --/* v9 */ fmovcc  ("fmovde",	FM_DF, CONDE, FCONDE, 0),
   35.63 --/* v9 */ fmovcc  ("fmovqe",	FM_QF, CONDE, FCONDE, 0),
   35.64 --/* v9 */ fmovcc  ("fmovse",	FM_SF, CONDE, FCONDE, 0),
   35.65 --/* v9 */ fmovcc  ("fmovdg",	FM_DF, CONDG, FCONDG, 0),
   35.66 --/* v9 */ fmovcc  ("fmovqg",	FM_QF, CONDG, FCONDG, 0),
   35.67 --/* v9 */ fmovcc  ("fmovsg",	FM_SF, CONDG, FCONDG, 0),
   35.68 --/* v9 */ fmovcc  ("fmovdge",	FM_DF, CONDGE, FCONDGE, 0),
   35.69 --/* v9 */ fmovcc  ("fmovqge",	FM_QF, CONDGE, FCONDGE, 0),
   35.70 --/* v9 */ fmovcc  ("fmovsge",	FM_SF, CONDGE, FCONDGE, 0),
   35.71 --/* v9 */ fmovicc ("fmovdgeu",	FM_DF, CONDGEU, F_ALIAS),
   35.72 --/* v9 */ fmovicc ("fmovqgeu",	FM_QF, CONDGEU, F_ALIAS),
   35.73 --/* v9 */ fmovicc ("fmovsgeu",	FM_SF, CONDGEU, F_ALIAS),
   35.74 --/* v9 */ fmovicc ("fmovdgu",	FM_DF, CONDGU, 0),
   35.75 --/* v9 */ fmovicc ("fmovqgu",	FM_QF, CONDGU, 0),
   35.76 --/* v9 */ fmovicc ("fmovsgu",	FM_SF, CONDGU, 0),
   35.77 --/* v9 */ fmovcc  ("fmovdl",	FM_DF, CONDL, FCONDL, 0),
   35.78 --/* v9 */ fmovcc  ("fmovql",	FM_QF, CONDL, FCONDL, 0),
   35.79 --/* v9 */ fmovcc  ("fmovsl",	FM_SF, CONDL, FCONDL, 0),
   35.80 --/* v9 */ fmovcc  ("fmovdle",	FM_DF, CONDLE, FCONDLE, 0),
   35.81 --/* v9 */ fmovcc  ("fmovqle",	FM_QF, CONDLE, FCONDLE, 0),
   35.82 --/* v9 */ fmovcc  ("fmovsle",	FM_SF, CONDLE, FCONDLE, 0),
   35.83 --/* v9 */ fmovicc ("fmovdleu",	FM_DF, CONDLEU, 0),
   35.84 --/* v9 */ fmovicc ("fmovqleu",	FM_QF, CONDLEU, 0),
   35.85 --/* v9 */ fmovicc ("fmovsleu",	FM_SF, CONDLEU, 0),
   35.86 --/* v9 */ fmovfcc ("fmovdlg",	FM_DF, FCONDLG, 0),
   35.87 --/* v9 */ fmovfcc ("fmovqlg",	FM_QF, FCONDLG, 0),
   35.88 --/* v9 */ fmovfcc ("fmovslg",	FM_SF, FCONDLG, 0),
   35.89 --/* v9 */ fmovicc ("fmovdlu",	FM_DF, CONDLU, F_ALIAS),
   35.90 --/* v9 */ fmovicc ("fmovqlu",	FM_QF, CONDLU, F_ALIAS),
   35.91 --/* v9 */ fmovicc ("fmovslu",	FM_SF, CONDLU, F_ALIAS),
   35.92 --/* v9 */ fmovcc  ("fmovdn",	FM_DF, CONDN, FCONDN, 0),
   35.93 --/* v9 */ fmovcc  ("fmovqn",	FM_QF, CONDN, FCONDN, 0),
   35.94 --/* v9 */ fmovcc  ("fmovsn",	FM_SF, CONDN, FCONDN, 0),
   35.95 --/* v9 */ fmovcc  ("fmovdne",	FM_DF, CONDNE, FCONDNE, 0),
   35.96 --/* v9 */ fmovcc  ("fmovqne",	FM_QF, CONDNE, FCONDNE, 0),
   35.97 --/* v9 */ fmovcc  ("fmovsne",	FM_SF, CONDNE, FCONDNE, 0),
   35.98 --/* v9 */ fmovicc ("fmovdneg",	FM_DF, CONDNEG, 0),
   35.99 --/* v9 */ fmovicc ("fmovqneg",	FM_QF, CONDNEG, 0),
  35.100 --/* v9 */ fmovicc ("fmovsneg",	FM_SF, CONDNEG, 0),
  35.101 --/* v9 */ fmovcc  ("fmovdnz",	FM_DF, CONDNZ, FCONDNZ, F_ALIAS),
  35.102 --/* v9 */ fmovcc  ("fmovqnz",	FM_QF, CONDNZ, FCONDNZ, F_ALIAS),
  35.103 --/* v9 */ fmovcc  ("fmovsnz",	FM_SF, CONDNZ, FCONDNZ, F_ALIAS),
  35.104 --/* v9 */ fmovfcc ("fmovdo",	FM_DF, FCONDO, 0),
  35.105 --/* v9 */ fmovfcc ("fmovqo",	FM_QF, FCONDO, 0),
  35.106 --/* v9 */ fmovfcc ("fmovso",	FM_SF, FCONDO, 0),
  35.107 --/* v9 */ fmovicc ("fmovdpos",	FM_DF, CONDPOS, 0),
  35.108 --/* v9 */ fmovicc ("fmovqpos",	FM_QF, CONDPOS, 0),
  35.109 --/* v9 */ fmovicc ("fmovspos",	FM_SF, CONDPOS, 0),
  35.110 --/* v9 */ fmovfcc ("fmovdu",	FM_DF, FCONDU, 0),
  35.111 --/* v9 */ fmovfcc ("fmovqu",	FM_QF, FCONDU, 0),
  35.112 --/* v9 */ fmovfcc ("fmovsu",	FM_SF, FCONDU, 0),
  35.113 --/* v9 */ fmovfcc ("fmovdue",	FM_DF, FCONDUE, 0),
  35.114 --/* v9 */ fmovfcc ("fmovque",	FM_QF, FCONDUE, 0),
  35.115 --/* v9 */ fmovfcc ("fmovsue",	FM_SF, FCONDUE, 0),
  35.116 --/* v9 */ fmovfcc ("fmovdug",	FM_DF, FCONDUG, 0),
  35.117 --/* v9 */ fmovfcc ("fmovqug",	FM_QF, FCONDUG, 0),
  35.118 --/* v9 */ fmovfcc ("fmovsug",	FM_SF, FCONDUG, 0),
  35.119 --/* v9 */ fmovfcc ("fmovduge",	FM_DF, FCONDUGE, 0),
  35.120 --/* v9 */ fmovfcc ("fmovquge",	FM_QF, FCONDUGE, 0),
  35.121 --/* v9 */ fmovfcc ("fmovsuge",	FM_SF, FCONDUGE, 0),
  35.122 --/* v9 */ fmovfcc ("fmovdul",	FM_DF, FCONDUL, 0),
  35.123 --/* v9 */ fmovfcc ("fmovqul",	FM_QF, FCONDUL, 0),
  35.124 --/* v9 */ fmovfcc ("fmovsul",	FM_SF, FCONDUL, 0),
  35.125 --/* v9 */ fmovfcc ("fmovdule",	FM_DF, FCONDULE, 0),
  35.126 --/* v9 */ fmovfcc ("fmovqule",	FM_QF, FCONDULE, 0),
  35.127 --/* v9 */ fmovfcc ("fmovsule",	FM_SF, FCONDULE, 0),
  35.128 --/* v9 */ fmovicc ("fmovdvc",	FM_DF, CONDVC, 0),
  35.129 --/* v9 */ fmovicc ("fmovqvc",	FM_QF, CONDVC, 0),
  35.130 --/* v9 */ fmovicc ("fmovsvc",	FM_SF, CONDVC, 0),
  35.131 --/* v9 */ fmovicc ("fmovdvs",	FM_DF, CONDVS, 0),
  35.132 --/* v9 */ fmovicc ("fmovqvs",	FM_QF, CONDVS, 0),
  35.133 --/* v9 */ fmovicc ("fmovsvs",	FM_SF, CONDVS, 0),
  35.134 --/* v9 */ fmovcc  ("fmovdz",	FM_DF, CONDZ, FCONDZ, F_ALIAS),
  35.135 --/* v9 */ fmovcc  ("fmovqz",	FM_QF, CONDZ, FCONDZ, F_ALIAS),
  35.136 --/* v9 */ fmovcc  ("fmovsz",	FM_SF, CONDZ, FCONDZ, F_ALIAS),
  35.137 --
  35.138 -+#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \
  35.139 -+{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0),  "z," args, flags | F_FLOAT, v9 }, \
  35.140 -+{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \
  35.141 -+{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0),  F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0),  "Z," args, flags | F_FLOAT, v9 }, \
  35.142 -+{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \
  35.143 -+{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \
  35.144 -+{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 }
  35.145 -+
  35.146 -+#define fmovicc(suffix, cond, flags) /* v9 */ \
  35.147 -+fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags),		\
  35.148 -+fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags),		\
  35.149 -+fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags)
  35.150 -+
  35.151 -+#define fmovfcc(suffix, fcond, flags) /* v9 */ \
  35.152 -+fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags),		\
  35.153 -+fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags),		\
  35.154 -+fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags)
  35.155 -+
  35.156 -+#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \
  35.157 -+fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags),	\
  35.158 -+fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags),	\
  35.159 -+fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags)
  35.160 -+
  35.161 -+/* v9 */ fmovcc  ("a", CONDA, FCONDA, 0),
  35.162 -+/* v9 */ fmovicc ("cc", CONDCC, 0),
  35.163 -+/* v9 */ fmovicc ("cs", CONDCS, 0),
  35.164 -+/* v9 */ fmovcc  ("e", CONDE, FCONDE, 0),
  35.165 -+/* v9 */ fmovcc  ("g", CONDG, FCONDG, 0),
  35.166 -+/* v9 */ fmovcc  ("ge", CONDGE, FCONDGE, 0),
  35.167 -+/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS),
  35.168 -+/* v9 */ fmovicc ("gu", CONDGU, 0),
  35.169 -+/* v9 */ fmovcc  ("l", CONDL, FCONDL, 0),
  35.170 -+/* v9 */ fmovcc  ("le", CONDLE, FCONDLE, 0),
  35.171 -+/* v9 */ fmovicc ("leu", CONDLEU, 0),
  35.172 -+/* v9 */ fmovfcc ("lg", FCONDLG, 0),
  35.173 -+/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS),
  35.174 -+/* v9 */ fmovcc  ("n", CONDN, FCONDN, 0),
  35.175 -+/* v9 */ fmovcc  ("ne", CONDNE, FCONDNE, 0),
  35.176 -+/* v9 */ fmovicc ("neg", CONDNEG, 0),
  35.177 -+/* v9 */ fmovcc  ("nz", CONDNZ, FCONDNZ, F_ALIAS),
  35.178 -+/* v9 */ fmovfcc ("o", FCONDO, 0),
  35.179 -+/* v9 */ fmovicc ("pos", CONDPOS, 0),
  35.180 -+/* v9 */ fmovfcc ("u", FCONDU, 0),
  35.181 -+/* v9 */ fmovfcc ("ue", FCONDUE, 0),
  35.182 -+/* v9 */ fmovfcc ("ug", FCONDUG, 0),
  35.183 -+/* v9 */ fmovfcc ("uge", FCONDUGE, 0),
  35.184 -+/* v9 */ fmovfcc ("ul", FCONDUL, 0),
  35.185 -+/* v9 */ fmovfcc ("ule", FCONDULE, 0),
  35.186 -+/* v9 */ fmovicc ("vc", CONDVC, 0),
  35.187 -+/* v9 */ fmovicc ("vs", CONDVS, 0),
  35.188 -+/* v9 */ fmovcc  ("z", CONDZ, FCONDZ, F_ALIAS),
  35.189 -+
  35.190 -+#undef fmoviccx /* v9 */
  35.191 -+#undef fmovfccx /* v9 */
  35.192 -+#undef fmovccx /* v9 */
  35.193 - #undef fmovicc /* v9 */
  35.194 - #undef fmovfcc /* v9 */
  35.195 - #undef fmovcc /* v9 */
    36.1 --- a/patches/binutils/2.15/240-ld-callahan.patch	Wed Oct 28 12:03:38 2009 +0100
    36.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.3 @@ -1,677 +0,0 @@
    36.4 -Signed-off-by: dank@kegel.com
    36.5 -Fixes ld speed issue. 
    36.6 -See http://weblogs.mozillazine.org/roc/archives/2005/02/optimizing_gnu.html
    36.7 -See thread "Re: optimizations for 3x speedup in ld",
    36.8 -http://sources.redhat.com/ml/binutils/2005-03/msg00847.html
    36.9 -
   36.10 -Wildcard section matching enhancement, backported from the binutils CVS tree.
   36.11 -Here's the CVS log comment from the original change to ldlang.c:
   36.12 -
   36.13 -revision 1.177
   36.14 -date: 2005/04/06 15:33:02;  author: jakub;  state: Exp;  lines: +438 -51
   36.15 -2005-04-06  Jakub Jelinek  <jakub@redhat.com>
   36.16 -
   36.17 -        * ldlang.c: Formatting.
   36.18 -        (walk_wild_consider_section): Remember return value from wildcardp.
   36.19 -        (is_simple_wild): Use strcspn instead of 2 strpbrk calls and strlen.
   36.20 -        (wild_spec_can_overlap): Use strcspn instead of strpbrk and strlen.
   36.21 -
   36.22 -2005-04-06  Robert O'Callahan  <rocallahan@novell.com>
   36.23 -
   36.24 -        * ld.h (lean_section_userdata_type): Remove.
   36.25 -        (fat_section_userdata_type): Remove file field.
   36.26 -        (SECTION_USERDATA_SIZE): Remove.
   36.27 -        * ldlang.c (init_os): Eliminate initialization of unused
   36.28 -        lean_section_userdata_type.
   36.29 -
   36.30 -        * ldlang.h (callback_t, walk_wild_section_handler_t): New
   36.31 -        typedefs.
   36.32 -        (struct lang_wild_statement_struct): Add walk_wild_section_handler
   36.33 -        and handler_data fields.
   36.34 -        * ldlang.c (callback_t): Removed.
   36.35 -        (walk_wild_consider_section, walk_wild_section_general,
   36.36 -        section_iterator_callback, find_section, is_simple_wild,
   36.37 -        match_simple_wild, walk_wild_section_specs1_wild0,
   36.38 -        walk_wild_section_specs1_wild1, walk_wild_section_specs2_wild1,
   36.39 -        walk_wild_section_specs3_wild2, walk_wild_section_specs4_wild2,
   36.40 -        wild_spec_can_overlap, analyze_walk_wild_section_handler): New
   36.41 -        functions.
   36.42 -        (lang_add_wild): Call analyze_walk_wild_section_handler.
   36.43 -        (walk_wild_section): Renamed to walk_wild_section_general and
   36.44 -        created a wrapper function.
   36.45 -        (section_iterator_callback_data): New typedef.
   36.46 -
   36.47 -Note that bfd_get_section_by_name_if didn't exist in 2.15, so it was backported
   36.48 -as well.
   36.49 -
   36.50 ---- binutils-2.15/bfd/bfd-in2.h.old	2004-05-17 15:35:56.000000000 -0400
   36.51 -+++ binutils-2.15/bfd/bfd-in2.h	2006-02-09 11:54:45.989940000 -0500
   36.52 -@@ -1425,6 +1425,10 @@
   36.53 - 
   36.54 - asection *bfd_get_section_by_name (bfd *abfd, const char *name);
   36.55 - 
   36.56 -+asection *bfd_get_section_by_name_if (bfd *abfd, const char *name,
   36.57 -+   bfd_boolean (*operation) (bfd *, asection *, void *),
   36.58 -+   void *user_storage);
   36.59 -+
   36.60 - char *bfd_get_unique_section_name
   36.61 -    (bfd *abfd, const char *templat, int *count);
   36.62 - 
   36.63 ---- binutils-2.15/bfd/section.c.old	2003-12-01 01:33:01.000000000 -0500
   36.64 -+++ binutils-2.15/bfd/section.c	2006-01-23 14:16:54.768993000 -0500
   36.65 -@@ -801,6 +801,57 @@
   36.66 - 
   36.67 - /*
   36.68 - FUNCTION
   36.69 -+	bfd_get_section_by_name_if
   36.70 -+
   36.71 -+SYNOPSIS
   36.72 -+	asection *bfd_get_section_by_name_if
   36.73 -+	  (bfd *abfd,
   36.74 -+	   const char *name,
   36.75 -+	   bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
   36.76 -+	   void *obj);
   36.77 -+
   36.78 -+DESCRIPTION
   36.79 -+	Call the provided function @var{func} for each section
   36.80 -+	attached to the BFD @var{abfd} whose name matches @var{name},
   36.81 -+	passing @var{obj} as an argument. The function will be called
   36.82 -+	as if by
   36.83 -+
   36.84 -+|	func (abfd, the_section, obj);
   36.85 -+
   36.86 -+	It returns the first section for which @var{func} returns true,
   36.87 -+	otherwise <<NULL>>.
   36.88 -+
   36.89 -+*/
   36.90 -+
   36.91 -+asection *
   36.92 -+bfd_get_section_by_name_if (bfd *abfd, const char *name,
   36.93 -+			    bfd_boolean (*operation) (bfd *,
   36.94 -+						      asection *,
   36.95 -+						      void *),
   36.96 -+			    void *user_storage)
   36.97 -+{
   36.98 -+  struct section_hash_entry *sh;
   36.99 -+  unsigned long hash;
  36.100 -+
  36.101 -+  sh = section_hash_lookup (&abfd->section_htab, name, FALSE, FALSE);
  36.102 -+  if (sh == NULL)
  36.103 -+    return NULL;
  36.104 -+
  36.105 -+  hash = sh->root.hash;
  36.106 -+  do
  36.107 -+    {
  36.108 -+      if ((*operation) (abfd, &sh->section, user_storage))
  36.109 -+	return &sh->section;
  36.110 -+      sh = (struct section_hash_entry *) sh->root.next;
  36.111 -+    }
  36.112 -+  while (sh != NULL && sh->root.hash == hash
  36.113 -+	 && strcmp (sh->root.string, name) == 0);
  36.114 -+
  36.115 -+  return NULL;
  36.116 -+}
  36.117 -+
  36.118 -+/*
  36.119 -+FUNCTION
  36.120 - 	bfd_get_unique_section_name
  36.121 - 
  36.122 - SYNOPSIS
  36.123 ---- binutils-2.15/ld/ldlang.c.old	2004-05-17 15:36:16.000000000 -0400
  36.124 -+++ binutils-2.15/ld/ldlang.c	2006-01-23 13:40:12.745499000 -0500
  36.125 -@@ -81,9 +81,6 @@
  36.126 - static void lang_record_phdrs (void);
  36.127 - static void lang_do_version_exports_section (void);
  36.128 - 
  36.129 --typedef void (*callback_t) (lang_wild_statement_type *, struct wildcard_list *,
  36.130 --			    asection *, lang_input_statement_type *, void *);
  36.131 --
  36.132 - /* Exported variables.  */
  36.133 - lang_output_section_statement_type *abs_output_section;
  36.134 - lang_statement_list_type lang_output_section_statement;
  36.135 -@@ -138,21 +135,71 @@
  36.136 - 
  36.137 - /* Generic traversal routines for finding matching sections.  */
  36.138 - 
  36.139 -+/* Try processing a section against a wildcard.  This just calls
  36.140 -+   the callback unless the filename exclusion list is present
  36.141 -+   and excludes the file.  It's hardly ever present so this
  36.142 -+   function is very fast.  */
  36.143 -+
  36.144 -+static void
  36.145 -+walk_wild_consider_section (lang_wild_statement_type *ptr,
  36.146 -+			    lang_input_statement_type *file,
  36.147 -+			    asection *s,
  36.148 -+			    struct wildcard_list *sec,
  36.149 -+			    callback_t callback,
  36.150 -+			    void *data)
  36.151 -+{
  36.152 -+  bfd_boolean skip = FALSE;
  36.153 -+  struct name_list *list_tmp;
  36.154 -+
  36.155 -+  /* Don't process sections from files which were
  36.156 -+     excluded.  */
  36.157 -+  for (list_tmp = sec->spec.exclude_name_list;
  36.158 -+       list_tmp;
  36.159 -+       list_tmp = list_tmp->next)
  36.160 -+    {
  36.161 -+      bfd_boolean is_wildcard = wildcardp (list_tmp->name);
  36.162 -+      if (is_wildcard)
  36.163 -+	skip = fnmatch (list_tmp->name, file->filename, 0) == 0;
  36.164 -+      else
  36.165 -+	skip = strcmp (list_tmp->name, file->filename) == 0;
  36.166 -+
  36.167 -+      /* If this file is part of an archive, and the archive is
  36.168 -+	 excluded, exclude this file.  */
  36.169 -+      if (! skip && file->the_bfd != NULL
  36.170 -+	  && file->the_bfd->my_archive != NULL
  36.171 -+	  && file->the_bfd->my_archive->filename != NULL)
  36.172 -+	{
  36.173 -+	  if (is_wildcard)
  36.174 -+	    skip = fnmatch (list_tmp->name,
  36.175 -+			    file->the_bfd->my_archive->filename,
  36.176 -+			    0) == 0;
  36.177 -+	  else
  36.178 -+	    skip = strcmp (list_tmp->name,
  36.179 -+			   file->the_bfd->my_archive->filename) == 0;
  36.180 -+	}
  36.181 -+
  36.182 -+      if (skip)
  36.183 -+	break;
  36.184 -+    }
  36.185 -+
  36.186 -+  if (!skip)
  36.187 -+    (*callback) (ptr, sec, s, file, data);
  36.188 -+}
  36.189 -+
  36.190 -+/* Lowest common denominator routine that can handle everything correctly,
  36.191 -+   but slowly.  */
  36.192 -+
  36.193 - static void
  36.194 --walk_wild_section (lang_wild_statement_type *ptr,
  36.195 --		   lang_input_statement_type *file,
  36.196 --		   callback_t callback,
  36.197 --		   void *data)
  36.198 -+walk_wild_section_general (lang_wild_statement_type *ptr,
  36.199 -+			   lang_input_statement_type *file,
  36.200 -+			   callback_t callback,
  36.201 -+			   void *data)
  36.202 - {
  36.203 -   asection *s;
  36.204 --
  36.205 --  if (file->just_syms_flag)
  36.206 --    return;
  36.207 -+  struct wildcard_list *sec;
  36.208 - 
  36.209 -   for (s = file->the_bfd->sections; s != NULL; s = s->next)
  36.210 -     {
  36.211 --      struct wildcard_list *sec;
  36.212 --
  36.213 -       sec = ptr->section_list;
  36.214 -       if (sec == NULL)
  36.215 - 	(*callback) (ptr, sec, s, file, data);
  36.216 -@@ -160,39 +207,8 @@
  36.217 -       while (sec != NULL)
  36.218 - 	{
  36.219 - 	  bfd_boolean skip = FALSE;
  36.220 --	  struct name_list *list_tmp;
  36.221 --
  36.222 --	  /* Don't process sections from files which were
  36.223 --	     excluded.  */
  36.224 --	  for (list_tmp = sec->spec.exclude_name_list;
  36.225 --	       list_tmp;
  36.226 --	       list_tmp = list_tmp->next)
  36.227 --	    {
  36.228 --	      if (wildcardp (list_tmp->name))
  36.229 --		skip = fnmatch (list_tmp->name, file->filename, 0) == 0;
  36.230 --	      else
  36.231 --		skip = strcmp (list_tmp->name, file->filename) == 0;
  36.232 --
  36.233 --	      /* If this file is part of an archive, and the archive is
  36.234 --		 excluded, exclude this file.  */
  36.235 --	      if (! skip && file->the_bfd != NULL
  36.236 --		  && file->the_bfd->my_archive != NULL
  36.237 --		  && file->the_bfd->my_archive->filename != NULL)
  36.238 --		{
  36.239 --		  if (wildcardp (list_tmp->name))
  36.240 --		    skip = fnmatch (list_tmp->name,
  36.241 --				    file->the_bfd->my_archive->filename,
  36.242 --				    0) == 0;
  36.243 --		  else
  36.244 --		    skip = strcmp (list_tmp->name,
  36.245 --				   file->the_bfd->my_archive->filename) == 0;
  36.246 --		}
  36.247 --
  36.248 --	      if (skip)
  36.249 --		break;
  36.250 --	    }
  36.251 - 
  36.252 --	  if (!skip && sec->spec.name != NULL)
  36.253 -+	  if (sec->spec.name != NULL)
  36.254 - 	    {
  36.255 - 	      const char *sname = bfd_get_section_name (file->the_bfd, s);
  36.256 - 
  36.257 -@@ -203,13 +219,381 @@
  36.258 - 	    }
  36.259 - 
  36.260 - 	  if (!skip)
  36.261 --	    (*callback) (ptr, sec, s, file, data);
  36.262 -+	    walk_wild_consider_section (ptr, file, s, sec, callback, data);
  36.263 - 
  36.264 - 	  sec = sec->next;
  36.265 - 	}
  36.266 -     }
  36.267 - }
  36.268 - 
  36.269 -+/* Routines to find a single section given its name.  If there's more
  36.270 -+   than one section with that name, we report that.  */
  36.271 -+
  36.272 -+typedef struct
  36.273 -+{
  36.274 -+  asection *found_section;
  36.275 -+  bfd_boolean multiple_sections_found;
  36.276 -+} section_iterator_callback_data;
  36.277 -+
  36.278 -+static bfd_boolean
  36.279 -+section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
  36.280 -+{
  36.281 -+  section_iterator_callback_data *d = data;
  36.282 -+
  36.283 -+  if (d->found_section != NULL)
  36.284 -+    {
  36.285 -+      d->multiple_sections_found = TRUE;
  36.286 -+      return TRUE;
  36.287 -+    }
  36.288 -+
  36.289 -+  d->found_section = s;
  36.290 -+  return FALSE;
  36.291 -+}
  36.292 -+
  36.293 -+static asection *
  36.294 -+find_section (lang_input_statement_type *file,
  36.295 -+	      struct wildcard_list *sec,
  36.296 -+	      bfd_boolean *multiple_sections_found)
  36.297 -+{
  36.298 -+  section_iterator_callback_data cb_data = { NULL, FALSE };
  36.299 -+
  36.300 -+  bfd_get_section_by_name_if (file->the_bfd, sec->spec.name, 
  36.301 -+			      section_iterator_callback, &cb_data);
  36.302 -+  *multiple_sections_found = cb_data.multiple_sections_found;
  36.303 -+  return cb_data.found_section;
  36.304 -+}
  36.305 -+
  36.306 -+/* Code for handling simple wildcards without going through fnmatch,
  36.307 -+   which can be expensive because of charset translations etc.  */
  36.308 -+
  36.309 -+/* A simple wild is a literal string followed by a single '*',
  36.310 -+   where the literal part is at least 4 characters long.  */
  36.311 -+
  36.312 -+static bfd_boolean
  36.313 -+is_simple_wild (const char *name)
  36.314 -+{
  36.315 -+  size_t len = strcspn (name, "*?[");
  36.316 -+  return len >= 4 && name[len] == '*' && name[len + 1] == '\0';
  36.317 -+}
  36.318 -+
  36.319 -+static bfd_boolean
  36.320 -+match_simple_wild (const char *pattern, const char *name)
  36.321 -+{
  36.322 -+  /* The first four characters of the pattern are guaranteed valid
  36.323 -+     non-wildcard characters.  So we can go faster.  */
  36.324 -+  if (pattern[0] != name[0] || pattern[1] != name[1]
  36.325 -+      || pattern[2] != name[2] || pattern[3] != name[3])
  36.326 -+    return FALSE;
  36.327 -+
  36.328 -+  pattern += 4;
  36.329 -+  name += 4;
  36.330 -+  while (*pattern != '*')
  36.331 -+    if (*name++ != *pattern++)
  36.332 -+      return FALSE;
  36.333 -+
  36.334 -+  return TRUE;
  36.335 -+}
  36.336 -+
  36.337 -+/* Specialized, optimized routines for handling different kinds of
  36.338 -+   wildcards */
  36.339 -+
  36.340 -+static void
  36.341 -+walk_wild_section_specs1_wild0 (lang_wild_statement_type *ptr,
  36.342 -+				lang_input_statement_type *file,
  36.343 -+				callback_t callback,
  36.344 -+				void *data)
  36.345 -+{
  36.346 -+  /* We can just do a hash lookup for the section with the right name.
  36.347 -+     But if that lookup discovers more than one section with the name
  36.348 -+     (should be rare), we fall back to the general algorithm because
  36.349 -+     we would otherwise have to sort the sections to make sure they
  36.350 -+     get processed in the bfd's order.  */
  36.351 -+  bfd_boolean multiple_sections_found;
  36.352 -+  struct wildcard_list *sec0 = ptr->handler_data[0];
  36.353 -+  asection *s0 = find_section (file, sec0, &multiple_sections_found);
  36.354 -+
  36.355 -+  if (multiple_sections_found)
  36.356 -+    walk_wild_section_general (ptr, file, callback, data);
  36.357 -+  else if (s0)
  36.358 -+    walk_wild_consider_section (ptr, file, s0, sec0, callback, data);
  36.359 -+}
  36.360 -+
  36.361 -+static void
  36.362 -+walk_wild_section_specs1_wild1 (lang_wild_statement_type *ptr,
  36.363 -+				lang_input_statement_type *file,
  36.364 -+				callback_t callback,
  36.365 -+				void *data)
  36.366 -+{
  36.367 -+  asection *s;
  36.368 -+  struct wildcard_list *wildsec0 = ptr->handler_data[0];
  36.369 -+
  36.370 -+  for (s = file->the_bfd->sections; s != NULL; s = s->next)
  36.371 -+    {
  36.372 -+      const char *sname = bfd_get_section_name (file->the_bfd, s);
  36.373 -+      bfd_boolean skip = !match_simple_wild (wildsec0->spec.name, sname);
  36.374 -+
  36.375 -+      if (!skip)
  36.376 -+	walk_wild_consider_section (ptr, file, s, wildsec0, callback, data);
  36.377 -+    }
  36.378 -+}
  36.379 -+
  36.380 -+static void
  36.381 -+walk_wild_section_specs2_wild1 (lang_wild_statement_type *ptr,
  36.382 -+				lang_input_statement_type *file,
  36.383 -+				callback_t callback,
  36.384 -+				void *data)
  36.385 -+{
  36.386 -+  asection *s;
  36.387 -+  struct wildcard_list *sec0 = ptr->handler_data[0];
  36.388 -+  struct wildcard_list *wildsec1 = ptr->handler_data[1];
  36.389 -+  bfd_boolean multiple_sections_found;
  36.390 -+  asection *s0 = find_section (file, sec0, &multiple_sections_found);
  36.391 -+
  36.392 -+  if (multiple_sections_found)
  36.393 -+    {
  36.394 -+      walk_wild_section_general (ptr, file, callback, data);
  36.395 -+      return;
  36.396 -+    }
  36.397 -+
  36.398 -+  /* Note that if the section was not found, s0 is NULL and
  36.399 -+     we'll simply never succeed the s == s0 test below.  */
  36.400 -+  for (s = file->the_bfd->sections; s != NULL; s = s->next)
  36.401 -+    {
  36.402 -+      /* Recall that in this code path, a section cannot satisfy more
  36.403 -+	 than one spec, so if s == s0 then it cannot match
  36.404 -+	 wildspec1.  */
  36.405 -+      if (s == s0)
  36.406 -+	walk_wild_consider_section (ptr, file, s, sec0, callback, data);
  36.407 -+      else
  36.408 -+	{
  36.409 -+	  const char *sname = bfd_get_section_name (file->the_bfd, s);
  36.410 -+	  bfd_boolean skip = !match_simple_wild (wildsec1->spec.name, sname);
  36.411 -+
  36.412 -+	  if (!skip)
  36.413 -+	    walk_wild_consider_section (ptr, file, s, wildsec1, callback,
  36.414 -+					data);
  36.415 -+	}
  36.416 -+    }
  36.417 -+}
  36.418 -+
  36.419 -+static void
  36.420 -+walk_wild_section_specs3_wild2 (lang_wild_statement_type *ptr,
  36.421 -+				lang_input_statement_type *file,
  36.422 -+				callback_t callback,
  36.423 -+				void *data)
  36.424 -+{
  36.425 -+  asection *s;
  36.426 -+  struct wildcard_list *sec0 = ptr->handler_data[0];
  36.427 -+  struct wildcard_list *wildsec1 = ptr->handler_data[1];
  36.428 -+  struct wildcard_list *wildsec2 = ptr->handler_data[2];
  36.429 -+  bfd_boolean multiple_sections_found;
  36.430 -+  asection *s0 = find_section (file, sec0, &multiple_sections_found);
  36.431 -+
  36.432 -+  if (multiple_sections_found)
  36.433 -+    {
  36.434 -+      walk_wild_section_general (ptr, file, callback, data);
  36.435 -+      return;
  36.436 -+    }
  36.437 -+
  36.438 -+  for (s = file->the_bfd->sections; s != NULL; s = s->next)
  36.439 -+    {
  36.440 -+      if (s == s0)
  36.441 -+	walk_wild_consider_section (ptr, file, s, sec0, callback, data);
  36.442 -+      else
  36.443 -+	{
  36.444 -+	  const char *sname = bfd_get_section_name (file->the_bfd, s);
  36.445 -+	  bfd_boolean skip = !match_simple_wild (wildsec1->spec.name, sname);
  36.446 -+
  36.447 -+	  if (!skip)
  36.448 -+	    walk_wild_consider_section (ptr, file, s, wildsec1, callback, data);
  36.449 -+	  else
  36.450 -+	    {
  36.451 -+	      skip = !match_simple_wild (wildsec2->spec.name, sname);
  36.452 -+	      if (!skip)
  36.453 -+		walk_wild_consider_section (ptr, file, s, wildsec2, callback,
  36.454 -+					    data);
  36.455 -+	    }
  36.456 -+	}
  36.457 -+    }
  36.458 -+}
  36.459 -+
  36.460 -+static void
  36.461 -+walk_wild_section_specs4_wild2 (lang_wild_statement_type *ptr,
  36.462 -+				lang_input_statement_type *file,
  36.463 -+				callback_t callback,
  36.464 -+				void *data)
  36.465 -+{
  36.466 -+  asection *s;
  36.467 -+  struct wildcard_list *sec0 = ptr->handler_data[0];
  36.468 -+  struct wildcard_list *sec1 = ptr->handler_data[1];
  36.469 -+  struct wildcard_list *wildsec2 = ptr->handler_data[2];
  36.470 -+  struct wildcard_list *wildsec3 = ptr->handler_data[3];
  36.471 -+  bfd_boolean multiple_sections_found;
  36.472 -+  asection *s0 = find_section (file, sec0, &multiple_sections_found), *s1;
  36.473 -+
  36.474 -+  if (multiple_sections_found)
  36.475 -+    {
  36.476 -+      walk_wild_section_general (ptr, file, callback, data);
  36.477 -+      return;
  36.478 -+    }
  36.479 -+
  36.480 -+  s1 = find_section (file, sec1, &multiple_sections_found);
  36.481 -+  if (multiple_sections_found)
  36.482 -+    {
  36.483 -+      walk_wild_section_general (ptr, file, callback, data);
  36.484 -+      return;
  36.485 -+    }
  36.486 -+
  36.487 -+  for (s = file->the_bfd->sections; s != NULL; s = s->next)
  36.488 -+    {
  36.489 -+      if (s == s0)
  36.490 -+	walk_wild_consider_section (ptr, file, s, sec0, callback, data);
  36.491 -+      else
  36.492 -+	if (s == s1)
  36.493 -+	  walk_wild_consider_section (ptr, file, s, sec1, callback, data);
  36.494 -+	else
  36.495 -+	  {
  36.496 -+	    const char *sname = bfd_get_section_name (file->the_bfd, s);
  36.497 -+	    bfd_boolean skip = !match_simple_wild (wildsec2->spec.name,
  36.498 -+						   sname);
  36.499 -+
  36.500 -+	    if (!skip)
  36.501 -+	      walk_wild_consider_section (ptr, file, s, wildsec2, callback,
  36.502 -+					  data);
  36.503 -+	    else
  36.504 -+	      {
  36.505 -+		skip = !match_simple_wild (wildsec3->spec.name, sname);
  36.506 -+		if (!skip)
  36.507 -+		  walk_wild_consider_section (ptr, file, s, wildsec3,
  36.508 -+					      callback, data);
  36.509 -+	      }
  36.510 -+	  }
  36.511 -+    }
  36.512 -+}
  36.513 -+
  36.514 -+static void
  36.515 -+walk_wild_section (lang_wild_statement_type *ptr,
  36.516 -+		   lang_input_statement_type *file,
  36.517 -+		   callback_t callback,
  36.518 -+		   void *data)
  36.519 -+{
  36.520 -+  if (file->just_syms_flag)
  36.521 -+    return;
  36.522 -+
  36.523 -+  (*ptr->walk_wild_section_handler) (ptr, file, callback, data);
  36.524 -+}
  36.525 -+
  36.526 -+/* Returns TRUE when name1 is a wildcard spec that might match
  36.527 -+   something name2 can match.  We're conservative: we return FALSE
  36.528 -+   only if the prefixes of name1 and name2 are different up to the
  36.529 -+   first wildcard character.  */
  36.530 -+
  36.531 -+static bfd_boolean
  36.532 -+wild_spec_can_overlap (const char *name1, const char *name2)
  36.533 -+{
  36.534 -+  size_t prefix1_len = strcspn (name1, "?*[");
  36.535 -+  size_t prefix2_len = strcspn (name2, "?*[");
  36.536 -+  size_t min_prefix_len;
  36.537 -+
  36.538 -+  /* Note that if there is no wildcard character, then we treat the
  36.539 -+     terminating 0 as part of the prefix.  Thus ".text" won't match
  36.540 -+     ".text." or ".text.*", for example.  */
  36.541 -+  if (name1[prefix1_len] == '\0')
  36.542 -+    prefix1_len++;
  36.543 -+  if (name2[prefix2_len] == '\0')
  36.544 -+    prefix2_len++;
  36.545 -+
  36.546 -+  min_prefix_len = prefix1_len < prefix2_len ? prefix1_len : prefix2_len;
  36.547 -+
  36.548 -+  return memcmp (name1, name2, min_prefix_len) == 0;
  36.549 -+}
  36.550 -+
  36.551 -+/* Select specialized code to handle various kinds of wildcard
  36.552 -+   statements.  */
  36.553 -+
  36.554 -+static void
  36.555 -+analyze_walk_wild_section_handler (lang_wild_statement_type *ptr)
  36.556 -+{
  36.557 -+  int sec_count = 0;
  36.558 -+  int wild_name_count = 0;
  36.559 -+  struct wildcard_list *sec;
  36.560 -+  int signature;
  36.561 -+  int data_counter;
  36.562 -+
  36.563 -+  ptr->walk_wild_section_handler = walk_wild_section_general;
  36.564 -+
  36.565 -+  /* Count how many wildcard_specs there are, and how many of those
  36.566 -+     actually use wildcards in the name.  Also, bail out if any of the
  36.567 -+     wildcard names are NULL. (Can this actually happen?
  36.568 -+     walk_wild_section used to test for it.)  And bail out if any
  36.569 -+     of the wildcards are more complex than a simple string
  36.570 -+     ending in a single '*'.  */
  36.571 -+  for (sec = ptr->section_list; sec != NULL; sec = sec->next)
  36.572 -+    {
  36.573 -+      ++sec_count;
  36.574 -+      if (sec->spec.name == NULL)
  36.575 -+	return;
  36.576 -+      if (wildcardp (sec->spec.name))
  36.577 -+	{
  36.578 -+	  ++wild_name_count;
  36.579 -+	  if (!is_simple_wild (sec->spec.name))
  36.580 -+	    return;
  36.581 -+	}
  36.582 -+    }
  36.583 -+
  36.584 -+  /* The zero-spec case would be easy to optimize but it doesn't
  36.585 -+     happen in practice.  Likewise, more than 4 specs doesn't
  36.586 -+     happen in practice.  */
  36.587 -+  if (sec_count == 0 || sec_count > 4)
  36.588 -+    return;
  36.589 -+
  36.590 -+  /* Check that no two specs can match the same section.  */
  36.591 -+  for (sec = ptr->section_list; sec != NULL; sec = sec->next)
  36.592 -+    {
  36.593 -+      struct wildcard_list *sec2;
  36.594 -+      for (sec2 = sec->next; sec2 != NULL; sec2 = sec2->next)
  36.595 -+	{
  36.596 -+	  if (wild_spec_can_overlap (sec->spec.name, sec2->spec.name))
  36.597 -+	    return;
  36.598 -+	}
  36.599 -+    }
  36.600 -+
  36.601 -+  signature = (sec_count << 8) + wild_name_count;
  36.602 -+  switch (signature)
  36.603 -+    {
  36.604 -+    case 0x0100:
  36.605 -+      ptr->walk_wild_section_handler = walk_wild_section_specs1_wild0;
  36.606 -+      break;
  36.607 -+    case 0x0101:
  36.608 -+      ptr->walk_wild_section_handler = walk_wild_section_specs1_wild1;
  36.609 -+      break;
  36.610 -+    case 0x0201:
  36.611 -+      ptr->walk_wild_section_handler = walk_wild_section_specs2_wild1;
  36.612 -+      break;
  36.613 -+    case 0x0302:
  36.614 -+      ptr->walk_wild_section_handler = walk_wild_section_specs3_wild2;
  36.615 -+      break;
  36.616 -+    case 0x0402:
  36.617 -+      ptr->walk_wild_section_handler = walk_wild_section_specs4_wild2;
  36.618 -+      break;
  36.619 -+    default:
  36.620 -+      return;
  36.621 -+    }
  36.622 -+
  36.623 -+  /* Now fill the data array with pointers to the specs, first the
  36.624 -+     specs with non-wildcard names, then the specs with wildcard
  36.625 -+     names.  It's OK to process the specs in different order from the
  36.626 -+     given order, because we've already determined that no section
  36.627 -+     will match more than one spec.  */
  36.628 -+  data_counter = 0;
  36.629 -+  for (sec = ptr->section_list; sec != NULL; sec = sec->next)
  36.630 -+    if (!wildcardp (sec->spec.name))
  36.631 -+      ptr->handler_data[data_counter++] = sec;
  36.632 -+  for (sec = ptr->section_list; sec != NULL; sec = sec->next)
  36.633 -+    if (wildcardp (sec->spec.name))
  36.634 -+      ptr->handler_data[data_counter++] = sec;
  36.635 -+}
  36.636 -+
  36.637 - /* Handle a wild statement for a single file F.  */
  36.638 - 
  36.639 - static void
  36.640 -@@ -4353,6 +4737,7 @@
  36.641 -   new->section_list = section_list;
  36.642 -   new->keep_sections = keep_sections;
  36.643 -   lang_list_init (&new->children);
  36.644 -+  analyze_walk_wild_section_handler (new);
  36.645 - }
  36.646 - 
  36.647 - void
  36.648 ---- binutils-2.15/ld/ldlang.h.old	2004-05-17 15:36:16.000000000 -0400
  36.649 -+++ binutils-2.15/ld/ldlang.h	2006-01-23 13:32:33.653292000 -0500
  36.650 -@@ -295,7 +295,17 @@
  36.651 -   union lang_statement_union *file;
  36.652 - } lang_afile_asection_pair_statement_type;
  36.653 - 
  36.654 --typedef struct lang_wild_statement_struct
  36.655 -+typedef struct lang_wild_statement_struct lang_wild_statement_type;
  36.656 -+
  36.657 -+typedef void (*callback_t) (lang_wild_statement_type *, struct wildcard_list *,
  36.658 -+			    asection *, lang_input_statement_type *, void *);
  36.659 -+
  36.660 -+typedef void (*walk_wild_section_handler_t) (lang_wild_statement_type *,
  36.661 -+					     lang_input_statement_type *,
  36.662 -+					     callback_t callback,
  36.663 -+					     void *data);
  36.664 -+
  36.665 -+struct lang_wild_statement_struct
  36.666 - {
  36.667 -   lang_statement_header_type header;
  36.668 -   const char *filename;
  36.669 -@@ -303,7 +313,10 @@
  36.670 -   struct wildcard_list *section_list;
  36.671 -   bfd_boolean keep_sections;
  36.672 -   lang_statement_list_type children;
  36.673 --} lang_wild_statement_type;
  36.674 -+
  36.675 -+  walk_wild_section_handler_t walk_wild_section_handler;
  36.676 -+  struct wildcard_list *handler_data[4];
  36.677 -+};
  36.678 - 
  36.679 - typedef struct lang_address_statement_struct
  36.680 - {
    37.1 --- a/patches/binutils/2.15/250-ld-stabs-tweak.patch	Wed Oct 28 12:03:38 2009 +0100
    37.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.3 @@ -1,33 +0,0 @@
    37.4 -Signed-off-by: dank@kegel.com
    37.5 -
    37.6 -See http://sourceware.org/ml/binutils/2005-12/msg00270.html
    37.7 -http://sourceware.org/ml/binutils-cvs/2005-12/msg00139.html
    37.8 -
    37.9 -STABS hash table size change, backported from the binutils CVS tree.  Here's
   37.10 -the CVS log comment for the original change:
   37.11 -
   37.12 -revision 1.25
   37.13 -date: 2005/12/29 10:29:23;  author: nickc;  state: Exp;  lines: +2 -3
   37.14 -(_bfd_link_section_stabs): Use bfd_hash_table_init rather than
   37.15 -bfd_hash_table_init_n(...,251) so that the size of the hash table can be
   37.16 -controlled by the user.
   37.17 -
   37.18 -Note that tunable hash table size changes were added after 2.15.  The effect
   37.19 -of this change is to make bfd use its default hash table size for the stabs
   37.20 -hash as well.
   37.21 -
   37.22 -
   37.23 ---- binutils-2.15/bfd/stabs.c.old	2004-05-17 15:36:04.000000000 -0400
   37.24 -+++ binutils-2.15/bfd/stabs.c	2006-02-09 15:21:56.567014000 -0500
   37.25 -@@ -241,9 +241,8 @@
   37.26 - 	goto error_return;
   37.27 -       /* Make sure the first byte is zero.  */
   37.28 -       (void) _bfd_stringtab_add (sinfo->strings, "", TRUE, TRUE);
   37.29 --      if (! bfd_hash_table_init_n (&sinfo->includes.root,
   37.30 --				   stab_link_includes_newfunc,
   37.31 --				   251))
   37.32 -+      if (! bfd_hash_table_init (&sinfo->includes.root,
   37.33 -+				   stab_link_includes_newfunc))
   37.34 - 	goto error_return;
   37.35 -       sinfo->stabstr = bfd_make_section_anyway (abfd, ".stabstr");
   37.36 -       sinfo->stabstr->flags |= SEC_HAS_CONTENTS | SEC_READONLY | SEC_DEBUGGING;
    38.1 --- a/patches/binutils/2.15/260-s390-invalid-insn-format.patch	Wed Oct 28 12:03:38 2009 +0100
    38.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.3 @@ -1,42 +0,0 @@
    38.4 -Message-ID: <000801c48f60$cec16630$9103a8c0@ULOC5012>
    38.5 -From: "Michael Geiger" <mcgege@gmx.de>
    38.6 -To: <dank@kegel.com>
    38.7 -Subject: Patch for cross compiling s/390 kernel on linux host
    38.8 -Date: Tue, 31 Aug 2004 15:45:41 +0200
    38.9 -
   38.10 -Dear Dan,
   38.11 -
   38.12 -I had big problems compiling a kernel for s/390 on my linux host - I tried
   38.13 -different chains from crosstool-0.28-rc34 and finally succeded with
   38.14 -gcc-3.3.4-glibc-2.3.2 after applying another patch to binutils-2.15
   38.15 -(attached).
   38.16 -All compilations of the different kernel versions I tried stopped with
   38.17 -"Invalid .insn format" somewhere. I checked the recent cvs version of
   38.18 -binutils and applied the latest diff to gas/config/tc-s390.c and that solved
   38.19 -it.
   38.20 -
   38.21 -Greetings
   38.22 -
   38.23 -Michael Geiger
   38.24 -
   38.25 -
   38.26 -diff -u -r1.39 -r1.40
   38.27 ---- src/gas/config/tc-s390.c	2004/05/06 11:01:48	1.39
   38.28 -+++ src/gas/config/tc-s390.c	2004/06/15 12:38:08	1.40
   38.29 -@@ -1596,13 +1596,13 @@
   38.30 -   if (exp.X_op == O_constant)
   38.31 -     {
   38.32 -       if (   (   opformat->oplen == 6
   38.33 --	      && exp.X_add_number >= 0
   38.34 -+	      && (addressT) exp.X_add_number >= 0
   38.35 - 	      && (addressT) exp.X_add_number < (1ULL << 48))
   38.36 - 	  || (   opformat->oplen == 4
   38.37 --	      && exp.X_add_number >= 0
   38.38 -+	      && (addressT) exp.X_add_number >= 0
   38.39 - 	      && (addressT) exp.X_add_number < (1ULL << 32))
   38.40 - 	  || (   opformat->oplen == 2
   38.41 --	      && exp.X_add_number >= 0
   38.42 -+	      && (addressT) exp.X_add_number >= 0
   38.43 - 	      && (addressT) exp.X_add_number < (1ULL << 16)))
   38.44 - 	md_number_to_chars (insn, exp.X_add_number, opformat->oplen);
   38.45 -       else
    39.1 --- a/patches/binutils/2.18.50.0.4/100-arm-uclibcgnueabi.patch	Wed Oct 28 12:03:38 2009 +0100
    39.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.3 @@ -1,35 +0,0 @@
    39.4 -Original patch from: ../crosstool-NG/ct-ng.trunk/patches/binutils/2.18.50.0.4/100-arm-uclibcgnueabi.patch
    39.5 -
    39.6 --= BEGIN original header =-
    39.7 -Patch from buildroot, updated to binutils-2.18.50.0.6.
    39.8 -
    39.9 - binutils-2.18.50.0.6/configure    |    2     1     1     0 +-
   39.10 - binutils-2.18.50.0.6/configure.ac |    2     1     1     0 +-
   39.11 - 2 files changed, 2 insertions(+), 2 deletions(-)
   39.12 -
   39.13 --= END original header =-
   39.14 -
   39.15 -diff -durN binutils-2.18.50.0.4.orig/configure binutils-2.18.50.0.4/configure
   39.16 ---- binutils-2.18.50.0.4.orig/configure	2008-02-08 17:44:09.000000000 +0100
   39.17 -+++ binutils-2.18.50.0.4/configure	2009-03-07 12:17:29.000000000 +0100
   39.18 -@@ -2249,7 +2249,7 @@
   39.19 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   39.20 -     libgloss_dir=arm
   39.21 -     ;;
   39.22 --  arm*-*-linux-gnueabi)
   39.23 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   39.24 -     noconfigdirs="$noconfigdirs target-qthreads"
   39.25 -     noconfigdirs="$noconfigdirs target-libobjc"
   39.26 -     case ${with_newlib} in
   39.27 -diff -durN binutils-2.18.50.0.4.orig/configure.ac binutils-2.18.50.0.4/configure.ac
   39.28 ---- binutils-2.18.50.0.4.orig/configure.ac	2008-02-08 17:44:09.000000000 +0100
   39.29 -+++ binutils-2.18.50.0.4/configure.ac	2009-03-07 12:17:30.000000000 +0100
   39.30 -@@ -526,7 +526,7 @@
   39.31 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   39.32 -     libgloss_dir=arm
   39.33 -     ;;
   39.34 --  arm*-*-linux-gnueabi)
   39.35 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   39.36 -     noconfigdirs="$noconfigdirs target-qthreads"
   39.37 -     noconfigdirs="$noconfigdirs target-libobjc"
   39.38 -     case ${with_newlib} in
    40.1 --- a/patches/binutils/2.18.50.0.4/110-ld-makefile-path.patch	Wed Oct 28 12:03:38 2009 +0100
    40.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.3 @@ -1,35 +0,0 @@
    40.4 -Original patch from: ../crosstool-NG/ct-ng.trunk/patches/binutils/2.18.50.0.4/110-ld-makefile-path.patch
    40.5 -
    40.6 --= BEGIN original header =-
    40.7 -Fix ld scripts path, copied from buildroot.
    40.8 -
    40.9 - binutils-2.18.50.0.6/ld/Makefile.am |    2     1     1     0 +-
   40.10 - binutils-2.18.50.0.6/ld/Makefile.in |    2     1     1     0 +-
   40.11 - 2 files changed, 2 insertions(+), 2 deletions(-)
   40.12 -
   40.13 --= END original header =-
   40.14 -
   40.15 -diff -durN binutils-2.18.50.0.4.orig/ld/Makefile.am binutils-2.18.50.0.4/ld/Makefile.am
   40.16 ---- binutils-2.18.50.0.4.orig/ld/Makefile.am	2007-11-03 21:40:37.000000000 +0100
   40.17 -+++ binutils-2.18.50.0.4/ld/Makefile.am	2009-03-07 12:17:30.000000000 +0100
   40.18 -@@ -18,7 +18,7 @@
   40.19 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   40.20 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   40.21 - # directives need to be different for native and cross linkers.
   40.22 --scriptdir = $(tooldir)/lib
   40.23 -+scriptdir = $(libdir)
   40.24 - 
   40.25 - EMUL = @EMUL@
   40.26 - EMULATION_OFILES = @EMULATION_OFILES@
   40.27 -diff -durN binutils-2.18.50.0.4.orig/ld/Makefile.in binutils-2.18.50.0.4/ld/Makefile.in
   40.28 ---- binutils-2.18.50.0.4.orig/ld/Makefile.in	2007-11-03 21:40:37.000000000 +0100
   40.29 -+++ binutils-2.18.50.0.4/ld/Makefile.in	2009-03-07 12:17:30.000000000 +0100
   40.30 -@@ -287,7 +287,7 @@
   40.31 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   40.32 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   40.33 - # directives need to be different for native and cross linkers.
   40.34 --scriptdir = $(tooldir)/lib
   40.35 -+scriptdir = $(libdir)
   40.36 - BASEDIR = $(srcdir)/..
   40.37 - BFDDIR = $(BASEDIR)/bfd
   40.38 - INCDIR = $(BASEDIR)/include
    41.1 --- a/patches/binutils/2.18.50.0.4/120-check-ldrunpath-length.patch	Wed Oct 28 12:03:38 2009 +0100
    41.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.3 @@ -1,31 +0,0 @@
    41.4 -Original patch from: ../crosstool-NG/ct-ng.trunk/patches/binutils/2.18.50.0.4/120-check-ldrunpath-length.patch
    41.5 -
    41.6 --= BEGIN original header =-
    41.7 -Check LD_RUN_PATH length, copied from buildroot.
    41.8 -
    41.9 - binutils-2.18.50.0.6/ld/emultempl/elf32.em |    4     4     0     0 ++++
   41.10 - 1 file changed, 4 insertions(+)
   41.11 -
   41.12 --= END original header =-
   41.13 -
   41.14 -diff -durN binutils-2.18.50.0.4.orig/ld/emultempl/elf32.em binutils-2.18.50.0.4/ld/emultempl/elf32.em
   41.15 ---- binutils-2.18.50.0.4.orig/ld/emultempl/elf32.em	2008-02-08 17:44:55.000000000 +0100
   41.16 -+++ binutils-2.18.50.0.4/ld/emultempl/elf32.em	2009-03-07 12:17:31.000000000 +0100
   41.17 -@@ -1220,6 +1220,8 @@
   41.18 - 	      && command_line.rpath == NULL)
   41.19 - 	    {
   41.20 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   41.21 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   41.22 -+		  lib_path = NULL;
   41.23 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   41.24 - 						      force))
   41.25 - 		break;
   41.26 -@@ -1404,6 +1406,8 @@
   41.27 -   rpath = command_line.rpath;
   41.28 -   if (rpath == NULL)
   41.29 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   41.30 -+  if ((rpath) && (strlen (rpath) == 0))
   41.31 -+      rpath = NULL;
   41.32 -   if (! (bfd_elf_size_dynamic_sections
   41.33 - 	 (output_bfd, command_line.soname, rpath,
   41.34 - 	  command_line.filter_shlib,
    42.1 --- a/patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    42.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.3 @@ -1,69 +0,0 @@
    42.4 -Original patch from: ../crosstool-NG/ct-ng.trunk/patches/binutils/2.18.50.0.4/130-i386-no-divide-comment.patch
    42.5 -
    42.6 --= BEGIN original header =-
    42.7 --= END original header =-
    42.8 -
    42.9 -diff -durN binutils-2.18.50.0.4.orig/gas/config/tc-i386.c binutils-2.18.50.0.4/gas/config/tc-i386.c
   42.10 ---- binutils-2.18.50.0.4.orig/gas/config/tc-i386.c	2008-02-08 17:44:10.000000000 +0100
   42.11 -+++ binutils-2.18.50.0.4/gas/config/tc-i386.c	2009-03-07 12:17:31.000000000 +0100
   42.12 -@@ -300,24 +300,10 @@
   42.13 - #endif
   42.14 - 	;
   42.15 - 
   42.16 --#if (defined (TE_I386AIX)				\
   42.17 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   42.18 --	 && !defined (TE_GNU)				\
   42.19 --	 && !defined (TE_LINUX)				\
   42.20 -- 	 && !defined (TE_NETWARE)			\
   42.21 --	 && !defined (TE_FreeBSD)			\
   42.22 --	 && !defined (TE_NetBSD)))
   42.23 - /* This array holds the chars that always start a comment.  If the
   42.24 --   pre-processor is disabled, these aren't very useful.  The option
   42.25 --   --divide will remove '/' from this list.  */
   42.26 --const char *i386_comment_chars = "#/";
   42.27 --#define SVR4_COMMENT_CHARS 1
   42.28 --#define PREFIX_SEPARATOR '\\'
   42.29 --
   42.30 --#else
   42.31 -+   pre-processor is disabled, these aren't very useful.  */
   42.32 - const char *i386_comment_chars = "#";
   42.33 - #define PREFIX_SEPARATOR '/'
   42.34 --#endif
   42.35 - 
   42.36 - /* This array holds the chars that only start a comment at the beginning of
   42.37 -    a line.  If the line seems to have the form '# 123 filename'
   42.38 -@@ -7243,20 +7229,6 @@
   42.39 -       break;
   42.40 - 
   42.41 -     case OPTION_DIVIDE:
   42.42 --#ifdef SVR4_COMMENT_CHARS
   42.43 --      {
   42.44 --	char *n, *t;
   42.45 --	const char *s;
   42.46 --
   42.47 --	n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
   42.48 --	t = n;
   42.49 --	for (s = i386_comment_chars; *s != '\0'; s++)
   42.50 --	  if (*s != '/')
   42.51 --	    *t++ = *s;
   42.52 --	*t = '\0';
   42.53 --	i386_comment_chars = n;
   42.54 --      }
   42.55 --#endif
   42.56 -       break;
   42.57 - 
   42.58 -     case OPTION_MARCH:
   42.59 -@@ -7392,13 +7364,8 @@
   42.60 -   fprintf (stream, _("\
   42.61 -   --32/--64               generate 32bit/64bit code\n"));
   42.62 - #endif
   42.63 --#ifdef SVR4_COMMENT_CHARS
   42.64 --  fprintf (stream, _("\
   42.65 --  --divide                do not treat `/' as a comment character\n"));
   42.66 --#else
   42.67 -   fprintf (stream, _("\
   42.68 -   --divide                ignored\n"));
   42.69 --#endif
   42.70 -   fprintf (stream, _("\
   42.71 -   -march=CPU[,+EXTENSION...]\n\
   42.72 -                           generate code for CPU and EXTENSION, CPU is one of:\n\
    43.1 --- a/patches/binutils/2.18.50.0.6/100-arm-uclibcgnueabi.patch	Wed Oct 28 12:03:38 2009 +0100
    43.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.3 @@ -1,30 +0,0 @@
    43.4 -Patch from buildroot, updated to binutils-2.18.50.0.6.
    43.5 -
    43.6 - binutils-2.18.50.0.6/configure    |    2     1     1     0 +-
    43.7 - binutils-2.18.50.0.6/configure.ac |    2     1     1     0 +-
    43.8 - 2 files changed, 2 insertions(+), 2 deletions(-)
    43.9 -
   43.10 -diff -durN binutils-2.18.50.0.6.orig/configure binutils-2.18.50.0.6/configure
   43.11 ---- binutils-2.18.50.0.6.orig/configure	2008-04-03 18:54:04.000000000 +0200
   43.12 -+++ binutils-2.18.50.0.6/configure	2008-05-02 23:18:42.000000000 +0200
   43.13 -@@ -2298,7 +2298,7 @@
   43.14 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   43.15 -     libgloss_dir=arm
   43.16 -     ;;
   43.17 --  arm*-*-linux-gnueabi)
   43.18 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   43.19 -     noconfigdirs="$noconfigdirs target-qthreads"
   43.20 -     noconfigdirs="$noconfigdirs target-libobjc"
   43.21 -     case ${with_newlib} in
   43.22 -diff -durN binutils-2.18.50.0.6.orig/configure.ac binutils-2.18.50.0.6/configure.ac
   43.23 ---- binutils-2.18.50.0.6.orig/configure.ac	2008-04-03 18:54:04.000000000 +0200
   43.24 -+++ binutils-2.18.50.0.6/configure.ac	2008-05-02 23:18:01.000000000 +0200
   43.25 -@@ -560,7 +560,7 @@
   43.26 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   43.27 -     libgloss_dir=arm
   43.28 -     ;;
   43.29 --  arm*-*-linux-gnueabi)
   43.30 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   43.31 -     noconfigdirs="$noconfigdirs target-qthreads"
   43.32 -     noconfigdirs="$noconfigdirs target-libobjc"
   43.33 -     case ${with_newlib} in
    44.1 --- a/patches/binutils/2.18.50.0.6/110-ld-makefile-path.patch	Wed Oct 28 12:03:38 2009 +0100
    44.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.3 @@ -1,30 +0,0 @@
    44.4 -Fix ld scripts path, copied from buildroot.
    44.5 -
    44.6 - binutils-2.18.50.0.6/ld/Makefile.am |    2     1     1     0 +-
    44.7 - binutils-2.18.50.0.6/ld/Makefile.in |    2     1     1     0 +-
    44.8 - 2 files changed, 2 insertions(+), 2 deletions(-)
    44.9 -
   44.10 -diff -durN binutils-2.18.50.0.6.orig/ld/Makefile.am binutils-2.18.50.0.6/ld/Makefile.am
   44.11 ---- binutils-2.18.50.0.6.orig/ld/Makefile.am	2008-04-03 18:54:05.000000000 +0200
   44.12 -+++ binutils-2.18.50.0.6/ld/Makefile.am	2008-05-02 23:25:14.000000000 +0200
   44.13 -@@ -18,7 +18,7 @@
   44.14 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   44.15 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   44.16 - # directives need to be different for native and cross linkers.
   44.17 --scriptdir = $(tooldir)/lib
   44.18 -+scriptdir = $(libdir)
   44.19 - 
   44.20 - EMUL = @EMUL@
   44.21 - EMULATION_OFILES = @EMULATION_OFILES@
   44.22 -diff -durN binutils-2.18.50.0.6.orig/ld/Makefile.in binutils-2.18.50.0.6/ld/Makefile.in
   44.23 ---- binutils-2.18.50.0.6.orig/ld/Makefile.in	2008-04-03 18:54:05.000000000 +0200
   44.24 -+++ binutils-2.18.50.0.6/ld/Makefile.in	2008-05-02 23:25:14.000000000 +0200
   44.25 -@@ -288,7 +288,7 @@
   44.26 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   44.27 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   44.28 - # directives need to be different for native and cross linkers.
   44.29 --scriptdir = $(tooldir)/lib
   44.30 -+scriptdir = $(libdir)
   44.31 - BASEDIR = $(srcdir)/..
   44.32 - BFDDIR = $(BASEDIR)/bfd
   44.33 - INCDIR = $(BASEDIR)/include
    45.1 --- a/patches/binutils/2.18.50.0.6/120-check-ldrunpath-length.patch	Wed Oct 28 12:03:38 2009 +0100
    45.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.3 @@ -1,26 +0,0 @@
    45.4 -Check LD_RUN_PATH length, copied from buildroot.
    45.5 -
    45.6 - binutils-2.18.50.0.6/ld/emultempl/elf32.em |    4     4     0     0 ++++
    45.7 - 1 file changed, 4 insertions(+)
    45.8 -
    45.9 -diff -durN binutils-2.18.50.0.6.orig/ld/emultempl/elf32.em binutils-2.18.50.0.6/ld/emultempl/elf32.em
   45.10 ---- binutils-2.18.50.0.6.orig/ld/emultempl/elf32.em	2008-04-03 18:54:25.000000000 +0200
   45.11 -+++ binutils-2.18.50.0.6/ld/emultempl/elf32.em	2008-05-02 23:30:08.000000000 +0200
   45.12 -@@ -1220,6 +1220,8 @@
   45.13 - 	      && command_line.rpath == NULL)
   45.14 - 	    {
   45.15 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   45.16 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   45.17 -+		  lib_path = NULL;
   45.18 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   45.19 - 						      force))
   45.20 - 		break;
   45.21 -@@ -1405,6 +1407,8 @@
   45.22 -   rpath = command_line.rpath;
   45.23 -   if (rpath == NULL)
   45.24 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   45.25 -+  if ((rpath) && (strlen (rpath) == 0))
   45.26 -+      rpath = NULL;
   45.27 -   if (! (bfd_elf_size_dynamic_sections
   45.28 - 	 (link_info.output_bfd, command_line.soname, rpath,
   45.29 - 	  command_line.filter_shlib,
    46.1 --- a/patches/binutils/2.18.50.0.6/130-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    46.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.3 @@ -1,64 +0,0 @@
    46.4 -diff -durN binutils-2.18.50.0.6.orig/gas/config/tc-i386.c binutils-2.18.50.0.6/gas/config/tc-i386.c
    46.5 ---- binutils-2.18.50.0.6.orig/gas/config/tc-i386.c	2008-04-03 18:54:04.000000000 +0200
    46.6 -+++ binutils-2.18.50.0.6/gas/config/tc-i386.c	2008-09-22 09:09:23.000000000 +0200
    46.7 -@@ -312,24 +312,10 @@
    46.8 - #endif
    46.9 - 	;
   46.10 - 
   46.11 --#if (defined (TE_I386AIX)				\
   46.12 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   46.13 --	 && !defined (TE_GNU)				\
   46.14 --	 && !defined (TE_LINUX)				\
   46.15 -- 	 && !defined (TE_NETWARE)			\
   46.16 --	 && !defined (TE_FreeBSD)			\
   46.17 --	 && !defined (TE_NetBSD)))
   46.18 - /* This array holds the chars that always start a comment.  If the
   46.19 --   pre-processor is disabled, these aren't very useful.  The option
   46.20 --   --divide will remove '/' from this list.  */
   46.21 --const char *i386_comment_chars = "#/";
   46.22 --#define SVR4_COMMENT_CHARS 1
   46.23 --#define PREFIX_SEPARATOR '\\'
   46.24 --
   46.25 --#else
   46.26 -+   pre-processor is disabled, these aren't very useful.  */
   46.27 - const char *i386_comment_chars = "#";
   46.28 - #define PREFIX_SEPARATOR '/'
   46.29 --#endif
   46.30 - 
   46.31 - /* This array holds the chars that only start a comment at the beginning of
   46.32 -    a line.  If the line seems to have the form '# 123 filename'
   46.33 -@@ -7876,20 +7862,6 @@
   46.34 -       break;
   46.35 - 
   46.36 -     case OPTION_DIVIDE:
   46.37 --#ifdef SVR4_COMMENT_CHARS
   46.38 --      {
   46.39 --	char *n, *t;
   46.40 --	const char *s;
   46.41 --
   46.42 --	n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
   46.43 --	t = n;
   46.44 --	for (s = i386_comment_chars; *s != '\0'; s++)
   46.45 --	  if (*s != '/')
   46.46 --	    *t++ = *s;
   46.47 --	*t = '\0';
   46.48 --	i386_comment_chars = n;
   46.49 --      }
   46.50 --#endif
   46.51 -       break;
   46.52 - 
   46.53 -     case OPTION_MARCH:
   46.54 -@@ -8029,13 +8001,8 @@
   46.55 -   fprintf (stream, _("\
   46.56 -   --32/--64               generate 32bit/64bit code\n"));
   46.57 - #endif
   46.58 --#ifdef SVR4_COMMENT_CHARS
   46.59 --  fprintf (stream, _("\
   46.60 --  --divide                do not treat `/' as a comment character\n"));
   46.61 --#else
   46.62 -   fprintf (stream, _("\
   46.63 -   --divide                ignored\n"));
   46.64 --#endif
   46.65 -   fprintf (stream, _("\
   46.66 -   -march=CPU[,+EXTENSION...]\n\
   46.67 -                           generate code for CPU and EXTENSION, CPU is one of:\n\
    47.1 --- a/patches/binutils/2.18.50.0.7/100-arm-uclibcgnueabi.patch	Wed Oct 28 12:03:38 2009 +0100
    47.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.3 @@ -1,30 +0,0 @@
    47.4 -Patch from buildroot, updated to binutils-2.18.50.0.6.
    47.5 -
    47.6 - binutils-2.18.50.0.6/configure    |    2     1     1     0 +-
    47.7 - binutils-2.18.50.0.6/configure.ac |    2     1     1     0 +-
    47.8 - 2 files changed, 2 insertions(+), 2 deletions(-)
    47.9 -
   47.10 -diff -durN binutils-2.18.50.0.6.orig/configure binutils-2.18.50.0.6/configure
   47.11 ---- binutils-2.18.50.0.6.orig/configure	2008-04-03 18:54:04.000000000 +0200
   47.12 -+++ binutils-2.18.50.0.6/configure	2008-05-02 23:18:42.000000000 +0200
   47.13 -@@ -2298,7 +2298,7 @@
   47.14 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   47.15 -     libgloss_dir=arm
   47.16 -     ;;
   47.17 --  arm*-*-linux-gnueabi)
   47.18 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   47.19 -     noconfigdirs="$noconfigdirs target-qthreads"
   47.20 -     noconfigdirs="$noconfigdirs target-libobjc"
   47.21 -     case ${with_newlib} in
   47.22 -diff -durN binutils-2.18.50.0.6.orig/configure.ac binutils-2.18.50.0.6/configure.ac
   47.23 ---- binutils-2.18.50.0.6.orig/configure.ac	2008-04-03 18:54:04.000000000 +0200
   47.24 -+++ binutils-2.18.50.0.6/configure.ac	2008-05-02 23:18:01.000000000 +0200
   47.25 -@@ -560,7 +560,7 @@
   47.26 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   47.27 -     libgloss_dir=arm
   47.28 -     ;;
   47.29 --  arm*-*-linux-gnueabi)
   47.30 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   47.31 -     noconfigdirs="$noconfigdirs target-qthreads"
   47.32 -     noconfigdirs="$noconfigdirs target-libobjc"
   47.33 -     case ${with_newlib} in
    48.1 --- a/patches/binutils/2.18.50.0.7/110-ld-makefile-path.patch	Wed Oct 28 12:03:38 2009 +0100
    48.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.3 @@ -1,30 +0,0 @@
    48.4 -Fix ld scripts path, copied from buildroot.
    48.5 -
    48.6 - binutils-2.18.50.0.6/ld/Makefile.am |    2     1     1     0 +-
    48.7 - binutils-2.18.50.0.6/ld/Makefile.in |    2     1     1     0 +-
    48.8 - 2 files changed, 2 insertions(+), 2 deletions(-)
    48.9 -
   48.10 -diff -durN binutils-2.18.50.0.6.orig/ld/Makefile.am binutils-2.18.50.0.6/ld/Makefile.am
   48.11 ---- binutils-2.18.50.0.6.orig/ld/Makefile.am	2008-04-03 18:54:05.000000000 +0200
   48.12 -+++ binutils-2.18.50.0.6/ld/Makefile.am	2008-05-02 23:25:14.000000000 +0200
   48.13 -@@ -18,7 +18,7 @@
   48.14 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   48.15 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   48.16 - # directives need to be different for native and cross linkers.
   48.17 --scriptdir = $(tooldir)/lib
   48.18 -+scriptdir = $(libdir)
   48.19 - 
   48.20 - EMUL = @EMUL@
   48.21 - EMULATION_OFILES = @EMULATION_OFILES@
   48.22 -diff -durN binutils-2.18.50.0.6.orig/ld/Makefile.in binutils-2.18.50.0.6/ld/Makefile.in
   48.23 ---- binutils-2.18.50.0.6.orig/ld/Makefile.in	2008-04-03 18:54:05.000000000 +0200
   48.24 -+++ binutils-2.18.50.0.6/ld/Makefile.in	2008-05-02 23:25:14.000000000 +0200
   48.25 -@@ -288,7 +288,7 @@
   48.26 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   48.27 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   48.28 - # directives need to be different for native and cross linkers.
   48.29 --scriptdir = $(tooldir)/lib
   48.30 -+scriptdir = $(libdir)
   48.31 - BASEDIR = $(srcdir)/..
   48.32 - BFDDIR = $(BASEDIR)/bfd
   48.33 - INCDIR = $(BASEDIR)/include
    49.1 --- a/patches/binutils/2.18.50.0.7/120-check-ldrunpath-length.patch	Wed Oct 28 12:03:38 2009 +0100
    49.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    49.3 @@ -1,26 +0,0 @@
    49.4 -Check LD_RUN_PATH length, copied from buildroot.
    49.5 -
    49.6 - binutils-2.18.50.0.6/ld/emultempl/elf32.em |    4     4     0     0 ++++
    49.7 - 1 file changed, 4 insertions(+)
    49.8 -
    49.9 -diff -durN binutils-2.18.50.0.6.orig/ld/emultempl/elf32.em binutils-2.18.50.0.6/ld/emultempl/elf32.em
   49.10 ---- binutils-2.18.50.0.6.orig/ld/emultempl/elf32.em	2008-04-03 18:54:25.000000000 +0200
   49.11 -+++ binutils-2.18.50.0.6/ld/emultempl/elf32.em	2008-05-02 23:30:08.000000000 +0200
   49.12 -@@ -1220,6 +1220,8 @@
   49.13 - 	      && command_line.rpath == NULL)
   49.14 - 	    {
   49.15 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   49.16 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   49.17 -+		  lib_path = NULL;
   49.18 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   49.19 - 						      force))
   49.20 - 		break;
   49.21 -@@ -1405,6 +1407,8 @@
   49.22 -   rpath = command_line.rpath;
   49.23 -   if (rpath == NULL)
   49.24 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   49.25 -+  if ((rpath) && (strlen (rpath) == 0))
   49.26 -+      rpath = NULL;
   49.27 -   if (! (bfd_elf_size_dynamic_sections
   49.28 - 	 (link_info.output_bfd, command_line.soname, rpath,
   49.29 - 	  command_line.filter_shlib,
    50.1 --- a/patches/binutils/2.18.50.0.7/130-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    50.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.3 @@ -1,64 +0,0 @@
    50.4 -diff -durN binutils-2.18.50.0.7.orig/gas/config/tc-i386.c binutils-2.18.50.0.7/gas/config/tc-i386.c
    50.5 ---- binutils-2.18.50.0.7.orig/gas/config/tc-i386.c	2008-05-04 16:28:10.000000000 +0200
    50.6 -+++ binutils-2.18.50.0.7/gas/config/tc-i386.c	2008-09-22 09:11:19.000000000 +0200
    50.7 -@@ -312,24 +312,10 @@
    50.8 - #endif
    50.9 - 	;
   50.10 - 
   50.11 --#if (defined (TE_I386AIX)				\
   50.12 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   50.13 --	 && !defined (TE_GNU)				\
   50.14 --	 && !defined (TE_LINUX)				\
   50.15 -- 	 && !defined (TE_NETWARE)			\
   50.16 --	 && !defined (TE_FreeBSD)			\
   50.17 --	 && !defined (TE_NetBSD)))
   50.18 - /* This array holds the chars that always start a comment.  If the
   50.19 --   pre-processor is disabled, these aren't very useful.  The option
   50.20 --   --divide will remove '/' from this list.  */
   50.21 --const char *i386_comment_chars = "#/";
   50.22 --#define SVR4_COMMENT_CHARS 1
   50.23 --#define PREFIX_SEPARATOR '\\'
   50.24 --
   50.25 --#else
   50.26 -+   pre-processor is disabled, these aren't very useful.  */
   50.27 - const char *i386_comment_chars = "#";
   50.28 - #define PREFIX_SEPARATOR '/'
   50.29 --#endif
   50.30 - 
   50.31 - /* This array holds the chars that only start a comment at the beginning of
   50.32 -    a line.  If the line seems to have the form '# 123 filename'
   50.33 -@@ -7920,20 +7906,6 @@
   50.34 -       break;
   50.35 - 
   50.36 -     case OPTION_DIVIDE:
   50.37 --#ifdef SVR4_COMMENT_CHARS
   50.38 --      {
   50.39 --	char *n, *t;
   50.40 --	const char *s;
   50.41 --
   50.42 --	n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
   50.43 --	t = n;
   50.44 --	for (s = i386_comment_chars; *s != '\0'; s++)
   50.45 --	  if (*s != '/')
   50.46 --	    *t++ = *s;
   50.47 --	*t = '\0';
   50.48 --	i386_comment_chars = n;
   50.49 --      }
   50.50 --#endif
   50.51 -       break;
   50.52 - 
   50.53 -     case OPTION_MARCH:
   50.54 -@@ -8084,13 +8056,8 @@
   50.55 -   fprintf (stream, _("\
   50.56 -   --32/--64               generate 32bit/64bit code\n"));
   50.57 - #endif
   50.58 --#ifdef SVR4_COMMENT_CHARS
   50.59 --  fprintf (stream, _("\
   50.60 --  --divide                do not treat `/' as a comment character\n"));
   50.61 --#else
   50.62 -   fprintf (stream, _("\
   50.63 -   --divide                ignored\n"));
   50.64 --#endif
   50.65 -   fprintf (stream, _("\
   50.66 -   -march=CPU[,+EXTENSION...]\n\
   50.67 -                           generate code for CPU and EXTENSION, CPU is one of:\n\
    51.1 --- a/patches/binutils/2.18.50.0.8/100-arm-uclibcgnueabi.patch	Wed Oct 28 12:03:38 2009 +0100
    51.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.3 @@ -1,24 +0,0 @@
    51.4 -diff -durN binutils-2.18.50.0.8.orig/configure binutils-2.18.50.0.8/configure
    51.5 ---- binutils-2.18.50.0.8.orig/configure	2008-07-10 17:32:56.000000000 +0200
    51.6 -+++ binutils-2.18.50.0.8/configure	2008-07-13 23:08:13.000000000 +0200
    51.7 -@@ -2313,7 +2313,7 @@
    51.8 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
    51.9 -     libgloss_dir=arm
   51.10 -     ;;
   51.11 --  arm*-*-linux-gnueabi)
   51.12 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   51.13 -     noconfigdirs="$noconfigdirs target-qthreads"
   51.14 -     case ${with_newlib} in
   51.15 -       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
   51.16 -diff -durN binutils-2.18.50.0.8.orig/configure.ac binutils-2.18.50.0.8/configure.ac
   51.17 ---- binutils-2.18.50.0.8.orig/configure.ac	2008-07-10 17:32:56.000000000 +0200
   51.18 -+++ binutils-2.18.50.0.8/configure.ac	2008-07-13 23:08:13.000000000 +0200
   51.19 -@@ -562,7 +562,7 @@
   51.20 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   51.21 -     libgloss_dir=arm
   51.22 -     ;;
   51.23 --  arm*-*-linux-gnueabi)
   51.24 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   51.25 -     noconfigdirs="$noconfigdirs target-qthreads"
   51.26 -     case ${with_newlib} in
   51.27 -       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    52.1 --- a/patches/binutils/2.18.50.0.8/110-ld-makefile-path.patch	Wed Oct 28 12:03:38 2009 +0100
    52.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    52.3 @@ -1,24 +0,0 @@
    52.4 -diff -durN binutils-2.18.50.0.8.orig/ld/Makefile.am binutils-2.18.50.0.8/ld/Makefile.am
    52.5 ---- binutils-2.18.50.0.8.orig/ld/Makefile.am	2008-04-03 18:54:05.000000000 +0200
    52.6 -+++ binutils-2.18.50.0.8/ld/Makefile.am	2008-07-13 23:15:40.000000000 +0200
    52.7 -@@ -18,7 +18,7 @@
    52.8 - # We put the scripts in the directory $(scriptdir)/ldscripts.
    52.9 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   52.10 - # directives need to be different for native and cross linkers.
   52.11 --scriptdir = $(tooldir)/lib
   52.12 -+scriptdir = $(libdir)
   52.13 - 
   52.14 - EMUL = @EMUL@
   52.15 - EMULATION_OFILES = @EMULATION_OFILES@
   52.16 -diff -durN binutils-2.18.50.0.8.orig/ld/Makefile.in binutils-2.18.50.0.8/ld/Makefile.in
   52.17 ---- binutils-2.18.50.0.8.orig/ld/Makefile.in	2008-07-10 17:32:58.000000000 +0200
   52.18 -+++ binutils-2.18.50.0.8/ld/Makefile.in	2008-07-13 23:15:40.000000000 +0200
   52.19 -@@ -290,7 +290,7 @@
   52.20 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   52.21 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   52.22 - # directives need to be different for native and cross linkers.
   52.23 --scriptdir = $(tooldir)/lib
   52.24 -+scriptdir = $(libdir)
   52.25 - BASEDIR = $(srcdir)/..
   52.26 - BFDDIR = $(BASEDIR)/bfd
   52.27 - INCDIR = $(BASEDIR)/include
    53.1 --- a/patches/binutils/2.18.50.0.8/120-check-ldrunpath-length.patch	Wed Oct 28 12:03:38 2009 +0100
    53.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    53.3 @@ -1,21 +0,0 @@
    53.4 -diff -durN binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em binutils-2.18.50.0.8/ld/emultempl/elf32.em
    53.5 ---- binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em	2008-07-10 17:33:23.000000000 +0200
    53.6 -+++ binutils-2.18.50.0.8/ld/emultempl/elf32.em	2008-07-13 23:19:29.000000000 +0200
    53.7 -@@ -1220,6 +1220,8 @@
    53.8 - 	      && command_line.rpath == NULL)
    53.9 - 	    {
   53.10 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   53.11 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   53.12 -+		  lib_path = NULL;
   53.13 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   53.14 - 						      force))
   53.15 - 		break;
   53.16 -@@ -1405,6 +1407,8 @@
   53.17 -   rpath = command_line.rpath;
   53.18 -   if (rpath == NULL)
   53.19 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   53.20 -+  if ((rpath) && (strlen (rpath) == 0))
   53.21 -+      rpath = NULL;
   53.22 -   if (! (bfd_elf_size_dynamic_sections
   53.23 - 	 (link_info.output_bfd, command_line.soname, rpath,
   53.24 - 	  command_line.filter_shlib,
    54.1 --- a/patches/binutils/2.18.50.0.8/130-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    54.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    54.3 @@ -1,64 +0,0 @@
    54.4 -diff -durN binutils-2.18.50.0.8.orig/gas/config/tc-i386.c binutils-2.18.50.0.8/gas/config/tc-i386.c
    54.5 ---- binutils-2.18.50.0.8.orig/gas/config/tc-i386.c	2008-07-10 17:32:58.000000000 +0200
    54.6 -+++ binutils-2.18.50.0.8/gas/config/tc-i386.c	2008-09-22 09:12:39.000000000 +0200
    54.7 -@@ -313,24 +313,10 @@
    54.8 - #endif
    54.9 - 	;
   54.10 - 
   54.11 --#if (defined (TE_I386AIX)				\
   54.12 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   54.13 --	 && !defined (TE_GNU)				\
   54.14 --	 && !defined (TE_LINUX)				\
   54.15 -- 	 && !defined (TE_NETWARE)			\
   54.16 --	 && !defined (TE_FreeBSD)			\
   54.17 --	 && !defined (TE_NetBSD)))
   54.18 - /* This array holds the chars that always start a comment.  If the
   54.19 --   pre-processor is disabled, these aren't very useful.  The option
   54.20 --   --divide will remove '/' from this list.  */
   54.21 --const char *i386_comment_chars = "#/";
   54.22 --#define SVR4_COMMENT_CHARS 1
   54.23 --#define PREFIX_SEPARATOR '\\'
   54.24 --
   54.25 --#else
   54.26 -+   pre-processor is disabled, these aren't very useful.  */
   54.27 - const char *i386_comment_chars = "#";
   54.28 - #define PREFIX_SEPARATOR '/'
   54.29 --#endif
   54.30 - 
   54.31 - /* This array holds the chars that only start a comment at the beginning of
   54.32 -    a line.  If the line seems to have the form '# 123 filename'
   54.33 -@@ -7952,20 +7938,6 @@
   54.34 -       break;
   54.35 - 
   54.36 -     case OPTION_DIVIDE:
   54.37 --#ifdef SVR4_COMMENT_CHARS
   54.38 --      {
   54.39 --	char *n, *t;
   54.40 --	const char *s;
   54.41 --
   54.42 --	n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
   54.43 --	t = n;
   54.44 --	for (s = i386_comment_chars; *s != '\0'; s++)
   54.45 --	  if (*s != '/')
   54.46 --	    *t++ = *s;
   54.47 --	*t = '\0';
   54.48 --	i386_comment_chars = n;
   54.49 --      }
   54.50 --#endif
   54.51 -       break;
   54.52 - 
   54.53 -     case OPTION_MARCH:
   54.54 -@@ -8116,13 +8088,8 @@
   54.55 -   fprintf (stream, _("\
   54.56 -   --32/--64               generate 32bit/64bit code\n"));
   54.57 - #endif
   54.58 --#ifdef SVR4_COMMENT_CHARS
   54.59 --  fprintf (stream, _("\
   54.60 --  --divide                do not treat `/' as a comment character\n"));
   54.61 --#else
   54.62 -   fprintf (stream, _("\
   54.63 -   --divide                ignored\n"));
   54.64 --#endif
   54.65 -   fprintf (stream, _("\
   54.66 -   -march=CPU[,+EXTENSION...]\n\
   54.67 -                           generate code for CPU and EXTENSION, CPU is one of:\n\
    55.1 --- a/patches/binutils/2.18.50.0.9/100-arm-uclibcgnueabi.patch	Wed Oct 28 12:03:38 2009 +0100
    55.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    55.3 @@ -1,24 +0,0 @@
    55.4 -diff -durN binutils-2.18.50.0.8.orig/configure binutils-2.18.50.0.8/configure
    55.5 ---- binutils-2.18.50.0.8.orig/configure	2008-07-10 17:32:56.000000000 +0200
    55.6 -+++ binutils-2.18.50.0.8/configure	2008-07-13 23:08:13.000000000 +0200
    55.7 -@@ -2313,7 +2313,7 @@
    55.8 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
    55.9 -     libgloss_dir=arm
   55.10 -     ;;
   55.11 --  arm*-*-linux-gnueabi)
   55.12 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   55.13 -     noconfigdirs="$noconfigdirs target-qthreads"
   55.14 -     case ${with_newlib} in
   55.15 -       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
   55.16 -diff -durN binutils-2.18.50.0.8.orig/configure.ac binutils-2.18.50.0.8/configure.ac
   55.17 ---- binutils-2.18.50.0.8.orig/configure.ac	2008-07-10 17:32:56.000000000 +0200
   55.18 -+++ binutils-2.18.50.0.8/configure.ac	2008-07-13 23:08:13.000000000 +0200
   55.19 -@@ -562,7 +562,7 @@
   55.20 -     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
   55.21 -     libgloss_dir=arm
   55.22 -     ;;
   55.23 --  arm*-*-linux-gnueabi)
   55.24 -+  arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
   55.25 -     noconfigdirs="$noconfigdirs target-qthreads"
   55.26 -     case ${with_newlib} in
   55.27 -       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    56.1 --- a/patches/binutils/2.18.50.0.9/110-ld-makefile-path.patch	Wed Oct 28 12:03:38 2009 +0100
    56.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    56.3 @@ -1,24 +0,0 @@
    56.4 -diff -durN binutils-2.18.50.0.8.orig/ld/Makefile.am binutils-2.18.50.0.8/ld/Makefile.am
    56.5 ---- binutils-2.18.50.0.8.orig/ld/Makefile.am	2008-04-03 18:54:05.000000000 +0200
    56.6 -+++ binutils-2.18.50.0.8/ld/Makefile.am	2008-07-13 23:15:40.000000000 +0200
    56.7 -@@ -18,7 +18,7 @@
    56.8 - # We put the scripts in the directory $(scriptdir)/ldscripts.
    56.9 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   56.10 - # directives need to be different for native and cross linkers.
   56.11 --scriptdir = $(tooldir)/lib
   56.12 -+scriptdir = $(libdir)
   56.13 - 
   56.14 - EMUL = @EMUL@
   56.15 - EMULATION_OFILES = @EMULATION_OFILES@
   56.16 -diff -durN binutils-2.18.50.0.8.orig/ld/Makefile.in binutils-2.18.50.0.8/ld/Makefile.in
   56.17 ---- binutils-2.18.50.0.8.orig/ld/Makefile.in	2008-07-10 17:32:58.000000000 +0200
   56.18 -+++ binutils-2.18.50.0.8/ld/Makefile.in	2008-07-13 23:15:40.000000000 +0200
   56.19 -@@ -290,7 +290,7 @@
   56.20 - # We put the scripts in the directory $(scriptdir)/ldscripts.
   56.21 - # We can't put the scripts in $(datadir) because the SEARCH_DIR
   56.22 - # directives need to be different for native and cross linkers.
   56.23 --scriptdir = $(tooldir)/lib
   56.24 -+scriptdir = $(libdir)
   56.25 - BASEDIR = $(srcdir)/..
   56.26 - BFDDIR = $(BASEDIR)/bfd
   56.27 - INCDIR = $(BASEDIR)/include
    57.1 --- a/patches/binutils/2.18.50.0.9/120-check-ldrunpath-length.patch	Wed Oct 28 12:03:38 2009 +0100
    57.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    57.3 @@ -1,21 +0,0 @@
    57.4 -diff -durN binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em binutils-2.18.50.0.8/ld/emultempl/elf32.em
    57.5 ---- binutils-2.18.50.0.8.orig/ld/emultempl/elf32.em	2008-07-10 17:33:23.000000000 +0200
    57.6 -+++ binutils-2.18.50.0.8/ld/emultempl/elf32.em	2008-07-13 23:19:29.000000000 +0200
    57.7 -@@ -1220,6 +1220,8 @@
    57.8 - 	      && command_line.rpath == NULL)
    57.9 - 	    {
   57.10 - 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   57.11 -+	      if ((lib_path) && (strlen (lib_path) == 0))
   57.12 -+		  lib_path = NULL;
   57.13 - 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   57.14 - 						      force))
   57.15 - 		break;
   57.16 -@@ -1405,6 +1407,8 @@
   57.17 -   rpath = command_line.rpath;
   57.18 -   if (rpath == NULL)
   57.19 -     rpath = (const char *) getenv ("LD_RUN_PATH");
   57.20 -+  if ((rpath) && (strlen (rpath) == 0))
   57.21 -+      rpath = NULL;
   57.22 -   if (! (bfd_elf_size_dynamic_sections
   57.23 - 	 (link_info.output_bfd, command_line.soname, rpath,
   57.24 - 	  command_line.filter_shlib,
    58.1 --- a/patches/binutils/2.18.50.0.9/130-i386-no-divide-comment.patch	Wed Oct 28 12:03:38 2009 +0100
    58.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.3 @@ -1,64 +0,0 @@
    58.4 -diff -durN binutils-2.18.50.0.8.orig/gas/config/tc-i386.c binutils-2.18.50.0.8/gas/config/tc-i386.c
    58.5 ---- binutils-2.18.50.0.8.orig/gas/config/tc-i386.c	2008-07-10 17:32:58.000000000 +0200
    58.6 -+++ binutils-2.18.50.0.8/gas/config/tc-i386.c	2008-09-22 09:12:39.000000000 +0200
    58.7 -@@ -313,24 +313,10 @@
    58.8 - #endif
    58.9 - 	;
   58.10 - 
   58.11 --#if (defined (TE_I386AIX)				\
   58.12 --     || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF))	\
   58.13 --	 && !defined (TE_GNU)				\
   58.14 --	 && !defined (TE_LINUX)				\
   58.15 -- 	 && !defined (TE_NETWARE)			\
   58.16 --	 && !defined (TE_FreeBSD)			\
   58.17 --	 && !defined (TE_NetBSD)))
   58.18 - /* This array holds the chars that always start a comment.  If the
   58.19 --   pre-processor is disabled, these aren't very useful.  The option
   58.20 --   --divide will remove '/' from this list.  */
   58.21 --const char *i386_comment_chars = "#/";
   58.22 --#define SVR4_COMMENT_CHARS 1
   58.23 --#define PREFIX_SEPARATOR '\\'
   58.24 --
   58.25 --#else
   58.26 -+   pre-processor is disabled, these aren't very useful.  */
   58.27 - const char *i386_comment_chars = "#";
   58.28 - #define PREFIX_SEPARATOR '/'
   58.29 --#endif
   58.30 - 
   58.31 - /* This array holds the chars that only start a comment at the beginning of
   58.32 -    a line.  If the line seems to have the form '# 123 filename'
   58.33 -@@ -7952,20 +7938,6 @@
   58.34 -       break;
   58.35 - 
   58.36 -     case OPTION_DIVIDE:
   58.37 --#ifdef SVR4_COMMENT_CHARS
   58.38 --      {
   58.39 --	char *n, *t;
   58.40 --	const char *s;
   58.41 --
   58.42 --	n = (char *) xmalloc (strlen (i386_comment_chars) + 1);
   58.43 --	t = n;
   58.44 --	for (s = i386_comment_chars; *s != '\0'; s++)
   58.45 --	  if (*s != '/')
   58.46 --	    *t++ = *s;
   58.47 --	*t = '\0';
   58.48 --	i386_comment_chars = n;
   58.49 --      }
   58.50 --#endif
   58.51 -       break;
   58.52 - 
   58.53 -     case OPTION_MARCH:
   58.54 -@@ -8116,13 +8088,8 @@
   58.55 -   fprintf (stream, _("\
   58.56 -   --32/--64               generate 32bit/64bit code\n"));
   58.57 - #endif
   58.58 --#ifdef SVR4_COMMENT_CHARS
   58.59 --  fprintf (stream, _("\
   58.60 --  --divide                do not treat `/' as a comment character\n"));
   58.61 --#else
   58.62 -   fprintf (stream, _("\
   58.63 -   --divide                ignored\n"));
   58.64 --#endif
   58.65 -   fprintf (stream, _("\
   58.66 -   -march=CPU[,+EXTENSION...]\n\
   58.67 -                           generate code for CPU and EXTENSION, CPU is one of:\n\
    59.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    59.2 +++ b/patches/binutils/2.20/100-ppc64-pie.patch	Thu Oct 29 00:10:06 2009 +0100
    59.3 @@ -0,0 +1,16 @@
    59.4 +--- bfd/elf64-ppc.c.jj	2004-09-27 16:46:06.000000000 -0400
    59.5 ++++ bfd/elf64-ppc.c	2004-10-04 09:09:50.000000000 -0400
    59.6 +@@ -9681,7 +9681,12 @@ ppc64_elf_relocate_section (bfd *output_
    59.7 + 	      else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
    59.8 + 		       && !is_opd
    59.9 + 		       && r_type != R_PPC64_TOC)
   59.10 +-		outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
   59.11 ++		{
   59.12 ++		  outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
   59.13 ++		  if (h->elf.dynindx == -1
   59.14 ++		      && h->elf.root.type == bfd_link_hash_undefweak)
   59.15 ++		  memset (&outrel, 0, sizeof outrel);
   59.16 ++		}
   59.17 + 	      else
   59.18 + 		{
   59.19 + 		  /* This symbol is local, or marked to become local,
    60.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    60.2 +++ b/patches/binutils/2.20/110-RPATH_ENVVAR-smack.patch	Thu Oct 29 00:10:06 2009 +0100
    60.3 @@ -0,0 +1,13 @@
    60.4 +http://sourceware.org/ml/binutils/2007-07/msg00401.html
    60.5 +http://sourceware.org/bugzilla/show_bug.cgi?id=4970
    60.6 +
    60.7 +--- configure
    60.8 ++++ configure
    60.9 +@@ -5601,6 +5601,7 @@ case "${host}" in
   60.10 +   *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
   60.11 +   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
   60.12 + esac
   60.13 ++RPATH_ENVVAR="cant_touch_this_nah_nah_nah"
   60.14 + 
   60.15 + # On systems where the dynamic library environment variable is PATH,
   60.16 + if test "$RPATH_ENVVAR" = PATH; then
    61.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    61.2 +++ b/patches/binutils/2.20/120-sh-targets.patch	Thu Oct 29 00:10:06 2009 +0100
    61.3 @@ -0,0 +1,47 @@
    61.4 +r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
    61.5 +
    61.6 +Likewise, binutils has no idea about any of these new targets either, so we 
    61.7 +fix that up too.. now we're able to actually build a real toolchain for 
    61.8 +sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more 
    61.9 +inept targets than that one, really. Go look, I promise).
   61.10 +
   61.11 +--- binutils-2.16.90.0.2-dist/configure
   61.12 ++++ binutils-2.16.90.0.2/configure
   61.13 +@@ -1207,7 +1207,7 @@
   61.14 +   am33_2.0-*-linux*)
   61.15 +     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   61.16 +     ;;
   61.17 +-  sh-*-linux*)
   61.18 ++  sh*-*-linux*)
   61.19 +     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   61.20 +     ;;    
   61.21 +   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
   61.22 +@@ -1495,7 +1495,7 @@
   61.23 +   romp-*-*)
   61.24 +     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
   61.25 +     ;;
   61.26 +-  sh-*-* | sh64-*-*)
   61.27 ++  sh*-*-* | sh64-*-*)
   61.28 +     case "${host}" in
   61.29 +       i[3456789]86-*-vsta) ;; # don't add gprof back in
   61.30 +       i[3456789]86-*-go32*) ;; # don't add gprof back in
   61.31 +--- binutils-2.16.90.0.2-dist/configure.ac
   61.32 ++++ binutils-2.16.90.0.2/configure.ac
   61.33 +@@ -424,7 +424,7 @@
   61.34 +   am33_2.0-*-linux*)
   61.35 +     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   61.36 +     ;;
   61.37 +-  sh-*-linux*)
   61.38 ++  sh*-*-linux*)
   61.39 +     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
   61.40 +     ;;    
   61.41 +   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
   61.42 +@@ -712,7 +712,7 @@
   61.43 +   romp-*-*)
   61.44 +     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
   61.45 +     ;;
   61.46 +-  sh-*-* | sh64-*-*)
   61.47 ++  sh*-*-* | sh64-*-*)
   61.48 +     case "${host}" in
   61.49 +       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
   61.50 +       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
    62.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    62.2 +++ b/patches/binutils/2.20/130-ld-sysroot.patch	Thu Oct 29 00:10:06 2009 +0100
    62.3 @@ -0,0 +1,36 @@
    62.4 +Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
    62.5 +
    62.6 +Always try to prepend the sysroot prefix to absolute filenames first.
    62.7 +
    62.8 +http://bugs.gentoo.org/275666
    62.9 +http://sourceware.org/bugzilla/show_bug.cgi?id=10340
   62.10 +
   62.11 +--- ld/ldfile.c
   62.12 ++++ ld/ldfile.c
   62.13 +@@ -308,18 +308,24 @@
   62.14 +      directory first.  */
   62.15 +   if (! entry->is_archive)
   62.16 +     {
   62.17 +-      if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
   62.18 ++      /* For absolute pathnames, try to always open the file in the
   62.19 ++	 sysroot first. If this fails, try to open the file at the
   62.20 ++	 given location. */
   62.21 ++      entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
   62.22 ++      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
   62.23 + 	{
   62.24 + 	  char *name = concat (ld_sysroot, entry->filename,
   62.25 + 			       (const char *) NULL);
   62.26 + 	  if (ldfile_try_open_bfd (name, entry))
   62.27 + 	    {
   62.28 + 	      entry->filename = name;
   62.29 ++	      entry->sysrooted = TRUE;
   62.30 + 	      return TRUE;
   62.31 + 	    }
   62.32 + 	  free (name);
   62.33 + 	}
   62.34 +-      else if (ldfile_try_open_bfd (entry->filename, entry))
   62.35 ++
   62.36 ++      if (ldfile_try_open_bfd (entry->filename, entry))
   62.37 + 	{
   62.38 + 	  entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
   62.39 + 	    && is_sysrooted_pathname (entry->filename, TRUE);
    63.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    63.2 +++ b/patches/binutils/2.20/140-check_ldrunpath_length.patch	Thu Oct 29 00:10:06 2009 +0100
    63.3 @@ -0,0 +1,47 @@
    63.4 +#!/bin/sh -e
    63.5 +## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
    63.6 +##
    63.7 +## All lines beginning with `## DP:' are a description of the patch.
    63.8 +## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
    63.9 +## DP: cases where -rpath isn't specified. (#151024)
   63.10 +
   63.11 +if [ $# -ne 1 ]; then
   63.12 +    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   63.13 +    exit 1
   63.14 +fi
   63.15 +
   63.16 +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
   63.17 +patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
   63.18 +
   63.19 +case "$1" in
   63.20 +       -patch) patch $patch_opts -p1 < $0;;
   63.21 +       -unpatch) patch $patch_opts -p1 -R < $0;;
   63.22 +        *)
   63.23 +                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
   63.24 +                exit 1;;
   63.25 +esac
   63.26 +
   63.27 +exit 0
   63.28 +
   63.29 +@DPATCH@
   63.30 +diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
   63.31 +--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:58.000000000 +0100
   63.32 ++++ binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:59.000000000 +0100
   63.33 +@@ -692,6 +692,8 @@
   63.34 + 	      && command_line.rpath == NULL)
   63.35 + 	    {
   63.36 + 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
   63.37 ++	      if ((lib_path) && (strlen (lib_path) == 0))
   63.38 ++		  lib_path = NULL;
   63.39 + 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
   63.40 + 						      force))
   63.41 + 		break;
   63.42 +@@ -871,6 +873,8 @@
   63.43 +   rpath = command_line.rpath;
   63.44 +   if (rpath == NULL)
   63.45 +     rpath = (const char *) getenv ("LD_RUN_PATH");
   63.46 ++  if ((rpath) && (strlen (rpath) == 0))
   63.47 ++      rpath = NULL;
   63.48 +   if (! (bfd_elf_size_dynamic_sections
   63.49 + 	 (output_bfd, command_line.soname, rpath,
   63.50 + 	  command_line.filter_shlib,
    64.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    64.2 +++ b/patches/binutils/2.20/150-pt-pax-flags-20090909.patch	Thu Oct 29 00:10:06 2009 +0100
    64.3 @@ -0,0 +1,238 @@
    64.4 +--- binutils-2.20/bfd/elf-bfd.h
    64.5 ++++ binutils-2.20/bfd/elf-bfd.h
    64.6 +@@ -1527,6 +1527,9 @@ struct elf_obj_tdata
    64.7 +   /* Segment flags for the PT_GNU_STACK segment.  */
    64.8 +   unsigned int stack_flags;
    64.9 + 
   64.10 ++  /* Segment flags for the PT_PAX_FLAGS segment.  */
   64.11 ++  unsigned int pax_flags;
   64.12 ++
   64.13 +   /* Symbol version definitions in external objects.  */
   64.14 +   Elf_Internal_Verdef *verdef;
   64.15 + 
   64.16 +--- binutils-2.20/bfd/elf.c
   64.17 ++++ binutils-2.20/bfd/elf.c
   64.18 +@@ -1081,6 +1081,7 @@ get_segment_type (unsigned int p_type)
   64.19 +     case PT_GNU_EH_FRAME: pt = "EH_FRAME"; break;
   64.20 +     case PT_GNU_STACK: pt = "STACK"; break;
   64.21 +     case PT_GNU_RELRO: pt = "RELRO"; break;
   64.22 ++    case PT_PAX_FLAGS: pt = "PAX_FLAGS"; break;
   64.23 +     default: pt = NULL; break;
   64.24 +     }
   64.25 +   return pt;
   64.26 +@@ -2379,6 +2380,9 @@ bfd_section_from_phdr (bfd *abfd, Elf_Internal_Phdr *hdr, int index)
   64.27 +     case PT_GNU_RELRO:
   64.28 +       return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "relro");
   64.29 + 
   64.30 ++    case PT_PAX_FLAGS:
   64.31 ++      return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "pax_flags");
   64.32 ++
   64.33 +     default:
   64.34 +       /* Check for any processor-specific program segment types.  */
   64.35 +       bed = get_elf_backend_data (abfd);
   64.36 +@@ -3393,6 +3397,11 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
   64.37 +       ++segs;
   64.38 +     }
   64.39 + 
   64.40 ++    {
   64.41 ++      /* We need a PT_PAX_FLAGS segment.  */
   64.42 ++      ++segs;
   64.43 ++    }
   64.44 ++
   64.45 +   for (s = abfd->sections; s != NULL; s = s->next)
   64.46 +     {
   64.47 +       if ((s->flags & SEC_LOAD) != 0
   64.48 +@@ -3972,6 +3981,20 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info)
   64.49 + 	    }
   64.50 + 	}
   64.51 + 
   64.52 ++    {
   64.53 ++      amt = sizeof (struct elf_segment_map);
   64.54 ++      m = bfd_zalloc (abfd, amt);
   64.55 ++      if (m == NULL)
   64.56 ++	goto error_return;
   64.57 ++      m->next = NULL;
   64.58 ++      m->p_type = PT_PAX_FLAGS;
   64.59 ++      m->p_flags = elf_tdata (abfd)->pax_flags;
   64.60 ++      m->p_flags_valid = 1;
   64.61 ++
   64.62 ++      *pm = m;
   64.63 ++      pm = &m->next;
   64.64 ++    }
   64.65 ++
   64.66 +       free (sections);
   64.67 +       elf_tdata (abfd)->segment_map = mfirst;
   64.68 +     }
   64.69 +@@ -5176,7 +5199,8 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
   64.70 +        6. PT_TLS segment includes only SHF_TLS sections.
   64.71 +        7. SHF_TLS sections are only in PT_TLS or PT_LOAD segments.
   64.72 +        8. PT_DYNAMIC should not contain empty sections at the beginning
   64.73 +-	  (with the possible exception of .dynamic).  */
   64.74 ++	  (with the possible exception of .dynamic).
   64.75 ++       9. PT_PAX_FLAGS segments do not include any sections.  */
   64.76 + #define IS_SECTION_IN_INPUT_SEGMENT(section, segment, bed)		\
   64.77 +   ((((segment->p_paddr							\
   64.78 +       ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr)	\
   64.79 +@@ -5184,6 +5208,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
   64.80 +      && (section->flags & SEC_ALLOC) != 0)				\
   64.81 +     || IS_NOTE (segment, section))					\
   64.82 +    && segment->p_type != PT_GNU_STACK					\
   64.83 ++   && segment->p_type != PT_PAX_FLAGS					\
   64.84 +    && (segment->p_type != PT_TLS					\
   64.85 +        || (section->flags & SEC_THREAD_LOCAL))				\
   64.86 +    && (segment->p_type == PT_LOAD					\
   64.87 +--- binutils-2.20/bfd/elflink.c
   64.88 ++++ binutils-2.20/bfd/elflink.c
   64.89 +@@ -5465,16 +5465,30 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
   64.90 +     return TRUE;
   64.91 + 
   64.92 +   bed = get_elf_backend_data (output_bfd);
   64.93 ++
   64.94 ++  elf_tdata (output_bfd)->pax_flags = PF_NORANDEXEC;
   64.95 ++  if (info->execheap)
   64.96 ++    elf_tdata (output_bfd)->pax_flags |= PF_NOMPROTECT;
   64.97 ++  else if (info->noexecheap)
   64.98 ++    elf_tdata (output_bfd)->pax_flags |= PF_MPROTECT;
   64.99 ++
  64.100 +   if (info->execstack)
  64.101 +-    elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
  64.102 ++    {
  64.103 ++      elf_tdata (output_bfd)->stack_flags = PF_R | PF_W | PF_X;
  64.104 ++      elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
  64.105 ++    }
  64.106 +   else if (info->noexecstack)
  64.107 +-    elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
  64.108 ++    {
  64.109 ++      elf_tdata (output_bfd)->stack_flags = PF_R | PF_W;
  64.110 ++      elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
  64.111 ++    }
  64.112 +   else
  64.113 +     {
  64.114 +       bfd *inputobj;
  64.115 +       asection *notesec = NULL;
  64.116 +       int exec = 0;
  64.117 + 
  64.118 ++      elf_tdata (output_bfd)->pax_flags |= PF_NOEMUTRAMP;
  64.119 +       for (inputobj = info->input_bfds;
  64.120 + 	   inputobj;
  64.121 + 	   inputobj = inputobj->link_next)
  64.122 +@@ -5487,7 +5501,11 @@ bfd_elf_size_dynamic_sections (bfd *output_bfd,
  64.123 + 	  if (s)
  64.124 + 	    {
  64.125 + 	      if (s->flags & SEC_CODE)
  64.126 +-		exec = PF_X;
  64.127 ++		{
  64.128 ++		  elf_tdata (output_bfd)->pax_flags &= ~PF_NOEMUTRAMP;
  64.129 ++		  elf_tdata (output_bfd)->pax_flags |= PF_EMUTRAMP;
  64.130 ++		  exec = PF_X;
  64.131 ++		}
  64.132 + 	      notesec = s;
  64.133 + 	    }
  64.134 + 	  else if (bed->default_execstack)
  64.135 +--- binutils-2.20/binutils/readelf.c
  64.136 ++++ binutils-2.20/binutils/readelf.c
  64.137 +@@ -2556,6 +2556,7 @@ get_segment_type (unsigned long p_type)
  64.138 + 			return "GNU_EH_FRAME";
  64.139 +     case PT_GNU_STACK:	return "GNU_STACK";
  64.140 +     case PT_GNU_RELRO:  return "GNU_RELRO";
  64.141 ++    case PT_PAX_FLAGS:  return "PAX_FLAGS";
  64.142 + 
  64.143 +     default:
  64.144 +       if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
  64.145 +--- binutils-2.20/include/bfdlink.h
  64.146 ++++ binutils-2.20/include/bfdlink.h
  64.147 +@@ -319,6 +319,14 @@ struct bfd_link_info
  64.148 +   /* TRUE if PT_GNU_RELRO segment should be created.  */
  64.149 +   unsigned int relro: 1;
  64.150 + 
  64.151 ++  /* TRUE if PT_PAX_FLAGS segment should be created with PF_NOMPROTECT
  64.152 ++     flags.  */
  64.153 ++  unsigned int execheap: 1;
  64.154 ++
  64.155 ++  /* TRUE if PT_PAX_FLAGS segment should be created with PF_MPROTECT
  64.156 ++     flags.  */
  64.157 ++  unsigned int noexecheap: 1;
  64.158 ++
  64.159 +   /* TRUE if we should warn when adding a DT_TEXTREL to a shared object.  */
  64.160 +   unsigned int warn_shared_textrel: 1;
  64.161 + 
  64.162 +--- binutils-2.20/include/elf/common.h
  64.163 ++++ binutils-2.20/include/elf/common.h
  64.164 +@@ -422,6 +422,7 @@
  64.165 + #define PT_SUNW_EH_FRAME PT_GNU_EH_FRAME      /* Solaris uses the same value */
  64.166 + #define PT_GNU_STACK	(PT_LOOS + 0x474e551) /* Stack flags */
  64.167 + #define PT_GNU_RELRO	(PT_LOOS + 0x474e552) /* Read-only after relocation */
  64.168 ++#define PT_PAX_FLAGS	(PT_LOOS + 0x5041580) /* PaX flags */
  64.169 + 
  64.170 + /* Program segment permissions, in program header p_flags field.  */
  64.171 + 
  64.172 +@@ -432,6 +433,21 @@
  64.173 + #define PF_MASKOS	0x0FF00000	/* New value, Oct 4, 1999 Draft */
  64.174 + #define PF_MASKPROC	0xF0000000	/* Processor-specific reserved bits */
  64.175 + 
  64.176 ++/* Flags to control PaX behavior.  */
  64.177 ++
  64.178 ++#define PF_PAGEEXEC	(1 << 4)	/* Enable  PAGEEXEC */
  64.179 ++#define PF_NOPAGEEXEC	(1 << 5)	/* Disable PAGEEXEC */
  64.180 ++#define PF_SEGMEXEC	(1 << 6)	/* Enable  SEGMEXEC */
  64.181 ++#define PF_NOSEGMEXEC	(1 << 7)	/* Disable SEGMEXEC */
  64.182 ++#define PF_MPROTECT	(1 << 8)	/* Enable  MPROTECT */
  64.183 ++#define PF_NOMPROTECT	(1 << 9)	/* Disable MPROTECT */
  64.184 ++#define PF_RANDEXEC	(1 << 10)	/* Enable  RANDEXEC */
  64.185 ++#define PF_NORANDEXEC	(1 << 11)	/* Disable RANDEXEC */
  64.186 ++#define PF_EMUTRAMP	(1 << 12)	/* Enable  EMUTRAMP */
  64.187 ++#define PF_NOEMUTRAMP	(1 << 13)	/* Disable EMUTRAMP */
  64.188 ++#define PF_RANDMMAP	(1 << 14)	/* Enable  RANDMMAP */
  64.189 ++#define PF_NORANDMMAP	(1 << 15)	/* Disable RANDMMAP */
  64.190 ++
  64.191 + /* Values for section header, sh_type field.  */
  64.192 + 
  64.193 + #define SHT_NULL	0		/* Section header table entry unused */
  64.194 +--- binutils-2.20/ld/emultempl/elf32.em
  64.195 ++++ binutils-2.20/ld/emultempl/elf32.em
  64.196 +@@ -2159,6 +2159,16 @@ fragment <<EOF
  64.197 + 	  link_info.noexecstack = TRUE;
  64.198 + 	  link_info.execstack = FALSE;
  64.199 + 	}
  64.200 ++      else if (strcmp (optarg, "execheap") == 0)
  64.201 ++	{
  64.202 ++	  link_info.execheap = TRUE;
  64.203 ++	  link_info.noexecheap = FALSE;
  64.204 ++	}
  64.205 ++      else if (strcmp (optarg, "noexecheap") == 0)
  64.206 ++	{
  64.207 ++	  link_info.noexecheap = TRUE;
  64.208 ++	  link_info.execheap = FALSE;
  64.209 ++	}
  64.210 + EOF
  64.211 + 
  64.212 +   if test -n "$COMMONPAGESIZE"; then
  64.213 +@@ -2237,6 +2247,8 @@ fragment <<EOF
  64.214 +   fprintf (file, _("\
  64.215 +   -z execstack                Mark executable as requiring executable stack\n"));
  64.216 +   fprintf (file, _("\
  64.217 ++  -z execheap                 Mark executable as requiring executable heap\n"));
  64.218 ++  fprintf (file, _("\
  64.219 +   -z initfirst                Mark DSO to be initialized first at runtime\n"));
  64.220 +   fprintf (file, _("\
  64.221 +   -z interpose                Mark object to interpose all DSOs but executable\n"));
  64.222 +@@ -2260,6 +2272,8 @@ fragment <<EOF
  64.223 +   -z nodump                   Mark DSO not available to dldump\n"));
  64.224 +   fprintf (file, _("\
  64.225 +   -z noexecstack              Mark executable as not requiring executable stack\n"));
  64.226 ++  fprintf (file, _("\
  64.227 ++  -z noexecheap               Mark executable as not requiring executable heap\n"));
  64.228 + EOF
  64.229 + 
  64.230 +   if test -n "$COMMONPAGESIZE"; then
  64.231 +--- binutils-2.20/ld/ldgram.y
  64.232 ++++ binutils-2.20/ld/ldgram.y
  64.233 +@@ -1116,6 +1116,8 @@ phdr_type:
  64.234 + 			    $$ = exp_intop (0x6474e550);
  64.235 + 			  else if (strcmp (s, "PT_GNU_STACK") == 0)
  64.236 + 			    $$ = exp_intop (0x6474e551);
  64.237 ++			  else if (strcmp (s, "PT_PAX_FLAGS") == 0)
  64.238 ++			    $$ = exp_intop (0x65041580);
  64.239 + 			  else
  64.240 + 			    {
  64.241 + 			      einfo (_("\
    65.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    65.2 +++ b/patches/binutils/2.20/160-amd64-32bit-path.patch	Thu Oct 29 00:10:06 2009 +0100
    65.3 @@ -0,0 +1,16 @@
    65.4 +--- binutils/ld/emulparams/elf_i386.sh
    65.5 ++++ binutils/ld/emulparams/elf_i386.sh
    65.6 +@@ -13,3 +13,13 @@
    65.7 + NO_SMALL_DATA=yes
    65.8 + SEPARATE_GOTPLT=12
    65.9 + IREL_IN_PLT=
   65.10 ++
   65.11 ++# In Gentoo, we install 32bit libs into /lib32 in an
   65.12 ++# ABI setup with amd64/x86
   65.13 ++case "$target" in
   65.14 ++  x86_64*-linux*)
   65.15 ++    case "$EMULATION_NAME" in
   65.16 ++      *i386*) LIBPATH_SUFFIX=32  ;;
   65.17 ++    esac
   65.18 ++  ;;
   65.19 ++esac
    66.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    66.2 +++ b/patches/binutils/2.20/170-warn-textrel.patch	Thu Oct 29 00:10:06 2009 +0100
    66.3 @@ -0,0 +1,59 @@
    66.4 +textrels are bad for forcing copy-on-write (this affects everyone),
    66.5 +and for security/runtime code generation, this affects security ppl.
    66.6 +But in either case, it doesn't matter who needs textrels, it's
    66.7 +the very fact that they're needed at all.
    66.8 +
    66.9 +2006-06-10  Ned Ludd  <solar@gentoo.org>, Mike Frysinger <vapier@gentoo.org>
   66.10 +
   66.11 +	* bfd/elflink.c (bfd_elf_final_link): Check all objects for TEXTRELs.
   66.12 +	* ld/ldmain.c (main): Change textrel warning default to true.
   66.13 +	* ld/testsuite/lib/ld-lib.exp (default_ld_simple_link): Scrub TEXTREL
   66.14 +	warnings from ld output.
   66.15 +
   66.16 +--- bfd/elflink.c
   66.17 ++++ bfd/elflink.c
   66.18 +@@ -8652,14 +8652,12 @@
   66.19 + 	goto error_return;
   66.20 + 
   66.21 +       /* Check for DT_TEXTREL (late, in case the backend removes it).  */
   66.22 +-      if (info->warn_shared_textrel && info->shared)
   66.23 ++      o = bfd_get_section_by_name (dynobj, ".dynamic");
   66.24 ++      if (info->warn_shared_textrel && o != NULL)
   66.25 + 	{
   66.26 + 	  bfd_byte *dyncon, *dynconend;
   66.27 + 
   66.28 + 	  /* Fix up .dynamic entries.  */
   66.29 +-	  o = bfd_get_section_by_name (dynobj, ".dynamic");
   66.30 +-	  BFD_ASSERT (o != NULL);
   66.31 +-
   66.32 + 	  dyncon = o->contents;
   66.33 + 	  dynconend = o->contents + o->size;
   66.34 + 	  for (; dyncon < dynconend; dyncon += bed->s->sizeof_dyn)
   66.35 +@@ -8702,7 +8702,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
   66.36 + 	      if (dyn.d_tag == DT_TEXTREL)
   66.37 + 		{
   66.38 + 		 info->callbacks->einfo
   66.39 +-		    (_("%P: warning: creating a DT_TEXTREL in a shared object.\n"));
   66.40 ++		    (_("%P: warning: creating a DT_TEXTREL in object.\n"));
   66.41 + 		  break;
   66.42 + 		}
   66.43 + 	    }
   66.44 +--- ld/ldmain.c
   66.45 ++++ ld/ldmain.c
   66.46 +@@ -282,2 +282,3 @@ main (int argc, char **argv)
   66.47 +   link_info.spare_dynamic_tags = 5;
   66.48 ++  link_info.warn_shared_textrel = TRUE;
   66.49 +   link_info.sharable_sections = FALSE;
   66.50 +--- ld/testsuite/lib/ld-lib.exp
   66.51 ++++ ld/testsuite/lib/ld-lib.exp
   66.52 +@@ -181,6 +181,10 @@ proc default_ld_simple_link { ld target 
   66.53 +     # symbol, since the default linker script might use ENTRY.
   66.54 +     regsub -all "(^|\n)(\[^\n\]*: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output
   66.55 + 
   66.56 ++    # Gentoo tweak:
   66.57 ++    # We want to ignore TEXTREL warnings since we force enable them by default
   66.58 ++    regsub -all "^lt-ld-new: warning: creating a DT_TEXTREL in object\." $exec_output "\\1" exec_output
   66.59 ++
   66.60 +     if [string match "" $exec_output] then {
   66.61 + 	return 1
   66.62 +     } else {
    67.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    67.2 +++ b/patches/binutils/2.20/180-only-use-new-ld-dtags.patch.disabled	Thu Oct 29 00:10:06 2009 +0100
    67.3 @@ -0,0 +1,25 @@
    67.4 +Don't generate RPATH if we're going to be generating RUNPATH.
    67.5 +
    67.6 +need to ponder what ramifications this has before enabling it
    67.7 +
    67.8 +--- binutils/bfd/elflink.c
    67.9 ++++ binutils/bfd/elflink.c
   67.10 +@@ -5382,11 +5382,15 @@
   67.11 + 
   67.12 + 	  indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, rpath,
   67.13 + 				      TRUE);
   67.14 +-	  if (indx == (bfd_size_type) -1
   67.15 +-	      || !_bfd_elf_add_dynamic_entry (info, DT_RPATH, indx))
   67.16 ++	  if (indx == (bfd_size_type) -1)
   67.17 + 	    return FALSE;
   67.18 + 
   67.19 +-	  if  (info->new_dtags)
   67.20 ++	  if (!info->new_dtags)
   67.21 ++	    {
   67.22 ++	      if (!_bfd_elf_add_dynamic_entry (info, DT_RPATH, indx))
   67.23 ++		return FALSE;
   67.24 ++	    }
   67.25 ++	  else
   67.26 + 	    {
   67.27 + 	      _bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx);
   67.28 + 	      if (!_bfd_elf_add_dynamic_entry (info, DT_RUNPATH, indx))
    68.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    68.2 +++ b/patches/binutils/2.20/190-use-new-ld-dtags.patch	Thu Oct 29 00:10:06 2009 +0100
    68.3 @@ -0,0 +1,10 @@
    68.4 +--- binutils/ld/ldmain.c
    68.5 ++++ binutils/ld/ldmain.c
    68.6 +@@ -296,6 +296,7 @@ main (int argc, char **argv)
    68.7 + 
    68.8 +   link_info.allow_undefined_version = TRUE;
    68.9 +   link_info.keep_memory = TRUE;
   68.10 ++  link_info.new_dtags = TRUE;
   68.11 +   link_info.combreloc = TRUE;
   68.12 +   link_info.strip_discarded = TRUE;
   68.13 +   link_info.callbacks = &link_callbacks;
    69.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    69.2 +++ b/patches/binutils/2.20/200-document-new-dtags-behaviour.patch	Thu Oct 29 00:10:06 2009 +0100
    69.3 @@ -0,0 +1,16 @@
    69.4 +Index: binutils-2.19.51.0.5/ld/ld.texinfo
    69.5 +===================================================================
    69.6 +--- binutils-2.19.51.0.5.orig/ld/ld.texinfo
    69.7 ++++ binutils-2.19.51.0.5/ld/ld.texinfo
    69.8 +@@ -2036,8 +2036,9 @@ This linker can create the new dynamic t
    69.9 + systems may not understand them. If you specify
   69.10 + @option{--enable-new-dtags}, the dynamic tags will be created as needed.
   69.11 + If you specify @option{--disable-new-dtags}, no new dynamic tags will be
   69.12 +-created. By default, the new dynamic tags are not created. Note that
   69.13 +-those options are only available for ELF systems.
   69.14 ++created. On Gentoo, by default, the new dynamic tags are created (this
   69.15 ++differs from upstream behaviour). Note that those options are only
   69.16 ++available for ELF systems.
   69.17 + 
   69.18 + @kindex --hash-size=@var{number}
   69.19 + @item --hash-size=@var{number}
    70.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    70.2 +++ b/patches/binutils/2.20/210-generate-gnu-hash.patch	Thu Oct 29 00:10:06 2009 +0100
    70.3 @@ -0,0 +1,8 @@
    70.4 +--- binutils/ld/ldmain.c
    70.5 ++++ binutils/ld/ldmain.c
    70.6 +@@ -273,2 +273,5 @@ main (int argc, char **argv)
    70.7 +   link_info.emit_hash = TRUE;
    70.8 ++#ifndef __mips__
    70.9 ++  link_info.emit_gnu_hash = TRUE;
   70.10 ++#endif
   70.11 +   link_info.callbacks = &link_callbacks;
    71.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    71.2 +++ b/patches/binutils/2.20/220-use-relro.patch	Thu Oct 29 00:10:06 2009 +0100
    71.3 @@ -0,0 +1,6 @@
    71.4 +--- binutils/ld/ldmain.c
    71.5 ++++ binutils/ld/ldmain.c
    71.6 +@@ -293,2 +293,3 @@ main (int argc, char **argv)
    71.7 +   link_info.combreloc = TRUE;
    71.8 ++  link_info.relro = TRUE;
    71.9 +   link_info.strip_discarded = TRUE;
    72.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    72.2 +++ b/patches/binutils/2.20/230-libiberty-pic.patch	Thu Oct 29 00:10:06 2009 +0100
    72.3 @@ -0,0 +1,10 @@
    72.4 +--- libiberty/Makefile.in.mps	2004-05-13 15:53:17.000000000 +0200
    72.5 ++++ libiberty/Makefile.in	2004-05-13 15:52:53.000000000 +0200
    72.6 +@@ -224,6 +224,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA
    72.7 + 	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
    72.8 + 	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
    72.9 + 	  $(RANLIB) $(TARGETLIB); \
   72.10 ++	  cp $(TARGETLIB) ../ ; \
   72.11 + 	  cd ..; \
   72.12 + 	else true; fi
   72.13 + 
    73.1 --- a/patches/gcc/2.95.3/100-arm-linux.patch	Wed Oct 28 12:03:38 2009 +0100
    73.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    73.3 @@ -1,647 +0,0 @@
    73.4 ---------- snip -------
    73.5 -Downloaded from ftp://ftp.linux.org.uk/pub/armlinux/toolchain/src-2.95.3/gcc-2.95.3.diff.bz2
    73.6 -Not sure what it fixes, but this appears to be The Patch used with gcc-2.95.3 on arm.
    73.7 ---------- snip -------
    73.8 -
    73.9 -diff -urN gcc-2.95.3-orig/gcc/config/arm/arm.c gcc-2.95.3/gcc/config/arm/arm.c
   73.10 ---- gcc-2.95.3-orig/gcc/config/arm/arm.c	Thu Jan 25 15:03:24 2001
   73.11 -+++ gcc-2.95.3/gcc/config/arm/arm.c	Fri Jul 20 19:39:11 2001
   73.12 -@@ -1529,27 +1529,34 @@
   73.13 -       return gen_rtx_PLUS (Pmode, base, offset);
   73.14 -     }
   73.15 -   else if (GET_CODE (orig) == LABEL_REF)
   73.16 --    current_function_uses_pic_offset_table = 1;
   73.17 --
   73.18 --  return orig;
   73.19 --}
   73.20 -+    {
   73.21 -+      current_function_uses_pic_offset_table = 1;
   73.22 - 
   73.23 --static rtx pic_rtx;
   73.24 -+      if (NEED_PLT_GOT)
   73.25 -+	{
   73.26 -+	  rtx pic_ref, address = gen_reg_rtx (Pmode);
   73.27 -+	  
   73.28 -+	  emit_insn (gen_pic_load_addr (address, orig));
   73.29 -+	  pic_ref = gen_rtx_PLUS (Pmode, pic_offset_table_rtx,
   73.30 -+				  address);
   73.31 -+	  emit_move_insn (address, pic_ref);
   73.32 -+	  return address;
   73.33 -+	}
   73.34 -+    }
   73.35 - 
   73.36 --int
   73.37 --is_pic(x)
   73.38 --     rtx x;
   73.39 --{
   73.40 --  if (x == pic_rtx)
   73.41 --    return 1;
   73.42 --  return 0;
   73.43 -+  return orig;
   73.44 - }
   73.45 - 
   73.46 -+/* Generate code to load the PIC register.  PROLOGUE is true if
   73.47 -+   called from arm_expand_prologue (in which case we want the 
   73.48 -+   generated insns at the start of the function);  false if called
   73.49 -+   by an exception receiver that needs the PIC register reloaded
   73.50 -+   (in which case the insns are just dumped at the current location).  */
   73.51 - void
   73.52 --arm_finalize_pic ()
   73.53 -+arm_finalize_pic (int prologue)
   73.54 - {
   73.55 - #ifndef AOF_ASSEMBLER
   73.56 --  rtx l1, pic_tmp, pic_tmp2, seq;
   73.57 -+  rtx l1, pic_tmp, pic_tmp2, seq, pic_rtx;
   73.58 -   rtx global_offset_table;
   73.59 - 
   73.60 -   if (current_function_uses_pic_offset_table == 0)
   73.61 -@@ -1578,7 +1585,10 @@
   73.62 - 
   73.63 -   seq = gen_sequence ();
   73.64 -   end_sequence ();
   73.65 --  emit_insn_after (seq, get_insns ());
   73.66 -+  if (prologue)
   73.67 -+    emit_insn_after (seq, get_insns ());
   73.68 -+  else
   73.69 -+    emit_insn (seq);
   73.70 - 
   73.71 -   /* Need to emit this whether or not we obey regdecls,
   73.72 -      since setjmp/longjmp can cause life info to screw up.  */
   73.73 -@@ -5327,7 +5337,13 @@
   73.74 -   if (frame_pointer_needed)
   73.75 -     live_regs += 4;
   73.76 - 
   73.77 --  if (live_regs)
   73.78 -+  if (live_regs == 1 && regs_ever_live[LR_REGNUM]
   73.79 -+      && ! lr_save_eliminated && ! really_return)
   73.80 -+    {
   73.81 -+      output_asm_insn (reverse ? "ldr%?%D0\t%|lr, [%|sp}, #4"
   73.82 -+      		       : "ldr%?%d0\t%|lr, [%|sp], #4", &operand);
   73.83 -+    }
   73.84 -+  else if (live_regs)
   73.85 -     {
   73.86 -       if (lr_save_eliminated || ! regs_ever_live[14])
   73.87 -         live_regs++;
   73.88 -@@ -5446,7 +5462,7 @@
   73.89 -   rtx           x;
   73.90 - 
   73.91 -   length = strlen (name);
   73.92 --  alignlength = (length + 1) + 3 & ~3;
   73.93 -+  alignlength = ((length + 1) + 3) & ~3;
   73.94 -   
   73.95 -   ASM_OUTPUT_ASCII (stream, name, length + 1);
   73.96 -   ASM_OUTPUT_ALIGN (stream, 2);
   73.97 -@@ -5838,6 +5854,9 @@
   73.98 -   int store_arg_regs = 0;
   73.99 -   int volatile_func = (optimize > 0
  73.100 - 		       && TREE_THIS_VOLATILE (current_function_decl));
  73.101 -+  rtx ip_rtx;
  73.102 -+  int fp_offset = 0;
  73.103 -+  rtx insn;
  73.104 - 
  73.105 -   /* Naked functions don't have prologues.  */
  73.106 -   if (arm_naked_function_p (current_function_decl))
  73.107 -@@ -5859,11 +5878,59 @@
  73.108 - 	live_regs_mask |= 0x4000;
  73.109 -     }
  73.110 - 
  73.111 -+  ip_rtx = gen_rtx_REG (SImode, IP_REGNUM);
  73.112 -+
  73.113 -   if (frame_pointer_needed)
  73.114 -     {
  73.115 -+      if (current_function_needs_context)
  73.116 -+	{
  73.117 -+	  /* The Static chain register is the same as the IP register
  73.118 -+	     used as a scratch register during stack frame creation.
  73.119 -+	     To get around this need to find somewhere to store IP
  73.120 -+	     whilst the frame is being created.  We try the following
  73.121 -+	     places in order:
  73.122 -+	     
  73.123 -+	       1. An unused argument register.
  73.124 -+	       2. A slot on the stack above the frame.  (This only
  73.125 -+	          works if the function is not a varargs function).
  73.126 -+		  
  73.127 -+	     If neither of these places is available, we abort (for now).  */
  73.128 -+	  if (regs_ever_live[3] == 0)
  73.129 -+	    {
  73.130 -+	      insn = gen_rtx_REG (SImode, 3);
  73.131 -+	      insn = gen_rtx_SET (SImode, insn, ip_rtx);
  73.132 -+	      insn = emit_insn (insn);
  73.133 -+	      RTX_FRAME_RELATED_P (insn) = 1;	  
  73.134 -+	    }
  73.135 -+	  else if (current_function_pretend_args_size == 0)
  73.136 -+	    {
  73.137 -+	      insn = gen_rtx_PRE_DEC (SImode, stack_pointer_rtx);
  73.138 -+	      insn = gen_rtx_MEM (SImode, insn);
  73.139 -+	      insn = gen_rtx_SET (VOIDmode, insn, ip_rtx);
  73.140 -+	      insn = emit_insn (insn);
  73.141 -+	      RTX_FRAME_RELATED_P (insn) = 1;
  73.142 -+	      fp_offset = 4;
  73.143 -+	    }
  73.144 -+	  else
  73.145 -+	    /* FIXME - the way to handle this situation is to allow
  73.146 -+	       the pretend args to be dumped onto the stack, then
  73.147 -+	       reuse r3 to save IP.  This would involve moving the
  73.148 -+	       copying os SP into IP until after the pretend args
  73.149 -+	       have been dumped, but this is not too hard.  */
  73.150 -+	    error ("Unable to find a temporary location for static chanin register");
  73.151 -+	}
  73.152 -+
  73.153 -       live_regs_mask |= 0xD800;
  73.154 --      emit_insn (gen_movsi (gen_rtx_REG (SImode, 12),
  73.155 --			    stack_pointer_rtx));
  73.156 -+      if (fp_offset)
  73.157 -+	{
  73.158 -+	  insn = gen_rtx_PLUS (SImode, stack_pointer_rtx, GEN_INT (fp_offset));
  73.159 -+	  insn = gen_rtx_SET  (SImode, ip_rtx, insn);
  73.160 -+	}
  73.161 -+      else
  73.162 -+	insn = gen_movsi (ip_rtx, stack_pointer_rtx);
  73.163 -+      
  73.164 -+       insn = emit_insn (insn);
  73.165 -+       RTX_FRAME_RELATED_P (insn) = 1;
  73.166 -     }
  73.167 - 
  73.168 -   if (current_function_pretend_args_size)
  73.169 -@@ -5927,9 +5994,31 @@
  73.170 -     }
  73.171 - 
  73.172 -   if (frame_pointer_needed)
  73.173 --    emit_insn (gen_addsi3 (hard_frame_pointer_rtx, gen_rtx_REG (SImode, 12),
  73.174 --			   (GEN_INT
  73.175 --			    (-(4 + current_function_pretend_args_size)))));
  73.176 -+    {
  73.177 -+      insn = GEN_INT (-(4 + current_function_pretend_args_size + fp_offset));
  73.178 -+      insn = emit_insn (gen_addsi3 (hard_frame_pointer_rtx, ip_rtx, insn));
  73.179 -+      RTX_FRAME_RELATED_P (insn) = 1;
  73.180 -+      
  73.181 -+      if (current_function_needs_context)
  73.182 -+	{
  73.183 -+	  /* Recover the static chain register.  */
  73.184 -+	  if (regs_ever_live [3] == 0)
  73.185 -+	    {
  73.186 -+	      insn = gen_rtx_REG (SImode, 3);
  73.187 -+	      insn = gen_rtx_SET (SImode, ip_rtx, insn);
  73.188 -+	      insn = emit_insn (insn);
  73.189 -+	      RTX_FRAME_RELATED_P (insn) = 1;	  
  73.190 -+	    }
  73.191 -+	  else /* if (current_function_pretend_args_size == 0) */
  73.192 -+	    {
  73.193 -+	      insn = gen_rtx_PLUS (SImode, hard_frame_pointer_rtx, GEN_INT (4));
  73.194 -+	      insn = gen_rtx_MEM (SImode, insn);
  73.195 -+	      insn = gen_rtx_SET (SImode, ip_rtx, insn);
  73.196 -+	      insn = emit_insn (insn);
  73.197 -+	      RTX_FRAME_RELATED_P (insn) = 1;	  
  73.198 -+	    }
  73.199 -+	}
  73.200 -+    }
  73.201 - 
  73.202 -   if (amount != const0_rtx)
  73.203 -     {
  73.204 -diff -urN gcc-2.95.3-orig/gcc/config/arm/arm.h gcc-2.95.3/gcc/config/arm/arm.h
  73.205 ---- gcc-2.95.3-orig/gcc/config/arm/arm.h	Thu Jan 25 15:03:26 2001
  73.206 -+++ gcc-2.95.3/gcc/config/arm/arm.h	Fri Jul 20 19:39:11 2001
  73.207 -@@ -601,14 +601,20 @@
  73.208 -   (TREE_CODE (EXP) == STRING_CST        \
  73.209 -    && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
  73.210 - 
  73.211 -+#ifndef STRUCTURE_SIZE_BOUNDARY
  73.212 - /* Every structures size must be a multiple of 32 bits.  */
  73.213 - /* This is for compatibility with ARMCC.  ARM SDT Reference Manual
  73.214 -    (ARM DUI 0020D) page 2-20 says "Structures are aligned on word
  73.215 -    boundaries".  */
  73.216 --#ifndef STRUCTURE_SIZE_BOUNDARY
  73.217 --#define STRUCTURE_SIZE_BOUNDARY 32
  73.218 -+/* Setting this to 32 produces more efficient code, but the value set in previous
  73.219 -+   versions of this toolchain was 8, which produces more compact structures. The
  73.220 -+   command line option -mstructure_size_boundary=<n> can be used to change this
  73.221 -+   value.  */
  73.222 -+#define STRUCTURE_SIZE_BOUNDARY arm_structure_size_boundary
  73.223 - #endif
  73.224 - 
  73.225 -+extern int arm_structure_size_boundary;
  73.226 -+
  73.227 - /* Used when parsing command line option -mstructure_size_boundary.  */
  73.228 - extern const char * structure_size_string;
  73.229 - 
  73.230 -@@ -768,6 +774,9 @@
  73.231 - /* Specify the registers used for certain standard purposes.
  73.232 -    The values of these macros are register numbers.  */
  73.233 - 
  73.234 -+/* Register which holds return address from a subroutine call.  */
  73.235 -+#define LR_REGNUM		14
  73.236 -+
  73.237 - /* Define this if the program counter is overloaded on a register.  */
  73.238 - #define PC_REGNUM		15
  73.239 - 
  73.240 -@@ -777,6 +786,9 @@
  73.241 - /* Base register for access to local variables of the function.  */
  73.242 - #define FRAME_POINTER_REGNUM	25
  73.243 - 
  73.244 -+/* Scratch register - used in all kinds of places, eg trampolines.  */
  73.245 -+#define IP_REGNUM		12
  73.246 -+
  73.247 - /* Define this to be where the real frame pointer is if it is not possible to
  73.248 -    work out the offset between the frame pointer and the automatic variables
  73.249 -    until after register allocation has taken place.  FRAME_POINTER_REGNUM
  73.250 -@@ -798,7 +810,7 @@
  73.251 - /* The native (Norcroft) Pascal compiler for the ARM passes the static chain
  73.252 -    as an invisible last argument (possible since varargs don't exist in
  73.253 -    Pascal), so the following is not true.  */
  73.254 --#define STATIC_CHAIN_REGNUM	8
  73.255 -+#define STATIC_CHAIN_REGNUM	12
  73.256 - 
  73.257 - /* Register in which address to store a structure value
  73.258 -    is passed to a function.  */
  73.259 -@@ -1248,7 +1260,12 @@
  73.260 - {									\
  73.261 -   int volatile_func = arm_volatile_func ();				\
  73.262 -   if ((FROM) == ARG_POINTER_REGNUM && (TO) == HARD_FRAME_POINTER_REGNUM)\
  73.263 --    (OFFSET) = 0;							\
  73.264 -+    {                                                                   \
  73.265 -+      if (! current_function_needs_context || ! frame_pointer_needed)   \
  73.266 -+        (OFFSET) = 0;                                                   \
  73.267 -+      else                                                              \
  73.268 -+        (OFFSET) = 4;                                                   \
  73.269 -+    }                                                                   \
  73.270 -   else if ((FROM) == FRAME_POINTER_REGNUM				\
  73.271 - 	   && (TO) == STACK_POINTER_REGNUM)				\
  73.272 -     (OFFSET) = (current_function_outgoing_args_size			\
  73.273 -@@ -1379,8 +1396,10 @@
  73.274 - 
  73.275 -    On the ARM, allow any integer (invalid ones are removed later by insn
  73.276 -    patterns), nice doubles and symbol_refs which refer to the function's
  73.277 --   constant pool XXX.  */
  73.278 --#define LEGITIMATE_CONSTANT_P(X)	(! label_mentioned_p (X))
  73.279 -+   constant pool XXX.
  73.280 -+
  73.281 -+   When generating PIC code, allow anything.  */
  73.282 -+#define LEGITIMATE_CONSTANT_P(X)	(flag_pic || ! label_mentioned_p (X))
  73.283 - 
  73.284 - /* Symbols in the text segment can be accessed without indirecting via the
  73.285 -    constant pool; it may take an extra binary operation, but this is still
  73.286 -@@ -1496,9 +1515,8 @@
  73.287 - 	      && INTVAL (op) <= 31)					\
  73.288 - 	    goto LABEL;							\
  73.289 -         }								\
  73.290 --      /* NASTY: Since this limits the addressing of unsigned byte loads */      \
  73.291 -       range = ((MODE) == HImode || (MODE) == QImode)                    \
  73.292 --              ? (arm_arch4 ? 256 : 4095) : 4096;                        \
  73.293 -+              ? (((MODE) == HImode && arm_arch4) ? 256 : 4095) : 4096;  \
  73.294 -       if (code == CONST_INT && INTVAL (INDEX) < range			\
  73.295 - 	  && INTVAL (INDEX) > -range)  	      				\
  73.296 -         goto LABEL;							\
  73.297 -@@ -1812,14 +1830,15 @@
  73.298 -    data addresses in memory.  */
  73.299 - #define PIC_OFFSET_TABLE_REGNUM arm_pic_register
  73.300 - 
  73.301 --#define FINALIZE_PIC arm_finalize_pic ()
  73.302 -+#define FINALIZE_PIC arm_finalize_pic (1)
  73.303 - 
  73.304 --/* We can't directly access anything that contains a symbol,
  73.305 -+/* We can't directly access anything that contains a symbol or label,
  73.306 -    nor can we indirect via the constant pool.  */
  73.307 - #define LEGITIMATE_PIC_OPERAND_P(X)				\
  73.308 --	(! symbol_mentioned_p (X)				\
  73.309 -+	(! symbol_mentioned_p (X) && ! label_mentioned_p (X)	\
  73.310 - 	 && (! CONSTANT_POOL_ADDRESS_P (X)			\
  73.311 --	     || ! symbol_mentioned_p (get_pool_constant (X))))
  73.312 -+	     || (! symbol_mentioned_p (get_pool_constant (X)))  \
  73.313 -+		&& (! label_mentioned_p (get_pool_constant (X)))))
  73.314 -  
  73.315 - /* We need to know when we are making a constant pool; this determines
  73.316 -    whether data needs to be in the GOT or can be referenced via a GOT
  73.317 -@@ -2046,17 +2065,9 @@
  73.318 -   else output_addr_const(STREAM, X);					\
  73.319 - }
  73.320 - 
  73.321 --/* Handles PIC addr specially */
  73.322 - #define OUTPUT_INT_ADDR_CONST(STREAM,X) \
  73.323 -   {									\
  73.324 --    if (flag_pic && GET_CODE(X) == CONST && is_pic(X))			\
  73.325 --      {									\
  73.326 --	output_addr_const(STREAM, XEXP (XEXP (XEXP (X, 0), 0), 0));	\
  73.327 --	fputs(" - (", STREAM);						\
  73.328 --	output_addr_const(STREAM, XEXP (XEXP (XEXP (X, 0), 1), 0));	\
  73.329 --	fputs(")", STREAM);						\
  73.330 --      }									\
  73.331 --    else output_addr_const(STREAM, X);					\
  73.332 -+    output_addr_const(STREAM, X);					\
  73.333 - 									\
  73.334 -     /* Mark symbols as position independent.  We only do this in the	\
  73.335 -       .text segment, not in the .data segment. */			\
  73.336 -@@ -2170,8 +2181,7 @@
  73.337 - int    arm_return_in_memory PROTO ((Tree));
  73.338 - int    legitimate_pic_operand_p PROTO ((Rtx));
  73.339 - Rtx    legitimize_pic_address PROTO ((Rtx, Mmode, Rtx));
  73.340 --int    is_pic PROTO ((Rtx));
  73.341 --void   arm_finalize_pic PROTO ((void));
  73.342 -+void   arm_finalize_pic PROTO ((int));
  73.343 - int    arm_rtx_costs RTX_CODE_PROTO ((Rtx, Rcode));
  73.344 - int    arm_adjust_cost PROTO ((Rtx, Rtx, Rtx, int));
  73.345 - int    const_double_rtx_ok_for_fpu PROTO ((Rtx));
  73.346 -diff -urN gcc-2.95.3-orig/gcc/config/arm/arm.md gcc-2.95.3/gcc/config/arm/arm.md
  73.347 ---- gcc-2.95.3-orig/gcc/config/arm/arm.md	Thu Jan 25 15:03:27 2001
  73.348 -+++ gcc-2.95.3/gcc/config/arm/arm.md	Fri Jul 20 19:39:11 2001
  73.349 -@@ -2629,7 +2629,8 @@
  73.350 - 			   : preserve_subexpressions_p ()));
  73.351 -       DONE;
  73.352 -     }
  73.353 --  if (CONSTANT_P (operands[1]) && flag_pic)
  73.354 -+  if ((CONSTANT_P (operands[1]) || symbol_mentioned_p (operands[1])
  73.355 -+        || label_mentioned_p (operands[1])) && flag_pic)
  73.356 -     operands[1] = legitimize_pic_address (operands[1], SImode,
  73.357 - 					  ((reload_in_progress
  73.358 - 					    || reload_completed)
  73.359 -@@ -2721,6 +2722,15 @@
  73.360 -   return \"add%?\\t%0, %|pc, %0\";
  73.361 - ")
  73.362 - 
  73.363 -+(define_expand "builtin_setjmp_receiver"
  73.364 -+  [(label_ref (match_operand 0 "" ""))]
  73.365 -+  "flag_pic"
  73.366 -+  "
  73.367 -+{
  73.368 -+  arm_finalize_pic (0);
  73.369 -+  DONE;
  73.370 -+}")
  73.371 -+
  73.372 - ;; If copying one reg to another we can set the condition codes according to
  73.373 - ;; its value.  Such a move is common after a return from subroutine and the
  73.374 - ;; result is being tested against zero.
  73.375 -@@ -6184,15 +6194,20 @@
  73.376 - 	abort ();
  73.377 -       return \"\";
  73.378 -     }
  73.379 --  strcpy (pattern, \"stmfd\\t%m0!, {%1\");
  73.380 --  for (i = 1; i < XVECLEN (operands[2], 0); i++)
  73.381 -+  if (XVECLEN (operands[2], 0) > 1)
  73.382 -     {
  73.383 --      strcat (pattern, \", %|\");
  73.384 --      strcat (pattern, reg_names[REGNO (XEXP (XVECEXP (operands[2], 0, i),
  73.385 -+      strcpy (pattern, \"stmfd\\t%m0!, {%1\");
  73.386 -+      for (i = 1; i < XVECLEN (operands[2], 0); i++)
  73.387 -+        {
  73.388 -+           strcat (pattern, \", %|\");
  73.389 -+           strcat (pattern, reg_names[REGNO (XEXP (XVECEXP (operands[2], 0, i),
  73.390 - 					      0))]);
  73.391 -+        }
  73.392 -+      strcat (pattern, \"}\");
  73.393 -+      output_asm_insn (pattern, operands);
  73.394 -     }
  73.395 --  strcat (pattern, \"}\");
  73.396 --  output_asm_insn (pattern, operands);
  73.397 -+  else
  73.398 -+    output_asm_insn (\"str\\t%1, [%m0, #-4]!\", operands);
  73.399 -   return \"\";
  73.400 - }"
  73.401 - [(set_attr "type" "store4")])
  73.402 -diff -urN gcc-2.95.3-orig/gcc/config/arm/elf.h gcc-2.95.3/gcc/config/arm/elf.h
  73.403 ---- gcc-2.95.3-orig/gcc/config/arm/elf.h	Mon May 31 10:21:53 1999
  73.404 -+++ gcc-2.95.3/gcc/config/arm/elf.h	Fri Jul 20 19:39:11 2001
  73.405 -@@ -167,15 +167,6 @@
  73.406 - #define MULTILIB_DEFAULTS { "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
  73.407 - #endif
  73.408 - 
  73.409 --/* Setting this to 32 produces more efficient code, but the value set in previous
  73.410 --   versions of this toolchain was 8, which produces more compact structures. The
  73.411 --   command line option -mstructure_size_boundary=<n> can be used to change this
  73.412 --   value.  */
  73.413 --#undef  STRUCTURE_SIZE_BOUNDARY
  73.414 --#define STRUCTURE_SIZE_BOUNDARY arm_structure_size_boundary
  73.415 --
  73.416 --extern int arm_structure_size_boundary;
  73.417 --
  73.418 - /* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
  73.419 -    is a valid machine specific attribute for DECL.
  73.420 -    The attributes in ATTRIBUTES have previously been assigned to DECL.  */
  73.421 -diff -urN gcc-2.95.3-orig/gcc/config/arm/linux-gas.h gcc-2.95.3/gcc/config/arm/linux-gas.h
  73.422 ---- gcc-2.95.3-orig/gcc/config/arm/linux-gas.h	Mon Feb 22 17:47:57 1999
  73.423 -+++ gcc-2.95.3/gcc/config/arm/linux-gas.h	Fri Jul 20 19:39:11 2001
  73.424 -@@ -1,6 +1,6 @@
  73.425 - /* Definitions of target machine for GNU compiler.
  73.426 -    ARM Linux-based GNU systems version.
  73.427 --   Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
  73.428 -+   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  73.429 -    Contributed by Russell King  <rmk92@ecs.soton.ac.uk>.
  73.430 - 
  73.431 - This file is part of GNU CC.
  73.432 -@@ -79,5 +79,7 @@
  73.433 -   register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);	\
  73.434 -   register unsigned long _end __asm ("a2") = (unsigned long) (END);	\
  73.435 -   register unsigned long _flg __asm ("a3") = 0;				\
  73.436 --  __asm __volatile ("swi 0x9f0002");					\
  73.437 -+  __asm __volatile ("swi 0x9f0002		@ sys_cacheflush"	\
  73.438 -+		    : "=r" (_beg)					\
  73.439 -+		    : "0" (_beg), "r" (_end), "r" (_flg));		\
  73.440 - }
  73.441 -diff -urN gcc-2.95.3-orig/gcc/config/arm/t-linux gcc-2.95.3/gcc/config/arm/t-linux
  73.442 ---- gcc-2.95.3-orig/gcc/config/arm/t-linux	Fri Mar 26 16:30:20 1999
  73.443 -+++ gcc-2.95.3/gcc/config/arm/t-linux	Fri Jul 20 20:46:19 2001
  73.444 -@@ -1,6 +1,6 @@
  73.445 - # Just for these, we omit the frame pointer since it makes such a big
  73.446 - # difference.  It is then pointless adding debugging.
  73.447 --TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
  73.448 -+TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC 
  73.449 - LIBGCC2_DEBUG_CFLAGS = -g0
  73.450 - 
  73.451 - # Don't build enquire
  73.452 -diff -urN gcc-2.95.3-orig/gcc/final.c gcc-2.95.3/gcc/final.c
  73.453 ---- gcc-2.95.3-orig/gcc/final.c	Mon Mar 12 13:07:59 2001
  73.454 -+++ gcc-2.95.3/gcc/final.c	Fri Jul 20 19:39:11 2001
  73.455 -@@ -3652,8 +3652,9 @@
  73.456 - 
  73.457 -       output_addr_const (file, XEXP (x, 0));
  73.458 -       fprintf (file, "-");
  73.459 --      if (GET_CODE (XEXP (x, 1)) == CONST_INT
  73.460 --	  && INTVAL (XEXP (x, 1)) < 0)
  73.461 -+      if ((GET_CODE (XEXP (x, 1)) == CONST_INT
  73.462 -+	   && INTVAL (XEXP (x, 1)) < 0)
  73.463 -+	  || GET_CODE (XEXP (x, 1)) != CONST_INT)
  73.464 - 	{
  73.465 - 	  fprintf (file, ASM_OPEN_PAREN);
  73.466 - 	  output_addr_const (file, XEXP (x, 1));
  73.467 -diff -urN gcc-2.95.3-orig/gcc/function.c gcc-2.95.3/gcc/function.c
  73.468 ---- gcc-2.95.3-orig/gcc/function.c	Thu Jan 25 15:03:15 2001
  73.469 -+++ gcc-2.95.3/gcc/function.c	Fri Jul 20 19:39:10 2001
  73.470 -@@ -3053,6 +3053,105 @@
  73.471 -    extracted by usage MEM with narrower mode. */
  73.472 - static rtx purge_addressof_replacements;
  73.473 - 
  73.474 -+/* Return 1 if X and Y are identical-looking rtx's.
  73.475 -+   This is the Lisp function EQUAL for rtx arguments.  */
  73.476 -+
  73.477 -+int
  73.478 -+rtx_equal_for_addressof_p (x, y)
  73.479 -+     rtx x, y;
  73.480 -+{
  73.481 -+  register int i;
  73.482 -+  register int j;
  73.483 -+  register enum rtx_code code;
  73.484 -+  register char *fmt;
  73.485 -+
  73.486 -+  if (x == y)
  73.487 -+    return 1;
  73.488 -+  if (x == 0 || y == 0)
  73.489 -+    return 0;
  73.490 -+
  73.491 -+  code = GET_CODE (x);
  73.492 -+  /* Rtx's of different codes cannot be equal.  */
  73.493 -+  if (code != GET_CODE (y))
  73.494 -+    return 0;
  73.495 -+
  73.496 -+  /* (MULT:SI x y) and (MULT:HI x y) are NOT equivalent.
  73.497 -+     (REG:SI x) and (REG:HI x) are NOT equivalent. 
  73.498 -+     But (MEM:SI x) and (MEM:HI x) are equivalent for our purposes.  */
  73.499 -+
  73.500 -+  if (code != MEM && (GET_MODE (x) != GET_MODE (y)))
  73.501 -+    return 0;
  73.502 -+
  73.503 -+  /* REG, LABEL_REF, and SYMBOL_REF can be compared nonrecursively.  */
  73.504 -+
  73.505 -+  if (code == REG)
  73.506 -+    return REGNO (x) == REGNO (y);
  73.507 -+  else if (code == LABEL_REF)
  73.508 -+    return XEXP (x, 0) == XEXP (y, 0);
  73.509 -+  else if (code == SYMBOL_REF)
  73.510 -+    return XSTR (x, 0) == XSTR (y, 0);
  73.511 -+  else if (code == SCRATCH || code == CONST_DOUBLE)
  73.512 -+    return 0;
  73.513 -+
  73.514 -+  /* Compare the elements.  If any pair of corresponding elements
  73.515 -+     fail to match, return 0 for the whole things.  */
  73.516 -+
  73.517 -+  fmt = GET_RTX_FORMAT (code);
  73.518 -+  for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--)
  73.519 -+    {
  73.520 -+      switch (fmt[i])
  73.521 -+	{
  73.522 -+	case 'w':
  73.523 -+	  if (XWINT (x, i) != XWINT (y, i))
  73.524 -+	    return 0;
  73.525 -+	  break;
  73.526 -+
  73.527 -+	case 'n':
  73.528 -+	case 'i':
  73.529 -+	  if (XINT (x, i) != XINT (y, i))
  73.530 -+	    return 0;
  73.531 -+	  break;
  73.532 -+
  73.533 -+	case 'V':
  73.534 -+	case 'E':
  73.535 -+	  /* Two vectors must have the same length.  */
  73.536 -+	  if (XVECLEN (x, i) != XVECLEN (y, i))
  73.537 -+	    return 0;
  73.538 -+
  73.539 -+	  /* And the corresponding elements must match.  */
  73.540 -+	  for (j = 0; j < XVECLEN (x, i); j++)
  73.541 -+	    if (rtx_equal_p (XVECEXP (x, i, j), XVECEXP (y, i, j)) == 0)
  73.542 -+	      return 0;
  73.543 -+	  break;
  73.544 -+
  73.545 -+	case 'e':
  73.546 -+	  if (rtx_equal_p (XEXP (x, i), XEXP (y, i)) == 0)
  73.547 -+	    return 0;
  73.548 -+	  break;
  73.549 -+
  73.550 -+	case 'S':
  73.551 -+	case 's':
  73.552 -+	  if (strcmp (XSTR (x, i), XSTR (y, i)))
  73.553 -+	    return 0;
  73.554 -+	  break;
  73.555 -+
  73.556 -+	case 'u':
  73.557 -+	  /* These are just backpointers, so they don't matter.  */
  73.558 -+	  break;
  73.559 -+
  73.560 -+	case '0':
  73.561 -+	  break;
  73.562 -+
  73.563 -+	  /* It is believed that rtx's at this level will never
  73.564 -+	     contain anything but integers and other rtx's,
  73.565 -+	     except for within LABEL_REFs and SYMBOL_REFs.  */
  73.566 -+	default:
  73.567 -+	  abort ();
  73.568 -+	}
  73.569 -+    }
  73.570 -+  return 1;
  73.571 -+}
  73.572 -+
  73.573 - /* Helper function for purge_addressof.  See if the rtx expression at *LOC
  73.574 -    in INSN needs to be changed.  If FORCE, always put any ADDRESSOFs into
  73.575 -    the stack.  */
  73.576 -@@ -3133,7 +3232,7 @@
  73.577 - 	      for (tem = purge_bitfield_addressof_replacements;
  73.578 - 		   tem != NULL_RTX;
  73.579 - 		   tem = XEXP (XEXP (tem, 1), 1))
  73.580 --		if (rtx_equal_p (x, XEXP (tem, 0)))
  73.581 -+		if (rtx_equal_for_addressof_p (x, XEXP (tem, 0)))
  73.582 - 		  {
  73.583 - 		    *loc = XEXP (XEXP (tem, 1), 0);
  73.584 - 		    return;
  73.585 -@@ -3143,7 +3242,7 @@
  73.586 - 	      for (tem = purge_addressof_replacements;
  73.587 - 		   tem != NULL_RTX;
  73.588 - 		   tem = XEXP (XEXP (tem, 1), 1))
  73.589 --		if (rtx_equal_p (XEXP (x, 0), XEXP (tem, 0)))
  73.590 -+		if (rtx_equal_for_addressof_p (XEXP (x, 0), XEXP (tem, 0)))
  73.591 - 		  {
  73.592 - 		    rtx z = XEXP (XEXP (tem, 1), 0);
  73.593 - 
  73.594 -diff -urN gcc-2.95.3-orig/gcc/jump.c gcc-2.95.3/gcc/jump.c
  73.595 ---- gcc-2.95.3-orig/gcc/jump.c	Thu Oct 21 08:24:03 1999
  73.596 -+++ gcc-2.95.3/gcc/jump.c	Fri Jul 20 19:39:10 2001
  73.597 -@@ -115,7 +115,7 @@
  73.598 - static rtx delete_unreferenced_labels	PROTO((rtx));
  73.599 - static void delete_noop_moves		PROTO((rtx));
  73.600 - static int calculate_can_reach_end	PROTO((rtx, int, int));
  73.601 --static int duplicate_loop_exit_test	PROTO((rtx));
  73.602 -+static int duplicate_loop_exit_test	PROTO((rtx, int));
  73.603 - static void find_cross_jump		PROTO((rtx, rtx, int, rtx *, rtx *));
  73.604 - static void do_cross_jump		PROTO((rtx, rtx, rtx));
  73.605 - static int jump_back_p			PROTO((rtx, rtx));
  73.606 -@@ -338,7 +338,7 @@
  73.607 - 	      && simplejump_p (temp1))
  73.608 - 	    {
  73.609 - 	      temp = PREV_INSN (insn);
  73.610 --	      if (duplicate_loop_exit_test (insn))
  73.611 -+	      if (duplicate_loop_exit_test (insn, after_regscan))
  73.612 - 		{
  73.613 - 		  changed = 1;
  73.614 - 		  next = NEXT_INSN (temp);
  73.615 -@@ -2548,8 +2548,9 @@
  73.616 -    values of regno_first_uid and regno_last_uid.  */
  73.617 - 
  73.618 - static int
  73.619 --duplicate_loop_exit_test (loop_start)
  73.620 -+duplicate_loop_exit_test (loop_start, after_regscan)
  73.621 -      rtx loop_start;
  73.622 -+     int after_regscan;
  73.623 - {
  73.624 -   rtx insn, set, reg, p, link;
  73.625 -   rtx copy = 0, first_copy = 0;
  73.626 -@@ -2662,6 +2663,9 @@
  73.627 - 	    reg_map[REGNO (reg)] = gen_reg_rtx (GET_MODE (reg));
  73.628 - 	  }
  73.629 -       }
  73.630 -+
  73.631 -+  if (after_regscan)
  73.632 -+    reg_scan_update (exitcode, lastexit, max_reg);
  73.633 - 
  73.634 -   /* Now copy each insn.  */
  73.635 -   for (insn = exitcode; insn != lastexit; insn = NEXT_INSN (insn))
  73.636 -diff -urN gcc-2.95.3-orig/gcc/varasm.c gcc-2.95.3/gcc/varasm.c
  73.637 ---- gcc-2.95.3-orig/gcc/varasm.c	Mon Feb 19 15:02:02 2001
  73.638 -+++ gcc-2.95.3/gcc/varasm.c	Fri Jul 20 19:39:11 2001
  73.639 -@@ -3286,7 +3286,10 @@
  73.640 - 	  value->un.addr.offset = - INTVAL (XEXP (x, 1));
  73.641 - 	}
  73.642 -       else
  73.643 --	abort ();
  73.644 -+	{
  73.645 -+	  value->un.addr.base = x;
  73.646 -+	  value->un.addr.offset = 0;
  73.647 -+	}
  73.648 -       break;
  73.649 - 
  73.650 -     default:
    74.1 --- a/patches/gcc/2.95.3/110-backport-config.gcc-1.4.patch	Wed Oct 28 12:03:38 2009 +0100
    74.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    74.3 @@ -1,35 +0,0 @@
    74.4 -# Taken from http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config.gcc.diff?r1=1.3&r2=1.4
    74.5 -# Should fix error
    74.6 -#   Configuration powerpc-host_apple-darwin7.3.0 not supported
    74.7 -# when configuring gcc-2.95 on Mac OS X for i686 target
    74.8 -# Also create xm-darwin.h, seems to be required, else we get the error
    74.9 -#   In file included from .../gcc-2.95.3/gcc/gencheck.c:21:
   74.10 -#   hconfig.h:11:30: rs6000/xm-darwin.h: No such file or directory
   74.11 -#   make[1]: *** [gencheck.o] Error 1
   74.12 -
   74.13 -
   74.14 ---- gcc-2.95.3/gcc/configure.old	2004-03-24 12:17:44.000000000 -0800
   74.15 -+++ gcc-2.95.3/gcc/configure	2004-03-24 17:14:38.000000000 -0800
   74.16 -@@ -5079,6 +5079,10 @@
   74.17 - 		tmake_file=rs6000/t-beos
   74.18 - 		xmake_file=rs6000/x-beos
   74.19 - 		;;
   74.20 -+	powerpc-*-darwin*)
   74.21 -+		xm_file="rs6000/xm-rs6000.h rs6000/xm-darwin.h"
   74.22 -+		xmake_file=rs6000/x-darwin
   74.23 -+		;;
   74.24 - 	powerpc-*-sysv* | powerpc-*-elf*)
   74.25 - 		tm_file=rs6000/sysv4.h
   74.26 - 		xm_file="xm-siglist.h rs6000/xm-sysv4.h"
   74.27 ---- /dev/null	2003-01-30 02:24:37.000000000 -0800
   74.28 -+++ gcc-3.0.4/gcc/config/rs6000/xm-darwin.h	2000-11-20 19:02:09.000000000 -0800
   74.29 -@@ -0,0 +1,9 @@
   74.30 -+/* Undo the USG definition in xm-rs6000.h, Darwin is a BSD flavor.  */
   74.31 -+
   74.32 -+#undef USG
   74.33 -+
   74.34 -+/* Override the usual setting, since Apple's GCC has lame bugs and
   74.35 -+   can't handle the initializers.  Someday the bugs will be fixed and
   74.36 -+   we can get rid of this silliness.  */
   74.37 -+
   74.38 -+#define HAVE_DESIGNATED_INITIALIZERS 0
    75.1 --- a/patches/gcc/2.95.3/120-backport-config.gcc-1.92.patch	Wed Oct 28 12:03:38 2009 +0100
    75.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    75.3 @@ -1,39 +0,0 @@
    75.4 -# Taken from http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config.gcc.diff?r1=1.91&r2=1.92
    75.5 -# Should fix error
    75.6 -#   Configuration x86_64-host_unknown-linux-gnu not supported
    75.7 -# when configuring gcc-2.95 on x86_64 build for i686 target
    75.8 -# It's a bit silly, since tm_file refers to files that don't exist,
    75.9 -# but as long as x86_64 is just the build machine, that doesn't matter.
   75.10 -
   75.11 ---- gcc-2.95.3/gcc/configure.old	2004-03-24 12:17:44.000000000 -0800
   75.12 -+++ gcc-2.95.3/gcc/configure	2004-03-24 12:19:30.000000000 -0800
   75.13 -@@ -2929,6 +2929,9 @@
   75.14 - 	i[34567]86-*-*)
   75.15 - 		cpu_type=i386
   75.16 - 		;;
   75.17 -+	x86_64-*-*)
   75.18 -+		cpu_type=i386
   75.19 -+		;;
   75.20 - 	hppa*-*-*)
   75.21 - 		cpu_type=pa
   75.22 - 		;;
   75.23 -@@ -3643,6 +3646,19 @@
   75.24 -  			thread_file='posix'
   75.25 -  		fi
   75.26 - 		;;
   75.27 -+	x86_64-*-linux*)
   75.28 -+		xmake_file=x-linux
   75.29 -+		tm_file="i386/biarch64.h i386/i386.h i386/att.h linux.h i386/x86-64.h \
   75.30 -+			 i386/linux64.h"
   75.31 -+		tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff"
   75.32 -+		extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   75.33 -+		gnu_ld=yes
   75.34 -+		float_format=i386
   75.35 -+		if test x$enable_threads = xyes; then
   75.36 -+			thread_file='posix'
   75.37 -+		fi
   75.38 -+		;;
   75.39 -+
   75.40 - 	i[34567]86-*-gnu*)
   75.41 - 		float_format=i386
   75.42 - 		;;
    76.1 --- a/patches/gcc/2.95.3/130-config.sub.patch	Wed Oct 28 12:03:38 2009 +0100
    76.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    76.3 @@ -1,1257 +0,0 @@
    76.4 -# Backport from gcc-3.3.3
    76.5 -# Fixes errors like
    76.6 -#   Invalid configuration `x86_64-host_unknown-linux-gnu': machine `x86_64-host_unknown' not recognized
    76.7 -#   Unrecognized host system name x86_64-host_unknown-linux-gnu.
    76.8 -# when configuring on chip types or operating systems like x86_64 or Darwin
    76.9 -# which are newer than gcc-2.95
   76.10 -
   76.11 ---- gcc-2.95.3/config.sub.old	1999-08-04 01:09:26.000000000 -0700
   76.12 -+++ gcc-2.95.3/config.sub	2004-03-24 11:28:24.000000000 -0800
   76.13 -@@ -1,6 +1,10 @@
   76.14 - #! /bin/sh
   76.15 --# Configuration validation subroutine script, version 1.1.
   76.16 --#   Copyright (C) 1991, 92-97, 1998, 1999 Free Software Foundation, Inc.
   76.17 -+# Configuration validation subroutine script.
   76.18 -+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
   76.19 -+#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   76.20 -+
   76.21 -+timestamp='2003-01-28'
   76.22 -+
   76.23 - # This file is (in principle) common to ALL GNU software.
   76.24 - # The presence of a machine in this file suggests that SOME GNU software
   76.25 - # can handle that machine.  It does not imply ALL GNU software can.
   76.26 -@@ -25,6 +29,9 @@
   76.27 - # configuration script generated by Autoconf, you may include it under
   76.28 - # the same distribution terms that you use for the rest of that program.
   76.29 - 
   76.30 -+# Please send patches to <config-patches@gnu.org>.  Submit a context
   76.31 -+# diff and a properly formatted ChangeLog entry.
   76.32 -+#
   76.33 - # Configuration subroutine to validate and canonicalize a configuration type.
   76.34 - # Supply the specified configuration type as an argument.
   76.35 - # If it is invalid, we print an error message on stderr and exit with code 1.
   76.36 -@@ -45,30 +52,73 @@
   76.37 - #	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
   76.38 - # It is wrong to echo any other type of specification.
   76.39 - 
   76.40 --if [ x$1 = x ]
   76.41 --then
   76.42 --	echo Configuration name missing. 1>&2
   76.43 --	echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
   76.44 --	echo "or     $0 ALIAS" 1>&2
   76.45 --	echo where ALIAS is a recognized configuration type. 1>&2
   76.46 --	exit 1
   76.47 --fi
   76.48 -+me=`echo "$0" | sed -e 's,.*/,,'`
   76.49 - 
   76.50 --# First pass through any local machine types.
   76.51 --case $1 in
   76.52 --	*local*)
   76.53 --		echo $1
   76.54 --		exit 0
   76.55 --		;;
   76.56 --	*)
   76.57 --	;;
   76.58 -+usage="\
   76.59 -+Usage: $0 [OPTION] CPU-MFR-OPSYS
   76.60 -+       $0 [OPTION] ALIAS
   76.61 -+
   76.62 -+Canonicalize a configuration name.
   76.63 -+
   76.64 -+Operation modes:
   76.65 -+  -h, --help         print this help, then exit
   76.66 -+  -t, --time-stamp   print date of last modification, then exit
   76.67 -+  -v, --version      print version number, then exit
   76.68 -+
   76.69 -+Report bugs and patches to <config-patches@gnu.org>."
   76.70 -+
   76.71 -+version="\
   76.72 -+GNU config.sub ($timestamp)
   76.73 -+
   76.74 -+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
   76.75 -+Free Software Foundation, Inc.
   76.76 -+
   76.77 -+This is free software; see the source for copying conditions.  There is NO
   76.78 -+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
   76.79 -+
   76.80 -+help="
   76.81 -+Try \`$me --help' for more information."
   76.82 -+
   76.83 -+# Parse command line
   76.84 -+while test $# -gt 0 ; do
   76.85 -+  case $1 in
   76.86 -+    --time-stamp | --time* | -t )
   76.87 -+       echo "$timestamp" ; exit 0 ;;
   76.88 -+    --version | -v )
   76.89 -+       echo "$version" ; exit 0 ;;
   76.90 -+    --help | --h* | -h )
   76.91 -+       echo "$usage"; exit 0 ;;
   76.92 -+    -- )     # Stop option processing
   76.93 -+       shift; break ;;
   76.94 -+    - )	# Use stdin as input.
   76.95 -+       break ;;
   76.96 -+    -* )
   76.97 -+       echo "$me: invalid option $1$help"
   76.98 -+       exit 1 ;;
   76.99 -+
  76.100 -+    *local*)
  76.101 -+       # First pass through any local machine types.
  76.102 -+       echo $1
  76.103 -+       exit 0;;
  76.104 -+
  76.105 -+    * )
  76.106 -+       break ;;
  76.107 -+  esac
  76.108 -+done
  76.109 -+
  76.110 -+case $# in
  76.111 -+ 0) echo "$me: missing argument$help" >&2
  76.112 -+    exit 1;;
  76.113 -+ 1) ;;
  76.114 -+ *) echo "$me: too many arguments$help" >&2
  76.115 -+    exit 1;;
  76.116 - esac
  76.117 - 
  76.118 - # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
  76.119 - # Here we must recognize all the valid KERNEL-OS combinations.
  76.120 - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
  76.121 - case $maybe_os in
  76.122 --  linux-gnu*)
  76.123 -+  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
  76.124 -     os=-$maybe_os
  76.125 -     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
  76.126 -     ;;
  76.127 -@@ -94,20 +144,28 @@
  76.128 - 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
  76.129 - 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
  76.130 - 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
  76.131 --	-apple)
  76.132 -+	-apple | -axis)
  76.133 - 		os=
  76.134 - 		basic_machine=$1
  76.135 - 		;;
  76.136 --	-sim | -cisco | -oki | -wec | -winbond )	# EGCS LOCAL
  76.137 -+	-sim | -cisco | -oki | -wec | -winbond)
  76.138 - 		os=
  76.139 - 		basic_machine=$1
  76.140 - 		;;
  76.141 --	-scout)						# EGCS LOCAL
  76.142 -+	-scout)
  76.143 - 		;;
  76.144 --	-wrs)						# EGCS LOCAL
  76.145 -+	-wrs)
  76.146 - 		os=-vxworks
  76.147 - 		basic_machine=$1
  76.148 - 		;;
  76.149 -+	-chorusos*)
  76.150 -+		os=-chorusos
  76.151 -+		basic_machine=$1
  76.152 -+		;;
  76.153 -+ 	-chorusrdb)
  76.154 -+ 		os=-chorusrdb
  76.155 -+		basic_machine=$1
  76.156 -+ 		;;
  76.157 - 	-hiux*)
  76.158 - 		os=-hiuxwe2
  76.159 - 		;;
  76.160 -@@ -156,49 +214,72 @@
  76.161 - 	-psos*)
  76.162 - 		os=-psos
  76.163 - 		;;
  76.164 -+	-mint | -mint[0-9]*)
  76.165 -+		basic_machine=m68k-atari
  76.166 -+		os=-mint
  76.167 -+		;;
  76.168 - esac
  76.169 - 
  76.170 - # Decode aliases for certain CPU-COMPANY combinations.
  76.171 - case $basic_machine in
  76.172 - 	# Recognize the basic CPU types without company name.
  76.173 - 	# Some are omitted here because they have special meanings below.
  76.174 --	tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
  76.175 --		| arme[lb] | pyramid | mn10200 | mn10300 \
  76.176 --		| tron | a29k | 580 | i960 | h8300 \
  76.177 --		| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
  76.178 --		| alpha | alphaev5 | alphaev56 | alphapca56 | alphaev6 \
  76.179 --		| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
  76.180 --		| 1750a | dsp16xx | pdp11 \
  76.181 --		| mips64 | mipsel | mips64el | mips64orion | mips64orionel \
  76.182 --		| mipstx39 | mipstx39el \
  76.183 --		| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x)
  76.184 --		basic_machine=$basic_machine-unknown
  76.185 --		;;
  76.186 --	m88110 | m680[012346]0 | m683?2 | m68360 | m5200 | z8k | v70 \
  76.187 --	        | h8500 | w65) # EGCS LOCAL
  76.188 --		;;
  76.189 --	thumb)
  76.190 --		basic_machine=$basic_machine-unknown
  76.191 --		;;
  76.192 --	mips64vr4300 | mips64vr4300el) # EGCS LOCAL jsmith/vr4300
  76.193 -+	1750a | 580 \
  76.194 -+	| a29k \
  76.195 -+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
  76.196 -+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
  76.197 -+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
  76.198 -+	| clipper \
  76.199 -+	| d10v | d30v | dlx | dsp16xx \
  76.200 -+	| fr30 | frv \
  76.201 -+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
  76.202 -+	| i370 | i860 | i960 | ia64 \
  76.203 -+	| ip2k \
  76.204 -+	| m32r | m68000 | m68k | m88k | mcore \
  76.205 -+	| mips | mipsbe | mipseb | mipsel | mipsle \
  76.206 -+	| mips16 \
  76.207 -+	| mips64 | mips64el \
  76.208 -+	| mips64vr | mips64vrel \
  76.209 -+	| mips64orion | mips64orionel \
  76.210 -+	| mips64vr4100 | mips64vr4100el \
  76.211 -+	| mips64vr4300 | mips64vr4300el \
  76.212 -+	| mips64vr5000 | mips64vr5000el \
  76.213 -+	| mipsisa32 | mipsisa32el \
  76.214 -+	| mipsisa32r2 | mipsisa32r2el \
  76.215 -+	| mipsisa64 | mipsisa64el \
  76.216 -+	| mipsisa64sb1 | mipsisa64sb1el \
  76.217 -+	| mipsisa64sr71k | mipsisa64sr71kel \
  76.218 -+	| mipstx39 | mipstx39el \
  76.219 -+	| mn10200 | mn10300 \
  76.220 -+	| msp430 \
  76.221 -+	| ns16k | ns32k \
  76.222 -+	| openrisc | or32 \
  76.223 -+	| pdp10 | pdp11 | pj | pjl \
  76.224 -+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
  76.225 -+	| pyramid \
  76.226 -+	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
  76.227 -+	| sh64 | sh64le \
  76.228 -+	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
  76.229 -+	| strongarm \
  76.230 -+	| tahoe | thumb | tic80 | tron \
  76.231 -+	| v850 | v850e \
  76.232 -+	| we32k \
  76.233 -+	| x86 | xscale | xstormy16 | xtensa \
  76.234 -+	| z8k)
  76.235 - 		basic_machine=$basic_machine-unknown
  76.236 - 		;;
  76.237 --	mips64vr4100 | mips64vr4100el) # EGCS LOCAL jsmith/vr4100
  76.238 --		basic_machine=$basic_machine-unknown
  76.239 --		;;
  76.240 --	mips64vr5000 | mips64vr5000el) # EGCS LOCAL ian/vr5000
  76.241 --		basic_machine=$basic_machine-unknown
  76.242 --		;;
  76.243 --	mips16)
  76.244 -+	m6811 | m68hc11 | m6812 | m68hc12)
  76.245 -+		# Motorola 68HC11/12.
  76.246 - 		basic_machine=$basic_machine-unknown
  76.247 -+		os=-none
  76.248 - 		;;
  76.249 --	d10v)
  76.250 --		basic_machine=$basic_machine-unknown
  76.251 -+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
  76.252 - 		;;
  76.253 -+
  76.254 - 	# We use `pc' rather than `unknown'
  76.255 - 	# because (1) that's what they normally are, and
  76.256 - 	# (2) the word "unknown" tends to confuse beginning users.
  76.257 --	i[34567]86)
  76.258 -+	i*86 | x86_64)
  76.259 - 	  basic_machine=$basic_machine-pc
  76.260 - 	  ;;
  76.261 - 	# Object if more than one company name word.
  76.262 -@@ -207,44 +288,62 @@
  76.263 - 		exit 1
  76.264 - 		;;
  76.265 - 	# Recognize the basic CPU types with company name.
  76.266 --	vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
  76.267 --	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
  76.268 --	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
  76.269 --	      | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
  76.270 --	      | xmp-* | ymp-* \
  76.271 --	      | hppa-* | hppa1.0-* | hppa1.1-* \
  76.272 --	      | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
  76.273 --	      | alpha-* | alphaev5-* | alphaev56-* | alphapca56-* \
  76.274 --	      | alphaev6-* | we32k-* | cydra-* | ns16k-* | pn-* | np1-* \
  76.275 --	      | xps100-* | clipper-* | orion-* \
  76.276 --	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
  76.277 --	      | sparc64-* | sparcv9-* | sparc86x-* | mips64-* | mipsel-* \
  76.278 --	      | mips64el-* | mips64orion-* | mips64orionel-*  \
  76.279 --	      | mipstx39-* | mipstx39el-* \
  76.280 --	      | f301-* | arm*-*)
  76.281 --		;;
  76.282 --	m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | h8500-* | d10v-*) # EGCS LOCAL
  76.283 --		;;
  76.284 --	thumb-*) # EGCS LOCAL angela/thumb
  76.285 --		;;
  76.286 --	v850-*) # EGCS LOCAL
  76.287 --	        ;;
  76.288 --	d30v-*) # EGCS LOCAL
  76.289 --	        ;;
  76.290 --	mips64vr4300-* | mips64vr4300el-*) # EGCS LOCAL jsmith/vr4300
  76.291 --		;;
  76.292 --	mips64vr4100-* | mips64vr4100el-*) # EGCS LOCAL jsmith/vr4100
  76.293 --		;;
  76.294 --	mips16-*) # EGCS LOCAL krk/mips16
  76.295 --		;;
  76.296 --	tic30-*) # EGCS LOCAL ian/tic30
  76.297 --		;;
  76.298 --	c30-*) # EGCS LOCAL ian/tic30
  76.299 --		basic_machine=tic30-unknown
  76.300 -+	580-* \
  76.301 -+	| a29k-* \
  76.302 -+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
  76.303 -+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
  76.304 -+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
  76.305 -+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
  76.306 -+	| avr-* \
  76.307 -+	| bs2000-* \
  76.308 -+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
  76.309 -+	| clipper-* | cydra-* \
  76.310 -+	| d10v-* | d30v-* | dlx-* \
  76.311 -+	| elxsi-* \
  76.312 -+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
  76.313 -+	| h8300-* | h8500-* \
  76.314 -+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
  76.315 -+	| i*86-* | i860-* | i960-* | ia64-* \
  76.316 -+	| ip2k-* \
  76.317 -+	| m32r-* \
  76.318 -+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
  76.319 -+	| m88110-* | m88k-* | mcore-* \
  76.320 -+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
  76.321 -+	| mips16-* \
  76.322 -+	| mips64-* | mips64el-* \
  76.323 -+	| mips64vr-* | mips64vrel-* \
  76.324 -+	| mips64orion-* | mips64orionel-* \
  76.325 -+	| mips64vr4100-* | mips64vr4100el-* \
  76.326 -+	| mips64vr4300-* | mips64vr4300el-* \
  76.327 -+	| mips64vr5000-* | mips64vr5000el-* \
  76.328 -+	| mipsisa32-* | mipsisa32el-* \
  76.329 -+	| mipsisa32r2-* | mipsisa32r2el-* \
  76.330 -+	| mipsisa64-* | mipsisa64el-* \
  76.331 -+	| mipsisa64sb1-* | mipsisa64sb1el-* \
  76.332 -+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
  76.333 -+	| mipstx39-* | mipstx39el-* \
  76.334 -+	| msp430-* \
  76.335 -+	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
  76.336 -+	| orion-* \
  76.337 -+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
  76.338 -+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
  76.339 -+	| pyramid-* \
  76.340 -+	| romp-* | rs6000-* \
  76.341 -+	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
  76.342 -+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
  76.343 -+	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
  76.344 -+	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
  76.345 -+	| tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
  76.346 -+	| v850-* | v850e-* | vax-* \
  76.347 -+	| we32k-* \
  76.348 -+	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
  76.349 -+	| xtensa-* \
  76.350 -+	| ymp-* \
  76.351 -+	| z8k-*)
  76.352 - 		;;
  76.353 - 	# Recognize the various machine names and aliases which stand
  76.354 - 	# for a CPU type and a company and sometimes even an OS.
  76.355 --	386bsd)						# EGCS LOCAL
  76.356 -+	386bsd)
  76.357 - 		basic_machine=i386-unknown
  76.358 - 		os=-bsd
  76.359 - 		;;
  76.360 -@@ -254,11 +353,11 @@
  76.361 - 	3b*)
  76.362 - 		basic_machine=we32k-att
  76.363 - 		;;
  76.364 --	a29khif)					# EGCS LOCAL
  76.365 -+	a29khif)
  76.366 - 		basic_machine=a29k-amd
  76.367 - 		os=-udi
  76.368 - 		;;
  76.369 --	adobe68k)					# EGCS LOCAL
  76.370 -+	adobe68k)
  76.371 - 		basic_machine=m68010-adobe
  76.372 - 		os=-scout
  76.373 - 		;;
  76.374 -@@ -277,21 +376,21 @@
  76.375 - 		os=-sysv
  76.376 - 		;;
  76.377 - 	amiga | amiga-*)
  76.378 --		basic_machine=m68k-cbm
  76.379 -+		basic_machine=m68k-unknown
  76.380 - 		;;
  76.381 - 	amigaos | amigados)
  76.382 --		basic_machine=m68k-cbm
  76.383 -+		basic_machine=m68k-unknown
  76.384 - 		os=-amigaos
  76.385 - 		;;
  76.386 - 	amigaunix | amix)
  76.387 --		basic_machine=m68k-cbm
  76.388 -+		basic_machine=m68k-unknown
  76.389 - 		os=-sysv4
  76.390 - 		;;
  76.391 - 	apollo68)
  76.392 - 		basic_machine=m68k-apollo
  76.393 - 		os=-sysv
  76.394 - 		;;
  76.395 --	apollo68bsd)					# EGCS LOCAL
  76.396 -+	apollo68bsd)
  76.397 - 		basic_machine=m68k-apollo
  76.398 - 		os=-bsd
  76.399 - 		;;
  76.400 -@@ -303,6 +402,10 @@
  76.401 - 		basic_machine=ns32k-sequent
  76.402 - 		os=-dynix
  76.403 - 		;;
  76.404 -+	c90)
  76.405 -+		basic_machine=c90-cray
  76.406 -+		os=-unicos
  76.407 -+		;;
  76.408 - 	convex-c1)
  76.409 - 		basic_machine=c1-convex
  76.410 - 		os=-bsd
  76.411 -@@ -323,27 +426,30 @@
  76.412 - 		basic_machine=c38-convex
  76.413 - 		os=-bsd
  76.414 - 		;;
  76.415 --	cray | ymp)
  76.416 --		basic_machine=ymp-cray
  76.417 --		os=-unicos
  76.418 --		;;
  76.419 --	cray2)
  76.420 --		basic_machine=cray2-cray
  76.421 --		os=-unicos
  76.422 --		;;
  76.423 --	[ctj]90-cray)
  76.424 --		basic_machine=c90-cray
  76.425 -+	cray | j90)
  76.426 -+		basic_machine=j90-cray
  76.427 - 		os=-unicos
  76.428 - 		;;
  76.429 - 	crds | unos)
  76.430 - 		basic_machine=m68k-crds
  76.431 - 		;;
  76.432 -+	cris | cris-* | etrax*)
  76.433 -+		basic_machine=cris-axis
  76.434 -+		;;
  76.435 - 	da30 | da30-*)
  76.436 - 		basic_machine=m68k-da30
  76.437 - 		;;
  76.438 - 	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
  76.439 - 		basic_machine=mips-dec
  76.440 - 		;;
  76.441 -+	decsystem10* | dec10*)
  76.442 -+		basic_machine=pdp10-dec
  76.443 -+		os=-tops10
  76.444 -+		;;
  76.445 -+	decsystem20* | dec20*)
  76.446 -+		basic_machine=pdp10-dec
  76.447 -+		os=-tops20
  76.448 -+		;;
  76.449 - 	delta | 3300 | motorola-3300 | motorola-delta \
  76.450 - 	      | 3300-motorola | delta-motorola)
  76.451 - 		basic_machine=m68k-motorola
  76.452 -@@ -371,7 +477,7 @@
  76.453 - 	encore | umax | mmax)
  76.454 - 		basic_machine=ns32k-encore
  76.455 - 		;;
  76.456 --	es1800 | OSE68k | ose68k | ose | OSE)		# EGCS LOCAL
  76.457 -+	es1800 | OSE68k | ose68k | ose | OSE)
  76.458 - 		basic_machine=m68k-ericsson
  76.459 - 		os=-ose
  76.460 - 		;;
  76.461 -@@ -385,6 +491,10 @@
  76.462 - 		basic_machine=tron-gmicro
  76.463 - 		os=-sysv
  76.464 - 		;;
  76.465 -+	go32)
  76.466 -+		basic_machine=i386-pc
  76.467 -+		os=-go32
  76.468 -+		;;
  76.469 - 	h3050r* | hiux*)
  76.470 - 		basic_machine=hppa1.1-hitachi
  76.471 - 		os=-hiuxwe2
  76.472 -@@ -393,11 +503,11 @@
  76.473 - 		basic_machine=h8300-hitachi
  76.474 - 		os=-hms
  76.475 - 		;;
  76.476 --	h8300xray)					# EGCS LOCAL
  76.477 -+	h8300xray)
  76.478 - 		basic_machine=h8300-hitachi
  76.479 - 		os=-xray
  76.480 - 		;;
  76.481 --	h8500hms)					# EGCS LOCAL
  76.482 -+	h8500hms)
  76.483 - 		basic_machine=h8500-hitachi
  76.484 - 		os=-hms
  76.485 - 		;;
  76.486 -@@ -416,22 +526,6 @@
  76.487 - 		basic_machine=m68k-hp
  76.488 - 		os=-hpux
  76.489 - 		;;
  76.490 --        w89k-*)						# EGCS LOCAL
  76.491 --                basic_machine=hppa1.1-winbond
  76.492 --                os=-proelf
  76.493 --                ;;
  76.494 --        op50n-*)					# EGCS LOCAL
  76.495 --                basic_machine=hppa1.1-oki
  76.496 --                os=-proelf
  76.497 --                ;;
  76.498 --        op60c-*)					# EGCS LOCAL
  76.499 --                basic_machine=hppa1.1-oki
  76.500 --                os=-proelf
  76.501 --                ;;
  76.502 --        hppro)						# EGCS LOCAL
  76.503 --                basic_machine=hppa1.1-hp
  76.504 --                os=-proelf
  76.505 --                ;;
  76.506 - 	hp3k9[0-9][0-9] | hp9[0-9][0-9])
  76.507 - 		basic_machine=hppa1.0-hp
  76.508 - 		;;
  76.509 -@@ -441,22 +535,21 @@
  76.510 - 	hp9k3[2-9][0-9])
  76.511 - 		basic_machine=m68k-hp
  76.512 - 		;;
  76.513 --	hp9k6[0-9][0-9] | hp6[0-9][0-9] )
  76.514 -+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
  76.515 - 		basic_machine=hppa1.0-hp
  76.516 - 		;;
  76.517 --	hp9k7[0-79][0-9] | hp7[0-79][0-9] )
  76.518 -+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
  76.519 - 		basic_machine=hppa1.1-hp
  76.520 - 		;;
  76.521 --	hp9k78[0-9] | hp78[0-9] )
  76.522 -+	hp9k78[0-9] | hp78[0-9])
  76.523 - 		# FIXME: really hppa2.0-hp
  76.524 - 		basic_machine=hppa1.1-hp
  76.525 - 		;;
  76.526 --	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | \
  76.527 --	hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893 )
  76.528 -+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
  76.529 - 		# FIXME: really hppa2.0-hp
  76.530 - 		basic_machine=hppa1.1-hp
  76.531 - 		;;
  76.532 --	hp9k8[0-9][13679] | hp8[0-9][13679] )
  76.533 -+	hp9k8[0-9][13679] | hp8[0-9][13679])
  76.534 - 		basic_machine=hppa1.1-hp
  76.535 - 		;;
  76.536 - 	hp9k8[0-9][0-9] | hp8[0-9][0-9])
  76.537 -@@ -465,47 +558,42 @@
  76.538 - 	hppa-next)
  76.539 - 		os=-nextstep3
  76.540 - 		;;
  76.541 --	hppaosf)					# EGCS LOCAL
  76.542 -+	hppaosf)
  76.543 - 		basic_machine=hppa1.1-hp
  76.544 - 		os=-osf
  76.545 - 		;;
  76.546 -+	hppro)
  76.547 -+		basic_machine=hppa1.1-hp
  76.548 -+		os=-proelf
  76.549 -+		;;
  76.550 - 	i370-ibm* | ibm*)
  76.551 - 		basic_machine=i370-ibm
  76.552 --		os=-mvs
  76.553 - 		;;
  76.554 - # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
  76.555 --	i[34567]86v32)
  76.556 -+	i*86v32)
  76.557 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
  76.558 - 		os=-sysv32
  76.559 - 		;;
  76.560 --	i[34567]86v4*)
  76.561 -+	i*86v4*)
  76.562 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
  76.563 - 		os=-sysv4
  76.564 - 		;;
  76.565 --	i[34567]86v)
  76.566 -+	i*86v)
  76.567 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
  76.568 - 		os=-sysv
  76.569 - 		;;
  76.570 --	i[34567]86sol2)
  76.571 -+	i*86sol2)
  76.572 - 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
  76.573 - 		os=-solaris2
  76.574 - 		;;
  76.575 --	i386mach)					# EGCS LOCAL
  76.576 -+	i386mach)
  76.577 - 		basic_machine=i386-mach
  76.578 - 		os=-mach
  76.579 - 		;;
  76.580 --	i386-vsta | vsta)				# EGCS LOCAL
  76.581 -+	i386-vsta | vsta)
  76.582 - 		basic_machine=i386-unknown
  76.583 - 		os=-vsta
  76.584 - 		;;
  76.585 --	i386-go32 | go32)				# EGCS LOCAL
  76.586 --		basic_machine=i386-unknown
  76.587 --		os=-go32
  76.588 --		;;
  76.589 --	i386-mingw32 | mingw32)
  76.590 --		basic_machine=i386-unknown
  76.591 --		os=-mingw32
  76.592 --		;;
  76.593 - 	iris | iris4d)
  76.594 - 		basic_machine=mips-sgi
  76.595 - 		case $os in
  76.596 -@@ -531,16 +619,16 @@
  76.597 - 		basic_machine=ns32k-utek
  76.598 - 		os=-sysv
  76.599 - 		;;
  76.600 -+	mingw32)
  76.601 -+		basic_machine=i386-pc
  76.602 -+		os=-mingw32
  76.603 -+		;;
  76.604 - 	miniframe)
  76.605 - 		basic_machine=m68000-convergent
  76.606 - 		;;
  76.607 --	mipsel*-linux*)
  76.608 --		basic_machine=mipsel-unknown
  76.609 --		os=-linux-gnu
  76.610 --		;;
  76.611 --	mips*-linux*)
  76.612 --		basic_machine=mips-unknown
  76.613 --		os=-linux-gnu
  76.614 -+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
  76.615 -+		basic_machine=m68k-atari
  76.616 -+		os=-mint
  76.617 - 		;;
  76.618 - 	mips3*-*)
  76.619 - 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
  76.620 -@@ -548,24 +636,36 @@
  76.621 - 	mips3*)
  76.622 - 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
  76.623 - 		;;
  76.624 --	monitor)					# EGCS LOCAL
  76.625 -+	mmix*)
  76.626 -+		basic_machine=mmix-knuth
  76.627 -+		os=-mmixware
  76.628 -+		;;
  76.629 -+	monitor)
  76.630 - 		basic_machine=m68k-rom68k
  76.631 - 		os=-coff
  76.632 - 		;;
  76.633 --	msdos)						# EGCS LOCAL
  76.634 --		basic_machine=i386-unknown	
  76.635 -+	morphos)
  76.636 -+		basic_machine=powerpc-unknown
  76.637 -+		os=-morphos
  76.638 -+		;;
  76.639 -+	msdos)
  76.640 -+		basic_machine=i386-pc
  76.641 - 		os=-msdos
  76.642 - 		;;
  76.643 -+	mvs)
  76.644 -+		basic_machine=i370-ibm
  76.645 -+		os=-mvs
  76.646 -+		;;
  76.647 - 	ncr3000)
  76.648 - 		basic_machine=i486-ncr
  76.649 - 		os=-sysv4
  76.650 - 		;;
  76.651 - 	netbsd386)
  76.652 --		basic_machine=i386-unknown		# EGCS LOCAL
  76.653 -+		basic_machine=i386-unknown
  76.654 - 		os=-netbsd
  76.655 - 		;;
  76.656 - 	netwinder)
  76.657 --		basic_machine=armv4l-corel
  76.658 -+		basic_machine=armv4l-rebel
  76.659 - 		os=-linux
  76.660 - 		;;
  76.661 - 	news | news700 | news800 | news900)
  76.662 -@@ -580,7 +680,7 @@
  76.663 - 		basic_machine=mips-sony
  76.664 - 		os=-newsos
  76.665 - 		;;
  76.666 --	necv70)						# EGCS LOCAL
  76.667 -+	necv70)
  76.668 - 		basic_machine=v70-nec
  76.669 - 		os=-sysv
  76.670 - 		;;
  76.671 -@@ -609,18 +709,37 @@
  76.672 - 		basic_machine=i960-intel
  76.673 - 		os=-nindy
  76.674 - 		;;
  76.675 --	mon960)						# EGCS LOCAL
  76.676 -+	mon960)
  76.677 - 		basic_machine=i960-intel
  76.678 - 		os=-mon960
  76.679 - 		;;
  76.680 -+	nonstopux)
  76.681 -+		basic_machine=mips-compaq
  76.682 -+		os=-nonstopux
  76.683 -+		;;
  76.684 - 	np1)
  76.685 - 		basic_machine=np1-gould
  76.686 - 		;;
  76.687 --	OSE68000 | ose68000)				# EGCS LOCAL
  76.688 -+	nv1)
  76.689 -+		basic_machine=nv1-cray
  76.690 -+		os=-unicosmp
  76.691 -+		;;
  76.692 -+	nsr-tandem)
  76.693 -+		basic_machine=nsr-tandem
  76.694 -+		;;
  76.695 -+	op50n-* | op60c-*)
  76.696 -+		basic_machine=hppa1.1-oki
  76.697 -+		os=-proelf
  76.698 -+		;;
  76.699 -+	or32 | or32-*)
  76.700 -+		basic_machine=or32-unknown
  76.701 -+		os=-coff
  76.702 -+		;;
  76.703 -+	OSE68000 | ose68000)
  76.704 - 		basic_machine=m68000-ericsson
  76.705 - 		os=-ose
  76.706 - 		;;
  76.707 --	os68k)						# EGCS LOCAL
  76.708 -+	os68k)
  76.709 - 		basic_machine=m68k-none
  76.710 - 		os=-os68k
  76.711 - 		;;
  76.712 -@@ -638,46 +757,60 @@
  76.713 - 	pbb)
  76.714 - 		basic_machine=m68k-tti
  76.715 - 		;;
  76.716 --        pc532 | pc532-*)
  76.717 -+	pc532 | pc532-*)
  76.718 - 		basic_machine=ns32k-pc532
  76.719 - 		;;
  76.720 --	pentium | p5 | k5 | k6 | nexen)
  76.721 -+	pentium | p5 | k5 | k6 | nexgen | viac3)
  76.722 - 		basic_machine=i586-pc
  76.723 - 		;;
  76.724 --	pentiumpro | p6 | 6x86)
  76.725 -+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
  76.726 - 		basic_machine=i686-pc
  76.727 - 		;;
  76.728 - 	pentiumii | pentium2)
  76.729 --		basic_machine=i786-pc
  76.730 -+		basic_machine=i686-pc
  76.731 - 		;;
  76.732 --	pentium-* | p5-* | k5-* | k6-* | nexen-*)
  76.733 -+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
  76.734 - 		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.735 - 		;;
  76.736 --	pentiumpro-* | p6-* | 6x86-*)
  76.737 -+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
  76.738 - 		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.739 - 		;;
  76.740 - 	pentiumii-* | pentium2-*)
  76.741 --		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.742 -+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.743 - 		;;
  76.744 - 	pn)
  76.745 - 		basic_machine=pn-gould
  76.746 - 		;;
  76.747 --	power)	basic_machine=rs6000-ibm
  76.748 -+	power)	basic_machine=power-ibm
  76.749 - 		;;
  76.750 - 	ppc)	basic_machine=powerpc-unknown
  76.751 --	        ;;
  76.752 -+		;;
  76.753 - 	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.754 - 		;;
  76.755 - 	ppcle | powerpclittle | ppc-le | powerpc-little)
  76.756 - 		basic_machine=powerpcle-unknown
  76.757 --	        ;;
  76.758 -+		;;
  76.759 - 	ppcle-* | powerpclittle-*)
  76.760 - 		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.761 - 		;;
  76.762 -+	ppc64)	basic_machine=powerpc64-unknown
  76.763 -+		;;
  76.764 -+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.765 -+		;;
  76.766 -+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
  76.767 -+		basic_machine=powerpc64le-unknown
  76.768 -+		;;
  76.769 -+	ppc64le-* | powerpc64little-*)
  76.770 -+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
  76.771 -+		;;
  76.772 - 	ps2)
  76.773 - 		basic_machine=i386-ibm
  76.774 - 		;;
  76.775 --	rom68k)						# EGCS LOCAL
  76.776 -+	pw32)
  76.777 -+		basic_machine=i586-unknown
  76.778 -+		os=-pw32
  76.779 -+		;;
  76.780 -+	rom68k)
  76.781 - 		basic_machine=m68k-rom68k
  76.782 - 		os=-coff
  76.783 - 		;;
  76.784 -@@ -687,10 +820,22 @@
  76.785 - 	rtpc | rtpc-*)
  76.786 - 		basic_machine=romp-ibm
  76.787 - 		;;
  76.788 --	sa29200)					# EGCS LOCAL
  76.789 -+	s390 | s390-*)
  76.790 -+		basic_machine=s390-ibm
  76.791 -+		;;
  76.792 -+	s390x | s390x-*)
  76.793 -+		basic_machine=s390x-ibm
  76.794 -+		;;
  76.795 -+	sa29200)
  76.796 - 		basic_machine=a29k-amd
  76.797 - 		os=-udi
  76.798 - 		;;
  76.799 -+	sb1)
  76.800 -+		basic_machine=mipsisa64sb1-unknown
  76.801 -+		;;
  76.802 -+	sb1el)
  76.803 -+		basic_machine=mipsisa64sb1el-unknown
  76.804 -+		;;
  76.805 - 	sequent)
  76.806 - 		basic_machine=i386-sequent
  76.807 - 		;;
  76.808 -@@ -698,7 +843,7 @@
  76.809 - 		basic_machine=sh-hitachi
  76.810 - 		os=-hms
  76.811 - 		;;
  76.812 --	sparclite-wrs)					# EGCS LOCAL
  76.813 -+	sparclite-wrs | simso-wrs)
  76.814 - 		basic_machine=sparclite-wrs
  76.815 - 		os=-vxworks
  76.816 - 		;;
  76.817 -@@ -709,10 +854,10 @@
  76.818 - 	spur)
  76.819 - 		basic_machine=spur-unknown
  76.820 - 		;;
  76.821 --	st2000)						# EGCS LOCAL
  76.822 -+	st2000)
  76.823 - 		basic_machine=m68k-tandem
  76.824 - 		;;
  76.825 --	stratus)					# EGCS LOCAL
  76.826 -+	stratus)
  76.827 - 		basic_machine=i860-stratus
  76.828 - 		os=-sysv4
  76.829 - 		;;
  76.830 -@@ -756,16 +901,40 @@
  76.831 - 	sun386 | sun386i | roadrunner)
  76.832 - 		basic_machine=i386-sun
  76.833 - 		;;
  76.834 -+	sv1)
  76.835 -+		basic_machine=sv1-cray
  76.836 -+		os=-unicos
  76.837 -+		;;
  76.838 - 	symmetry)
  76.839 - 		basic_machine=i386-sequent
  76.840 - 		os=-dynix
  76.841 - 		;;
  76.842 -+	t3e)
  76.843 -+		basic_machine=alphaev5-cray
  76.844 -+		os=-unicos
  76.845 -+		;;
  76.846 -+	t90)
  76.847 -+		basic_machine=t90-cray
  76.848 -+		os=-unicos
  76.849 -+		;;
  76.850 -+        tic4x | c4x*)
  76.851 -+		basic_machine=tic4x-unknown
  76.852 -+		os=-coff
  76.853 -+		;;
  76.854 -+	tic54x | c54x*)
  76.855 -+		basic_machine=tic54x-unknown
  76.856 -+		os=-coff
  76.857 -+		;;
  76.858 - 	tx39)
  76.859 - 		basic_machine=mipstx39-unknown
  76.860 - 		;;
  76.861 - 	tx39el)
  76.862 - 		basic_machine=mipstx39el-unknown
  76.863 - 		;;
  76.864 -+	toad1)
  76.865 -+		basic_machine=pdp10-xkl
  76.866 -+		os=-tops20
  76.867 -+		;;
  76.868 - 	tower | tower-32)
  76.869 - 		basic_machine=m68k-ncr
  76.870 - 		;;
  76.871 -@@ -777,7 +946,7 @@
  76.872 - 		basic_machine=a29k-nyu
  76.873 - 		os=-sym1
  76.874 - 		;;
  76.875 --	v810 | necv810)					# EGCS LOCAL
  76.876 -+	v810 | necv810)
  76.877 - 		basic_machine=v810-nec
  76.878 - 		os=-none
  76.879 - 		;;
  76.880 -@@ -790,8 +959,8 @@
  76.881 - 		os=-vms
  76.882 - 		;;
  76.883 - 	vpp*|vx|vx-*)
  76.884 --               basic_machine=f301-fujitsu
  76.885 --               ;;
  76.886 -+		basic_machine=f301-fujitsu
  76.887 -+		;;
  76.888 - 	vxworks960)
  76.889 - 		basic_machine=i960-wrs
  76.890 - 		os=-vxworks
  76.891 -@@ -804,18 +973,22 @@
  76.892 - 		basic_machine=a29k-wrs
  76.893 - 		os=-vxworks
  76.894 - 		;;
  76.895 --	w65*)						# EGCS LOCAL
  76.896 -- 		basic_machine=w65-wdc
  76.897 -- 		os=-none
  76.898 -+	w65*)
  76.899 -+		basic_machine=w65-wdc
  76.900 -+		os=-none
  76.901 - 		;;
  76.902 --	xmp)
  76.903 --		basic_machine=xmp-cray
  76.904 --		os=-unicos
  76.905 -+	w89k-*)
  76.906 -+		basic_machine=hppa1.1-winbond
  76.907 -+		os=-proelf
  76.908 - 		;;
  76.909 --        xps | xps100)
  76.910 -+	xps | xps100)
  76.911 - 		basic_machine=xps100-honeywell
  76.912 - 		;;
  76.913 --	z8k-*-coff)					# EGCS LOCAL
  76.914 -+	ymp)
  76.915 -+		basic_machine=ymp-cray
  76.916 -+		os=-unicos
  76.917 -+		;;
  76.918 -+	z8k-*-coff)
  76.919 - 		basic_machine=z8k-unknown
  76.920 - 		os=-sim
  76.921 - 		;;
  76.922 -@@ -826,22 +999,15 @@
  76.923 - 
  76.924 - # Here we handle the default manufacturer of certain CPU types.  It is in
  76.925 - # some cases the only manufacturer, in others, it is the most popular.
  76.926 --	w89k)						# EGCS LOCAL
  76.927 -+	w89k)
  76.928 - 		basic_machine=hppa1.1-winbond
  76.929 - 		;;
  76.930 --	op50n)						# EGCS LOCAL
  76.931 -+	op50n)
  76.932 - 		basic_machine=hppa1.1-oki
  76.933 - 		;;
  76.934 --	op60c)						# EGCS LOCAL
  76.935 -+	op60c)
  76.936 - 		basic_machine=hppa1.1-oki
  76.937 - 		;;
  76.938 --	mips)
  76.939 --		if [ x$os = x-linux-gnu ]; then
  76.940 --			basic_machine=mips-unknown
  76.941 --		else
  76.942 --			basic_machine=mips-mips
  76.943 --		fi
  76.944 --		;;
  76.945 - 	romp)
  76.946 - 		basic_machine=romp-ibm
  76.947 - 		;;
  76.948 -@@ -851,16 +1017,26 @@
  76.949 - 	vax)
  76.950 - 		basic_machine=vax-dec
  76.951 - 		;;
  76.952 -+	pdp10)
  76.953 -+		# there are many clones, so DEC is not a safe bet
  76.954 -+		basic_machine=pdp10-unknown
  76.955 -+		;;
  76.956 - 	pdp11)
  76.957 - 		basic_machine=pdp11-dec
  76.958 - 		;;
  76.959 - 	we32k)
  76.960 - 		basic_machine=we32k-att
  76.961 - 		;;
  76.962 --	sparc | sparcv9)
  76.963 -+	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
  76.964 -+		basic_machine=sh-unknown
  76.965 -+		;;
  76.966 -+	sh64)
  76.967 -+		basic_machine=sh64-unknown
  76.968 -+		;;
  76.969 -+	sparc | sparcv9 | sparcv9b)
  76.970 - 		basic_machine=sparc-sun
  76.971 - 		;;
  76.972 --        cydra)
  76.973 -+	cydra)
  76.974 - 		basic_machine=cydra-cydrome
  76.975 - 		;;
  76.976 - 	orion)
  76.977 -@@ -869,16 +1045,15 @@
  76.978 - 	orion105)
  76.979 - 		basic_machine=clipper-highlevel
  76.980 - 		;;
  76.981 --	mac | mpw | mac-mpw)				# EGCS LOCAL
  76.982 -+	mac | mpw | mac-mpw)
  76.983 - 		basic_machine=m68k-apple
  76.984 - 		;;
  76.985 --	pmac | pmac-mpw)				# EGCS LOCAL
  76.986 -+	pmac | pmac-mpw)
  76.987 - 		basic_machine=powerpc-apple
  76.988 - 		;;
  76.989 -- 	c4x*)
  76.990 -- 		basic_machine=c4x-none
  76.991 -- 		os=-coff
  76.992 --  		;;
  76.993 -+	*-unknown)
  76.994 -+		# Make sure to match an already-canonicalized machine name.
  76.995 -+		;;
  76.996 - 	*)
  76.997 - 		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
  76.998 - 		exit 1
  76.999 -@@ -935,20 +1110,38 @@
 76.1000 - 	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 76.1001 - 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 76.1002 - 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 76.1003 -+	      | -chorusos* | -chorusrdb* \
 76.1004 - 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 76.1005 - 	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
 76.1006 --	      | -interix* | -uwin* )
 76.1007 -+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 76.1008 -+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 76.1009 -+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 76.1010 -+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 76.1011 -+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 76.1012 -+	      | -powermax* | -dnix* | -microbsd*)
 76.1013 - 	# Remember, each alternative MUST END IN *, to match a version number.
 76.1014 - 		;;
 76.1015 --	# EGCS LOCAL
 76.1016 -+	-qnx*)
 76.1017 -+		case $basic_machine in
 76.1018 -+		    x86-* | i*86-*)
 76.1019 -+			;;
 76.1020 -+		    *)
 76.1021 -+			os=-nto$os
 76.1022 -+			;;
 76.1023 -+		esac
 76.1024 -+		;;
 76.1025 -+	-nto-qnx*)
 76.1026 -+		;;
 76.1027 -+	-nto*)
 76.1028 -+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 76.1029 -+		;;
 76.1030 - 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
 76.1031 --	      | -windows* | -osx | -abug |  -netware* | -os9* | -beos* \
 76.1032 --	      | -macos* | -mpw* | -magic* | -mon960* | -lnews* )
 76.1033 -+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
 76.1034 -+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 76.1035 - 		;;
 76.1036 - 	-mac*)
 76.1037 - 		os=`echo $os | sed -e 's|mac|macos|'`
 76.1038 - 		;;
 76.1039 --	# END EGCS LOCAL
 76.1040 - 	-linux*)
 76.1041 - 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 76.1042 - 		;;
 76.1043 -@@ -958,6 +1151,12 @@
 76.1044 - 	-sunos6*)
 76.1045 - 		os=`echo $os | sed -e 's|sunos6|solaris3|'`
 76.1046 - 		;;
 76.1047 -+	-opened*)
 76.1048 -+		os=-openedition
 76.1049 -+		;;
 76.1050 -+	-wince*)
 76.1051 -+		os=-wince
 76.1052 -+		;;
 76.1053 - 	-osfrose*)
 76.1054 - 		os=-osfrose
 76.1055 - 		;;
 76.1056 -@@ -973,14 +1172,23 @@
 76.1057 - 	-acis*)
 76.1058 - 		os=-aos
 76.1059 - 		;;
 76.1060 --	-386bsd)					# EGCS LOCAL
 76.1061 -+	-atheos*)
 76.1062 -+		os=-atheos
 76.1063 -+		;;
 76.1064 -+	-386bsd)
 76.1065 - 		os=-bsd
 76.1066 - 		;;
 76.1067 - 	-ctix* | -uts*)
 76.1068 - 		os=-sysv
 76.1069 - 		;;
 76.1070 -+	-nova*)
 76.1071 -+		os=-rtmk-nova
 76.1072 -+		;;
 76.1073 - 	-ns2 )
 76.1074 --	        os=-nextstep2
 76.1075 -+		os=-nextstep2
 76.1076 -+		;;
 76.1077 -+	-nsk*)
 76.1078 -+		os=-nsk
 76.1079 - 		;;
 76.1080 - 	# Preserve the version number of sinix5.
 76.1081 - 	-sinix5.*)
 76.1082 -@@ -1007,15 +1215,21 @@
 76.1083 - 	# This must come after -sysvr4.
 76.1084 - 	-sysv*)
 76.1085 - 		;;
 76.1086 --	-ose*)						# EGCS LOCAL
 76.1087 -+	-ose*)
 76.1088 - 		os=-ose
 76.1089 - 		;;
 76.1090 --	-es1800*)					# EGCS LOCAL
 76.1091 -+	-es1800*)
 76.1092 - 		os=-ose
 76.1093 - 		;;
 76.1094 - 	-xenix)
 76.1095 - 		os=-xenix
 76.1096 - 		;;
 76.1097 -+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
 76.1098 -+		os=-mint
 76.1099 -+		;;
 76.1100 -+	-aros*)
 76.1101 -+		os=-aros
 76.1102 -+		;;
 76.1103 - 	-none)
 76.1104 - 		;;
 76.1105 - 	*)
 76.1106 -@@ -1041,13 +1255,17 @@
 76.1107 - 	*-acorn)
 76.1108 - 		os=-riscix1.2
 76.1109 - 		;;
 76.1110 --	arm*-corel)
 76.1111 -+	arm*-rebel)
 76.1112 - 		os=-linux
 76.1113 - 		;;
 76.1114 - 	arm*-semi)
 76.1115 - 		os=-aout
 76.1116 - 		;;
 76.1117 --        pdp11-*)
 76.1118 -+	# This must come before the *-dec entry.
 76.1119 -+	pdp10-*)
 76.1120 -+		os=-tops20
 76.1121 -+		;;
 76.1122 -+	pdp11-*)
 76.1123 - 		os=-none
 76.1124 - 		;;
 76.1125 - 	*-dec | vax-*)
 76.1126 -@@ -1065,15 +1283,18 @@
 76.1127 - 		# default.
 76.1128 - 		# os=-sunos4
 76.1129 - 		;;
 76.1130 --	m68*-cisco)					# EGCS LOCAL
 76.1131 -+	m68*-cisco)
 76.1132 - 		os=-aout
 76.1133 - 		;;
 76.1134 --	mips*-cisco)					# EGCS LOCAL
 76.1135 -+	mips*-cisco)
 76.1136 - 		os=-elf
 76.1137 - 		;;
 76.1138 --        mips*-*)                                        # EGCS LOCAL
 76.1139 --                os=-elf
 76.1140 --                ;;
 76.1141 -+	mips*-*)
 76.1142 -+		os=-elf
 76.1143 -+		;;
 76.1144 -+	or32-*)
 76.1145 -+		os=-coff
 76.1146 -+		;;
 76.1147 - 	*-tti)	# must be before sparc entry or we get the wrong os.
 76.1148 - 		os=-sysv3
 76.1149 - 		;;
 76.1150 -@@ -1086,13 +1307,13 @@
 76.1151 - 	*-ibm)
 76.1152 - 		os=-aix
 76.1153 - 		;;
 76.1154 --	*-wec)						# EGCS LOCAL
 76.1155 -+	*-wec)
 76.1156 - 		os=-proelf
 76.1157 - 		;;
 76.1158 --	*-winbond)					# EGCS LOCAL
 76.1159 -+	*-winbond)
 76.1160 - 		os=-proelf
 76.1161 - 		;;
 76.1162 --	*-oki)						# EGCS LOCAL
 76.1163 -+	*-oki)
 76.1164 - 		os=-proelf
 76.1165 - 		;;
 76.1166 - 	*-hp)
 76.1167 -@@ -1137,36 +1358,39 @@
 76.1168 - 	*-next)
 76.1169 - 		os=-nextstep3
 76.1170 - 		;;
 76.1171 --        *-gould)
 76.1172 -+	*-gould)
 76.1173 - 		os=-sysv
 76.1174 - 		;;
 76.1175 --        *-highlevel)
 76.1176 -+	*-highlevel)
 76.1177 - 		os=-bsd
 76.1178 - 		;;
 76.1179 - 	*-encore)
 76.1180 - 		os=-bsd
 76.1181 - 		;;
 76.1182 --        *-sgi)
 76.1183 -+	*-sgi)
 76.1184 - 		os=-irix
 76.1185 - 		;;
 76.1186 --        *-siemens)
 76.1187 -+	*-siemens)
 76.1188 - 		os=-sysv4
 76.1189 - 		;;
 76.1190 - 	*-masscomp)
 76.1191 - 		os=-rtu
 76.1192 - 		;;
 76.1193 --	f301-fujitsu)
 76.1194 -+	f30[01]-fujitsu | f700-fujitsu)
 76.1195 - 		os=-uxpv
 76.1196 - 		;;
 76.1197 --	*-rom68k)					# EGCS LOCAL
 76.1198 -+	*-rom68k)
 76.1199 - 		os=-coff
 76.1200 - 		;;
 76.1201 --	*-*bug)						# EGCS LOCAL
 76.1202 -+	*-*bug)
 76.1203 - 		os=-coff
 76.1204 - 		;;
 76.1205 --	*-apple)					# EGCS LOCAL
 76.1206 -+	*-apple)
 76.1207 - 		os=-macos
 76.1208 - 		;;
 76.1209 -+	*-atari*)
 76.1210 -+		os=-mint
 76.1211 -+		;;
 76.1212 - 	*)
 76.1213 - 		os=-none
 76.1214 - 		;;
 76.1215 -@@ -1212,27 +1436,41 @@
 76.1216 - 			-genix*)
 76.1217 - 				vendor=ns
 76.1218 - 				;;
 76.1219 --			-mvs*)
 76.1220 -+			-mvs* | -opened*)
 76.1221 - 				vendor=ibm
 76.1222 - 				;;
 76.1223 - 			-ptx*)
 76.1224 - 				vendor=sequent
 76.1225 - 				;;
 76.1226 --			-vxsim* | -vxworks*)
 76.1227 -+			-vxsim* | -vxworks* | -windiss*)
 76.1228 - 				vendor=wrs
 76.1229 - 				;;
 76.1230 - 			-aux*)
 76.1231 - 				vendor=apple
 76.1232 - 				;;
 76.1233 --			-hms*)				# EGCS LOCAL
 76.1234 -+			-hms*)
 76.1235 - 				vendor=hitachi
 76.1236 - 				;;
 76.1237 --			-mpw* | -macos*)		# EGCS LOCAL
 76.1238 -+			-mpw* | -macos*)
 76.1239 - 				vendor=apple
 76.1240 - 				;;
 76.1241 -+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
 76.1242 -+				vendor=atari
 76.1243 -+				;;
 76.1244 -+			-vos*)
 76.1245 -+				vendor=stratus
 76.1246 -+				;;
 76.1247 - 		esac
 76.1248 - 		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
 76.1249 - 		;;
 76.1250 - esac
 76.1251 - 
 76.1252 - echo $basic_machine$os
 76.1253 -+exit 0
 76.1254 -+
 76.1255 -+# Local variables:
 76.1256 -+# eval: (add-hook 'write-file-hooks 'time-stamp)
 76.1257 -+# time-stamp-start: "timestamp='"
 76.1258 -+# time-stamp-format: "%:y-%02m-%02d"
 76.1259 -+# time-stamp-end: "'"
 76.1260 -+# End:
    77.1 --- a/patches/gcc/2.95.3/140-deque-leak-fix.patch	Wed Oct 28 12:03:38 2009 +0100
    77.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    77.3 @@ -1,31 +0,0 @@
    77.4 -[See also http://gcc.gnu.org/ml/libstdc++/2001-11/msg00133.html ]
    77.5 -
    77.6 -Date: Fri, 16 Nov 2001 16:06:22 -0500
    77.7 -From: Phil Edwards <pedwards at disaster dot jaj dot com>
    77.8 -To: gcc-patches at gcc dot gnu dot org
    77.9 -Subject: [libstdc++ trunk & 3.0]  Fix deque memory leak
   77.10 -Message-ID: <20011116160622.A23094@disaster.jaj.com>
   77.11 -
   77.12 -
   77.13 -As discussed on the libstdc++ mailing list.  Tested on i686/linux.
   77.14 -
   77.15 -
   77.16 -
   77.17 -2001-11-16  Paolo Carlini  <pcarlini@unitus.it>
   77.18 -
   77.19 -	* include/bits/stl_deque.h (deque::erase()):  Fix memory leak.
   77.20 -
   77.21 -
   77.22 -[rediffed against 2.95.3 -- dank]
   77.23 -
   77.24 ---- gcc-2.95.3/libstdc++/stl/stl_deque.h.old	2001-01-01 09:48:22.000000000 -0800
   77.25 -+++ gcc-2.95.3/libstdc++/stl/stl_deque.h	2006-02-18 15:24:17.000000000 -0800
   77.26 -@@ -1052,7 +1052,7 @@
   77.27 -       copy_backward(_M_start, __first, __last);
   77.28 -       iterator __new_start = _M_start + __n;
   77.29 -       destroy(_M_start, __new_start);
   77.30 --      _M_destroy_nodes(__new_start._M_node, _M_start._M_node);
   77.31 -+      _M_destroy_nodes(_M_start._M_node, __new_start._M_node);  /* fixed per http://gcc.gnu.org/ml/libstdc++/2001-11/msg00139.html */
   77.32 -       _M_start = __new_start;
   77.33 -     }
   77.34 -     else {
    78.1 --- a/patches/gcc/2.95.3/150-cygwin-020611.patch	Wed Oct 28 12:03:38 2009 +0100
    78.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    78.3 @@ -1,33 +0,0 @@
    78.4 -[ Building gcc-2.95.3 on cygwin yields a compiler that sticks a .exe
    78.5 -  on the end of every executable, even if they're linux executable.
    78.6 -  This is highly annoying, and causes glibc build failures that look like this:
    78.7 -    mv: `.../bin/makedb.new' and `.../bin/makedb' are the same file
    78.8 -    make[2]: *** [.../bin/makedb] Error 1
    78.9 -    make[2]: Leaving directory `.../gcc-2.95.3-glibc-2.1.3/glibc-2.1.3/db2'
   78.10 -
   78.11 -  The mainline solves this with http://gcc.gnu.org/ml/gcc-cvs/2001-04/msg00440.html,
   78.12 -  but that doesn't apply cleanly to gcc-2.95.3.
   78.13 -
   78.14 -  So, I'm using
   78.15 -  http://www.uclinux.org/pub/uClinux/uclinux-elf-tools/tools-20030314/gcc-2.95.3-cygwin-020611.patch
   78.16 -  This is the only patch in crosstool that *isn't* suitable for the mainline.
   78.17 -  I can live with this patch simply because crosstool does not build
   78.18 -  compilers that target cygwin or VAX/VMS. 
   78.19 -  If that ever changes, I might need to try applying the real patch.
   78.20 -]
   78.21 -
   78.22 -
   78.23 -
   78.24 -#
   78.25 -# This patch can be found at http://www.uclinux.org/pub/uClinux/m68k-elf-tools/
   78.26 -#
   78.27 ---- gcc-2.95.3/gcc/config/i386/xm-cygwin.h	1999-04-22 16:40:56.000000000 +0200
   78.28 -+++ gcc-2.95.3-cygwin/gcc/config/i386/xm-cygwin.h	2002-06-11 08:23:18.000000000 +0200
   78.29 -@@ -19,7 +19,6 @@
   78.30 - the Free Software Foundation, 59 Temple Place - Suite 330,
   78.31 - Boston, MA 02111-1307, USA. */
   78.32 - 
   78.33 --#define EXECUTABLE_SUFFIX ".exe"
   78.34 - #define NO_SYS_SIGLIST 1
   78.35 - 
   78.36 - /* We support both "/" and "\" since everybody tests both but we
    79.1 --- a/patches/gcc/2.95.3/160-trap-posix.patch	Wed Oct 28 12:03:38 2009 +0100
    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-2.95.3-orig/configure gcc-2.95.3/configure
   79.28 ---- gcc-2.95.3-orig/configure	1999-04-02 16:17:40.000000000 +0200
   79.29 -+++ gcc-2.95.3/configure	2005-04-20 18:25:45.030488235 +0200
   79.30 -@@ -687,7 +687,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 -f Makefile* ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
   79.37 - 	# Execute the final clean-up actions
   79.38 - 	${config_shell} skip-this-dir
   79.39 -@@ -1599,7 +1599,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 -f ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
   79.43 --trap 0
   79.44 -+trap '' 0
   79.45 - 
   79.46 - exit 0
   79.47 - 
    80.1 --- a/patches/gcc/2.95.3/170-pr3106.patch	Wed Oct 28 12:03:38 2009 +0100
    80.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    80.3 @@ -1,28 +0,0 @@
    80.4 -See http://gcc.gnu.org/PR3106
    80.5 -Backported from gcc-3.0.x
    80.6 -
    80.7 -Fixes error
    80.8 -  .../binutils-2.11.2/libiberty/strerror.c:468: error: conflicting types for `sys_nerr'
    80.9 -  /usr/include/stdio.h:258: error: previous declaration of `sys_nerr'
   80.10 -  make[1]: *** [strerror.o] Error 1
   80.11 -  make: *** [all-libiberty] Error 2
   80.12 -on Mac OS X.
   80.13 -
   80.14 ---- gcc-2.95.3/libiberty/strerror.c.old	2004-03-24 16:23:19.000000000 -0800
   80.15 -+++ gcc-2.95.3/libiberty/strerror.c	2004-03-24 16:23:48.000000000 -0800
   80.16 -@@ -13,6 +13,7 @@
   80.17 -    incompatible with our later declaration, perhaps by using const
   80.18 -    attributes.  So we hide the declaration in errno.h (if any) using a
   80.19 -    macro. */
   80.20 -+#define sys_nerr sys_nerr__
   80.21 - #define sys_errlist sys_errlist__
   80.22 - #endif
   80.23 - 
   80.24 -@@ -20,6 +21,7 @@
   80.25 - #include <errno.h>
   80.26 - 
   80.27 - #ifdef HAVE_SYS_ERRLIST
   80.28 -+#undef sys_nerr
   80.29 - #undef sys_errlist
   80.30 - #endif
   80.31 - 
    81.1 --- a/patches/gcc/2.95.3/180-threads_snafu.patch	Wed Oct 28 12:03:38 2009 +0100
    81.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    81.3 @@ -1,28 +0,0 @@
    81.4 -This fixes the error
    81.5 -
    81.6 -In file included from gthr-default.h:1,
    81.7 -                 from /build/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/gcc-2.95.3/gcc/gthr.h:98,
    81.8 -                 from /build/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/gcc-2.95.3/gcc/libgcc2.c:3034:
    81.9 -/build/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/gcc-2.95.3/gcc/gthr-posix.h:37: pthread.h: No such file or directory
   81.10 -make[3]: *** [libgcc2.a] Error 1
   81.11 -make[3]: Leaving directory `/build/arm-unknown-linux-gnu/gcc-2.95.3-glibc-2.2.2/build-gcc-core/gcc'
   81.12 -
   81.13 -in what I think is a nicer way than the patch used by the arm team,
   81.14 -i.e. "perl -pi -e 's/^(TARGET_LIBGCC2_CFLAGS.*)/$1 -Dinhibit_libc -D__gthr_posix_h/' gcc/config/arm/t-linux"
   81.15 -which seems a bit of a kludge.
   81.16 -
   81.17 ---- gcc-2.95.3/gcc/configure.old	Fri Mar 16 06:13:48 2001
   81.18 -+++ gcc-2.95.3/gcc/configure	Sun Jun  8 13:02:20 2003
   81.19 -@@ -853,9 +853,9 @@
   81.20 - # Check whether --enable-threads or --disable-threads was given.
   81.21 - if test "${enable_threads+set}" = set; then
   81.22 -   enableval="$enable_threads"
   81.23 --  if test x$enable_threads = xno; then
   81.24 --	enable_threads=''
   81.25 --fi
   81.26 -+  #if test x$enable_threads = xno; then
   81.27 -+	#enable_threads=''
   81.28 -+  #fi
   81.29 - else
   81.30 -   enable_threads=''
   81.31 - fi
    82.1 --- a/patches/gcc/3.2.3/100-config.sub.patch	Wed Oct 28 12:03:38 2009 +0100
    82.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    82.3 @@ -1,72 +0,0 @@
    82.4 -When configuring a s390->s390 or cris->cris crosscompiler
    82.5 -(ok, I haven't hit this yet, but one of these days I'll get me an account
    82.6 -on an s390, and then I'll need this patch :-), you'll get the
    82.7 -following error:
    82.8 -
    82.9 -+ /build/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/gcc-3.3/configure
   82.10 ---target=s390-unknown-linux-gnu --host=s390-host_unknown-linux-gnu
   82.11 ---prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2
   82.12 ---enable-languages=c
   82.13 ---with-local-prefix=/result/s390-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/s390-
   82.14 -unknown-linux-gnu --enable-threads=no --without-headers --with-newlib
   82.15 ---disable-shared
   82.16 -...
   82.17 -*** --with-headers is only supported when cross compiling
   82.18 -
   82.19 -This error pops up only when you're using Daniel Jacobowitz's technique
   82.20 -of slightly changing the target and host tuples to make them different
   82.21 -enough to force gcc's build system to not try to pull in system libraries
   82.22 -or headers.  This technique is needed e.g. to build an x86 -> x86
   82.23 -cross-compiler.
   82.24 -(The LFS developers ran into the same bug that prompted me to use
   82.25 -this technique; they point people who run into it to
   82.26 -http://linuxfromscratch.org/~greg/pure_lfs.txt, which is a different
   82.27 -way of avoiding this problem.  I think the tuple tweak is the way to go, though.)
   82.28 -
   82.29 -config-patches@gnu.org rejected this patch, on the grounds that there
   82.30 -is only one vendor of each of those two architectures, so the 
   82.31 -canonicalization is by definition correct.  When I pointed out the
   82.32 -difficulty this causes for people building s390 -> s390 or
   82.33 -cris -> cris compilers that are incompatible with the system
   82.34 -libraries and thus must be built like cross-compilers, he grumped and said 
   82.35 -"autoconf should let you specify a cross-compiler in some other way than
   82.36 -comparing tuple strings".
   82.37 -
   82.38 -
   82.39 -
   82.40 ---- gcc-3.3/config.sub.old	Sun Jun  8 20:38:47 2003
   82.41 -+++ gcc-3.3/config.sub	Sun Jun  8 20:40:34 2003
   82.42 -@@ -433,9 +433,12 @@
   82.43 - 	crds | unos)
   82.44 - 		basic_machine=m68k-crds
   82.45 - 		;;
   82.46 --	cris | cris-* | etrax*)
   82.47 -+	cris | etrax*)
   82.48 - 		basic_machine=cris-axis
   82.49 - 		;;
   82.50 -+	cris-*)
   82.51 -+		basic_machine=cris-`echo $basic_machine | sed 's/^[^-]*-//'`
   82.52 -+		;;
   82.53 - 	da30 | da30-*)
   82.54 - 		basic_machine=m68k-da30
   82.55 - 		;;
   82.56 -@@ -820,11 +823,17 @@
   82.57 - 	rtpc | rtpc-*)
   82.58 - 		basic_machine=romp-ibm
   82.59 - 		;;
   82.60 --	s390 | s390-*)
   82.61 -+	s390)
   82.62 - 		basic_machine=s390-ibm
   82.63 - 		;;
   82.64 --	s390x | s390x-*)
   82.65 -+	s390-*)
   82.66 -+		basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'`
   82.67 -+		;;
   82.68 -+	s390x)
   82.69 - 		basic_machine=s390x-ibm
   82.70 -+		;;
   82.71 -+	s390x-*)
   82.72 -+		basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'`
   82.73 - 		;;
   82.74 - 	sa29200)
   82.75 - 		basic_machine=a29k-amd
    83.1 --- a/patches/gcc/3.2.3/110-ppc405erratum77.patch	Wed Oct 28 12:03:38 2009 +0100
    83.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    83.3 @@ -1,105 +0,0 @@
    83.4 -# See http://gcc.gnu.org/PR7383, http://www.kegel.com/xgcc3/ppc405erratum77.html
    83.5 -# Fixed in gcc-3.3
    83.6 -
    83.7 -diff -aur gcc-20020722.orig/gcc/config/rs6000/rs6000.h gcc-20020722/gcc/config/rs6000/rs6000.h
    83.8 ---- gcc-20020722.orig/gcc/config/rs6000/rs6000.h	Thu Jul 25 09:32:21 2002
    83.9 -+++ gcc-20020722/gcc/config/rs6000/rs6000.h	Thu Jul 25 09:34:45 2002
   83.10 -@@ -66,7 +66,7 @@
   83.11 - %{mcpu=rsc1: -D_ARCH_PWR} \
   83.12 - %{mcpu=401: -D_ARCH_PPC} \
   83.13 - %{mcpu=403: -D_ARCH_PPC} \
   83.14 --%{mcpu=405: -D_ARCH_PPC} \
   83.15 -+%{mcpu=405: -D_ARCH_PPC -D__PPC405__} \
   83.16 - %{mcpu=505: -D_ARCH_PPC} \
   83.17 - %{mcpu=601: -D_ARCH_PPC -D_ARCH_PWR} \
   83.18 - %{mcpu=602: -D_ARCH_PPC} \
   83.19 -diff -aur gcc-20020722.orig/libjava/sysdep/powerpc/locks.h gcc-20020722/libjava/sysdep/powerpc/locks.h
   83.20 ---- gcc-20020722.orig/libjava/sysdep/powerpc/locks.h	Thu Jul 25 09:32:30 2002
   83.21 -+++ gcc-20020722/libjava/sysdep/powerpc/locks.h	Thu Jul 25 11:39:13 2002
   83.22 -@@ -11,6 +11,17 @@
   83.23 - #ifndef __SYSDEP_LOCKS_H__
   83.24 - #define __SYSDEP_LOCKS_H__
   83.25 - 
   83.26 -+#ifdef __PPC405__
   83.27 -+// workaround for PPC405 erratum #77 - 07/18/02 JRO, dank, NN.  References:
   83.28 -+// http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
   83.29 -+// http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489
   83.30 -+// http://www.kegel.com/xgcc3/ppc405erratum77.html
   83.31 -+// FIXME: using dbct instead of sync would be faster
   83.32 -+#define __LIBGCJ_PPC405_ERR77_SYNC   "sync \n\t"
   83.33 -+#else
   83.34 -+#define __LIBGCJ_PPC405_ERR77_SYNC
   83.35 -+#endif
   83.36 -+
   83.37 - typedef size_t obj_addr_t;	/* Integer type big enough for object	*/
   83.38 - 				/* address.				*/
   83.39 - 
   83.40 -@@ -25,6 +36,7 @@
   83.41 - 	   "0:    lwarx %0,0,%1 ;"
   83.42 - 	   "      xor. %0,%3,%0;"
   83.43 - 	   "      bne 1f;"
   83.44 -+  	  __LIBGCJ_PPC405_ERR77_SYNC
   83.45 - 	   "      stwcx. %2,0,%1;"
   83.46 - 	   "      bne- 0b;"
   83.47 - 	   "1:    "
   83.48 -@@ -58,6 +70,7 @@
   83.49 - 	   "0:    lwarx %0,0,%1 ;"
   83.50 - 	   "      xor. %0,%3,%0;"
   83.51 - 	   "      bne 1f;"
   83.52 -+	   __LIBGCJ_PPC405_ERR77_SYNC	 
   83.53 - 	   "      stwcx. %2,0,%1;"
   83.54 - 	   "      bne- 0b;"
   83.55 - 	   "1:    "
   83.56 -diff -aur gcc-20020722.orig/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h gcc-20020722/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h
   83.57 ---- gcc-20020722.orig/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h	Thu Jul 25 09:32:31 2002
   83.58 -+++ gcc-20020722/libstdc++-v3/config/cpu/powerpc/bits/atomicity.h	Thu Jul 25 09:34:45 2002
   83.59 -@@ -32,6 +32,17 @@
   83.60 - 
   83.61 - typedef int _Atomic_word;
   83.62 - 
   83.63 -+#ifdef __PPC405__
   83.64 -+// workaround for PPC405 erratum #77 - 07/18/02 JRO & dank.  References:
   83.65 -+// http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/89DED00DEBFF54BF87256A8000491BA2/$file/405CR_C_errata_1_2.pdf
   83.66 -+// http://ppc.bkbits.net:8080/linuxppc_2_4_devel/cset@1.489
   83.67 -+// http://www.kegel.com/xgcc3/ppc405erratum77.html
   83.68 -+// FIXME: using dbct instead of sync would be faster
   83.69 -+#define	__LIBSTDCPP_PPC405_ERR77_SYNC	"sync \n\t"
   83.70 -+#else
   83.71 -+#define __LIBSTDCPP_PPC405_ERR77_SYNC
   83.72 -+#endif
   83.73 -+
   83.74 - static inline _Atomic_word
   83.75 - __attribute__ ((__unused__))
   83.76 - __exchange_and_add (volatile _Atomic_word* __mem, int __val)
   83.77 -@@ -42,6 +53,7 @@
   83.78 - 	"0:\t"
   83.79 - 	"lwarx    %0,0,%2 \n\t"
   83.80 - 	"add%I3   %1,%0,%3 \n\t"
   83.81 -+	__LIBSTDCPP_PPC405_ERR77_SYNC
   83.82 - 	"stwcx.   %1,0,%2 \n\t"
   83.83 - 	"bne-     0b \n\t"
   83.84 - 	"/* End exchange & add */"
   83.85 -@@ -61,6 +73,7 @@
   83.86 - 	"0:\t"
   83.87 - 	"lwarx    %0,0,%1 \n\t"
   83.88 - 	"add%I2   %0,%0,%2 \n\t"
   83.89 -+	__LIBSTDCPP_PPC405_ERR77_SYNC
   83.90 - 	"stwcx.   %0,0,%1 \n\t"
   83.91 - 	"bne-     0b \n\t"
   83.92 - 	"/* End atomic add */"
   83.93 -@@ -78,6 +91,7 @@
   83.94 - 	"/* Inline always swap */\n"
   83.95 - 	"0:\t"
   83.96 - 	"lwarx    %0,0,%1 \n\t"
   83.97 -+	__LIBSTDCPP_PPC405_ERR77_SYNC
   83.98 - 	"stwcx.   %2,0,%1 \n\t"
   83.99 - 	"bne-     0b \n\t"
  83.100 - 	"/* End always swap */"
  83.101 -@@ -98,6 +112,7 @@
  83.102 - 	"lwarx    %0,0,%1 \n\t"
  83.103 - 	"cmpwi    %0,0 \n\t"
  83.104 - 	"bne-     1f \n\t"
  83.105 -+	__LIBSTDCPP_PPC405_ERR77_SYNC
  83.106 - 	"stwcx.   %2,0,%1 \n\t"
  83.107 - 	"bne-     0b \n"
  83.108 - 	"1:\n\t"
    84.1 --- a/patches/gcc/3.2.3/120-sh-linux-1.patch	Wed Oct 28 12:03:38 2009 +0100
    84.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    84.3 @@ -1,1761 +0,0 @@
    84.4 -diff -ruN gcc-20030210.orig/boehm-gc/configure gcc-20030210/boehm-gc/configure
    84.5 ---- gcc-20030210.orig/boehm-gc/configure	Fri Jan 31 19:17:00 2003
    84.6 -+++ gcc-20030210/boehm-gc/configure	Sat Feb 22 01:40:14 2003
    84.7 -@@ -1922,7 +1922,7 @@
    84.8 - # This must be Linux ELF.
    84.9 - linux-gnu*)
   84.10 -   case $host_cpu in
   84.11 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
   84.12 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
   84.13 -     lt_cv_deplibs_check_method=pass_all ;;
   84.14 -   *)
   84.15 -     # glibc up to 2.1.1 does not perform some relocations on ARM
   84.16 -diff -ruN gcc-20030210.orig/config-ml.in gcc-20030210/config-ml.in
   84.17 ---- gcc-20030210.orig/config-ml.in	Fri Jan 31 19:16:59 2003
   84.18 -+++ gcc-20030210/config-ml.in	Sat Feb 22 01:40:14 2003
   84.19 -@@ -545,6 +545,7 @@
   84.20 - 	      if [ -d ../$${dir}/$${lib} ]; then \
   84.21 - 		flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
   84.22 - 		if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
   84.23 -+				DESTDIR="$(DESTDIR)" \
   84.24 - 				CFLAGS="$(CFLAGS) $${flags}" \
   84.25 - 				prefix="$(prefix)" \
   84.26 - 				exec_prefix="$(exec_prefix)" \
   84.27 -diff -ruN gcc-20030210.orig/debian/edit-specs.in gcc-20030210/debian/edit-specs.in
   84.28 ---- gcc-20030210.orig/debian/edit-specs.in	Thu Jan  1 09:00:00 1970
   84.29 -+++ gcc-20030210/debian/edit-specs.in	Sat Feb 22 01:40:14 2003
   84.30 -@@ -0,0 +1,45 @@
   84.31 -+/^*asm:$/ {
   84.32 -+n
   84.33 -+c\
   84.34 -+@AS_ENDIAN_FLAG@ %{mrelax:-relax}
   84.35 -+}
   84.36 -+/^*cpp:$/ {
   84.37 -+n
   84.38 -+c\
   84.39 -+%(cpp_default_cpu_spec)    %(subtarget_cpp_spec)    %(subtarget_cpp_ptr_spec)    %(subtarget_cpp_endian_spec)
   84.40 -+}
   84.41 -+/^*cc1:$/ {
   84.42 -+n
   84.43 -+c\
   84.44 -+-musermode @CC1_CPU_ENDIAN_FLAGS@  %{profile:-p}
   84.45 -+}
   84.46 -+/^*link:$/ {
   84.47 -+n
   84.48 -+c\
   84.49 -+%{!static:--eh-frame-hdr} @LINKER_CPU_ENDIAN_FLAGS@  @LINKER_RPATH_LINK_FLAG@ %{mrelax:-relax}  %{shared:-shared}  %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} %{static:-static}
   84.50 -+}
   84.51 -+/^*multilib:$/ {
   84.52 -+n
   84.53 -+c\
   84.54 -+. ;
   84.55 -+}
   84.56 -+/^*multilib_matches:$/ {
   84.57 -+n
   84.58 -+c\
   84.59 -+
   84.60 -+}
   84.61 -+/^*multilib_options:$/ {
   84.62 -+n
   84.63 -+c\
   84.64 -+
   84.65 -+}
   84.66 -+/^*subtarget_cpp_endian_spec:$/ {
   84.67 -+n
   84.68 -+c\
   84.69 -+@CPP_ENDIAN_DEF@
   84.70 -+}
   84.71 -+/^*cpp_default_cpu_spec:$/ {
   84.72 -+n
   84.73 -+c\
   84.74 -+@CPP_CPU_DEFS@
   84.75 -+}
   84.76 -diff -ruN gcc-20030210.orig/debian/install-CPU-linux gcc-20030210/debian/install-CPU-linux
   84.77 ---- gcc-20030210.orig/debian/install-CPU-linux	Thu Jan  1 09:00:00 1970
   84.78 -+++ gcc-20030210/debian/install-CPU-linux	Sat Feb 22 01:40:14 2003
   84.79 -@@ -0,0 +1,111 @@
   84.80 -+#! /bin/sh
   84.81 -+
   84.82 -+VERSION=$1; shift
   84.83 -+CPU=$1
   84.84 -+
   84.85 -+# literally (binary-ly) same
   84.86 -+PROGS_C="cpp gcc"
   84.87 -+PROGS_ADDITIONAL="c++ g++ g77 gcj"
   84.88 -+
   84.89 -+DRIVERS_C="cc1 cpp0 tradcpp0"
   84.90 -+DRIVERS_ADDITIONAL="cc1obj cc1plus collect2 f771 jc1 jvgenmain"
   84.91 -+if [ -z "$STEP1_COMPILER_BUILD" ]; then
   84.92 -+  PROGS="$PROGS_C $PROGS_ADDITIONAL"
   84.93 -+  DRIVERS="$DRIVERS_C $DRIVERSADDITIONAL"
   84.94 -+  INITIAL=""
   84.95 -+else
   84.96 -+  PROGS=$PROGS_C
   84.97 -+  DRIVERS=$DRIVERS_C
   84.98 -+  INITIAL="-initial"
   84.99 -+fi
  84.100 -+
  84.101 -+OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  84.102 -+LIBS_C="libgcc.a"
  84.103 -+LIBS_1="libgcc_s.so libgcc_s.so.1 libstdc++.so libstdc++.so.3 libstdc++.so.3.0.2"
  84.104 -+LIBS_2="libobjc.a libstdc++.a libsupc++.a"
  84.105 -+INCLUDE="include"
  84.106 -+
  84.107 -+cd debian/gcc-sh-linux-others${INITIAL} || exit 1
  84.108 -+
  84.109 -+# Make directories.
  84.110 -+mkdir -p usr/bin usr/share usr/share/man usr/share/man/man1 usr/lib \
  84.111 -+	 usr/lib/gcc-lib usr/lib/gcc-lib/${CPU}-linux \
  84.112 -+	 usr/lib/gcc-lib/${CPU}-linux/${VERSION} \
  84.113 -+	 usr/${CPU}-linux usr/${CPU}-linux/lib
  84.114 -+
  84.115 -+# Make symbolic links for include dir.
  84.116 -+(cd usr/${CPU}-linux; ln -s ../sh-linux/include .)
  84.117 -+
  84.118 -+# Make symbolic links for executables.
  84.119 -+(cd usr/bin;
  84.120 -+  for p in ${PROGS}; do
  84.121 -+    ln -s shCPU-linux-GCC ${CPU}-linux-$p
  84.122 -+  done)
  84.123 -+
  84.124 -+case "${CPU}" in
  84.125 -+    sh3)
  84.126 -+	MULTILIBDIR=
  84.127 -+	AS_ENDIAN_FLAG="-little"
  84.128 -+	CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
  84.129 -+	CPP_CPU_DEFS="-D__SH3__ -D__sh3__"
  84.130 -+	CC1_CPU_ENDIAN_FLAGS="-ml -m3"
  84.131 -+	LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"
  84.132 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh3-linux/lib"
  84.133 -+    ;;
  84.134 -+    sh3eb)
  84.135 -+	MULTILIBDIR=/mb
  84.136 -+	AS_ENDIAN_FLAG="-big"
  84.137 -+	CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
  84.138 -+	CPP_CPU_DEFS="-D__SH3__ -D__sh3__"
  84.139 -+	CC1_CPU_ENDIAN_FLAGS="-mb -m3"
  84.140 -+	LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"
  84.141 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh3eb-linux/lib"
  84.142 -+    ;;
  84.143 -+    sh4)
  84.144 -+	MULTILIBDIR=/m4
  84.145 -+	AS_ENDIAN_FLAG="-little"
  84.146 -+	CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
  84.147 -+	CPP_CPU_DEFS="-D__SH4__"
  84.148 -+	CC1_CPU_ENDIAN_FLAGS="-ml -m4"
  84.149 -+	LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh4"
  84.150 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh4-linux/lib"
  84.151 -+    ;;
  84.152 -+    sh4eb)
  84.153 -+	MULTILIBDIR=/mb/m4
  84.154 -+	AS_ENDIAN_FLAG="-big"
  84.155 -+	CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
  84.156 -+	CPP_CPU_DEFS="-D__SH4__"
  84.157 -+	CC1_CPU_ENDIAN_FLAGS="-mb -m4"
  84.158 -+	LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh4"
  84.159 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh4eb-linux/lib"
  84.160 -+    ;;
  84.161 -+esac
  84.162 -+
  84.163 -+# Make symbolic links for GCC drivers, objects, libraries, and include dir.
  84.164 -+(cd usr/lib/gcc-lib/${CPU}-linux/${VERSION};
  84.165 -+ for f in ${DRIVERS} ${INCLUDE}; do
  84.166 -+    ln -s ../../sh-linux/${VERSION}/$f $f;
  84.167 -+ done
  84.168 -+ for f in ${OBJS} ${LIBS_C}; do
  84.169 -+    ln -s ../../sh-linux/${VERSION}${MULTILIBDIR}/$f $f;
  84.170 -+ done)
  84.171 -+
  84.172 -+if [ -z "$STEP1_COMPILER_BUILD" ]; then
  84.173 -+  for f in ${LIBS_1} ${LIBS_2}; do
  84.174 -+    mv ../gcc-sh-linux/usr/sh-linux/lib${MULTILIBDIR}/$f usr/${CPU}-linux/lib/;
  84.175 -+  done
  84.176 -+fi
  84.177 -+
  84.178 -+sed -e "s+@AS_ENDIAN_FLAG@+${AS_ENDIAN_FLAG}+" \
  84.179 -+    -e "s+@CPP_ENDIAN_DEF@+${CPP_ENDIAN_DEF}+" \
  84.180 -+    -e "s+@CPP_CPU_DEFS@+${CPP_CPU_DEFS}+" \
  84.181 -+    -e "s+@CC1_CPU_ENDIAN_FLAGS@+${CC1_CPU_ENDIAN_FLAGS}+" \
  84.182 -+    -e "s+@LINKER_CPU_ENDIAN_FLAGS@+${LINKER_CPU_ENDIAN_FLAGS}+" \
  84.183 -+    -e "s+@LINKER_RPATH_LINK_FLAG@+${LINKER_RPATH_LINK_FLAG}+" \
  84.184 -+    ../edit-specs.in >../edit-specs-${CPU}.sed
  84.185 -+
  84.186 -+sed -f ../edit-specs-${CPU}.sed \
  84.187 -+    ../gcc-sh-linux${INITIAL}/usr/lib/gcc-lib/sh-linux/${VERSION}/specs \
  84.188 -+    > usr/lib/gcc-lib/${CPU}-linux/${VERSION}/specs
  84.189 -+
  84.190 -+exit 0
  84.191 -diff -ruN gcc-20030210.orig/debian/multilib-symlink gcc-20030210/debian/multilib-symlink
  84.192 ---- gcc-20030210.orig/debian/multilib-symlink	Thu Jan  1 09:00:00 1970
  84.193 -+++ gcc-20030210/debian/multilib-symlink	Sat Feb 22 01:40:14 2003
  84.194 -@@ -0,0 +1,10 @@
  84.195 -+#! /bin/sh
  84.196 -+
  84.197 -+cd /usr/sh-linux/lib
  84.198 -+ln -s ../../sh3-linux/lib/{*.a,*.so*,*.o} .
  84.199 -+cd m4
  84.200 -+ln -s ../../../sh4-linux/lib/{*.a,*.so*,*.o} .
  84.201 -+cd ../mb
  84.202 -+ln -s ../../../sh3eb-linux/lib/{*.a,*.so*,*.o} .
  84.203 -+cd m4
  84.204 -+ln -s ../../../../sh4eb-linux/lib/{*.a,*.so*,*.o} .
  84.205 -diff -ruN gcc-20030210.orig/debian/shCPU-linux-GCC gcc-20030210/debian/shCPU-linux-GCC
  84.206 ---- gcc-20030210.orig/debian/shCPU-linux-GCC	Thu Jan  1 09:00:00 1970
  84.207 -+++ gcc-20030210/debian/shCPU-linux-GCC	Sat Feb 22 01:40:14 2003
  84.208 -@@ -0,0 +1,59 @@
  84.209 -+#! /bin/bash
  84.210 -+
  84.211 -+BASENAME=${0##*/}
  84.212 -+PROG=${BASENAME##*-}
  84.213 -+CPU=${BASENAME%%-*}
  84.214 -+
  84.215 -+if [ "$PROG" = gcc ]; then
  84.216 -+    if [ "$1" = "-b" -a "$2" = "i386-linux" ]; then
  84.217 -+	shift 2
  84.218 -+	exec /usr/bin/gcc "$@"
  84.219 -+    elif [ "$1" = "-print-multi-lib" -o "$1" = "--print-multi-lib" ]; then
  84.220 -+	echo ".;"
  84.221 -+	exit 0
  84.222 -+    elif [ "$1" = "-print-multi-os-directory" -o "$1" = "--print-multi-os-directory" ]; then
  84.223 -+	echo "."
  84.224 -+	exit 0
  84.225 -+    elif [ "$1" = "-dumpspecs" ]; then
  84.226 -+	cat /usr/lib/gcc-lib/${CPU}-linux/@@VERSION@@/specs
  84.227 -+	exit 0
  84.228 -+    fi
  84.229 -+fi
  84.230 -+
  84.231 -+case "${CPU}" in
  84.232 -+    sh3)
  84.233 -+	ARCH=m3
  84.234 -+	DEFINES="-D__sh3__ -D__SH3__ -D__LITTLE_ENDIAN__"
  84.235 -+	ENDIAN=ml
  84.236 -+    ;;
  84.237 -+    sh3eb)
  84.238 -+	ARCH=m3
  84.239 -+	DEFINES="-D__sh3__ -D__SH3__ -D__BIG_ENDIAN__"
  84.240 -+	ENDIAN=mb
  84.241 -+    ;;
  84.242 -+    sh4)
  84.243 -+	ARCH=m4
  84.244 -+	DEFINES="-D__SH4__ -D__LITTLE_ENDIAN__"
  84.245 -+	ENDIAN=ml
  84.246 -+    ;;
  84.247 -+    sh4eb)
  84.248 -+	ARCH=m4
  84.249 -+	DEFINES="-D__SH4__ -D__BIG_ENDIAN__"
  84.250 -+	ENDIAN=mb
  84.251 -+    ;;
  84.252 -+esac
  84.253 -+
  84.254 -+# Prepend the appropriate options
  84.255 -+# If user specifies some options, it will be overridden
  84.256 -+
  84.257 -+case "${PROG}" in
  84.258 -+    cpp)
  84.259 -+	exec sh-linux-${PROG} $DEFINES "$@"
  84.260 -+    ;;
  84.261 -+    c++|g++|g77|gcc|gcj)
  84.262 -+	exec sh-linux-${PROG} -$ARCH -$ENDIAN "$@"
  84.263 -+    ;;
  84.264 -+esac
  84.265 -+
  84.266 -+echo "Something wrong..."
  84.267 -+exit 1
  84.268 -diff -ruN gcc-20030210.orig/gcc/config/sh/elf.h gcc-20030210/gcc/config/sh/elf.h
  84.269 ---- gcc-20030210.orig/gcc/config/sh/elf.h	Fri Feb 22 01:42:28 2002
  84.270 -+++ gcc-20030210/gcc/config/sh/elf.h	Sat Feb 22 01:40:14 2003
  84.271 -@@ -170,3 +170,7 @@
  84.272 - #undef ENDFILE_SPEC
  84.273 - #define ENDFILE_SPEC \
  84.274 -   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
  84.275 -+
  84.276 -+/* ASM_OUTPUT_CASE_LABEL is defined in elfos.h.  With it, 
  84.277 -+   redundant .align will be generated.  */
  84.278 -+#undef  ASM_OUTPUT_CASE_LABEL
  84.279 -diff -ruN gcc-20030210.orig/gcc/config/sh/lib1funcs.asm gcc-20030210/gcc/config/sh/lib1funcs.asm
  84.280 ---- gcc-20030210.orig/gcc/config/sh/lib1funcs.asm	Fri Feb 22 01:42:28 2002
  84.281 -+++ gcc-20030210/gcc/config/sh/lib1funcs.asm	Sat Feb 22 01:40:14 2003
  84.282 -@@ -39,8 +39,13 @@
  84.283 - 
  84.284 - #ifdef __ELF__
  84.285 - #define LOCAL(X) .L_##X
  84.286 -+#define FUNC(X) .type X,@function; .hidden X
  84.287 -+#define _ENDFUNC(X) .Lfe_##X: .size X,.Lfe_##X-X
  84.288 -+#define ENDFUNC(X) _ENDFUNC(X)
  84.289 - #else
  84.290 - #define LOCAL(X) L_##X
  84.291 -+#define FUNC(X)
  84.292 -+#define ENDFUNC(X)
  84.293 - #endif
  84.294 - 
  84.295 - #ifdef __linux__
  84.296 -@@ -91,6 +96,40 @@
  84.297 - 	.global	GLOBAL(ashiftrt_r4_31)
  84.298 - 	.global	GLOBAL(ashiftrt_r4_32)
  84.299 - 
  84.300 -+	FUNC(GLOBAL(ashiftrt_r4_0))
  84.301 -+	FUNC(GLOBAL(ashiftrt_r4_1))
  84.302 -+	FUNC(GLOBAL(ashiftrt_r4_2))
  84.303 -+	FUNC(GLOBAL(ashiftrt_r4_3))
  84.304 -+	FUNC(GLOBAL(ashiftrt_r4_4))
  84.305 -+	FUNC(GLOBAL(ashiftrt_r4_5))
  84.306 -+	FUNC(GLOBAL(ashiftrt_r4_6))
  84.307 -+	FUNC(GLOBAL(ashiftrt_r4_7))
  84.308 -+	FUNC(GLOBAL(ashiftrt_r4_8))
  84.309 -+	FUNC(GLOBAL(ashiftrt_r4_9))
  84.310 -+	FUNC(GLOBAL(ashiftrt_r4_10))
  84.311 -+	FUNC(GLOBAL(ashiftrt_r4_11))
  84.312 -+	FUNC(GLOBAL(ashiftrt_r4_12))
  84.313 -+	FUNC(GLOBAL(ashiftrt_r4_13))
  84.314 -+	FUNC(GLOBAL(ashiftrt_r4_14))
  84.315 -+	FUNC(GLOBAL(ashiftrt_r4_15))
  84.316 -+	FUNC(GLOBAL(ashiftrt_r4_16))
  84.317 -+	FUNC(GLOBAL(ashiftrt_r4_17))
  84.318 -+	FUNC(GLOBAL(ashiftrt_r4_18))
  84.319 -+	FUNC(GLOBAL(ashiftrt_r4_19))
  84.320 -+	FUNC(GLOBAL(ashiftrt_r4_20))
  84.321 -+	FUNC(GLOBAL(ashiftrt_r4_21))
  84.322 -+	FUNC(GLOBAL(ashiftrt_r4_22))
  84.323 -+	FUNC(GLOBAL(ashiftrt_r4_23))
  84.324 -+	FUNC(GLOBAL(ashiftrt_r4_24))
  84.325 -+	FUNC(GLOBAL(ashiftrt_r4_25))
  84.326 -+	FUNC(GLOBAL(ashiftrt_r4_26))
  84.327 -+	FUNC(GLOBAL(ashiftrt_r4_27))
  84.328 -+	FUNC(GLOBAL(ashiftrt_r4_28))
  84.329 -+	FUNC(GLOBAL(ashiftrt_r4_29))
  84.330 -+	FUNC(GLOBAL(ashiftrt_r4_30))
  84.331 -+	FUNC(GLOBAL(ashiftrt_r4_31))
  84.332 -+	FUNC(GLOBAL(ashiftrt_r4_32))
  84.333 -+
  84.334 - 	.align	1
  84.335 - GLOBAL(ashiftrt_r4_32):
  84.336 - GLOBAL(ashiftrt_r4_31):
  84.337 -@@ -170,6 +209,41 @@
  84.338 - GLOBAL(ashiftrt_r4_0):
  84.339 - 	rts
  84.340 - 	nop
  84.341 -+
  84.342 -+	ENDFUNC(GLOBAL(ashiftrt_r4_0))
  84.343 -+	ENDFUNC(GLOBAL(ashiftrt_r4_1))
  84.344 -+	ENDFUNC(GLOBAL(ashiftrt_r4_2))
  84.345 -+	ENDFUNC(GLOBAL(ashiftrt_r4_3))
  84.346 -+	ENDFUNC(GLOBAL(ashiftrt_r4_4))
  84.347 -+	ENDFUNC(GLOBAL(ashiftrt_r4_5))
  84.348 -+	ENDFUNC(GLOBAL(ashiftrt_r4_6))
  84.349 -+	ENDFUNC(GLOBAL(ashiftrt_r4_7))
  84.350 -+	ENDFUNC(GLOBAL(ashiftrt_r4_8))
  84.351 -+	ENDFUNC(GLOBAL(ashiftrt_r4_9))
  84.352 -+	ENDFUNC(GLOBAL(ashiftrt_r4_10))
  84.353 -+	ENDFUNC(GLOBAL(ashiftrt_r4_11))
  84.354 -+	ENDFUNC(GLOBAL(ashiftrt_r4_12))
  84.355 -+	ENDFUNC(GLOBAL(ashiftrt_r4_13))
  84.356 -+	ENDFUNC(GLOBAL(ashiftrt_r4_14))
  84.357 -+	ENDFUNC(GLOBAL(ashiftrt_r4_15))
  84.358 -+	ENDFUNC(GLOBAL(ashiftrt_r4_16))
  84.359 -+	ENDFUNC(GLOBAL(ashiftrt_r4_17))
  84.360 -+	ENDFUNC(GLOBAL(ashiftrt_r4_18))
  84.361 -+	ENDFUNC(GLOBAL(ashiftrt_r4_19))
  84.362 -+	ENDFUNC(GLOBAL(ashiftrt_r4_20))
  84.363 -+	ENDFUNC(GLOBAL(ashiftrt_r4_21))
  84.364 -+	ENDFUNC(GLOBAL(ashiftrt_r4_22))
  84.365 -+	ENDFUNC(GLOBAL(ashiftrt_r4_23))
  84.366 -+	ENDFUNC(GLOBAL(ashiftrt_r4_24))
  84.367 -+	ENDFUNC(GLOBAL(ashiftrt_r4_25))
  84.368 -+	ENDFUNC(GLOBAL(ashiftrt_r4_26))
  84.369 -+	ENDFUNC(GLOBAL(ashiftrt_r4_27))
  84.370 -+	ENDFUNC(GLOBAL(ashiftrt_r4_28))
  84.371 -+	ENDFUNC(GLOBAL(ashiftrt_r4_29))
  84.372 -+	ENDFUNC(GLOBAL(ashiftrt_r4_30))
  84.373 -+	ENDFUNC(GLOBAL(ashiftrt_r4_31))
  84.374 -+	ENDFUNC(GLOBAL(ashiftrt_r4_32))
  84.375 -+
  84.376 - #endif
  84.377 - 
  84.378 - #ifdef L_ashiftrt_n
  84.379 -@@ -192,6 +266,7 @@
  84.380 - !
  84.381 - 
  84.382 - 	.global	GLOBAL(ashrsi3)
  84.383 -+	FUNC(GLOBAL(ashrsi3))
  84.384 - 	.align	2
  84.385 - GLOBAL(ashrsi3):
  84.386 - 	mov	#31,r0
  84.387 -@@ -319,6 +394,8 @@
  84.388 - 	rts
  84.389 - 	nop
  84.390 - 
  84.391 -+	ENDFUNC(GLOBAL(ashrsi3))
  84.392 -+
  84.393 - #endif
  84.394 - 
  84.395 - #ifdef L_ashiftlt
  84.396 -@@ -340,6 +417,7 @@
  84.397 - ! (none)
  84.398 - !
  84.399 - 	.global	GLOBAL(ashlsi3)
  84.400 -+	FUNC(GLOBAL(ashlsi3))
  84.401 - 	.align	2
  84.402 - GLOBAL(ashlsi3):
  84.403 - 	mov	#31,r0
  84.404 -@@ -476,6 +554,8 @@
  84.405 - 	rts
  84.406 - 	nop
  84.407 - 
  84.408 -+	ENDFUNC(GLOBAL(ashlsi3))
  84.409 -+
  84.410 - #endif
  84.411 - 
  84.412 - #ifdef L_lshiftrt
  84.413 -@@ -497,6 +577,7 @@
  84.414 - ! (none)
  84.415 - !
  84.416 - 	.global	GLOBAL(lshrsi3)
  84.417 -+	FUNC(GLOBAL(lshrsi3))
  84.418 - 	.align	2
  84.419 - GLOBAL(lshrsi3):
  84.420 - 	mov	#31,r0
  84.421 -@@ -633,6 +714,8 @@
  84.422 - 	rts
  84.423 - 	nop
  84.424 - 
  84.425 -+	ENDFUNC(GLOBAL(lshrsi3))
  84.426 -+
  84.427 - #endif
  84.428 - 
  84.429 - #ifdef L_movstr
  84.430 -@@ -649,76 +732,113 @@
  84.431 - 	add	#64,r4
  84.432 - 	.align	4
  84.433 - 	.global	GLOBAL(movstrSI64)
  84.434 -+	FUNC(GLOBAL(movstrSI64))
  84.435 - GLOBAL(movstrSI64):
  84.436 - 	mov.l	@(60,r5),r0
  84.437 - 	mov.l	r0,@(60,r4)
  84.438 - 	.global	GLOBAL(movstrSI60)
  84.439 -+	FUNC(GLOBAL(movstrSI60))
  84.440 - GLOBAL(movstrSI60):
  84.441 - 	mov.l	@(56,r5),r0
  84.442 - 	mov.l	r0,@(56,r4)
  84.443 - 	.global	GLOBAL(movstrSI56)
  84.444 -+	FUNC(GLOBAL(movstrSI56))
  84.445 - GLOBAL(movstrSI56):
  84.446 - 	mov.l	@(52,r5),r0
  84.447 - 	mov.l	r0,@(52,r4)
  84.448 - 	.global	GLOBAL(movstrSI52)
  84.449 -+	FUNC(GLOBAL(movstrSI52))
  84.450 - GLOBAL(movstrSI52):
  84.451 - 	mov.l	@(48,r5),r0
  84.452 - 	mov.l	r0,@(48,r4)
  84.453 - 	.global	GLOBAL(movstrSI48)
  84.454 -+	FUNC(GLOBAL(movstrSI48))
  84.455 - GLOBAL(movstrSI48):
  84.456 - 	mov.l	@(44,r5),r0
  84.457 - 	mov.l	r0,@(44,r4)
  84.458 - 	.global	GLOBAL(movstrSI44)
  84.459 -+	FUNC(GLOBAL(movstrSI44))
  84.460 - GLOBAL(movstrSI44):
  84.461 - 	mov.l	@(40,r5),r0
  84.462 - 	mov.l	r0,@(40,r4)
  84.463 - 	.global	GLOBAL(movstrSI40)
  84.464 -+	FUNC(GLOBAL(movstrSI40))
  84.465 - GLOBAL(movstrSI40):
  84.466 - 	mov.l	@(36,r5),r0
  84.467 - 	mov.l	r0,@(36,r4)
  84.468 - 	.global	GLOBAL(movstrSI36)
  84.469 -+	FUNC(GLOBAL(movstrSI36))
  84.470 - GLOBAL(movstrSI36):
  84.471 - 	mov.l	@(32,r5),r0
  84.472 - 	mov.l	r0,@(32,r4)
  84.473 - 	.global	GLOBAL(movstrSI32)
  84.474 -+	FUNC(GLOBAL(movstrSI32))
  84.475 - GLOBAL(movstrSI32):
  84.476 - 	mov.l	@(28,r5),r0
  84.477 - 	mov.l	r0,@(28,r4)
  84.478 - 	.global	GLOBAL(movstrSI28)
  84.479 -+	FUNC(GLOBAL(movstrSI28))
  84.480 - GLOBAL(movstrSI28):
  84.481 - 	mov.l	@(24,r5),r0
  84.482 - 	mov.l	r0,@(24,r4)
  84.483 - 	.global	GLOBAL(movstrSI24)
  84.484 -+	FUNC(GLOBAL(movstrSI24))
  84.485 - GLOBAL(movstrSI24):
  84.486 - 	mov.l	@(20,r5),r0
  84.487 - 	mov.l	r0,@(20,r4)
  84.488 - 	.global	GLOBAL(movstrSI20)
  84.489 -+	FUNC(GLOBAL(movstrSI20))
  84.490 - GLOBAL(movstrSI20):
  84.491 - 	mov.l	@(16,r5),r0
  84.492 - 	mov.l	r0,@(16,r4)
  84.493 - 	.global	GLOBAL(movstrSI16)
  84.494 -+	FUNC(GLOBAL(movstrSI16))
  84.495 - GLOBAL(movstrSI16):
  84.496 - 	mov.l	@(12,r5),r0
  84.497 - 	mov.l	r0,@(12,r4)
  84.498 - 	.global	GLOBAL(movstrSI12)
  84.499 -+	FUNC(GLOBAL(movstrSI12))
  84.500 - GLOBAL(movstrSI12):
  84.501 - 	mov.l	@(8,r5),r0
  84.502 - 	mov.l	r0,@(8,r4)
  84.503 - 	.global	GLOBAL(movstrSI8)
  84.504 -+	FUNC(GLOBAL(movstrSI8))
  84.505 - GLOBAL(movstrSI8):
  84.506 - 	mov.l	@(4,r5),r0
  84.507 - 	mov.l	r0,@(4,r4)
  84.508 - 	.global	GLOBAL(movstrSI4)
  84.509 -+	FUNC(GLOBAL(movstrSI4))
  84.510 - GLOBAL(movstrSI4):
  84.511 - 	mov.l	@(0,r5),r0
  84.512 - 	mov.l	r0,@(0,r4)
  84.513 -+	.global	GLOBAL(movstrSI0)
  84.514 -+	FUNC(GLOBAL(movstrSI0))
  84.515 - GLOBAL(movstrSI0):
  84.516 - 	rts
  84.517 - 	nop
  84.518 - 
  84.519 -+	ENDFUNC(GLOBAL(movstrSI64))
  84.520 -+	ENDFUNC(GLOBAL(movstrSI60))
  84.521 -+	ENDFUNC(GLOBAL(movstrSI56))
  84.522 -+	ENDFUNC(GLOBAL(movstrSI52))
  84.523 -+	ENDFUNC(GLOBAL(movstrSI48))
  84.524 -+	ENDFUNC(GLOBAL(movstrSI44))
  84.525 -+	ENDFUNC(GLOBAL(movstrSI40))
  84.526 -+	ENDFUNC(GLOBAL(movstrSI36))
  84.527 -+	ENDFUNC(GLOBAL(movstrSI32))
  84.528 -+	ENDFUNC(GLOBAL(movstrSI28))
  84.529 -+	ENDFUNC(GLOBAL(movstrSI24))
  84.530 -+	ENDFUNC(GLOBAL(movstrSI20))
  84.531 -+	ENDFUNC(GLOBAL(movstrSI16))
  84.532 -+	ENDFUNC(GLOBAL(movstrSI12))
  84.533 -+	ENDFUNC(GLOBAL(movstrSI8))
  84.534 -+	ENDFUNC(GLOBAL(movstrSI4))
  84.535 -+	ENDFUNC(GLOBAL(movstrSI0))
  84.536 -+
  84.537 - 	.align	4
  84.538 - 
  84.539 - 	.global	GLOBAL(movstr)
  84.540 -+	FUNC(GLOBAL(movstr))
  84.541 - GLOBAL(movstr):
  84.542 - 	mov.l	@(60,r5),r0
  84.543 - 	mov.l	r0,@(60,r4)
  84.544 -@@ -775,6 +895,8 @@
  84.545 - 	add	#64,r5
  84.546 - 	bra	GLOBAL(movstr)
  84.547 - 	add	#64,r4
  84.548 -+
  84.549 -+	FUNC(GLOBAL(movstr))
  84.550 - #endif
  84.551 - 
  84.552 - #ifdef L_movstr_i4
  84.553 -@@ -783,6 +905,10 @@
  84.554 - 	.global	GLOBAL(movstr_i4_odd)
  84.555 - 	.global	GLOBAL(movstrSI12_i4)
  84.556 - 
  84.557 -+	FUNC(GLOBAL(movstr_i4_even))
  84.558 -+	FUNC(GLOBAL(movstr_i4_odd))
  84.559 -+	FUNC(GLOBAL(movstrSI12_i4))
  84.560 -+
  84.561 - 	.p2align	5
  84.562 - L_movstr_2mod4_end:
  84.563 - 	mov.l	r0,@(16,r4)
  84.564 -@@ -791,6 +917,11 @@
  84.565 - 
  84.566 - 	.p2align	2
  84.567 - 
  84.568 -+GLOBAL(movstr_i4_even):
  84.569 -+	mov.l	@r5+,r0
  84.570 -+	bra	L_movstr_start_even
  84.571 -+	mov.l	@r5+,r1
  84.572 -+
  84.573 - GLOBAL(movstr_i4_odd):
  84.574 - 	mov.l	@r5+,r1
  84.575 - 	add	#-4,r4
  84.576 -@@ -817,10 +948,8 @@
  84.577 - 	rts
  84.578 - 	mov.l	r3,@(12,r4)
  84.579 - 
  84.580 --GLOBAL(movstr_i4_even):
  84.581 --	mov.l	@r5+,r0
  84.582 --	bra	L_movstr_start_even
  84.583 --	mov.l	@r5+,r1
  84.584 -+	ENDFUNC(GLOBAL(movstr_i4_even))
  84.585 -+	ENDFUNC(GLOBAL(movstr_i4_odd))
  84.586 - 
  84.587 - 	.p2align	4
  84.588 - GLOBAL(movstrSI12_i4):
  84.589 -@@ -831,12 +960,16 @@
  84.590 - 	mov.l	r1,@(4,r4)
  84.591 - 	rts
  84.592 - 	mov.l	r2,@(8,r4)
  84.593 -+
  84.594 -+	ENDFUNC(GLOBAL(movstrSI12_i4))
  84.595 -+
  84.596 - #endif
  84.597 - 
  84.598 - #ifdef L_mulsi3
  84.599 - 
  84.600 - 
  84.601 - 	.global	GLOBAL(mulsi3)
  84.602 -+	FUNC(GLOBAL(mulsi3))
  84.603 - 
  84.604 - ! r4 =       aabb
  84.605 - ! r5 =       ccdd
  84.606 -@@ -869,7 +1002,7 @@
  84.607 - 	rts
  84.608 - 	add	r2,r0
  84.609 - 
  84.610 --
  84.611 -+	FUNC(GLOBAL(mulsi3))
  84.612 - #endif
  84.613 - #endif /* ! __SH5__ */
  84.614 - #ifdef L_sdivsi3_i4
  84.615 -@@ -879,6 +1012,7 @@
  84.616 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
  84.617 - 
  84.618 - 	.global	GLOBAL(sdivsi3_i4)
  84.619 -+	FUNC(GLOBAL(sdivsi3_i4))
  84.620 - GLOBAL(sdivsi3_i4):
  84.621 - 	lds r4,fpul
  84.622 - 	float fpul,dr0
  84.623 -@@ -888,6 +1022,8 @@
  84.624 - 	rts
  84.625 - 	ftrc dr0,fpul
  84.626 - 
  84.627 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
  84.628 -+
  84.629 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
  84.630 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
  84.631 - 
  84.632 -@@ -896,6 +1032,7 @@
  84.633 - 	.mode	SHcompact
  84.634 - #endif
  84.635 - 	.global	GLOBAL(sdivsi3_i4)
  84.636 -+	FUNC(GLOBAL(sdivsi3_i4))
  84.637 - GLOBAL(sdivsi3_i4):
  84.638 - 	sts.l fpscr,@-r15
  84.639 - 	mov #8,r2
  84.640 -@@ -910,6 +1047,8 @@
  84.641 - 	rts
  84.642 - 	lds.l @r15+,fpscr
  84.643 - 
  84.644 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
  84.645 -+
  84.646 - #endif /* ! __SH5__ || __SH5__ == 32 */
  84.647 - #endif /* ! __SH4__ */
  84.648 - #endif
  84.649 -@@ -924,9 +1063,10 @@
  84.650 - !!
  84.651 - !!
  84.652 - 
  84.653 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
  84.654 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
  84.655 - 
  84.656 - 	.global	GLOBAL(sdivsi3)
  84.657 -+	FUNC(GLOBAL(sdivsi3))
  84.658 - #if __SHMEDIA__
  84.659 - #if __SH5__ == 32
  84.660 - 	.section	.text..SHmedia32,"ax"
  84.661 -@@ -1076,6 +1216,7 @@
  84.662 - div0:	rts
  84.663 - 	mov	#0,r0
  84.664 - 
  84.665 -+	ENDFUNC(GLOBAL(sdivsi3))
  84.666 - #endif /* ! __SHMEDIA__ */
  84.667 - #endif /* ! __SH4__ */
  84.668 - #endif
  84.669 -@@ -1084,9 +1225,11 @@
  84.670 - 	.title "SH DIVIDE"
  84.671 - !! 4 byte integer Divide code for the Hitachi SH
  84.672 - #ifdef __SH4__
  84.673 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
  84.674 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
  84.675 -+!! and t bit
  84.676 - 
  84.677 - 	.global	GLOBAL(udivsi3_i4)
  84.678 -+	FUNC(GLOBAL(udivsi3_i4))
  84.679 - GLOBAL(udivsi3_i4):
  84.680 - 	mov #1,r1
  84.681 - 	cmp/hi r1,r5
  84.682 -@@ -1127,6 +1270,8 @@
  84.683 - L1:
  84.684 - 	.double 2147483648
  84.685 - 
  84.686 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  84.687 -+
  84.688 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
  84.689 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
  84.690 - 
  84.691 -@@ -1135,6 +1280,7 @@
  84.692 - 	.mode	SHcompact
  84.693 - #endif
  84.694 - 	.global	GLOBAL(udivsi3_i4)
  84.695 -+	FUNC(GLOBAL(udivsi3_i4))
  84.696 - GLOBAL(udivsi3_i4):
  84.697 - 	mov #1,r1
  84.698 - 	cmp/hi r1,r5
  84.699 -@@ -1183,6 +1329,8 @@
  84.700 - #endif
  84.701 - 	.double 2147483648
  84.702 - 
  84.703 -+	ENDFUNC(GLOBAL(udivsi3_i4))
  84.704 -+
  84.705 - #endif /* ! __SH5__ || __SH5__ == 32 */
  84.706 - #endif /* ! __SH4__ */
  84.707 - #endif
  84.708 -@@ -1199,6 +1347,7 @@
  84.709 - 
  84.710 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
  84.711 - 	.global	GLOBAL(udivsi3)
  84.712 -+	FUNC(GLOBAL(udivsi3))
  84.713 - 
  84.714 - #if __SHMEDIA__
  84.715 - #if __SH5__ == 32
  84.716 -@@ -1299,6 +1448,8 @@
  84.717 - ret:	rts
  84.718 - 	mov	r4,r0
  84.719 - 
  84.720 -+	ENDFUNC(GLOBAL(udivsi3))
  84.721 -+
  84.722 - #endif /* ! __SHMEDIA__ */
  84.723 - #endif /* __SH4__ */
  84.724 - #endif
  84.725 -@@ -1308,6 +1459,7 @@
  84.726 - 	.mode	SHcompact
  84.727 - #endif
  84.728 - 	.global GLOBAL(set_fpscr)
  84.729 -+	FUNC(GLOBAL(set_fpscr))
  84.730 - GLOBAL(set_fpscr):
  84.731 - 	lds r4,fpscr
  84.732 - 	mov.l LOCAL(set_fpscr_L1),r1
  84.733 -@@ -1340,11 +1492,16 @@
  84.734 - 	.align 2
  84.735 - LOCAL(set_fpscr_L1):
  84.736 - 	.long GLOBAL(fpscr_values)
  84.737 -+
  84.738 -+	ENDFUNC(GLOBAL(set_fpscr))
  84.739 -+
  84.740 -+#ifndef NO_FPSCR_VALUES
  84.741 - #ifdef __ELF__
  84.742 -         .comm   GLOBAL(fpscr_values),8,4
  84.743 - #else
  84.744 -         .comm   GLOBAL(fpscr_values),8
  84.745 - #endif /* ELF */
  84.746 -+#endif /* NO_FPSCR_VALUES */
  84.747 - #endif /* SH3E / SH4 */
  84.748 - #endif /* L_set_fpscr */
  84.749 - #ifdef L_ic_invalidate
  84.750 -@@ -1360,6 +1517,7 @@
  84.751 - 	blink	tr0, r63
  84.752 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
  84.753 - 	.global GLOBAL(ic_invalidate)
  84.754 -+	FUNC(GLOBAL(ic_invalidate))
  84.755 - GLOBAL(ic_invalidate):
  84.756 - 	ocbwb	@r4
  84.757 - 	mova	0f,r0
  84.758 -@@ -1382,6 +1540,9 @@
  84.759 - 	nop
  84.760 - 	.endr
  84.761 - 	.endr
  84.762 -+
  84.763 -+	ENDFUNC(GLOBAL(ic_invalidate))
  84.764 -+
  84.765 - #endif /* SH4 */
  84.766 - #endif /* L_ic_invalidate */
  84.767 - 
  84.768 -diff -ruN gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver gcc-20030210/gcc/config/sh/libgcc-glibc.ver
  84.769 ---- gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver	Thu Jan  1 09:00:00 1970
  84.770 -+++ gcc-20030210/gcc/config/sh/libgcc-glibc.ver	Sat Feb 22 01:40:14 2003
  84.771 -@@ -0,0 +1,21 @@
  84.772 -+# In order to work around the very problems that force us to now generally
  84.773 -+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
  84.774 -+# By now choosing the same version tags for these specific routines, we
  84.775 -+# maintain enough binary compatibility to allow future versions of glibc
  84.776 -+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
  84.777 -+
  84.778 -+# Note that we cannot use the default libgcc-glibc.ver file on sh,
  84.779 -+# because GLIBC_2.0 does not exist on this architecture, as the first 
  84.780 -+# ever glibc release on the platform was GLIBC_2.2.
  84.781 -+
  84.782 -+%inherit GCC_3.0 GLIBC_2.2
  84.783 -+GLIBC_2.2 {
  84.784 -+  __register_frame
  84.785 -+  __register_frame_table
  84.786 -+  __deregister_frame
  84.787 -+  __register_frame_info
  84.788 -+  __deregister_frame_info
  84.789 -+  __frame_state_for
  84.790 -+  __register_frame_info_table
  84.791 -+}
  84.792 -+
  84.793 -diff -ruN gcc-20030210.orig/gcc/config/sh/linux.h gcc-20030210/gcc/config/sh/linux.h
  84.794 ---- gcc-20030210.orig/gcc/config/sh/linux.h	Tue Apr 16 05:27:42 2002
  84.795 -+++ gcc-20030210/gcc/config/sh/linux.h	Sat Feb 22 01:40:14 2003
  84.796 -@@ -19,6 +19,10 @@
  84.797 - the Free Software Foundation, 59 Temple Place - Suite 330,
  84.798 - Boston, MA 02111-1307, USA.  */
  84.799 - 
  84.800 -+/* We're not SYSVR4, not having /usr/ccs */
  84.801 -+#undef MD_EXEC_PREFIX
  84.802 -+#undef MD_STARTFILE_PREFIX
  84.803 -+
  84.804 - /* Run-time Target Specification.  */
  84.805 - #undef TARGET_VERSION
  84.806 - #define TARGET_VERSION  fputs (" (SH GNU/Linux with ELF)", stderr);
  84.807 -@@ -39,6 +43,28 @@
  84.808 - #undef WCHAR_TYPE_SIZE
  84.809 - #define WCHAR_TYPE_SIZE BITS_PER_WORD
  84.810 - 
  84.811 -+/* This was defined in linux.h.  Define it here also. */
  84.812 -+#undef  DEFAULT_VTABLE_THUNKS
  84.813 -+#define DEFAULT_VTABLE_THUNKS   1
  84.814 -+
  84.815 -+/* Likewise.  */
  84.816 -+#define HANDLE_PRAGMA_PACK_PUSH_POP
  84.817 -+
  84.818 -+/* Pick up the return address upon entry to a procedure. Used for
  84.819 -+   dwarf2 unwind information.  This also enables the table driven
  84.820 -+   mechanism.  */
  84.821 -+
  84.822 -+#define INCOMING_RETURN_ADDR_RTX	gen_rtx_REG (Pmode, PR_REG)
  84.823 -+#define DWARF_FRAME_RETURN_COLUMN	DWARF_FRAME_REGNUM (PR_REG)
  84.824 -+
  84.825 -+#undef CPP_SPEC
  84.826 -+#define CPP_SPEC "\
  84.827 -+   %{m4:-D__SH4__} \
  84.828 -+   %{!m4:%(cpp_default_cpu_spec)} \
  84.829 -+   %(subtarget_cpp_spec) \
  84.830 -+   %(subtarget_cpp_ptr_spec) \
  84.831 -+   %(subtarget_cpp_endian_spec) "
  84.832 -+
  84.833 - #undef SUBTARGET_CPP_SPEC
  84.834 - #define SUBTARGET_CPP_SPEC "\
  84.835 -    %{fPIC:-D__PIC__ -D__pic__} \
  84.836 -@@ -55,36 +81,45 @@
  84.837 - #undef CPP_DEFAULT_CPU_SPEC
  84.838 - #define CPP_DEFAULT_CPU_SPEC "-D__SH3__ -D__sh3__"
  84.839 - 
  84.840 --
  84.841 - #undef CPP_PREDEFINES
  84.842 - #define CPP_PREDEFINES "-D__ELF__ -Dunix -D__sh__ -D__gnu_linux__ -Dlinux -Asystem=posix"
  84.843 - 
  84.844 -+/* The GNU C++ standard library requires that these macros be defined.  */
  84.845 -+#undef CPLUSPLUS_CPP_SPEC
  84.846 -+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
  84.847 -+
  84.848 - #undef ASM_SPEC
  84.849 --#define ASM_SPEC  "%{!mb:-little} %{mrelax:-relax}"
  84.850 -+#define ASM_SPEC  "%{mb:-big} %{!mb:-little} %{mrelax:-relax}"
  84.851 - 
  84.852 - #undef CC1_SPEC
  84.853 - #define CC1_SPEC \
  84.854 --  "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"
  84.855 --
  84.856 --#undef CC1PLUS_SPEC
  84.857 --#define CC1PLUS_SPEC \
  84.858 --  "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"
  84.859 -+  "-musermode %{!mb:-ml} %{!m4:-m3} %{profile:-p}"
  84.860 - 
  84.861 -+/* XXX: It's wrong if prefix != /usr */
  84.862 - #undef LINK_SPEC
  84.863 - #define LINK_SPEC \
  84.864 --  "%{!mb:-m shlelf_linux} %{mrelax:-relax} \
  84.865 -+  "%{!mb:-m shlelf_linux -EL} %{mb:-m shelf_linux -EB} %{mrelax:-relax} \
  84.866 -    %{shared:-shared} \
  84.867 -    %{!static: \
  84.868 -      %{rdynamic:-export-dynamic} \
  84.869 -      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  84.870 --     %{!rpath:-rpath /lib}} \
  84.871 -+     %{!mb:%{!m4:-rpath-link /usr/sh-linux/lib }} \
  84.872 -+     %{!mb:%{m4:-rpath-link /usr/sh-linux/lib/m4 }} \
  84.873 -+     %{mb:%{!m4:-rpath-link /usr/sh-linux/lib/mb }} \
  84.874 -+     %{mb:%{m4:-rpath-link /usr/sh-linux/lib/mb/m4 }}} \
  84.875 -    %{static:-static}"
  84.876 - 
  84.877 - #undef LIB_SPEC
  84.878 -+#undef LIB_SPEC
  84.879 - #define LIB_SPEC \
  84.880 -   "%{shared: -lc} \
  84.881 --   %{!shared: %{pthread:-lthread} \
  84.882 --     %{profile:-lc_p} %{!profile: -lc}}"
  84.883 -+   %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
  84.884 -+	%{profile:-lc_p} %{!profile: -lc}}"
  84.885 -+
  84.886 -+#if defined(HAVE_LD_EH_FRAME_HDR)
  84.887 -+#undef LINK_EH_SPEC
  84.888 -+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
  84.889 -+#endif
  84.890 - 
  84.891 - #undef STARTFILE_SPEC
  84.892 - #define STARTFILE_SPEC \
  84.893 -@@ -92,4 +127,40 @@
  84.894 -      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
  84.895 - 		       %{!p:%{profile:gcrt1.o%s} \
  84.896 - 			 %{!profile:crt1.o%s}}}} \
  84.897 --   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
  84.898 -+   crti.o%s %{static:crtbeginT.o%s}\
  84.899 -+   %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
  84.900 -+
  84.901 -+#undef FUNCTION_PROFILER
  84.902 -+#define FUNCTION_PROFILER(STREAM,LABELNO)				\
  84.903 -+do									\
  84.904 -+{									\
  84.905 -+  if (flag_pic)								\
  84.906 -+    {									\
  84.907 -+      fprintf (STREAM, "	mov.l	3f,r1\n");			\
  84.908 -+      fprintf (STREAM, "	mova	3f,r0\n");			\
  84.909 -+      fprintf (STREAM, "	add	r1,r0\n");			\
  84.910 -+      fprintf (STREAM, "	mov.l	1f,r1\n");			\
  84.911 -+      fprintf (STREAM, "	mov.l	@(r0,r1),r1\n");		\
  84.912 -+    }									\
  84.913 -+  else									\
  84.914 -+    {									\
  84.915 -+      fprintf (STREAM, "	mov.l	1f,r1\n");			\
  84.916 -+    }									\
  84.917 -+  fprintf (STREAM, "	sts.l	pr,@-r15\n");				\
  84.918 -+  fprintf (STREAM, "	mova	2f,r0\n");				\
  84.919 -+  fprintf (STREAM, "	jmp	@r1\n");				\
  84.920 -+  fprintf (STREAM, "	lds	r0,pr\n");				\
  84.921 -+  fprintf (STREAM, "	.align	2\n");					\
  84.922 -+  if (flag_pic)								\
  84.923 -+    {									\
  84.924 -+      fprintf (STREAM, "1:	.long	mcount@GOT\n");			\
  84.925 -+      fprintf (STREAM, "3:	.long	_GLOBAL_OFFSET_TABLE_\n");	\
  84.926 -+    }									\
  84.927 -+  else									\
  84.928 -+    {									\
  84.929 -+      fprintf (STREAM, "1:	.long	mcount\n");			\
  84.930 -+    }									\
  84.931 -+  fprintf (STREAM, "2:	lds.l	@r15+,pr\n");				\
  84.932 -+} while (0)
  84.933 -+
  84.934 -+#define NO_SHARED_LIBGCC_MULTILIB
  84.935 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh-protos.h gcc-20030210/gcc/config/sh/sh-protos.h
  84.936 ---- gcc-20030210.orig/gcc/config/sh/sh-protos.h	Fri Feb 22 01:42:28 2002
  84.937 -+++ gcc-20030210/gcc/config/sh/sh-protos.h	Sat Feb 22 01:40:14 2003
  84.938 -@@ -74,6 +74,7 @@
  84.939 - extern int shl_sext_length PARAMS ((rtx));
  84.940 - extern int gen_shl_sext PARAMS ((rtx, rtx, rtx, rtx));
  84.941 - extern rtx gen_datalabel_ref PARAMS ((rtx));
  84.942 -+extern int shl_casesi_worker_length PARAMS ((rtx));
  84.943 - extern int regs_used PARAMS ((rtx, int));
  84.944 - extern void fixup_addr_diff_vecs PARAMS ((rtx));
  84.945 - extern int get_dest_uid PARAMS ((rtx, int));
  84.946 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh.c gcc-20030210/gcc/config/sh/sh.c
  84.947 ---- gcc-20030210.orig/gcc/config/sh/sh.c	Fri Feb 22 01:42:28 2002
  84.948 -+++ gcc-20030210/gcc/config/sh/sh.c	Sat Feb 22 01:40:14 2003
  84.949 -@@ -2143,6 +2143,48 @@
  84.950 -   return sym;
  84.951 - }
  84.952 - 
  84.953 -+
  84.954 -+/* Function to be used in the length attribute of the casesi_worker
  84.955 -+   instruction.  Returns number of instructions, which is half of the
  84.956 -+   length of bytes. */
  84.957 -+
  84.958 -+int
  84.959 -+shl_casesi_worker_length (insn)
  84.960 -+     rtx insn;
  84.961 -+{
  84.962 -+  rtx set_src, label;
  84.963 -+  rtx diff_vec;
  84.964 -+
  84.965 -+  set_src = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
  84.966 -+  if (!(GET_CODE (set_src) == UNSPEC
  84.967 -+	&& XINT (set_src, 1) == UNSPEC_CASESI))
  84.968 -+    abort ();
  84.969 -+
  84.970 -+  label = XVECEXP (set_src, 0, 2);
  84.971 -+  if (GET_CODE (label) != LABEL_REF)
  84.972 -+    abort ();
  84.973 -+
  84.974 -+  diff_vec = PATTERN (next_real_insn (XEXP (label, 0)));
  84.975 -+
  84.976 -+  if (GET_CODE (diff_vec) != ADDR_DIFF_VEC)
  84.977 -+    abort ();
  84.978 -+
  84.979 -+  switch (GET_MODE (diff_vec))
  84.980 -+    {
  84.981 -+    case SImode:
  84.982 -+      return 2;
  84.983 -+    case HImode:
  84.984 -+      if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
  84.985 -+	return 3;
  84.986 -+      return 2;
  84.987 -+    case QImode:
  84.988 -+      if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
  84.989 -+	return 2;
  84.990 -+      return 1;
  84.991 -+    default:
  84.992 -+      abort ();
  84.993 -+    }
  84.994 -+}
  84.995 - 
  84.996 - /* The SH cannot load a large constant into a register, constants have to
  84.997 -    come from a pc relative load.  The reference of a pc relative load
  84.998 -@@ -3190,7 +3232,7 @@
  84.999 -       vec_lab = XEXP (XEXP (pat, 0), 0);
 84.1000 - 
 84.1001 -       /* Search the matching casesi_jump_2.  */
 84.1002 --      for (prev = vec_lab; ; prev = PREV_INSN (prev))
 84.1003 -+      for (prev = vec_lab; prev; prev = PREV_INSN (prev))
 84.1004 - 	{
 84.1005 - 	  if (GET_CODE (prev) != JUMP_INSN)
 84.1006 - 	    continue;
 84.1007 -@@ -3205,6 +3247,13 @@
 84.1008 - 	    break;
 84.1009 - 	}
 84.1010 - 
 84.1011 -+      if (prev == NULL)
 84.1012 -+	{			/* Switch statement has been optimized out.  */
 84.1013 -+	  delete_insn (PREV_INSN (insn));
 84.1014 -+	  delete_insn (insn);
 84.1015 -+	  continue;
 84.1016 -+	}
 84.1017 -+
 84.1018 -       /* Emit the reference label of the braf where it belongs, right after
 84.1019 - 	 the casesi_jump_2 (i.e. braf).  */
 84.1020 -       braf_label = XEXP (XEXP (SET_SRC (XVECEXP (prevpat, 0, 0)), 1), 0);
 84.1021 -@@ -3223,7 +3272,7 @@
 84.1022 -      rtx barrier_or_label;
 84.1023 - {
 84.1024 -   rtx next = next_real_insn (barrier_or_label), pat, prev;
 84.1025 --  int slot, credit, jump_to_next;
 84.1026 -+  int slot, credit, jump_to_next = 0;
 84.1027 -  
 84.1028 -   if (! next)
 84.1029 -     return 0;
 84.1030 -@@ -4507,7 +4556,8 @@
 84.1031 -   if (current_function_varargs || current_function_stdarg)
 84.1032 -     {
 84.1033 -       /* This is not used by the SH3E calling convention  */
 84.1034 --      if (TARGET_SH1 && ! TARGET_SH3E && ! TARGET_SH5 && ! TARGET_HITACHI)
 84.1035 -+      if (TARGET_SH1 && ! TARGET_SH3E && ! TARGET_SH5 && ! TARGET_HITACHI
 84.1036 -+	  || TARGET_NO_IMPLICIT_FP)
 84.1037 - 	{
 84.1038 - 	  /* Push arg regs as if they'd been provided by caller in stack.  */
 84.1039 - 	  for (i = 0; i < NPARM_REGS(SImode); i++)
 84.1040 -@@ -5149,7 +5199,8 @@
 84.1041 -   tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
 84.1042 -   tree record;
 84.1043 - 
 84.1044 --  if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
 84.1045 -+  if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI
 84.1046 -+      || TARGET_NO_IMPLICIT_FP)
 84.1047 -     return ptr_type_node;
 84.1048 - 
 84.1049 -   record = make_node (RECORD_TYPE);
 84.1050 -@@ -5211,7 +5262,8 @@
 84.1051 -       return;
 84.1052 -     }
 84.1053 - 
 84.1054 --  if ((! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
 84.1055 -+  if ((! TARGET_SH3E && ! TARGET_SH4)
 84.1056 -+      || TARGET_HITACHI || TARGET_NO_IMPLICIT_FP)
 84.1057 -     {
 84.1058 -       std_expand_builtin_va_start (stdarg_p, valist, nextarg);
 84.1059 -       return;
 84.1060 -@@ -5289,7 +5341,8 @@
 84.1061 -   rsize = (size + UNITS_PER_WORD - 1) & -UNITS_PER_WORD;
 84.1062 -   pptr_type_node = build_pointer_type (ptr_type_node);
 84.1063 - 
 84.1064 --  if (! TARGET_SH5 && (TARGET_SH3E || TARGET_SH4) && ! TARGET_HITACHI)
 84.1065 -+  if (! TARGET_SH5 && (TARGET_SH3E || TARGET_SH4)
 84.1066 -+      && ! TARGET_HITACHI && ! TARGET_NO_IMPLICIT_FP)
 84.1067 -     {
 84.1068 -       tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
 84.1069 -       tree next_o, next_o_limit, next_fp, next_fp_limit, next_stack;
 84.1070 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh.h gcc-20030210/gcc/config/sh/sh.h
 84.1071 ---- gcc-20030210.orig/gcc/config/sh/sh.h	Fri Feb 22 01:42:28 2002
 84.1072 -+++ gcc-20030210/gcc/config/sh/sh.h	Sat Feb 22 01:40:14 2003
 84.1073 -@@ -147,10 +147,10 @@
 84.1074 - #define HARD_SH4_BIT	(1<<5)
 84.1075 - #define FPU_SINGLE_BIT	(1<<7)
 84.1076 - #define SH4_BIT	       	(1<<12)
 84.1077 -+#define NO_IMPLICIT_FP_BIT	(1<<3)
 84.1078 - #define FMOVD_BIT	(1<<4)
 84.1079 - #define SH5_BIT		(1<<0)
 84.1080 - #define SPACE_BIT 	(1<<13)
 84.1081 --#define BIGTABLE_BIT  	(1<<14)
 84.1082 - #define RELAX_BIT	(1<<15)
 84.1083 - #define USERMODE_BIT	(1<<16)
 84.1084 - #define HITACHI_BIT     (1<<22)
 84.1085 -@@ -205,6 +205,9 @@
 84.1086 - /* Nonzero if we should generate code for a SH5 CPU (either ISA).  */
 84.1087 - #define TARGET_SH5 (target_flags & SH5_BIT)
 84.1088 - 
 84.1089 -+/* Nonzero if we should not use FPU implicitly.  */
 84.1090 -+#define TARGET_NO_IMPLICIT_FP (target_flags & NO_IMPLICIT_FP_BIT)
 84.1091 -+
 84.1092 - /* Nonzero if we should generate code using the SHcompact instruction
 84.1093 -    set and 32-bit ABI.  */
 84.1094 - #define TARGET_SHCOMPACT (TARGET_SH5 && TARGET_SH1)
 84.1095 -@@ -225,6 +228,7 @@
 84.1096 - 
 84.1097 - /* Nonzero if we should generate code using SHmedia FPU instructions.  */
 84.1098 - #define TARGET_SHMEDIA_FPU (TARGET_SHMEDIA && TARGET_FPU_DOUBLE)
 84.1099 -+
 84.1100 - /* Nonzero if we should generate fmovd.  */
 84.1101 - #define TARGET_FMOVD (target_flags & FMOVD_BIT)
 84.1102 - 
 84.1103 -@@ -234,9 +238,6 @@
 84.1104 - /* Nonzero if we should generate smaller code rather than faster code.  */
 84.1105 - #define TARGET_SMALLCODE   (target_flags & SPACE_BIT)
 84.1106 - 
 84.1107 --/* Nonzero to use long jump tables.  */
 84.1108 --#define TARGET_BIGTABLE     (target_flags & BIGTABLE_BIT)
 84.1109 --
 84.1110 - /* Nonzero to generate pseudo-ops needed by the assembler and linker
 84.1111 -    to do function call relaxing.  */
 84.1112 - #define TARGET_RELAX (target_flags & RELAX_BIT)
 84.1113 -@@ -297,7 +298,6 @@
 84.1114 -   {"5-compact-nofpu", TARGET_NONE, "" },	\
 84.1115 -   {"5-compact-nofpu", SH5_BIT|SH3_BIT|SH2_BIT|SH1_BIT, "Generate FPU-less SHcompact code" }, \
 84.1116 -   {"b",		-LITTLE_ENDIAN_BIT, "" },  	\
 84.1117 --  {"bigtable", 	BIGTABLE_BIT, "" },		\
 84.1118 -   {"dalign",  	DALIGN_BIT, "" },		\
 84.1119 -   {"fmovd",  	FMOVD_BIT, "" },		\
 84.1120 -   {"hitachi",	HITACHI_BIT, "" },		\
 84.1121 -@@ -306,6 +306,7 @@
 84.1122 -   {"isize", 	ISIZE_BIT, "" },		\
 84.1123 -   {"l",		LITTLE_ENDIAN_BIT, "" },  	\
 84.1124 -   {"no-ieee",  	-IEEE_BIT, "" },		\
 84.1125 -+  {"no-implicit-fp", NO_IMPLICIT_FP_BIT, "" },	\
 84.1126 -   {"padstruct", PADSTRUCT_BIT, "" },    	\
 84.1127 -   {"prefergot",	PREFERGOT_BIT, "" },		\
 84.1128 -   {"relax",	RELAX_BIT, "" },		\
 84.1129 -@@ -2493,16 +2494,22 @@
 84.1130 -     goto LABEL;								\
 84.1131 - }
 84.1132 - 
 84.1133 -+extern int optimize; /* needed for gen_casesi.  */
 84.1134 -+extern int optimize_size;
 84.1135 -+
 84.1136 - /* Specify the machine mode that this machine uses
 84.1137 -    for the index in the tablejump instruction.  */
 84.1138 --#define CASE_VECTOR_MODE (TARGET_BIGTABLE ? SImode : HImode)
 84.1139 -+#define CASE_VECTOR_MODE SImode
 84.1140 - 
 84.1141 - #define CASE_VECTOR_SHORTEN_MODE(MIN_OFFSET, MAX_OFFSET, BODY) \
 84.1142 - ((MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 127 \
 84.1143 -  ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, QImode) \
 84.1144 -  : (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 255 \
 84.1145 -  ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, QImode) \
 84.1146 -- : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 ? HImode \
 84.1147 -+ : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 \
 84.1148 -+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, HImode) \
 84.1149 -+ : optimize_size && (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 65535 \
 84.1150 -+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, HImode) \
 84.1151 -  : SImode)
 84.1152 - 
 84.1153 - /* Define as C expression which evaluates to nonzero if the tablejump
 84.1154 -@@ -3038,10 +3045,7 @@
 84.1155 - /* Output an absolute table element.  */
 84.1156 - 
 84.1157 - #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE)  				\
 84.1158 --  if (TARGET_BIGTABLE) 							\
 84.1159 --    asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE)); 			\
 84.1160 --  else									\
 84.1161 --    asm_fprintf ((STREAM), "\t.word\t%LL%d\n", (VALUE)); 			\
 84.1162 -+    asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE))
 84.1163 - 
 84.1164 - /* Output various types of constants.  */
 84.1165 - 
 84.1166 -@@ -3167,8 +3171,6 @@
 84.1167 - #define sh_cpu_attr ((enum attr_cpu)sh_cpu)
 84.1168 - extern enum processor_type sh_cpu;
 84.1169 - 
 84.1170 --extern int optimize; /* needed for gen_casesi.  */
 84.1171 --
 84.1172 - enum mdep_reorg_phase_e
 84.1173 - {
 84.1174 -   SH_BEFORE_MDEP_REORG,
 84.1175 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh.md gcc-20030210/gcc/config/sh/sh.md
 84.1176 ---- gcc-20030210.orig/gcc/config/sh/sh.md	Sat Nov 23 04:58:06 2002
 84.1177 -+++ gcc-20030210/gcc/config/sh/sh.md	Sat Feb 22 01:40:14 2003
 84.1178 -@@ -1242,7 +1242,7 @@
 84.1179 -    (clobber (reg:SI PR_REG))
 84.1180 -    (clobber (reg:SI R4_REG))
 84.1181 -    (use (match_operand:SI 1 "arith_reg_operand" "r"))]
 84.1182 --  "TARGET_SH1 && ! TARGET_SH4"
 84.1183 -+  "TARGET_SH1 && ! TARGET_SH4 || TARGET_NO_IMPLICIT_FP"
 84.1184 -   "jsr	@%1%#"
 84.1185 -   [(set_attr "type" "sfunc")
 84.1186 -    (set_attr "needs_delay_slot" "yes")])
 84.1187 -@@ -1336,7 +1336,7 @@
 84.1188 - 
 84.1189 -   operands[3] = gen_reg_rtx (Pmode);
 84.1190 -   /* Emit the move of the address to a pseudo outside of the libcall.  */
 84.1191 --  if (TARGET_HARD_SH4 && TARGET_SH3E)
 84.1192 -+  if (TARGET_HARD_SH4 && TARGET_SH3E && !TARGET_NO_IMPLICIT_FP)
 84.1193 -     {
 84.1194 -       emit_move_insn (operands[3],
 84.1195 - 		      gen_rtx_SYMBOL_REF (SImode, \"__udivsi3_i4\"));
 84.1196 -@@ -1391,7 +1391,7 @@
 84.1197 -    (clobber (reg:SI R2_REG))
 84.1198 -    (clobber (reg:SI R3_REG))
 84.1199 -    (use (match_operand:SI 1 "arith_reg_operand" "r"))]
 84.1200 --  "TARGET_SH1 && ! TARGET_SH4"
 84.1201 -+  "TARGET_SH1 && ! TARGET_SH4 || TARGET_NO_IMPLICIT_FP"
 84.1202 -   "jsr	@%1%#"
 84.1203 -   [(set_attr "type" "sfunc")
 84.1204 -    (set_attr "needs_delay_slot" "yes")])
 84.1205 -@@ -1476,7 +1476,7 @@
 84.1206 - 
 84.1207 -   operands[3] = gen_reg_rtx (Pmode);
 84.1208 -   /* Emit the move of the address to a pseudo outside of the libcall.  */
 84.1209 --  if (TARGET_HARD_SH4 && TARGET_SH3E)
 84.1210 -+  if (TARGET_HARD_SH4 && TARGET_SH3E && !TARGET_NO_IMPLICIT_FP)
 84.1211 -     {
 84.1212 -       emit_move_insn (operands[3],
 84.1213 - 		      gen_rtx_SYMBOL_REF (SImode, \"__sdivsi3_i4\"));
 84.1214 -@@ -6446,6 +6446,8 @@
 84.1215 -     case SImode:
 84.1216 -       return \"shll2	%1\;mov.l	@(r0,%1),%0\";
 84.1217 -     case HImode:
 84.1218 -+      if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
 84.1219 -+	return \"add	%1,%1\;mov.w	@(r0,%1),%0\;extu.w	%0,%0\";
 84.1220 -       return \"add	%1,%1\;mov.w	@(r0,%1),%0\";
 84.1221 -     case QImode:
 84.1222 -       if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
 84.1223 -@@ -6455,7 +6457,15 @@
 84.1224 -       abort ();
 84.1225 -     }
 84.1226 - }"
 84.1227 --  [(set_attr "length" "4")])
 84.1228 -+  [(set (attr "length")
 84.1229 -+	(cond [(eq (symbol_ref "shl_casesi_worker_length (insn)") (const_int 1))
 84.1230 -+	       (const_string "2")
 84.1231 -+	       (eq (symbol_ref "shl_casesi_worker_length (insn)") (const_int 2))
 84.1232 -+	       (const_string "4")
 84.1233 -+	       ;; Put "match_dup" here so that insn_variable_length_p return 1.
 84.1234 -+	       (ne (match_dup 2) (match_dup 2))
 84.1235 -+	       (const_string "4")]
 84.1236 -+	      (const_string "6")))])
 84.1237 - 
 84.1238 - (define_insn "casesi_shift_media"
 84.1239 -   [(set (match_operand 0 "arith_reg_operand" "=r")
 84.1240 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh3-linux.h gcc-20030210/gcc/config/sh/sh3-linux.h
 84.1241 ---- gcc-20030210.orig/gcc/config/sh/sh3-linux.h	Thu Jan  1 09:00:00 1970
 84.1242 -+++ gcc-20030210/gcc/config/sh/sh3-linux.h	Sat Feb 22 01:40:14 2003
 84.1243 -@@ -0,0 +1,29 @@
 84.1244 -+#undef TARGET_VERSION
 84.1245 -+#define TARGET_VERSION  fputs (" (SH3 GNU/Linux with ELF)", stderr);
 84.1246 -+
 84.1247 -+#undef CPP_SPEC
 84.1248 -+#define CPP_SPEC \
 84.1249 -+  "-D__LITTLE_ENDIAN__ \
 84.1250 -+   -D__SH3__ -D__sh3__ \
 84.1251 -+   -D__SIZE_TYPE__=unsigned\\ int \
 84.1252 -+   -D__PTRDIFF_TYPE__=int \
 84.1253 -+   %{fPIC:-D__PIC__ -D__pic__} \
 84.1254 -+   %{fpic:-D__PIC__ -D__pic__} \
 84.1255 -+   %{posix:-D_POSIX_SOURCE} \
 84.1256 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
 84.1257 -+
 84.1258 -+#undef ASM_SPEC
 84.1259 -+#define ASM_SPEC  "%{mrelax:-relax}"
 84.1260 -+
 84.1261 -+#undef CC1_SPEC
 84.1262 -+#define CC1_SPEC \
 84.1263 -+  "-musermode -ml -m3 %{profile:-p}"
 84.1264 -+
 84.1265 -+#undef LINK_SPEC
 84.1266 -+#define LINK_SPEC \
 84.1267 -+  "%{mrelax:-relax} \
 84.1268 -+   %{shared:-shared} \
 84.1269 -+   %{!static: \
 84.1270 -+     %{rdynamic:-export-dynamic} \
 84.1271 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 84.1272 -+    %{static:-static}"
 84.1273 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh3eb-linux.h gcc-20030210/gcc/config/sh/sh3eb-linux.h
 84.1274 ---- gcc-20030210.orig/gcc/config/sh/sh3eb-linux.h	Thu Jan  1 09:00:00 1970
 84.1275 -+++ gcc-20030210/gcc/config/sh/sh3eb-linux.h	Sat Feb 22 01:40:14 2003
 84.1276 -@@ -0,0 +1,29 @@
 84.1277 -+#undef TARGET_VERSION
 84.1278 -+#define TARGET_VERSION  fputs (" (SH3EB GNU/Linux with ELF)", stderr);
 84.1279 -+
 84.1280 -+#undef CPP_SPEC
 84.1281 -+#define CPP_SPEC \
 84.1282 -+  "-D__BIG_ENDIAN__ \
 84.1283 -+   -D__SH3__ -D__sh3__ \
 84.1284 -+   -D__SIZE_TYPE__=unsigned\\ int \
 84.1285 -+   -D__PTRDIFF_TYPE__=int \
 84.1286 -+   %{fPIC:-D__PIC__ -D__pic__} \
 84.1287 -+   %{fpic:-D__PIC__ -D__pic__} \
 84.1288 -+   %{posix:-D_POSIX_SOURCE} \
 84.1289 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
 84.1290 -+
 84.1291 -+#undef ASM_SPEC
 84.1292 -+#define ASM_SPEC  "%{mrelax:-relax}"
 84.1293 -+
 84.1294 -+#undef CC1_SPEC
 84.1295 -+#define CC1_SPEC \
 84.1296 -+  "-musermode -mb -m3 %{profile:-p}"
 84.1297 -+
 84.1298 -+#undef LINK_SPEC
 84.1299 -+#define LINK_SPEC \
 84.1300 -+  "%{mrelax:-relax} \
 84.1301 -+   %{shared:-shared} \
 84.1302 -+   %{!static: \
 84.1303 -+     %{rdynamic:-export-dynamic} \
 84.1304 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 84.1305 -+    %{static:-static}"
 84.1306 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh4-linux.h gcc-20030210/gcc/config/sh/sh4-linux.h
 84.1307 ---- gcc-20030210.orig/gcc/config/sh/sh4-linux.h	Thu Jan  1 09:00:00 1970
 84.1308 -+++ gcc-20030210/gcc/config/sh/sh4-linux.h	Sat Feb 22 01:40:14 2003
 84.1309 -@@ -0,0 +1,29 @@
 84.1310 -+#undef TARGET_VERSION
 84.1311 -+#define TARGET_VERSION  fputs (" (SH4 GNU/Linux with ELF)", stderr);
 84.1312 -+
 84.1313 -+#undef CPP_SPEC
 84.1314 -+#define CPP_SPEC \
 84.1315 -+  "-D__LITTLE_ENDIAN__ \
 84.1316 -+   -D__SH4__ \
 84.1317 -+   -D__SIZE_TYPE__=unsigned\\ int \
 84.1318 -+   -D__PTRDIFF_TYPE__=int \
 84.1319 -+   %{fPIC:-D__PIC__ -D__pic__} \
 84.1320 -+   %{fpic:-D__PIC__ -D__pic__} \
 84.1321 -+   %{posix:-D_POSIX_SOURCE} \
 84.1322 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
 84.1323 -+
 84.1324 -+#undef ASM_SPEC
 84.1325 -+#define ASM_SPEC  "%{mrelax:-relax}"
 84.1326 -+
 84.1327 -+#undef CC1_SPEC
 84.1328 -+#define CC1_SPEC \
 84.1329 -+  "-musermode -ml -m4 %{profile:-p}"
 84.1330 -+
 84.1331 -+#undef LINK_SPEC
 84.1332 -+#define LINK_SPEC \
 84.1333 -+  "%{mrelax:-relax} \
 84.1334 -+   %{shared:-shared} \
 84.1335 -+   %{!static: \
 84.1336 -+     %{rdynamic:-export-dynamic} \
 84.1337 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 84.1338 -+    %{static:-static}"
 84.1339 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh4eb-linux.h gcc-20030210/gcc/config/sh/sh4eb-linux.h
 84.1340 ---- gcc-20030210.orig/gcc/config/sh/sh4eb-linux.h	Thu Jan  1 09:00:00 1970
 84.1341 -+++ gcc-20030210/gcc/config/sh/sh4eb-linux.h	Sat Feb 22 01:40:14 2003
 84.1342 -@@ -0,0 +1,29 @@
 84.1343 -+#undef TARGET_VERSION
 84.1344 -+#define TARGET_VERSION  fputs (" (SH4EB GNU/Linux with ELF)", stderr);
 84.1345 -+
 84.1346 -+#undef CPP_SPEC
 84.1347 -+#define CPP_SPEC \
 84.1348 -+  "-D__BIG_ENDIAN__ \
 84.1349 -+   -D__SH4__ \
 84.1350 -+   -D__SIZE_TYPE__=unsigned\\ int \
 84.1351 -+   -D__PTRDIFF_TYPE__=int \
 84.1352 -+   %{fPIC:-D__PIC__ -D__pic__} \
 84.1353 -+   %{fpic:-D__PIC__ -D__pic__} \
 84.1354 -+   %{posix:-D_POSIX_SOURCE} \
 84.1355 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
 84.1356 -+
 84.1357 -+#undef ASM_SPEC
 84.1358 -+#define ASM_SPEC  "%{mrelax:-relax}"
 84.1359 -+
 84.1360 -+#undef CC1_SPEC
 84.1361 -+#define CC1_SPEC \
 84.1362 -+  "-musermode -mb -m4 %{profile:-p}"
 84.1363 -+
 84.1364 -+#undef LINK_SPEC
 84.1365 -+#define LINK_SPEC \
 84.1366 -+  "%{mrelax:-relax} \
 84.1367 -+   %{shared:-shared} \
 84.1368 -+   %{!static: \
 84.1369 -+     %{rdynamic:-export-dynamic} \
 84.1370 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 84.1371 -+    %{static:-static}"
 84.1372 -diff -ruN gcc-20030210.orig/gcc/config/sh/t-linux gcc-20030210/gcc/config/sh/t-linux
 84.1373 ---- gcc-20030210.orig/gcc/config/sh/t-linux	Thu May 17 12:16:12 2001
 84.1374 -+++ gcc-20030210/gcc/config/sh/t-linux	Sat Feb 22 01:40:14 2003
 84.1375 -@@ -1,10 +1,20 @@
 84.1376 --TARGET_LIBGCC2_CFLAGS = -fpic
 84.1377 -+TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES
 84.1378 -+LIBGCC1 = libgcc1-asm.a
 84.1379 -+CROSS_LIBGCC1 = libgcc1-asm.a
 84.1380 -+LIBGCC1_TEST = libgcc1-test
 84.1381 - LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movstr \
 84.1382 -   _movstr_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
 84.1383 -   _ic_invalidate
 84.1384 -+LIB2ADDEH = $(srcdir)/unwind-sjlj.c
 84.1385 -+LIB2ADDEHDEP = unwind.inc unwind-sjlj.c
 84.1386 - 
 84.1387 --MULTILIB_OPTIONS= mb m3e/m4
 84.1388 -+MULTILIB_OPTIONS= mb m4
 84.1389 - MULTILIB_DIRNAMES= 
 84.1390 - MULTILIB_MATCHES = 
 84.1391 - 
 84.1392 --EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
 84.1393 -+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
 84.1394 -+
 84.1395 -+# Override t-slibgcc-elf-ver to export some libgcc symbols with
 84.1396 -+# the symbol versions that glibc used and SH specific.
 84.1397 -+SHLIB_MAPFILES =  $(srcdir)/libgcc-std.ver \
 84.1398 -+		  $(srcdir)/config/sh/libgcc-glibc.ver
 84.1399 -diff -ruN gcc-20030210.orig/gcc/config/sh/t-linux-nomulti gcc-20030210/gcc/config/sh/t-linux-nomulti
 84.1400 ---- gcc-20030210.orig/gcc/config/sh/t-linux-nomulti	Thu Jan  1 09:00:00 1970
 84.1401 -+++ gcc-20030210/gcc/config/sh/t-linux-nomulti	Sat Feb 22 01:40:14 2003
 84.1402 -@@ -0,0 +1,9 @@
 84.1403 -+LIBGCC = libgcc.a
 84.1404 -+EXTRA_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o
 84.1405 -+
 84.1406 -+INSTALL_LIBGCC = install-libgcc
 84.1407 -+
 84.1408 -+MULTILIB_OPTIONS=
 84.1409 -+MULTILIB_DIRNAMES= 
 84.1410 -+MULTILIB_MATCHES = 
 84.1411 -+EXTRA_MULTILIB_PARTS=
 84.1412 -diff -ruN gcc-20030210.orig/gcc/config.gcc gcc-20030210/gcc/config.gcc
 84.1413 ---- gcc-20030210.orig/gcc/config.gcc	Fri Jan 31 19:17:13 2003
 84.1414 -+++ gcc-20030210/gcc/config.gcc	Sat Feb 22 01:40:14 2003
 84.1415 -@@ -337,9 +337,9 @@
 84.1416 - sparc*-*-*)
 84.1417 - 	cpu_type=sparc
 84.1418 - 	;;
 84.1419 --sh64-*-*)
 84.1420 --	cpu_type=sh
 84.1421 --	;;
 84.1422 -+sh*-*-*)
 84.1423 -+ 	cpu_type=sh
 84.1424 -+ 	;;
 84.1425 - esac
 84.1426 - 
 84.1427 - tm_file=${cpu_type}/${cpu_type}.h
 84.1428 -@@ -3018,9 +3018,31 @@
 84.1429 - 	  thread_file='rtems'
 84.1430 - 	fi
 84.1431 - 	;;
 84.1432 --sh-*-linux*)
 84.1433 -+sh*-*-linux*)
 84.1434 - 	tm_file="${tm_file} sh/elf.h sh/linux.h"
 84.1435 --	tmake_file="sh/t-sh sh/t-elf sh/t-linux"
 84.1436 -+	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux sh/t-linux"
 84.1437 -+	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
 84.1438 -+	case $machine in
 84.1439 -+		sh3eb-*)
 84.1440 -+			tm_file="${tm_file} sh/sh3eb-linux.h"
 84.1441 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
 84.1442 -+			;;
 84.1443 -+		sh4eb-*)
 84.1444 -+			tm_file="${tm_file} sh/sh4eb-linux.h"
 84.1445 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
 84.1446 -+			;;
 84.1447 -+		sh3-*)
 84.1448 -+			tm_file="${tm_file} sh/sh3-linux.h"
 84.1449 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
 84.1450 -+			;;
 84.1451 -+		sh4-*)
 84.1452 -+			tm_file="${tm_file} sh/sh4-linux.h"
 84.1453 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
 84.1454 -+			;;
 84.1455 -+		*)
 84.1456 -+			;;
 84.1457 -+	esac
 84.1458 -+	xmake_file=x-linux
 84.1459 - 	gas=yes gnu_ld=yes
 84.1460 - 	float_format=sh
 84.1461 - 	;;
 84.1462 -diff -ruN gcc-20030210.orig/gcc/dwarf2out.c gcc-20030210/gcc/dwarf2out.c
 84.1463 ---- gcc-20030210.orig/gcc/dwarf2out.c	Mon Feb 10 19:36:25 2003
 84.1464 -+++ gcc-20030210/gcc/dwarf2out.c	Sat Feb 22 01:40:14 2003
 84.1465 -@@ -10224,7 +10224,9 @@
 84.1466 - 	  /* We can have a normal definition following an inline one in the
 84.1467 - 	     case of redefinition of GNU C extern inlines.
 84.1468 - 	     It seems reasonable to use AT_specification in this case.  */
 84.1469 --	  && !get_AT_unsigned (old_die, DW_AT_inline))
 84.1470 -+	  && !get_AT_unsigned (old_die, DW_AT_inline)
 84.1471 -+	  /* Skip the nested function.  */
 84.1472 -+	  && !decl_function_context (decl))
 84.1473 - 	{
 84.1474 - 	  /* ??? This can happen if there is a bug in the program, for
 84.1475 - 	     instance, if it has duplicate function definitions.  Ideally,
 84.1476 -diff -ruN gcc-20030210.orig/gcc/final.c gcc-20030210/gcc/final.c
 84.1477 ---- gcc-20030210.orig/gcc/final.c	Fri Jan 31 19:17:20 2003
 84.1478 -+++ gcc-20030210/gcc/final.c	Sat Feb 22 01:40:14 2003
 84.1479 -@@ -1128,7 +1128,7 @@
 84.1480 - 	    }
 84.1481 - 	}
 84.1482 - 
 84.1483 --      INSN_ADDRESSES (uid) = insn_current_address;
 84.1484 -+      INSN_ADDRESSES (uid) = insn_current_address + insn_lengths[uid];
 84.1485 - 
 84.1486 -       if (GET_CODE (insn) == NOTE || GET_CODE (insn) == BARRIER
 84.1487 - 	  || GET_CODE (insn) == CODE_LABEL)
 84.1488 -diff -ruN gcc-20030210.orig/gcc/mkmap-symver.awk gcc-20030210/gcc/mkmap-symver.awk
 84.1489 ---- gcc-20030210.orig/gcc/mkmap-symver.awk	Fri Jan 31 19:17:26 2003
 84.1490 -+++ gcc-20030210/gcc/mkmap-symver.awk	Sat Feb 22 01:40:14 2003
 84.1491 -@@ -89,7 +89,11 @@
 84.1492 -     output(inherit[lib]);
 84.1493 - 
 84.1494 -   printf("%s {\n", lib);
 84.1495 --  printf("  global:\n");
 84.1496 -+  for (sym in ver)
 84.1497 -+    if ((ver[sym] == lib) && (sym in def))
 84.1498 -+      count++;
 84.1499 -+  if (count > 0)
 84.1500 -+    printf("  global:\n");
 84.1501 -   for (sym in ver)
 84.1502 -     if ((ver[sym] == lib) && (sym in def))
 84.1503 -       {
 84.1504 -diff -ruN gcc-20030210.orig/gcc/reload1.c gcc-20030210/gcc/reload1.c
 84.1505 ---- gcc-20030210.orig/gcc/reload1.c	Fri Jan 31 19:17:29 2003
 84.1506 -+++ gcc-20030210/gcc/reload1.c	Sat Feb 22 01:40:14 2003
 84.1507 -@@ -6103,6 +6103,7 @@
 84.1508 - 	    for (j = 0; j < n_reloads; j++)
 84.1509 - 	      if (rld[j].in != 0
 84.1510 - 		  && rld[j].when_needed != RELOAD_OTHER
 84.1511 -+		  && rld[j].when_needed != RELOAD_FOR_OUTPUT_ADDRESS
 84.1512 - 		  && reg_overlap_mentioned_for_reload_p (rld[j].in,
 84.1513 - 							 rld[i].in))
 84.1514 - 		rld[j].when_needed
 84.1515 -diff -ruN gcc-20030210.orig/gcc/reorg.c gcc-20030210/gcc/reorg.c
 84.1516 ---- gcc-20030210.orig/gcc/reorg.c	Fri Jan 31 19:17:30 2003
 84.1517 -+++ gcc-20030210/gcc/reorg.c	Sat Feb 22 01:40:14 2003
 84.1518 -@@ -3265,6 +3265,14 @@
 84.1519 - 		|| condjump_in_parallel_p (XVECEXP (PATTERN (insn), 0, 0))))
 84.1520 - 	continue;
 84.1521 - 
 84.1522 -+#ifdef MD_CAN_REDIRECT_BRANCH
 84.1523 -+      /* On some targets, branches with delay slots can have a limited
 84.1524 -+	 displacement.  Give the back end a chance to tell us we can't do
 84.1525 -+	 this.  */
 84.1526 -+      if (! MD_CAN_REDIRECT_BRANCH (insn, delay_insn))
 84.1527 -+	continue;
 84.1528 -+#endif
 84.1529 -+
 84.1530 -       target_label = JUMP_LABEL (delay_insn);
 84.1531 - 
 84.1532 -       if (target_label)
 84.1533 -diff -ruN gcc-20030210.orig/gcc/tree-inline.c gcc-20030210/gcc/tree-inline.c
 84.1534 ---- gcc-20030210.orig/gcc/tree-inline.c	Fri Jan 31 19:17:33 2003
 84.1535 -+++ gcc-20030210/gcc/tree-inline.c	Sat Feb 22 01:40:14 2003
 84.1536 -@@ -836,11 +836,17 @@
 84.1537 - 
 84.1538 -   /* Don't try to inline functions that are not well-suited to
 84.1539 -      inlining.  */
 84.1540 --  if (!inlinable_function_p (fn, id))
 84.1541 --    return NULL_TREE;
 84.1542 -+  if (! inlinable_function_p (fn, id)
 84.1543 -+      || ! (*lang_hooks.tree_inlining.start_inlining) (fn))
 84.1544 -+    {
 84.1545 -+      if (DECL_INLINE (fn) && warn_inline && ! flag_really_no_inline)
 84.1546 -+	{
 84.1547 -+	  warning_with_decl (fn, "inlining failed in call to `%s'");
 84.1548 -+	  warning ("called from here");
 84.1549 -+	}
 84.1550 - 
 84.1551 --  if (! (*lang_hooks.tree_inlining.start_inlining) (fn))
 84.1552 --    return NULL_TREE;
 84.1553 -+      return NULL_TREE;
 84.1554 -+    }
 84.1555 - 
 84.1556 -   /* Set the current filename and line number to the function we are
 84.1557 -      inlining so that when we create new _STMT nodes here they get
 84.1558 -diff -ruN gcc-20030210.orig/libjava/Makefile.in gcc-20030210/libjava/Makefile.in
 84.1559 ---- gcc-20030210.orig/libjava/Makefile.in	Tue Jan 28 10:44:37 2003
 84.1560 -+++ gcc-20030210/libjava/Makefile.in	Sat Feb 22 01:40:14 2003
 84.1561 -@@ -1637,6 +1637,7 @@
 84.1562 - 	"AS=$(AS)" \
 84.1563 - 	"CC=$(CC)" \
 84.1564 - 	"CXX=$(CXX)" \
 84.1565 -+	"GCJ=$(GCJ)" \
 84.1566 - 	"LD=$(LD)" \
 84.1567 - 	"LIBCFLAGS=$(LIBCFLAGS)" \
 84.1568 - 	"NM=$(NM)" \
 84.1569 -diff -ruN gcc-20030210.orig/libjava/configure gcc-20030210/libjava/configure
 84.1570 ---- gcc-20030210.orig/libjava/configure	Tue Jan 28 10:44:37 2003
 84.1571 -+++ gcc-20030210/libjava/configure	Sat Feb 22 01:42:11 2003
 84.1572 -@@ -2031,7 +2031,7 @@
 84.1573 - # This must be Linux ELF.
 84.1574 - linux-gnu*)
 84.1575 -   case $host_cpu in
 84.1576 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
 84.1577 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
 84.1578 -     lt_cv_deplibs_check_method=pass_all ;;
 84.1579 -   *)
 84.1580 -     # glibc up to 2.1.1 does not perform some relocations on ARM
 84.1581 -diff -ruN gcc-20030210.orig/libjava/java/net/natInetAddress.cc gcc-20030210/libjava/java/net/natInetAddress.cc
 84.1582 ---- gcc-20030210.orig/libjava/java/net/natInetAddress.cc	Tue Mar  5 05:02:19 2002
 84.1583 -+++ gcc-20030210/libjava/java/net/natInetAddress.cc	Sat Feb 22 01:40:14 2003
 84.1584 -@@ -56,7 +56,7 @@
 84.1585 - #endif
 84.1586 - 
 84.1587 - #ifndef HAVE_GETHOSTNAME_DECL
 84.1588 --extern "C" int gethostname (char *name, int namelen);
 84.1589 -+extern "C" int gethostname (char *name, unsigned int namelen);
 84.1590 - #endif
 84.1591 - 
 84.1592 - #ifdef DISABLE_JAVA_NET
 84.1593 -diff -ruN gcc-20030210.orig/libjava/libltdl/aclocal.m4 gcc-20030210/libjava/libltdl/aclocal.m4
 84.1594 ---- gcc-20030210.orig/libjava/libltdl/aclocal.m4	Sun Sep 10 17:04:40 2000
 84.1595 -+++ gcc-20030210/libjava/libltdl/aclocal.m4	Sat Feb 22 01:40:14 2003
 84.1596 -@@ -573,7 +573,7 @@
 84.1597 - # This must be Linux ELF.
 84.1598 - linux-gnu*)
 84.1599 -   case "$host_cpu" in
 84.1600 --  alpha* | i*86 | powerpc* | sparc* | ia64* )
 84.1601 -+  alpha* | i*86 | powerpc* | sparc* | ia64* | sh*)
 84.1602 -     lt_cv_deplibs_check_method=pass_all ;;
 84.1603 -   *)
 84.1604 -     # glibc up to 2.1.1 does not perform some relocations on ARM
 84.1605 -diff -ruN gcc-20030210.orig/libjava/sysdep/sh/locks.h gcc-20030210/libjava/sysdep/sh/locks.h
 84.1606 ---- gcc-20030210.orig/libjava/sysdep/sh/locks.h	Thu Jan  1 09:00:00 1970
 84.1607 -+++ gcc-20030210/libjava/sysdep/sh/locks.h	Sat Feb 22 01:40:14 2003
 84.1608 -@@ -0,0 +1,72 @@
 84.1609 -+// locks.h - Thread synchronization primitives. SuperH implementation.
 84.1610 -+
 84.1611 -+/* Copyright (C) 2002  Free Software Foundation
 84.1612 -+
 84.1613 -+   This file is part of libgcj.
 84.1614 -+
 84.1615 -+This software is copyrighted work licensed under the terms of the
 84.1616 -+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
 84.1617 -+details.  */
 84.1618 -+
 84.1619 -+#ifndef __SYSDEP_LOCKS_H__
 84.1620 -+#define __SYSDEP_LOCKS_H__
 84.1621 -+
 84.1622 -+typedef size_t obj_addr_t;	/* Integer type big enough for object	*/
 84.1623 -+				/* address.				*/
 84.1624 -+
 84.1625 -+static unsigned char __cas_lock = 0;
 84.1626 -+
 84.1627 -+inline static void
 84.1628 -+__cas_start_atomic (void)
 84.1629 -+{
 84.1630 -+  unsigned int val;
 84.1631 -+
 84.1632 -+  do
 84.1633 -+    __asm__ __volatile__ ("tas.b @%1; movt %0"
 84.1634 -+			  : "=r" (val)
 84.1635 -+			  : "r" (&__cas_lock)
 84.1636 -+			  : "memory");
 84.1637 -+  while (val == 0);
 84.1638 -+}
 84.1639 -+
 84.1640 -+inline static void
 84.1641 -+__cas_end_atomic (void)
 84.1642 -+{
 84.1643 -+  __asm__ __volatile__ (" " : : : "memory");
 84.1644 -+  __cas_lock = 0;
 84.1645 -+}
 84.1646 -+
 84.1647 -+inline static bool
 84.1648 -+compare_and_swap (volatile obj_addr_t *addr, obj_addr_t old,
 84.1649 -+		  obj_addr_t new_val)
 84.1650 -+{
 84.1651 -+  bool ret;
 84.1652 -+
 84.1653 -+  __cas_start_atomic ();
 84.1654 -+  if (*addr != old)
 84.1655 -+    ret = false;
 84.1656 -+  else
 84.1657 -+    {
 84.1658 -+      *addr = new_val;
 84.1659 -+      ret = true;
 84.1660 -+    }
 84.1661 -+  __cas_end_atomic ();
 84.1662 -+
 84.1663 -+  return ret;
 84.1664 -+}
 84.1665 -+
 84.1666 -+inline static void
 84.1667 -+release_set (volatile obj_addr_t *addr, obj_addr_t new_val)
 84.1668 -+{
 84.1669 -+  __asm__ __volatile__ (" " : : : "memory");
 84.1670 -+  *(addr) = new_val;
 84.1671 -+}
 84.1672 -+
 84.1673 -+inline static bool
 84.1674 -+compare_and_swap_release (volatile obj_addr_t *addr, obj_addr_t old,
 84.1675 -+			  obj_addr_t new_val)
 84.1676 -+{
 84.1677 -+  return compare_and_swap (addr, old, new_val);
 84.1678 -+}
 84.1679 -+
 84.1680 -+#endif /* ! __SYSDEP_LOCKS_H__ */
 84.1681 -diff -ruN gcc-20030210.orig/libstdc++-v3/acinclude.m4 gcc-20030210/libstdc++-v3/acinclude.m4
 84.1682 ---- gcc-20030210.orig/libstdc++-v3/acinclude.m4	Tue Jan 28 02:30:41 2003
 84.1683 -+++ gcc-20030210/libstdc++-v3/acinclude.m4	Sat Feb 22 01:40:14 2003
 84.1684 -@@ -1828,9 +1828,10 @@
 84.1685 -   GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
 84.1686 - 
 84.1687 -   # Passed down for canadian crosses.
 84.1688 --  if test x"$CANADIAN" = xyes; then
 84.1689 --    TOPLEVEL_INCLUDES='-I$(includedir)'
 84.1690 --  fi
 84.1691 -+  #if test x"$CANADIAN" = xyes; then
 84.1692 -+  #  TOPLEVEL_INCLUDES='-I$(includedir)'
 84.1693 -+  #fi
 84.1694 -+  TOPLEVEL_INCLUDES=''
 84.1695 - 
 84.1696 -   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
 84.1697 - 
 84.1698 -diff -ruN gcc-20030210.orig/libstdc++-v3/aclocal.m4 gcc-20030210/libstdc++-v3/aclocal.m4
 84.1699 ---- gcc-20030210.orig/libstdc++-v3/aclocal.m4	Mon Feb 10 19:36:47 2003
 84.1700 -+++ gcc-20030210/libstdc++-v3/aclocal.m4	Sat Feb 22 01:40:14 2003
 84.1701 -@@ -1840,9 +1840,10 @@
 84.1702 -   GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
 84.1703 - 
 84.1704 -   # Passed down for canadian crosses.
 84.1705 --  if test x"$CANADIAN" = xyes; then
 84.1706 --    TOPLEVEL_INCLUDES='-I$(includedir)'
 84.1707 --  fi
 84.1708 -+  #if test x"$CANADIAN" = xyes; then
 84.1709 -+  #  TOPLEVEL_INCLUDES='-I$(includedir)'
 84.1710 -+  #fi
 84.1711 -+  TOPLEVEL_INCLUDES=''
 84.1712 - 
 84.1713 -   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
 84.1714 - 
 84.1715 -diff -ruN gcc-20030210.orig/libstdc++-v3/configure gcc-20030210/libstdc++-v3/configure
 84.1716 ---- gcc-20030210.orig/libstdc++-v3/configure	Mon Feb 10 19:37:17 2003
 84.1717 -+++ gcc-20030210/libstdc++-v3/configure	Sat Feb 22 01:40:14 2003
 84.1718 -@@ -1982,7 +1982,7 @@
 84.1719 - # This must be Linux ELF.
 84.1720 - linux-gnu*)
 84.1721 -   case $host_cpu in
 84.1722 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
 84.1723 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh*)
 84.1724 -     lt_cv_deplibs_check_method=pass_all ;;
 84.1725 -   *)
 84.1726 -     # glibc up to 2.1.1 does not perform some relocations on ARM
 84.1727 -@@ -22340,9 +22340,10 @@
 84.1728 -   GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
 84.1729 - 
 84.1730 -   # Passed down for canadian crosses.
 84.1731 --  if test x"$CANADIAN" = xyes; then
 84.1732 --    TOPLEVEL_INCLUDES='-I$(includedir)'
 84.1733 --  fi
 84.1734 -+  #if test x"$CANADIAN" = xyes; then
 84.1735 -+  #  TOPLEVEL_INCLUDES='-I$(includedir)'
 84.1736 -+  #fi
 84.1737 -+  TOPLEVEL_INCLUDES=''
 84.1738 - 
 84.1739 -   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
 84.1740 - 
 84.1741 -diff -ruN gcc-20030210.orig/libtool.m4 gcc-20030210/libtool.m4
 84.1742 ---- gcc-20030210.orig/libtool.m4	Fri Jan 31 19:16:59 2003
 84.1743 -+++ gcc-20030210/libtool.m4	Sat Feb 22 01:40:14 2003
 84.1744 -@@ -597,7 +597,7 @@
 84.1745 - # This must be Linux ELF.
 84.1746 - linux-gnu*)
 84.1747 -   case $host_cpu in
 84.1748 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
 84.1749 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
 84.1750 -     lt_cv_deplibs_check_method=pass_all ;;
 84.1751 -   *)
 84.1752 -     # glibc up to 2.1.1 does not perform some relocations on ARM
 84.1753 -diff -ruN gcc-20030210.orig/zlib/configure gcc-20030210/zlib/configure
 84.1754 ---- gcc-20030210.orig/zlib/configure	Tue Jan 28 10:44:15 2003
 84.1755 -+++ gcc-20030210/zlib/configure	Sat Feb 22 01:40:14 2003
 84.1756 -@@ -1571,7 +1571,7 @@
 84.1757 - # This must be Linux ELF.
 84.1758 - linux-gnu*)
 84.1759 -   case $host_cpu in
 84.1760 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
 84.1761 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
 84.1762 -     lt_cv_deplibs_check_method=pass_all ;;
 84.1763 -   *)
 84.1764 -     # glibc up to 2.1.1 does not perform some relocations on ARM
    85.1 --- a/patches/gcc/3.2.3/130-g++.exp.patch	Wed Oct 28 12:03:38 2009 +0100
    85.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    85.3 @@ -1,98 +0,0 @@
    85.4 -g++ testsuite fixes for cross-compilers, Dan Kegel, Ixia Communications, 12 July 2003
    85.5 -
    85.6 -The first hunk fixes the error
    85.7 -
    85.8 -/testsuite_flags: /testsuite_flags: No such file or directory
    85.9 -    while executing
   85.10 -"exec sh ${odir_v3}/testsuite_flags --build-includes"
   85.11 -    (procedure "g++_include_flags" line 21)
   85.12 -    invoked from within
   85.13 -"g++_include_flags [get_multilibs] "
   85.14 -    (procedure "g++_init" line 63)
   85.15 -    invoked from within
   85.16 -"${tool}_init $test_file_name"
   85.17 -    (procedure "runtest" line 19)
   85.18 -    invoked from within
   85.19 -"runtest $test_name"
   85.20 -    ("foreach" body line 42)
   85.21 -    invoked from within
   85.22 -...
   85.23 -make[1]: [check-g++] Error 1 (ignored)
   85.24 -
   85.25 -The fix isn't especially pretty, but it worked for me, and can't hurt the
   85.26 -more common native compiler case.  Maybe someone who knows the code better 
   85.27 -can come up with a better fix.
   85.28 -
   85.29 -The second hunk fixes the error
   85.30 -
   85.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
   85.32 -
   85.33 -when trying to compile g++ testcases (!); setting up
   85.34 -the shared library environment when running crosstests of g++ 
   85.35 -should either be done by a special board file, or by
   85.36 -setting up a remote chroot environment (see http://kegel.com/crosstool),
   85.37 -not by blithely setting LD_LIBRARY_PATH on the local system.
   85.38 -
   85.39 ---- gcc-3.2.3/gcc/testsuite/lib/g++.exp.old	Fri Jul 11 15:42:47 2003
   85.40 -+++ gcc-3.2.3/gcc/testsuite/lib/g++.exp	Sat Jul 12 12:57:07 2003
   85.41 -@@ -72,6 +72,8 @@
   85.42 - #
   85.43 - proc g++_include_flags { paths } {
   85.44 -     global srcdir
   85.45 -+    global objdir
   85.46 -+    global target_triplet
   85.47 -     global HAVE_LIBSTDCXX_V3
   85.48 -     global TESTING_IN_BUILD_TREE
   85.49 - 
   85.50 -@@ -90,6 +92,20 @@
   85.51 - 
   85.52 -     if { ${HAVE_LIBSTDCXX_V3} } {
   85.53 -       set odir_v3 [lookfor_file ${gccpath} libstdc++-v3]
   85.54 -+      if { $odir_v3 == "" } {
   85.55 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on first try, now looking in build directory $objdir"
   85.56 -+	  # first assume no multilibs
   85.57 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   85.58 -+      }
   85.59 -+      if { $odir_v3 == "" } {
   85.60 -+          verbose "g++_include_flags: couldn't find libstdc++-v3 on second try, trying multilib"
   85.61 -+	  # assume multilib only one level deep
   85.62 -+          set multisub [file tail $gccpath]
   85.63 -+          set odir_v3 [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   85.64 -+      }
   85.65 -+      if { $odir_v3 == "" } {
   85.66 -+           error "Can't find libstdc++-v3"
   85.67 -+      }
   85.68 -       append flags [exec sh ${odir_v3}/testsuite_flags --build-includes]
   85.69 -     } else {
   85.70 -       set odir_v2 [lookfor_file ${gccpath} libstdc++]
   85.71 -@@ -192,16 +192,20 @@
   85.72 -       }
   85.73 -     }
   85.74 - 
   85.75 --    # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   85.76 --    # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   85.77 --    # (for the 64-bit ABI).  The right way to do this would be to modify
   85.78 --    # unix.exp -- but that's not an option since it's part of DejaGNU
   85.79 --    # proper, so we do it here.  We really only need to do 
   85.80 --    # this on IRIX, but it shouldn't hurt to do it anywhere else.
   85.81 --    setenv  LD_LIBRARY_PATH     $ld_library_path
   85.82 --    setenv  SHLIB_PATH          $ld_library_path
   85.83 --    setenv  LD_LIBRARYN32_PATH  $ld_library_path
   85.84 --    setenv  LD_LIBRARY64_PATH   $ld_library_path
   85.85 -+    if {![is_remote target]} {
   85.86 -+      # On IRIX 6, we have to set variables akin to LD_LIBRARY_PATH, but
   85.87 -+      # called LD_LIBRARYN32_PATH (for the N32 ABI) and LD_LIBRARY64_PATH
   85.88 -+      # (for the 64-bit ABI).  The right way to do this would be to modify
   85.89 -+      # unix.exp -- but that's not an option since it's part of DejaGNU
   85.90 -+      # proper, so we do it here.  We really only need to do 
   85.91 -+      # this on IRIX, but it shouldn't hurt to do it anywhere else.
   85.92 -+
   85.93 -+      # Doing this causes us to be unable to run cross-compilers.
   85.94 -+      setenv  LD_LIBRARY_PATH     $ld_library_path
   85.95 -+      setenv  SHLIB_PATH          $ld_library_path
   85.96 -+      setenv  LD_LIBRARYN32_PATH  $ld_library_path
   85.97 -+      setenv  LD_LIBRARY64_PATH   $ld_library_path
   85.98 -+    }
   85.99 - 
  85.100 -     return "$flags"
  85.101 - }
    86.1 --- a/patches/gcc/3.2.3/140-libffi-1.patch	Wed Oct 28 12:03:38 2009 +0100
    86.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    86.3 @@ -1,6864 +0,0 @@
    86.4 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/Makefile.am gcc/libffi/Makefile.am
    86.5 ---- gcc-3.2.2.orig/libffi/Makefile.am	Tue Jan 28 10:43:56 2003
    86.6 -+++ gcc/libffi/Makefile.am	Tue Jan 28 10:48:33 2003
    86.7 -@@ -8,14 +8,17 @@
    86.8 - 		src/mips/n32.s src/mips/o32.S src/mips/o32.s \
    86.9 - 		src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S \
   86.10 - 		src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \
   86.11 -+		src/x86/ffi64.c src/x86/unix64.S \
   86.12 - 		src/alpha/ffi.c src/alpha/osf.S \
   86.13 - 		src/m68k/ffi.c src/m68k/sysv.S \
   86.14 - 		src/powerpc/ffi.c src/powerpc/sysv.S \
   86.15 - 		src/powerpc/ppc_closure.S src/powerpc/asm.h \
   86.16 - 		src/powerpc/ffi_darwin.c \
   86.17 - 		src/powerpc/darwin.S src/powerpc/aix.S \
   86.18 --		src/powerpc/darwin_closure.S src/powerpc/aix_closures.S \
   86.19 --		src/arm/ffi.c src/arm/sysv.S
   86.20 -+		src/powerpc/darwin_closure.S src/powerpc/aix_closure.S \
   86.21 -+		src/arm/ffi.c src/arm/sysv.S \
   86.22 -+		src/s390/ffi.c src/s390/sysv.S \
   86.23 -+		src/sh/ffi.c src/sh/sysv.S
   86.24 - 
   86.25 - VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
   86.26 - 
   86.27 -@@ -83,6 +86,7 @@
   86.28 - ffitest_LDFLAGS = -shared-libgcc
   86.29 - 
   86.30 - TARGET_SRC_MIPS_GCC = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
   86.31 -+TARGET_SRC_MIPS_LINUX = src/mips/ffi.c src/mips/o32.S
   86.32 - TARGET_SRC_MIPS_SGI = src/mips/ffi.c src/mips/o32.s src/mips/n32.s
   86.33 - TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S
   86.34 - TARGET_SRC_X86_WIN32 = src/x86/ffi.c src/x86/win32.S
   86.35 -@@ -91,9 +95,12 @@
   86.36 - TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S
   86.37 - TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S
   86.38 - TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
   86.39 --TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closures.S
   86.40 -+TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
   86.41 - TARGET_SRC_POWERPC_DARWIN = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
   86.42 - TARGET_SRC_ARM =  src/arm/sysv.S src/arm/ffi.c
   86.43 -+TARGET_SRC_S390 =  src/s390/sysv.S src/s390/ffi.c
   86.44 -+TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
   86.45 -+TARGET_SRC_SH =  src/sh/sysv.S src/sh/ffi.c
   86.46 - 
   86.47 - ##libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c $(TARGET_SRC_@TARGET@)
   86.48 - ## Work around automake deficiency
   86.49 -@@ -103,6 +110,10 @@
   86.50 - libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
   86.51 - libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
   86.52 - endif
   86.53 -+if MIPS_LINUX
   86.54 -+libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
   86.55 -+libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
   86.56 -+endif
   86.57 - if MIPS_SGI
   86.58 - libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
   86.59 - libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
   86.60 -@@ -147,6 +158,18 @@
   86.61 - libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
   86.62 - libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
   86.63 - endif
   86.64 -+if S390
   86.65 -+libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
   86.66 -+libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
   86.67 -+endif
   86.68 -+if X86_64
   86.69 -+libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
   86.70 -+libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
   86.71 -+endif
   86.72 -+if SH
   86.73 -+libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
   86.74 -+libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
   86.75 -+endif
   86.76 - 
   86.77 - AM_CFLAGS = -fexceptions
   86.78 - 
   86.79 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/Makefile.in gcc/libffi/Makefile.in
   86.80 ---- gcc-3.2.2.orig/libffi/Makefile.in	Wed Jan 29 07:59:05 2003
   86.81 -+++ gcc/libffi/Makefile.in	Wed Jan 29 07:58:58 2003
   86.82 -@@ -91,14 +91,17 @@
   86.83 - 		src/mips/n32.s src/mips/o32.S src/mips/o32.s \
   86.84 - 		src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S \
   86.85 - 		src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \
   86.86 -+		src/x86/ffi64.c src/x86/unix64.S \
   86.87 - 		src/alpha/ffi.c src/alpha/osf.S \
   86.88 - 		src/m68k/ffi.c src/m68k/sysv.S \
   86.89 - 		src/powerpc/ffi.c src/powerpc/sysv.S \
   86.90 - 		src/powerpc/ppc_closure.S src/powerpc/asm.h \
   86.91 - 		src/powerpc/ffi_darwin.c \
   86.92 - 		src/powerpc/darwin.S src/powerpc/aix.S \
   86.93 --		src/powerpc/darwin_closure.S src/powerpc/aix_closures.S \
   86.94 --		src/arm/ffi.c src/arm/sysv.S
   86.95 -+		src/powerpc/darwin_closure.S src/powerpc/aix_closure.S \
   86.96 -+		src/arm/ffi.c src/arm/sysv.S \
   86.97 -+		src/s390/ffi.c src/s390/sysv.S \
   86.98 -+		src/sh/ffi.c src/sh/sysv.S
   86.99 - 
  86.100 - 
  86.101 - VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
  86.102 -@@ -162,6 +165,7 @@
  86.103 - ffitest_LDFLAGS = -shared-libgcc
  86.104 - 
  86.105 - TARGET_SRC_MIPS_GCC = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
  86.106 -+TARGET_SRC_MIPS_LINUX = src/mips/ffi.c src/mips/o32.S
  86.107 - TARGET_SRC_MIPS_SGI = src/mips/ffi.c src/mips/o32.s src/mips/n32.s
  86.108 - TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S
  86.109 - TARGET_SRC_X86_WIN32 = src/x86/ffi.c src/x86/win32.S
  86.110 -@@ -170,14 +174,18 @@
  86.111 - TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S
  86.112 - TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S
  86.113 - TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
  86.114 --TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closures.S
  86.115 -+TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
  86.116 - TARGET_SRC_POWERPC_DARWIN = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
  86.117 - TARGET_SRC_ARM = src/arm/sysv.S src/arm/ffi.c
  86.118 -+TARGET_SRC_S390 = src/s390/sysv.S src/s390/ffi.c
  86.119 -+TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
  86.120 -+TARGET_SRC_SH = src/sh/sysv.S src/sh/ffi.c
  86.121 - 
  86.122 - libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
  86.123 - 		src/raw_api.c src/java_raw_api.c
  86.124 - 
  86.125 - @MIPS_GCC_TRUE@libffi_la_SOURCES = @MIPS_GCC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
  86.126 -+@MIPS_LINUX_TRUE@libffi_la_SOURCES = @MIPS_LINUX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
  86.127 - @MIPS_SGI_TRUE@libffi_la_SOURCES = @MIPS_SGI_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
  86.128 - @X86_TRUE@libffi_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
  86.129 - @X86_WIN32_TRUE@libffi_la_SOURCES = @X86_WIN32_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
  86.130 -@@ -189,7 +197,11 @@
  86.131 - @POWERPC_AIX_TRUE@libffi_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
  86.132 - @POWERPC_DARWIN_TRUE@libffi_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
  86.133 - @ARM_TRUE@libffi_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
  86.134 -+@S390_TRUE@libffi_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
  86.135 -+@X86_64_TRUE@libffi_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
  86.136 -+@SH_TRUE@libffi_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
  86.137 - @MIPS_GCC_TRUE@libffi_convenience_la_SOURCES = @MIPS_GCC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
  86.138 -+@MIPS_LINUX_TRUE@libffi_convenience_la_SOURCES = @MIPS_LINUX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
  86.139 - @MIPS_SGI_TRUE@libffi_convenience_la_SOURCES = @MIPS_SGI_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
  86.140 - @X86_TRUE@libffi_convenience_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
  86.141 - @X86_WIN32_TRUE@libffi_convenience_la_SOURCES = @X86_WIN32_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
  86.142 -@@ -201,6 +213,9 @@
  86.143 - @POWERPC_AIX_TRUE@libffi_convenience_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
  86.144 - @POWERPC_DARWIN_TRUE@libffi_convenience_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
  86.145 - @ARM_TRUE@libffi_convenience_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
  86.146 -+@S390_TRUE@libffi_convenience_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
  86.147 -+@X86_64_TRUE@libffi_convenience_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
  86.148 -+@SH_TRUE@libfficonvenience_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
  86.149 - 
  86.150 - AM_CFLAGS = -fexceptions
  86.151 - 
  86.152 -@@ -208,7 +223,7 @@
  86.153 - 
  86.154 - INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
  86.155 - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
  86.156 --mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
  86.157 -+mkinstalldirs = $(SHELL) $(top_srcdir)/${libffi_basedir}/../mkinstalldirs
  86.158 - CONFIG_HEADER = fficonfig.h
  86.159 - CONFIG_CLEAN_FILES = 
  86.160 - LTLIBRARIES =  $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
  86.161 -@@ -220,10 +235,6 @@
  86.162 - LIBS = @LIBS@
  86.163 - libffi_convenience_la_LDFLAGS = 
  86.164 - libffi_convenience_la_LIBADD = 
  86.165 --@POWERPC_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.166 --@POWERPC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.167 --@POWERPC_TRUE@src/java_raw_api.lo src/powerpc/ffi.lo \
  86.168 --@POWERPC_TRUE@src/powerpc/sysv.lo src/powerpc/ppc_closure.lo
  86.169 - @ALPHA_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.170 - @ALPHA_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.171 - @ALPHA_TRUE@src/java_raw_api.lo src/alpha/ffi.lo src/alpha/osf.lo
  86.172 -@@ -234,12 +245,29 @@
  86.173 - @MIPS_GCC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.174 - @MIPS_GCC_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
  86.175 - @MIPS_GCC_TRUE@src/mips/n32.lo
  86.176 --@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.177 --@X86_WIN32_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.178 --@X86_WIN32_TRUE@src/java_raw_api.lo src/x86/ffi.lo src/x86/win32.lo
  86.179 -+@S390_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.180 -+@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.181 -+@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
  86.182 - @M68K_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.183 - @M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.184 - @M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
  86.185 -+@X86_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.186 -+@X86_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.187 -+@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo
  86.188 -+@POWERPC_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.189 -+@POWERPC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.190 -+@POWERPC_TRUE@src/java_raw_api.lo src/powerpc/ffi.lo \
  86.191 -+@POWERPC_TRUE@src/powerpc/sysv.lo src/powerpc/ppc_closure.lo
  86.192 -+@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.193 -+@MIPS_LINUX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.194 -+@MIPS_LINUX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo
  86.195 -+@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.196 -+@X86_WIN32_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.197 -+@X86_WIN32_TRUE@src/java_raw_api.lo src/x86/ffi.lo src/x86/win32.lo
  86.198 -+@X86_64_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.199 -+@X86_64_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.200 -+@X86_64_TRUE@src/java_raw_api.lo src/x86/ffi64.lo src/x86/unix64.lo \
  86.201 -+@X86_64_TRUE@src/x86/ffi.lo src/x86/sysv.lo
  86.202 - @SPARC_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.203 - @SPARC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.204 - @SPARC_TRUE@src/java_raw_api.lo src/sparc/ffi.lo src/sparc/v8.lo \
  86.205 -@@ -247,62 +275,75 @@
  86.206 - @POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.207 - @POWERPC_AIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.208 - @POWERPC_AIX_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
  86.209 --@POWERPC_AIX_TRUE@src/powerpc/aix.lo src/powerpc/aix_closures.lo
  86.210 --@X86_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.211 --@X86_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.212 --@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo
  86.213 --@ARM_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.214 --@ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.215 --@ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo
  86.216 -+@POWERPC_AIX_TRUE@src/powerpc/aix.lo src/powerpc/aix_closure.lo
  86.217 -+@MIPS_SGI_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.218 -+@MIPS_SGI_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.219 -+@MIPS_SGI_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
  86.220 -+@MIPS_SGI_TRUE@src/mips/n32.lo
  86.221 - @POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.222 - @POWERPC_DARWIN_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.223 - @POWERPC_DARWIN_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
  86.224 - @POWERPC_DARWIN_TRUE@src/powerpc/darwin.lo \
  86.225 - @POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
  86.226 --@MIPS_SGI_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
  86.227 --@MIPS_SGI_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
  86.228 --@MIPS_SGI_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
  86.229 --@MIPS_SGI_TRUE@src/mips/n32.lo
  86.230 -+@ARM_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.231 -+@ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.232 -+@ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo
  86.233 -+@SH_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.234 -+@SH_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.235 -+@SH_TRUE@src/sh/sysv.lo src/sh/ffi.lo
  86.236 - libffi_la_LIBADD = 
  86.237 -+@SH_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
  86.238 -+@SH_TRUE@src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo \
  86.239 -+@SH_TRUE@src/sh/ffi.lo
  86.240 -+@IA64_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.241 -+@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.242 -+@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo
  86.243 -+@X86_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
  86.244 -+@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \
  86.245 -+@X86_TRUE@src/x86/sysv.lo
  86.246 - @POWERPC_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.247 - @POWERPC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.248 - @POWERPC_TRUE@src/powerpc/ffi.lo src/powerpc/sysv.lo \
  86.249 - @POWERPC_TRUE@src/powerpc/ppc_closure.lo
  86.250 --@ALPHA_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.251 --@ALPHA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.252 --@ALPHA_TRUE@src/alpha/ffi.lo src/alpha/osf.lo
  86.253 --@IA64_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.254 --@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.255 --@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo
  86.256 --@MIPS_GCC_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.257 --@MIPS_GCC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.258 --@MIPS_GCC_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
  86.259 --@X86_WIN32_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.260 --@X86_WIN32_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.261 --@X86_WIN32_TRUE@src/x86/ffi.lo src/x86/win32.lo
  86.262 --@M68K_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.263 --@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.264 --@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
  86.265 -+@MIPS_LINUX_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.266 -+@MIPS_LINUX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.267 -+@MIPS_LINUX_TRUE@src/mips/ffi.lo src/mips/o32.lo
  86.268 - @SPARC_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.269 - @SPARC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.270 - @SPARC_TRUE@src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo
  86.271 - @POWERPC_AIX_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.272 - @POWERPC_AIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.273 - @POWERPC_AIX_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/aix.lo \
  86.274 --@POWERPC_AIX_TRUE@src/powerpc/aix_closures.lo
  86.275 --@X86_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
  86.276 --@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \
  86.277 --@X86_TRUE@src/x86/sysv.lo
  86.278 -+@POWERPC_AIX_TRUE@src/powerpc/aix_closure.lo
  86.279 -+@MIPS_SGI_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.280 -+@MIPS_SGI_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.281 -+@MIPS_SGI_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
  86.282 - @ARM_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
  86.283 - @ARM_TRUE@src/raw_api.lo src/java_raw_api.lo src/arm/sysv.lo \
  86.284 - @ARM_TRUE@src/arm/ffi.lo
  86.285 -+@ALPHA_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.286 -+@ALPHA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.287 -+@ALPHA_TRUE@src/alpha/ffi.lo src/alpha/osf.lo
  86.288 -+@MIPS_GCC_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.289 -+@MIPS_GCC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.290 -+@MIPS_GCC_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
  86.291 -+@S390_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.292 -+@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.293 -+@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
  86.294 -+@M68K_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.295 -+@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.296 -+@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
  86.297 -+@X86_WIN32_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.298 -+@X86_WIN32_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.299 -+@X86_WIN32_TRUE@src/x86/ffi.lo src/x86/win32.lo
  86.300 -+@X86_64_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.301 -+@X86_64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.302 -+@X86_64_TRUE@src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo \
  86.303 -+@X86_64_TRUE@src/x86/sysv.lo
  86.304 - @POWERPC_DARWIN_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.305 - @POWERPC_DARWIN_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.306 - @POWERPC_DARWIN_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/darwin.lo \
  86.307 - @POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
  86.308 --@MIPS_SGI_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
  86.309 --@MIPS_SGI_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
  86.310 --@MIPS_SGI_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
  86.311 - noinst_PROGRAMS =  ffitest$(EXEEXT)
  86.312 - PROGRAMS =  $(noinst_PROGRAMS)
  86.313 - 
  86.314 -@@ -578,8 +616,8 @@
  86.315 - 	-chmod 777 $(distdir)
  86.316 - 	$(mkinstalldirs) $(distdir)/src/alpha $(distdir)/src/arm \
  86.317 - 	   $(distdir)/src/m68k $(distdir)/src/mips \
  86.318 --	   $(distdir)/src/powerpc $(distdir)/src/sparc \
  86.319 --	   $(distdir)/src/x86
  86.320 -+	   $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh \
  86.321 -+	   $(distdir)/src/sparc $(distdir)/src/x86
  86.322 - 	@for file in $(DISTFILES); do \
  86.323 - 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
  86.324 - 	  if test -d $$d/$$file; then \
  86.325 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/acinclude.m4 gcc/libffi/acinclude.m4
  86.326 ---- gcc-3.2.2.orig/libffi/acinclude.m4	Sun Sep 10 16:43:14 2000
  86.327 -+++ gcc/libffi/acinclude.m4	Tue Dec 17 03:22:47 2002
  86.328 -@@ -4,5 +4,8 @@
  86.329 - dnl to add a definition of LIBTOOL to Makefile.in.
  86.330 - ifelse(yes,no,[
  86.331 - AC_DEFUN([AC_PROG_LIBTOOL],)
  86.332 -+AC_DEFUN([AM_PROG_LIBTOOL],)
  86.333 - AC_SUBST(LIBTOOL)
  86.334 - ])
  86.335 -+
  86.336 -+sinclude(../config/accross.m4)
  86.337 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/aclocal.m4 gcc/libffi/aclocal.m4
  86.338 ---- gcc-3.2.2.orig/libffi/aclocal.m4	Fri Feb  1 07:25:31 2002
  86.339 -+++ gcc/libffi/aclocal.m4	Tue Dec 17 03:22:47 2002
  86.340 -@@ -1,6 +1,6 @@
  86.341 --dnl aclocal.m4 generated automatically by aclocal 1.4
  86.342 -+dnl aclocal.m4 generated automatically by aclocal 1.4-p5
  86.343 - 
  86.344 --dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
  86.345 -+dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
  86.346 - dnl This file is free software; the Free Software Foundation
  86.347 - dnl gives unlimited permission to copy and/or distribute it,
  86.348 - dnl with or without modifications, as long as this notice is preserved.
  86.349 -@@ -16,108 +16,15 @@
  86.350 - dnl to add a definition of LIBTOOL to Makefile.in.
  86.351 - ifelse(yes,no,[
  86.352 - AC_DEFUN([AC_PROG_LIBTOOL],)
  86.353 -+AC_DEFUN([AM_PROG_LIBTOOL],)
  86.354 - AC_SUBST(LIBTOOL)
  86.355 - ])
  86.356 - 
  86.357 --AC_DEFUN([AC_COMPILE_CHECK_SIZEOF],
  86.358 --[changequote(<<, >>)dnl
  86.359 --dnl The name to #define.
  86.360 --define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
  86.361 --dnl The cache variable name.
  86.362 --define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
  86.363 --changequote([, ])dnl
  86.364 --AC_MSG_CHECKING(size of $1)
  86.365 --AC_CACHE_VAL(AC_CV_NAME,
  86.366 --[for ac_size in 4 8 1 2 16 12 $2 ; do # List sizes in rough order of prevalence.
  86.367 --  AC_TRY_COMPILE([#include "confdefs.h"
  86.368 --#include <sys/types.h>
  86.369 --$2
  86.370 --], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
  86.371 --  if test x$AC_CV_NAME != x ; then break; fi
  86.372 --done
  86.373 --])
  86.374 --if test x$AC_CV_NAME = x ; then
  86.375 --  AC_MSG_ERROR([cannot determine a size for $1])
  86.376 --fi
  86.377 --AC_MSG_RESULT($AC_CV_NAME)
  86.378 --AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
  86.379 --undefine([AC_TYPE_NAME])dnl
  86.380 --undefine([AC_CV_NAME])dnl
  86.381 --])
  86.382 --
  86.383 --AC_DEFUN([AC_C_BIGENDIAN_CROSS],
  86.384 --[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
  86.385 --[ac_cv_c_bigendian=unknown
  86.386 --# See if sys/param.h defines the BYTE_ORDER macro.
  86.387 --AC_TRY_COMPILE([#include <sys/types.h>
  86.388 --#include <sys/param.h>], [
  86.389 --#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
  86.390 -- bogus endian macros
  86.391 --#endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
  86.392 --AC_TRY_COMPILE([#include <sys/types.h>
  86.393 --#include <sys/param.h>], [
  86.394 --#if BYTE_ORDER != BIG_ENDIAN
  86.395 -- not big endian
  86.396 --#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
  86.397 --if test $ac_cv_c_bigendian = unknown; then
  86.398 --AC_TRY_RUN([main () {
  86.399 --  /* Are we little or big endian?  From Harbison&Steele.  */
  86.400 --  union
  86.401 --  {
  86.402 --    long l;
  86.403 --    char c[sizeof (long)];
  86.404 --  } u;
  86.405 --  u.l = 1;
  86.406 --  exit (u.c[sizeof (long) - 1] == 1);
  86.407 --}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes,
  86.408 --[ echo $ac_n "cross-compiling... " 2>&AC_FD_MSG ])
  86.409 --fi])
  86.410 --if test $ac_cv_c_bigendian = unknown; then
  86.411 --AC_MSG_CHECKING(to probe for byte ordering)
  86.412 --[
  86.413 --cat >conftest.c <<EOF
  86.414 --short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
  86.415 --short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
  86.416 --void _ascii() { char* s = (char*) ascii_mm; s = (char*) ascii_ii; }
  86.417 --short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
  86.418 --short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
  86.419 --void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
  86.420 --int main() { _ascii (); _ebcdic (); return 0; }
  86.421 --EOF
  86.422 --] if test -f conftest.c ; then
  86.423 --     if ${CC-cc} ${CFLAGS} conftest.c -o conftest.o && test -f conftest.o ; then
  86.424 --        if test `grep -l BIGenDianSyS conftest.o` ; then
  86.425 --           echo $ac_n ' big endian probe OK, ' 1>&AC_FD_MSG
  86.426 --           ac_cv_c_bigendian=yes
  86.427 --        fi
  86.428 --        if test `grep -l LiTTleEnDian conftest.o` ; then
  86.429 --           echo $ac_n ' little endian probe OK, ' 1>&AC_FD_MSG
  86.430 --           if test $ac_cv_c_bigendian = yes ; then
  86.431 --            ac_cv_c_bigendian=unknown;
  86.432 --           else
  86.433 --            ac_cv_c_bigendian=no
  86.434 --           fi
  86.435 --        fi
  86.436 --        echo $ac_n 'guessing bigendian ...  ' >&AC_FD_MSG
  86.437 --     fi
  86.438 --  fi
  86.439 --AC_MSG_RESULT($ac_cv_c_bigendian)
  86.440 --fi
  86.441 --if test $ac_cv_c_bigendian = yes; then
  86.442 --  AC_DEFINE(WORDS_BIGENDIAN, 1, [whether byteorder is bigendian])
  86.443 --  BYTEORDER=4321
  86.444 --else
  86.445 --  BYTEORDER=1234
  86.446 --fi
  86.447 --AC_DEFINE_UNQUOTED(BYTEORDER, $BYTEORDER, [1234 = LIL_ENDIAN, 4321 = BIGENDIAN])
  86.448 --if test $ac_cv_c_bigendian = unknown; then
  86.449 --  AC_MSG_ERROR(unknown endianess - sorry, please pre-set ac_cv_c_bigendian)
  86.450 --fi
  86.451 --])
  86.452 -+sinclude(../config/accross.m4)
  86.453 - 
  86.454 - # Like AC_CONFIG_HEADER, but automatically create stamp file.
  86.455 - 
  86.456 --AC_DEFUN(AM_CONFIG_HEADER,
  86.457 -+AC_DEFUN([AM_CONFIG_HEADER],
  86.458 - [AC_PREREQ([2.12])
  86.459 - AC_CONFIG_HEADER([$1])
  86.460 - dnl When config.status generates a header, we must update the stamp-h file.
  86.461 -@@ -147,7 +54,7 @@
  86.462 - dnl Usage:
  86.463 - dnl AM_INIT_AUTOMAKE(package,version, [no-define])
  86.464 - 
  86.465 --AC_DEFUN(AM_INIT_AUTOMAKE,
  86.466 -+AC_DEFUN([AM_INIT_AUTOMAKE],
  86.467 - [AC_REQUIRE([AC_PROG_INSTALL])
  86.468 - PACKAGE=[$1]
  86.469 - AC_SUBST(PACKAGE)
  86.470 -@@ -175,7 +82,7 @@
  86.471 - # Check to make sure that the build environment is sane.
  86.472 - #
  86.473 - 
  86.474 --AC_DEFUN(AM_SANITY_CHECK,
  86.475 -+AC_DEFUN([AM_SANITY_CHECK],
  86.476 - [AC_MSG_CHECKING([whether build environment is sane])
  86.477 - # Just in case
  86.478 - sleep 1
  86.479 -@@ -216,7 +123,7 @@
  86.480 - 
  86.481 - dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
  86.482 - dnl The program must properly implement --version.
  86.483 --AC_DEFUN(AM_MISSING_PROG,
  86.484 -+AC_DEFUN([AM_MISSING_PROG],
  86.485 - [AC_MSG_CHECKING(for working $2)
  86.486 - # Run test in a subshell; some versions of sh will print an error if
  86.487 - # an executable is not found, even if stderr is redirected.
  86.488 -@@ -235,7 +142,7 @@
  86.489 - 
  86.490 - # serial 1
  86.491 - 
  86.492 --AC_DEFUN(AM_MAINTAINER_MODE,
  86.493 -+AC_DEFUN([AM_MAINTAINER_MODE],
  86.494 - [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
  86.495 -   dnl maintainer-mode is disabled by default
  86.496 -   AC_ARG_ENABLE(maintainer-mode,
  86.497 -@@ -252,7 +159,7 @@
  86.498 - 
  86.499 - # Define a conditional.
  86.500 - 
  86.501 --AC_DEFUN(AM_CONDITIONAL,
  86.502 -+AC_DEFUN([AM_CONDITIONAL],
  86.503 - [AC_SUBST($1_TRUE)
  86.504 - AC_SUBST($1_FALSE)
  86.505 - if $2; then
  86.506 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/configure gcc/libffi/configure
  86.507 ---- gcc-3.2.2.orig/libffi/configure	Wed Jan 29 07:59:05 2003
  86.508 -+++ gcc/libffi/configure	Sat Feb  1 20:16:19 2003
  86.509 -@@ -633,17 +633,16 @@
  86.510 - 
  86.511 - if test "${srcdir}" = "."; then
  86.512 -   if test "${with_target_subdir}" != "."; then
  86.513 --    libffi_basedir="${srcdir}/${with_multisrctop}.."
  86.514 -+    libffi_basedir="${with_multisrctop}../"
  86.515 -   else
  86.516 --    libffi_basedir="${srcdir}/${with_multisrctop}"
  86.517 -+    libffi_basedir="${with_multisrctop}"
  86.518 -   fi
  86.519 - else
  86.520 --  libffi_basedir="${srcdir}"
  86.521 -+  libffi_basedir=
  86.522 - fi
  86.523 - 
  86.524 --
  86.525 - ac_aux_dir=
  86.526 --for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
  86.527 -+for ac_dir in ${libffi_basedir}.. $srcdir/${libffi_basedir}..; do
  86.528 -   if test -f $ac_dir/install-sh; then
  86.529 -     ac_aux_dir=$ac_dir
  86.530 -     ac_install_sh="$ac_aux_dir/install-sh -c"
  86.531 -@@ -655,13 +654,14 @@
  86.532 -   fi
  86.533 - done
  86.534 - if test -z "$ac_aux_dir"; then
  86.535 --  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
  86.536 -+  { echo "configure: error: can not find install-sh or install.sh in ${libffi_basedir}.. $srcdir/${libffi_basedir}.." 1>&2; exit 1; }
  86.537 - fi
  86.538 - ac_config_guess=$ac_aux_dir/config.guess
  86.539 - ac_config_sub=$ac_aux_dir/config.sub
  86.540 - ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
  86.541 - 
  86.542 - 
  86.543 -+
  86.544 - # Make sure we can run config.sub.
  86.545 - if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
  86.546 - else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
  86.547 -@@ -1238,9 +1238,18 @@
  86.548 -   ;;
  86.549 - 
  86.550 - hpux10.20*|hpux11*)
  86.551 --  lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
  86.552 --  lt_cv_file_magic_cmd=/usr/bin/file
  86.553 --  lt_cv_file_magic_test_file=/usr/lib/libc.sl
  86.554 -+  case $host_cpu in
  86.555 -+  hppa*)
  86.556 -+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
  86.557 -+    lt_cv_file_magic_cmd=/usr/bin/file
  86.558 -+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
  86.559 -+    ;;
  86.560 -+  ia64*)
  86.561 -+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
  86.562 -+    lt_cv_file_magic_cmd=/usr/bin/file
  86.563 -+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
  86.564 -+    ;;
  86.565 -+  esac
  86.566 -   ;;
  86.567 - 
  86.568 - irix5* | irix6*)
  86.569 -@@ -1267,7 +1276,7 @@
  86.570 - # This must be Linux ELF.
  86.571 - linux-gnu*)
  86.572 -   case $host_cpu in
  86.573 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
  86.574 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
  86.575 -     lt_cv_deplibs_check_method=pass_all ;;
  86.576 -   *)
  86.577 -     # glibc up to 2.1.1 does not perform some relocations on ARM
  86.578 -@@ -1330,13 +1339,13 @@
  86.579 - deplibs_check_method=$lt_cv_deplibs_check_method
  86.580 - 
  86.581 - echo $ac_n "checking for object suffix""... $ac_c" 1>&6
  86.582 --echo "configure:1334: checking for object suffix" >&5
  86.583 -+echo "configure:1343: checking for object suffix" >&5
  86.584 - if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
  86.585 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.586 - else
  86.587 -   rm -f conftest*
  86.588 - echo 'int i = 1;' > conftest.$ac_ext
  86.589 --if { (eval echo configure:1340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  86.590 -+if { (eval echo configure:1349: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  86.591 -   for ac_file in conftest.*; do
  86.592 -     case $ac_file in
  86.593 -     *.c) ;;
  86.594 -@@ -1356,7 +1365,7 @@
  86.595 - 
  86.596 - 
  86.597 - echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
  86.598 --echo "configure:1360: checking for executable suffix" >&5
  86.599 -+echo "configure:1369: checking for executable suffix" >&5
  86.600 - if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
  86.601 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.602 - else
  86.603 -@@ -1366,7 +1375,7 @@
  86.604 -   rm -f conftest*
  86.605 -   echo 'int main () { return 0; }' > conftest.$ac_ext
  86.606 -   ac_cv_exeext=
  86.607 --  if { (eval echo configure:1370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
  86.608 -+  if { (eval echo configure:1379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
  86.609 -     for file in conftest.*; do
  86.610 -       case $file in
  86.611 -       *.c | *.o | *.obj) ;;
  86.612 -@@ -1399,7 +1408,7 @@
  86.613 - file_magic*)
  86.614 -   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
  86.615 -     echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
  86.616 --echo "configure:1403: checking for ${ac_tool_prefix}file" >&5
  86.617 -+echo "configure:1412: checking for ${ac_tool_prefix}file" >&5
  86.618 - if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
  86.619 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.620 - else
  86.621 -@@ -1461,7 +1470,7 @@
  86.622 - if test -z "$lt_cv_path_MAGIC_CMD"; then
  86.623 -   if test -n "$ac_tool_prefix"; then
  86.624 -     echo $ac_n "checking for file""... $ac_c" 1>&6
  86.625 --echo "configure:1465: checking for file" >&5
  86.626 -+echo "configure:1474: checking for file" >&5
  86.627 - if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
  86.628 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.629 - else
  86.630 -@@ -1532,7 +1541,7 @@
  86.631 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
  86.632 - set dummy ${ac_tool_prefix}ranlib; ac_word=$2
  86.633 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.634 --echo "configure:1536: checking for $ac_word" >&5
  86.635 -+echo "configure:1545: checking for $ac_word" >&5
  86.636 - if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
  86.637 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.638 - else
  86.639 -@@ -1564,7 +1573,7 @@
  86.640 -   # Extract the first word of "ranlib", so it can be a program name with args.
  86.641 - set dummy ranlib; ac_word=$2
  86.642 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.643 --echo "configure:1568: checking for $ac_word" >&5
  86.644 -+echo "configure:1577: checking for $ac_word" >&5
  86.645 - if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
  86.646 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.647 - else
  86.648 -@@ -1599,7 +1608,7 @@
  86.649 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
  86.650 - set dummy ${ac_tool_prefix}strip; ac_word=$2
  86.651 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.652 --echo "configure:1603: checking for $ac_word" >&5
  86.653 -+echo "configure:1612: checking for $ac_word" >&5
  86.654 - if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
  86.655 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.656 - else
  86.657 -@@ -1631,7 +1640,7 @@
  86.658 -   # Extract the first word of "strip", so it can be a program name with args.
  86.659 - set dummy strip; ac_word=$2
  86.660 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.661 --echo "configure:1635: checking for $ac_word" >&5
  86.662 -+echo "configure:1644: checking for $ac_word" >&5
  86.663 - if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
  86.664 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.665 - else
  86.666 -@@ -1698,8 +1707,8 @@
  86.667 - case $host in
  86.668 - *-*-irix6*)
  86.669 -   # Find out which ABI we are using.
  86.670 --  echo '#line 1702 "configure"' > conftest.$ac_ext
  86.671 --  if { (eval echo configure:1703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  86.672 -+  echo '#line 1711 "configure"' > conftest.$ac_ext
  86.673 -+  if { (eval echo configure:1712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  86.674 -     case `/usr/bin/file conftest.$ac_objext` in
  86.675 -     *32-bit*)
  86.676 -       LD="${LD-ld} -32"
  86.677 -@@ -1715,12 +1724,70 @@
  86.678 -   rm -rf conftest*
  86.679 -   ;;
  86.680 - 
  86.681 -+ia64-*-hpux*)
  86.682 -+  # Find out which ABI we are using.
  86.683 -+  echo 'int i;' > conftest.$ac_ext
  86.684 -+  if { (eval echo configure:1731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  86.685 -+    case "`/usr/bin/file conftest.o`" in
  86.686 -+    *ELF-32*)
  86.687 -+      HPUX_IA64_MODE="32"
  86.688 -+      ;;
  86.689 -+    *ELF-64*)
  86.690 -+      HPUX_IA64_MODE="64"
  86.691 -+      ;;
  86.692 -+    esac
  86.693 -+  fi
  86.694 -+  rm -rf conftest*
  86.695 -+  ;;
  86.696 -+
  86.697 -+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
  86.698 -+  # Find out which ABI we are using.
  86.699 -+  echo 'int i;' > conftest.$ac_ext
  86.700 -+  if { (eval echo configure:1747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
  86.701 -+    case "`/usr/bin/file conftest.o`" in
  86.702 -+    *32-bit*)
  86.703 -+      case $host in
  86.704 -+        x86_64-*linux*)
  86.705 -+          LD="${LD-ld} -m elf_i386"
  86.706 -+          ;;
  86.707 -+        ppc64-*linux*)
  86.708 -+          LD="${LD-ld} -m elf32ppclinux"
  86.709 -+          ;;
  86.710 -+        s390x-*linux*)
  86.711 -+          LD="${LD-ld} -m elf_s390"
  86.712 -+          ;;
  86.713 -+        sparc64-*linux*)
  86.714 -+          LD="${LD-ld} -m elf32_sparc"
  86.715 -+          ;;
  86.716 -+      esac
  86.717 -+      ;;
  86.718 -+    *64-bit*)
  86.719 -+      case $host in
  86.720 -+        x86_64-*linux*)
  86.721 -+          LD="${LD-ld} -m elf_x86_64"
  86.722 -+          ;;
  86.723 -+        ppc*-*linux*|powerpc*-*linux*)
  86.724 -+          LD="${LD-ld} -m elf64ppc"
  86.725 -+          ;;
  86.726 -+        s390*-*linux*)
  86.727 -+          LD="${LD-ld} -m elf64_s390"
  86.728 -+          ;;
  86.729 -+        sparc*-*linux*)
  86.730 -+          LD="${LD-ld} -m elf64_sparc"
  86.731 -+          ;;
  86.732 -+      esac
  86.733 -+      ;;
  86.734 -+    esac
  86.735 -+  fi
  86.736 -+  rm -rf conftest*
  86.737 -+  ;;
  86.738 -+
  86.739 - *-*-sco3.2v5*)
  86.740 -   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
  86.741 -   SAVE_CFLAGS="$CFLAGS"
  86.742 -   CFLAGS="$CFLAGS -belf"
  86.743 -   echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
  86.744 --echo "configure:1724: checking whether the C compiler needs -belf" >&5
  86.745 -+echo "configure:1791: checking whether the C compiler needs -belf" >&5
  86.746 - if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
  86.747 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.748 - else
  86.749 -@@ -1733,14 +1800,14 @@
  86.750 - cross_compiling=$ac_cv_prog_cc_cross
  86.751 - 
  86.752 -      cat > conftest.$ac_ext <<EOF
  86.753 --#line 1737 "configure"
  86.754 -+#line 1804 "configure"
  86.755 - #include "confdefs.h"
  86.756 - 
  86.757 - int main() {
  86.758 - 
  86.759 - ; return 0; }
  86.760 - EOF
  86.761 --if { (eval echo configure:1744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  86.762 -+if { (eval echo configure:1811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  86.763 -   rm -rf conftest*
  86.764 -   lt_cv_cc_needs_belf=yes
  86.765 - else
  86.766 -@@ -1868,7 +1935,7 @@
  86.767 - # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
  86.768 - # ./install, which can be erroneously created by make from ./install.sh.
  86.769 - echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
  86.770 --echo "configure:1872: checking for a BSD compatible install" >&5
  86.771 -+echo "configure:1939: checking for a BSD compatible install" >&5
  86.772 - if test -z "$INSTALL"; then
  86.773 - if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
  86.774 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.775 -@@ -1921,7 +1988,7 @@
  86.776 - test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
  86.777 - 
  86.778 - echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
  86.779 --echo "configure:1925: checking whether build environment is sane" >&5
  86.780 -+echo "configure:1992: checking whether build environment is sane" >&5
  86.781 - # Just in case
  86.782 - sleep 1
  86.783 - echo timestamp > conftestfile
  86.784 -@@ -1978,7 +2045,7 @@
  86.785 - test "$program_transform_name" = "" && program_transform_name="s,x,x,"
  86.786 - 
  86.787 - echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
  86.788 --echo "configure:1982: checking whether ${MAKE-make} sets \${MAKE}" >&5
  86.789 -+echo "configure:2049: checking whether ${MAKE-make} sets \${MAKE}" >&5
  86.790 - set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
  86.791 - if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
  86.792 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.793 -@@ -2017,7 +2084,7 @@
  86.794 - 
  86.795 - missing_dir=`cd $ac_aux_dir && pwd`
  86.796 - echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
  86.797 --echo "configure:2021: checking for working aclocal" >&5
  86.798 -+echo "configure:2088: checking for working aclocal" >&5
  86.799 - # Run test in a subshell; some versions of sh will print an error if
  86.800 - # an executable is not found, even if stderr is redirected.
  86.801 - # Redirect stdin to placate older versions of autoconf.  Sigh.
  86.802 -@@ -2030,7 +2097,7 @@
  86.803 - fi
  86.804 - 
  86.805 - echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
  86.806 --echo "configure:2034: checking for working autoconf" >&5
  86.807 -+echo "configure:2101: checking for working autoconf" >&5
  86.808 - # Run test in a subshell; some versions of sh will print an error if
  86.809 - # an executable is not found, even if stderr is redirected.
  86.810 - # Redirect stdin to placate older versions of autoconf.  Sigh.
  86.811 -@@ -2043,7 +2110,7 @@
  86.812 - fi
  86.813 - 
  86.814 - echo $ac_n "checking for working automake""... $ac_c" 1>&6
  86.815 --echo "configure:2047: checking for working automake" >&5
  86.816 -+echo "configure:2114: checking for working automake" >&5
  86.817 - # Run test in a subshell; some versions of sh will print an error if
  86.818 - # an executable is not found, even if stderr is redirected.
  86.819 - # Redirect stdin to placate older versions of autoconf.  Sigh.
  86.820 -@@ -2056,7 +2123,7 @@
  86.821 - fi
  86.822 - 
  86.823 - echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
  86.824 --echo "configure:2060: checking for working autoheader" >&5
  86.825 -+echo "configure:2127: checking for working autoheader" >&5
  86.826 - # Run test in a subshell; some versions of sh will print an error if
  86.827 - # an executable is not found, even if stderr is redirected.
  86.828 - # Redirect stdin to placate older versions of autoconf.  Sigh.
  86.829 -@@ -2069,7 +2136,7 @@
  86.830 - fi
  86.831 - 
  86.832 - echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
  86.833 --echo "configure:2073: checking for working makeinfo" >&5
  86.834 -+echo "configure:2140: checking for working makeinfo" >&5
  86.835 - # Run test in a subshell; some versions of sh will print an error if
  86.836 - # an executable is not found, even if stderr is redirected.
  86.837 - # Redirect stdin to placate older versions of autoconf.  Sigh.
  86.838 -@@ -2086,7 +2153,7 @@
  86.839 - 
  86.840 - 
  86.841 - echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
  86.842 --echo "configure:2090: checking for executable suffix" >&5
  86.843 -+echo "configure:2157: checking for executable suffix" >&5
  86.844 - if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
  86.845 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.846 - else
  86.847 -@@ -2096,7 +2163,7 @@
  86.848 -   rm -f conftest*
  86.849 -   echo 'int main () { return 0; }' > conftest.$ac_ext
  86.850 -   ac_cv_exeext=
  86.851 --  if { (eval echo configure:2100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
  86.852 -+  if { (eval echo configure:2167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
  86.853 -     for file in conftest.*; do
  86.854 -       case $file in
  86.855 -       *.c | *.o | *.obj) ;;
  86.856 -@@ -2117,7 +2184,7 @@
  86.857 - ac_exeext=$EXEEXT
  86.858 - 
  86.859 - echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
  86.860 --echo "configure:2121: checking whether to enable maintainer-specific portions of Makefiles" >&5
  86.861 -+echo "configure:2188: checking whether to enable maintainer-specific portions of Makefiles" >&5
  86.862 -     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
  86.863 - if test "${enable_maintainer_mode+set}" = set; then
  86.864 -   enableval="$enable_maintainer_mode"
  86.865 -@@ -2143,7 +2210,7 @@
  86.866 - # Extract the first word of "gcc", so it can be a program name with args.
  86.867 - set dummy gcc; ac_word=$2
  86.868 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.869 --echo "configure:2147: checking for $ac_word" >&5
  86.870 -+echo "configure:2214: checking for $ac_word" >&5
  86.871 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
  86.872 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.873 - else
  86.874 -@@ -2173,7 +2240,7 @@
  86.875 -   # Extract the first word of "cc", so it can be a program name with args.
  86.876 - set dummy cc; ac_word=$2
  86.877 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.878 --echo "configure:2177: checking for $ac_word" >&5
  86.879 -+echo "configure:2244: checking for $ac_word" >&5
  86.880 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
  86.881 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.882 - else
  86.883 -@@ -2224,7 +2291,7 @@
  86.884 -       # Extract the first word of "cl", so it can be a program name with args.
  86.885 - set dummy cl; ac_word=$2
  86.886 - echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
  86.887 --echo "configure:2228: checking for $ac_word" >&5
  86.888 -+echo "configure:2295: checking for $ac_word" >&5
  86.889 - if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
  86.890 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.891 - else
  86.892 -@@ -2256,7 +2323,7 @@
  86.893 - fi
  86.894 - 
  86.895 - echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
  86.896 --echo "configure:2260: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
  86.897 -+echo "configure:2327: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
  86.898 - 
  86.899 - ac_ext=c
  86.900 - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
  86.901 -@@ -2267,12 +2334,12 @@
  86.902 - 
  86.903 - cat > conftest.$ac_ext << EOF
  86.904 - 
  86.905 --#line 2271 "configure"
  86.906 -+#line 2338 "configure"
  86.907 - #include "confdefs.h"
  86.908 - 
  86.909 - main(){return(0);}
  86.910 - EOF
  86.911 --if { (eval echo configure:2276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  86.912 -+if { (eval echo configure:2343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
  86.913 -   ac_cv_prog_cc_works=yes
  86.914 -   # If we can't run a trivial program, we are probably using a cross compiler.
  86.915 -   if (./conftest; exit) 2>/dev/null; then
  86.916 -@@ -2298,12 +2365,12 @@
  86.917 -   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
  86.918 - fi
  86.919 - echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
  86.920 --echo "configure:2302: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
  86.921 -+echo "configure:2369: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
  86.922 - echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
  86.923 - cross_compiling=$ac_cv_prog_cc_cross
  86.924 - 
  86.925 - echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
  86.926 --echo "configure:2307: checking whether we are using GNU C" >&5
  86.927 -+echo "configure:2374: checking whether we are using GNU C" >&5
  86.928 - if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
  86.929 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.930 - else
  86.931 -@@ -2312,7 +2379,7 @@
  86.932 -   yes;
  86.933 - #endif
  86.934 - EOF
  86.935 --if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2316: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
  86.936 -+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2383: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
  86.937 -   ac_cv_prog_gcc=yes
  86.938 - else
  86.939 -   ac_cv_prog_gcc=no
  86.940 -@@ -2331,7 +2398,7 @@
  86.941 - ac_save_CFLAGS="$CFLAGS"
  86.942 - CFLAGS=
  86.943 - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
  86.944 --echo "configure:2335: checking whether ${CC-cc} accepts -g" >&5
  86.945 -+echo "configure:2402: checking whether ${CC-cc} accepts -g" >&5
  86.946 - if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
  86.947 -   echo $ac_n "(cached) $ac_c" 1>&6
  86.948 - else
  86.949 -@@ -2381,17 +2448,23 @@
  86.950 - i*86-*-mingw*) TARGET=X86_WIN32; TARGETDIR=x86;;
  86.951 - sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
  86.952 - sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
  86.953 --sparc-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
  86.954 --sparc64-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
  86.955 --alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd*) TARGET=ALPHA; TARGETDIR=alpha;;
  86.956 -+sparc-*-linux* | sparc-*-netbsdelf*) TARGET=SPARC; TARGETDIR=sparc;;
  86.957 -+sparc64-*-linux* | sparc64-*-netbsd*) TARGET=SPARC; TARGETDIR=sparc;;
  86.958 -+alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-netbsd*) TARGET=ALPHA; TARGETDIR=alpha;;
  86.959 - ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
  86.960 - m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
  86.961 -+mips64*-*);;
  86.962 -+mips*-*-linux*) TARGET=MIPS_LINUX; TARGETDIR=mips;;
  86.963 - powerpc-*-linux* | powerpc-*-sysv*) TARGET=POWERPC; TARGETDIR=powerpc;;
  86.964 - powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;;
  86.965 - powerpc-*-darwin*) TARGET=POWERPC_DARWIN; TARGETDIR=powerpc;;
  86.966 - powerpc-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
  86.967 - rs6000-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
  86.968 - arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;;
  86.969 -+s390-*-linux-*) TARGET=S390; TARGETDIR=s390;;
  86.970 -+s390x-*-linux-*) TARGET=S390; TARGETDIR=s390;;
  86.971 -+x86_64-*-linux*) TARGET=X86_64; TARGETDIR=x86;;
  86.972 -+sh-*-linux* | sh[34]*-*-linux*) TARGET=SH; TARGETDIR=sh;;
  86.973 - esac
  86.974 - 
  86.975 - if test $TARGETDIR = unknown; then
  86.976 -@@ -2418,6 +2491,15 @@
  86.977 - fi
  86.978 - 
  86.979 - 
  86.980 -+if test x$TARGET = xMIPS_LINUX; then
  86.981 -+  MIPS_LINUX_TRUE=
  86.982 -+  MIPS_LINUX_FALSE='#'
  86.983 -+else
  86.984 -+  MIPS_LINUX_TRUE='#'
  86.985 -+  MIPS_LINUX_FALSE=
  86.986 -+fi
  86.987 -+
  86.988 -+
  86.989 - if test x$TARGET = xSPARC; then
  86.990 -   SPARC_TRUE=
  86.991 -   SPARC_FALSE='#'
  86.992 -@@ -2507,8 +2589,39 @@
  86.993 -   ARM_FALSE=
  86.994 - fi
  86.995 - 
  86.996 -+
  86.997 -+if test x$TARGET = xS390; then
  86.998 -+  S390_TRUE=
  86.999 -+  S390_FALSE='#'
 86.1000 -+else
 86.1001 -+  S390_TRUE='#'
 86.1002 -+  S390_FALSE=
 86.1003 -+fi
 86.1004 -+
 86.1005 -+
 86.1006 -+if test x$TARGET = xX86_64; then
 86.1007 -+  X86_64_TRUE=
 86.1008 -+  X86_64_FALSE='#'
 86.1009 -+else
 86.1010 -+  X86_64_TRUE='#'
 86.1011 -+  X86_64_FALSE=
 86.1012 -+fi
 86.1013 -+
 86.1014 -+
 86.1015 -+if test x$TARGET = xSH; then
 86.1016 -+  SH_TRUE=
 86.1017 -+  SH_FALSE='#'
 86.1018 -+else
 86.1019 -+  SH_TRUE='#'
 86.1020 -+  SH_FALSE=
 86.1021 -+fi
 86.1022 -+
 86.1023 -+if test x$TARGET = xMIPS_LINUX; then
 86.1024 -+  TARGET=MIPS
 86.1025 -+fi
 86.1026 -+
 86.1027 - echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
 86.1028 --echo "configure:2512: checking how to run the C preprocessor" >&5
 86.1029 -+echo "configure:2625: checking how to run the C preprocessor" >&5
 86.1030 - # On Suns, sometimes $CPP names a directory.
 86.1031 - if test -n "$CPP" && test -d "$CPP"; then
 86.1032 -   CPP=
 86.1033 -@@ -2523,13 +2636,13 @@
 86.1034 -   # On the NeXT, cc -E runs the code through the compiler's parser,
 86.1035 -   # not just through cpp.
 86.1036 -   cat > conftest.$ac_ext <<EOF
 86.1037 --#line 2527 "configure"
 86.1038 -+#line 2640 "configure"
 86.1039 - #include "confdefs.h"
 86.1040 - #include <assert.h>
 86.1041 - Syntax Error
 86.1042 - EOF
 86.1043 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 86.1044 --{ (eval echo configure:2533: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1045 -+{ (eval echo configure:2646: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1046 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 86.1047 - if test -z "$ac_err"; then
 86.1048 -   :
 86.1049 -@@ -2540,13 +2653,13 @@
 86.1050 -   rm -rf conftest*
 86.1051 -   CPP="${CC-cc} -E -traditional-cpp"
 86.1052 -   cat > conftest.$ac_ext <<EOF
 86.1053 --#line 2544 "configure"
 86.1054 -+#line 2657 "configure"
 86.1055 - #include "confdefs.h"
 86.1056 - #include <assert.h>
 86.1057 - Syntax Error
 86.1058 - EOF
 86.1059 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 86.1060 --{ (eval echo configure:2550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1061 -+{ (eval echo configure:2663: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1062 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 86.1063 - if test -z "$ac_err"; then
 86.1064 -   :
 86.1065 -@@ -2557,13 +2670,13 @@
 86.1066 -   rm -rf conftest*
 86.1067 -   CPP="${CC-cc} -nologo -E"
 86.1068 -   cat > conftest.$ac_ext <<EOF
 86.1069 --#line 2561 "configure"
 86.1070 -+#line 2674 "configure"
 86.1071 - #include "confdefs.h"
 86.1072 - #include <assert.h>
 86.1073 - Syntax Error
 86.1074 - EOF
 86.1075 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 86.1076 --{ (eval echo configure:2567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1077 -+{ (eval echo configure:2680: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1078 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 86.1079 - if test -z "$ac_err"; then
 86.1080 -   :
 86.1081 -@@ -2588,12 +2701,12 @@
 86.1082 - echo "$ac_t""$CPP" 1>&6
 86.1083 - 
 86.1084 - echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
 86.1085 --echo "configure:2592: checking for ANSI C header files" >&5
 86.1086 -+echo "configure:2705: checking for ANSI C header files" >&5
 86.1087 - if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
 86.1088 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1089 - else
 86.1090 -   cat > conftest.$ac_ext <<EOF
 86.1091 --#line 2597 "configure"
 86.1092 -+#line 2710 "configure"
 86.1093 - #include "confdefs.h"
 86.1094 - #include <stdlib.h>
 86.1095 - #include <stdarg.h>
 86.1096 -@@ -2601,7 +2714,7 @@
 86.1097 - #include <float.h>
 86.1098 - EOF
 86.1099 - ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 86.1100 --{ (eval echo configure:2605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1101 -+{ (eval echo configure:2718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 86.1102 - ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 86.1103 - if test -z "$ac_err"; then
 86.1104 -   rm -rf conftest*
 86.1105 -@@ -2618,7 +2731,7 @@
 86.1106 - if test $ac_cv_header_stdc = yes; then
 86.1107 -   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 86.1108 - cat > conftest.$ac_ext <<EOF
 86.1109 --#line 2622 "configure"
 86.1110 -+#line 2735 "configure"
 86.1111 - #include "confdefs.h"
 86.1112 - #include <string.h>
 86.1113 - EOF
 86.1114 -@@ -2636,7 +2749,7 @@
 86.1115 - if test $ac_cv_header_stdc = yes; then
 86.1116 -   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 86.1117 - cat > conftest.$ac_ext <<EOF
 86.1118 --#line 2640 "configure"
 86.1119 -+#line 2753 "configure"
 86.1120 - #include "confdefs.h"
 86.1121 - #include <stdlib.h>
 86.1122 - EOF
 86.1123 -@@ -2657,7 +2770,7 @@
 86.1124 -   :
 86.1125 - else
 86.1126 -   cat > conftest.$ac_ext <<EOF
 86.1127 --#line 2661 "configure"
 86.1128 -+#line 2774 "configure"
 86.1129 - #include "confdefs.h"
 86.1130 - #include <ctype.h>
 86.1131 - #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 86.1132 -@@ -2668,7 +2781,7 @@
 86.1133 - exit (0); }
 86.1134 - 
 86.1135 - EOF
 86.1136 --if { (eval echo configure:2672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 86.1137 -+if { (eval echo configure:2785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 86.1138 - then
 86.1139 -   :
 86.1140 - else
 86.1141 -@@ -2694,12 +2807,12 @@
 86.1142 - for ac_func in memcpy
 86.1143 - do
 86.1144 - echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 86.1145 --echo "configure:2698: checking for $ac_func" >&5
 86.1146 -+echo "configure:2811: checking for $ac_func" >&5
 86.1147 - if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
 86.1148 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1149 - else
 86.1150 -   cat > conftest.$ac_ext <<EOF
 86.1151 --#line 2703 "configure"
 86.1152 -+#line 2816 "configure"
 86.1153 - #include "confdefs.h"
 86.1154 - /* System header to define __stub macros and hopefully few prototypes,
 86.1155 -     which can conflict with char $ac_func(); below.  */
 86.1156 -@@ -2722,7 +2835,7 @@
 86.1157 - 
 86.1158 - ; return 0; }
 86.1159 - EOF
 86.1160 --if { (eval echo configure:2726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1161 -+if { (eval echo configure:2839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1162 -   rm -rf conftest*
 86.1163 -   eval "ac_cv_func_$ac_func=yes"
 86.1164 - else
 86.1165 -@@ -2749,19 +2862,19 @@
 86.1166 - # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 86.1167 - # for constant arguments.  Useless!
 86.1168 - echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
 86.1169 --echo "configure:2753: checking for working alloca.h" >&5
 86.1170 -+echo "configure:2866: checking for working alloca.h" >&5
 86.1171 - if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
 86.1172 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1173 - else
 86.1174 -   cat > conftest.$ac_ext <<EOF
 86.1175 --#line 2758 "configure"
 86.1176 -+#line 2871 "configure"
 86.1177 - #include "confdefs.h"
 86.1178 - #include <alloca.h>
 86.1179 - int main() {
 86.1180 - char *p = alloca(2 * sizeof(int));
 86.1181 - ; return 0; }
 86.1182 - EOF
 86.1183 --if { (eval echo configure:2765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1184 -+if { (eval echo configure:2878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1185 -   rm -rf conftest*
 86.1186 -   ac_cv_header_alloca_h=yes
 86.1187 - else
 86.1188 -@@ -2782,12 +2895,12 @@
 86.1189 - fi
 86.1190 - 
 86.1191 - echo $ac_n "checking for alloca""... $ac_c" 1>&6
 86.1192 --echo "configure:2786: checking for alloca" >&5
 86.1193 -+echo "configure:2899: checking for alloca" >&5
 86.1194 - if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
 86.1195 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1196 - else
 86.1197 -   cat > conftest.$ac_ext <<EOF
 86.1198 --#line 2791 "configure"
 86.1199 -+#line 2904 "configure"
 86.1200 - #include "confdefs.h"
 86.1201 - 
 86.1202 - #ifdef __GNUC__
 86.1203 -@@ -2815,7 +2928,7 @@
 86.1204 - char *p = (char *) alloca(1);
 86.1205 - ; return 0; }
 86.1206 - EOF
 86.1207 --if { (eval echo configure:2819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1208 -+if { (eval echo configure:2932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1209 -   rm -rf conftest*
 86.1210 -   ac_cv_func_alloca_works=yes
 86.1211 - else
 86.1212 -@@ -2847,12 +2960,12 @@
 86.1213 - 
 86.1214 - 
 86.1215 - echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
 86.1216 --echo "configure:2851: checking whether alloca needs Cray hooks" >&5
 86.1217 -+echo "configure:2964: checking whether alloca needs Cray hooks" >&5
 86.1218 - if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
 86.1219 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1220 - else
 86.1221 -   cat > conftest.$ac_ext <<EOF
 86.1222 --#line 2856 "configure"
 86.1223 -+#line 2969 "configure"
 86.1224 - #include "confdefs.h"
 86.1225 - #if defined(CRAY) && ! defined(CRAY2)
 86.1226 - webecray
 86.1227 -@@ -2877,12 +2990,12 @@
 86.1228 - if test $ac_cv_os_cray = yes; then
 86.1229 - for ac_func in _getb67 GETB67 getb67; do
 86.1230 -   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 86.1231 --echo "configure:2881: checking for $ac_func" >&5
 86.1232 -+echo "configure:2994: checking for $ac_func" >&5
 86.1233 - if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
 86.1234 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1235 - else
 86.1236 -   cat > conftest.$ac_ext <<EOF
 86.1237 --#line 2886 "configure"
 86.1238 -+#line 2999 "configure"
 86.1239 - #include "confdefs.h"
 86.1240 - /* System header to define __stub macros and hopefully few prototypes,
 86.1241 -     which can conflict with char $ac_func(); below.  */
 86.1242 -@@ -2905,7 +3018,7 @@
 86.1243 - 
 86.1244 - ; return 0; }
 86.1245 - EOF
 86.1246 --if { (eval echo configure:2909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1247 -+if { (eval echo configure:3022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1248 -   rm -rf conftest*
 86.1249 -   eval "ac_cv_func_$ac_func=yes"
 86.1250 - else
 86.1251 -@@ -2932,7 +3045,7 @@
 86.1252 - fi
 86.1253 - 
 86.1254 - echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
 86.1255 --echo "configure:2936: checking stack direction for C alloca" >&5
 86.1256 -+echo "configure:3049: checking stack direction for C alloca" >&5
 86.1257 - if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
 86.1258 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1259 - else
 86.1260 -@@ -2940,7 +3053,7 @@
 86.1261 -   ac_cv_c_stack_direction=0
 86.1262 - else
 86.1263 -   cat > conftest.$ac_ext <<EOF
 86.1264 --#line 2944 "configure"
 86.1265 -+#line 3057 "configure"
 86.1266 - #include "confdefs.h"
 86.1267 - find_stack_direction ()
 86.1268 - {
 86.1269 -@@ -2959,7 +3072,7 @@
 86.1270 -   exit (find_stack_direction() < 0);
 86.1271 - }
 86.1272 - EOF
 86.1273 --if { (eval echo configure:2963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 86.1274 -+if { (eval echo configure:3076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 86.1275 - then
 86.1276 -   ac_cv_c_stack_direction=1
 86.1277 - else
 86.1278 -@@ -2982,13 +3095,13 @@
 86.1279 - 
 86.1280 - 
 86.1281 - echo $ac_n "checking size of short""... $ac_c" 1>&6
 86.1282 --echo "configure:2986: checking size of short" >&5
 86.1283 -+echo "configure:3099: checking size of short" >&5
 86.1284 - if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
 86.1285 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1286 - else
 86.1287 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1288 -   cat > conftest.$ac_ext <<EOF
 86.1289 --#line 2992 "configure"
 86.1290 -+#line 3105 "configure"
 86.1291 - #include "confdefs.h"
 86.1292 - #include "confdefs.h"
 86.1293 - #include <sys/types.h>
 86.1294 -@@ -2998,7 +3111,7 @@
 86.1295 - switch (0) case 0: case (sizeof (short) == $ac_size):;
 86.1296 - ; return 0; }
 86.1297 - EOF
 86.1298 --if { (eval echo configure:3002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1299 -+if { (eval echo configure:3115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1300 -   rm -rf conftest*
 86.1301 -   ac_cv_sizeof_short=$ac_size
 86.1302 - else
 86.1303 -@@ -3021,13 +3134,13 @@
 86.1304 - 
 86.1305 - 
 86.1306 - echo $ac_n "checking size of int""... $ac_c" 1>&6
 86.1307 --echo "configure:3025: checking size of int" >&5
 86.1308 -+echo "configure:3138: checking size of int" >&5
 86.1309 - if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
 86.1310 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1311 - else
 86.1312 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1313 -   cat > conftest.$ac_ext <<EOF
 86.1314 --#line 3031 "configure"
 86.1315 -+#line 3144 "configure"
 86.1316 - #include "confdefs.h"
 86.1317 - #include "confdefs.h"
 86.1318 - #include <sys/types.h>
 86.1319 -@@ -3037,7 +3150,7 @@
 86.1320 - switch (0) case 0: case (sizeof (int) == $ac_size):;
 86.1321 - ; return 0; }
 86.1322 - EOF
 86.1323 --if { (eval echo configure:3041: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1324 -+if { (eval echo configure:3154: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1325 -   rm -rf conftest*
 86.1326 -   ac_cv_sizeof_int=$ac_size
 86.1327 - else
 86.1328 -@@ -3060,13 +3173,13 @@
 86.1329 - 
 86.1330 - 
 86.1331 - echo $ac_n "checking size of long""... $ac_c" 1>&6
 86.1332 --echo "configure:3064: checking size of long" >&5
 86.1333 -+echo "configure:3177: checking size of long" >&5
 86.1334 - if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
 86.1335 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1336 - else
 86.1337 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1338 -   cat > conftest.$ac_ext <<EOF
 86.1339 --#line 3070 "configure"
 86.1340 -+#line 3183 "configure"
 86.1341 - #include "confdefs.h"
 86.1342 - #include "confdefs.h"
 86.1343 - #include <sys/types.h>
 86.1344 -@@ -3076,7 +3189,7 @@
 86.1345 - switch (0) case 0: case (sizeof (long) == $ac_size):;
 86.1346 - ; return 0; }
 86.1347 - EOF
 86.1348 --if { (eval echo configure:3080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1349 -+if { (eval echo configure:3193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1350 -   rm -rf conftest*
 86.1351 -   ac_cv_sizeof_long=$ac_size
 86.1352 - else
 86.1353 -@@ -3099,13 +3212,13 @@
 86.1354 - 
 86.1355 - 
 86.1356 - echo $ac_n "checking size of long long""... $ac_c" 1>&6
 86.1357 --echo "configure:3103: checking size of long long" >&5
 86.1358 -+echo "configure:3216: checking size of long long" >&5
 86.1359 - if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
 86.1360 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1361 - else
 86.1362 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1363 -   cat > conftest.$ac_ext <<EOF
 86.1364 --#line 3109 "configure"
 86.1365 -+#line 3222 "configure"
 86.1366 - #include "confdefs.h"
 86.1367 - #include "confdefs.h"
 86.1368 - #include <sys/types.h>
 86.1369 -@@ -3115,7 +3228,7 @@
 86.1370 - switch (0) case 0: case (sizeof (long long) == $ac_size):;
 86.1371 - ; return 0; }
 86.1372 - EOF
 86.1373 --if { (eval echo configure:3119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1374 -+if { (eval echo configure:3232: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1375 -   rm -rf conftest*
 86.1376 -   ac_cv_sizeof_long_long=$ac_size
 86.1377 - else
 86.1378 -@@ -3138,13 +3251,13 @@
 86.1379 - 
 86.1380 - 
 86.1381 - echo $ac_n "checking size of float""... $ac_c" 1>&6
 86.1382 --echo "configure:3142: checking size of float" >&5
 86.1383 -+echo "configure:3255: checking size of float" >&5
 86.1384 - if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then
 86.1385 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1386 - else
 86.1387 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1388 -   cat > conftest.$ac_ext <<EOF
 86.1389 --#line 3148 "configure"
 86.1390 -+#line 3261 "configure"
 86.1391 - #include "confdefs.h"
 86.1392 - #include "confdefs.h"
 86.1393 - #include <sys/types.h>
 86.1394 -@@ -3154,7 +3267,7 @@
 86.1395 - switch (0) case 0: case (sizeof (float) == $ac_size):;
 86.1396 - ; return 0; }
 86.1397 - EOF
 86.1398 --if { (eval echo configure:3158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1399 -+if { (eval echo configure:3271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1400 -   rm -rf conftest*
 86.1401 -   ac_cv_sizeof_float=$ac_size
 86.1402 - else
 86.1403 -@@ -3177,13 +3290,13 @@
 86.1404 - 
 86.1405 - 
 86.1406 - echo $ac_n "checking size of double""... $ac_c" 1>&6
 86.1407 --echo "configure:3181: checking size of double" >&5
 86.1408 -+echo "configure:3294: checking size of double" >&5
 86.1409 - if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then
 86.1410 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1411 - else
 86.1412 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1413 -   cat > conftest.$ac_ext <<EOF
 86.1414 --#line 3187 "configure"
 86.1415 -+#line 3300 "configure"
 86.1416 - #include "confdefs.h"
 86.1417 - #include "confdefs.h"
 86.1418 - #include <sys/types.h>
 86.1419 -@@ -3193,7 +3306,7 @@
 86.1420 - switch (0) case 0: case (sizeof (double) == $ac_size):;
 86.1421 - ; return 0; }
 86.1422 - EOF
 86.1423 --if { (eval echo configure:3197: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1424 -+if { (eval echo configure:3310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1425 -   rm -rf conftest*
 86.1426 -   ac_cv_sizeof_double=$ac_size
 86.1427 - else
 86.1428 -@@ -3216,13 +3329,13 @@
 86.1429 - 
 86.1430 - 
 86.1431 - echo $ac_n "checking size of long double""... $ac_c" 1>&6
 86.1432 --echo "configure:3220: checking size of long double" >&5
 86.1433 -+echo "configure:3333: checking size of long double" >&5
 86.1434 - if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
 86.1435 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1436 - else
 86.1437 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1438 -   cat > conftest.$ac_ext <<EOF
 86.1439 --#line 3226 "configure"
 86.1440 -+#line 3339 "configure"
 86.1441 - #include "confdefs.h"
 86.1442 - #include "confdefs.h"
 86.1443 - #include <sys/types.h>
 86.1444 -@@ -3232,7 +3345,7 @@
 86.1445 - switch (0) case 0: case (sizeof (long double) == $ac_size):;
 86.1446 - ; return 0; }
 86.1447 - EOF
 86.1448 --if { (eval echo configure:3236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1449 -+if { (eval echo configure:3349: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1450 -   rm -rf conftest*
 86.1451 -   ac_cv_sizeof_long_double=$ac_size
 86.1452 - else
 86.1453 -@@ -3256,13 +3369,13 @@
 86.1454 - 
 86.1455 - 
 86.1456 - echo $ac_n "checking size of void *""... $ac_c" 1>&6
 86.1457 --echo "configure:3260: checking size of void *" >&5
 86.1458 -+echo "configure:3373: checking size of void *" >&5
 86.1459 - if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
 86.1460 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1461 - else
 86.1462 -   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
 86.1463 -   cat > conftest.$ac_ext <<EOF
 86.1464 --#line 3266 "configure"
 86.1465 -+#line 3379 "configure"
 86.1466 - #include "confdefs.h"
 86.1467 - #include "confdefs.h"
 86.1468 - #include <sys/types.h>
 86.1469 -@@ -3272,7 +3385,7 @@
 86.1470 - switch (0) case 0: case (sizeof (void *) == $ac_size):;
 86.1471 - ; return 0; }
 86.1472 - EOF
 86.1473 --if { (eval echo configure:3276: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1474 -+if { (eval echo configure:3389: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1475 -   rm -rf conftest*
 86.1476 -   ac_cv_sizeof_void_p=$ac_size
 86.1477 - else
 86.1478 -@@ -3295,14 +3408,14 @@
 86.1479 - 
 86.1480 - 
 86.1481 - echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
 86.1482 --echo "configure:3299: checking whether byte ordering is bigendian" >&5
 86.1483 -+echo "configure:3412: checking whether byte ordering is bigendian" >&5
 86.1484 - if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
 86.1485 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1486 - else
 86.1487 -   ac_cv_c_bigendian=unknown
 86.1488 - # See if sys/param.h defines the BYTE_ORDER macro.
 86.1489 - cat > conftest.$ac_ext <<EOF
 86.1490 --#line 3306 "configure"
 86.1491 -+#line 3419 "configure"
 86.1492 - #include "confdefs.h"
 86.1493 - #include <sys/types.h>
 86.1494 - #include <sys/param.h>
 86.1495 -@@ -3313,11 +3426,11 @@
 86.1496 - #endif
 86.1497 - ; return 0; }
 86.1498 - EOF
 86.1499 --if { (eval echo configure:3317: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1500 -+if { (eval echo configure:3430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1501 -   rm -rf conftest*
 86.1502 -   # It does; now see whether it defined to BIG_ENDIAN or not.
 86.1503 - cat > conftest.$ac_ext <<EOF
 86.1504 --#line 3321 "configure"
 86.1505 -+#line 3434 "configure"
 86.1506 - #include "confdefs.h"
 86.1507 - #include <sys/types.h>
 86.1508 - #include <sys/param.h>
 86.1509 -@@ -3328,7 +3441,7 @@
 86.1510 - #endif
 86.1511 - ; return 0; }
 86.1512 - EOF
 86.1513 --if { (eval echo configure:3332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1514 -+if { (eval echo configure:3445: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 86.1515 -   rm -rf conftest*
 86.1516 -   ac_cv_c_bigendian=yes
 86.1517 - else
 86.1518 -@@ -3348,7 +3461,7 @@
 86.1519 -    echo $ac_n "cross-compiling... " 2>&6 
 86.1520 - else
 86.1521 -   cat > conftest.$ac_ext <<EOF
 86.1522 --#line 3352 "configure"
 86.1523 -+#line 3465 "configure"
 86.1524 - #include "confdefs.h"
 86.1525 - main () {
 86.1526 -   /* Are we little or big endian?  From Harbison&Steele.  */
 86.1527 -@@ -3361,7 +3474,7 @@
 86.1528 -   exit (u.c[sizeof (long) - 1] == 1);
 86.1529 - }
 86.1530 - EOF
 86.1531 --if { (eval echo configure:3365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 86.1532 -+if { (eval echo configure:3478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 86.1533 - then
 86.1534 -   ac_cv_c_bigendian=no
 86.1535 - else
 86.1536 -@@ -3379,7 +3492,7 @@
 86.1537 - echo "$ac_t""$ac_cv_c_bigendian" 1>&6
 86.1538 - if test $ac_cv_c_bigendian = unknown; then
 86.1539 - echo $ac_n "checking to probe for byte ordering""... $ac_c" 1>&6
 86.1540 --echo "configure:3383: checking to probe for byte ordering" >&5
 86.1541 -+echo "configure:3496: checking to probe for byte ordering" >&5
 86.1542 - 
 86.1543 - cat >conftest.c <<EOF
 86.1544 - short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
 86.1545 -@@ -3414,6 +3527,10 @@
 86.1546 - #define WORDS_BIGENDIAN 1
 86.1547 - EOF
 86.1548 - 
 86.1549 -+  cat >> confdefs.h <<\EOF
 86.1550 -+#define HOST_WORDS_BIG_ENDIAN 1
 86.1551 -+EOF
 86.1552 -+
 86.1553 -   BYTEORDER=4321
 86.1554 - else
 86.1555 -   BYTEORDER=1234
 86.1556 -@@ -3429,7 +3546,7 @@
 86.1557 - 
 86.1558 - if test x$TARGET = xSPARC; then
 86.1559 -     echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6
 86.1560 --echo "configure:3433: checking assembler and linker support unaligned pc related relocs" >&5
 86.1561 -+echo "configure:3550: checking assembler and linker support unaligned pc related relocs" >&5
 86.1562 - if eval "test \"`echo '$''{'libffi_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then
 86.1563 -   echo $ac_n "(cached) $ac_c" 1>&6
 86.1564 - else
 86.1565 -@@ -3439,14 +3556,14 @@
 86.1566 - 	CFLAGS="$CFLAGS -fpic"
 86.1567 - 	LDFLAGS="$LDFLAGS -shared"
 86.1568 - 	cat > conftest.$ac_ext <<EOF
 86.1569 --#line 3443 "configure"
 86.1570 -+#line 3560 "configure"
 86.1571 - #include "confdefs.h"
 86.1572 - asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");
 86.1573 - int main() {
 86.1574 - 
 86.1575 - ; return 0; }
 86.1576 - EOF
 86.1577 --if { (eval echo configure:3450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1578 -+if { (eval echo configure:3567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 86.1579 -   rm -rf conftest*
 86.1580 -   libffi_cv_as_sparc_ua_pcrel=yes
 86.1581 - else
 86.1582 -@@ -3709,6 +3826,8 @@
 86.1583 - s%@MIPS_GCC_FALSE@%$MIPS_GCC_FALSE%g
 86.1584 - s%@MIPS_SGI_TRUE@%$MIPS_SGI_TRUE%g
 86.1585 - s%@MIPS_SGI_FALSE@%$MIPS_SGI_FALSE%g
 86.1586 -+s%@MIPS_LINUX_TRUE@%$MIPS_LINUX_TRUE%g
 86.1587 -+s%@MIPS_LINUX_FALSE@%$MIPS_LINUX_FALSE%g
 86.1588 - s%@SPARC_TRUE@%$SPARC_TRUE%g
 86.1589 - s%@SPARC_FALSE@%$SPARC_FALSE%g
 86.1590 - s%@X86_TRUE@%$X86_TRUE%g
 86.1591 -@@ -3729,6 +3848,12 @@
 86.1592 - s%@POWERPC_DARWIN_FALSE@%$POWERPC_DARWIN_FALSE%g
 86.1593 - s%@ARM_TRUE@%$ARM_TRUE%g
 86.1594 - s%@ARM_FALSE@%$ARM_FALSE%g
 86.1595 -+s%@S390_TRUE@%$S390_TRUE%g
 86.1596 -+s%@S390_FALSE@%$S390_FALSE%g
 86.1597 -+s%@X86_64_TRUE@%$X86_64_TRUE%g
 86.1598 -+s%@X86_64_FALSE@%$X86_64_FALSE%g
 86.1599 -+s%@SH_TRUE@%$SH_TRUE%g
 86.1600 -+s%@SH_FALSE@%$SH_FALSE%g
 86.1601 - s%@CPP@%$CPP%g
 86.1602 - s%@ALLOCA@%$ALLOCA%g
 86.1603 - s%@TARGET@%$TARGET%g
 86.1604 -@@ -3969,7 +4094,7 @@
 86.1605 - 
 86.1606 - if test -n "$CONFIG_FILES"; then
 86.1607 -    LD="${ORIGINAL_LD_FOR_MULTILIBS}"
 86.1608 --   ac_file=Makefile . ${libffi_basedir}/../config-ml.in
 86.1609 -+   ac_file=Makefile . ${srcdir}/${libffi_basedir}../config-ml.in
 86.1610 - fi
 86.1611 - 
 86.1612 - exit 0
 86.1613 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/configure.in gcc/libffi/configure.in
 86.1614 ---- gcc-3.2.2.orig/libffi/configure.in	Tue Jan 28 10:43:56 2003
 86.1615 -+++ gcc/libffi/configure.in	Sat Feb  1 20:16:19 2003
 86.1616 -@@ -22,14 +22,15 @@
 86.1617 - 
 86.1618 - if test "${srcdir}" = "."; then
 86.1619 -   if test "${with_target_subdir}" != "."; then
 86.1620 --    libffi_basedir="${srcdir}/${with_multisrctop}.."
 86.1621 -+    libffi_basedir="${with_multisrctop}../"
 86.1622 -   else
 86.1623 --    libffi_basedir="${srcdir}/${with_multisrctop}"
 86.1624 -+    libffi_basedir="${with_multisrctop}"
 86.1625 -   fi
 86.1626 - else
 86.1627 --  libffi_basedir="${srcdir}"
 86.1628 -+  libffi_basedir=
 86.1629 - fi
 86.1630 - AC_SUBST(libffi_basedir)
 86.1631 -+AC_CONFIG_AUX_DIR(${libffi_basedir}..)
 86.1632 - 
 86.1633 - AC_CANONICAL_HOST
 86.1634 - 
 86.1635 -@@ -56,17 +57,23 @@
 86.1636 - i*86-*-mingw*) TARGET=X86_WIN32; TARGETDIR=x86;;
 86.1637 - sparc-sun-4*) TARGET=SPARC; TARGETDIR=sparc;;
 86.1638 - sparc*-sun-*) TARGET=SPARC; TARGETDIR=sparc;;
 86.1639 --sparc-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
 86.1640 --sparc64-*-linux*) TARGET=SPARC; TARGETDIR=sparc;;
 86.1641 --alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd*) TARGET=ALPHA; TARGETDIR=alpha;;
 86.1642 -+sparc-*-linux* | sparc-*-netbsdelf*) TARGET=SPARC; TARGETDIR=sparc;;
 86.1643 -+sparc64-*-linux* | sparc64-*-netbsd*) TARGET=SPARC; TARGETDIR=sparc;;
 86.1644 -+alpha*-*-linux* | alpha*-*-osf* | alpha*-*-freebsd* | alpha*-*-netbsd*) TARGET=ALPHA; TARGETDIR=alpha;;
 86.1645 - ia64*-*-*) TARGET=IA64; TARGETDIR=ia64;;
 86.1646 - m68k-*-linux*) TARGET=M68K; TARGETDIR=m68k;;
 86.1647 -+mips64*-*);;
 86.1648 -+mips*-*-linux*) TARGET=MIPS_LINUX; TARGETDIR=mips;;
 86.1649 - powerpc-*-linux* | powerpc-*-sysv*) TARGET=POWERPC; TARGETDIR=powerpc;;
 86.1650 - powerpc-*-beos*) TARGET=POWERPC; TARGETDIR=powerpc;;
 86.1651 - powerpc-*-darwin*) TARGET=POWERPC_DARWIN; TARGETDIR=powerpc;;
 86.1652 - powerpc-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
 86.1653 - rs6000-*-aix*) TARGET=POWERPC_AIX; TARGETDIR=powerpc;;
 86.1654 - arm*-*-linux-*) TARGET=ARM; TARGETDIR=arm;;
 86.1655 -+s390-*-linux-*) TARGET=S390; TARGETDIR=s390;;
 86.1656 -+s390x-*-linux-*) TARGET=S390; TARGETDIR=s390;;
 86.1657 -+x86_64-*-linux*) TARGET=X86_64; TARGETDIR=x86;;
 86.1658 -+sh-*-linux* | sh[[34]]*-*-linux*) TARGET=SH; TARGETDIR=sh;;
 86.1659 - esac
 86.1660 - 
 86.1661 - if test $TARGETDIR = unknown; then
 86.1662 -@@ -75,6 +82,7 @@
 86.1663 - 
 86.1664 - AM_CONDITIONAL(MIPS_GCC, test ${TARGET}${ac_cv_prog_gcc} = MIPSyes)
 86.1665 - AM_CONDITIONAL(MIPS_SGI, test ${TARGET}${ac_cv_prog_gcc} = MIPSno)
 86.1666 -+AM_CONDITIONAL(MIPS_LINUX, test x$TARGET = xMIPS_LINUX)
 86.1667 - AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
 86.1668 - AM_CONDITIONAL(X86, test x$TARGET = xX86)
 86.1669 - AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
 86.1670 -@@ -85,6 +93,13 @@
 86.1671 - AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
 86.1672 - AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
 86.1673 - AM_CONDITIONAL(ARM, test x$TARGET = xARM)
 86.1674 -+AM_CONDITIONAL(S390, test x$TARGET = xS390)
 86.1675 -+AM_CONDITIONAL(X86_64, test x$TARGET = xX86_64)
 86.1676 -+AM_CONDITIONAL(SH, test x$TARGET = xSH)
 86.1677 -+
 86.1678 -+if test x$TARGET = xMIPS_LINUX; then
 86.1679 -+  TARGET=MIPS
 86.1680 -+fi
 86.1681 - 
 86.1682 - AC_HEADER_STDC
 86.1683 - AC_CHECK_FUNCS(memcpy)
 86.1684 -@@ -171,7 +186,7 @@
 86.1685 - [
 86.1686 - if test -n "$CONFIG_FILES"; then
 86.1687 -    LD="${ORIGINAL_LD_FOR_MULTILIBS}"
 86.1688 --   ac_file=Makefile . ${libffi_basedir}/../config-ml.in
 86.1689 -+   ac_file=Makefile . ${srcdir}/${libffi_basedir}../config-ml.in
 86.1690 - fi
 86.1691 - ],
 86.1692 - srcdir=${srcdir}
 86.1693 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/include/Makefile.in gcc/libffi/include/Makefile.in
 86.1694 ---- gcc-3.2.2.orig/libffi/include/Makefile.in	Tue Oct  9 14:32:16 2001
 86.1695 -+++ gcc/libffi/include/Makefile.in	Mon Apr 29 13:14:44 2002
 86.1696 -@@ -99,7 +99,7 @@
 86.1697 - 
 86.1698 - DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 86.1699 - 
 86.1700 --TAR = gnutar
 86.1701 -+TAR = gtar
 86.1702 - GZIP_ENV = --best
 86.1703 - all: all-redirect
 86.1704 - .SUFFIXES:
 86.1705 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/include/ffi.h.in gcc/libffi/include/ffi.h.in
 86.1706 ---- gcc-3.2.2.orig/libffi/include/ffi.h.in	Wed Mar 13 07:35:56 2002
 86.1707 -+++ gcc/libffi/include/ffi.h.in	Wed Jan 29 00:54:28 2003
 86.1708 -@@ -1,5 +1,5 @@
 86.1709 - /* -----------------------------------------------------------------*-C-*-
 86.1710 --   libffi @VERSION@ - Copyright (c) 1996-2002  Cygnus Solutions
 86.1711 -+   libffi @VERSION@ - Copyright (c) 1996-2003  Cygnus Solutions
 86.1712 - 
 86.1713 -    Permission is hereby granted, free of charge, to any person obtaining
 86.1714 -    a copy of this software and associated documentation files (the
 86.1715 -@@ -164,6 +164,12 @@
 86.1716 - #endif
 86.1717 - #endif
 86.1718 - 
 86.1719 -+#ifdef S390
 86.1720 -+#if defined (__s390x__)
 86.1721 -+#define S390X
 86.1722 -+#endif
 86.1723 -+#endif
 86.1724 -+
 86.1725 - #ifndef LIBFFI_ASM
 86.1726 - 
 86.1727 - /* ---- Generic type definitions ----------------------------------------- */
 86.1728 -@@ -189,16 +195,23 @@
 86.1729 - #endif
 86.1730 - #endif
 86.1731 - 
 86.1732 --  /* ---- Intel x86 ---------------- */
 86.1733 --#ifdef X86
 86.1734 -+  /* ---- Intel x86 Win32 ---------- */
 86.1735 -+#ifdef X86_WIN32
 86.1736 -   FFI_SYSV,
 86.1737 -+  FFI_STDCALL,
 86.1738 -+  /* TODO: Add fastcall support for the sake of completeness */
 86.1739 -   FFI_DEFAULT_ABI = FFI_SYSV,
 86.1740 - #endif
 86.1741 - 
 86.1742 --  /* ---- Intel x86 Win32 ---------- */
 86.1743 --#ifdef X86_WIN32
 86.1744 -+  /* ---- Intel x86 and AMD x86-64 - */
 86.1745 -+#if !defined(X86_WIN32) && (defined(__i386__) || defined(__x86_64__))
 86.1746 -   FFI_SYSV,
 86.1747 -+  FFI_UNIX64,   /* Unix variants all use the same ABI for x86-64  */
 86.1748 -+#ifdef __i386__
 86.1749 -   FFI_DEFAULT_ABI = FFI_SYSV,
 86.1750 -+#else
 86.1751 -+  FFI_DEFAULT_ABI = FFI_UNIX64,
 86.1752 -+#endif
 86.1753 - #endif
 86.1754 - 
 86.1755 -   /* ---- Intel ia64 ---------------- */
 86.1756 -@@ -251,6 +264,18 @@
 86.1757 -   FFI_DEFAULT_ABI = FFI_SYSV,
 86.1758 - #endif
 86.1759 - 
 86.1760 -+  /* ---- S390 --------------------- */
 86.1761 -+#ifdef S390
 86.1762 -+  FFI_SYSV,
 86.1763 -+  FFI_DEFAULT_ABI = FFI_SYSV,
 86.1764 -+#endif
 86.1765 -+
 86.1766 -+  /* ---- SuperH ------------------- */
 86.1767 -+#ifdef SH
 86.1768 -+  FFI_SYSV,
 86.1769 -+  FFI_DEFAULT_ABI = FFI_SYSV,
 86.1770 -+#endif
 86.1771 -+
 86.1772 -   /* Leave this for debugging purposes */
 86.1773 -   FFI_LAST_ABI
 86.1774 - 
 86.1775 -@@ -264,7 +289,7 @@
 86.1776 -   /*@null@*/ struct _ffi_type **elements;
 86.1777 - } ffi_type;
 86.1778 - 
 86.1779 --/* These are defined in ffi.c */
 86.1780 -+/* These are defined in types.c */
 86.1781 - extern ffi_type ffi_type_void;
 86.1782 - extern ffi_type ffi_type_uint8;
 86.1783 - extern ffi_type ffi_type_sint8;
 86.1784 -@@ -373,13 +398,7 @@
 86.1785 - 
 86.1786 - /* ---- Definitions for closures ----------------------------------------- */
 86.1787 - 
 86.1788 --#ifdef X86
 86.1789 --
 86.1790 --#define FFI_CLOSURES 1		/* x86 supports closures */
 86.1791 --#define FFI_TRAMPOLINE_SIZE 10
 86.1792 --#define FFI_NATIVE_RAW_API 1	/* and has native raw api support */
 86.1793 --
 86.1794 --#elif defined(X86_WIN32)
 86.1795 -+#ifdef __i386__
 86.1796 - 
 86.1797 - #define FFI_CLOSURES 1		/* x86 supports closures */
 86.1798 - #define FFI_TRAMPOLINE_SIZE 10
 86.1799 -@@ -424,6 +443,40 @@
 86.1800 - #define FFI_TRAMPOLINE_SIZE 24 /* see struct below */ 
 86.1801 - #define FFI_NATIVE_RAW_API 0
 86.1802 - 
 86.1803 -+#elif defined(SPARC64)
 86.1804 -+
 86.1805 -+#define FFI_CLOSURES 1
 86.1806 -+#define FFI_TRAMPOLINE_SIZE 24
 86.1807 -+#define FFI_NATIVE_RAW_API 0
 86.1808 -+
 86.1809 -+#elif defined(SPARC)
 86.1810 -+
 86.1811 -+#define FFI_CLOSURES 1
 86.1812 -+#define FFI_TRAMPOLINE_SIZE 16
 86.1813 -+#define FFI_NATIVE_RAW_API 0
 86.1814 -+
 86.1815 -+#elif defined(S390)
 86.1816 -+
 86.1817 -+#define FFI_CLOSURES 1
 86.1818 -+#ifdef S390X
 86.1819 -+#define FFI_TRAMPOLINE_SIZE 32
 86.1820 -+#else
 86.1821 -+#define FFI_TRAMPOLINE_SIZE 16
 86.1822 -+#endif
 86.1823 -+#define FFI_NATIVE_RAW_API 0
 86.1824 -+
 86.1825 -+#elif defined(SH)
 86.1826 -+
 86.1827 -+#define FFI_CLOSURES 1
 86.1828 -+#define FFI_TRAMPOLINE_SIZE 16
 86.1829 -+#define FFI_NATIVE_RAW_API 0
 86.1830 -+
 86.1831 -+#elif defined(__x86_64__)
 86.1832 -+
 86.1833 -+#define FFI_CLOSURES 1
 86.1834 -+#define FFI_TRAMPOLINE_SIZE 24
 86.1835 -+#define FFI_NATIVE_RAW_API 0
 86.1836 -+
 86.1837 - #else 
 86.1838 - 
 86.1839 - #define FFI_CLOSURES 0
 86.1840 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/arm/ffi.c gcc/libffi/src/arm/ffi.c
 86.1841 ---- gcc-3.2.2.orig/libffi/src/arm/ffi.c	Sat Mar  3 07:21:23 2001
 86.1842 -+++ gcc/libffi/src/arm/ffi.c	Fri Jul 19 08:08:30 2002
 86.1843 -@@ -36,13 +36,10 @@
 86.1844 - /*@=exportheader@*/
 86.1845 - {
 86.1846 -   register unsigned int i;
 86.1847 --  register int tmp;
 86.1848 --  register unsigned int avn;
 86.1849 -   register void **p_argv;
 86.1850 -   register char *argp;
 86.1851 -   register ffi_type **p_arg;
 86.1852 - 
 86.1853 --  tmp = 0;
 86.1854 -   argp = stack;
 86.1855 - 
 86.1856 -   if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT ) {
 86.1857 -@@ -50,11 +47,10 @@
 86.1858 -     argp += 4;
 86.1859 -   }
 86.1860 - 
 86.1861 --  avn = ecif->cif->nargs;
 86.1862 -   p_argv = ecif->avalue;
 86.1863 - 
 86.1864 -   for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
 86.1865 --       (i != 0) && (avn != 0);
 86.1866 -+       (i != 0);
 86.1867 -        i--, p_arg++)
 86.1868 -     {
 86.1869 -       size_t z;
 86.1870 -@@ -64,9 +60,6 @@
 86.1871 - 	argp = (char *) ALIGN(argp, (*p_arg)->alignment);
 86.1872 -       }
 86.1873 - 
 86.1874 --      if (avn != 0) 
 86.1875 --	{
 86.1876 --	  avn--;
 86.1877 - 	  z = (*p_arg)->size;
 86.1878 - 	  if (z < sizeof(int))
 86.1879 - 	    {
 86.1880 -@@ -107,7 +100,6 @@
 86.1881 - 	    }
 86.1882 - 	  p_argv++;
 86.1883 - 	  argp += z;
 86.1884 --	}
 86.1885 -     }
 86.1886 -   
 86.1887 -   return;
 86.1888 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/arm/sysv.S gcc/libffi/src/arm/sysv.S
 86.1889 ---- gcc-3.2.2.orig/libffi/src/arm/sysv.S	Sat Mar  3 07:21:23 2001
 86.1890 -+++ gcc/libffi/src/arm/sysv.S	Mon Sep 30 03:08:58 2002
 86.1891 -@@ -28,8 +28,15 @@
 86.1892 - #ifdef HAVE_MACHINE_ASM_H
 86.1893 - #include <machine/asm.h>
 86.1894 - #else
 86.1895 --/* XXX these lose for some platforms, I'm sure. */
 86.1896 -+#ifdef __USER_LABEL_PREFIX__
 86.1897 -+#define CONCAT1(a, b) CONCAT2(a, b)
 86.1898 -+#define CONCAT2(a, b) a ## b
 86.1899 -+
 86.1900 -+/* Use the right prefix for global labels.  */
 86.1901 -+#define CNAME(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
 86.1902 -+#else
 86.1903 - #define CNAME(x) x
 86.1904 -+#endif
 86.1905 - #define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x):
 86.1906 - #endif
 86.1907 - 	
 86.1908 -@@ -96,12 +103,20 @@
 86.1909 - 
 86.1910 - # return FLOAT
 86.1911 - 	cmp     a4, #FFI_TYPE_FLOAT
 86.1912 -+#ifdef __SOFTFP__
 86.1913 -+	streq	a1, [a3]
 86.1914 -+#else
 86.1915 - 	stfeqs  f0, [a3]
 86.1916 -+#endif
 86.1917 - 	beq     epilogue
 86.1918 - 
 86.1919 - # return DOUBLE or LONGDOUBLE
 86.1920 - 	cmp     a4, #FFI_TYPE_DOUBLE
 86.1921 -+#ifdef __SOFTFP__
 86.1922 -+	stmeqia	a3, {a1, a2}
 86.1923 -+#else
 86.1924 - 	stfeqd  f0, [a3]
 86.1925 -+#endif
 86.1926 - 
 86.1927 - epilogue:
 86.1928 -         ldmfd sp!, {a1-a4, fp, pc}
 86.1929 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/java_raw_api.c gcc/libffi/src/java_raw_api.c
 86.1930 ---- gcc-3.2.2.orig/libffi/src/java_raw_api.c	Tue Apr  9 07:31:14 2002
 86.1931 -+++ gcc/libffi/src/java_raw_api.c	Tue Oct  8 23:55:02 2002
 86.1932 -@@ -81,21 +81,14 @@
 86.1933 - 	{
 86.1934 - 	case FFI_TYPE_UINT8:
 86.1935 - 	case FFI_TYPE_SINT8:
 86.1936 --	  *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 1);
 86.1937 -+	  *args = (void*) ((char*)(raw++) + 3);
 86.1938 - 	  break;
 86.1939 - 	  
 86.1940 - 	case FFI_TYPE_UINT16:
 86.1941 - 	case FFI_TYPE_SINT16:
 86.1942 --	  *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 2);
 86.1943 -+	  *args = (void*) ((char*)(raw++) + 2);
 86.1944 - 	  break;
 86.1945 - 
 86.1946 --#if SIZEOF_ARG >= 4	  
 86.1947 --	case FFI_TYPE_UINT32:
 86.1948 --	case FFI_TYPE_SINT32:
 86.1949 --	  *args = (void*) ((char*)(raw++) + SIZEOF_ARG - 4);
 86.1950 --	  break;
 86.1951 --#endif
 86.1952 --	
 86.1953 - #if SIZEOF_ARG == 8	  
 86.1954 - 	case FFI_TYPE_UINT64:
 86.1955 - 	case FFI_TYPE_SINT64:
 86.1956 -@@ -157,31 +150,54 @@
 86.1957 -       switch ((*tp)->type)
 86.1958 - 	{
 86.1959 - 	case FFI_TYPE_UINT8:
 86.1960 -+#if WORDS_BIGENDIAN
 86.1961 -+	  *(UINT32*)(raw++) = *(UINT8*) (*args);
 86.1962 -+#else
 86.1963 - 	  (raw++)->uint = *(UINT8*) (*args);
 86.1964 -+#endif
 86.1965 - 	  break;
 86.1966 - 
 86.1967 - 	case FFI_TYPE_SINT8:
 86.1968 -+#if WORDS_BIGENDIAN
 86.1969 -+	  *(SINT32*)(raw++) = *(SINT8*) (*args);
 86.1970 -+#else
 86.1971 - 	  (raw++)->sint = *(SINT8*) (*args);
 86.1972 -+#endif
 86.1973 - 	  break;
 86.1974 - 
 86.1975 - 	case FFI_TYPE_UINT16:
 86.1976 -+#if WORDS_BIGENDIAN
 86.1977 -+	  *(UINT32*)(raw++) = *(UINT16*) (*args);
 86.1978 -+#else
 86.1979 - 	  (raw++)->uint = *(UINT16*) (*args);
 86.1980 -+#endif
 86.1981 - 	  break;
 86.1982 - 
 86.1983 - 	case FFI_TYPE_SINT16:
 86.1984 -+#if WORDS_BIGENDIAN
 86.1985 -+	  *(SINT32*)(raw++) = *(SINT16*) (*args);
 86.1986 -+#else
 86.1987 - 	  (raw++)->sint = *(SINT16*) (*args);
 86.1988 -+#endif
 86.1989 - 	  break;
 86.1990 - 
 86.1991 --#if SIZEOF_ARG >= 4
 86.1992 - 	case FFI_TYPE_UINT32:
 86.1993 -+#if WORDS_BIGENDIAN
 86.1994 -+	  *(UINT32*)(raw++) = *(UINT32*) (*args);
 86.1995 -+#else
 86.1996 - 	  (raw++)->uint = *(UINT32*) (*args);
 86.1997 -+#endif
 86.1998 - 	  break;
 86.1999 - 
 86.2000 - 	case FFI_TYPE_SINT32:
 86.2001 -+#if WORDS_BIGENDIAN
 86.2002 -+	  *(SINT32*)(raw++) = *(SINT32*) (*args);
 86.2003 -+#else
 86.2004 - 	  (raw++)->sint = *(SINT32*) (*args);
 86.2005 --	  break;
 86.2006 - #endif
 86.2007 --        case FFI_TYPE_FLOAT:
 86.2008 -+	  break;
 86.2009 -+
 86.2010 -+	case FFI_TYPE_FLOAT:
 86.2011 - 	  (raw++)->flt = *(FLOAT32*) (*args);
 86.2012 - 	  break;
 86.2013 - 
 86.2014 -@@ -211,6 +227,55 @@
 86.2015 - 
 86.2016 - #if !FFI_NATIVE_RAW_API
 86.2017 - 
 86.2018 -+static void
 86.2019 -+ffi_java_rvalue_to_raw (ffi_cif *cif, void *rvalue)
 86.2020 -+{
 86.2021 -+#if WORDS_BIGENDIAN && SIZEOF_ARG == 8
 86.2022 -+  switch (cif->rtype->type)
 86.2023 -+    {
 86.2024 -+    case FFI_TYPE_UINT8:
 86.2025 -+    case FFI_TYPE_UINT16:
 86.2026 -+    case FFI_TYPE_UINT32:
 86.2027 -+      *(UINT64 *)rvalue <<= 32;
 86.2028 -+      break;
 86.2029 -+
 86.2030 -+    case FFI_TYPE_SINT8:
 86.2031 -+    case FFI_TYPE_SINT16:
 86.2032 -+    case FFI_TYPE_SINT32:
 86.2033 -+    case FFI_TYPE_INT:
 86.2034 -+      *(SINT64 *)rvalue <<= 32;
 86.2035 -+      break;
 86.2036 -+
 86.2037 -+    default:
 86.2038 -+      break;
 86.2039 -+    }
 86.2040 -+#endif
 86.2041 -+}
 86.2042 -+
 86.2043 -+static void
 86.2044 -+ffi_java_raw_to_rvalue (ffi_cif *cif, void *rvalue)
 86.2045 -+{
 86.2046 -+#if WORDS_BIGENDIAN && SIZEOF_ARG == 8
 86.2047 -+  switch (cif->rtype->type)
 86.2048 -+    {
 86.2049 -+    case FFI_TYPE_UINT8:
 86.2050 -+    case FFI_TYPE_UINT16:
 86.2051 -+    case FFI_TYPE_UINT32:
 86.2052 -+      *(UINT64 *)rvalue >>= 32;
 86.2053 -+      break;
 86.2054 -+
 86.2055 -+    case FFI_TYPE_SINT8:
 86.2056 -+    case FFI_TYPE_SINT16:
 86.2057 -+    case FFI_TYPE_SINT32:
 86.2058 -+    case FFI_TYPE_INT:
 86.2059 -+      *(SINT64 *)rvalue >>= 32;
 86.2060 -+      break;
 86.2061 -+
 86.2062 -+    default:
 86.2063 -+      break;
 86.2064 -+    }
 86.2065 -+#endif
 86.2066 -+}
 86.2067 - 
 86.2068 - /* This is a generic definition of ffi_raw_call, to be used if the
 86.2069 -  * native system does not provide a machine-specific implementation.
 86.2070 -@@ -227,6 +292,7 @@
 86.2071 -   void **avalue = (void**) alloca (cif->nargs * sizeof (void*));
 86.2072 -   ffi_java_raw_to_ptrarray (cif, raw, avalue);
 86.2073 -   ffi_call (cif, fn, rvalue, avalue);
 86.2074 -+  ffi_java_rvalue_to_raw (cif, rvalue);
 86.2075 - }
 86.2076 - 
 86.2077 - #if FFI_CLOSURES		/* base system provides closures */
 86.2078 -@@ -240,6 +306,7 @@
 86.2079 - 
 86.2080 -   ffi_java_ptrarray_to_raw (cif, avalue, raw);
 86.2081 -   (*cl->fun) (cif, rvalue, raw, cl->user_data);
 86.2082 -+  ffi_java_raw_to_rvalue (cif, rvalue);
 86.2083 - }
 86.2084 - 
 86.2085 - /* Again, here is the generic version of ffi_prep_raw_closure, which
 86.2086 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/m68k/ffi.c gcc/libffi/src/m68k/ffi.c
 86.2087 ---- gcc-3.2.2.orig/libffi/src/m68k/ffi.c	Sun Aug  8 22:27:19 1999
 86.2088 -+++ gcc/libffi/src/m68k/ffi.c	Fri Jul 19 08:08:30 2002
 86.2089 -@@ -16,14 +16,11 @@
 86.2090 - ffi_prep_args (void *stack, extended_cif *ecif)
 86.2091 - {
 86.2092 -   unsigned int i;
 86.2093 --  int tmp;
 86.2094 --  unsigned int avn;
 86.2095 -   void **p_argv;
 86.2096 -   char *argp;
 86.2097 -   ffi_type **p_arg;
 86.2098 -   void *struct_value_ptr;
 86.2099 - 
 86.2100 --  tmp = 0;
 86.2101 -   argp = stack;
 86.2102 - 
 86.2103 -   if (ecif->cif->rtype->type == FFI_TYPE_STRUCT
 86.2104 -@@ -32,11 +29,10 @@
 86.2105 -   else
 86.2106 -     struct_value_ptr = NULL;
 86.2107 - 
 86.2108 --  avn = ecif->cif->nargs;
 86.2109 -   p_argv = ecif->avalue;
 86.2110 - 
 86.2111 -   for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
 86.2112 --       i != 0 && avn != 0;
 86.2113 -+       i != 0;
 86.2114 -        i--, p_arg++)
 86.2115 -     {
 86.2116 -       size_t z;
 86.2117 -@@ -45,9 +41,6 @@
 86.2118 -       if (((*p_arg)->alignment - 1) & (unsigned) argp)
 86.2119 - 	argp = (char *) ALIGN (argp, (*p_arg)->alignment);
 86.2120 - 
 86.2121 --      if (avn != 0) 
 86.2122 --	{
 86.2123 --	  avn--;
 86.2124 - 	  z = (*p_arg)->size;
 86.2125 - 	  if (z < sizeof (int))
 86.2126 - 	    {
 86.2127 -@@ -82,7 +75,6 @@
 86.2128 - 	    memcpy (argp, *p_argv, z);
 86.2129 - 	  p_argv++;
 86.2130 - 	  argp += z;
 86.2131 --	}
 86.2132 -     }
 86.2133 - 
 86.2134 -   return struct_value_ptr;
 86.2135 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/mips/ffi.c gcc/libffi/src/mips/ffi.c
 86.2136 ---- gcc-3.2.2.orig/libffi/src/mips/ffi.c	Sat Mar  3 07:21:23 2001
 86.2137 -+++ gcc/libffi/src/mips/ffi.c	Fri Jul 19 08:08:31 2002
 86.2138 -@@ -23,6 +23,7 @@
 86.2139 -    OTHER DEALINGS IN THE SOFTWARE.
 86.2140 -    ----------------------------------------------------------------------- */
 86.2141 - 
 86.2142 -+#include <sgidefs.h>
 86.2143 - #include <ffi.h>
 86.2144 - #include <ffi_common.h>
 86.2145 - 
 86.2146 -@@ -50,7 +51,6 @@
 86.2147 - 			  int flags)
 86.2148 - {
 86.2149 -   register int i;
 86.2150 --  register int avn;
 86.2151 -   register void **p_argv;
 86.2152 -   register char *argp;
 86.2153 -   register ffi_type **p_arg;
 86.2154 -@@ -80,12 +80,9 @@
 86.2155 -       FIX_ARGP;
 86.2156 -     }
 86.2157 - 
 86.2158 --  avn = ecif->cif->nargs;
 86.2159 -   p_argv = ecif->avalue;
 86.2160 - 
 86.2161 --  for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
 86.2162 --       i && avn;
 86.2163 --       i--, p_arg++)
 86.2164 -+  for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types; i; i--, p_arg++)
 86.2165 -     {
 86.2166 -       size_t z;
 86.2167 - 
 86.2168 -@@ -101,9 +98,6 @@
 86.2169 - #define OFFSET sizeof(int)
 86.2170 - #endif      
 86.2171 - 
 86.2172 --      if (avn) 
 86.2173 --	{
 86.2174 --	  avn--;
 86.2175 - 	  z = (*p_arg)->size;
 86.2176 - 	  if (z < sizeof(SLOT_TYPE_UNSIGNED))
 86.2177 - 	    {
 86.2178 -@@ -179,7 +173,6 @@
 86.2179 - 	  p_argv++;
 86.2180 - 	  argp += z;
 86.2181 - 	  FIX_ARGP;
 86.2182 --	}
 86.2183 -     }
 86.2184 -   
 86.2185 -   return;
 86.2186 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/powerpc/darwin.S gcc/libffi/src/powerpc/darwin.S
 86.2187 ---- gcc-3.2.2.orig/libffi/src/powerpc/darwin.S	Sat Jan 19 01:22:34 2002
 86.2188 -+++ gcc/libffi/src/powerpc/darwin.S	Thu Jan 23 03:21:55 2003
 86.2189 -@@ -3,8 +3,6 @@
 86.2190 -    
 86.2191 -    PowerPC Assembly glue.
 86.2192 - 
 86.2193 --   $Id: darwin.S,v 1.2 2002/01/18 16:22:34 dje Exp $
 86.2194 --
 86.2195 -    Permission is hereby granted, free of charge, to any person obtaining
 86.2196 -    a copy of this software and associated documentation files (the
 86.2197 -    ``Software''), to deal in the Software without restriction, including
 86.2198 -@@ -39,30 +37,34 @@
 86.2199 - .text
 86.2200 - 	.align 2
 86.2201 - _ffi_call_DARWIN:
 86.2202 --	mr      r12,r8 // We only need r12 until the call, so it doesn't have to be saved...
 86.2203 -+LFB0:	
 86.2204 -+	mr      r12,r8		/* We only need r12 until the call,
 86.2205 -+				so it doesn't have to be saved...  */
 86.2206 -+LFB1:	
 86.2207 - 	/* Save the old stack pointer as AP.  */
 86.2208 - 	mr	r8,r1
 86.2209 --
 86.2210 -+LCFI0:	
 86.2211 - 	/* Allocate the stack space we need.  */
 86.2212 - 	stwux	r1,r1,r4	
 86.2213 - 	
 86.2214 - 	/* Save registers we use.  */
 86.2215 - 	mflr	r9
 86.2216 - 
 86.2217 --	stw	r28,-16(r8)
 86.2218 -+	stw	r28,-16(r8)	
 86.2219 - 	stw	r29,-12(r8)
 86.2220 - 	stw	r30, -8(r8)
 86.2221 - 	stw	r31, -4(r8)
 86.2222 --	
 86.2223 --	stw	r9,  8(r8)
 86.2224 -+
 86.2225 -+	stw	r9,  8(r8)	
 86.2226 - 	stw	r2, 20(r1)
 86.2227 -+LCFI1:	
 86.2228 - 
 86.2229 - 	/* Save arguments over call...  */
 86.2230 --	mr	r31,r5	/* flags, */
 86.2231 --	mr	r30,r6	/* rvalue, */
 86.2232 --	mr	r29,r7	/* function address, */
 86.2233 --	mr	r28,r8	/* our AP. */
 86.2234 --		
 86.2235 -+	mr	r31,r5	/* flags,  */
 86.2236 -+	mr	r30,r6	/* rvalue,  */
 86.2237 -+	mr	r29,r7	/* function address,  */
 86.2238 -+	mr	r28,r8	/* our AP.  */
 86.2239 -+LCFI2:		
 86.2240 - 	/* Call ffi_prep_args.  */
 86.2241 - 	mr	r4,r1
 86.2242 - 	li	r9,0
 86.2243 -@@ -145,7 +147,8 @@
 86.2244 - L(float_return_value):
 86.2245 - 	stfs	f1,0(r30)
 86.2246 - 	b	L(done_return_value)
 86.2247 --//END(_ffi_call_DARWIN)
 86.2248 -+LFE1:	
 86.2249 -+/* END(_ffi_call_DARWIN)  */
 86.2250 - 
 86.2251 - /* Provide a null definition of _ffi_call_AIX.  */
 86.2252 - .text
 86.2253 -@@ -155,5 +158,61 @@
 86.2254 - 	.align 2
 86.2255 - _ffi_call_AIX:
 86.2256 - 	blr
 86.2257 --//END(_ffi_call_AIX)
 86.2258 -+/* END(_ffi_call_AIX)  */
 86.2259 - 
 86.2260 -+.data
 86.2261 -+.section __TEXT,__eh_frame
 86.2262 -+Lframe1:
 86.2263 -+	.set	L$set$0,LECIE1-LSCIE1
 86.2264 -+	.long	L$set$0	; Length of Common Information Entry
 86.2265 -+LSCIE1:
 86.2266 -+	.long	0x0	; CIE Identifier Tag
 86.2267 -+	.byte	0x1	; CIE Version
 86.2268 -+	.ascii	"zR\0"	; CIE Augmentation
 86.2269 -+	.byte	0x1	; uleb128 0x1; CIE Code Alignment Factor
 86.2270 -+	.byte	0x7c	; sleb128 -4; CIE Data Alignment Factor
 86.2271 -+	.byte	0x41	; CIE RA Column
 86.2272 -+	.byte   0x1     ; uleb128 0x1; Augmentation size
 86.2273 -+	.byte   0x10    ; FDE Encoding (pcrel)
 86.2274 -+	.byte	0xc	; DW_CFA_def_cfa
 86.2275 -+	.byte	0x1	; uleb128 0x1
 86.2276 -+	.byte	0x0	; uleb128 0x0
 86.2277 -+	.align	2
 86.2278 -+LECIE1:
 86.2279 -+LSFDE1:
 86.2280 -+	.set	L$set$1,LEFDE1-LASFDE1
 86.2281 -+	.long	L$set$1	; FDE Length
 86.2282 -+LASFDE1:
 86.2283 -+	.set	L$set$2,LASFDE1-Lframe1
 86.2284 -+	.long	L$set$2	; FDE CIE offset
 86.2285 -+	.long	LFB0-.	; FDE initial location
 86.2286 -+	.set	L$set$3,LFE1-LFB0
 86.2287 -+	.long	L$set$3	; FDE address range
 86.2288 -+	.byte   0x0     ; uleb128 0x0; Augmentation size
 86.2289 -+	.byte	0x4	; DW_CFA_advance_loc4
 86.2290 -+	.set	L$set$4,LCFI0-LFB1
 86.2291 -+	.long	L$set$4
 86.2292 -+	.byte	0xd	; DW_CFA_def_cfa_register
 86.2293 -+	.byte	0x08	; uleb128 0x08 
 86.2294 -+	.byte	0x4	; DW_CFA_advance_loc4
 86.2295 -+	.set	L$set$5,LCFI1-LCFI0
 86.2296 -+	.long	L$set$5
 86.2297 -+	.byte   0x11    ; DW_CFA_offset_extended_sf
 86.2298 -+	.byte	0x41	; uleb128 0x41
 86.2299 -+	.byte   0x7e    ; sleb128 -2
 86.2300 -+	.byte	0x9f	; DW_CFA_offset, column 0x1f 
 86.2301 -+	.byte	0x1	; uleb128 0x1 
 86.2302 -+	.byte	0x9e	; DW_CFA_offset, column 0x1e
 86.2303 -+	.byte	0x2	; uleb128 0x2
 86.2304 -+	.byte	0x9d	; DW_CFA_offset, column 0x1d 
 86.2305 -+	.byte	0x3	; uleb128 0x3 
 86.2306 -+	.byte	0x9c	; DW_CFA_offset, column 0x1c 
 86.2307 -+	.byte	0x4	; uleb128 0x4
 86.2308 -+	.byte	0x4	; DW_CFA_advance_loc4 
 86.2309 -+	.set	L$set$6,LCFI2-LCFI1
 86.2310 -+	.long	L$set$6
 86.2311 -+	.byte	0xd	; DW_CFA_def_cfa_register 
 86.2312 -+	.byte	0x1c	; uleb128 0x1c 
 86.2313 -+	.align 2
 86.2314 -+LEFDE1:
 86.2315 -+	
 86.2316 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/prep_cif.c gcc/libffi/src/prep_cif.c
 86.2317 ---- gcc-3.2.2.orig/libffi/src/prep_cif.c	Sat Mar  3 07:21:22 2001
 86.2318 -+++ gcc/libffi/src/prep_cif.c	Mon Sep 30 20:59:42 2002
 86.2319 -@@ -103,7 +103,8 @@
 86.2320 -   /* Perform a sanity check on the return type */
 86.2321 -   FFI_ASSERT(ffi_type_test(cif->rtype));
 86.2322 - 
 86.2323 --#ifndef M68K
 86.2324 -+  /* x86-64 and s390 stack space allocation is handled in prep_machdep.  */
 86.2325 -+#if !defined M68K && !defined __x86_64__ && !defined S390
 86.2326 -   /* Make space for the return structure pointer */
 86.2327 -   if (cif->rtype->type == FFI_TYPE_STRUCT
 86.2328 - #ifdef SPARC
 86.2329 -@@ -122,6 +123,7 @@
 86.2330 -       if (((*ptr)->size == 0) && (initialize_aggregate((*ptr)) != FFI_OK))
 86.2331 - 	return FFI_BAD_TYPEDEF;
 86.2332 - 
 86.2333 -+#if !defined __x86_64__ && !defined S390
 86.2334 - #ifdef SPARC
 86.2335 -       if (((*ptr)->type == FFI_TYPE_STRUCT
 86.2336 - 	   && ((*ptr)->size > 16 || cif->abi != FFI_V9))
 86.2337 -@@ -137,6 +139,7 @@
 86.2338 - 	  
 86.2339 - 	  bytes += STACK_ARG_SIZE((*ptr)->size);
 86.2340 - 	}
 86.2341 -+#endif
 86.2342 -     }
 86.2343 - 
 86.2344 -   cif->bytes = bytes;
 86.2345 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/s390/ffi.c gcc/libffi/src/s390/ffi.c
 86.2346 ---- gcc-3.2.2.orig/libffi/src/s390/ffi.c	Thu Jan  1 09:00:00 1970
 86.2347 -+++ gcc/libffi/src/s390/ffi.c	Thu Feb  6 08:58:57 2003
 86.2348 -@@ -0,0 +1,753 @@
 86.2349 -+/* -----------------------------------------------------------------------
 86.2350 -+   ffi.c - Copyright (c) 2000 Software AG
 86.2351 -+ 
 86.2352 -+   S390 Foreign Function Interface
 86.2353 -+ 
 86.2354 -+   Permission is hereby granted, free of charge, to any person obtaining
 86.2355 -+   a copy of this software and associated documentation files (the
 86.2356 -+   ``Software''), to deal in the Software without restriction, including
 86.2357 -+   without limitation the rights to use, copy, modify, merge, publish,
 86.2358 -+   distribute, sublicense, and/or sell copies of the Software, and to
 86.2359 -+   permit persons to whom the Software is furnished to do so, subject to
 86.2360 -+   the following conditions:
 86.2361 -+ 
 86.2362 -+   The above copyright notice and this permission notice shall be included
 86.2363 -+   in all copies or substantial portions of the Software.
 86.2364 -+ 
 86.2365 -+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 86.2366 -+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 86.2367 -+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 86.2368 -+   IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
 86.2369 -+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 86.2370 -+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 86.2371 -+   OTHER DEALINGS IN THE SOFTWARE.
 86.2372 -+   ----------------------------------------------------------------------- */
 86.2373 -+/*====================================================================*/
 86.2374 -+/*                          Includes                                  */
 86.2375 -+/*                          --------                                  */
 86.2376 -+/*====================================================================*/
 86.2377 -+ 
 86.2378 -+#include <ffi.h>
 86.2379 -+#include <ffi_common.h>
 86.2380 -+ 
 86.2381 -+#include <stdlib.h>
 86.2382 -+#include <stdio.h>
 86.2383 -+ 
 86.2384 -+/*====================== End of Includes =============================*/
 86.2385 -+ 
 86.2386 -+/*====================================================================*/
 86.2387 -+/*                           Defines                                  */
 86.2388 -+/*                           -------                                  */
 86.2389 -+/*====================================================================*/
 86.2390 -+
 86.2391 -+/* Maximum number of GPRs available for argument passing.  */ 
 86.2392 -+#define MAX_GPRARGS 5
 86.2393 -+
 86.2394 -+/* Maximum number of FPRs available for argument passing.  */ 
 86.2395 -+#ifdef __s390x__
 86.2396 -+#define MAX_FPRARGS 4
 86.2397 -+#else
 86.2398 -+#define MAX_FPRARGS 2
 86.2399 -+#endif
 86.2400 -+
 86.2401 -+/* Round to multiple of 16.  */
 86.2402 -+#define ROUND_SIZE(size) (((size) + 15) & ~15)
 86.2403 -+
 86.2404 -+/* If these values change, sysv.S must be adapted!  */
 86.2405 -+#define FFI390_RET_VOID		0
 86.2406 -+#define FFI390_RET_STRUCT	1
 86.2407 -+#define FFI390_RET_FLOAT	2
 86.2408 -+#define FFI390_RET_DOUBLE	3
 86.2409 -+#define FFI390_RET_INT32	4
 86.2410 -+#define FFI390_RET_INT64	5
 86.2411 -+
 86.2412 -+/*===================== End of Defines ===============================*/
 86.2413 -+ 
 86.2414 -+/*====================================================================*/
 86.2415 -+/*                          Prototypes                                */
 86.2416 -+/*                          ----------                                */
 86.2417 -+/*====================================================================*/
 86.2418 -+ 
 86.2419 -+static void ffi_prep_args (unsigned char *, extended_cif *);
 86.2420 -+static int ffi_check_float_struct (ffi_type *);
 86.2421 -+void
 86.2422 -+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
 86.2423 -+__attribute__ ((visibility ("hidden")))
 86.2424 -+#endif
 86.2425 -+ffi_closure_helper_SYSV (ffi_closure *, unsigned long *, 
 86.2426 -+			 unsigned long long *, unsigned long *);
 86.2427 -+
 86.2428 -+/*====================== End of Prototypes ===========================*/
 86.2429 -+ 
 86.2430 -+/*====================================================================*/
 86.2431 -+/*                          Externals                                 */
 86.2432 -+/*                          ---------                                 */
 86.2433 -+/*====================================================================*/
 86.2434 -+ 
 86.2435 -+extern void ffi_call_SYSV(unsigned,
 86.2436 -+			  extended_cif *,
 86.2437 -+			  void (*)(unsigned char *, extended_cif *),
 86.2438 -+			  unsigned,
 86.2439 -+			  void *,
 86.2440 -+			  void (*fn)());
 86.2441 -+
 86.2442 -+extern void ffi_closure_SYSV(void);
 86.2443 -+ 
 86.2444 -+/*====================== End of Externals ============================*/
 86.2445 -+ 
 86.2446 -+/*====================================================================*/
 86.2447 -+/*                                                                    */
 86.2448 -+/* Name     - ffi_check_struct_type.                                  */
 86.2449 -+/*                                                                    */
 86.2450 -+/* Function - Determine if a structure can be passed within a         */
 86.2451 -+/*            general purpose or floating point register.             */
 86.2452 -+/*                                                                    */
 86.2453 -+/*====================================================================*/
 86.2454 -+ 
 86.2455 -+static int
 86.2456 -+ffi_check_struct_type (ffi_type *arg)
 86.2457 -+{
 86.2458 -+  size_t size = arg->size;
 86.2459 -+
 86.2460 -+  /* If the struct has just one element, look at that element
 86.2461 -+     to find out whether to consider the struct as floating point.  */
 86.2462 -+  while (arg->type == FFI_TYPE_STRUCT 
 86.2463 -+         && arg->elements[0] && !arg->elements[1])
 86.2464 -+    arg = arg->elements[0];
 86.2465 -+
 86.2466 -+  /* Structs of size 1, 2, 4, and 8 are passed in registers,
 86.2467 -+     just like the corresponding int/float types.  */
 86.2468 -+  switch (size)
 86.2469 -+    {
 86.2470 -+      case 1:
 86.2471 -+        return FFI_TYPE_UINT8;
 86.2472 -+
 86.2473 -+      case 2:
 86.2474 -+        return FFI_TYPE_UINT16;
 86.2475 -+
 86.2476 -+      case 4:
 86.2477 -+	if (arg->type == FFI_TYPE_FLOAT)
 86.2478 -+          return FFI_TYPE_FLOAT;
 86.2479 -+	else
 86.2480 -+	  return FFI_TYPE_UINT32;
 86.2481 -+
 86.2482 -+      case 8:
 86.2483 -+	if (arg->type == FFI_TYPE_DOUBLE)
 86.2484 -+          return FFI_TYPE_DOUBLE;
 86.2485 -+	else
 86.2486 -+	  return FFI_TYPE_UINT64;
 86.2487 -+
 86.2488 -+      default:
 86.2489 -+	break;
 86.2490 -+    }
 86.2491 -+
 86.2492 -+  /* Other structs are passed via a pointer to the data.  */
 86.2493 -+  return FFI_TYPE_POINTER;
 86.2494 -+}
 86.2495 -+ 
 86.2496 -+/*======================== End of Routine ============================*/
 86.2497 -+ 
 86.2498 -+/*====================================================================*/
 86.2499 -+/*                                                                    */
 86.2500 -+/* Name     - ffi_prep_args.                                          */
 86.2501 -+/*                                                                    */
 86.2502 -+/* Function - Prepare parameters for call to function.                */
 86.2503 -+/*                                                                    */
 86.2504 -+/* ffi_prep_args is called by the assembly routine once stack space   */
 86.2505 -+/* has been allocated for the function's arguments.                   */
 86.2506 -+/*                                                                    */
 86.2507 -+/*====================================================================*/
 86.2508 -+ 
 86.2509 -+static void
 86.2510 -+ffi_prep_args (unsigned char *stack, extended_cif *ecif)
 86.2511 -+{
 86.2512 -+  /* The stack space will be filled with those areas:
 86.2513 -+
 86.2514 -+	FPR argument register save area     (highest addresses)
 86.2515 -+	GPR argument register save area
 86.2516 -+	temporary struct copies
 86.2517 -+	overflow argument area              (lowest addresses)
 86.2518 -+
 86.2519 -+     We set up the following pointers:
 86.2520 -+
 86.2521 -+        p_fpr: bottom of the FPR area (growing upwards)
 86.2522 -+	p_gpr: bottom of the GPR area (growing upwards)
 86.2523 -+	p_ov: bottom of the overflow area (growing upwards)
 86.2524 -+	p_struct: top of the struct copy area (growing downwards)
 86.2525 -+
 86.2526 -+     All areas are kept aligned to twice the word size.  */
 86.2527 -+
 86.2528 -+  int gpr_off = ecif->cif->bytes;
 86.2529 -+  int fpr_off = gpr_off + ROUND_SIZE (MAX_GPRARGS * sizeof (long));
 86.2530 -+
 86.2531 -+  unsigned long long *p_fpr = (unsigned long long *)(stack + fpr_off);
 86.2532 -+  unsigned long *p_gpr = (unsigned long *)(stack + gpr_off);
 86.2533 -+  unsigned char *p_struct = (unsigned char *)p_gpr;
 86.2534 -+  unsigned long *p_ov = (unsigned long *)stack;
 86.2535 -+
 86.2536 -+  int n_fpr = 0;
 86.2537 -+  int n_gpr = 0;
 86.2538 -+  int n_ov = 0;
 86.2539 -+
 86.2540 -+  ffi_type **ptr;
 86.2541 -+  void **p_argv = ecif->avalue;
 86.2542 -+  int i;
 86.2543 -+ 
 86.2544 -+  /* If we returning a structure then we set the first parameter register
 86.2545 -+     to the address of where we are returning this structure.  */
 86.2546 -+
 86.2547 -+  if (ecif->cif->flags == FFI390_RET_STRUCT)
 86.2548 -+    p_gpr[n_gpr++] = (unsigned long) ecif->rvalue;
 86.2549 -+
 86.2550 -+  /* Now for the arguments.  */
 86.2551 -+ 
 86.2552 -+  for (ptr = ecif->cif->arg_types, i = ecif->cif->nargs;
 86.2553 -+       i > 0;
 86.2554 -+       i--, ptr++, p_argv++)
 86.2555 -+    {
 86.2556 -+      void *arg = *p_argv;
 86.2557 -+      int type = (*ptr)->type;
 86.2558 -+
 86.2559 -+      /* Check how a structure type is passed.  */
 86.2560 -+      if (type == FFI_TYPE_STRUCT)
 86.2561 -+	{
 86.2562 -+	  type = ffi_check_struct_type (*ptr);
 86.2563 -+
 86.2564 -+	  /* If we pass the struct via pointer, copy the data.  */
 86.2565 -+	  if (type == FFI_TYPE_POINTER)
 86.2566 -+	    {
 86.2567 -+	      p_struct -= ROUND_SIZE ((*ptr)->size);
 86.2568 -+	      memcpy (p_struct, (char *)arg, (*ptr)->size);
 86.2569 -+	      arg = &p_struct;
 86.2570 -+	    }
 86.2571 -+	}
 86.2572 -+
 86.2573 -+      /* Pointers are passed like UINTs of the same size.  */
 86.2574 -+      if (type == FFI_TYPE_POINTER)
 86.2575 -+#ifdef __s390x__
 86.2576 -+	type = FFI_TYPE_UINT64;
 86.2577 -+#else
 86.2578 -+	type = FFI_TYPE_UINT32;
 86.2579 -+#endif
 86.2580 -+
 86.2581 -+      /* Now handle all primitive int/float data types.  */
 86.2582 -+      switch (type) 
 86.2583 -+	{
 86.2584 -+	  case FFI_TYPE_DOUBLE:
 86.2585 -+	    if (n_fpr < MAX_FPRARGS)
 86.2586 -+	      p_fpr[n_fpr++] = *(unsigned long long *) arg;
 86.2587 -+	    else
 86.2588 -+#ifdef __s390x__
 86.2589 -+	      p_ov[n_ov++] = *(unsigned long *) arg;
 86.2590 -+#else
 86.2591 -+	      p_ov[n_ov++] = ((unsigned long *) arg)[0],
 86.2592 -+	      p_ov[n_ov++] = ((unsigned long *) arg)[1];
 86.2593 -+#endif
 86.2594 -+	    break;
 86.2595 -+	
 86.2596 -+	  case FFI_TYPE_FLOAT:
 86.2597 -+	    if (n_fpr < MAX_FPRARGS)
 86.2598 -+	      p_fpr[n_fpr++] = (long long) *(unsigned int *) arg << 32;
 86.2599 -+	    else
 86.2600 -+	      p_ov[n_ov++] = *(unsigned int *) arg;
 86.2601 -+	    break;
 86.2602 -+ 
 86.2603 -+	  case FFI_TYPE_UINT64:
 86.2604 -+	  case FFI_TYPE_SINT64:
 86.2605 -+#ifdef __s390x__
 86.2606 -+	    if (n_gpr < MAX_GPRARGS)
 86.2607 -+	      p_gpr[n_gpr++] = *(unsigned long *) arg;
 86.2608 -+	    else
 86.2609 -+	      p_ov[n_ov++] = *(unsigned long *) arg;
 86.2610 -+#else
 86.2611 -+	    if (n_gpr == MAX_GPRARGS-1)
 86.2612 -+	      n_gpr = MAX_GPRARGS;
 86.2613 -+	    if (n_gpr < MAX_GPRARGS)
 86.2614 -+	      p_gpr[n_gpr++] = ((unsigned long *) arg)[0],
 86.2615 -+	      p_gpr[n_gpr++] = ((unsigned long *) arg)[1];
 86.2616 -+	    else
 86.2617 -+	      p_ov[n_ov++] = ((unsigned long *) arg)[0],
 86.2618 -+	      p_ov[n_ov++] = ((unsigned long *) arg)[1];
 86.2619 -+#endif
 86.2620 -+	    break;
 86.2621 -+ 
 86.2622 -+	  case FFI_TYPE_UINT32:
 86.2623 -+	    if (n_gpr < MAX_GPRARGS)
 86.2624 -+	      p_gpr[n_gpr++] = *(unsigned int *) arg;
 86.2625 -+	    else
 86.2626 -+	      p_ov[n_ov++] = *(unsigned int *) arg;
 86.2627 -+	    break;
 86.2628 -+ 
 86.2629 -+	  case FFI_TYPE_INT:
 86.2630 -+	  case FFI_TYPE_SINT32:
 86.2631 -+	    if (n_gpr < MAX_GPRARGS)
 86.2632 -+	      p_gpr[n_gpr++] = *(signed int *) arg;
 86.2633 -+	    else
 86.2634 -+	      p_ov[n_ov++] = *(signed int *) arg;
 86.2635 -+	    break;
 86.2636 -+ 
 86.2637 -+	  case FFI_TYPE_UINT16:
 86.2638 -+	    if (n_gpr < MAX_GPRARGS)
 86.2639 -+	      p_gpr[n_gpr++] = *(unsigned short *) arg;
 86.2640 -+	    else
 86.2641 -+	      p_ov[n_ov++] = *(unsigned short *) arg;
 86.2642 -+	    break;
 86.2643 -+ 
 86.2644 -+	  case FFI_TYPE_SINT16:
 86.2645 -+	    if (n_gpr < MAX_GPRARGS)
 86.2646 -+	      p_gpr[n_gpr++] = *(signed short *) arg;
 86.2647 -+	    else
 86.2648 -+	      p_ov[n_ov++] = *(signed short *) arg;
 86.2649 -+	    break;
 86.2650 -+
 86.2651 -+	  case FFI_TYPE_UINT8:
 86.2652 -+	    if (n_gpr < MAX_GPRARGS)
 86.2653 -+	      p_gpr[n_gpr++] = *(unsigned char *) arg;
 86.2654 -+	    else
 86.2655 -+	      p_ov[n_ov++] = *(unsigned char *) arg;
 86.2656 -+	    break;
 86.2657 -+ 
 86.2658 -+	  case FFI_TYPE_SINT8:
 86.2659 -+	    if (n_gpr < MAX_GPRARGS)
 86.2660 -+	      p_gpr[n_gpr++] = *(signed char *) arg;
 86.2661 -+	    else
 86.2662 -+	      p_ov[n_ov++] = *(signed char *) arg;
 86.2663 -+	    break;
 86.2664 -+ 
 86.2665 -+	  default:
 86.2666 -+	    FFI_ASSERT (0);
 86.2667 -+	    break;
 86.2668 -+        }
 86.2669 -+    }
 86.2670 -+}
 86.2671 -+
 86.2672 -+/*======================== End of Routine ============================*/
 86.2673 -+ 
 86.2674 -+/*====================================================================*/
 86.2675 -+/*                                                                    */
 86.2676 -+/* Name     - ffi_prep_cif_machdep.                                   */
 86.2677 -+/*                                                                    */
 86.2678 -+/* Function - Perform machine dependent CIF processing.               */
 86.2679 -+/*                                                                    */
 86.2680 -+/*====================================================================*/
 86.2681 -+ 
 86.2682 -+ffi_status
 86.2683 -+ffi_prep_cif_machdep(ffi_cif *cif)
 86.2684 -+{
 86.2685 -+  size_t struct_size = 0;
 86.2686 -+  int n_gpr = 0;
 86.2687 -+  int n_fpr = 0;
 86.2688 -+  int n_ov = 0;
 86.2689 -+
 86.2690 -+  ffi_type **ptr;
 86.2691 -+  int i;
 86.2692 -+
 86.2693 -+  /* Determine return value handling.  */ 
 86.2694 -+
 86.2695 -+  switch (cif->rtype->type)
 86.2696 -+    {
 86.2697 -+      /* Void is easy.  */
 86.2698 -+      case FFI_TYPE_VOID:
 86.2699 -+	cif->flags = FFI390_RET_VOID;
 86.2700 -+	break;
 86.2701 -+
 86.2702 -+      /* Structures are returned via a hidden pointer.  */
 86.2703 -+      case FFI_TYPE_STRUCT:
 86.2704 -+	cif->flags = FFI390_RET_STRUCT;
 86.2705 -+	n_gpr++;  /* We need one GPR to pass the pointer.  */
 86.2706 -+	break; 
 86.2707 -+
 86.2708 -+      /* Floating point values are returned in fpr 0.  */
 86.2709 -+      case FFI_TYPE_FLOAT:
 86.2710 -+	cif->flags = FFI390_RET_FLOAT;
 86.2711 -+	break;
 86.2712 -+
 86.2713 -+      case FFI_TYPE_DOUBLE:
 86.2714 -+	cif->flags = FFI390_RET_DOUBLE;
 86.2715 -+	break;
 86.2716 -+
 86.2717 -+      /* Integer values are returned in gpr 2 (and gpr 3
 86.2718 -+	 for 64-bit values on 31-bit machines).  */
 86.2719 -+      case FFI_TYPE_UINT64:
 86.2720 -+      case FFI_TYPE_SINT64:
 86.2721 -+	cif->flags = FFI390_RET_INT64;
 86.2722 -+	break;
 86.2723 -+
 86.2724 -+      case FFI_TYPE_POINTER:
 86.2725 -+      case FFI_TYPE_INT:
 86.2726 -+      case FFI_TYPE_UINT32:
 86.2727 -+      case FFI_TYPE_SINT32:
 86.2728 -+      case FFI_TYPE_UINT16:
 86.2729 -+      case FFI_TYPE_SINT16:
 86.2730 -+      case FFI_TYPE_UINT8:
 86.2731 -+      case FFI_TYPE_SINT8:
 86.2732 -+	/* These are to be extended to word size.  */
 86.2733 -+#ifdef __s390x__
 86.2734 -+	cif->flags = FFI390_RET_INT64;
 86.2735 -+#else
 86.2736 -+	cif->flags = FFI390_RET_INT32;
 86.2737 -+#endif
 86.2738 -+	break;
 86.2739 -+ 
 86.2740 -+      default:
 86.2741 -+        FFI_ASSERT (0);
 86.2742 -+        break;
 86.2743 -+    }
 86.2744 -+
 86.2745 -+  /* Now for the arguments.  */
 86.2746 -+ 
 86.2747 -+  for (ptr = cif->arg_types, i = cif->nargs;
 86.2748 -+       i > 0;
 86.2749 -+       i--, ptr++)
 86.2750 -+    {
 86.2751 -+      int type = (*ptr)->type;
 86.2752 -+
 86.2753 -+      /* Check how a structure type is passed.  */
 86.2754 -+      if (type == FFI_TYPE_STRUCT)
 86.2755 -+	{
 86.2756 -+	  type = ffi_check_struct_type (*ptr);
 86.2757 -+
 86.2758 -+	  /* If we pass the struct via pointer, we must reserve space
 86.2759 -+	     to copy its data for proper call-by-value semantics.  */
 86.2760 -+	  if (type == FFI_TYPE_POINTER)
 86.2761 -+	    struct_size += ROUND_SIZE ((*ptr)->size);
 86.2762 -+	}
 86.2763 -+
 86.2764 -+      /* Now handle all primitive int/float data types.  */
 86.2765 -+      switch (type) 
 86.2766 -+	{
 86.2767 -+	  /* The first MAX_FPRARGS floating point arguments
 86.2768 -+	     go in FPRs, the rest overflow to the stack.  */
 86.2769 -+
 86.2770 -+	  case FFI_TYPE_DOUBLE:
 86.2771 -+	    if (n_fpr < MAX_FPRARGS)
 86.2772 -+	      n_fpr++;
 86.2773 -+	    else
 86.2774 -+	      n_ov += sizeof (double) / sizeof (long);
 86.2775 -+	    break;
 86.2776 -+	
 86.2777 -+	  case FFI_TYPE_FLOAT:
 86.2778 -+	    if (n_fpr < MAX_FPRARGS)
 86.2779 -+	      n_fpr++;
 86.2780 -+	    else
 86.2781 -+	      n_ov++;
 86.2782 -+	    break;
 86.2783 -+
 86.2784 -+	  /* On 31-bit machines, 64-bit integers are passed in GPR pairs,
 86.2785 -+	     if one is still available, or else on the stack.  If only one
 86.2786 -+	     register is free, skip the register (it won't be used for any 
 86.2787 -+	     subsequent argument either).  */
 86.2788 -+	      
 86.2789 -+#ifndef __s390x__
 86.2790 -+	  case FFI_TYPE_UINT64:
 86.2791 -+	  case FFI_TYPE_SINT64:
 86.2792 -+	    if (n_gpr == MAX_GPRARGS-1)
 86.2793 -+	      n_gpr = MAX_GPRARGS;
 86.2794 -+	    if (n_gpr < MAX_GPRARGS)
 86.2795 -+	      n_gpr += 2;
 86.2796 -+	    else
 86.2797 -+	      n_ov += 2;
 86.2798 -+	    break;
 86.2799 -+#endif
 86.2800 -+
 86.2801 -+	  /* Everything else is passed in GPRs (until MAX_GPRARGS
 86.2802 -+	     have been used) or overflows to the stack.  */
 86.2803 -+
 86.2804 -+	  default: 
 86.2805 -+	    if (n_gpr < MAX_GPRARGS)
 86.2806 -+	      n_gpr++;
 86.2807 -+	    else
 86.2808 -+	      n_ov++;
 86.2809 -+	    break;
 86.2810 -+        }
 86.2811 -+    }
 86.2812 -+
 86.2813 -+  /* Total stack space as required for overflow arguments
 86.2814 -+     and temporary structure copies.  */
 86.2815 -+
 86.2816 -+  cif->bytes = ROUND_SIZE (n_ov * sizeof (long)) + struct_size;
 86.2817 -+ 
 86.2818 -+  return FFI_OK;
 86.2819 -+}
 86.2820 -+ 
 86.2821 -+/*======================== End of Routine ============================*/
 86.2822 -+ 
 86.2823 -+/*====================================================================*/
 86.2824 -+/*                                                                    */
 86.2825 -+/* Name     - ffi_call.                                               */
 86.2826 -+/*                                                                    */
 86.2827 -+/* Function - Call the FFI routine.                                   */
 86.2828 -+/*                                                                    */
 86.2829 -+/*====================================================================*/
 86.2830 -+ 
 86.2831 -+void
 86.2832 -+ffi_call(ffi_cif *cif,
 86.2833 -+	 void (*fn)(),
 86.2834 -+	 void *rvalue,
 86.2835 -+	 void **avalue)
 86.2836 -+{
 86.2837 -+  int ret_type = cif->flags;
 86.2838 -+  extended_cif ecif;
 86.2839 -+ 
 86.2840 -+  ecif.cif    = cif;
 86.2841 -+  ecif.avalue = avalue;
 86.2842 -+  ecif.rvalue = rvalue;
 86.2843 -+
 86.2844 -+  /* If we don't have a return value, we need to fake one.  */
 86.2845 -+  if (rvalue == NULL)
 86.2846 -+    {
 86.2847 -+      if (ret_type == FFI390_RET_STRUCT)
 86.2848 -+	ecif.rvalue = alloca (cif->rtype->size);
 86.2849 -+      else
 86.2850 -+	ret_type = FFI390_RET_VOID;
 86.2851 -+    } 
 86.2852 -+
 86.2853 -+  switch (cif->abi)
 86.2854 -+    {
 86.2855 -+      case FFI_SYSV:
 86.2856 -+        ffi_call_SYSV (cif->bytes, &ecif, ffi_prep_args,
 86.2857 -+		       ret_type, ecif.rvalue, fn);
 86.2858 -+        break;
 86.2859 -+ 
 86.2860 -+      default:
 86.2861 -+        FFI_ASSERT (0);
 86.2862 -+        break;
 86.2863 -+    }
 86.2864 -+}
 86.2865 -+ 
 86.2866 -+/*======================== End of Routine ============================*/
 86.2867 -+
 86.2868 -+/*====================================================================*/
 86.2869 -+/*                                                                    */
 86.2870 -+/* Name     - ffi_closure_helper_SYSV.                                */
 86.2871 -+/*                                                                    */
 86.2872 -+/* Function - Call a FFI closure target function.                     */
 86.2873 -+/*                                                                    */
 86.2874 -+/*====================================================================*/
 86.2875 -+ 
 86.2876 -+void
 86.2877 -+ffi_closure_helper_SYSV (ffi_closure *closure,
 86.2878 -+			 unsigned long *p_gpr,
 86.2879 -+			 unsigned long long *p_fpr,
 86.2880 -+			 unsigned long *p_ov)
 86.2881 -+{
 86.2882 -+  unsigned long long ret_buffer;
 86.2883 -+
 86.2884 -+  void *rvalue = &ret_buffer;
 86.2885 -+  void **avalue;
 86.2886 -+  void **p_arg;
 86.2887 -+
 86.2888 -+  int n_gpr = 0;
 86.2889 -+  int n_fpr = 0;
 86.2890 -+  int n_ov = 0;
 86.2891 -+
 86.2892 -+  ffi_type **ptr;
 86.2893 -+  int i;
 86.2894 -+
 86.2895 -+  /* Allocate buffer for argument list pointers.  */
 86.2896 -+
 86.2897 -+  p_arg = avalue = alloca (closure->cif->nargs * sizeof (void *));
 86.2898 -+
 86.2899 -+  /* If we returning a structure, pass the structure address 
 86.2900 -+     directly to the target function.  Otherwise, have the target 
 86.2901 -+     function store the return value to the GPR save area.  */
 86.2902 -+
 86.2903 -+  if (closure->cif->flags == FFI390_RET_STRUCT)
 86.2904 -+    rvalue = (void *) p_gpr[n_gpr++];
 86.2905 -+
 86.2906 -+  /* Now for the arguments.  */
 86.2907 -+
 86.2908 -+  for (ptr = closure->cif->arg_types, i = closure->cif->nargs;
 86.2909 -+       i > 0;
 86.2910 -+       i--, p_arg++, ptr++)
 86.2911 -+    {
 86.2912 -+      int deref_struct_pointer = 0;
 86.2913 -+      int type = (*ptr)->type;
 86.2914 -+
 86.2915 -+      /* Check how a structure type is passed.  */
 86.2916 -+      if (type == FFI_TYPE_STRUCT)
 86.2917 -+	{
 86.2918 -+	  type = ffi_check_struct_type (*ptr);
 86.2919 -+
 86.2920 -+	  /* If we pass the struct via pointer, remember to 
 86.2921 -+	     retrieve the pointer later.  */
 86.2922 -+	  if (type == FFI_TYPE_POINTER)
 86.2923 -+	    deref_struct_pointer = 1;
 86.2924 -+	}
 86.2925 -+
 86.2926 -+      /* Pointers are passed like UINTs of the same size.  */
 86.2927 -+      if (type == FFI_TYPE_POINTER)
 86.2928 -+#ifdef __s390x__
 86.2929 -+	type = FFI_TYPE_UINT64;
 86.2930 -+#else
 86.2931 -+	type = FFI_TYPE_UINT32;
 86.2932 -+#endif
 86.2933 -+
 86.2934 -+      /* Now handle all primitive int/float data types.  */
 86.2935 -+      switch (type) 
 86.2936 -+	{
 86.2937 -+	  case FFI_TYPE_DOUBLE:
 86.2938 -+	    if (n_fpr < MAX_FPRARGS)
 86.2939 -+	      *p_arg = &p_fpr[n_fpr++];
 86.2940 -+	    else
 86.2941 -+	      *p_arg = &p_ov[n_ov], 
 86.2942 -+	      n_ov += sizeof (double) / sizeof (long);
 86.2943 -+	    break;
 86.2944 -+	
 86.2945 -+	  case FFI_TYPE_FLOAT:
 86.2946 -+	    if (n_fpr < MAX_FPRARGS)
 86.2947 -+	      *p_arg = &p_fpr[n_fpr++];
 86.2948 -+	    else
 86.2949 -+	      *p_arg = (char *)&p_ov[n_ov++] + sizeof (long) - 4;
 86.2950 -+	    break;
 86.2951 -+ 
 86.2952 -+	  case FFI_TYPE_UINT64:
 86.2953 -+	  case FFI_TYPE_SINT64:
 86.2954 -+#ifdef __s390x__
 86.2955 -+	    if (n_gpr < MAX_GPRARGS)
 86.2956 -+	      *p_arg = &p_gpr[n_gpr++];
 86.2957 -+	    else
 86.2958 -+	      *p_arg = &p_ov[n_ov++];
 86.2959 -+#else
 86.2960 -+	    if (n_gpr == MAX_GPRARGS-1)
 86.2961 -+	      n_gpr = MAX_GPRARGS;
 86.2962 -+	    if (n_gpr < MAX_GPRARGS)
 86.2963 -+	      *p_arg = &p_gpr[n_gpr], n_gpr += 2;
 86.2964 -+	    else
 86.2965 -+	      *p_arg = &p_ov[n_ov], n_ov += 2;
 86.2966 -+#endif
 86.2967 -+	    break;
 86.2968 -+ 
 86.2969 -+	  case FFI_TYPE_INT:
 86.2970 -+	  case FFI_TYPE_UINT32:
 86.2971 -+	  case FFI_TYPE_SINT32:
 86.2972 -+	    if (n_gpr < MAX_GPRARGS)
 86.2973 -+	      *p_arg = (char *)&p_gpr[n_gpr++] + sizeof (long) - 4;
 86.2974 -+	    else
 86.2975 -+	      *p_arg = (char *)&p_ov[n_ov++] + sizeof (long) - 4;
 86.2976 -+	    break;
 86.2977 -+ 
 86.2978 -+	  case FFI_TYPE_UINT16:
 86.2979 -+	  case FFI_TYPE_SINT16:
 86.2980 -+	    if (n_gpr < MAX_GPRARGS)
 86.2981 -+	      *p_arg = (char *)&p_gpr[n_gpr++] + sizeof (long) - 2;
 86.2982 -+	    else
 86.2983 -+	      *p_arg = (char *)&p_ov[n_ov++] + sizeof (long) - 2;
 86.2984 -+	    break;
 86.2985 -+
 86.2986 -+	  case FFI_TYPE_UINT8:
 86.2987 -+	  case FFI_TYPE_SINT8:
 86.2988 -+	    if (n_gpr < MAX_GPRARGS)
 86.2989 -+	      *p_arg = (char *)&p_gpr[n_gpr++] + sizeof (long) - 1;
 86.2990 -+	    else
 86.2991 -+	      *p_arg = (char *)&p_ov[n_ov++] + sizeof (long) - 1;
 86.2992 -+	    break;
 86.2993 -+ 
 86.2994 -+	  default:
 86.2995 -+	    FFI_ASSERT (0);
 86.2996 -+	    break;
 86.2997 -+        }
 86.2998 -+
 86.2999 -+      /* If this is a struct passed via pointer, we need to
 86.3000 -+	 actually retrieve that pointer.  */
 86.3001 -+      if (deref_struct_pointer)
 86.3002 -+	*p_arg = *(void **)*p_arg;
 86.3003 -+    }
 86.3004 -+
 86.3005 -+
 86.3006 -+  /* Call the target function.  */
 86.3007 -+  (closure->fun) (closure->cif, rvalue, avalue, closure->user_data);
 86.3008 -+
 86.3009 -+  /* Convert the return value.  */
 86.3010 -+  switch (closure->cif->rtype->type)
 86.3011 -+    {
 86.3012 -+      /* Void is easy, and so is struct.  */
 86.3013 -+      case FFI_TYPE_VOID:
 86.3014 -+      case FFI_TYPE_STRUCT:
 86.3015 -+	break;
 86.3016 -+
 86.3017 -+      /* Floating point values are returned in fpr 0.  */
 86.3018 -+      case FFI_TYPE_FLOAT:
 86.3019 -+	p_fpr[0] = (long long) *(unsigned int *) rvalue << 32;
 86.3020 -+	break;
 86.3021 -+
 86.3022 -+      case FFI_TYPE_DOUBLE:
 86.3023 -+	p_fpr[0] = *(unsigned long long *) rvalue;
 86.3024 -+	break;
 86.3025 -+
 86.3026 -+      /* Integer values are returned in gpr 2 (and gpr 3
 86.3027 -+	 for 64-bit values on 31-bit machines).  */
 86.3028 -+      case FFI_TYPE_UINT64:
 86.3029 -+      case FFI_TYPE_SINT64:
 86.3030 -+#ifdef __s390x__
 86.3031 -+	p_gpr[0] = *(unsigned long *) rvalue;
 86.3032 -+#else
 86.3033 -+	p_gpr[0] = ((unsigned long *) rvalue)[0],
 86.3034 -+	p_gpr[1] = ((unsigned long *) rvalue)[1];
 86.3035 -+#endif
 86.3036 -+	break;
 86.3037 -+
 86.3038 -+      case FFI_TYPE_POINTER:
 86.3039 -+      case FFI_TYPE_UINT32:
 86.3040 -+      case FFI_TYPE_UINT16:
 86.3041 -+      case FFI_TYPE_UINT8:
 86.3042 -+	p_gpr[0] = *(unsigned long *) rvalue;
 86.3043 -+	break;
 86.3044 -+
 86.3045 -+      case FFI_TYPE_INT:
 86.3046 -+      case FFI_TYPE_SINT32:
 86.3047 -+      case FFI_TYPE_SINT16:
 86.3048 -+      case FFI_TYPE_SINT8:
 86.3049 -+	p_gpr[0] = *(signed long *) rvalue;
 86.3050 -+	break;
 86.3051 -+
 86.3052 -+      default:
 86.3053 -+        FFI_ASSERT (0);
 86.3054 -+        break;
 86.3055 -+    }
 86.3056 -+}
 86.3057 -+ 
 86.3058 -+/*======================== End of Routine ============================*/
 86.3059 -+
 86.3060 -+/*====================================================================*/
 86.3061 -+/*                                                                    */
 86.3062 -+/* Name     - ffi_prep_closure.                                       */
 86.3063 -+/*                                                                    */
 86.3064 -+/* Function - Prepare a FFI closure.                                  */
 86.3065 -+/*                                                                    */
 86.3066 -+/*====================================================================*/
 86.3067 -+ 
 86.3068 -+ffi_status
 86.3069 -+ffi_prep_closure (ffi_closure *closure,
 86.3070 -+                  ffi_cif *cif,
 86.3071 -+                  void (*fun) (ffi_cif *, void *, void **, void *),
 86.3072 -+                  void *user_data)
 86.3073 -+{
 86.3074 -+  FFI_ASSERT (cif->abi == FFI_SYSV);
 86.3075 -+
 86.3076 -+#ifndef __s390x__
 86.3077 -+  *(short *)&closure->tramp [0] = 0x0d10;   /* basr %r1,0 */
 86.3078 -+  *(short *)&closure->tramp [2] = 0x9801;   /* lm %r0,%r1,6(%r1) */
 86.3079 -+  *(short *)&closure->tramp [4] = 0x1006;
 86.3080 -+  *(short *)&closure->tramp [6] = 0x07f1;   /* br %r1 */
 86.3081 -+  *(long  *)&closure->tramp [8] = (long)closure;
 86.3082 -+  *(long  *)&closure->tramp[12] = (long)&ffi_closure_SYSV;
 86.3083 -+#else
 86.3084 -+  *(short *)&closure->tramp [0] = 0x0d10;   /* basr %r1,0 */
 86.3085 -+  *(short *)&closure->tramp [2] = 0xeb01;   /* lmg %r0,%r1,14(%r1) */
 86.3086 -+  *(short *)&closure->tramp [4] = 0x100e;
 86.3087 -+  *(short *)&closure->tramp [6] = 0x0004;
 86.3088 -+  *(short *)&closure->tramp [8] = 0x07f1;   /* br %r1 */
 86.3089 -+  *(long  *)&closure->tramp[16] = (long)closure;
 86.3090 -+  *(long  *)&closure->tramp[24] = (long)&ffi_closure_SYSV;
 86.3091 -+#endif 
 86.3092 -+ 
 86.3093 -+  closure->cif = cif;
 86.3094 -+  closure->user_data = user_data;
 86.3095 -+  closure->fun = fun;
 86.3096 -+ 
 86.3097 -+  return FFI_OK;
 86.3098 -+}
 86.3099 -+
 86.3100 -+/*======================== End of Routine ============================*/
 86.3101 -+ 
 86.3102 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/s390/sysv.S gcc/libffi/src/s390/sysv.S
 86.3103 ---- gcc-3.2.2.orig/libffi/src/s390/sysv.S	Thu Jan  1 09:00:00 1970
 86.3104 -+++ gcc/libffi/src/s390/sysv.S	Thu Nov 28 01:44:35 2002
 86.3105 -@@ -0,0 +1,425 @@
 86.3106 -+/* -----------------------------------------------------------------------
 86.3107 -+   sysv.S - Copyright (c) 2000 Software AG
 86.3108 -+ 
 86.3109 -+   S390 Foreign Function Interface
 86.3110 -+ 
 86.3111 -+   Permission is hereby granted, free of charge, to any person obtaining
 86.3112 -+   a copy of this software and associated documentation files (the
 86.3113 -+   ``Software''), to deal in the Software without restriction, including
 86.3114 -+   without limitation the rights to use, copy, modify, merge, publish,
 86.3115 -+   distribute, sublicense, and/or sell copies of the Software, and to
 86.3116 -+   permit persons to whom the Software is furnished to do so, subject to
 86.3117 -+   the following conditions:
 86.3118 -+ 
 86.3119 -+   The above copyright notice and this permission notice shall be included
 86.3120 -+   in all copies or substantial portions of the Software.
 86.3121 -+ 
 86.3122 -+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 86.3123 -+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 86.3124 -+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 86.3125 -+   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 86.3126 -+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 86.3127 -+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 86.3128 -+   OTHER DEALINGS IN THE SOFTWARE.
 86.3129 -+   ----------------------------------------------------------------------- */
 86.3130 -+
 86.3131 -+#ifndef __s390x__
 86.3132 -+ 
 86.3133 -+.text
 86.3134 -+
 86.3135 -+	# r2:	cif->bytes
 86.3136 -+	# r3:	&ecif
 86.3137 -+	# r4:	ffi_prep_args
 86.3138 -+	# r5:	ret_type
 86.3139 -+	# r6:	ecif.rvalue
 86.3140 -+	# ov:	fn 
 86.3141 -+ 
 86.3142 -+	# This assumes we are using gas.
 86.3143 -+	.globl	ffi_call_SYSV
 86.3144 -+	.type	ffi_call_SYSV,%function
 86.3145 -+ffi_call_SYSV:
 86.3146 -+.LFB1:
 86.3147 -+	stm	%r6,%r15,24(%r15)		# Save registers
 86.3148 -+.LCFI0:
 86.3149 -+	basr	%r13,0				# Set up base register
 86.3150 -+.Lbase:
 86.3151 -+	lr	%r11,%r15			# Set up frame pointer
 86.3152 -+.LCFI1:
 86.3153 -+	sr	%r15,%r2
 86.3154 -+	ahi	%r15,-96-48			# Allocate stack
 86.3155 -+	lr	%r8,%r6				# Save ecif.rvalue
 86.3156 -+	sr	%r9,%r9
 86.3157 -+	ic	%r9,.Ltable-.Lbase(%r13,%r5)	# Load epilog address
 86.3158 -+	l	%r7,96(%r11)			# Load function address
 86.3159 -+	st	%r11,0(%r15)			# Set up back chain
 86.3160 -+	ahi	%r11,-48			# Register save area
 86.3161 -+.LCFI2:
 86.3162 -+
 86.3163 -+	la	%r2,96(%r15)			# Save area
 86.3164 -+						# r3 already holds &ecif
 86.3165 -+	basr	%r14,%r4			# Call ffi_prep_args
 86.3166 -+
 86.3167 -+	lm	%r2,%r6,0(%r11)			# Load arguments
 86.3168 -+	ld	%f0,32(%r11)
 86.3169 -+	ld	%f2,40(%r11)
 86.3170 -+	la	%r14,0(%r13,%r9)		# Set return address
 86.3171 -+	br	%r7				# ... and call function
 86.3172 -+
 86.3173 -+.LretNone:					# Return void
 86.3174 -+	l	%r4,48+56(%r11)
 86.3175 -+	lm	%r6,%r15,48+24(%r11)
 86.3176 -+	br	%r4
 86.3177 -+
 86.3178 -+.LretFloat:
 86.3179 -+	l	%r4,48+56(%r11)
 86.3180 -+	ste	%f0,0(%r8)			# Return float
 86.3181 -+	lm	%r6,%r15,48+24(%r11)
 86.3182 -+	br	%r4
 86.3183 -+ 
 86.3184 -+.LretDouble:
 86.3185 -+	l	%r4,48+56(%r11)
 86.3186 -+	std	%f0,0(%r8)			# Return double
 86.3187 -+	lm	%r6,%r15,48+24(%r11)
 86.3188 -+	br	%r4
 86.3189 -+
 86.3190 -+.LretInt32:
 86.3191 -+	l	%r4,48+56(%r11)
 86.3192 -+	st	%r2,0(%r8)			# Return int
 86.3193 -+	lm	%r6,%r15,48+24(%r11)
 86.3194 -+	br	%r4
 86.3195 -+ 
 86.3196 -+.LretInt64:
 86.3197 -+	l	%r4,48+56(%r11)
 86.3198 -+	stm	%r2,%r3,0(%r8)			# Return long long
 86.3199 -+	lm	%r6,%r15,48+24(%r11)
 86.3200 -+	br	%r4
 86.3201 -+ 
 86.3202 -+.Ltable:
 86.3203 -+	.byte	.LretNone-.Lbase		# FFI390_RET_VOID
 86.3204 -+	.byte	.LretNone-.Lbase		# FFI390_RET_STRUCT
 86.3205 -+	.byte	.LretFloat-.Lbase		# FFI390_RET_FLOAT
 86.3206 -+	.byte	.LretDouble-.Lbase		# FFI390_RET_DOUBLE
 86.3207 -+	.byte	.LretInt32-.Lbase		# FFI390_RET_INT32
 86.3208 -+	.byte	.LretInt64-.Lbase		# FFI390_RET_INT64
 86.3209 -+
 86.3210 -+.LFE1: 
 86.3211 -+.ffi_call_SYSV_end:
 86.3212 -+	.size	 ffi_call_SYSV,.ffi_call_SYSV_end-ffi_call_SYSV
 86.3213 -+
 86.3214 -+
 86.3215 -+	.globl	ffi_closure_SYSV
 86.3216 -+	.type	ffi_closure_SYSV,%function
 86.3217 -+ffi_closure_SYSV:
 86.3218 -+.LFB2:
 86.3219 -+	stm	%r12,%r15,48(%r15)		# Save registers
 86.3220 -+.LCFI10:
 86.3221 -+	basr	%r13,0				# Set up base register
 86.3222 -+.Lcbase:
 86.3223 -+	stm	%r2,%r6,8(%r15)			# Save arguments
 86.3224 -+	std	%f0,64(%r15)
 86.3225 -+	std	%f2,72(%r15)
 86.3226 -+	lr	%r1,%r15			# Set up stack frame
 86.3227 -+	ahi	%r15,-96
 86.3228 -+.LCFI11:
 86.3229 -+	l	%r12,.Lchelper-.Lcbase(%r13)	# Get helper function
 86.3230 -+	lr	%r2,%r0				# Closure
 86.3231 -+	la	%r3,8(%r1)			# GPRs
 86.3232 -+	la	%r4,64(%r1)			# FPRs
 86.3233 -+	la	%r5,96(%r1)			# Overflow
 86.3234 -+	st	%r1,0(%r15)			# Set up back chain
 86.3235 -+
 86.3236 -+	bas	%r14,0(%r12,%r13)		# Call helper
 86.3237 -+
 86.3238 -+	l	%r4,96+56(%r15)
 86.3239 -+	ld	%f0,96+64(%r15)			# Load return registers
 86.3240 -+	lm	%r2,%r3,96+8(%r15)
 86.3241 -+	lm	%r12,%r15,96+48(%r15)
 86.3242 -+	br	%r4
 86.3243 -+
 86.3244 -+	.align 4
 86.3245 -+.Lchelper:
 86.3246 -+	.long	ffi_closure_helper_SYSV-.Lcbase
 86.3247 -+
 86.3248 -+.LFE2: 
 86.3249 -+
 86.3250 -+.ffi_closure_SYSV_end:
 86.3251 -+	.size	 ffi_closure_SYSV,.ffi_closure_SYSV_end-ffi_closure_SYSV
 86.3252 -+
 86.3253 -+
 86.3254 -+	.section	.eh_frame,"a",@progbits
 86.3255 -+.Lframe1:
 86.3256 -+	.4byte	.LECIE1-.LSCIE1	# Length of Common Information Entry
 86.3257 -+.LSCIE1:
 86.3258 -+	.4byte	0x0	# CIE Identifier Tag
 86.3259 -+	.byte	0x1	# CIE Version
 86.3260 -+	.ascii "zR\0"	# CIE Augmentation
 86.3261 -+	.uleb128 0x1	# CIE Code Alignment Factor
 86.3262 -+	.sleb128 -4	# CIE Data Alignment Factor
 86.3263 -+	.byte	0xe	# CIE RA Column
 86.3264 -+	.uleb128 0x1	# Augmentation size
 86.3265 -+	.byte	0x1b	# FDE Encoding (pcrel sdata4)
 86.3266 -+	.byte	0xc	# DW_CFA_def_cfa
 86.3267 -+	.uleb128 0xf
 86.3268 -+	.uleb128 0x60
 86.3269 -+	.align	4
 86.3270 -+.LECIE1:
 86.3271 -+.LSFDE1:
 86.3272 -+	.4byte	.LEFDE1-.LASFDE1	# FDE Length
 86.3273 -+.LASFDE1:
 86.3274 -+	.4byte	.LASFDE1-.Lframe1	# FDE CIE offset
 86.3275 -+	.4byte	.LFB1-.	# FDE initial location
 86.3276 -+	.4byte	.LFE1-.LFB1	# FDE address range
 86.3277 -+	.uleb128 0x0	# Augmentation size
 86.3278 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3279 -+	.4byte	.LCFI0-.LFB1
 86.3280 -+	.byte	0x8f	# DW_CFA_offset, column 0xf
 86.3281 -+	.uleb128 0x9
 86.3282 -+	.byte	0x8e	# DW_CFA_offset, column 0xe
 86.3283 -+	.uleb128 0xa
 86.3284 -+	.byte	0x8d	# DW_CFA_offset, column 0xd
 86.3285 -+	.uleb128 0xb
 86.3286 -+	.byte	0x8c	# DW_CFA_offset, column 0xc
 86.3287 -+	.uleb128 0xc
 86.3288 -+	.byte	0x8b	# DW_CFA_offset, column 0xb
 86.3289 -+	.uleb128 0xd
 86.3290 -+	.byte	0x8a	# DW_CFA_offset, column 0xa
 86.3291 -+	.uleb128 0xe
 86.3292 -+	.byte	0x89	# DW_CFA_offset, column 0x9
 86.3293 -+	.uleb128 0xf
 86.3294 -+	.byte	0x88	# DW_CFA_offset, column 0x8
 86.3295 -+	.uleb128 0x10
 86.3296 -+	.byte	0x87	# DW_CFA_offset, column 0x7
 86.3297 -+	.uleb128 0x11
 86.3298 -+	.byte	0x86	# DW_CFA_offset, column 0x6
 86.3299 -+	.uleb128 0x12
 86.3300 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3301 -+	.4byte	.LCFI1-.LCFI0
 86.3302 -+	.byte	0xd	# DW_CFA_def_cfa_register
 86.3303 -+	.uleb128 0xb
 86.3304 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3305 -+	.4byte	.LCFI2-.LCFI1
 86.3306 -+	.byte	0xe	# DW_CFA_def_cfa_offset
 86.3307 -+	.uleb128 0x90
 86.3308 -+	.align	4
 86.3309 -+.LEFDE1:
 86.3310 -+.LSFDE2:
 86.3311 -+	.4byte	.LEFDE2-.LASFDE2	# FDE Length
 86.3312 -+.LASFDE2:
 86.3313 -+	.4byte	.LASFDE2-.Lframe1	# FDE CIE offset
 86.3314 -+	.4byte	.LFB2-.	# FDE initial location
 86.3315 -+	.4byte	.LFE2-.LFB2	# FDE address range
 86.3316 -+	.uleb128 0x0	# Augmentation size
 86.3317 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3318 -+	.4byte	.LCFI10-.LFB2
 86.3319 -+	.byte	0x8f	# DW_CFA_offset, column 0xf
 86.3320 -+	.uleb128 0x9
 86.3321 -+	.byte	0x8e	# DW_CFA_offset, column 0xe
 86.3322 -+	.uleb128 0xa
 86.3323 -+	.byte	0x8d	# DW_CFA_offset, column 0xd
 86.3324 -+	.uleb128 0xb
 86.3325 -+	.byte	0x8c	# DW_CFA_offset, column 0xc
 86.3326 -+	.uleb128 0xc
 86.3327 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3328 -+	.4byte	.LCFI11-.LCFI10
 86.3329 -+	.byte	0xe	# DW_CFA_def_cfa_offset
 86.3330 -+	.uleb128 0xc0
 86.3331 -+	.align	4
 86.3332 -+.LEFDE2:
 86.3333 -+
 86.3334 -+#else
 86.3335 -+ 
 86.3336 -+.text
 86.3337 -+ 
 86.3338 -+	# r2:	cif->bytes
 86.3339 -+	# r3:	&ecif
 86.3340 -+	# r4:	ffi_prep_args
 86.3341 -+	# r5:	ret_type
 86.3342 -+	# r6:	ecif.rvalue
 86.3343 -+	# ov:	fn 
 86.3344 -+ 
 86.3345 -+	# This assumes we are using gas.
 86.3346 -+	.globl	ffi_call_SYSV
 86.3347 -+	.type	ffi_call_SYSV,%function
 86.3348 -+ffi_call_SYSV:
 86.3349 -+.LFB1:
 86.3350 -+	stmg	%r6,%r15,48(%r15)		# Save registers
 86.3351 -+.LCFI0:
 86.3352 -+	larl	%r13,.Lbase			# Set up base register
 86.3353 -+	lgr	%r11,%r15			# Set up frame pointer
 86.3354 -+.LCFI1:
 86.3355 -+	sgr	%r15,%r2
 86.3356 -+	aghi	%r15,-160-80			# Allocate stack
 86.3357 -+	lgr	%r8,%r6				# Save ecif.rvalue
 86.3358 -+	llgc	%r9,.Ltable-.Lbase(%r13,%r5)	# Load epilog address
 86.3359 -+	lg	%r7,160(%r11)			# Load function address
 86.3360 -+	stg	%r11,0(%r15)			# Set up back chain
 86.3361 -+	aghi	%r11,-80			# Register save area
 86.3362 -+.LCFI2:
 86.3363 -+
 86.3364 -+	la	%r2,160(%r15)			# Save area
 86.3365 -+						# r3 already holds &ecif
 86.3366 -+	basr	%r14,%r4			# Call ffi_prep_args
 86.3367 -+
 86.3368 -+	lmg	%r2,%r6,0(%r11)			# Load arguments
 86.3369 -+	ld	%f0,48(%r11)
 86.3370 -+	ld	%f2,56(%r11)
 86.3371 -+	ld	%f4,64(%r11)
 86.3372 -+	ld	%f6,72(%r11)
 86.3373 -+	la	%r14,0(%r13,%r9)		# Set return address
 86.3374 -+	br	%r7				# ... and call function
 86.3375 -+
 86.3376 -+.Lbase:
 86.3377 -+.LretNone:					# Return void
 86.3378 -+	lg	%r4,80+112(%r11)
 86.3379 -+	lmg	%r6,%r15,80+48(%r11)
 86.3380 -+	br	%r4
 86.3381 -+
 86.3382 -+.LretFloat:
 86.3383 -+	lg	%r4,80+112(%r11)
 86.3384 -+	ste	%f0,0(%r8)			# Return float
 86.3385 -+	lmg	%r6,%r15,80+48(%r11)
 86.3386 -+	br	%r4
 86.3387 -+ 
 86.3388 -+.LretDouble:
 86.3389 -+	lg	%r4,80+112(%r11)
 86.3390 -+	std	%f0,0(%r8)			# Return double
 86.3391 -+	lmg	%r6,%r15,80+48(%r11)
 86.3392 -+	br	%r4
 86.3393 -+
 86.3394 -+.LretInt32:
 86.3395 -+	lg	%r4,80+112(%r11)
 86.3396 -+	st	%r2,0(%r8)			# Return int
 86.3397 -+	lmg	%r6,%r15,80+48(%r11)
 86.3398 -+	br	%r4
 86.3399 -+ 
 86.3400 -+.LretInt64:
 86.3401 -+	lg	%r4,80+112(%r11)
 86.3402 -+	stg	%r2,0(%r8)			# Return long
 86.3403 -+	lmg	%r6,%r15,80+48(%r11)
 86.3404 -+	br	%r4
 86.3405 -+ 
 86.3406 -+.Ltable:
 86.3407 -+	.byte	.LretNone-.Lbase		# FFI390_RET_VOID
 86.3408 -+	.byte	.LretNone-.Lbase		# FFI390_RET_STRUCT
 86.3409 -+	.byte	.LretFloat-.Lbase		# FFI390_RET_FLOAT
 86.3410 -+	.byte	.LretDouble-.Lbase		# FFI390_RET_DOUBLE
 86.3411 -+	.byte	.LretInt32-.Lbase		# FFI390_RET_INT32
 86.3412 -+	.byte	.LretInt64-.Lbase		# FFI390_RET_INT64
 86.3413 -+
 86.3414 -+.LFE1: 
 86.3415 -+.ffi_call_SYSV_end:
 86.3416 -+	.size	 ffi_call_SYSV,.ffi_call_SYSV_end-ffi_call_SYSV
 86.3417 -+
 86.3418 -+
 86.3419 -+	.globl	ffi_closure_SYSV
 86.3420 -+	.type	ffi_closure_SYSV,%function
 86.3421 -+ffi_closure_SYSV:
 86.3422 -+.LFB2:
 86.3423 -+	stmg	%r14,%r15,112(%r15)		# Save registers
 86.3424 -+.LCFI10:
 86.3425 -+	stmg	%r2,%r6,16(%r15)		# Save arguments
 86.3426 -+	std	%f0,128(%r15)
 86.3427 -+	std	%f2,136(%r15)
 86.3428 -+	std	%f4,144(%r15)
 86.3429 -+	std	%f6,152(%r15)
 86.3430 -+	lgr	%r1,%r15			# Set up stack frame
 86.3431 -+	aghi	%r15,-160
 86.3432 -+.LCFI11:
 86.3433 -+	lgr	%r2,%r0				# Closure
 86.3434 -+	la	%r3,16(%r1)			# GPRs
 86.3435 -+	la	%r4,128(%r1)			# FPRs
 86.3436 -+	la	%r5,160(%r1)			# Overflow
 86.3437 -+	stg	%r1,0(%r15)			# Set up back chain
 86.3438 -+
 86.3439 -+	brasl	%r14,ffi_closure_helper_SYSV	# Call helper
 86.3440 -+
 86.3441 -+	lg	%r14,160+112(%r15)
 86.3442 -+	ld	%f0,160+128(%r15)		# Load return registers
 86.3443 -+	lg	%r2,160+16(%r15)
 86.3444 -+	la	%r15,160(%r15)
 86.3445 -+	br	%r14
 86.3446 -+.LFE2: 
 86.3447 -+
 86.3448 -+.ffi_closure_SYSV_end:
 86.3449 -+	.size	 ffi_closure_SYSV,.ffi_closure_SYSV_end-ffi_closure_SYSV
 86.3450 -+
 86.3451 -+
 86.3452 -+
 86.3453 -+	.section	.eh_frame,"a",@progbits
 86.3454 -+.Lframe1:
 86.3455 -+	.4byte	.LECIE1-.LSCIE1	# Length of Common Information Entry
 86.3456 -+.LSCIE1:
 86.3457 -+	.4byte	0x0	# CIE Identifier Tag
 86.3458 -+	.byte	0x1	# CIE Version
 86.3459 -+	.ascii "zR\0"	# CIE Augmentation
 86.3460 -+	.uleb128 0x1	# CIE Code Alignment Factor
 86.3461 -+	.sleb128 -8	# CIE Data Alignment Factor
 86.3462 -+	.byte	0xe	# CIE RA Column
 86.3463 -+	.uleb128 0x1	# Augmentation size
 86.3464 -+	.byte	0x1b	# FDE Encoding (pcrel sdata4)
 86.3465 -+	.byte	0xc	# DW_CFA_def_cfa
 86.3466 -+	.uleb128 0xf
 86.3467 -+	.uleb128 0xa0
 86.3468 -+	.align	8
 86.3469 -+.LECIE1:
 86.3470 -+.LSFDE1:
 86.3471 -+	.4byte	.LEFDE1-.LASFDE1	# FDE Length
 86.3472 -+.LASFDE1:
 86.3473 -+	.4byte	.LASFDE1-.Lframe1	# FDE CIE offset
 86.3474 -+	.4byte	.LFB1-.	# FDE initial location
 86.3475 -+	.4byte	.LFE1-.LFB1	# FDE address range
 86.3476 -+	.uleb128 0x0	# Augmentation size
 86.3477 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3478 -+	.4byte	.LCFI0-.LFB1
 86.3479 -+	.byte	0x8f	# DW_CFA_offset, column 0xf
 86.3480 -+	.uleb128 0x5
 86.3481 -+	.byte	0x8e	# DW_CFA_offset, column 0xe
 86.3482 -+	.uleb128 0x6
 86.3483 -+	.byte	0x8d	# DW_CFA_offset, column 0xd
 86.3484 -+	.uleb128 0x7
 86.3485 -+	.byte	0x8c	# DW_CFA_offset, column 0xc
 86.3486 -+	.uleb128 0x8
 86.3487 -+	.byte	0x8b	# DW_CFA_offset, column 0xb
 86.3488 -+	.uleb128 0x9
 86.3489 -+	.byte	0x8a	# DW_CFA_offset, column 0xa
 86.3490 -+	.uleb128 0xa
 86.3491 -+	.byte	0x89	# DW_CFA_offset, column 0x9
 86.3492 -+	.uleb128 0xb
 86.3493 -+	.byte	0x88	# DW_CFA_offset, column 0x8
 86.3494 -+	.uleb128 0xc
 86.3495 -+	.byte	0x87	# DW_CFA_offset, column 0x7
 86.3496 -+	.uleb128 0xd
 86.3497 -+	.byte	0x86	# DW_CFA_offset, column 0x6
 86.3498 -+	.uleb128 0xe
 86.3499 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3500 -+	.4byte	.LCFI1-.LCFI0
 86.3501 -+	.byte	0xd	# DW_CFA_def_cfa_register
 86.3502 -+	.uleb128 0xb
 86.3503 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3504 -+	.4byte	.LCFI2-.LCFI1
 86.3505 -+	.byte	0xe	# DW_CFA_def_cfa_offset
 86.3506 -+	.uleb128 0xf0
 86.3507 -+	.align	8
 86.3508 -+.LEFDE1:
 86.3509 -+.LSFDE2:
 86.3510 -+	.4byte	.LEFDE2-.LASFDE2	# FDE Length
 86.3511 -+.LASFDE2:
 86.3512 -+	.4byte	.LASFDE2-.Lframe1	# FDE CIE offset
 86.3513 -+	.4byte	.LFB2-.	# FDE initial location
 86.3514 -+	.4byte	.LFE2-.LFB2	# FDE address range
 86.3515 -+	.uleb128 0x0	# Augmentation size
 86.3516 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3517 -+	.4byte	.LCFI10-.LFB2
 86.3518 -+	.byte	0x8f	# DW_CFA_offset, column 0xf
 86.3519 -+	.uleb128 0x5
 86.3520 -+	.byte	0x8e	# DW_CFA_offset, column 0xe
 86.3521 -+	.uleb128 0x6
 86.3522 -+	.byte	0x4	# DW_CFA_advance_loc4
 86.3523 -+	.4byte	.LCFI11-.LCFI10
 86.3524 -+	.byte	0xe	# DW_CFA_def_cfa_offset
 86.3525 -+	.uleb128 0x140
 86.3526 -+	.align	8
 86.3527 -+.LEFDE2:
 86.3528 -+
 86.3529 -+#endif
 86.3530 -+
 86.3531 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/sh/ffi.c gcc/libffi/src/sh/ffi.c
 86.3532 ---- gcc-3.2.2.orig/libffi/src/sh/ffi.c	Thu Jan  1 09:00:00 1970
 86.3533 -+++ gcc/libffi/src/sh/ffi.c	Fri Jul 19 10:08:43 2002
 86.3534 -@@ -0,0 +1,722 @@
 86.3535 -+/* -----------------------------------------------------------------------
 86.3536 -+   ffi.c - Copyright (c) 2002 Kaz Kojima
 86.3537 -+   
 86.3538 -+   SuperH Foreign Function Interface 
 86.3539 -+
 86.3540 -+   Permission is hereby granted, free of charge, to any person obtaining
 86.3541 -+   a copy of this software and associated documentation files (the
 86.3542 -+   ``Software''), to deal in the Software without restriction, including
 86.3543 -+   without limitation the rights to use, copy, modify, merge, publish,
 86.3544 -+   distribute, sublicense, and/or sell copies of the Software, and to
 86.3545 -+   permit persons to whom the Software is furnished to do so, subject to
 86.3546 -+   the following conditions:
 86.3547 -+
 86.3548 -+   The above copyright notice and this permission notice shall be included
 86.3549 -+   in all copies or substantial portions of the Software.
 86.3550 -+
 86.3551 -+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 86.3552 -+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 86.3553 -+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 86.3554 -+   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 86.3555 -+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 86.3556 -+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 86.3557 -+   OTHER DEALINGS IN THE SOFTWARE.
 86.3558 -+   ----------------------------------------------------------------------- */
 86.3559 -+
 86.3560 -+#include <ffi.h>
 86.3561 -+#include <ffi_common.h>
 86.3562 -+
 86.3563 -+#include <stdlib.h>
 86.3564 -+
 86.3565 -+#define NGREGARG 4
 86.3566 -+#if defined(__SH4__)
 86.3567 -+#define NFREGARG 8
 86.3568 -+#endif
 86.3569 -+
 86.3570 -+#if defined(__HITACHI__)
 86.3571 -+#define STRUCT_VALUE_ADDRESS_WITH_ARG 1
 86.3572 -+#else
 86.3573 -+#define STRUCT_VALUE_ADDRESS_WITH_ARG 0
 86.3574 -+#endif
 86.3575 -+
 86.3576 -+/* If the structure has essentialy an unique element, return its type.  */
 86.3577 -+static int
 86.3578 -+simple_type (ffi_type *arg)
 86.3579 -+{
 86.3580 -+  if (arg->type != FFI_TYPE_STRUCT)
 86.3581 -+    return arg->type;
 86.3582 -+  else if (arg->elements[1])
 86.3583 -+    return FFI_TYPE_STRUCT;
 86.3584 -+
 86.3585 -+  return simple_type (arg->elements[0]);
 86.3586 -+}
 86.3587 -+
 86.3588 -+static int
 86.3589 -+return_type (ffi_type *arg)
 86.3590 -+{
 86.3591 -+  unsigned short type;
 86.3592 -+
 86.3593 -+  if (arg->type != FFI_TYPE_STRUCT)
 86.3594 -+    return arg->type;
 86.3595 -+
 86.3596 -+  type = simple_type (arg->elements[0]);
 86.3597 -+  if (! arg->elements[1])
 86.3598 -+    {
 86.3599 -+      switch (type)
 86.3600 -+	{
 86.3601 -+	case FFI_TYPE_SINT8:
 86.3602 -+	case FFI_TYPE_UINT8:
 86.3603 -+	case FFI_TYPE_SINT16:
 86.3604 -+	case FFI_TYPE_UINT16:
 86.3605 -+	case FFI_TYPE_SINT32:
 86.3606 -+	case FFI_TYPE_UINT32:
 86.3607 -+	  return FFI_TYPE_INT;
 86.3608 -+
 86.3609 -+	default:
 86.3610 -+	  return type;
 86.3611 -+	}
 86.3612 -+    }
 86.3613 -+
 86.3614 -+  /* gcc uses r0/r1 pair for some kind of structures.  */
 86.3615 -+  if (arg->size <= 2 * sizeof (int))
 86.3616 -+    {
 86.3617 -+      int i = 0;
 86.3618 -+      ffi_type *e;
 86.3619 -+
 86.3620 -+      while ((e = arg->elements[i++]))
 86.3621 -+	{
 86.3622 -+	  type = simple_type (e);
 86.3623 -+	  switch (type)
 86.3624 -+	    {
 86.3625 -+	    case FFI_TYPE_SINT32:
 86.3626 -+	    case FFI_TYPE_UINT32:
 86.3627 -+	    case FFI_TYPE_INT:
 86.3628 -+	    case FFI_TYPE_FLOAT:
 86.3629 -+	      return FFI_TYPE_UINT64;
 86.3630 -+
 86.3631 -+	    default:
 86.3632 -+	      break;
 86.3633 -+	    }
 86.3634 -+	}
 86.3635 -+    }
 86.3636 -+
 86.3637 -+  return FFI_TYPE_STRUCT;
 86.3638 -+}
 86.3639 -+
 86.3640 -+/* ffi_prep_args is called by the assembly routine once stack space
 86.3641 -+   has been allocated for the function's arguments */
 86.3642 -+
 86.3643 -+/*@-exportheader@*/
 86.3644 -+void ffi_prep_args(char *stack, extended_cif *ecif)
 86.3645 -+/*@=exportheader@*/
 86.3646 -+{
 86.3647 -+  register unsigned int i;
 86.3648 -+  register int tmp;
 86.3649 -+  register unsigned int avn;
 86.3650 -+  register void **p_argv;
 86.3651 -+  register char *argp;
 86.3652 -+  register ffi_type **p_arg;
 86.3653 -+  int greg, ireg;
 86.3654 -+#if defined(__SH4__)
 86.3655 -+  int freg = 0;
 86.3656 -+#endif
 86.3657 -+
 86.3658 -+  tmp = 0;
 86.3659 -+  argp = stack;
 86.3660 -+
 86.3661 -+  if (return_type (ecif->cif->rtype) == FFI_TYPE_STRUCT)
 86.3662 -+    {
 86.3663 -+      *(void **) argp = ecif->rvalue;
 86.3664 -+      argp += 4;
 86.3665 -+      ireg = STRUCT_VALUE_ADDRESS_WITH_ARG ? 1 : 0;
 86.3666 -+    }
 86.3667 -+  else
 86.3668 -+    ireg = 0;
 86.3669 -+
 86.3670 -+  /* Set arguments for registers.  */
 86.3671 -+  greg = ireg;
 86.3672 -+  avn = ecif->cif->nargs;
 86.3673 -+  p_argv = ecif->avalue;
 86.3674 -+
 86.3675 -+  for (i = 0, p_arg = ecif->cif->arg_types; i < avn; i++, p_arg++, p_argv++)
 86.3676 -+    {
 86.3677 -+      size_t z;
 86.3678 -+
 86.3679 -+      z = (*p_arg)->size;
 86.3680 -+      if (z < sizeof(int))
 86.3681 -+	{
 86.3682 -+	  if (greg++ >= NGREGARG)
 86.3683 -+	    continue;
 86.3684 -+
 86.3685 -+	  z = sizeof(int);
 86.3686 -+	  switch ((*p_arg)->type)
 86.3687 -+	    {
 86.3688 -+	    case FFI_TYPE_SINT8:
 86.3689 -+	      *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
 86.3690 -+	      break;
 86.3691 -+  
 86.3692 -+	    case FFI_TYPE_UINT8:
 86.3693 -+	      *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
 86.3694 -+	      break;
 86.3695 -+  
 86.3696 -+	    case FFI_TYPE_SINT16:
 86.3697 -+	      *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
 86.3698 -+	      break;
 86.3699 -+  
 86.3700 -+	    case FFI_TYPE_UINT16:
 86.3701 -+	      *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
 86.3702 -+	      break;
 86.3703 -+  
 86.3704 -+	    case FFI_TYPE_STRUCT:
 86.3705 -+	      *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
 86.3706 -+	      break;
 86.3707 -+
 86.3708 -+	    default:
 86.3709 -+	      FFI_ASSERT(0);
 86.3710 -+	    }
 86.3711 -+	  argp += z;
 86.3712 -+	}
 86.3713 -+      else if (z == sizeof(int))
 86.3714 -+	{
 86.3715 -+#if defined(__SH4__)
 86.3716 -+	  if ((*p_arg)->type == FFI_TYPE_FLOAT)
 86.3717 -+	    {
 86.3718 -+	      if (freg++ >= NFREGARG)
 86.3719 -+		continue;
 86.3720 -+	    }
 86.3721 -+	  else
 86.3722 -+#endif
 86.3723 -+	    {
 86.3724 -+	      if (greg++ >= NGREGARG)
 86.3725 -+		continue;
 86.3726 -+	    }
 86.3727 -+	  *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
 86.3728 -+	  argp += z;
 86.3729 -+	}
 86.3730 -+#if defined(__SH4__)
 86.3731 -+      else if ((*p_arg)->type == FFI_TYPE_DOUBLE)
 86.3732 -+	{
 86.3733 -+	  if (freg + 1 >= NFREGARG)
 86.3734 -+	    continue;
 86.3735 -+	  freg = (freg + 1) & ~1;
 86.3736 -+	  freg += 2;
 86.3737 -+	  memcpy (argp, *p_argv, z);
 86.3738 -+	  argp += z;
 86.3739 -+	}
 86.3740 -+#endif
 86.3741 -+      else
 86.3742 -+	{
 86.3743 -+	  int n = (z + sizeof (int) - 1) / sizeof (int);
 86.3744 -+#if defined(__SH4__)
 86.3745 -+	  if (greg + n - 1 >= NGREGARG)
 86.3746 -+	    continue;
 86.3747 -+	  greg += n;
 86.3748 -+#else
 86.3749 -+	  if (greg >= NGREGARG)
 86.3750 -+	    continue;
 86.3751 -+	  else if (greg + n - 1 >= NGREGARG)
 86.3752 -+	    greg = NGREGARG;
 86.3753 -+	  else
 86.3754 -+	    greg += n;
 86.3755 -+#endif
 86.3756 -+	  memcpy (argp, *p_argv, z);
 86.3757 -+	  argp += z;
 86.3758 -+	}
 86.3759 -+    }
 86.3760 -+
 86.3761 -+  /* Set arguments on stack.  */
 86.3762 -+  greg = ireg;
 86.3763 -+#if defined(__SH4__)
 86.3764 -+  freg = 0;
 86.3765 -+#endif
 86.3766 -+  p_argv = ecif->avalue;
 86.3767 -+
 86.3768 -+  for (i = 0, p_arg = ecif->cif->arg_types; i < avn; i++, p_arg++, p_argv++)
 86.3769 -+    {
 86.3770 -+      size_t z;
 86.3771 -+
 86.3772 -+      z = (*p_arg)->size;
 86.3773 -+      if (z < sizeof(int))
 86.3774 -+	{
 86.3775 -+	  if (greg++ < NGREGARG)
 86.3776 -+	    continue;
 86.3777 -+
 86.3778 -+	  z = sizeof(int);
 86.3779 -+	  switch ((*p_arg)->type)
 86.3780 -+	    {
 86.3781 -+	    case FFI_TYPE_SINT8:
 86.3782 -+	      *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
 86.3783 -+	      break;
 86.3784 -+  
 86.3785 -+	    case FFI_TYPE_UINT8:
 86.3786 -+	      *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
 86.3787 -+	      break;
 86.3788 -+  
 86.3789 -+	    case FFI_TYPE_SINT16:
 86.3790 -+	      *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
 86.3791 -+	      break;
 86.3792 -+  
 86.3793 -+	    case FFI_TYPE_UINT16:
 86.3794 -+	      *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
 86.3795 -+	      break;
 86.3796 -+  
 86.3797 -+	    case FFI_TYPE_STRUCT:
 86.3798 -+	      *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
 86.3799 -+	      break;
 86.3800 -+
 86.3801 -+	    default:
 86.3802 -+	      FFI_ASSERT(0);
 86.3803 -+	    }
 86.3804 -+	  argp += z;
 86.3805 -+	}
 86.3806 -+      else if (z == sizeof(int))
 86.3807 -+	{
 86.3808 -+#if defined(__SH4__)
 86.3809 -+	  if ((*p_arg)->type == FFI_TYPE_FLOAT)
 86.3810 -+	    {
 86.3811 -+	      if (freg++ < NFREGARG)
 86.3812 -+		continue;
 86.3813 -+	    }
 86.3814 -+	  else
 86.3815 -+#endif
 86.3816 -+	    {
 86.3817 -+	      if (greg++ < NGREGARG)
 86.3818 -+		continue;
 86.3819 -+	    }
 86.3820 -+	  *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
 86.3821 -+	  argp += z;
 86.3822 -+	}
 86.3823 -+#if defined(__SH4__)
 86.3824 -+      else if ((*p_arg)->type == FFI_TYPE_DOUBLE)
 86.3825 -+	{
 86.3826 -+	  if (freg + 1 < NFREGARG)
 86.3827 -+	    {
 86.3828 -+	      freg = (freg + 1) & ~1;
 86.3829 -+	      freg += 2;
 86.3830 -+	      continue;
 86.3831 -+	    }
 86.3832 -+	  memcpy (argp, *p_argv, z);
 86.3833 -+	  argp += z;
 86.3834 -+	}
 86.3835 -+#endif
 86.3836 -+      else
 86.3837 -+	{
 86.3838 -+	  int n = (z + sizeof (int) - 1) / sizeof (int);
 86.3839 -+	  if (greg + n - 1 < NGREGARG)
 86.3840 -+	    {
 86.3841 -+	      greg += n;
 86.3842 -+	      continue;
 86.3843 -+	    }
 86.3844 -+#if (! defined(__SH4__))
 86.3845 -+	  else if (greg < NGREGARG)
 86.3846 -+	    {
 86.3847 -+	      greg = NGREGARG;
 86.3848 -+	      continue;
 86.3849 -+	    }
 86.3850 -+#endif
 86.3851 -+	  memcpy (argp, *p_argv, z);
 86.3852 -+	  argp += z;
 86.3853 -+	}
 86.3854 -+    }
 86.3855 -+
 86.3856 -+  return;
 86.3857 -+}
 86.3858 -+
 86.3859 -+/* Perform machine dependent cif processing */
 86.3860 -+ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
 86.3861 -+{
 86.3862 -+  int i, j;
 86.3863 -+  int size, type;
 86.3864 -+  int n, m;
 86.3865 -+  int greg;
 86.3866 -+#if defined(__SH4__)
 86.3867 -+  int freg = 0;
 86.3868 -+#endif
 86.3869 -+
 86.3870 -+  cif->flags = 0;
 86.3871 -+
 86.3872 -+  greg = ((return_type (cif->rtype) == FFI_TYPE_STRUCT) &&
 86.3873 -+	  STRUCT_VALUE_ADDRESS_WITH_ARG) ? 1 : 0;
 86.3874 -+
 86.3875 -+#if defined(__SH4__)
 86.3876 -+  for (i = j = 0; i < cif->nargs && j < 12; i++)
 86.3877 -+    {
 86.3878 -+      type = (cif->arg_types)[i]->type;
 86.3879 -+      switch (type)
 86.3880 -+	{
 86.3881 -+	case FFI_TYPE_FLOAT:
 86.3882 -+	  if (freg >= NFREGARG)
 86.3883 -+	    continue;
 86.3884 -+	  freg++;
 86.3885 -+	  cif->flags += ((cif->arg_types)[i]->type) << (2 * j);
 86.3886 -+	  j++;
 86.3887 -+	  break;
 86.3888 -+
 86.3889 -+	case FFI_TYPE_DOUBLE:
 86.3890 -+	  if ((freg + 1) >= NFREGARG)
 86.3891 -+	    continue;
 86.3892 -+	  freg = (freg + 1) & ~1;
 86.3893 -+	  freg += 2;
 86.3894 -+	  cif->flags += ((cif->arg_types)[i]->type) << (2 * j);
 86.3895 -+	  j++;
 86.3896 -+	  break;
 86.3897 -+	      
 86.3898 -+	default:
 86.3899 -+	  size = (cif->arg_types)[i]->size;
 86.3900 -+	  n = (size + sizeof (int) - 1) / sizeof (int);
 86.3901 -+	  if (greg + n - 1 >= NGREGARG)
 86.3902 -+		continue;
 86.3903 -+	  greg += n;
 86.3904 -+	  for (m = 0; m < n; m++)
 86.3905 -+	    cif->flags += FFI_TYPE_INT << (2 * j++);
 86.3906 -+	  break;
 86.3907 -+	}
 86.3908 -+    }
 86.3909 -+#else
 86.3910 -+  for (i = j = 0; i < cif->nargs && j < 4; i++)
 86.3911 -+    {
 86.3912 -+      size = (cif->arg_types)[i]->size;
 86.3913 -+      n = (size + sizeof (int) - 1) / sizeof (int);
 86.3914 -+      if (greg >= NGREGARG)
 86.3915 -+	continue;
 86.3916 -+      else if (greg + n - 1 >= NGREGARG)
 86.3917 -+	greg = NGREGARG;
 86.3918 -+      else
 86.3919 -+	greg += n;
 86.3920 -+      for (m = 0; m < n; m++)
 86.3921 -+        cif->flags += FFI_TYPE_INT << (2 * j++);
 86.3922 -+    }
 86.3923 -+#endif
 86.3924 -+
 86.3925 -+  /* Set the return type flag */
 86.3926 -+  switch (cif->rtype->type)
 86.3927 -+    {
 86.3928 -+    case FFI_TYPE_STRUCT:
 86.3929 -+      cif->flags += (unsigned) (return_type (cif->rtype)) << 24;
 86.3930 -+      break;
 86.3931 -+
 86.3932 -+    case FFI_TYPE_VOID:
 86.3933 -+    case FFI_TYPE_FLOAT:
 86.3934 -+    case FFI_TYPE_DOUBLE:
 86.3935 -+    case FFI_TYPE_SINT64:
 86.3936 -+    case FFI_TYPE_UINT64:
 86.3937 -+      cif->flags += (unsigned) cif->rtype->type << 24;
 86.3938 -+      break;
 86.3939 -+
 86.3940 -+    default:
 86.3941 -+      cif->flags += FFI_TYPE_INT << 24;
 86.3942 -+      break;
 86.3943 -+    }
 86.3944 -+
 86.3945 -+  return FFI_OK;
 86.3946 -+}
 86.3947 -+
 86.3948 -+/*@-declundef@*/
 86.3949 -+/*@-exportheader@*/
 86.3950 -+extern void ffi_call_SYSV(void (*)(char *, extended_cif *), 
 86.3951 -+			  /*@out@*/ extended_cif *, 
 86.3952 -+			  unsigned, unsigned, 
 86.3953 -+			  /*@out@*/ unsigned *, 
 86.3954 -+			  void (*fn)());
 86.3955 -+/*@=declundef@*/
 86.3956 -+/*@=exportheader@*/
 86.3957 -+
 86.3958 -+void ffi_call(/*@dependent@*/ ffi_cif *cif, 
 86.3959 -+	      void (*fn)(), 
 86.3960 -+	      /*@out@*/ void *rvalue, 
 86.3961 -+	      /*@dependent@*/ void **avalue)
 86.3962 -+{
 86.3963 -+  extended_cif ecif;
 86.3964 -+
 86.3965 -+  ecif.cif = cif;
 86.3966 -+  ecif.avalue = avalue;
 86.3967 -+  
 86.3968 -+  /* If the return value is a struct and we don't have a return	*/
 86.3969 -+  /* value address then we need to make one		        */
 86.3970 -+
 86.3971 -+  if ((rvalue == NULL) && 
 86.3972 -+      (cif->rtype->type == FFI_TYPE_STRUCT))
 86.3973 -+    {
 86.3974 -+      /*@-sysunrecog@*/
 86.3975 -+      ecif.rvalue = alloca(cif->rtype->size);
 86.3976 -+      /*@=sysunrecog@*/
 86.3977 -+    }
 86.3978 -+  else
 86.3979 -+    ecif.rvalue = rvalue;
 86.3980 -+    
 86.3981 -+
 86.3982 -+  switch (cif->abi) 
 86.3983 -+    {
 86.3984 -+    case FFI_SYSV:
 86.3985 -+      /*@-usedef@*/
 86.3986 -+      ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, 
 86.3987 -+		    cif->flags, ecif.rvalue, fn);
 86.3988 -+      /*@=usedef@*/
 86.3989 -+      break;
 86.3990 -+    default:
 86.3991 -+      FFI_ASSERT(0);
 86.3992 -+      break;
 86.3993 -+    }
 86.3994 -+}
 86.3995 -+
 86.3996 -+extern void ffi_closure_SYSV (void);
 86.3997 -+#if defined(__SH4__)
 86.3998 -+extern void __ic_invalidate (void *line);
 86.3999 -+#endif
 86.4000 -+
 86.4001 -+ffi_status
 86.4002 -+ffi_prep_closure (ffi_closure* closure,
 86.4003 -+		  ffi_cif* cif,
 86.4004 -+		  void (*fun)(ffi_cif*, void*, void**, void*),
 86.4005 -+		  void *user_data)
 86.4006 -+{
 86.4007 -+  unsigned int *tramp;
 86.4008 -+
 86.4009 -+  FFI_ASSERT (cif->abi == FFI_GCC_SYSV);
 86.4010 -+
 86.4011 -+  tramp = (unsigned int *) &closure->tramp[0];
 86.4012 -+#ifdef __LITTLE_ENDIAN__
 86.4013 -+  tramp[0] = 0xd301d202;
 86.4014 -+  tramp[1] = 0x0009422b;
 86.4015 -+#else
 86.4016 -+  tramp[0] = 0xd202d301;
 86.4017 -+  tramp[1] = 0x422b0009;
 86.4018 -+#endif
 86.4019 -+  *(void **) &tramp[2] = (void *)closure;          /* ctx */
 86.4020 -+  *(void **) &tramp[3] = (void *)ffi_closure_SYSV; /* funaddr */
 86.4021 -+
 86.4022 -+  closure->cif = cif;
 86.4023 -+  closure->fun = fun;
 86.4024 -+  closure->user_data = user_data;
 86.4025 -+
 86.4026 -+#if defined(__SH4__)
 86.4027 -+  /* Flush the icache.  */
 86.4028 -+  __ic_invalidate(&closure->tramp[0]);
 86.4029 -+#endif
 86.4030 -+
 86.4031 -+  return FFI_OK;
 86.4032 -+}
 86.4033 -+
 86.4034 -+/* Basically the trampoline invokes ffi_closure_SYSV, and on 
 86.4035 -+ * entry, r3 holds the address of the closure.
 86.4036 -+ * After storing the registers that could possibly contain
 86.4037 -+ * parameters to be passed into the stack frame and setting
 86.4038 -+ * up space for a return value, ffi_closure_SYSV invokes the 
 86.4039 -+ * following helper function to do most of the work.
 86.4040 -+ */
 86.4041 -+
 86.4042 -+#ifdef __LITTLE_ENDIAN__
 86.4043 -+#define OFS_INT8	0
 86.4044 -+#define OFS_INT16	2
 86.4045 -+#else
 86.4046 -+#define OFS_INT8	3
 86.4047 -+#define OFS_INT16	2
 86.4048 -+#endif
 86.4049 -+
 86.4050 -+int
 86.4051 -+ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, 
 86.4052 -+			 unsigned long *pgr, unsigned long *pfr, 
 86.4053 -+			 unsigned long *pst)
 86.4054 -+{
 86.4055 -+  void **avalue;
 86.4056 -+  ffi_type **p_arg;
 86.4057 -+  int i, avn;
 86.4058 -+  int ireg, greg = 0;
 86.4059 -+#if defined(__SH4__)
 86.4060 -+  int freg = 0;
 86.4061 -+#endif
 86.4062 -+  ffi_cif *cif; 
 86.4063 -+  double temp; 
 86.4064 -+
 86.4065 -+  cif = closure->cif;
 86.4066 -+  avalue = alloca(cif->nargs * sizeof(void *));
 86.4067 -+
 86.4068 -+  /* Copy the caller's structure return value address so that the closure
 86.4069 -+     returns the data directly to the caller.  */
 86.4070 -+  if (cif->rtype->type == FFI_TYPE_STRUCT)
 86.4071 -+    {
 86.4072 -+      rvalue = *pgr++;
 86.4073 -+      ireg = STRUCT_VALUE_ADDRESS_WITH_ARG ? 1 : 0;
 86.4074 -+    }
 86.4075 -+  else
 86.4076 -+    ireg = 0;
 86.4077 -+
 86.4078 -+  cif = closure->cif;
 86.4079 -+  greg = ireg;
 86.4080 -+  avn = cif->nargs;
 86.4081 -+
 86.4082 -+  /* Grab the addresses of the arguments from the stack frame.  */
 86.4083 -+  for (i = 0, p_arg = cif->arg_types; i < avn; i++, p_arg++)
 86.4084 -+    {
 86.4085 -+      size_t z;
 86.4086 -+
 86.4087 -+      z = (*p_arg)->size;
 86.4088 -+      if (z < sizeof(int))
 86.4089 -+	{
 86.4090 -+	  if (greg++ >= NGREGARG)
 86.4091 -+	    continue;
 86.4092 -+
 86.4093 -+	  z = sizeof(int);
 86.4094 -+	  switch ((*p_arg)->type)
 86.4095 -+	    {
 86.4096 -+	    case FFI_TYPE_SINT8:
 86.4097 -+	    case FFI_TYPE_UINT8:
 86.4098 -+	      avalue[i] = (((char *)pgr) + OFS_INT8);
 86.4099 -+	      break;
 86.4100 -+  
 86.4101 -+	    case FFI_TYPE_SINT16:
 86.4102 -+	    case FFI_TYPE_UINT16:
 86.4103 -+	      avalue[i] = (((char *)pgr) + OFS_INT16);
 86.4104 -+	      break;
 86.4105 -+  
 86.4106 -+	    case FFI_TYPE_STRUCT:
 86.4107 -+	      avalue[i] = pgr;
 86.4108 -+	      break;
 86.4109 -+
 86.4110 -+	    default:
 86.4111 -+	      FFI_ASSERT(0);
 86.4112 -+	    }
 86.4113 -+	  pgr++;
 86.4114 -+	}
 86.4115 -+      else if (z == sizeof(int))
 86.4116 -+	{
 86.4117 -+#if defined(__SH4__)
 86.4118 -+	  if ((*p_arg)->type == FFI_TYPE_FLOAT)
 86.4119 -+	    {
 86.4120 -+	      if (freg++ >= NFREGARG)
 86.4121 -+		continue;
 86.4122 -+	      avalue[i] = pfr;
 86.4123 -+	      pfr++;
 86.4124 -+	    }
 86.4125 -+	  else
 86.4126 -+#endif
 86.4127 -+	    {
 86.4128 -+	      if (greg++ >= NGREGARG)
 86.4129 -+		continue;
 86.4130 -+	      avalue[i] = pgr;
 86.4131 -+	      pgr++;
 86.4132 -+	    }
 86.4133 -+	}
 86.4134 -+#if defined(__SH4__)
 86.4135 -+      else if ((*p_arg)->type == FFI_TYPE_DOUBLE)
 86.4136 -+	{
 86.4137 -+	  if (freg + 1 >= NFREGARG)
 86.4138 -+	    continue;
 86.4139 -+	  freg = (freg + 1) & ~1;
 86.4140 -+	  freg += 2;
 86.4141 -+	  avalue[i] = pfr;
 86.4142 -+	  pfr += 2;
 86.4143 -+	}
 86.4144 -+#endif
 86.4145 -+      else
 86.4146 -+	{
 86.4147 -+	  int n = (z + sizeof (int) - 1) / sizeof (int);
 86.4148 -+#if defined(__SH4__)
 86.4149 -+	  if (greg + n - 1 >= NGREGARG)
 86.4150 -+	    continue;
 86.4151 -+	  greg += n;
 86.4152 -+#else
 86.4153 -+	  if (greg >= NGREGARG)
 86.4154 -+	    continue;
 86.4155 -+	  else if (greg + n - 1 >= NGREGARG)
 86.4156 -+	    greg = NGREGARG;
 86.4157 -+	  else
 86.4158 -+	    greg += n;
 86.4159 -+#endif
 86.4160 -+	  avalue[i] = pgr;
 86.4161 -+	  pgr += n;
 86.4162 -+	}
 86.4163 -+    }
 86.4164 -+
 86.4165 -+  greg = ireg;
 86.4166 -+#if defined(__SH4__)
 86.4167 -+  freg = 0;
 86.4168 -+#endif
 86.4169 -+
 86.4170 -+  for (i = 0, p_arg = cif->arg_types; i < avn; i++, p_arg++)
 86.4171 -+    {
 86.4172 -+      size_t z;
 86.4173 -+
 86.4174 -+      z = (*p_arg)->size;
 86.4175 -+      if (z < sizeof(int))
 86.4176 -+	{
 86.4177 -+	  if (greg++ < NGREGARG)
 86.4178 -+	    continue;
 86.4179 -+
 86.4180 -+	  z = sizeof(int);
 86.4181 -+	  switch ((*p_arg)->type)
 86.4182 -+	    {
 86.4183 -+	    case FFI_TYPE_SINT8:
 86.4184 -+	    case FFI_TYPE_UINT8:
 86.4185 -+	      avalue[i] = (((char *)pst) + OFS_INT8);
 86.4186 -+	      break;
 86.4187 -+  
 86.4188 -+	    case FFI_TYPE_SINT16:
 86.4189 -+	    case FFI_TYPE_UINT16:
 86.4190 -+	      avalue[i] = (((char *)pst) + OFS_INT16);
 86.4191 -+	      break;
 86.4192 -+  
 86.4193 -+	    case FFI_TYPE_STRUCT:
 86.4194 -+	      avalue[i] = pst;
 86.4195 -+	      break;
 86.4196 -+
 86.4197 -+	    default:
 86.4198 -+	      FFI_ASSERT(0);
 86.4199 -+	    }
 86.4200 -+	  pst++;
 86.4201 -+	}
 86.4202 -+      else if (z == sizeof(int))
 86.4203 -+	{
 86.4204 -+#if defined(__SH4__)
 86.4205 -+	  if ((*p_arg)->type == FFI_TYPE_FLOAT)
 86.4206 -+	    {
 86.4207 -+	      if (freg++ < NFREGARG)
 86.4208 -+		continue;
 86.4209 -+	    }
 86.4210 -+	  else
 86.4211 -+#endif
 86.4212 -+	    {
 86.4213 -+	      if (greg++ < NGREGARG)
 86.4214 -+		continue;
 86.4215 -+	    }
 86.4216 -+	  avalue[i] = pst;
 86.4217 -+	  pst++;
 86.4218 -+	}
 86.4219 -+#if defined(__SH4__)
 86.4220 -+      else if ((*p_arg)->type == FFI_TYPE_DOUBLE)
 86.4221 -+	{
 86.4222 -+	  if (freg + 1 < NFREGARG)
 86.4223 -+	    {
 86.4224 -+	      freg = (freg + 1) & ~1;
 86.4225 -+	      freg += 2;
 86.4226 -+	      continue;
 86.4227 -+	    }
 86.4228 -+	  avalue[i] = pst;
 86.4229 -+	  pst += 2;
 86.4230 -+	}
 86.4231 -+#endif
 86.4232 -+      else
 86.4233 -+	{
 86.4234 -+	  int n = (z + sizeof (int) - 1) / sizeof (int);
 86.4235 -+	  if (greg + n - 1 < NGREGARG)
 86.4236 -+	    {
 86.4237 -+	      greg += n;
 86.4238 -+	      continue;
 86.4239 -+	    }
 86.4240 -+#if (! defined(__SH4__))
 86.4241 -+	  else if (greg < NGREGARG)
 86.4242 -+	    {
 86.4243 -+	      greg = NGREGARG;
 86.4244 -+	      continue;
 86.4245 -+	    }
 86.4246 -+#endif
 86.4247 -+	  avalue[i] = pst;
 86.4248 -+	  pst += n;
 86.4249 -+	}
 86.4250 -+    }
 86.4251 -+
 86.4252 -+  (closure->fun) (cif, rvalue, avalue, closure->user_data);
 86.4253 -+
 86.4254 -+  /* Tell ffi_closure_osf how to perform return type promotions.  */
 86.4255 -+  return cif->rtype->type;
 86.4256 -+}
 86.4257 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/sh/sysv.S gcc/libffi/src/sh/sysv.S
 86.4258 ---- gcc-3.2.2.orig/libffi/src/sh/sysv.S	Thu Jan  1 09:00:00 1970
 86.4259 -+++ gcc/libffi/src/sh/sysv.S	Tue Dec 17 03:22:48 2002
 86.4260 -@@ -0,0 +1,773 @@
 86.4261 -+/* -----------------------------------------------------------------------
 86.4262 -+   sysv.S - Copyright (c) 2002 Kaz Kojima
 86.4263 -+   
 86.4264 -+   SuperH Foreign Function Interface 
 86.4265 -+
 86.4266 -+   Permission is hereby granted, free of charge, to any person obtaining
 86.4267 -+   a copy of this software and associated documentation files (the
 86.4268 -+   ``Software''), to deal in the Software without restriction, including
 86.4269 -+   without limitation the rights to use, copy, modify, merge, publish,
 86.4270 -+   distribute, sublicense, and/or sell copies of the Software, and to
 86.4271 -+   permit persons to whom the Software is furnished to do so, subject to
 86.4272 -+   the following conditions:
 86.4273 -+
 86.4274 -+   The above copyright notice and this permission notice shall be included
 86.4275 -+   in all copies or substantial portions of the Software.
 86.4276 -+
 86.4277 -+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 86.4278 -+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 86.4279 -+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 86.4280 -+   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 86.4281 -+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 86.4282 -+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 86.4283 -+   OTHER DEALINGS IN THE SOFTWARE.
 86.4284 -+   ----------------------------------------------------------------------- */
 86.4285 -+
 86.4286 -+#define LIBFFI_ASM	
 86.4287 -+#include <ffi.h>
 86.4288 -+#ifdef HAVE_MACHINE_ASM_H
 86.4289 -+#include <machine/asm.h>
 86.4290 -+#else
 86.4291 -+/* XXX these lose for some platforms, I'm sure. */
 86.4292 -+#define CNAME(x) x
 86.4293 -+#define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x):
 86.4294 -+#endif
 86.4295 -+
 86.4296 -+#if defined(__HITACHI__)
 86.4297 -+#define STRUCT_VALUE_ADDRESS_WITH_ARG 1
 86.4298 -+#else
 86.4299 -+#define STRUCT_VALUE_ADDRESS_WITH_ARG 0
 86.4300 -+#endif
 86.4301 -+
 86.4302 -+.text
 86.4303 -+
 86.4304 -+	# r4:	ffi_prep_args
 86.4305 -+	# r5:	&ecif
 86.4306 -+	# r6:	bytes
 86.4307 -+	# r7:	flags
 86.4308 -+	# sp+0: rvalue
 86.4309 -+	# sp+4: fn
 86.4310 -+
 86.4311 -+	# This assumes we are using gas.
 86.4312 -+ENTRY(ffi_call_SYSV)
 86.4313 -+	# Save registers
 86.4314 -+.LFB1:
 86.4315 -+	mov.l	r8,@-r15
 86.4316 -+.LCFI0:
 86.4317 -+	mov.l	r9,@-r15
 86.4318 -+.LCFI1:
 86.4319 -+	mov.l	r10,@-r15
 86.4320 -+.LCFI2:
 86.4321 -+	mov.l	r12,@-r15
 86.4322 -+.LCFI3:
 86.4323 -+	mov.l	r14,@-r15
 86.4324 -+.LCFI4:
 86.4325 -+	sts.l	pr,@-r15
 86.4326 -+.LCFI5:
 86.4327 -+	mov	r15,r14
 86.4328 -+.LCFI6:
 86.4329 -+#if defined(__SH4__)
 86.4330 -+	mov	r6,r8
 86.4331 -+	mov	r7,r9
 86.4332 -+
 86.4333 -+	sub	r6,r15
 86.4334 -+	add	#-16,r15
 86.4335 -+	mov	#~7,r0
 86.4336 -+	and	r0,r15
 86.4337 -+
 86.4338 -+	mov	r4,r0
 86.4339 -+	jsr	@r0
 86.4340 -+	 mov	r15,r4
 86.4341 -+
 86.4342 -+	mov	r9,r1
 86.4343 -+	shlr8	r9
 86.4344 -+	shlr8	r9
 86.4345 -+	shlr8	r9
 86.4346 -+
 86.4347 -+	mov	#FFI_TYPE_STRUCT,r2
 86.4348 -+	cmp/eq	r2,r9
 86.4349 -+	bf	1f
 86.4350 -+#if STRUCT_VALUE_ADDRESS_WITH_ARG
 86.4351 -+ 	mov.l	@r15+,r4
 86.4352 -+	bra	2f
 86.4353 -+	 mov	#5,r2
 86.4354 -+#else
 86.4355 -+ 	mov.l	@r15+,r10
 86.4356 -+#endif
 86.4357 -+1:
 86.4358 -+	mov	#4,r2
 86.4359 -+2:
 86.4360 -+	mov	#4,r3
 86.4361 -+
 86.4362 -+L_pass:
 86.4363 -+	cmp/pl	r8
 86.4364 -+	bf	L_call_it
 86.4365 -+
 86.4366 -+	mov	r1,r0
 86.4367 -+	and	#3,r0
 86.4368 -+
 86.4369 -+L_pass_d:
 86.4370 -+	cmp/eq	#FFI_TYPE_DOUBLE,r0
 86.4371 -+	bf	L_pass_f
 86.4372 -+
 86.4373 -+	mov	r3,r0
 86.4374 -+	and	#1,r0
 86.4375 -+	tst	r0,r0
 86.4376 -+	bt	1f
 86.4377 -+	add	#1,r3
 86.4378 -+1:
 86.4379 -+	mov	r15,r0
 86.4380 -+	and	#7,r0
 86.4381 -+	tst	r0,r0
 86.4382 -+	bt	2f
 86.4383 -+	add	#4,r15
 86.4384 -+2:
 86.4385 -+	mov	#12,r0
 86.4386 -+	cmp/hs	r0,r3
 86.4387 -+	bt/s	3f
 86.4388 -+	 shlr2	r1
 86.4389 -+	bsr	L_pop_d
 86.4390 -+	 nop
 86.4391 -+3:
 86.4392 -+	add	#2,r3
 86.4393 -+	bra	L_pass
 86.4394 -+	 add	#-8,r8
 86.4395 -+
 86.4396 -+L_pop_d:
 86.4397 -+	mov	r3,r0
 86.4398 -+	add	r0,r0
 86.4399 -+	add	r3,r0
 86.4400 -+	add	#-12,r0
 86.4401 -+	braf	r0
 86.4402 -+	 nop
 86.4403 -+#ifdef __LITTLE_ENDIAN__
 86.4404 -+	fmov.s	@r15+,fr5
 86.4405 -+	rts
 86.4406 -+	 fmov.s	@r15+,fr4
 86.4407 -+	fmov.s	@r15+,fr7
 86.4408 -+	rts
 86.4409 -+	 fmov.s	@r15+,fr6
 86.4410 -+	fmov.s	@r15+,fr9
 86.4411 -+	rts
 86.4412 -+	 fmov.s	@r15+,fr8
 86.4413 -+	fmov.s	@r15+,fr11
 86.4414 -+	rts
 86.4415 -+	 fmov.s	@r15+,fr10
 86.4416 -+#else
 86.4417 -+	fmov.s	@r15+,fr4
 86.4418 -+	rts
 86.4419 -+	 fmov.s	@r15+,fr5
 86.4420 -+	fmov.s	@r15+,fr6
 86.4421 -+	rts
 86.4422 -+	 fmov.s	@r15+,fr7
 86.4423 -+	fmov.s	@r15+,fr8
 86.4424 -+	rts
 86.4425 -+	 fmov.s	@r15+,fr9
 86.4426 -+	fmov.s	@r15+,fr10
 86.4427 -+	rts
 86.4428 -+	 fmov.s	@r15+,fr11
 86.4429 -+#endif
 86.4430 -+
 86.4431 -+L_pass_f:
 86.4432 -+	cmp/eq	#FFI_TYPE_FLOAT,r0
 86.4433 -+	bf	L_pass_i
 86.4434 -+
 86.4435 -+	mov	#12,r0
 86.4436 -+	cmp/hs	r0,r3
 86.4437 -+	bt/s	2f
 86.4438 -+	 shlr2	r1
 86.4439 -+	bsr	L_pop_f
 86.4440 -+	 nop
 86.4441 -+2:
 86.4442 -+	add	#1,r3
 86.4443 -+	bra	L_pass
 86.4444 -+	 add	#-4,r8
 86.4445 -+
 86.4446 -+L_pop_f:
 86.4447 -+	mov	r3,r0
 86.4448 -+	shll2	r0
 86.4449 -+	add	#-16,r0
 86.4450 -+	braf	r0
 86.4451 -+	 nop
 86.4452 -+#ifdef __LITTLE_ENDIAN__
 86.4453 -+	rts
 86.4454 -+	 fmov.s	@r15+,fr5
 86.4455 -+	rts
 86.4456 -+	 fmov.s	@r15+,fr4
 86.4457 -+	rts
 86.4458 -+	 fmov.s	@r15+,fr7
 86.4459 -+	rts
 86.4460 -+	 fmov.s	@r15+,fr6
 86.4461 -+	rts
 86.4462 -+	 fmov.s	@r15+,fr9
 86.4463 -+	rts
 86.4464 -+	 fmov.s	@r15+,fr8
 86.4465 -+	rts
 86.4466 -+	 fmov.s	@r15+,fr11
 86.4467 -+	rts
 86.4468 -+	 fmov.s	@r15+,fr10
 86.4469 -+#else
 86.4470 -+	rts
 86.4471 -+	 fmov.s	@r15+,fr4
 86.4472 -+	rts
 86.4473 -+	 fmov.s	@r15+,fr5
 86.4474 -+	rts
 86.4475 -+	 fmov.s	@r15+,fr6
 86.4476 -+	rts
 86.4477 -+	 fmov.s	@r15+,fr7
 86.4478 -+	rts
 86.4479 -+	 fmov.s	@r15+,fr8
 86.4480 -+	rts
 86.4481 -+	 fmov.s	@r15+,fr9
 86.4482 -+	rts
 86.4483 -+	 fmov.s	@r15+,fr10
 86.4484 -+	rts
 86.4485 -+	 fmov.s	@r15+,fr11
 86.4486 -+#endif
 86.4487 -+
 86.4488 -+L_pass_i:
 86.4489 -+	cmp/eq	#FFI_TYPE_INT,r0
 86.4490 -+	bf	L_call_it
 86.4491 -+
 86.4492 -+	mov	#8,r0
 86.4493 -+	cmp/hs	r0,r2
 86.4494 -+	bt/s	2f
 86.4495 -+	 shlr2	r1
 86.4496 -+	bsr	L_pop_i
 86.4497 -+	 nop
 86.4498 -+2:
 86.4499 -+	add	#1,r2
 86.4500 -+	bra	L_pass
 86.4501 -+	 add	#-4,r8
 86.4502 -+
 86.4503 -+L_pop_i:
 86.4504 -+	mov	r2,r0
 86.4505 -+	shll2	r0
 86.4506 -+	add	#-16,r0
 86.4507 -+	braf	r0
 86.4508 -+	 nop
 86.4509 -+	rts
 86.4510 -+	 mov.l	@r15+,r4
 86.4511 -+	rts
 86.4512 -+	 mov.l	@r15+,r5
 86.4513 -+	rts
 86.4514 -+	 mov.l	@r15+,r6
 86.4515 -+	rts
 86.4516 -+	 mov.l	@r15+,r7
 86.4517 -+
 86.4518 -+L_call_it:
 86.4519 -+	# call function
 86.4520 -+#if (! STRUCT_VALUE_ADDRESS_WITH_ARG)
 86.4521 -+	mov	r10, r2
 86.4522 -+#endif
 86.4523 -+	mov.l  @(28,r14),r1
 86.4524 -+	jsr    @r1
 86.4525 -+	 nop
 86.4526 -+
 86.4527 -+L_ret_d:
 86.4528 -+	mov	#FFI_TYPE_DOUBLE,r2
 86.4529 -+	cmp/eq	r2,r9
 86.4530 -+	bf	L_ret_ll
 86.4531 -+
 86.4532 -+	mov.l	@(24,r14),r1
 86.4533 -+#ifdef __LITTLE_ENDIAN__
 86.4534 -+	fmov.s	fr1,@r1
 86.4535 -+	add	#4,r1
 86.4536 -+	bra	L_epilogue
 86.4537 -+	 fmov.s	fr0,@r1
 86.4538 -+#else
 86.4539 -+	fmov.s	fr0,@r1
 86.4540 -+	add	#4,r1
 86.4541 -+	bra	L_epilogue
 86.4542 -+	 fmov.s	fr1,@r1
 86.4543 -+#endif
 86.4544 -+
 86.4545 -+L_ret_ll:
 86.4546 -+	mov	#FFI_TYPE_SINT64,r2
 86.4547 -+	cmp/eq	r2,r9
 86.4548 -+	bt/s	1f
 86.4549 -+	 mov	#FFI_TYPE_UINT64,r2
 86.4550 -+	cmp/eq	r2,r9
 86.4551 -+	bf	L_ret_f
 86.4552 -+
 86.4553 -+1:
 86.4554 -+	mov.l	@(24,r14),r2
 86.4555 -+	mov.l	r0,@r2
 86.4556 -+	bra	L_epilogue
 86.4557 -+	 mov.l	r1,@(4,r2)
 86.4558 -+
 86.4559 -+L_ret_f:
 86.4560 -+	mov	#FFI_TYPE_FLOAT,r2
 86.4561 -+	cmp/eq	r2,r9
 86.4562 -+	bf	L_ret_i
 86.4563 -+
 86.4564 -+	mov.l	@(24,r14),r1
 86.4565 -+	bra	L_epilogue
 86.4566 -+	 fmov.s	fr0,@r1
 86.4567 -+
 86.4568 -+L_ret_i:
 86.4569 -+	mov	#FFI_TYPE_INT,r2
 86.4570 -+	cmp/eq	r2,r9
 86.4571 -+	bf	L_epilogue
 86.4572 -+
 86.4573 -+	mov.l	@(24,r14),r1
 86.4574 -+	bra	L_epilogue
 86.4575 -+	 mov.l	r0,@r1
 86.4576 -+
 86.4577 -+L_epilogue:
 86.4578 -+	# Remove the space we pushed for the args
 86.4579 -+	mov   r14,r15
 86.4580 -+
 86.4581 -+	lds.l  @r15+,pr
 86.4582 -+	mov.l  @r15+,r14
 86.4583 -+	mov.l  @r15+,r12
 86.4584 -+	mov.l  @r15+,r10
 86.4585 -+	mov.l  @r15+,r9
 86.4586 -+	rts
 86.4587 -+	 mov.l  @r15+,r8
 86.4588 -+#else
 86.4589 -+	mov	r6,r8
 86.4590 -+	mov	r7,r9
 86.4591 -+
 86.4592 -+	sub	r6,r15
 86.4593 -+	add	#-16,r15
 86.4594 -+	mov	#~7,r0
 86.4595 -+	and	r0,r15
 86.4596 -+
 86.4597 -+	mov	r4,r0
 86.4598 -+	jsr	@r0
 86.4599 -+	 mov	r15,r4
 86.4600 -+
 86.4601 -+	mov	r9,r3
 86.4602 -+	shlr8	r9
 86.4603 -+	shlr8	r9
 86.4604 -+	shlr8	r9
 86.4605 -+
 86.4606 -+	mov	#FFI_TYPE_STRUCT,r2
 86.4607 -+	cmp/eq	r2,r9
 86.4608 -+	bf	1f
 86.4609 -+#if STRUCT_VALUE_ADDRESS_WITH_ARG
 86.4610 -+	mov.l	@r15+,r4
 86.4611 -+	bra	2f
 86.4612 -+	 mov	#5,r2
 86.4613 -+#else
 86.4614 -+	mov.l	@r15+,r10
 86.4615 -+#endif
 86.4616 -+1:
 86.4617 -+	mov	#4,r2
 86.4618 -+2:
 86.4619 -+
 86.4620 -+L_pass:
 86.4621 -+	cmp/pl	r8
 86.4622 -+	bf	L_call_it
 86.4623 -+
 86.4624 -+	mov	r3,r0
 86.4625 -+	and	#3,r0
 86.4626 -+
 86.4627 -+L_pass_d:
 86.4628 -+	cmp/eq	#FFI_TYPE_DOUBLE,r0
 86.4629 -+	bf	L_pass_i
 86.4630 -+
 86.4631 -+	mov	r15,r0
 86.4632 -+	and	#7,r0
 86.4633 -+	tst	r0,r0
 86.4634 -+	bt	1f
 86.4635 -+	add	#4,r15
 86.4636 -+1:
 86.4637 -+	mov	#8,r0
 86.4638 -+	cmp/hs	r0,r2
 86.4639 -+	bt/s	2f
 86.4640 -+	 shlr2	r3
 86.4641 -+	bsr	L_pop_d
 86.4642 -+	 nop
 86.4643 -+2:
 86.4644 -+	add	#2,r2
 86.4645 -+	bra	L_pass
 86.4646 -+	 add	#-8,r8
 86.4647 -+
 86.4648 -+L_pop_d:
 86.4649 -+	mov	r2,r0
 86.4650 -+	add	r0,r0
 86.4651 -+	add	r2,r0
 86.4652 -+	add	#-12,r0
 86.4653 -+	add	r0,r0
 86.4654 -+	braf	r0
 86.4655 -+	 nop
 86.4656 -+	mov.l	@r15+,r4
 86.4657 -+	rts
 86.4658 -+	 mov.l	@r15+,r5
 86.4659 -+	mov.l	@r15+,r5
 86.4660 -+	rts
 86.4661 -+	 mov.l	@r15+,r6
 86.4662 -+	mov.l	@r15+,r6
 86.4663 -+	rts
 86.4664 -+	 mov.l	@r15+,r7
 86.4665 -+	rts
 86.4666 -+	 mov.l	@r15+,r7
 86.4667 -+
 86.4668 -+L_pass_i:
 86.4669 -+	mov	#8,r0
 86.4670 -+	cmp/hs	r0,r2
 86.4671 -+	bt/s	2f
 86.4672 -+	 shlr2	r3
 86.4673 -+	bsr	L_pop_i
 86.4674 -+	 nop
 86.4675 -+2:
 86.4676 -+	add	#1,r2
 86.4677 -+	bra	L_pass
 86.4678 -+	 add	#-4,r8
 86.4679 -+
 86.4680 -+L_pop_i:
 86.4681 -+	mov	r2,r0
 86.4682 -+	shll2	r0
 86.4683 -+	add	#-16,r0
 86.4684 -+	braf	r0
 86.4685 -+	 nop
 86.4686 -+	rts
 86.4687 -+	 mov.l	@r15+,r4
 86.4688 -+	rts
 86.4689 -+	 mov.l	@r15+,r5
 86.4690 -+	rts
 86.4691 -+	 mov.l	@r15+,r6
 86.4692 -+	rts
 86.4693 -+	 mov.l	@r15+,r7
 86.4694 -+
 86.4695 -+L_call_it:
 86.4696 -+	# call function
 86.4697 -+#if (! STRUCT_VALUE_ADDRESS_WITH_ARG)
 86.4698 -+	mov	r10, r2
 86.4699 -+#endif
 86.4700 -+	mov.l  @(28,r14),r1
 86.4701 -+	jsr    @r1
 86.4702 -+	 nop
 86.4703 -+
 86.4704 -+L_ret_d:
 86.4705 -+	mov	#FFI_TYPE_DOUBLE,r2
 86.4706 -+	cmp/eq	r2,r9
 86.4707 -+	bf	L_ret_ll
 86.4708 -+
 86.4709 -+	mov.l	@(24,r14),r2
 86.4710 -+	mov.l	r0,@r2
 86.4711 -+	bra	L_epilogue
 86.4712 -+	 mov.l	r1,@(4,r2)
 86.4713 -+
 86.4714 -+L_ret_ll:
 86.4715 -+	mov	#FFI_TYPE_SINT64,r2
 86.4716 -+	cmp/eq	r2,r9
 86.4717 -+	bt/s	1f
 86.4718 -+	 mov	#FFI_TYPE_UINT64,r2
 86.4719 -+	cmp/eq	r2,r9
 86.4720 -+	bf	L_ret_i
 86.4721 -+
 86.4722 -+1:
 86.4723 -+	mov.l	@(24,r14),r2
 86.4724 -+	mov.l	r0,@r2
 86.4725 -+	bra	L_epilogue
 86.4726 -+	 mov.l	r1,@(4,r2)
 86.4727 -+
 86.4728 -+L_ret_i:
 86.4729 -+	mov	#FFI_TYPE_FLOAT,r2
 86.4730 -+	cmp/eq	r2,r9
 86.4731 -+	bt	1f
 86.4732 -+	mov	#FFI_TYPE_INT,r2
 86.4733 -+	cmp/eq	r2,r9
 86.4734 -+	bf	L_epilogue
 86.4735 -+1:
 86.4736 -+	mov.l	@(24,r14),r1
 86.4737 -+	bra	L_epilogue
 86.4738 -+	 mov.l	r0,@r1
 86.4739 -+
 86.4740 -+L_epilogue:
 86.4741 -+	# Remove the space we pushed for the args
 86.4742 -+	mov   r14,r15
 86.4743 -+
 86.4744 -+	lds.l  @r15+,pr
 86.4745 -+	mov.l  @r15+,r14
 86.4746 -+	mov.l  @r15+,r12
 86.4747 -+	mov.l  @r15+,r10
 86.4748 -+	mov.l  @r15+,r9
 86.4749 -+	rts
 86.4750 -+	 mov.l  @r15+,r8
 86.4751 -+#endif
 86.4752 -+.LFE1:
 86.4753 -+.ffi_call_SYSV_end:
 86.4754 -+        .size    CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
 86.4755 -+
 86.4756 -+.globl	ffi_closure_helper_SYSV
 86.4757 -+
 86.4758 -+ENTRY(ffi_closure_SYSV)
 86.4759 -+.LFB2:
 86.4760 -+	mov.l	r14,@-r15
 86.4761 -+.LCFI7:
 86.4762 -+	sts.l	pr,@-r15
 86.4763 -+
 86.4764 -+	/* Stack layout:	
 86.4765 -+	   ...
 86.4766 -+	   32 bytes (floating register parameters, SH-4 only)
 86.4767 -+	   16 bytes (register parameters)
 86.4768 -+	    4 bytes (result)
 86.4769 -+	    4 bytes (5th arg)
 86.4770 -+	   <- new stack pointer
 86.4771 -+	*/
 86.4772 -+.LCFI8:
 86.4773 -+#if defined(__SH4__)
 86.4774 -+	add	#-56,r15
 86.4775 -+#else
 86.4776 -+	add	#-24,r15
 86.4777 -+#endif
 86.4778 -+.LCFI9:
 86.4779 -+	mov	r15,r14
 86.4780 -+.LCFIA:
 86.4781 -+	mov	r14,r1
 86.4782 -+	add	#24,r1
 86.4783 -+	mov.l	r7,@-r1
 86.4784 -+	mov.l	r6,@-r1
 86.4785 -+	mov.l	r5,@-r1
 86.4786 -+	mov.l	r4,@-r1
 86.4787 -+	mov	r1,r6
 86.4788 -+
 86.4789 -+#if defined(__SH4__)
 86.4790 -+	mov	r14,r1
 86.4791 -+	add	#56,r1
 86.4792 -+#ifdef __LITTLE_ENDIAN__
 86.4793 -+	fmov.s	fr10,@-r1
 86.4794 -+	fmov.s	fr11,@-r1
 86.4795 -+	fmov.s	fr8,@-r1
 86.4796 -+	fmov.s	fr9,@-r1
 86.4797 -+	fmov.s	fr6,@-r1
 86.4798 -+	fmov.s	fr7,@-r1
 86.4799 -+	fmov.s	fr4,@-r1
 86.4800 -+	fmov.s	fr5,@-r1
 86.4801 -+#else
 86.4802 -+	fmov.s	fr11,@-r1
 86.4803 -+	fmov.s	fr10,@-r1
 86.4804 -+	fmov.s	fr9,@-r1
 86.4805 -+	fmov.s	fr8,@-r1
 86.4806 -+	fmov.s	fr7,@-r1
 86.4807 -+	fmov.s	fr6,@-r1
 86.4808 -+	fmov.s	fr5,@-r1
 86.4809 -+	fmov.s	fr4,@-r1
 86.4810 -+#endif
 86.4811 -+	mov	r1,r7
 86.4812 -+#endif
 86.4813 -+
 86.4814 -+	mov	r14,r1
 86.4815 -+	add	#4,r1
 86.4816 -+	mov	r1,r5
 86.4817 -+
 86.4818 -+	mov	r14,r1
 86.4819 -+#if defined(__SH4__)
 86.4820 -+	add	#64,r1
 86.4821 -+#else
 86.4822 -+	add	#32,r1
 86.4823 -+#endif
 86.4824 -+	mov.l	r1,@r14
 86.4825 -+
 86.4826 -+	mov.l	L_helper,r0
 86.4827 -+	jsr	@r0
 86.4828 -+	 mov	r3,r4
 86.4829 -+
 86.4830 -+	shll	r0
 86.4831 -+	mov	r0,r1
 86.4832 -+	mova	L_table,r0
 86.4833 -+	add	r1,r0
 86.4834 -+	mov.w	@r0,r0
 86.4835 -+	mov	r14,r2
 86.4836 -+	braf	r0
 86.4837 -+	 add	#4,r2
 86.4838 -+0:
 86.4839 -+	.align 2
 86.4840 -+L_helper:
 86.4841 -+	.long	ffi_closure_helper_SYSV
 86.4842 -+L_table:
 86.4843 -+	.short L_case_v - 0b	/* FFI_TYPE_VOID */
 86.4844 -+	.short L_case_i - 0b	/* FFI_TYPE_INT */
 86.4845 -+#if defined(__SH4__)
 86.4846 -+	.short L_case_f - 0b	/* FFI_TYPE_FLOAT */
 86.4847 -+	.short L_case_d - 0b	/* FFI_TYPE_DOUBLE */
 86.4848 -+	.short L_case_d - 0b	/* FFI_TYPE_LONGDOUBLE */
 86.4849 -+#else
 86.4850 -+	.short L_case_i - 0b	/* FFI_TYPE_FLOAT */
 86.4851 -+	.short L_case_ll - 0b	/* FFI_TYPE_DOUBLE */
 86.4852 -+	.short L_case_ll - 0b	/* FFI_TYPE_LONGDOUBLE */
 86.4853 -+#endif
 86.4854 -+	.short L_case_uq - 0b	/* FFI_TYPE_UINT8 */
 86.4855 -+	.short L_case_q - 0b	/* FFI_TYPE_SINT8 */
 86.4856 -+	.short L_case_uh - 0b	/* FFI_TYPE_UINT16 */
 86.4857 -+	.short L_case_h - 0b	/* FFI_TYPE_SINT16 */
 86.4858 -+	.short L_case_i - 0b	/* FFI_TYPE_UINT32 */
 86.4859 -+	.short L_case_i - 0b	/* FFI_TYPE_SINT32 */
 86.4860 -+	.short L_case_ll - 0b	/* FFI_TYPE_UINT64 */
 86.4861 -+	.short L_case_ll - 0b	/* FFI_TYPE_SINT64 */
 86.4862 -+	.short L_case_v - 0b	/* FFI_TYPE_STRUCT */
 86.4863 -+	.short L_case_i - 0b	/* FFI_TYPE_POINTER */
 86.4864 -+
 86.4865 -+#if defined(__SH4__)
 86.4866 -+L_case_d:
 86.4867 -+#ifdef __LITTLE_ENDIAN__
 86.4868 -+	fmov.s	@r2+,fr1
 86.4869 -+	bra	L_case_v
 86.4870 -+	 fmov.s	@r2,fr0
 86.4871 -+#else
 86.4872 -+	fmov.s	@r2+,fr0
 86.4873 -+	bra	L_case_v
 86.4874 -+	 fmov.s	@r2,fr1
 86.4875 -+#endif
 86.4876 -+
 86.4877 -+L_case_f:
 86.4878 -+	bra	L_case_v
 86.4879 -+	 fmov.s	@r2,fr0
 86.4880 -+#endif
 86.4881 -+	
 86.4882 -+L_case_ll:
 86.4883 -+	mov.l	@r2+,r0
 86.4884 -+	bra	L_case_v
 86.4885 -+	 mov.l	@r2,r1
 86.4886 -+	
 86.4887 -+L_case_i:
 86.4888 -+	bra	L_case_v
 86.4889 -+	 mov.l	@r2,r0
 86.4890 -+	
 86.4891 -+L_case_q:
 86.4892 -+#ifdef __LITTLE_ENDIAN__
 86.4893 -+#else
 86.4894 -+	add	#3,r2
 86.4895 -+#endif
 86.4896 -+	bra	L_case_v
 86.4897 -+	 mov.b	@r2,r0
 86.4898 -+
 86.4899 -+L_case_uq:
 86.4900 -+#ifdef __LITTLE_ENDIAN__
 86.4901 -+#else
 86.4902 -+	add	#3,r2
 86.4903 -+#endif
 86.4904 -+	mov.b	@r2,r0
 86.4905 -+	bra	L_case_v
 86.4906 -+	 extu.b r0,r0
 86.4907 -+
 86.4908 -+L_case_h:
 86.4909 -+#ifdef __LITTLE_ENDIAN__
 86.4910 -+#else
 86.4911 -+	add	#2,r2
 86.4912 -+#endif
 86.4913 -+	bra	L_case_v
 86.4914 -+	 mov.w	@r2,r0
 86.4915 -+
 86.4916 -+L_case_uh:
 86.4917 -+#ifdef __LITTLE_ENDIAN__
 86.4918 -+#else
 86.4919 -+	add	#2,r2
 86.4920 -+#endif
 86.4921 -+	mov.w	@r2,r0
 86.4922 -+	extu.w	r0,r0
 86.4923 -+	/* fall through */
 86.4924 -+
 86.4925 -+L_case_v:
 86.4926 -+#if defined(__SH4__)
 86.4927 -+	add	#56,r15
 86.4928 -+#else
 86.4929 -+	add	#24,r15
 86.4930 -+#endif
 86.4931 -+	lds.l	@r15+,pr
 86.4932 -+	rts
 86.4933 -+	 mov.l	@r15+,r14
 86.4934 -+.LFE2:
 86.4935 -+.ffi_closure_SYSV_end:
 86.4936 -+        .size    CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
 86.4937 -+
 86.4938 -+	.section	".eh_frame","aw",@progbits
 86.4939 -+__FRAME_BEGIN__:
 86.4940 -+	.4byte	.LECIE1-.LSCIE1	/* Length of Common Information Entry */
 86.4941 -+.LSCIE1:
 86.4942 -+	.4byte	0x0	/* CIE Identifier Tag */
 86.4943 -+	.byte	0x1	/* CIE Version */
 86.4944 -+	.byte	0x0	/* CIE Augmentation */
 86.4945 -+	.byte	0x1	/* uleb128 0x1; CIE Code Alignment Factor */
 86.4946 -+	.byte	0x7c	/* sleb128 -4; CIE Data Alignment Factor */
 86.4947 -+	.byte	0x11	/* CIE RA Column */
 86.4948 -+	.byte	0xc	/* DW_CFA_def_cfa */
 86.4949 -+	.byte	0xf	/* uleb128 0xf */
 86.4950 -+	.byte	0x0	/* uleb128 0x0 */
 86.4951 -+	.align	2
 86.4952 -+.LECIE1:
 86.4953 -+.LSFDE1:
 86.4954 -+	.4byte	.LEFDE1-.LASFDE1	/* FDE Length */
 86.4955 -+.LASFDE1:
 86.4956 -+	.4byte	.LASFDE1-__FRAME_BEGIN__	/* FDE CIE offset */
 86.4957 -+	.4byte	.LFB1	/* FDE initial location */
 86.4958 -+	.4byte	.LFE1-.LFB1	 /* FDE address range */
 86.4959 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4960 -+	.4byte	.LCFI0-.LFB1
 86.4961 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.4962 -+	.byte	0x4	/* uleb128 0x4 */
 86.4963 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4964 -+	.4byte	.LCFI1-.LCFI0
 86.4965 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.4966 -+	.byte	0x8	/* uleb128 0x4 */
 86.4967 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4968 -+	.4byte	.LCFI2-.LCFI1
 86.4969 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.4970 -+	.byte	0xc	/* uleb128 0x4 */
 86.4971 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4972 -+	.4byte	.LCFI3-.LCFI2
 86.4973 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.4974 -+	.byte	0x10	/* uleb128 0x4 */
 86.4975 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4976 -+	.4byte	.LCFI4-.LCFI3
 86.4977 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.4978 -+	.byte	0x14	/* uleb128 0x4 */
 86.4979 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4980 -+	.4byte	.LCFI5-.LCFI4
 86.4981 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.4982 -+	.byte	0x18	/* uleb128 0x4 */
 86.4983 -+	.byte	0x91	/* DW_CFA_offset, column 0x11 */
 86.4984 -+	.byte	0x6	/* uleb128 0x6 */
 86.4985 -+	.byte	0x8e	/* DW_CFA_offset, column 0xe */
 86.4986 -+	.byte	0x5	/* uleb128 0x5 */
 86.4987 -+	.byte	0x8c	/* DW_CFA_offset, column 0xc */
 86.4988 -+	.byte	0x4	/* uleb128 0x4 */
 86.4989 -+	.byte	0x8a	/* DW_CFA_offset, column 0xa */
 86.4990 -+	.byte	0x3	/* uleb128 0x3 */
 86.4991 -+	.byte	0x89	/* DW_CFA_offset, column 0x9 */
 86.4992 -+	.byte	0x2	/* uleb128 0x2 */
 86.4993 -+	.byte	0x88	/* DW_CFA_offset, column 0x8 */
 86.4994 -+	.byte	0x1	/* uleb128 0x1 */
 86.4995 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.4996 -+	.4byte	.LCFI6-.LCFI5
 86.4997 -+	.byte	0xd	/* DW_CFA_def_cfa_register */
 86.4998 -+	.byte	0xe	/* uleb128 0xe */
 86.4999 -+	.align	2
 86.5000 -+.LEFDE1:
 86.5001 -+
 86.5002 -+.LSFDE3:
 86.5003 -+	.4byte	.LEFDE3-.LASFDE3	/* FDE Length */
 86.5004 -+.LASFDE3:
 86.5005 -+	.4byte	.LASFDE3-__FRAME_BEGIN__	/* FDE CIE offset */
 86.5006 -+	.4byte	.LFB2	/* FDE initial location */
 86.5007 -+	.4byte	.LFE2-.LFB2	 /* FDE address range */
 86.5008 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.5009 -+	.4byte	.LCFI7-.LFB2
 86.5010 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.5011 -+	.byte	0x4	/* uleb128 0x4 */
 86.5012 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.5013 -+	.4byte	.LCFI8-.LCFI7
 86.5014 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.5015 -+	.byte	0x8	/* uleb128 0x8 */
 86.5016 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.5017 -+	.4byte	.LCFI9-.LCFI8
 86.5018 -+	.byte	0xe	/* DW_CFA_def_cfa_offset */
 86.5019 -+#if defined(__SH4__)
 86.5020 -+	.byte	8+56	/* uleb128 8+56 */
 86.5021 -+#else
 86.5022 -+	.byte	8+24	/* uleb128 8+24 */
 86.5023 -+#endif
 86.5024 -+	.byte	0x91	/* DW_CFA_offset, column 0x11 */
 86.5025 -+        .byte	0x2
 86.5026 -+        .byte	0x8e	/* DW_CFA_offset, column 0xe */
 86.5027 -+        .byte	0x1
 86.5028 -+	.byte	0x4	/* DW_CFA_advance_loc4 */
 86.5029 -+	.4byte	.LCFIA-.LCFI9
 86.5030 -+	.byte	0xd	/* DW_CFA_def_cfa_register */
 86.5031 -+	.byte	0xe	/* uleb128 0xe */
 86.5032 -+	.align	2
 86.5033 -+.LEFDE3:
 86.5034 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/sparc/ffi.c gcc/libffi/src/sparc/ffi.c
 86.5035 ---- gcc-3.2.2.orig/libffi/src/sparc/ffi.c	Sat Mar  3 07:21:23 2001
 86.5036 -+++ gcc/libffi/src/sparc/ffi.c	Sat Jan  4 08:08:56 2003
 86.5037 -@@ -1,5 +1,5 @@
 86.5038 - /* -----------------------------------------------------------------------
 86.5039 --   ffi.c - Copyright (c) 1996 Cygnus Solutions
 86.5040 -+   ffi.c - Copyright (c) 1996, 2003 Cygnus Solutions
 86.5041 -    
 86.5042 -    Sparc Foreign Function Interface 
 86.5043 - 
 86.5044 -@@ -28,20 +28,22 @@
 86.5045 - 
 86.5046 - #include <stdlib.h>
 86.5047 - 
 86.5048 -+#ifdef SPARC64
 86.5049 -+extern void ffi_closure_v9(void);
 86.5050 -+#else
 86.5051 -+extern void ffi_closure_v8(void);
 86.5052 -+#endif
 86.5053 -+
 86.5054 - /* ffi_prep_args is called by the assembly routine once stack space
 86.5055 -    has been allocated for the function's arguments */
 86.5056 - 
 86.5057 - void ffi_prep_args_v8(char *stack, extended_cif *ecif)
 86.5058 - {
 86.5059 -   int i;
 86.5060 --  int tmp;
 86.5061 --  int avn;
 86.5062 -   void **p_argv;
 86.5063 -   char *argp;
 86.5064 -   ffi_type **p_arg;
 86.5065 - 
 86.5066 --  tmp = 0;
 86.5067 --
 86.5068 -   /* Skip 16 words for the window save area */
 86.5069 -   argp = stack + 16*sizeof(int);
 86.5070 - 
 86.5071 -@@ -66,18 +68,12 @@
 86.5072 -   ((int*)argp)[5] = 0;
 86.5073 - #endif
 86.5074 - 
 86.5075 --  avn = ecif->cif->nargs;
 86.5076 -   p_argv = ecif->avalue;
 86.5077 - 
 86.5078 --  for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
 86.5079 --       i && avn;
 86.5080 --       i--, p_arg++)
 86.5081 -+  for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types; i; i--, p_arg++)
 86.5082 -     {
 86.5083 -       size_t z;
 86.5084 - 
 86.5085 --      if (avn) 
 86.5086 --	{
 86.5087 --	  avn--;
 86.5088 - 	  if ((*p_arg)->type == FFI_TYPE_STRUCT
 86.5089 - #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
 86.5090 - 	      || (*p_arg)->type == FFI_TYPE_LONGDOUBLE
 86.5091 -@@ -122,7 +118,6 @@
 86.5092 - 	    }
 86.5093 - 	  p_argv++;
 86.5094 - 	  argp += z;
 86.5095 --	}
 86.5096 -     }
 86.5097 -   
 86.5098 -   return;
 86.5099 -@@ -420,3 +415,101 @@
 86.5100 -     }
 86.5101 - 
 86.5102 - }
 86.5103 -+
 86.5104 -+ffi_status
 86.5105 -+ffi_prep_closure (ffi_closure* closure,
 86.5106 -+		  ffi_cif* cif,
 86.5107 -+		  void (*fun)(ffi_cif*, void*, void**, void*),
 86.5108 -+		  void *user_data)
 86.5109 -+{
 86.5110 -+  unsigned int *tramp = (unsigned int *) &closure->tramp[0];
 86.5111 -+  unsigned long fn;
 86.5112 -+  unsigned long ctx = (unsigned long) closure;
 86.5113 -+
 86.5114 -+#ifdef SPARC64
 86.5115 -+  /* Trampoline address is equal to the closure address.  We take advantage
 86.5116 -+     of that to reduce the trampoline size by 8 bytes. */
 86.5117 -+  FFI_ASSERT (cif->abi == FFI_V9);
 86.5118 -+  fn = (unsigned long) ffi_closure_v9;
 86.5119 -+  tramp[0] = 0x83414000;	/* rd	%pc, %g1	*/
 86.5120 -+  tramp[1] = 0xca586010;	/* ldx	[%g1+16], %g5	*/
 86.5121 -+  tramp[2] = 0x81c14000;	/* jmp	%g5		*/
 86.5122 -+  tramp[3] = 0x01000000;	/* nop			*/
 86.5123 -+  *((unsigned long *) &tramp[4]) = fn;
 86.5124 -+#else
 86.5125 -+  FFI_ASSERT (cif->abi == FFI_V8);
 86.5126 -+  fn = (unsigned long) ffi_closure_v8;
 86.5127 -+  tramp[0] = 0x03000000 | fn >> 10;	/* sethi %hi(fn), %g1	*/
 86.5128 -+  tramp[1] = 0x05000000 | ctx >> 10;	/* sethi %hi(ctx), %g2	*/
 86.5129 -+  tramp[2] = 0x81c06000 | (fn & 0x3ff);	/* jmp   %g1+%lo(fn)	*/
 86.5130 -+  tramp[3] = 0x8410a000 | (ctx & 0x3ff);/* or    %g2, %lo(ctx)	*/
 86.5131 -+#endif
 86.5132 -+
 86.5133 -+  closure->cif = cif;
 86.5134 -+  closure->fun = fun;
 86.5135 -+  closure->user_data = user_data;
 86.5136 -+
 86.5137 -+  /* Flush the Icache.  FIXME: alignment isn't certain, assume 8 bytes */
 86.5138 -+#ifdef SPARC64
 86.5139 -+  asm volatile ("flush	%0" : : "r" (closure) : "memory");
 86.5140 -+  asm volatile ("flush	%0" : : "r" (((char *) closure) + 8) : "memory");
 86.5141 -+#else
 86.5142 -+  asm volatile ("iflush	%0" : : "r" (closure) : "memory");
 86.5143 -+  asm volatile ("iflush	%0" : : "r" (((char *) closure) + 8) : "memory");
 86.5144 -+#endif
 86.5145 -+
 86.5146 -+  return FFI_OK;
 86.5147 -+}
 86.5148 -+
 86.5149 -+int
 86.5150 -+ffi_closure_sparc_inner(ffi_closure *closure,
 86.5151 -+  void *rvalue, unsigned long *gpr, double *fpr)
 86.5152 -+{
 86.5153 -+  ffi_cif *cif;
 86.5154 -+  void **avalue;
 86.5155 -+  ffi_type **arg_types;
 86.5156 -+  int i, avn, argn;
 86.5157 -+
 86.5158 -+  cif = closure->cif;
 86.5159 -+  avalue = alloca(cif->nargs * sizeof(void *));
 86.5160 -+
 86.5161 -+  argn = 0;
 86.5162 -+
 86.5163 -+  /* Copy the caller's structure return address to that the closure
 86.5164 -+     returns the data directly to the caller.  */
 86.5165 -+  if (cif->flags == FFI_TYPE_STRUCT)
 86.5166 -+    {
 86.5167 -+      rvalue = (void *) gpr[0];
 86.5168 -+      argn = 1;
 86.5169 -+    }
 86.5170 -+
 86.5171 -+  i = 0;
 86.5172 -+  avn = cif->nargs;
 86.5173 -+  arg_types = cif->arg_types;
 86.5174 -+  
 86.5175 -+  /* Grab the addresses of the arguments from the stack frame.  */
 86.5176 -+  while (i < avn)
 86.5177 -+    {
 86.5178 -+      /* Assume big-endian.  FIXME */
 86.5179 -+      argn += ALIGN(arg_types[i]->size, SIZEOF_ARG) / SIZEOF_ARG;
 86.5180 -+
 86.5181 -+#ifdef SPARC64
 86.5182 -+      if (i < 6 && (arg_types[i]->type == FFI_TYPE_FLOAT
 86.5183 -+		 || arg_types[i]->type == FFI_TYPE_DOUBLE
 86.5184 -+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE
 86.5185 -+		 || arg_types[i]->type == FFI_TYPE_LONGDOUBLE
 86.5186 -+#endif
 86.5187 -+		))
 86.5188 -+        avalue[i] = ((char *) &fpr[argn]) - arg_types[i]->size;
 86.5189 -+      else
 86.5190 -+#endif
 86.5191 -+        avalue[i] = ((char *) &gpr[argn]) - arg_types[i]->size;
 86.5192 -+      i++;
 86.5193 -+    }
 86.5194 -+
 86.5195 -+  /* Invoke the closure.  */
 86.5196 -+  (closure->fun) (cif, rvalue, avalue, closure->user_data);
 86.5197 -+
 86.5198 -+  /* Tell ffi_closure_sparc how to perform return type promotions.  */
 86.5199 -+  return cif->rtype->type;
 86.5200 -+}
 86.5201 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/sparc/v8.S gcc/libffi/src/sparc/v8.S
 86.5202 ---- gcc-3.2.2.orig/libffi/src/sparc/v8.S	Mon Apr 29 05:12:04 2002
 86.5203 -+++ gcc/libffi/src/sparc/v8.S	Sat Jan  4 08:08:56 2003
 86.5204 -@@ -1,5 +1,5 @@
 86.5205 - /* -----------------------------------------------------------------------
 86.5206 --   v8.S - Copyright (c) 1996, 1997 Cygnus Solutions
 86.5207 -+   v8.S - Copyright (c) 1996, 1997, 2003 Cygnus Solutions
 86.5208 -    
 86.5209 -    Sparc Foreign Function Interface 
 86.5210 - 
 86.5211 -@@ -94,6 +94,72 @@
 86.5212 - .ffi_call_V8_end:
 86.5213 - 	.size	ffi_call_V8,.ffi_call_V8_end-ffi_call_V8
 86.5214 - 
 86.5215 -+
 86.5216 -+#define	STACKFRAME	104	/* 16*4 register window +
 86.5217 -+				   1*4 struct return +	
 86.5218 -+				   6*4 args backing store +
 86.5219 -+				   3*4 locals */
 86.5220 -+
 86.5221 -+/* ffi_closure_v8(...)
 86.5222 -+
 86.5223 -+   Receives the closure argument in %g2.   */
 86.5224 -+
 86.5225 -+	.text
 86.5226 -+	.align 8
 86.5227 -+	.globl ffi_closure_v8
 86.5228 -+
 86.5229 -+ffi_closure_v8:
 86.5230 -+	.register	%g2, #scratch
 86.5231 -+.LLFB2:
 86.5232 -+	save	%sp, -STACKFRAME, %sp
 86.5233 -+.LLCFI1:
 86.5234 -+
 86.5235 -+	! Store all of the potential argument registers in va_list format.
 86.5236 -+	st	%i0, [%fp+68+0]
 86.5237 -+	st	%i1, [%fp+68+4]
 86.5238 -+	st	%i2, [%fp+68+8]
 86.5239 -+	st	%i3, [%fp+68+12]
 86.5240 -+	st	%i4, [%fp+68+16]
 86.5241 -+	st	%i5, [%fp+68+20]
 86.5242 -+
 86.5243 -+	! Call ffi_closure_sparc_inner to do the bulk of the work.
 86.5244 -+	mov	%g2, %o0
 86.5245 -+	add	%fp, -8, %o1
 86.5246 -+	add	%fp,  68, %o2
 86.5247 -+	call	ffi_closure_sparc_inner
 86.5248 -+	 mov	0, %o3
 86.5249 -+
 86.5250 -+	! Load up the return value in the proper type.
 86.5251 -+	cmp	%o0, FFI_TYPE_VOID
 86.5252 -+	be	done1
 86.5253 -+
 86.5254 -+	cmp	%o0, FFI_TYPE_FLOAT
 86.5255 -+	be,a	done1
 86.5256 -+	 ld	[%fp-8], %f0
 86.5257 -+
 86.5258 -+	cmp	%o0, FFI_TYPE_DOUBLE
 86.5259 -+	be,a	done1
 86.5260 -+	 ldd	[%fp-8], %f0
 86.5261 -+
 86.5262 -+	cmp	%o0, FFI_TYPE_SINT64
 86.5263 -+	be,a	integer
 86.5264 -+	 ld	[%fp-4], %i1
 86.5265 -+
 86.5266 -+	cmp	%o0, FFI_TYPE_UINT64
 86.5267 -+	be,a	integer
 86.5268 -+	 ld	[%fp-4], %i1
 86.5269 -+
 86.5270 -+integer:
 86.5271 -+	ld	[%fp-8], %i0
 86.5272 -+
 86.5273 -+done1:
 86.5274 -+	ret
 86.5275 -+	 restore
 86.5276 -+.LLFE2:
 86.5277 -+
 86.5278 -+.ffi_closure_v8_end:
 86.5279 -+	.size	ffi_closure_v8,.ffi_closure_v8_end-ffi_closure_v8
 86.5280 -+
 86.5281 - #ifdef SPARC64
 86.5282 - #define WS 8
 86.5283 - #define nword	xword
 86.5284 -@@ -148,3 +214,26 @@
 86.5285 - 	.byte	0x1f	! uleb128 0x1f
 86.5286 - 	.align	WS
 86.5287 - .LLEFDE1:
 86.5288 -+.LLSFDE2:
 86.5289 -+	.uaword	.LLEFDE2-.LLASFDE2	! FDE Length
 86.5290 -+.LLASFDE2:
 86.5291 -+	.uaword	.LLASFDE2-.LLframe1	! FDE CIE offset
 86.5292 -+#ifdef HAVE_AS_SPARC_UA_PCREL
 86.5293 -+	.uaword	%r_disp32(.LLFB2)
 86.5294 -+	.uaword	.LLFE2-.LLFB2	! FDE address range
 86.5295 -+#else
 86.5296 -+	.align	WS
 86.5297 -+	.nword	.LLFB2
 86.5298 -+	.uanword .LLFE2-.LLFB2	! FDE address range
 86.5299 -+#endif
 86.5300 -+	.byte	0x0	! uleb128 0x0; Augmentation size
 86.5301 -+	.byte	0x4	! DW_CFA_advance_loc4
 86.5302 -+	.uaword	.LLCFI1-.LLFB2
 86.5303 -+	.byte	0xd	! DW_CFA_def_cfa_register
 86.5304 -+	.byte	0x1e	! uleb128 0x1e
 86.5305 -+	.byte	0x2d	! DW_CFA_GNU_window_save
 86.5306 -+	.byte	0x9	! DW_CFA_register
 86.5307 -+	.byte	0xf	! uleb128 0xf
 86.5308 -+	.byte	0x1f	! uleb128 0x1f
 86.5309 -+	.align	WS
 86.5310 -+.LLEFDE2:
 86.5311 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/sparc/v9.S gcc/libffi/src/sparc/v9.S
 86.5312 ---- gcc-3.2.2.orig/libffi/src/sparc/v9.S	Mon Apr 29 05:12:04 2002
 86.5313 -+++ gcc/libffi/src/sparc/v9.S	Sat Jan  4 08:08:56 2003
 86.5314 -@@ -1,5 +1,5 @@
 86.5315 - /* -----------------------------------------------------------------------
 86.5316 --   v9.S - Copyright (c) 2000 Cygnus Solutions
 86.5317 -+   v9.S - Copyright (c) 2000, 2003 Cygnus Solutions
 86.5318 -    
 86.5319 -    Sparc 64bit Foreign Function Interface 
 86.5320 - 
 86.5321 -@@ -99,7 +99,7 @@
 86.5322 - 	cmp	%i3, FFI_TYPE_STRUCT
 86.5323 - 	be,pn	%icc, dostruct
 86.5324 - 
 86.5325 --	 cmp	%i3, FFI_TYPE_LONGDOUBLE
 86.5326 -+	cmp	%i3, FFI_TYPE_LONGDOUBLE
 86.5327 - 	bne,pt	%icc, done
 86.5328 - 	 nop
 86.5329 - 	std	%f0, [%i4+0]
 86.5330 -@@ -125,6 +125,88 @@
 86.5331 - .ffi_call_V9_end:
 86.5332 - 	.size	ffi_call_V9,.ffi_call_V9_end-ffi_call_V9
 86.5333 - 
 86.5334 -+
 86.5335 -+#define	STACKFRAME	 240	/* 16*8 register window +
 86.5336 -+				   6*8 args backing store +
 86.5337 -+				   8*8 locals */
 86.5338 -+#define	FP		%fp+STACK_BIAS
 86.5339 -+
 86.5340 -+/* ffi_closure_v9(...)
 86.5341 -+
 86.5342 -+   Receives the closure argument in %g1.   */
 86.5343 -+
 86.5344 -+	.text
 86.5345 -+	.align 8
 86.5346 -+	.globl ffi_closure_v9
 86.5347 -+
 86.5348 -+ffi_closure_v9:
 86.5349 -+.LLFB2:
 86.5350 -+	save	%sp, -STACKFRAME, %sp
 86.5351 -+.LLCFI1:
 86.5352 -+
 86.5353 -+	! Store all of the potential argument registers in va_list format.
 86.5354 -+	stx	%i0, [FP+128+0]
 86.5355 -+	stx	%i1, [FP+128+8]
 86.5356 -+	stx	%i2, [FP+128+16]
 86.5357 -+	stx	%i3, [FP+128+24]
 86.5358 -+	stx	%i4, [FP+128+32]
 86.5359 -+	stx	%i5, [FP+128+40]
 86.5360 -+
 86.5361 -+	! Store possible floating point argument registers too.
 86.5362 -+	std	%f0, [FP-48]
 86.5363 -+	std	%f2, [FP-40]
 86.5364 -+	std	%f4, [FP-32]
 86.5365 -+	std	%f6, [FP-24]
 86.5366 -+	std	%f8, [FP-16]
 86.5367 -+	std	%f10, [FP-8]
 86.5368 -+
 86.5369 -+	! Call ffi_closure_sparc_inner to do the bulk of the work.
 86.5370 -+	mov	%g1, %o0
 86.5371 -+	add	%fp, STACK_BIAS-64, %o1
 86.5372 -+	add	%fp, STACK_BIAS+128, %o2
 86.5373 -+	call	ffi_closure_sparc_inner
 86.5374 -+	 add	%fp, STACK_BIAS-48, %o3
 86.5375 -+
 86.5376 -+	! Load up the return value in the proper type.
 86.5377 -+	cmp	%o0, FFI_TYPE_VOID
 86.5378 -+	be,pn	%icc, done1
 86.5379 -+
 86.5380 -+	cmp	%o0, FFI_TYPE_FLOAT
 86.5381 -+	be,a,pn	%icc, done1
 86.5382 -+	 ld	[FP-64], %f0
 86.5383 -+
 86.5384 -+	cmp	%o0, FFI_TYPE_DOUBLE
 86.5385 -+	be,a,pn	%icc, done1
 86.5386 -+	 ldd	[FP-64], %f0
 86.5387 -+
 86.5388 -+	cmp	%o0, FFI_TYPE_LONGDOUBLE
 86.5389 -+	be,a,pn	%icc, longdouble1
 86.5390 -+	 ldd	[FP-64], %f0
 86.5391 -+
 86.5392 -+	cmp	%o0, FFI_TYPE_STRUCT
 86.5393 -+	be,pn	%icc, struct1
 86.5394 -+
 86.5395 -+	! FFI_TYPE_UINT64 | FFI_TYPE_SINT64 | FFI_TYPE_POINTER
 86.5396 -+	ldx	[FP-64], %i0
 86.5397 -+
 86.5398 -+done1:
 86.5399 -+	ret
 86.5400 -+	 restore
 86.5401 -+
 86.5402 -+struct1:
 86.5403 -+	ldx [FP-56], %i2
 86.5404 -+	ret
 86.5405 -+	 restore
 86.5406 -+
 86.5407 -+longdouble1:
 86.5408 -+	ldd	[FP-56], %f2
 86.5409 -+	ret
 86.5410 -+	 restore
 86.5411 -+.LLFE2:
 86.5412 -+
 86.5413 -+.ffi_closure_v9_end:
 86.5414 -+	.size	ffi_closure_v9,.ffi_closure_v9_end-ffi_closure_v9
 86.5415 -+
 86.5416 - 	.section	".eh_frame",#alloc,#write
 86.5417 - .LLframe1:
 86.5418 - 	.uaword	.LLECIE1-.LLSCIE1	! Length of Common Information Entry
 86.5419 -@@ -169,5 +251,27 @@
 86.5420 - 	.byte	0x1f	! uleb128 0x1f
 86.5421 - 	.align 8
 86.5422 - .LLEFDE1:
 86.5423 --
 86.5424 -+.LLSFDE2:
 86.5425 -+	.uaword	.LLEFDE2-.LLASFDE2	! FDE Length
 86.5426 -+.LLASFDE2:
 86.5427 -+	.uaword	.LLASFDE2-.LLframe1	! FDE CIE offset
 86.5428 -+#ifdef HAVE_AS_SPARC_UA_PCREL
 86.5429 -+	.uaword	%r_disp32(.LLFB2)
 86.5430 -+	.uaword	.LLFE2-.LLFB2		! FDE address range
 86.5431 -+#else
 86.5432 -+	.align 8
 86.5433 -+	.xword	.LLFB2
 86.5434 -+	.uaxword	.LLFE2-.LLFB2	! FDE address range
 86.5435 -+#endif
 86.5436 -+	.byte	0x0	! uleb128 0x0; Augmentation size
 86.5437 -+	.byte	0x4	! DW_CFA_advance_loc4
 86.5438 -+	.uaword	.LLCFI1-.LLFB2
 86.5439 -+	.byte	0xd	! DW_CFA_def_cfa_register
 86.5440 -+	.byte	0x1e	! uleb128 0x1e
 86.5441 -+	.byte	0x2d	! DW_CFA_GNU_window_save
 86.5442 -+	.byte	0x9	! DW_CFA_register
 86.5443 -+	.byte	0xf	! uleb128 0xf
 86.5444 -+	.byte	0x1f	! uleb128 0x1f
 86.5445 -+	.align 8
 86.5446 -+.LLEFDE2:
 86.5447 - #endif
 86.5448 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/types.c gcc/libffi/src/types.c
 86.5449 ---- gcc-3.2.2.orig/libffi/src/types.c	Tue Mar 27 11:39:16 2001
 86.5450 -+++ gcc/libffi/src/types.c	Wed Nov 27 07:24:05 2002
 86.5451 -@@ -42,7 +42,8 @@
 86.5452 - FFI_INTEGRAL_TYPEDEF(sint32, 4, 4, FFI_TYPE_SINT32);
 86.5453 - FFI_INTEGRAL_TYPEDEF(float, 4, 4, FFI_TYPE_FLOAT);
 86.5454 - 
 86.5455 --#if defined ALPHA || defined SPARC64
 86.5456 -+#if defined ALPHA || defined SPARC64 || defined X86_64 || defined S390X \
 86.5457 -+    || defined IA64
 86.5458 - 
 86.5459 - FFI_INTEGRAL_TYPEDEF(pointer, 8, 8, FFI_TYPE_POINTER);
 86.5460 - 
 86.5461 -@@ -52,22 +53,12 @@
 86.5462 - 
 86.5463 - #endif
 86.5464 - 
 86.5465 --#ifdef X86
 86.5466 -+#if defined X86 || defined X86_WIN32 || defined ARM || defined M68K
 86.5467 - 
 86.5468 - FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
 86.5469 - FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
 86.5470 - 
 86.5471 --#elif defined X86_WIN32
 86.5472 --
 86.5473 --FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
 86.5474 --FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
 86.5475 --
 86.5476 --#elif defined ARM
 86.5477 --
 86.5478 --FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
 86.5479 --FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
 86.5480 --
 86.5481 --#elif defined M68K
 86.5482 -+#elif defined SH
 86.5483 - 
 86.5484 - FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
 86.5485 - FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
 86.5486 -@@ -80,12 +71,7 @@
 86.5487 - #endif
 86.5488 - 
 86.5489 - 
 86.5490 --#ifdef X86
 86.5491 --
 86.5492 --FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
 86.5493 --FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
 86.5494 --
 86.5495 --#elif defined X86_WIN32
 86.5496 -+#if defined X86 || defined X86_WIN32 || defined M68K
 86.5497 - 
 86.5498 - FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
 86.5499 - FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
 86.5500 -@@ -95,25 +81,25 @@
 86.5501 - FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
 86.5502 - FFI_INTEGRAL_TYPEDEF(longdouble, 8, 4, FFI_TYPE_LONGDOUBLE);
 86.5503 - 
 86.5504 --#elif defined M68K
 86.5505 -+#elif defined SH
 86.5506 - 
 86.5507 - FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
 86.5508 --FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
 86.5509 -+FFI_INTEGRAL_TYPEDEF(longdouble, 8, 4, FFI_TYPE_LONGDOUBLE);
 86.5510 - 
 86.5511 - #elif defined SPARC
 86.5512 - 
 86.5513 - FFI_INTEGRAL_TYPEDEF(double, 8, 8, FFI_TYPE_DOUBLE);
 86.5514 --
 86.5515 - #ifdef SPARC64
 86.5516 --
 86.5517 - FFI_INTEGRAL_TYPEDEF(longdouble, 16, 16, FFI_TYPE_LONGDOUBLE);
 86.5518 --
 86.5519 - #else
 86.5520 --
 86.5521 - FFI_INTEGRAL_TYPEDEF(longdouble, 16, 8, FFI_TYPE_LONGDOUBLE);
 86.5522 --
 86.5523 - #endif
 86.5524 - 
 86.5525 -+#elif defined X86_64
 86.5526 -+
 86.5527 -+FFI_INTEGRAL_TYPEDEF(double, 8, 8, FFI_TYPE_DOUBLE);
 86.5528 -+FFI_INTEGRAL_TYPEDEF(longdouble, 16, 16, FFI_TYPE_LONGDOUBLE);
 86.5529 -+
 86.5530 - #else
 86.5531 - 
 86.5532 - FFI_INTEGRAL_TYPEDEF(double, 8, 8, FFI_TYPE_DOUBLE);
 86.5533 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/x86/ffi.c gcc/libffi/src/x86/ffi.c
 86.5534 ---- gcc-3.2.2.orig/libffi/src/x86/ffi.c	Tue May 28 18:22:08 2002
 86.5535 -+++ gcc/libffi/src/x86/ffi.c	Fri Dec  6 10:16:45 2002
 86.5536 -@@ -1,5 +1,8 @@
 86.5537 - /* -----------------------------------------------------------------------
 86.5538 --   ffi.c - Copyright (c) 1996, 1998, 1999  Cygnus Solutions
 86.5539 -+   ffi.c - Copyright (c) 1996, 1998, 1999, 2001  Red Hat, Inc.
 86.5540 -+           Copyright (c) 2002  Ranjit Mathew
 86.5541 -+           Copyright (c) 2002  Bo Thorsen
 86.5542 -+           Copyright (c) 2002  Roger Sayle
 86.5543 -    
 86.5544 -    x86 Foreign Function Interface 
 86.5545 - 
 86.5546 -@@ -23,6 +26,8 @@
 86.5547 -    OTHER DEALINGS IN THE SOFTWARE.
 86.5548 -    ----------------------------------------------------------------------- */
 86.5549 - 
 86.5550 -+#ifndef __x86_64__
 86.5551 -+
 86.5552 - #include <ffi.h>
 86.5553 - #include <ffi_common.h>
 86.5554 - 
 86.5555 -@@ -36,12 +41,10 @@
 86.5556 - /*@=exportheader@*/
 86.5557 - {
 86.5558 -   register unsigned int i;
 86.5559 --  register int tmp;
 86.5560 -   register void **p_argv;
 86.5561 -   register char *argp;
 86.5562 -   register ffi_type **p_arg;
 86.5563 - 
 86.5564 --  tmp = 0;
 86.5565 -   argp = stack;
 86.5566 - 
 86.5567 -   if (ecif->cif->rtype->type == FFI_TYPE_STRUCT)
 86.5568 -@@ -148,6 +151,18 @@
 86.5569 - /*@=declundef@*/
 86.5570 - /*@=exportheader@*/
 86.5571 - 
 86.5572 -+#ifdef X86_WIN32
 86.5573 -+/*@-declundef@*/
 86.5574 -+/*@-exportheader@*/
 86.5575 -+extern void ffi_call_STDCALL(void (*)(char *, extended_cif *),
 86.5576 -+			  /*@out@*/ extended_cif *,
 86.5577 -+			  unsigned, unsigned,
 86.5578 -+			  /*@out@*/ unsigned *,
 86.5579 -+			  void (*fn)());
 86.5580 -+/*@=declundef@*/
 86.5581 -+/*@=exportheader@*/
 86.5582 -+#endif /* X86_WIN32 */
 86.5583 -+
 86.5584 - void ffi_call(/*@dependent@*/ ffi_cif *cif, 
 86.5585 - 	      void (*fn)(), 
 86.5586 - 	      /*@out@*/ void *rvalue, 
 86.5587 -@@ -180,6 +195,14 @@
 86.5588 - 		    cif->flags, ecif.rvalue, fn);
 86.5589 -       /*@=usedef@*/
 86.5590 -       break;
 86.5591 -+#ifdef X86_WIN32
 86.5592 -+    case FFI_STDCALL:
 86.5593 -+      /*@-usedef@*/
 86.5594 -+      ffi_call_STDCALL(ffi_prep_args, &ecif, cif->bytes,
 86.5595 -+		    cif->flags, ecif.rvalue, fn);
 86.5596 -+      /*@=usedef@*/
 86.5597 -+      break;
 86.5598 -+#endif /* X86_WIN32 */
 86.5599 -     default:
 86.5600 -       FFI_ASSERT(0);
 86.5601 -       break;
 86.5602 -@@ -266,12 +289,10 @@
 86.5603 - /*@=exportheader@*/
 86.5604 - {
 86.5605 -   register unsigned int i;
 86.5606 --  register int tmp;
 86.5607 -   register void **p_argv;
 86.5608 -   register char *argp;
 86.5609 -   register ffi_type **p_arg;
 86.5610 - 
 86.5611 --  tmp = 0;
 86.5612 -   argp = stack;
 86.5613 - 
 86.5614 -   if ( cif->rtype->type == FFI_TYPE_STRUCT ) {
 86.5615 -@@ -281,13 +302,14 @@
 86.5616 - 
 86.5617 -   p_argv = avalue;
 86.5618 - 
 86.5619 --  for (i = cif->nargs, p_arg = cif->arg_types; i != 0; i--, p_arg++)
 86.5620 -+  for (i = cif->nargs, p_arg = cif->arg_types; (i != 0); i--, p_arg++)
 86.5621 -     {
 86.5622 -       size_t z;
 86.5623 - 
 86.5624 -       /* Align if necessary */
 86.5625 --      if (((*p_arg)->alignment - 1) & (unsigned) argp)
 86.5626 -+      if (((*p_arg)->alignment - 1) & (unsigned) argp) {
 86.5627 - 	argp = (char *) ALIGN(argp, (*p_arg)->alignment);
 86.5628 -+      }
 86.5629 - 
 86.5630 -       z = (*p_arg)->size;
 86.5631 - 
 86.5632 -@@ -298,7 +320,7 @@
 86.5633 -       p_argv++;
 86.5634 -       argp += z;
 86.5635 -     }
 86.5636 --
 86.5637 -+  
 86.5638 -   return;
 86.5639 - }
 86.5640 - 
 86.5641 -@@ -449,6 +471,15 @@
 86.5642 - 	      /*@out@*/ unsigned *, 
 86.5643 - 	      void (*fn)());
 86.5644 - 
 86.5645 -+#ifdef X86_WIN32
 86.5646 -+extern void
 86.5647 -+ffi_call_STDCALL(void (*)(char *, extended_cif *),
 86.5648 -+	      /*@out@*/ extended_cif *,
 86.5649 -+	      unsigned, unsigned,
 86.5650 -+	      /*@out@*/ unsigned *,
 86.5651 -+	      void (*fn)());
 86.5652 -+#endif /* X86_WIN32 */
 86.5653 -+
 86.5654 - void
 86.5655 - ffi_raw_call(/*@dependent@*/ ffi_cif *cif, 
 86.5656 - 	     void (*fn)(), 
 86.5657 -@@ -483,6 +514,14 @@
 86.5658 - 		    cif->flags, ecif.rvalue, fn);
 86.5659 -       /*@=usedef@*/
 86.5660 -       break;
 86.5661 -+#ifdef X86_WIN32
 86.5662 -+    case FFI_STDCALL:
 86.5663 -+      /*@-usedef@*/
 86.5664 -+      ffi_call_STDCALL(ffi_prep_args_raw, &ecif, cif->bytes,
 86.5665 -+		    cif->flags, ecif.rvalue, fn);
 86.5666 -+      /*@=usedef@*/
 86.5667 -+      break;
 86.5668 -+#endif /* X86_WIN32 */
 86.5669 -     default:
 86.5670 -       FFI_ASSERT(0);
 86.5671 -       break;
 86.5672 -@@ -490,3 +529,5 @@
 86.5673 - }
 86.5674 - 
 86.5675 - #endif
 86.5676 -+
 86.5677 -+#endif /* __x86_64__  */
 86.5678 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/x86/ffi64.c gcc/libffi/src/x86/ffi64.c
 86.5679 ---- gcc-3.2.2.orig/libffi/src/x86/ffi64.c	Thu Jan  1 09:00:00 1970
 86.5680 -+++ gcc/libffi/src/x86/ffi64.c	Wed Jan 29 00:54:28 2003
 86.5681 -@@ -0,0 +1,706 @@
 86.5682 -+/* -----------------------------------------------------------------------
 86.5683 -+   ffi.c - Copyright (c) 2002  Bo Thorsen <bo@suse.de>
 86.5684 -+   
 86.5685 -+   x86-64 Foreign Function Interface 
 86.5686 -+
 86.5687 -+   Permission is hereby granted, free of charge, to any person obtaining
 86.5688 -+   a copy of this software and associated documentation files (the
 86.5689 -+   ``Software''), to deal in the Software without restriction, including
 86.5690 -+   without limitation the rights to use, copy, modify, merge, publish,
 86.5691 -+   distribute, sublicense, and/or sell copies of the Software, and to
 86.5692 -+   permit persons to whom the Software is furnished to do so, subject to
 86.5693 -+   the following conditions:
 86.5694 -+
 86.5695 -+   The above copyright notice and this permission notice shall be included
 86.5696 -+   in all copies or substantial portions of the Software.
 86.5697 -+
 86.5698 -+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 86.5699 -+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 86.5700 -+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 86.5701 -+   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 86.5702 -+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 86.5703 -+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 86.5704 -+   OTHER DEALINGS IN THE SOFTWARE.
 86.5705 -+   ----------------------------------------------------------------------- */
 86.5706 -+
 86.5707 -+#include <ffi.h>
 86.5708 -+#include <ffi_common.h>
 86.5709 -+
 86.5710 -+#include <stdlib.h>
 86.5711 -+#include <stdarg.h>
 86.5712 -+
 86.5713 -+/* ffi_prep_args is called by the assembly routine once stack space
 86.5714 -+   has been allocated for the function's arguments */
 86.5715 -+
 86.5716 -+#ifdef __x86_64__
 86.5717 -+
 86.5718 -+#define MAX_GPR_REGS 6
 86.5719 -+#define MAX_SSE_REGS 8
 86.5720 -+typedef struct
 86.5721 -+{
 86.5722 -+  /* Registers for argument passing.  */
 86.5723 -+  long gpr[MAX_GPR_REGS];
 86.5724 -+  __int128_t sse[MAX_SSE_REGS];
 86.5725 -+
 86.5726 -+  /* Stack space for arguments.  */
 86.5727 -+  char argspace[0];
 86.5728 -+} stackLayout;
 86.5729 -+
 86.5730 -+/* All reference to register classes here is identical to the code in
 86.5731 -+   gcc/config/i386/i386.c. Do *not* change one without the other.  */
 86.5732 -+
 86.5733 -+/* Register class used for passing given 64bit part of the argument.
 86.5734 -+   These represent classes as documented by the PS ABI, with the exception
 86.5735 -+   of SSESF, SSEDF classes, that are basically SSE class, just gcc will
 86.5736 -+   use SF or DFmode move instead of DImode to avoid reformating penalties.
 86.5737 -+
 86.5738 -+   Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
 86.5739 -+   whenever possible (upper half does contain padding).
 86.5740 -+ */
 86.5741 -+enum x86_64_reg_class
 86.5742 -+  {
 86.5743 -+    X86_64_NO_CLASS,
 86.5744 -+    X86_64_INTEGER_CLASS,
 86.5745 -+    X86_64_INTEGERSI_CLASS,
 86.5746 -+    X86_64_SSE_CLASS,
 86.5747 -+    X86_64_SSESF_CLASS,
 86.5748 -+    X86_64_SSEDF_CLASS,
 86.5749 -+    X86_64_SSEUP_CLASS,
 86.5750 -+    X86_64_X87_CLASS,
 86.5751 -+    X86_64_X87UP_CLASS,
 86.5752 -+    X86_64_MEMORY_CLASS
 86.5753 -+  };
 86.5754 -+
 86.5755 -+#define MAX_CLASSES 4
 86.5756 -+
 86.5757 -+/* x86-64 register passing implementation.  See x86-64 ABI for details.  Goal
 86.5758 -+   of this code is to classify each 8bytes of incoming argument by the register
 86.5759 -+   class and assign registers accordingly.  */
 86.5760 -+
 86.5761 -+/* Return the union class of CLASS1 and CLASS2.
 86.5762 -+   See the x86-64 PS ABI for details.  */
 86.5763 -+
 86.5764 -+static enum x86_64_reg_class
 86.5765 -+merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
 86.5766 -+{
 86.5767 -+  /* Rule #1: If both classes are equal, this is the resulting class.  */
 86.5768 -+  if (class1 == class2)
 86.5769 -+    return class1;
 86.5770 -+
 86.5771 -+  /* Rule #2: If one of the classes is NO_CLASS, the resulting class is
 86.5772 -+     the other class.  */
 86.5773 -+  if (class1 == X86_64_NO_CLASS)
 86.5774 -+    return class2;
 86.5775 -+  if (class2 == X86_64_NO_CLASS)
 86.5776 -+    return class1;
 86.5777 -+
 86.5778 -+  /* Rule #3: If one of the classes is MEMORY, the result is MEMORY.  */
 86.5779 -+  if (class1 == X86_64_MEMORY_CLASS || class2 == X86_64_MEMORY_CLASS)
 86.5780 -+    return X86_64_MEMORY_CLASS;
 86.5781 -+
 86.5782 -+  /* Rule #4: If one of the classes is INTEGER, the result is INTEGER.  */
 86.5783 -+  if ((class1 == X86_64_INTEGERSI_CLASS && class2 == X86_64_SSESF_CLASS)
 86.5784 -+      || (class2 == X86_64_INTEGERSI_CLASS && class1 == X86_64_SSESF_CLASS))
 86.5785 -+    return X86_64_INTEGERSI_CLASS;
 86.5786 -+  if (class1 == X86_64_INTEGER_CLASS || class1 == X86_64_INTEGERSI_CLASS
 86.5787 -+      || class2 == X86_64_INTEGER_CLASS || class2 == X86_64_INTEGERSI_CLASS)
 86.5788 -+    return X86_64_INTEGER_CLASS;
 86.5789 -+
 86.5790 -+  /* Rule #5: If one of the classes is X87 or X87UP class, MEMORY is used.  */
 86.5791 -+  if (class1 == X86_64_X87_CLASS || class1 == X86_64_X87UP_CLASS
 86.5792 -+      || class2 == X86_64_X87_CLASS || class2 == X86_64_X87UP_CLASS)
 86.5793 -+    return X86_64_MEMORY_CLASS;
 86.5794 -+
 86.5795 -+  /* Rule #6: Otherwise class SSE is used.  */
 86.5796 -+  return X86_64_SSE_CLASS;
 86.5797 -+}
 86.5798 -+
 86.5799 -+/* Classify the argument of type TYPE and mode MODE.
 86.5800 -+   CLASSES will be filled by the register class used to pass each word
 86.5801 -+   of the operand.  The number of words is returned.  In case the parameter
 86.5802 -+   should be passed in memory, 0 is returned. As a special case for zero
 86.5803 -+   sized containers, classes[0] will be NO_CLASS and 1 is returned.
 86.5804 -+
 86.5805 -+   See the x86-64 PS ABI for details.
 86.5806 -+*/
 86.5807 -+static int
 86.5808 -+classify_argument (ffi_type *type, enum x86_64_reg_class classes[],
 86.5809 -+		   int *byte_offset)
 86.5810 -+{
 86.5811 -+  /* First, align to the right place.  */
 86.5812 -+  *byte_offset = ALIGN(*byte_offset, type->alignment);
 86.5813 -+
 86.5814 -+  switch (type->type)
 86.5815 -+    {
 86.5816 -+    case FFI_TYPE_UINT8:
 86.5817 -+    case FFI_TYPE_SINT8:
 86.5818 -+    case FFI_TYPE_UINT16:
 86.5819 -+    case FFI_TYPE_SINT16:
 86.5820 -+    case FFI_TYPE_UINT32:
 86.5821 -+    case FFI_TYPE_SINT32:
 86.5822 -+    case FFI_TYPE_UINT64:
 86.5823 -+    case FFI_TYPE_SINT64:
 86.5824 -+    case FFI_TYPE_POINTER:
 86.5825 -+      if (((*byte_offset) % 8 + type->size) <= 4)
 86.5826 -+	classes[0] = X86_64_INTEGERSI_CLASS;
 86.5827 -+      else
 86.5828 -+	classes[0] = X86_64_INTEGER_CLASS;
 86.5829 -+      return 1;
 86.5830 -+    case FFI_TYPE_FLOAT:
 86.5831 -+      if (((*byte_offset) % 8) == 0)
 86.5832 -+	classes[0] = X86_64_SSESF_CLASS;
 86.5833 -+      else
 86.5834 -+	classes[0] = X86_64_SSE_CLASS;
 86.5835 -+      return 1;
 86.5836 -+    case FFI_TYPE_DOUBLE:
 86.5837 -+      classes[0] = X86_64_SSEDF_CLASS;
 86.5838 -+      return 1;
 86.5839 -+    case FFI_TYPE_LONGDOUBLE:
 86.5840 -+      classes[0] = X86_64_X87_CLASS;
 86.5841 -+      classes[1] = X86_64_X87UP_CLASS;
 86.5842 -+      return 2;
 86.5843 -+    case FFI_TYPE_STRUCT:
 86.5844 -+      {
 86.5845 -+	const int UNITS_PER_WORD = 8;
 86.5846 -+	int words = (type->size + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
 86.5847 -+	ffi_type **ptr; 
 86.5848 -+	int i;
 86.5849 -+	enum x86_64_reg_class subclasses[MAX_CLASSES];
 86.5850 -+
 86.5851 -+	/* If the struct is larger than 16 bytes, pass it on the stack.  */
 86.5852 -+	if (type->size > 16)
 86.5853 -+	  return 0;
 86.5854 -+
 86.5855 -+	for (i = 0; i < words; i++)
 86.5856 -+	  classes[i] = X86_64_NO_CLASS;
 86.5857 -+
 86.5858 -+	/* Merge the fields of structure.  */
 86.5859 -+	for (ptr=type->elements; (*ptr)!=NULL; ptr++)
 86.5860 -+	  {
 86.5861 -+	    int num;
 86.5862 -+
 86.5863 -+	    num = classify_argument (*ptr, subclasses, byte_offset);
 86.5864 -+	    if (num == 0)
 86.5865 -+	      return 0;
 86.5866 -+	    for (i = 0; i < num; i++)
 86.5867 -+	      {
 86.5868 -+		int pos = *byte_offset / 8;
 86.5869 -+		classes[i + pos] =
 86.5870 -+		  merge_classes (subclasses[i], classes[i + pos]);
 86.5871 -+	      }
 86.5872 -+
 86.5873 -+	    if ((*ptr)->type != FFI_TYPE_STRUCT)
 86.5874 -+	      *byte_offset += (*ptr)->size;
 86.5875 -+	  }
 86.5876 -+
 86.5877 -+	/* Final merger cleanup.  */
 86.5878 -+	for (i = 0; i < words; i++)
 86.5879 -+	  {
 86.5880 -+	    /* If one class is MEMORY, everything should be passed in
 86.5881 -+	       memory.  */
 86.5882 -+	    if (classes[i] == X86_64_MEMORY_CLASS)
 86.5883 -+	      return 0;
 86.5884 -+
 86.5885 -+	    /* The X86_64_SSEUP_CLASS should be always preceded by
 86.5886 -+	       X86_64_SSE_CLASS.  */
 86.5887 -+	    if (classes[i] == X86_64_SSEUP_CLASS
 86.5888 -+		&& (i == 0 || classes[i - 1] != X86_64_SSE_CLASS))
 86.5889 -+	      classes[i] = X86_64_SSE_CLASS;
 86.5890 -+
 86.5891 -+	    /*  X86_64_X87UP_CLASS should be preceded by X86_64_X87_CLASS.  */
 86.5892 -+	    if (classes[i] == X86_64_X87UP_CLASS
 86.5893 -+		&& (i == 0 || classes[i - 1] != X86_64_X87_CLASS))
 86.5894 -+	      classes[i] = X86_64_SSE_CLASS;
 86.5895 -+	  }
 86.5896 -+	return words;
 86.5897 -+      }
 86.5898 -+
 86.5899 -+    default:
 86.5900 -+      FFI_ASSERT(0);
 86.5901 -+    }
 86.5902 -+  return 0; /* Never reached.  */
 86.5903 -+}
 86.5904 -+
 86.5905 -+/* Examine the argument and return set number of register required in each
 86.5906 -+   class.  Return 0 iff parameter should be passed in memory.  */
 86.5907 -+static int
 86.5908 -+examine_argument (ffi_type *type, int in_return, int *int_nregs,int *sse_nregs)
 86.5909 -+{
 86.5910 -+  enum x86_64_reg_class class[MAX_CLASSES];
 86.5911 -+  int offset = 0;
 86.5912 -+  int n;
 86.5913 -+
 86.5914 -+  n = classify_argument (type, class, &offset);
 86.5915 -+
 86.5916 -+  if (n == 0)
 86.5917 -+    return 0;
 86.5918 -+
 86.5919 -+  *int_nregs = 0;
 86.5920 -+  *sse_nregs = 0;
 86.5921 -+  for (n--; n>=0; n--)
 86.5922 -+    switch (class[n])
 86.5923 -+      {
 86.5924 -+      case X86_64_INTEGER_CLASS:
 86.5925 -+      case X86_64_INTEGERSI_CLASS:
 86.5926 -+	(*int_nregs)++;
 86.5927 -+	break;
 86.5928 -+      case X86_64_SSE_CLASS:
 86.5929 -+      case X86_64_SSESF_CLASS:
 86.5930 -+      case X86_64_SSEDF_CLASS:
 86.5931 -+	(*sse_nregs)++;
 86.5932 -+	break;
 86.5933 -+      case X86_64_NO_CLASS:
 86.5934 -+      case X86_64_SSEUP_CLASS:
 86.5935 -+	break;
 86.5936 -+      case X86_64_X87_CLASS:
 86.5937 -+      case X86_64_X87UP_CLASS:
 86.5938 -+	if (!in_return)
 86.5939 -+	  return 0;
 86.5940 -+	break;
 86.5941 -+      default:
 86.5942 -+	abort ();
 86.5943 -+      }
 86.5944 -+  return 1;
 86.5945 -+}
 86.5946 -+
 86.5947 -+/* Functions to load floats and double to an SSE register placeholder.  */
 86.5948 -+extern void float2sse (float, __int128_t *);
 86.5949 -+extern void double2sse (double, __int128_t *);
 86.5950 -+extern void floatfloat2sse (void *, __int128_t *);
 86.5951 -+
 86.5952 -+/* Functions to put the floats and doubles back.  */
 86.5953 -+extern float sse2float (__int128_t *);
 86.5954 -+extern double sse2double (__int128_t *);
 86.5955 -+extern void sse2floatfloat(__int128_t *, void *);
 86.5956 -+
 86.5957 -+/*@-exportheader@*/
 86.5958 -+void
 86.5959 -+ffi_prep_args (stackLayout *stack, extended_cif *ecif)
 86.5960 -+/*@=exportheader@*/
 86.5961 -+{
 86.5962 -+  int gprcount, ssecount, i, g, s;
 86.5963 -+  void **p_argv;
 86.5964 -+  void *argp = &stack->argspace;
 86.5965 -+  ffi_type **p_arg;
 86.5966 -+
 86.5967 -+  /* First check if the return value should be passed in memory. If so,
 86.5968 -+     pass the pointer as the first argument.  */
 86.5969 -+  gprcount = ssecount = 0;
 86.5970 -+  if (ecif->cif->rtype->type != FFI_TYPE_VOID 
 86.5971 -+      && examine_argument (ecif->cif->rtype, 1, &g, &s) == 0)
 86.5972 -+    (void *)stack->gpr[gprcount++] = ecif->rvalue;
 86.5973 -+
 86.5974 -+  for (i=ecif->cif->nargs, p_arg=ecif->cif->arg_types, p_argv = ecif->avalue;
 86.5975 -+       i!=0; i--, p_arg++, p_argv++)
 86.5976 -+    {
 86.5977 -+      int in_register = 0;
 86.5978 -+
 86.5979 -+      switch ((*p_arg)->type)
 86.5980 -+	{
 86.5981 -+	case FFI_TYPE_SINT8:
 86.5982 -+	case FFI_TYPE_SINT16:
 86.5983 -+	case FFI_TYPE_SINT32:
 86.5984 -+	case FFI_TYPE_SINT64:
 86.5985 -+	case FFI_TYPE_UINT8:
 86.5986 -+	case FFI_TYPE_UINT16:
 86.5987 -+	case FFI_TYPE_UINT32:
 86.5988 -+	case FFI_TYPE_UINT64:
 86.5989 -+	case FFI_TYPE_POINTER:
 86.5990 -+	  if (gprcount < MAX_GPR_REGS)
 86.5991 -+	    {
 86.5992 -+	      stack->gpr[gprcount] = 0;
 86.5993 -+	      stack->gpr[gprcount++] = *(long long *)(*p_argv);
 86.5994 -+	      in_register = 1;
 86.5995 -+	    }
 86.5996 -+	  break;
 86.5997 -+
 86.5998 -+	case FFI_TYPE_FLOAT:
 86.5999 -+	  if (ssecount < MAX_SSE_REGS)
 86.6000 -+	    {
 86.6001 -+	      float2sse (*(float *)(*p_argv), &stack->sse[ssecount++]);
 86.6002 -+	      in_register = 1;
 86.6003 -+	    }
 86.6004 -+	  break;
 86.6005 -+
 86.6006 -+	case FFI_TYPE_DOUBLE:
 86.6007 -+	  if (ssecount < MAX_SSE_REGS)
 86.6008 -+	    {
 86.6009 -+	      double2sse (*(double *)(*p_argv), &stack->sse[ssecount++]);
 86.6010 -+	      in_register = 1;
 86.6011 -+	    }
 86.6012 -+	  break;
 86.6013 -+	}
 86.6014 -+
 86.6015 -+      if (in_register)
 86.6016 -+	continue;
 86.6017 -+
 86.6018 -+      /* Either all places in registers where filled, or this is a
 86.6019 -+	 type that potentially goes into a memory slot.  */
 86.6020 -+      if (examine_argument (*p_arg, 0, &g, &s) == 0
 86.6021 -+	  || gprcount + g > MAX_GPR_REGS || ssecount + s > MAX_SSE_REGS)
 86.6022 -+	{
 86.6023 -+	  /* Pass this argument in memory.  */
 86.6024 -+	  argp = (void *)ALIGN(argp, (*p_arg)->alignment);
 86.6025 -+	  memcpy (argp, *p_argv, (*p_arg)->size);
 86.6026 -+	  argp += (*p_arg)->size;
 86.6027 -+	}
 86.6028 -+      else
 86.6029 -+	{
 86.6030 -+	  /* All easy cases are eliminated. Now fire the big guns.  */
 86.6031 -+
 86.6032 -+	  enum x86_64_reg_class classes[MAX_CLASSES];
 86.6033 -+	  int offset = 0, j, num;
 86.6034 -+	  void *a;
 86.6035 -+
 86.6036 -+	  num = classify_argument (*p_arg, classes, &offset);
 86.6037 -+	  for (j=0, a=*p_argv; j<num; j++, a+=8)
 86.6038 -+	    {
 86.6039 -+	      switch (classes[j])
 86.6040 -+		{
 86.6041 -+		case X86_64_INTEGER_CLASS:
 86.6042 -+		case X86_64_INTEGERSI_CLASS:
 86.6043 -+		  stack->gpr[gprcount++] = *(long long *)a;
 86.6044 -+		  break;
 86.6045 -+		case X86_64_SSE_CLASS:
 86.6046 -+		  floatfloat2sse (a, &stack->sse[ssecount++]);
 86.6047 -+		  break;
 86.6048 -+		case X86_64_SSESF_CLASS:
 86.6049 -+		  float2sse (*(float *)a, &stack->sse[ssecount++]);
 86.6050 -+		  break;
 86.6051 -+		case X86_64_SSEDF_CLASS:
 86.6052 -+		  double2sse (*(double *)a, &stack->sse[ssecount++]);
 86.6053 -+		  break;
 86.6054 -+		default:
 86.6055 -+		  abort();
 86.6056 -+		}
 86.6057 -+	    }
 86.6058 -+	}
 86.6059 -+    }
 86.6060 -+}
 86.6061 -+
 86.6062 -+/* Perform machine dependent cif processing.  */
 86.6063 -+ffi_status
 86.6064 -+ffi_prep_cif_machdep (ffi_cif *cif)
 86.6065 -+{
 86.6066 -+  int gprcount, ssecount, i, g, s;
 86.6067 -+
 86.6068 -+  gprcount = ssecount = 0;
 86.6069 -+
 86.6070 -+  /* Reset the byte count. We handle this size estimation here.  */
 86.6071 -+  cif->bytes = 0;
 86.6072 -+
 86.6073 -+  /* If the return value should be passed in memory, pass the pointer
 86.6074 -+     as the first argument. The actual memory isn't allocated here.  */
 86.6075 -+  if (cif->rtype->type != FFI_TYPE_VOID 
 86.6076 -+      && examine_argument (cif->rtype, 1, &g, &s) == 0)
 86.6077 -+    gprcount = 1;
 86.6078 -+
 86.6079 -+  /* Go over all arguments and determine the way they should be passed.
 86.6080 -+     If it's in a register and there is space for it, let that be so. If
 86.6081 -+     not, add it's size to the stack byte count.  */
 86.6082 -+  for (i=0; i<cif->nargs; i++)
 86.6083 -+    {
 86.6084 -+      if (examine_argument (cif->arg_types[i], 0, &g, &s) == 0
 86.6085 -+	  || gprcount + g > MAX_GPR_REGS || ssecount + s > MAX_SSE_REGS)
 86.6086 -+	{
 86.6087 -+	  /* This is passed in memory. First align to the basic type.  */
 86.6088 -+	  cif->bytes = ALIGN(cif->bytes, cif->arg_types[i]->alignment);
 86.6089 -+
 86.6090 -+	  /* Stack arguments are *always* at least 8 byte aligned.  */
 86.6091 -+	  cif->bytes = ALIGN(cif->bytes, 8);
 86.6092 -+
 86.6093 -+	  /* Now add the size of this argument.  */
 86.6094 -+	  cif->bytes += cif->arg_types[i]->size;
 86.6095 -+	}
 86.6096 -+      else
 86.6097 -+	{
 86.6098 -+	  gprcount += g;
 86.6099 -+	  ssecount += s;
 86.6100 -+	}
 86.6101 -+    }
 86.6102 -+
 86.6103 -+  /* Set the flag for the closures return.  */
 86.6104 -+    switch (cif->rtype->type)
 86.6105 -+    {
 86.6106 -+    case FFI_TYPE_VOID:
 86.6107 -+    case FFI_TYPE_STRUCT:
 86.6108 -+    case FFI_TYPE_SINT64:
 86.6109 -+    case FFI_TYPE_FLOAT:
 86.6110 -+    case FFI_TYPE_DOUBLE:
 86.6111 -+    case FFI_TYPE_LONGDOUBLE:
 86.6112 -+      cif->flags = (unsigned) cif->rtype->type;
 86.6113 -+      break;
 86.6114 -+
 86.6115 -+    case FFI_TYPE_UINT64:
 86.6116 -+      cif->flags = FFI_TYPE_SINT64;
 86.6117 -+      break;
 86.6118 -+
 86.6119 -+    default:
 86.6120 -+      cif->flags = FFI_TYPE_INT;
 86.6121 -+      break;
 86.6122 -+    }
 86.6123 -+
 86.6124 -+  return FFI_OK;
 86.6125 -+}
 86.6126 -+
 86.6127 -+typedef struct
 86.6128 -+{
 86.6129 -+  long gpr[2];
 86.6130 -+  __int128_t sse[2];
 86.6131 -+  long double st0;
 86.6132 -+} return_value;
 86.6133 -+
 86.6134 -+void
 86.6135 -+ffi_fill_return_value (return_value *rv, extended_cif *ecif)
 86.6136 -+{
 86.6137 -+  enum x86_64_reg_class classes[MAX_CLASSES];
 86.6138 -+  int i = 0, num;
 86.6139 -+  long *gpr = rv->gpr;
 86.6140 -+  __int128_t *sse = rv->sse;
 86.6141 -+  signed char sc;
 86.6142 -+  signed short ss;
 86.6143 -+
 86.6144 -+  /* This is needed because of the way x86-64 handles signed short
 86.6145 -+     integers.  */
 86.6146 -+  switch (ecif->cif->rtype->type)
 86.6147 -+    {
 86.6148 -+    case FFI_TYPE_SINT8:
 86.6149 -+      sc = *(signed char *)gpr;
 86.6150 -+      *(long long *)ecif->rvalue = (long long)sc;
 86.6151 -+      return;
 86.6152 -+    case FFI_TYPE_SINT16:
 86.6153 -+      ss = *(signed short *)gpr;
 86.6154 -+      *(long long *)ecif->rvalue = (long long)ss;
 86.6155 -+      return;
 86.6156 -+    default:
 86.6157 -+      /* Just continue.  */
 86.6158 -+      ;
 86.6159 -+    }
 86.6160 -+
 86.6161 -+  num = classify_argument (ecif->cif->rtype, classes, &i);
 86.6162 -+
 86.6163 -+  if (num == 0)
 86.6164 -+    /* Return in memory.  */
 86.6165 -+    ecif->rvalue = (void *) rv->gpr[0];
 86.6166 -+  else if (num == 2 && classes[0] == X86_64_X87_CLASS &&
 86.6167 -+	classes[1] == X86_64_X87UP_CLASS)
 86.6168 -+    /* This is a long double (this is easiest to handle this way instead
 86.6169 -+       of an eightbyte at a time as in the loop below.  */
 86.6170 -+    *((long double *)ecif->rvalue) = rv->st0;
 86.6171 -+  else
 86.6172 -+    {
 86.6173 -+      void *a;
 86.6174 -+
 86.6175 -+      for (i=0, a=ecif->rvalue; i<num; i++, a+=8)
 86.6176 -+	{
 86.6177 -+	  switch (classes[i])
 86.6178 -+	    {
 86.6179 -+	    case X86_64_INTEGER_CLASS:
 86.6180 -+	    case X86_64_INTEGERSI_CLASS:
 86.6181 -+	      *(long long *)a = *gpr;
 86.6182 -+	      gpr++;
 86.6183 -+	      break;
 86.6184 -+	    case X86_64_SSE_CLASS:
 86.6185 -+	      sse2floatfloat (sse++, a);
 86.6186 -+	      break;
 86.6187 -+	    case X86_64_SSESF_CLASS:
 86.6188 -+	      *(float *)a = sse2float (sse++);
 86.6189 -+	      break;
 86.6190 -+	    case X86_64_SSEDF_CLASS:
 86.6191 -+	      *(double *)a = sse2double (sse++);
 86.6192 -+	      break;
 86.6193 -+	    default:
 86.6194 -+	      abort();
 86.6195 -+	    }
 86.6196 -+	}
 86.6197 -+    }
 86.6198 -+}
 86.6199 -+
 86.6200 -+/*@-declundef@*/
 86.6201 -+/*@-exportheader@*/
 86.6202 -+extern void ffi_call_UNIX64(void (*)(stackLayout *, extended_cif *),
 86.6203 -+			    void (*) (return_value *, extended_cif *),
 86.6204 -+			    /*@out@*/ extended_cif *, 
 86.6205 -+			    unsigned, /*@out@*/ unsigned *, void (*fn)());
 86.6206 -+/*@=declundef@*/
 86.6207 -+/*@=exportheader@*/
 86.6208 -+
 86.6209 -+void ffi_call(/*@dependent@*/ ffi_cif *cif, 
 86.6210 -+	      void (*fn)(), 
 86.6211 -+	      /*@out@*/ void *rvalue, 
 86.6212 -+	      /*@dependent@*/ void **avalue)
 86.6213 -+{
 86.6214 -+  extended_cif ecif;
 86.6215 -+  int dummy;
 86.6216 -+
 86.6217 -+  ecif.cif = cif;
 86.6218 -+  ecif.avalue = avalue;
 86.6219 -+  
 86.6220 -+  /* If the return value is a struct and we don't have a return	*/
 86.6221 -+  /* value address then we need to make one		        */
 86.6222 -+
 86.6223 -+  if ((rvalue == NULL) && 
 86.6224 -+      (examine_argument (cif->rtype, 1, &dummy, &dummy) == 0))
 86.6225 -+    {
 86.6226 -+      /*@-sysunrecog@*/
 86.6227 -+      ecif.rvalue = alloca(cif->rtype->size);
 86.6228 -+      /*@=sysunrecog@*/
 86.6229 -+    }
 86.6230 -+  else
 86.6231 -+    ecif.rvalue = rvalue;
 86.6232 -+    
 86.6233 -+  /* Stack must always be 16byte aligned. Make it so.  */
 86.6234 -+  cif->bytes = ALIGN(cif->bytes, 16);
 86.6235 -+  
 86.6236 -+  switch (cif->abi) 
 86.6237 -+    {
 86.6238 -+    case FFI_SYSV:
 86.6239 -+      /* Calling 32bit code from 64bit is not possible  */
 86.6240 -+      FFI_ASSERT(0);
 86.6241 -+      break;
 86.6242 -+
 86.6243 -+    case FFI_UNIX64:
 86.6244 -+      /*@-usedef@*/
 86.6245 -+      ffi_call_UNIX64 (ffi_prep_args, ffi_fill_return_value, &ecif,
 86.6246 -+		       cif->bytes, ecif.rvalue, fn);
 86.6247 -+      /*@=usedef@*/
 86.6248 -+      break;
 86.6249 -+
 86.6250 -+    default:
 86.6251 -+      FFI_ASSERT(0);
 86.6252 -+      break;
 86.6253 -+    }
 86.6254 -+}
 86.6255 -+
 86.6256 -+extern void ffi_closure_UNIX64(void);
 86.6257 -+
 86.6258 -+ffi_status
 86.6259 -+ffi_prep_closure (ffi_closure* closure,
 86.6260 -+		  ffi_cif* cif,
 86.6261 -+		  void (*fun)(ffi_cif*, void*, void**, void*),
 86.6262 -+		  void *user_data)
 86.6263 -+{
 86.6264 -+  volatile unsigned short *tramp;
 86.6265 -+
 86.6266 -+  /* FFI_ASSERT (cif->abi == FFI_OSF);  */
 86.6267 -+
 86.6268 -+  tramp = (volatile unsigned short *) &closure->tramp[0];
 86.6269 -+  tramp[0] = 0xbb49;		/* mov <code>, %r11	*/
 86.6270 -+  tramp[5] = 0xba49;		/* mov <data>, %r10	*/
 86.6271 -+  tramp[10] = 0xff49;		/* jmp *%r11	*/
 86.6272 -+  tramp[11] = 0x00e3;
 86.6273 -+  *(void * volatile *) &tramp[1] = ffi_closure_UNIX64;
 86.6274 -+  *(void * volatile *) &tramp[6] = closure;
 86.6275 -+
 86.6276 -+  closure->cif = cif;
 86.6277 -+  closure->fun = fun;
 86.6278 -+  closure->user_data = user_data;
 86.6279 -+
 86.6280 -+  return FFI_OK;
 86.6281 -+}
 86.6282 -+
 86.6283 -+int
 86.6284 -+ffi_closure_UNIX64_inner(ffi_closure *closure, va_list l, void *rp)
 86.6285 -+{
 86.6286 -+  ffi_cif *cif;
 86.6287 -+  void **avalue;
 86.6288 -+  ffi_type **arg_types;
 86.6289 -+  long i, avn, argn;
 86.6290 -+
 86.6291 -+  cif = closure->cif;
 86.6292 -+  avalue = alloca(cif->nargs * sizeof(void *));
 86.6293 -+
 86.6294 -+  argn = 0;
 86.6295 -+
 86.6296 -+  i = 0;
 86.6297 -+  avn = cif->nargs;
 86.6298 -+  arg_types = cif->arg_types;
 86.6299 -+  
 86.6300 -+  /* Grab the addresses of the arguments from the stack frame.  */
 86.6301 -+  while (i < avn)
 86.6302 -+    {
 86.6303 -+      switch (arg_types[i]->type)
 86.6304 -+	{
 86.6305 -+	case FFI_TYPE_SINT8:
 86.6306 -+	case FFI_TYPE_UINT8:
 86.6307 -+	case FFI_TYPE_SINT16:
 86.6308 -+	case FFI_TYPE_UINT16:
 86.6309 -+	case FFI_TYPE_SINT32:
 86.6310 -+	case FFI_TYPE_UINT32:
 86.6311 -+	case FFI_TYPE_SINT64:
 86.6312 -+	case FFI_TYPE_UINT64:
 86.6313 -+	case FFI_TYPE_POINTER:
 86.6314 -+	  {
 86.6315 -+	    if (l->gp_offset > 48-8)
 86.6316 -+	      {
 86.6317 -+		avalue[i] = l->overflow_arg_area;
 86.6318 -+		l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
 86.6319 -+	      }
 86.6320 -+	    else
 86.6321 -+	      {
 86.6322 -+		avalue[i] = (char *)l->reg_save_area + l->gp_offset;
 86.6323 -+		l->gp_offset += 8;
 86.6324 -+	      }
 86.6325 -+	  }
 86.6326 -+	  break;
 86.6327 -+
 86.6328 -+	case FFI_TYPE_STRUCT:
 86.6329 -+	  /* FIXME  */
 86.6330 -+	  FFI_ASSERT(0);
 86.6331 -+	  break;
 86.6332 -+
 86.6333 -+	case FFI_TYPE_DOUBLE:
 86.6334 -+	  {
 86.6335 -+	    if (l->fp_offset > 176-16)
 86.6336 -+	      {
 86.6337 -+		avalue[i] = l->overflow_arg_area;
 86.6338 -+		l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
 86.6339 -+	      }
 86.6340 -+	    else
 86.6341 -+	      {
 86.6342 -+		avalue[i] = (char *)l->reg_save_area + l->fp_offset;
 86.6343 -+		l->fp_offset += 16;
 86.6344 -+	      }
 86.6345 -+	  }
 86.6346 -+#if DEBUG_FFI
 86.6347 -+	  fprintf (stderr, "double arg %d = %g\n", i, *(double *)avalue[i]);
 86.6348 -+#endif
 86.6349 -+	  break;
 86.6350 -+	  
 86.6351 -+	case FFI_TYPE_FLOAT:
 86.6352 -+	  {
 86.6353 -+	    if (l->fp_offset > 176-16)
 86.6354 -+	      {
 86.6355 -+		avalue[i] = l->overflow_arg_area;
 86.6356 -+		l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
 86.6357 -+	      }
 86.6358 -+	    else
 86.6359 -+	      {
 86.6360 -+		avalue[i] = (char *)l->reg_save_area + l->fp_offset;
 86.6361 -+		l->fp_offset += 16;
 86.6362 -+	      }
 86.6363 -+	  }
 86.6364 -+#if DEBUG_FFI
 86.6365 -+	  fprintf (stderr, "float arg %d = %g\n", i, *(float *)avalue[i]);
 86.6366 -+#endif
 86.6367 -+	  break;
 86.6368 -+	  
 86.6369 -+	default:
 86.6370 -+	  FFI_ASSERT(0);
 86.6371 -+	}
 86.6372 -+
 86.6373 -+      argn += ALIGN(arg_types[i]->size, SIZEOF_ARG) / SIZEOF_ARG;
 86.6374 -+      i++;
 86.6375 -+    }
 86.6376 -+
 86.6377 -+  /* Invoke the closure.  */
 86.6378 -+  (closure->fun) (cif, rp, avalue, closure->user_data);
 86.6379 -+
 86.6380 -+  /* FIXME: Structs not supported.  */
 86.6381 -+  FFI_ASSERT(cif->rtype->type != FFI_TYPE_STRUCT);
 86.6382 -+
 86.6383 -+  /* Tell ffi_closure_UNIX64 how to perform return type promotions.  */
 86.6384 -+
 86.6385 -+  return cif->rtype->type;
 86.6386 -+}
 86.6387 -+#endif /* ifndef __x86_64__ */
 86.6388 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/x86/sysv.S gcc/libffi/src/x86/sysv.S
 86.6389 ---- gcc-3.2.2.orig/libffi/src/x86/sysv.S	Tue Jul 17 02:10:53 2001
 86.6390 -+++ gcc/libffi/src/x86/sysv.S	Fri Jul 19 08:08:31 2002
 86.6391 -@@ -1,5 +1,5 @@
 86.6392 - /* -----------------------------------------------------------------------
 86.6393 --   sysv.S - Copyright (c) 1996, 1998, 2001  Cygnus Solutions
 86.6394 -+   sysv.S - Copyright (c) 1996, 1998, 2001, 2002  Cygnus Solutions
 86.6395 -    
 86.6396 -    X86 Foreign Function Interface 
 86.6397 - 
 86.6398 -@@ -23,6 +23,8 @@
 86.6399 -    OTHER DEALINGS IN THE SOFTWARE.
 86.6400 -    ----------------------------------------------------------------------- */
 86.6401 - 
 86.6402 -+#ifndef __x86_64__
 86.6403 -+
 86.6404 - #define LIBFFI_ASM	
 86.6405 - #include <ffi.h>
 86.6406 - 
 86.6407 -@@ -163,3 +165,5 @@
 86.6408 - 	.align 4
 86.6409 - .LEFDE1:
 86.6410 - 	.set	.LLFDE1,.LEFDE1-.LSFDE1
 86.6411 -+
 86.6412 -+#endif /* ifndef __x86_64__ */
 86.6413 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/x86/unix64.S gcc/libffi/src/x86/unix64.S
 86.6414 ---- gcc-3.2.2.orig/libffi/src/x86/unix64.S	Thu Jan  1 09:00:00 1970
 86.6415 -+++ gcc/libffi/src/x86/unix64.S	Wed Jan 29 00:54:28 2003
 86.6416 -@@ -0,0 +1,302 @@
 86.6417 -+/* -----------------------------------------------------------------------
 86.6418 -+   unix64.S - Copyright (c) 2002  Bo Thorsen <bo@suse.de>
 86.6419 -+
 86.6420 -+   x86-64 Foreign Function Interface 
 86.6421 -+
 86.6422 -+   Permission is hereby granted, free of charge, to any person obtaining
 86.6423 -+   a copy of this software and associated documentation files (the
 86.6424 -+   ``Software''), to deal in the Software without restriction, including
 86.6425 -+   without limitation the rights to use, copy, modify, merge, publish,
 86.6426 -+   distribute, sublicense, and/or sell copies of the Software, and to
 86.6427 -+   permit persons to whom the Software is furnished to do so, subject to
 86.6428 -+   the following conditions:
 86.6429 -+
 86.6430 -+   The above copyright notice and this permission notice shall be included
 86.6431 -+   in all copies or substantial portions of the Software.
 86.6432 -+
 86.6433 -+   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
 86.6434 -+   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 86.6435 -+   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 86.6436 -+   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 86.6437 -+   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 86.6438 -+   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 86.6439 -+   OTHER DEALINGS IN THE SOFTWARE.
 86.6440 -+   ----------------------------------------------------------------------- */
 86.6441 -+
 86.6442 -+#ifdef __x86_64__
 86.6443 -+#define LIBFFI_ASM	
 86.6444 -+#include <ffi.h>
 86.6445 -+
 86.6446 -+	.section	.rodata
 86.6447 -+.LC0:
 86.6448 -+	.string	"asm in progress %lld\n"
 86.6449 -+.LC1:
 86.6450 -+	.string	"asm in progress\n"
 86.6451 -+.text
 86.6452 -+	.align	2
 86.6453 -+.globl ffi_call_UNIX64
 86.6454 -+        .type	ffi_call_UNIX64,@function
 86.6455 -+
 86.6456 -+ffi_call_UNIX64:
 86.6457 -+.LFB1:
 86.6458 -+        pushq	%rbp
 86.6459 -+.LCFI0:
 86.6460 -+        movq	%rsp, %rbp
 86.6461 -+.LCFI1:
 86.6462 -+	/* Save all arguments */
 86.6463 -+	subq	$48, %rsp
 86.6464 -+.LCFI2:
 86.6465 -+	movq	%rdi, -8(%rbp)		/* ffi_prep_args	 */
 86.6466 -+	movq	%rsi, -16(%rbp)		/* ffi_fill_return_value */
 86.6467 -+	movq	%rdx, -24(%rbp)		/* ecif			 */
 86.6468 -+	movq	%rcx, -32(%rbp)		/* cif->bytes		 */
 86.6469 -+	movq	%r8, -40(%rbp)		/* ecif.rvalue		 */
 86.6470 -+	movq	%r9, -48(%rbp)		/* fn			 */
 86.6471 -+
 86.6472 -+	/* Make room for all of the new args and the register args */
 86.6473 -+	addl	$176, %ecx
 86.6474 -+.LCFI3:
 86.6475 -+	subq	%rcx, %rsp
 86.6476 -+.LCFI4:
 86.6477 -+	/* Setup the call to ffi_prep_args.  */
 86.6478 -+	movq	%rdi, %rax		/* &ffi_prep_args	*/
 86.6479 -+	movq	%rsp, %rdi		/* stackLayout		*/
 86.6480 -+	movq	%rdx, %rsi		/* ecif			*/
 86.6481 -+	call	*%rax			/* ffi_prep_args(stackLayout, ecif);*/ 
 86.6482 -+
 86.6483 -+	/* ffi_prep_args have put all the register contents into the  */
 86.6484 -+	/* stackLayout struct. Now put the register values in place.  */
 86.6485 -+	movq	(%rsp), %rdi
 86.6486 -+	movq	8(%rsp), %rsi
 86.6487 -+	movq	16(%rsp), %rdx
 86.6488 -+	movq	24(%rsp), %rcx
 86.6489 -+	movq	32(%rsp), %r8
 86.6490 -+	movq	40(%rsp), %r9
 86.6491 -+	movaps	48(%rsp), %xmm0
 86.6492 -+	movaps	64(%rsp), %xmm1
 86.6493 -+	movaps	80(%rsp), %xmm2
 86.6494 -+	movaps	96(%rsp), %xmm3
 86.6495 -+	movaps	112(%rsp), %xmm4
 86.6496 -+	movaps	128(%rsp), %xmm5
 86.6497 -+	movaps	144(%rsp), %xmm6
 86.6498 -+	movaps	160(%rsp), %xmm7
 86.6499 -+
 86.6500 -+	/* Remove space for stackLayout so stack arguments are placed
 86.6501 -+	   correctly for the call.  */
 86.6502 -+.LCFI5:
 86.6503 -+	addq	$176, %rsp
 86.6504 -+.LCFI6:
 86.6505 -+	/* Call the user function.  */
 86.6506 -+	call	*-48(%rbp)
 86.6507 -+
 86.6508 -+	/* Make stack space for the return_value struct.  */
 86.6509 -+	subq	$64, %rsp
 86.6510 -+
 86.6511 -+	/* Fill in all potential return values to this struct.  */
 86.6512 -+	movq	%rax, (%rsp)
 86.6513 -+	movq	%rdx, 8(%rsp)
 86.6514 -+	movaps	%xmm0, 16(%rsp)
 86.6515 -+	movaps	%xmm1, 32(%rsp)
 86.6516 -+	fstpt	48(%rsp)
 86.6517 -+
 86.6518 -+	/* Now call ffi_fill_return_value.  */
 86.6519 -+	movq	%rsp, %rdi		/* struct return_value	  */
 86.6520 -+	movq	-24(%rbp), %rsi		/* ecif			  */
 86.6521 -+	movq	-16(%rbp), %rax		/* &ffi_fill_return_value */
 86.6522 -+	call	*%rax			/* call it		  */
 86.6523 -+
 86.6524 -+	/* And the work is done.  */
 86.6525 -+        leave
 86.6526 -+        ret
 86.6527 -+.LFE1:
 86.6528 -+.ffi_call_UNIX64_end:
 86.6529 -+        .size    ffi_call_UNIX64,.ffi_call_UNIX64_end-ffi_call_UNIX64
 86.6530 -+
 86.6531 -+.text
 86.6532 -+	.align	2
 86.6533 -+.globl float2sse
 86.6534 -+        .type	float2sse,@function
 86.6535 -+float2sse:
 86.6536 -+	/* Save the contents of this sse-float in a pointer.  */
 86.6537 -+	movaps	%xmm0, (%rdi)
 86.6538 -+	ret
 86.6539 -+
 86.6540 -+	.align	2
 86.6541 -+.globl floatfloat2sse
 86.6542 -+        .type	floatfloat2sse,@function
 86.6543 -+floatfloat2sse:
 86.6544 -+	/* Save the contents of these two sse-floats in a pointer.  */
 86.6545 -+	movq	(%rdi), %xmm0
 86.6546 -+	movaps	%xmm0, (%rsi)
 86.6547 -+	ret
 86.6548 -+
 86.6549 -+	.align	2
 86.6550 -+.globl double2sse
 86.6551 -+        .type	double2sse,@function
 86.6552 -+double2sse:
 86.6553 -+	/* Save the contents of this sse-double in a pointer.  */
 86.6554 -+	movaps	%xmm0, (%rdi)
 86.6555 -+	ret
 86.6556 -+
 86.6557 -+	.align	2
 86.6558 -+.globl sse2float
 86.6559 -+        .type	sse2float,@function
 86.6560 -+sse2float:
 86.6561 -+	/* Save the contents of this sse-float in a pointer.  */
 86.6562 -+	movaps	(%rdi), %xmm0
 86.6563 -+	ret
 86.6564 -+
 86.6565 -+	.align	2
 86.6566 -+.globl sse2double
 86.6567 -+        .type	sse2double,@function
 86.6568 -+sse2double:
 86.6569 -+	/* Save the contents of this pointer in a sse-double.  */
 86.6570 -+	movaps	(%rdi), %xmm0
 86.6571 -+	ret
 86.6572 -+
 86.6573 -+	.align	2
 86.6574 -+.globl sse2floatfloat
 86.6575 -+        .type	sse2floatfloat,@function
 86.6576 -+sse2floatfloat:
 86.6577 -+	/* Save the contents of this pointer in two sse-floats.  */
 86.6578 -+	movaps	(%rdi), %xmm0
 86.6579 -+	movq	%xmm0, (%rsi)
 86.6580 -+	ret
 86.6581 -+
 86.6582 -+	.align	2
 86.6583 -+.globl ffi_closure_UNIX64
 86.6584 -+        .type	ffi_closure_UNIX64,@function
 86.6585 -+
 86.6586 -+ffi_closure_UNIX64:
 86.6587 -+.LFB2:
 86.6588 -+        pushq   %rbp
 86.6589 -+.LCFI10:
 86.6590 -+        movq    %rsp, %rbp
 86.6591 -+.LCFI11:
 86.6592 -+        subq    $240, %rsp
 86.6593 -+.LCFI12:
 86.6594 -+	movq	%rdi, -176(%rbp)
 86.6595 -+        movq    %rsi, -168(%rbp)
 86.6596 -+        movq    %rdx, -160(%rbp)
 86.6597 -+        movq    %rcx, -152(%rbp)
 86.6598 -+        movq    %r8, -144(%rbp)
 86.6599 -+        movq    %r9, -136(%rbp)
 86.6600 -+        /* FIXME: We can avoid all this stashing of XMM registers by
 86.6601 -+	   (in ffi_prep_closure) computing the number of
 86.6602 -+	   floating-point args and moving it into %rax before calling
 86.6603 -+	   this function.  Once this is done, uncomment the next few
 86.6604 -+	   lines and only the essential XMM registers will be written
 86.6605 -+	   to memory.  This is a significant saving.  */
 86.6606 -+/*         movzbl  %al, %eax  */
 86.6607 -+/*         movq    %rax, %rdx */
 86.6608 -+/*         leaq    0(,%rdx,4), %rax */
 86.6609 -+/*         leaq    2f(%rip), %rdx */
 86.6610 -+/*         subq    %rax, %rdx */
 86.6611 -+        leaq    -1(%rbp), %rax
 86.6612 -+/*         jmp     *%rdx */
 86.6613 -+        movaps  %xmm7, -15(%rax)
 86.6614 -+        movaps  %xmm6, -31(%rax)
 86.6615 -+        movaps  %xmm5, -47(%rax)
 86.6616 -+        movaps  %xmm4, -63(%rax)
 86.6617 -+        movaps  %xmm3, -79(%rax)
 86.6618 -+        movaps  %xmm2, -95(%rax)
 86.6619 -+        movaps  %xmm1, -111(%rax)
 86.6620 -+        movaps  %xmm0, -127(%rax)
 86.6621 -+2:
 86.6622 -+        movl    %edi, -180(%rbp)
 86.6623 -+        movl    $0, -224(%rbp)
 86.6624 -+        movl    $48, -220(%rbp)
 86.6625 -+        leaq    16(%rbp), %rax
 86.6626 -+        movq    %rax, -216(%rbp)
 86.6627 -+        leaq    -176(%rbp), %rdx
 86.6628 -+        movq    %rdx, -208(%rbp)
 86.6629 -+        leaq    -224(%rbp), %rsi
 86.6630 -+	movq	%r10, %rdi
 86.6631 -+	movq	%rsp, %rdx
 86.6632 -+        call    ffi_closure_UNIX64_inner@PLT
 86.6633 -+
 86.6634 -+	cmpl	$FFI_TYPE_FLOAT, %eax
 86.6635 -+	je	1f
 86.6636 -+	cmpl	$FFI_TYPE_DOUBLE, %eax
 86.6637 -+	je	2f
 86.6638 -+	cmpl	$FFI_TYPE_LONGDOUBLE, %eax
 86.6639 -+	je	3f
 86.6640 -+	cmpl	$FFI_TYPE_STRUCT, %eax
 86.6641 -+	je	4f
 86.6642 -+	popq	%rax
 86.6643 -+        leave
 86.6644 -+        ret
 86.6645 -+1:
 86.6646 -+2:
 86.6647 -+3:	
 86.6648 -+	movaps	-240(%rbp), %xmm0
 86.6649 -+        leave
 86.6650 -+        ret
 86.6651 -+4:
 86.6652 -+	leave
 86.6653 -+	ret
 86.6654 -+.LFE2:	
 86.6655 -+		
 86.6656 -+        .section        .eh_frame,"a",@progbits
 86.6657 -+.Lframe0:
 86.6658 -+        .long   .LECIE1-.LSCIE1
 86.6659 -+.LSCIE1:
 86.6660 -+        .long   0x0
 86.6661 -+        .byte   0x1
 86.6662 -+        .string "zR"
 86.6663 -+        .uleb128 0x1
 86.6664 -+        .sleb128 -8
 86.6665 -+        .byte   0x10
 86.6666 -+        .uleb128 0x1
 86.6667 -+        .byte   0x1b
 86.6668 -+        .byte   0xc
 86.6669 -+        .uleb128 0x7
 86.6670 -+        .uleb128 0x8
 86.6671 -+        .byte   0x90
 86.6672 -+        .uleb128 0x1
 86.6673 -+        .align 8
 86.6674 -+.LECIE1:
 86.6675 -+.LSFDE1:
 86.6676 -+	.long	.LEFDE1-.LASFDE1
 86.6677 -+.LASFDE1:
 86.6678 -+        .long   .LASFDE1-.Lframe0
 86.6679 -+
 86.6680 -+        .long   .LFB1-.
 86.6681 -+        .long   .LFE1-.LFB1
 86.6682 -+        .uleb128 0x0
 86.6683 -+        .byte   0x4		# DW_CFA_advance_loc4
 86.6684 -+        .long   .LCFI0-.LFB1
 86.6685 -+        .byte   0xe		# DW_CFA_def_cfa_offset
 86.6686 -+        .uleb128 0x10
 86.6687 -+        .byte   0x86		# DW_CFA_offset: r6 at cfa-16
 86.6688 -+        .uleb128 0x2
 86.6689 -+        .byte   0x4		# DW_CFA_advance_loc4
 86.6690 -+        .long   .LCFI1-.LCFI0
 86.6691 -+        .byte   0x86		# DW_CFA_offset: r6 at cfa-16
 86.6692 -+        .uleb128 0x2
 86.6693 -+        .byte   0xd		# DW_CFA_def_cfa_reg: r6
 86.6694 -+        .uleb128 0x6
 86.6695 -+	.align 8
 86.6696 -+.LEFDE1:
 86.6697 -+.LSFDE3:
 86.6698 -+        .long   .LEFDE3-.LASFDE3        # FDE Length
 86.6699 -+.LASFDE3:
 86.6700 -+        .long   .LASFDE3-.Lframe0       # FDE CIE offset
 86.6701 -+
 86.6702 -+        .long   .LFB2-. # FDE initial location
 86.6703 -+        .long   .LFE2-.LFB2     # FDE address range
 86.6704 -+        .uleb128 0x0    # Augmentation size
 86.6705 -+        .byte   0x4     # DW_CFA_advance_loc4
 86.6706 -+        .long   .LCFI10-.LFB2
 86.6707 -+        .byte   0xe     # DW_CFA_def_cfa_offset
 86.6708 -+        .uleb128 0x10
 86.6709 -+        .byte   0x86    # DW_CFA_offset, column 0x6
 86.6710 -+        .uleb128 0x2
 86.6711 -+        .byte   0x4     # DW_CFA_advance_loc4
 86.6712 -+        .long   .LCFI11-.LCFI10
 86.6713 -+        .byte   0xd     # DW_CFA_def_cfa_register
 86.6714 -+        .uleb128 0x6
 86.6715 -+        .align 8
 86.6716 -+.LEFDE3:
 86.6717 -+
 86.6718 -+#endif /* __x86_64__  */
 86.6719 -diff -ruN --exclude=CVS gcc-3.2.2.orig/libffi/src/x86/win32.S gcc/libffi/src/x86/win32.S
 86.6720 ---- gcc-3.2.2.orig/libffi/src/x86/win32.S	Tue Mar 27 11:39:16 2001
 86.6721 -+++ gcc/libffi/src/x86/win32.S	Fri Dec  6 10:16:45 2002
 86.6722 -@@ -1,5 +1,8 @@
 86.6723 - /* -----------------------------------------------------------------------
 86.6724 --   win32.S - Copyright (c) 1996, 1998, 2001  Cygnus Solutions
 86.6725 -+   win32.S - Copyright (c) 1996, 1998, 2001, 2002  Red Hat, Inc.
 86.6726 -+	     Copyright (c) 2001  John Beniton
 86.6727 -+	     Copyright (c) 2002  Ranjit Mathew
 86.6728 -+			
 86.6729 -  
 86.6730 -    X86 Foreign Function Interface
 86.6731 -  
 86.6732 -@@ -52,7 +55,10 @@
 86.6733 -         # Return stack to previous state and call the function
 86.6734 -         addl  $8,%esp
 86.6735 -  
 86.6736 --        call  *28(%ebp)
 86.6737 -+        # FIXME: Align the stack to a 128-bit boundary to avoid
 86.6738 -+        # potential performance hits.
 86.6739 -+
 86.6740 -+	call  *28(%ebp)
 86.6741 -  
 86.6742 -         # Remove the space we pushed for the args
 86.6743 -         movl  16(%ebp),%ecx
 86.6744 -@@ -123,3 +129,98 @@
 86.6745 -         ret
 86.6746 -  
 86.6747 - .ffi_call_SYSV_end:
 86.6748 -+
 86.6749 -+        # This assumes we are using gas.
 86.6750 -+        .balign 16
 86.6751 -+.globl _ffi_call_STDCALL
 86.6752 -+
 86.6753 -+_ffi_call_STDCALL:
 86.6754 -+        pushl %ebp
 86.6755 -+        movl  %esp,%ebp
 86.6756 -+
 86.6757 -+        # Make room for all of the new args.
 86.6758 -+        movl  16(%ebp),%ecx 
 86.6759 -+        subl  %ecx,%esp
 86.6760 -+
 86.6761 -+        movl  %esp,%eax
 86.6762 -+
 86.6763 -+        # Place all of the ffi_prep_args in position
 86.6764 -+        pushl 12(%ebp)
 86.6765 -+        pushl %eax
 86.6766 -+        call  *8(%ebp)
 86.6767 -+
 86.6768 -+        # Return stack to previous state and call the function
 86.6769 -+        addl  $8,%esp
 86.6770 -+
 86.6771 -+        # FIXME: Align the stack to a 128-bit boundary to avoid
 86.6772 -+        # potential performance hits.
 86.6773 -+
 86.6774 -+        call  *28(%ebp)
 86.6775 -+
 86.6776 -+        # stdcall functions pop arguments off the stack themselves
 86.6777 -+
 86.6778 -+        # Load %ecx with the return type code
 86.6779 -+        movl  20(%ebp),%ecx
 86.6780 -+
 86.6781 -+        # If the return value pointer is NULL, assume no return value.
 86.6782 -+        cmpl  $0,24(%ebp)
 86.6783 -+        jne   sc_retint
 86.6784 -+
 86.6785 -+        # Even if there is no space for the return value, we are
 86.6786 -+        # obliged to handle floating-point values.
 86.6787 -+        cmpl  $FFI_TYPE_FLOAT,%ecx
 86.6788 -+        jne   sc_noretval
 86.6789 -+        fstp  %st(0)
 86.6790 -+
 86.6791 -+        jmp   sc_epilogue
 86.6792 -+
 86.6793 -+sc_retint:
 86.6794 -+        cmpl  $FFI_TYPE_INT,%ecx
 86.6795 -+        jne   sc_retfloat
 86.6796 -+        # Load %ecx with the pointer to storage for the return value
 86.6797 -+        movl  24(%ebp),%ecx
 86.6798 -+        movl  %eax,0(%ecx)
 86.6799 -+        jmp   sc_epilogue
 86.6800 -+
 86.6801 -+sc_retfloat:
 86.6802 -+        cmpl  $FFI_TYPE_FLOAT,%ecx
 86.6803 -+        jne   sc_retdouble
 86.6804 -+         # Load %ecx with the pointer to storage for the return value
 86.6805 -+        movl  24(%ebp),%ecx
 86.6806 -+        fstps (%ecx)
 86.6807 -+        jmp   sc_epilogue
 86.6808 -+
 86.6809 -+sc_retdouble:
 86.6810 -+        cmpl  $FFI_TYPE_DOUBLE,%ecx
 86.6811 -+        jne   sc_retlongdouble
 86.6812 -+        # Load %ecx with the pointer to storage for the return value
 86.6813 -+        movl  24(%ebp),%ecx
 86.6814 -+        fstpl (%ecx)
 86.6815 -+        jmp   sc_epilogue
 86.6816 -+
 86.6817 -+sc_retlongdouble:
 86.6818 -+        cmpl  $FFI_TYPE_LONGDOUBLE,%ecx
 86.6819 -+        jne   sc_retint64
 86.6820 -+        # Load %ecx with the pointer to storage for the return value
 86.6821 -+        movl  24(%ebp),%ecx
 86.6822 -+        fstpt (%ecx)
 86.6823 -+        jmp   sc_epilogue
 86.6824 -+
 86.6825 -+sc_retint64:
 86.6826 -+        cmpl  $FFI_TYPE_SINT64,%ecx
 86.6827 -+        jne   sc_retstruct
 86.6828 -+        # Load %ecx with the pointer to storage for the return value
 86.6829 -+        movl  24(%ebp),%ecx
 86.6830 -+        movl  %eax,0(%ecx)
 86.6831 -+        movl  %edx,4(%ecx)
 86.6832 -+
 86.6833 -+sc_retstruct:
 86.6834 -+        # Nothing to do!
 86.6835 -+
 86.6836 -+sc_noretval:
 86.6837 -+sc_epilogue:
 86.6838 -+        movl %ebp,%esp
 86.6839 -+        popl %ebp
 86.6840 -+        ret
 86.6841 -+
 86.6842 -+.ffi_call_STDCALL_end:
 86.6843 ---- gcc-3.2.2.orig/libjava/configure.host	Mon Jun 10 13:15:26 2002
 86.6844 -+++ gcc-3.2.2/libjava/configure.host	Sat Feb 15 19:57:25 2003
 86.6845 -@@ -115,6 +115,12 @@
 86.6846 - 	enable_getenv_properties_default=no
 86.6847 - 	enable_main_args_default=no
 86.6848 - 	;;
 86.6849 -+  sh-* | sh[34]*-*)
 86.6850 -+	sysdeps_dir=sh
 86.6851 -+	libgcj_flags="${libgcj_flags} -mieee"
 86.6852 -+	libgcj_interpreter=yes
 86.6853 -+	enable_hash_synchronization_default=yes
 86.6854 -+	;;
 86.6855 - esac
 86.6856 - 
 86.6857 - # This case statement supports generic port properties and may refine
 86.6858 -@@ -126,7 +132,8 @@
 86.6859 -   powerpc*-linux* | \
 86.6860 -   alpha*-linux* | \
 86.6861 -   sparc*-linux* | \
 86.6862 --  ia64-*)
 86.6863 -+  ia64-* | \
 86.6864 -+  sh-linux* | sh[34]*-linux*)
 86.6865 -   	can_unwind_signal=yes
 86.6866 - 	;;
 86.6867 -   *-*-darwin*)
    87.1 --- a/patches/gcc/3.2.3/150-ppc-asm-spec.patch	Wed Oct 28 12:03:38 2009 +0100
    87.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    87.3 @@ -1,54 +0,0 @@
    87.4 -Based on gcc-3.4.0/gcc-3.3.3h-ppc-asm-spec.patch
    87.5 -
    87.6 -Fixes the following errors when building gcc for ppc7450:
    87.7 -
    87.8 -/tmp/ccYph3gd.s: Assembler messages:
    87.9 -/tmp/ccYph3gd.s:3823: Error: Unrecognized opcode: `mfvrsave'
   87.10 -/tmp/ccYph3gd.s:3857: Error: Unrecognized opcode: `stvx'
   87.11 -/tmp/ccYph3gd.s:4026: Error: Unrecognized opcode: `lvx'
   87.12 -/tmp/ccYph3gd.s:4027: Error: Unrecognized opcode: `mtvrsave'
   87.13 -make[2]: *** [libgcc/./unwind-dw2.o] Error 1
   87.14 -make[2]: Leaving directory `/opt/crosstool-0.28-rc35/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.3.2/build-gcc-core/gcc'
   87.15 -make[1]: *** [stmp-multilib] Error 2
   87.16 -make[1]: Leaving directory `/opt/crosstool-0.28-rc35/build/powerpc-7450-linux-gnu/gcc-3.2.3-glibc-2.3.2/build-gcc-core/gcc'
   87.17 -make: *** [all-gcc] Error 2
   87.18 -
   87.19 -Note that the "-mcpu=7450" option must appear on the "gcc" command line in
   87.20 -order for "-maltivec" to be passed to the assembler.  Or, "-maltivec" itself
   87.21 -may be passed to the "gcc" command.
   87.22 -
   87.23 -Contributed by Tom Warzeka <waz@quahog.npt.nuwc.navy.mil>
   87.24 -
   87.25 -===================================================================
   87.26 ---- gcc-3.2.3/gcc/config/rs6000/rs6000.h~	2003-03-29 07:39:20.000000000 -0500
   87.27 -+++ gcc-3.2.3/gcc/config/rs6000/rs6000.h	2004-08-23 16:33:21.000000000 -0400
   87.28 -@@ -77,8 +77,8 @@
   87.29 - %{mcpu=604e: -D_ARCH_PPC} \
   87.30 - %{mcpu=620: -D_ARCH_PPC} \
   87.31 - %{mcpu=740: -D_ARCH_PPC} \
   87.32 --%{mcpu=7400: -D_ARCH_PPC} \
   87.33 --%{mcpu=7450: -D_ARCH_PPC} \
   87.34 -+%{mcpu=7400: -D_ARCH_PPC -D__ALTIVEC__} \
   87.35 -+%{mcpu=7450: -D_ARCH_PPC -D__ALTIVEC__} \
   87.36 - %{mcpu=750: -D_ARCH_PPC} \
   87.37 - %{mcpu=801: -D_ARCH_PPC} \
   87.38 - %{mcpu=821: -D_ARCH_PPC} \
   87.39 -@@ -117,14 +117,15 @@
   87.40 - %{mcpu=604e: -mppc} \
   87.41 - %{mcpu=620: -mppc} \
   87.42 - %{mcpu=740: -mppc} \
   87.43 --%{mcpu=7400: -mppc} \
   87.44 --%{mcpu=7450: -mppc} \
   87.45 -+%{mcpu=7400: -mppc -maltivec} \
   87.46 -+%{mcpu=7450: -mppc -maltivec} \
   87.47 - %{mcpu=750: -mppc} \
   87.48 - %{mcpu=801: -mppc} \
   87.49 - %{mcpu=821: -mppc} \
   87.50 - %{mcpu=823: -mppc} \
   87.51 - %{mcpu=860: -mppc} \
   87.52 --%{maltivec: -maltivec}"
   87.53 -+%{maltivec: -maltivec} \
   87.54 -+-many"
   87.55 - 
   87.56 - #define CPP_DEFAULT_SPEC ""
   87.57 - 
    88.1 --- a/patches/gcc/3.2.3/160-trap-posix.patch	Wed Oct 28 12:03:38 2009 +0100
    88.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    88.3 @@ -1,45 +0,0 @@
    88.4 -# 
    88.5 -# Submitted-By: Marc Kleine-Budde <mkl@pengutronix.de>, 2005-04-20
    88.6 -#
    88.7 -# Error:
    88.8 -#
    88.9 -# creating libintl.h
   88.10 -# Configuring etc...
   88.11 -# loading cache ../config.cache
   88.12 -# checking for a BSD compatible install... (cached) /usr/bin/install -c
   88.13 -# creating ./config.status
   88.14 -# creating Makefile
   88.15 -# trap: usage: trap [-lp] [[arg] signal_spec ...]
   88.16 -#
   88.17 -# Description:
   88.18 -#
   88.19 -# non-posix conform usage of trap causes bash >= 3.0 to fail
   88.20 -#
   88.21 -# e.g.: http://sourceware.org/ml/crossgcc/2004-12/msg00132.html
   88.22 -#
   88.23 -# Status:
   88.24 -#
   88.25 -# fixed in gcc >= 3.3.5
   88.26 -# backport of gcc-3.3.5 fix
   88.27 -#
   88.28 -diff -ruN gcc-3.2.3-orig/configure gcc-3.2.3/configure
   88.29 ---- gcc-3.2.3-orig/configure	2002-06-24 18:14:28.000000000 +0200
   88.30 -+++ gcc-3.2.3/configure	2005-04-20 18:42:49.000000000 +0200
   88.31 -@@ -697,7 +697,7 @@
   88.32 - if test -f skip-this-dir; then
   88.33 - 	# Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   88.34 - 	# and reset the trap handler.
   88.35 --	trap 0
   88.36 -+	trap '' 0
   88.37 - 	rm -rf Makefile* ${tmpdir}
   88.38 - 	# Execute the final clean-up actions
   88.39 - 	${config_shell} skip-this-dir
   88.40 -@@ -1615,7 +1615,7 @@
   88.41 - # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
   88.42 - # and reset the trap handler.
   88.43 - rm -rf ${tmpdir}
   88.44 --trap 0
   88.45 -+trap '' 0
   88.46 - 
   88.47 - exit 0
   88.48 - 
    89.1 --- a/patches/gcc/3.2.3/170-libstdc++-v3-dg.exp.patch	Wed Oct 28 12:03:38 2009 +0100
    89.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    89.3 @@ -1,54 +0,0 @@
    89.4 -Without this patch, the command
    89.5 -
    89.6 -RUNTESTFLAGS=--target=powerpc-750-linux-gnu -v -v -v -v make check-target-libstdc++-v3
    89.7 -
    89.8 -fails in two ways:
    89.9 -1. the -L option meant to locate the testsuite directory is incorrect, and
   89.10 -2. the wrong compiler is invoked, causing all sorts of havoc, not least of which
   89.11 -is the native compiler is invoked when we really wanted to invoke the cross-compiler
   89.12 -we just built.
   89.13 -
   89.14 -Here's an example log of the problem in action.  Every testcase fails, this shows just one:
   89.15 --------------
   89.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
   89.17 -compiler exited with status 1
   89.18 -output is:
   89.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
   89.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
   89.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
   89.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
   89.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
   89.24 -...
   89.25 -FAIL: 20_util/binders.cc (test for excess errors)
   89.26 -WARNING: 20_util/binders.cc compilation failed to produce executable
   89.27 --------------
   89.28 -
   89.29 -And here's the patch.  I'm not happy with it, and it probably gets some cases wrong,
   89.30 -but it seems to work for the common native case and for my cross-compiler case.
   89.31 -
   89.32 ---- gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp.old	Sun Jul 13 10:42:01 2003
   89.33 -+++ gcc-3.3/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp	Sun Jul 13 11:39:54 2003
   89.34 -@@ -46,8 +46,23 @@
   89.35 -     global gluefile wrap_flags
   89.36 -     global ld_library_path
   89.37 -     global tool_root_dir
   89.38 -+    global target_triplet
   89.39 - 
   89.40 -     set blddir [lookfor_file [get_multilibs] libstdc++-v3]
   89.41 -+    if { $blddir == "" } {
   89.42 -+        set multilibs [get_multilibs]
   89.43 -+        # FIXME: assume multilib only one level deep
   89.44 -+        set multisub [file tail $multilibs]
   89.45 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3 in $multilibs, trying $objdir"
   89.46 -+        set blddir [lookfor_file ${objdir} "$target_triplet/$multisub/libstdc++-v3"]
   89.47 -+    }
   89.48 -+    if { $blddir == "" } {
   89.49 -+        verbose "libstdc++-v3-init: couldn't find libstdc++-v3, trying $objdir without multilibs"
   89.50 -+        set blddir [lookfor_file ${objdir} "$target_triplet/libstdc++-v3"]
   89.51 -+    }
   89.52 -+    if { $blddir == "" } {
   89.53 -+         error "Can't find libstdc++-v3"
   89.54 -+    }
   89.55 - 
   89.56 -     # By default, we assume we want to run program images.
   89.57 -     global dg-do-what-default
    90.1 --- a/patches/gcc/3.2.3/README-mips	Wed Oct 28 12:03:38 2009 +0100
    90.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    90.3 @@ -1,1648 +0,0 @@
    90.4 -See also http://www.spinics.net/lists/mips/msg12236.html
    90.5 -
    90.6 -ftp://ftp.linux-mips.org/pub/linux/mips/redhat/7.3/test/SRPMS/gcc-3.2-7.1.src.rpm
    90.7 -contains the following patches and spec file.
    90.8 -You may wish to investigate some of these patches; I haven't.
    90.9 -I think this is mostly the Red Hat 8.0 srpm for a prerelease gcc-3.2, plus a couple
   90.10 -mips specific fixes, but you'd have to ask H.J.Lu or compare with the regular
   90.11 -Red Hat 8.0 srpm to find out.
   90.12 -In any case, the spec file is interesting reading.
   90.13 -- Dan K. 
   90.14 -
   90.15 -total 1164
   90.16 -   4 boehm-gc-LINUX.patch
   90.17 -   4 boehm-gc-mips.patch
   90.18 -   4 contrib-touch.patch
   90.19 -   8 gcc-arch.patch
   90.20 -   4 gcc-c++-template.patch
   90.21 -   4 gcc-copy.patch
   90.22 -   4 gcc-cross-bfd.patch
   90.23 -   4 gcc-cross.patch
   90.24 -   4 gcc-gcj-cross.patch
   90.25 -   4 gcc-libffi-mips.patch
   90.26 -   4 gcc-libgcc.patch
   90.27 - 480 gcc-libstdc++-glibc-2.2.patch
   90.28 -   4 gcc-libstdc++-mips.patch
   90.29 -   4 gcc-linux-atexit.patch
   90.30 -   8 gcc-linux-crt.patch
   90.31 -   4 gcc-mips-coff.patch
   90.32 -   4 gcc-mips-file.patch
   90.33 -   4 gcc-mips-ieee.patch
   90.34 -   4 gcc-mips-return.patch
   90.35 -   4 gcc-ppc-linux.patch
   90.36 -   8 gcc-sizeof.patch
   90.37 -   4 gcc-test-atexit.patch
   90.38 -   4 gcc-testsuite-c++.patch
   90.39 -   4 gcc-var.patch
   90.40 -   8 gcc32-2.96-RH-compat.patch
   90.41 -   4 gcc32-ada-addr2line.patch
   90.42 -   8 gcc32-ada-link.patch
   90.43 -  12 gcc32-attr-visibility.patch
   90.44 -   4 gcc32-attr-visibility2.patch
   90.45 -   4 gcc32-attr-visibility3.patch
   90.46 -   4 gcc32-attr-visibility4.patch
   90.47 -   4 gcc32-attr-visibility5.patch
   90.48 -   8 gcc32-boehm-gc-libs.patch
   90.49 -   4 gcc32-bogus-inline.patch
   90.50 -   4 gcc32-c++-nrv-test.patch
   90.51 -   4 gcc32-c++-pretty_function.patch
   90.52 -  16 gcc32-c++-tail-pad-backout.patch
   90.53 -   4 gcc32-c++-tsubst-asm.patch
   90.54 -   4 gcc32-cfg-eh.patch
   90.55 -   4 gcc32-debug-pr7241.patch
   90.56 -   4 gcc32-doc-gcov.patch
   90.57 -   4 gcc32-duplicate-decl.patch
   90.58 -   4 gcc32-dwarf2-pr6381.patch
   90.59 -   4 gcc32-dwarf2-pr6436-test.patch
   90.60 -   4 gcc32-fde-merge-compat.patch
   90.61 -   4 gcc32-fold-const-associate.patch
   90.62 -   4 gcc32-fold-const2.patch
   90.63 -  24 gcc32-hard-reg-sharing.patch
   90.64 -   4 gcc32-hard-reg-sharing2.patch
   90.65 -   4 gcc32-i386-default-momit-leaf-frame-pointer.patch
   90.66 -   4 gcc32-i386-memtest-test.patch
   90.67 -   4 gcc32-i386-no-default-momit-leaf-frame-pointer.patch
   90.68 -   4 gcc32-i386-pic-label-thunk.patch
   90.69 -   4 gcc32-i386-pr7242.patch
   90.70 -   4 gcc32-i386-profile-olfp.patch
   90.71 -   4 gcc32-inline-label.patch
   90.72 -   4 gcc32-interface_only.patch
   90.73 -   4 gcc32-java-no-rpath.patch
   90.74 -  20 gcc32-libstdc++-glibc23-1.patch
   90.75 -   4 gcc32-libstdc++-glibc23-2.patch
   90.76 -   4 gcc32-libstdc++-glibc23-3.patch
   90.77 -   4 gcc32-libstdc++-glibc23-4.patch
   90.78 -   4 gcc32-loop-prefetch.patch
   90.79 -   4 gcc32-pr6842.patch
   90.80 -   8 gcc32-rh69989.patch
   90.81 -  40 gcc32-s390-java.patch
   90.82 -   4 gcc32-sparc-sll1.patch
   90.83 -   4 gcc32-test-rh65771.patch
   90.84 -   8 gcc32-test-rotate.patch
   90.85 -  12 gcc32-tls-dwarf2.patch
   90.86 - 140 gcc32-tls.patch
   90.87 -   4 gcc32-tls2.patch
   90.88 -   4 gcc32-tls3.patch
   90.89 -   4 gcc32-tls4.patch
   90.90 -   4 gcc32-tls5.patch
   90.91 -  24 gcc32-tree-code.patch
   90.92 -   4 gcc32-trunc_int_for_mode.patch
   90.93 -   4 gcc32-typeof-asm.patch
   90.94 -   4 gcc32-x86_64-libiberty-pic.patch
   90.95 -   4 gcc32-x86_64-pr7559.patch
   90.96 -   4 gcc32-x86_64-q_regs_operand.patch
   90.97 -   4 gcc32-x86_64-rip-lowercase.patch
   90.98 -   4 libjava-cross.patch
   90.99 -   4 libtool-libs.patch
  90.100 -   4 libtool-mips.patch
  90.101 -
  90.102 ----------- gcc32.spec ---------
  90.103 -
  90.104 -%if %{_arch} != %{_build_arch}
  90.105 -%define cross_compile 1
  90.106 -%else
  90.107 -%define cross_compile 0
  90.108 -%endif
  90.109 -%{?_with_crosscompile: %{expand: %%define cross_compile 1}}
  90.110 -
  90.111 -%if %{cross_compile}
  90.112 -%define make_check 0
  90.113 -%else
  90.114 -%define make_check 1
  90.115 -%endif
  90.116 -%{?_without_check: %{expand: %%define make_check 0}}
  90.117 -%{?_with_check: %{expand: %%define make_check 1}}
  90.118 -
  90.119 -%define default 0
  90.120 -%{?_with_default: %{expand: %%define default 1}}
  90.121 -
  90.122 -%define gcconly 0
  90.123 -%{?_with_gcconly: %{expand: %%define gcconly 1}}
  90.124 -
  90.125 -%define DATE 20020903
  90.126 -%define gcc_version 3.2
  90.127 -%define gcc_release 7.1
  90.128 -%ifarch %{ix86} alpha ia64 ppc
  90.129 -%define build_ada 1
  90.130 -%else
  90.131 -%define build_ada 0
  90.132 -%endif
  90.133 -%{?_without_ada: %{expand: %%define build_ada 0}}
  90.134 -%if %{cross_compile}
  90.135 -%define build_ada 0
  90.136 -%endif
  90.137 -Summary: Various compilers (C, C++, Objective-C, Java, ...)
  90.138 -%if !%{gcconly}
  90.139 -Name: gcc
  90.140 -Version: 3.2
  90.141 -Release: %{gcc_release}
  90.142 -%else
  90.143 -Name: gcc-%{gcc_version}
  90.144 -Version: %{gcc_release}
  90.145 -Release: 1
  90.146 -%endif
  90.147 -Copyright: GPL
  90.148 -Group: Development/Languages
  90.149 -Source0: gcc-%{version}-%{DATE}.tar.bz2
  90.150 -URL: http://gcc.gnu.org
  90.151 -BuildRoot: %{_tmppath}/%{name}-%{version}-root
  90.152 -BuildRequires: binutils >= 2.12.90.0.9-1
  90.153 -BuildRequires: zlib-devel, gettext, dejagnu
  90.154 -# Make sure pthread.h doesn't contain __thread tokens
  90.155 -BuildRequires: glibc-devel >= 2.2.5-36.2
  90.156 -%if %{build_ada}
  90.157 -# Ada requires Ada to build
  90.158 -BuildRequires: gcc-gnat >= 3.1, libgnat >= 3.1
  90.159 -%endif
  90.160 -Requires: cpp = %{version}-%{release}
  90.161 -# Need .eh_frame ld optimizations
  90.162 -# Need proper visibility support
  90.163 -Requires: binutils >= 2.12.90.0.7-1
  90.164 -# Make sure gdb will understand DW_FORM_strp
  90.165 -Conflicts: gdb < 5.1-2
  90.166 -Requires: glibc-devel >= 2.2.5-36.2
  90.167 -Requires: libgcc >= %{version}-%{release}
  90.168 -%if !%{gcconly}
  90.169 -Obsoletes: gcc3
  90.170 -%endif
  90.171 -Prereq: /sbin/install-info
  90.172 -
  90.173 -Patch1: gcc32-2.96-RH-compat.patch
  90.174 -Patch2: gcc32-boehm-gc-libs.patch
  90.175 -Patch3: gcc32-bogus-inline.patch
  90.176 -Patch6: gcc32-fde-merge-compat.patch
  90.177 -Patch7: gcc32-attr-visibility.patch
  90.178 -Patch8: gcc32-attr-visibility2.patch
  90.179 -Patch9: gcc32-duplicate-decl.patch
  90.180 -Patch10: gcc32-trunc_int_for_mode.patch
  90.181 -Patch11: gcc32-sparc-sll1.patch
  90.182 -Patch12: gcc32-x86_64-q_regs_operand.patch
  90.183 -Patch13: gcc32-dwarf2-pr6381.patch
  90.184 -Patch14: gcc32-dwarf2-pr6436-test.patch
  90.185 -Patch15: gcc32-c++-pretty_function.patch
  90.186 -Patch16: gcc32-c++-tsubst-asm.patch
  90.187 -Patch18: gcc32-i386-memtest-test.patch
  90.188 -Patch19: gcc32-fold-const2.patch
  90.189 -Patch21: gcc32-ada-addr2line.patch
  90.190 -Patch22: gcc32-ada-link.patch
  90.191 -Patch23: gcc32-java-no-rpath.patch
  90.192 -Patch25: gcc32-s390-java.patch
  90.193 -Patch26: gcc32-test-rotate.patch
  90.194 -Patch27: gcc32-x86_64-libiberty-pic.patch
  90.195 -Patch29: gcc32-test-rh65771.patch
  90.196 -Patch30: gcc32-i386-default-momit-leaf-frame-pointer.patch
  90.197 -Patch31: gcc32-i386-pic-label-thunk.patch
  90.198 -Patch34: gcc32-pr6842.patch
  90.199 -Patch35: gcc32-tls.patch
  90.200 -Patch36: gcc32-i386-profile-olfp.patch
  90.201 -Patch37: gcc32-tree-code.patch
  90.202 -Patch38: gcc32-hard-reg-sharing.patch
  90.203 -Patch39: gcc32-hard-reg-sharing2.patch
  90.204 -Patch40: gcc32-c++-nrv-test.patch
  90.205 -Patch41: gcc32-debug-pr7241.patch
  90.206 -Patch42: gcc32-i386-pr7242.patch
  90.207 -Patch43: gcc32-cfg-eh.patch
  90.208 -Patch44: gcc32-attr-visibility3.patch
  90.209 -Patch45: gcc32-tls2.patch
  90.210 -Patch46: gcc32-fold-const-associate.patch
  90.211 -Patch47: gcc32-inline-label.patch
  90.212 -Patch48: gcc32-typeof-asm.patch
  90.213 -Patch50: gcc32-rh69989.patch
  90.214 -Patch51: gcc32-tls3.patch
  90.215 -Patch52: gcc32-tls4.patch
  90.216 -Patch54: gcc32-tls5.patch
  90.217 -Patch55: gcc32-tls-dwarf2.patch
  90.218 -Patch56: gcc32-x86_64-pr7559.patch
  90.219 -Patch57: gcc32-loop-prefetch.patch
  90.220 -Patch58: gcc32-doc-gcov.patch
  90.221 -Patch59: gcc32-attr-visibility4.patch
  90.222 -Patch60: gcc32-c++-tail-pad-backout.patch
  90.223 -Patch61: gcc32-attr-visibility5.patch
  90.224 -Patch62: gcc32-i386-no-default-momit-leaf-frame-pointer.patch
  90.225 -Patch64: gcc32-x86_64-rip-lowercase.patch
  90.226 -Patch65: gcc32-libstdc++-glibc23-1.patch
  90.227 -Patch66: gcc32-libstdc++-glibc23-2.patch
  90.228 -Patch67: gcc32-libstdc++-glibc23-3.patch
  90.229 -Patch68: gcc32-libstdc++-glibc23-4.patch
  90.230 -Patch69: gcc32-interface_only.patch
  90.231 -
  90.232 -%define _gnu %{nil}
  90.233 -
  90.234 -Patch10000: boehm-gc-mips.patch
  90.235 -Patch10001: boehm-gc-LINUX.patch
  90.236 -Patch10002: gcc-libffi-mips.patch
  90.237 -
  90.238 -Patch11000: gcc-mips-coff.patch
  90.239 -Patch11001: gcc-mips-file.patch
  90.240 -Patch11002: gcc-mips-ieee.patch
  90.241 -Patch11003: gcc-mips-return.patch
  90.242 -Patch11004: gcc-libstdc++-mips.patch
  90.243 -Patch11005: libtool-mips.patch
  90.244 -
  90.245 -Patch12000: gcc-libgcc.patch
  90.246 -
  90.247 -Patch13000: gcc-ppc-linux.patch
  90.248 -Patch13001: gcc-linux-crt.patch
  90.249 -
  90.250 -Patch14000: gcc-linux-atexit.patch
  90.251 -Patch14001: gcc-test-atexit.patch
  90.252 -
  90.253 -Patch15000: gcc-var.patch
  90.254 -Patch15001: gcc-copy.patch
  90.255 -
  90.256 -Patch16000: gcc-c++-template.patch
  90.257 -Patch16001: gcc-testsuite-c++.patch
  90.258 -
  90.259 -Patch17000: gcc-cross.patch
  90.260 -Patch17001: gcc-cross-bfd.patch
  90.261 -Patch17002: gcc-sizeof.patch
  90.262 -Patch17003: gcc-arch.patch
  90.263 -
  90.264 -Patch18000: libjava-cross.patch
  90.265 -Patch18001: gcc-gcj-cross.patch
  90.266 -
  90.267 -Patch19000: contrib-touch.patch
  90.268 -
  90.269 -Patch20000: libtool-libs.patch
  90.270 -
  90.271 -Patch21000: gcc-libstdc++-glibc-2.2.patch
  90.272 -
  90.273 -%description
  90.274 -The gcc package contains the GNU Compiler Collection version 3.2.
  90.275 -You'll need this package in order to compile C code.
  90.276 -
  90.277 -%package -n libgcc
  90.278 -Summary: GCC version 3.2 shared support library
  90.279 -Group: System Environment/Libraries
  90.280 -
  90.281 -%description -n libgcc
  90.282 -This package contains GCC shared support library which is needed
  90.283 -e.g. for exception handling support.
  90.284 -
  90.285 -%package c++
  90.286 -Summary: C++ support for GCC
  90.287 -Group: Development/Languages
  90.288 -Requires: gcc = %{version}-%{release}
  90.289 -Requires: libstdc++ = %{version}
  90.290 -Requires: libstdc++-devel = %{version}
  90.291 -Obsoletes: gcc3-c++
  90.292 -
  90.293 -%description c++
  90.294 -This package adds C++ support to the GNU Compiler Collection.
  90.295 -It includes support for most of the current C++ specification,
  90.296 -including templates and exception handling.
  90.297 -
  90.298 -%package -n libstdc++
  90.299 -Summary: GNU Standard C++ Library
  90.300 -Group: System Environment/Libraries
  90.301 -Obsoletes: libstdc++3
  90.302 -
  90.303 -%description -n libstdc++
  90.304 -The libstdc++ package contains a rewritten standard compliant GCC Standard
  90.305 -C++ Library.
  90.306 -
  90.307 -%package -n libstdc++-devel
  90.308 -Summary: Header files and libraries for C++ development
  90.309 -Group: Development/Libraries
  90.310 -Requires: libstdc++ = %{version}-%{release}
  90.311 -Obsoletes: libstdc++3-devel
  90.312 -
  90.313 -%description -n libstdc++-devel
  90.314 -This is the GNU implementation of the standard C++ libraries.  This
  90.315 -package includes the header files and libraries needed for C++
  90.316 -development. This includes rewritten implementation of STL.
  90.317 -
  90.318 -%package objc
  90.319 -Summary: Objective-C support for GCC
  90.320 -Group: Development/Languages
  90.321 -Requires: gcc = %{version}-%{release}
  90.322 -Requires: libobjc = %{version}-%{release}
  90.323 -Obsoletes: gcc3-objc
  90.324 -
  90.325 -%description objc
  90.326 -gcc-objc provides Objective-C support for the GCC.
  90.327 -Mainly used on systems running NeXTSTEP, Objective-C is an
  90.328 -object-oriented derivative of the C language.
  90.329 -
  90.330 -%package -n libobjc
  90.331 -Summary: Objective-C runtime
  90.332 -Group: System Environment/Libraries
  90.333 -
  90.334 -%description -n libobjc
  90.335 -This package contains Objective-C shared library which is needed to run
  90.336 -Objective-C dynamically linked programs.
  90.337 -
  90.338 -%package g77
  90.339 -Summary: Fortran 77 support
  90.340 -Group: Development/Languages
  90.341 -Requires: gcc = %{version}-%{release}
  90.342 -Requires: libf2c = %{version}-%{release}
  90.343 -Prereq: /sbin/install-info
  90.344 -Obsoletes: gcc3-g77
  90.345 -
  90.346 -%description g77
  90.347 -The gcc-g77 package provides support for compiling Fortran 77
  90.348 -programs with the GNU Compiler Collection.
  90.349 -
  90.350 -%package -n libf2c
  90.351 -Summary: Fortran 77 runtime
  90.352 -Group: System Environment/Libraries
  90.353 -
  90.354 -%description -n libf2c
  90.355 -This package contains Fortran 77 shared library which is needed to run
  90.356 -Fortran 77 dynamically linked programs.
  90.357 -
  90.358 -%package java
  90.359 -Summary: Java support for GCC
  90.360 -Group: Development/Languages
  90.361 -Requires: gcc = %{version}-%{release}
  90.362 -Requires: libgcj >= %{version}, libgcj-devel >= %{version}
  90.363 -Obsoletes: gcc3-java
  90.364 -Prereq: /sbin/install-info
  90.365 -
  90.366 -%description java
  90.367 -This package adds support for compiling Java(tm) programs and
  90.368 -bytecode into native code.
  90.369 -
  90.370 -%package -n libgcj
  90.371 -Summary: Java runtime library for gcc
  90.372 -Group: System Environment/Libraries
  90.373 -Requires: zip >= 2.1
  90.374 -Obsoletes: gcc-libgcj
  90.375 -Obsoletes: libgcj3
  90.376 -# Kaffe includes jar too
  90.377 -Conflicts: kaffe
  90.378 -
  90.379 -%description -n libgcj
  90.380 -The Java(tm) runtime library. You will need this package to run your Java
  90.381 -programs compiled using the Java compiler from GNU Compiler Collection (gcj).
  90.382 -
  90.383 -%package -n libgcj-devel
  90.384 -Summary: Libraries for Java development using GCC
  90.385 -Group: Development/Languages
  90.386 -Requires: zip >= 2.1, libgcj = %{version}
  90.387 -Obsoletes: libgcj3-devel
  90.388 -
  90.389 -%description -n libgcj-devel
  90.390 -The Java(tm) static libraries and C header files. You will need this
  90.391 -package to compile your Java programs using the GCC Java compiler (gcj).
  90.392 -
  90.393 -%package -n cpp
  90.394 -Summary: The C Preprocessor.
  90.395 -Group: Development/Languages
  90.396 -Prereq: /sbin/install-info
  90.397 -%ifarch ia64
  90.398 -Obsoletes: gnupro
  90.399 -%endif
  90.400 -
  90.401 -%description -n cpp
  90.402 -Cpp is the GNU C-Compatible Compiler Preprocessor.
  90.403 -Cpp is a macro processor which is used automatically
  90.404 -by the C compiler to transform your program before actual
  90.405 -compilation. It is called a macro processor because it allows
  90.406 -you to define macros, abbreviations for longer
  90.407 -constructs.
  90.408 -
  90.409 -The C preprocessor provides four separate functionalities: the
  90.410 -inclusion of header files (files of declarations that can be
  90.411 -substituted into your program); macro expansion (you can define macros,
  90.412 -and the C preprocessor will replace the macros with their definitions
  90.413 -throughout the program); conditional compilation (using special
  90.414 -preprocessing directives, you can include or exclude parts of the
  90.415 -program according to various conditions); and line control (if you use
  90.416 -a program to combine or rearrange source files into an intermediate
  90.417 -file which is then compiled, you can use line control to inform the
  90.418 -compiler about where each source line originated).
  90.419 -
  90.420 -You should install this package if you are a C programmer and you use
  90.421 -macros.
  90.422 -
  90.423 -%package gnat
  90.424 -Summary: Ada 95 support for GCC
  90.425 -Group: Development/Languages
  90.426 -Requires: gcc = %{version}-%{release}, libgnat = %{version}-%{release}
  90.427 -Obsoletes: gnat-devel, gcc3-gnat
  90.428 -Prereq: /sbin/install-info
  90.429 -
  90.430 -%description gnat
  90.431 -GNAT is a GNU Ada 95 front-end to GCC. This package includes development tools,
  90.432 -the documents and Ada 95 compiler.
  90.433 -
  90.434 -%package -n libgnat
  90.435 -Summary: GNU Ada 95 runtime shared libraries
  90.436 -Group: System Environment/Libraries
  90.437 -Obsoletes: gnat libgnat3
  90.438 -
  90.439 -%description -n libgnat
  90.440 -GNAT is a GNU Ada 95 front-end to GCC. This package includes shared libraries,
  90.441 -which are required to run programs compiled with the GNAT.
  90.442 -
  90.443 -%prep
  90.444 -%setup -q -n gcc-%{version}-%{DATE}
  90.445 -%patch1 -p0 -b .2.96-RH-compat~
  90.446 -%patch2 -p0 -b .boehm-gc-libs~
  90.447 -%patch3 -p0 -b .bogus-inline~
  90.448 -%patch6 -p0 -b .fde-merge-compat~
  90.449 -%patch7 -p0 -b .attr-visibility~
  90.450 -%patch8 -p0 -b .attr-visibility2~
  90.451 -%patch9 -p0 -b .duplicate-decl~
  90.452 -%patch10 -p0 -b .trunc_int_for_mode~
  90.453 -%patch11 -p0 -b .sparc-sll1~
  90.454 -%patch12 -p0 -b .x86_64-q_regs_operand~
  90.455 -%patch13 -p0 -b .dwarf2-pr6381~
  90.456 -%patch14 -p0 -b .dwarf2-pr6436-test~
  90.457 -%patch15 -p0 -b .c++-pretty_function~
  90.458 -%patch16 -p0 -b .c++-tsubst-asm~
  90.459 -%patch18 -p0 -b .i386-memtest-test~
  90.460 -%patch19 -p0 -b .fold-const2~
  90.461 -%patch21 -p0 -b .ada-addr2line~
  90.462 -%patch22 -p0 -b .ada-link~
  90.463 -%patch23 -p0 -b .java-no-rpath~
  90.464 -%patch25 -p0 -b .s390-java~
  90.465 -%patch26 -p0 -b .test-rotate~
  90.466 -%patch27 -p0 -b .x86_64-libiberty-pic~
  90.467 -%patch29 -p0 -b .test-rh65771~
  90.468 -%patch30 -p0 -b .i386-default-momit-leaf-frame-pointer~
  90.469 -%patch31 -p0 -b .i386-pic-label-thunk~
  90.470 -%patch34 -p0 -b .pr6842~
  90.471 -%patch35 -p0 -b .tls~
  90.472 -%patch36 -p0 -b .i386-profile-olfp~
  90.473 -%patch37 -p0 -b .tree-code~
  90.474 -%patch38 -p0 -b .hard-reg-sharing~
  90.475 -%patch39 -p0 -b .hard-reg-sharing2~
  90.476 -%patch40 -p0 -b .c++-nrv-test~
  90.477 -%patch41 -p0 -b .debug-pr7241~
  90.478 -%patch42 -p0 -b .i386-pr7242~
  90.479 -%patch43 -p0 -b .cfg-eh~
  90.480 -%patch44 -p0 -b .attr-visibility3~
  90.481 -%patch45 -p0 -b .tls2~
  90.482 -%patch46 -p0 -b .fold-const-associate~
  90.483 -%patch47 -p0 -b .inline-label~
  90.484 -%patch48 -p0 -b .typeof-asm~
  90.485 -%patch50 -p0 -b .rh69989~
  90.486 -%patch51 -p0 -b .tls3~
  90.487 -%patch52 -p0 -b .tls4~
  90.488 -%patch54 -p0 -b .tls5~
  90.489 -%patch55 -p0 -b .tls-dwarf2~
  90.490 -%patch56 -p0 -b .x86_64-pr7559~
  90.491 -%patch57 -p0 -b .loop-prefetch~
  90.492 -%patch58 -p0 -b .doc-gcov~
  90.493 -%patch59 -p0 -b .attr-visibility4~
  90.494 -%patch60 -p0 -b .c++-tail-pad-backout~
  90.495 -%patch61 -p0 -b .attr-visibility5~
  90.496 -%patch62 -p0 -b .i386-no-default-momit-leaf-frame-pointer~
  90.497 -%patch64 -p0 -b .x86_64-rip-lowercase~
  90.498 -%patch65 -p0 -b .libstdc++-glibc23-1~
  90.499 -%patch66 -p0 -b .libstdc++-glibc23-2~
  90.500 -%patch67 -p0 -b .libstdc++-glibc23-3~
  90.501 -%patch68 -p0 -b .libstdc++-glibc23-4~
  90.502 -%patch69 -p0 -b .interface_only
  90.503 -
  90.504 -%patch10000 -p0 -b .mips
  90.505 -%patch10001 -p0 -b .LINUX
  90.506 -%patch10002 -p0 -b .mips
  90.507 -pushd boehm-gc
  90.508 -autoconf
  90.509 -popd
  90.510 -pushd libffi
  90.511 -autoconf
  90.512 -# Ignore the error from automake
  90.513 -automake --cygnus Makefile || :
  90.514 -popd
  90.515 -
  90.516 -%patch11000 -p0 -b .coff
  90.517 -%patch11001 -p0 -b .file
  90.518 -%patch11002 -p0 -b .ieee
  90.519 -%patch11003 -p0 -b .return
  90.520 -%patch11004 -p0 -b .mips
  90.521 -%patch11005 -p1 -b .mips
  90.522 -
  90.523 -%patch12000 -p0 -b .libgcc
  90.524 -
  90.525 -%patch13000 -p0 -b .ppc
  90.526 -%patch13001 -p0 -b .crt
  90.527 -
  90.528 -%patch14000 -p0 -b .order
  90.529 -%patch14001 -p0 -b .order
  90.530 -
  90.531 -%patch15000 -p0 -b .var
  90.532 -%patch15001 -p0 -b .copy
  90.533 -
  90.534 -%patch16000 -p0 -b .template
  90.535 -%patch16001 -p0 -b .template
  90.536 -
  90.537 -%patch17000 -p1 -b .cross
  90.538 -%patch17001 -p0 -b .cross-bfd
  90.539 -%patch17002 -p1 -b .sizeof
  90.540 -%patch17003 -p0 -b .arch
  90.541 -pushd gcc
  90.542 -autoheader
  90.543 -autoconf
  90.544 -popd
  90.545 -pushd fastjar
  90.546 -aclocal
  90.547 -autoconf
  90.548 -popd
  90.549 -pushd libffi
  90.550 -aclocal
  90.551 -autoconf
  90.552 -popd
  90.553 -
  90.554 -%patch18000 -p0 -b .cross
  90.555 -%patch18001 -p0 -b .build
  90.556 -pushd libjava
  90.557 -autoconf
  90.558 -automake --foreign Makefile
  90.559 -popd
  90.560 -
  90.561 -%patch19000 -p0 -b .touch
  90.562 -
  90.563 -%patch20000 -p0 -b .libs
  90.564 -
  90.565 -%patch21000 -p0 -b .glibc-2.2
  90.566 -pushd libstdc++-v3
  90.567 -autoconf
  90.568 -popd
  90.569 -
  90.570 -perl -pi -e 's/3\.2\.1/3.2/' gcc/version.c gcc/f/version.c gcc/ada/gnatvsn.ads
  90.571 -perl -pi -e 's/"%{gcc_version}"/"%{gcc_version} \(release\)"/' gcc/version.c
  90.572 -perl -pi -e 's/\((prerelease|experimental|release)\)/\(Red Hat Linux 8.0 %{version}-%{gcc_release}\)/' gcc/version.c gcc/f/version.c
  90.573 -perl -pi -e 's/\((prerelease|experimental|release)\)/\(%{version}-%{gcc_release}\)/' gcc/ada/gnatvsn.ads
  90.574 -perl -pi -e 's/#define GCCBUGURL.*$/#define GCCBUGURL "<URL:http:\/\/bugzilla.redhat.com\/bugzilla\/>"/' gcc/system.h
  90.575 -# The version string is now longer than 32 bytes and the line containing it
  90.576 -# doesn't fit into 80 columns
  90.577 -#perl -pi -e 's/:= 32/:= 64/;s/(Gnat_Version_String.*:=)/\1\n    /' gcc/ada/gnatvsn.ads
  90.578 -
  90.579 -./contrib/gcc_update --touch
  90.580 -
  90.581 -%build
  90.582 -rm -fr obj-%{_target_platform}
  90.583 -mkdir obj-%{_target_platform}
  90.584 -cd obj-%{_target_platform}
  90.585 -
  90.586 -%if %{_arch} != %{_build_arch}
  90.587 -%ifos linux
  90.588 -export ac_cv_func_mmap_anywhere=yes
  90.589 -export ac_cv_func_mmap_file=yes
  90.590 -export ac_cv_func_mmap_fixed_mapped=yes
  90.591 -export ac_cv_func_strncmp_works=yes
  90.592 -export gcc_cv_func_printf_ptr=yes
  90.593 -%endif
  90.594 -%endif
  90.595 -
  90.596 -DEFAULT_FLAGS=
  90.597 -%if %{default}
  90.598 -%ifarch %{ix86}
  90.599 -TARGET_CPU="%{_target_cpu}"
  90.600 -DEFAULT_FLAGS="--with-arch=$TARGET_CPU --with-cpu=$TARGET_CPU"
  90.601 -%endif
  90.602 -%endif
  90.603 -
  90.604 -CC=%{__cc}
  90.605 -OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g'`
  90.606 -CC="$CC" CFLAGS="$OPT_FLAGS" CXXFLAGS="$OPT_FLAGS" XCFLAGS="$OPT_FLAGS" TCFLAGS="$OPT_FLAGS" \
  90.607 -	../configure --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
  90.608 -	--enable-shared --enable-threads=posix --disable-checking --host=%{_target_platform} \
  90.609 -	$DEFAULT_FLAGS \
  90.610 -%if %{cross_compile}
  90.611 -	--target=%{_target_platform} --build=%{_build_alias} \
  90.612 -%endif
  90.613 -	--with-system-zlib --enable-__cxa_atexit
  90.614 -
  90.615 -# We have to make sure all gcc configure files are up to date for
  90.616 -# parallel build. We have to do it twice due to the stupid Makefile.
  90.617 -make -C gcc cstamp-h
  90.618 -make -C gcc cstamp-h
  90.619 -
  90.620 -# if RPM_BUILD_NCPUS unset, set it
  90.621 -if [ -z "$RPM_BUILD_NCPUS" ] ; then
  90.622 -  if [ -x /usr/bin/getconf ] ; then
  90.623 -    RPM_BUILD_NCPUS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
  90.624 -    if [ $RPM_BUILD_NCPUS -eq 0 ]; then
  90.625 -      RPM_BUILD_NCPUS=1
  90.626 -    fi
  90.627 -  else
  90.628 -    RPM_BUILD_NCPUS=1
  90.629 -  fi
  90.630 -fi
  90.631 -
  90.632 -RPM_BUILD_NCPUS=`expr $RPM_BUILD_NCPUS + $RPM_BUILD_NCPUS`
  90.633 -
  90.634 -cat <<EOF > makefile
  90.635 -MAKE=make -j $RPM_BUILD_NCPUS
  90.636 -include Makefile
  90.637 -CFLAGS:=\$(CFLAGS) -pipe
  90.638 -CXXFLAGS:=\$(CXXFLAGS) -pipe
  90.639 -EOF
  90.640 -
  90.641 -# FIXME: It is a kludge.
  90.642 -export GCJFLAGS="$OPT_FLAGS"
  90.643 -
  90.644 -%if %{cross_compile}
  90.645 -make -j$RPM_BUILD_NCPUS \
  90.646 -	CC=%{__cc} \
  90.647 -	CXX=%{__cxx} \
  90.648 -	AR=%{__ar} \
  90.649 -	AS=%{__as} \
  90.650 -	LD=%{__ld} \
  90.651 -	NM=%{__nm} \
  90.652 -	RANLIB=%{__ranlib} \
  90.653 -	CC_FOR_TARGET=%{__cc} \
  90.654 -	GCC_FOR_TARGET=%{__cc} \
  90.655 -	CXX_FOR_TARGET=%{__cxx} \
  90.656 -	AR_FOR_TARGET=%{__ar} \
  90.657 -	AS_FOR_TARGET=%{__as} \
  90.658 -	LD_FOR_TARGET=%{__ld} \
  90.659 -	NM_FOR_TARGET=%{__nm} \
  90.660 -	RANLIB_FOR_TARGET=%{__ranlib} \
  90.661 -	HOST_CC=cc \
  90.662 -	CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS -pipe" \
  90.663 -	CFLAGS_FOR_BUILD="-O -pipe" \
  90.664 -	CFLAGS="$RPM_OPT_FLAGS -pipe" \
  90.665 -	CXXFLAGS="$RPM_OPT_FLAGS -pipe"
  90.666 -%else
  90.667 -make -j$RPM_BUILD_NCPUS bootstrap-lean
  90.668 -#make -j$RPM_BUILD_NCPUS bootstrap
  90.669 -%endif
  90.670 -
  90.671 -%if %{build_ada}
  90.672 -# This doesn't work with -j$RPM_BUILD_NCPUS
  90.673 -make -C gcc gnatlib-shared
  90.674 -make -C gcc gnattools
  90.675 -make -C gcc/ada doc
  90.676 -%endif
  90.677 -
  90.678 -%if %{make_check}
  90.679 -# run the tests.
  90.680 -make -j$RPM_BUILD_NCPUS -k check || :
  90.681 -%ifarch %{ix86}
  90.682 -ln -sf i686-pc-linux-gnu ../libstdc++-v3/config/abi/%{_target_platform}
  90.683 -ln -sf i686-pc-linux-gnu ../libstdc++-v3/config/abi/%{_target_platform}-gnu
  90.684 -%endif
  90.685 -echo ====================TESTING=========================
  90.686 -( ../contrib/test_summary || : ) 2>&1 | sed -n '/^cat.*EOF/,/^EOF/{/^cat.*EOF/d;/^EOF/d;/^LAST_UPDATED:/d;p;}'
  90.687 -%ifarch %{ix86}
  90.688 -make -C %{_target_platform}/libstdc++-v3 check-abi
  90.689 -%endif
  90.690 -echo ====================TESTING END=====================
  90.691 -#cd %{_target_platform}/libstdc++-v3
  90.692 -#./mkcheck 0
  90.693 -#cd ../..
  90.694 -%endif
  90.695 -
  90.696 -%if !%{cross_compile}
  90.697 -# Make protoize
  90.698 -make -C gcc CC="./xgcc -B ./ -O2" proto
  90.699 -%endif
  90.700 -
  90.701 -# Make generated man pages even if Pod::Man is not new enough
  90.702 -perl -pi -e 's/head3/head2/' ../contrib/texi2pod.pl
  90.703 -for i in ../gcc/doc/*.texi; do
  90.704 -  cp -a $i $i.orig; sed 's/ftable/table/' $i.orig > $i
  90.705 -done
  90.706 -make -C gcc generated-manpages
  90.707 -for i in ../gcc/doc/*.texi; do mv -f $i.orig $i; done
  90.708 -
  90.709 -# Copy various doc files here and there
  90.710 -cd ..
  90.711 -mkdir -p rpm.doc/g77 rpm.doc/objc
  90.712 -mkdir -p rpm.doc/boehm-gc rpm.doc/fastjar rpm.doc/libffi rpm.doc/libjava
  90.713 -
  90.714 -(cd gcc/f; for i in ChangeLog*; do
  90.715 -	cp -p $i ../../rpm.doc/g77/$i.f
  90.716 -done)
  90.717 -(cd libf2c; for i in ChangeLog*; do
  90.718 -	cp -p $i ../rpm.doc/g77/$i.libf2c
  90.719 -done)
  90.720 -(cd gcc/objc; for i in README*; do
  90.721 -	cp -p $i ../../rpm.doc/objc/$i.objc
  90.722 -done)
  90.723 -(cd libobjc; for i in README*; do
  90.724 -	cp -p $i ../rpm.doc/objc/$i.libobjc
  90.725 -done)
  90.726 -(cd boehm-gc; for i in ChangeLog*; do
  90.727 -	cp -p $i ../rpm.doc/boehm-gc/$i.gc
  90.728 -done)
  90.729 -(cd fastjar; for i in ChangeLog* README*; do
  90.730 -	cp -p $i ../rpm.doc/fastjar/$i.fastjar
  90.731 -done)
  90.732 -(cd libffi; for i in ChangeLog* README* LICENSE; do
  90.733 -	cp -p $i ../rpm.doc/libffi/$i.libffi
  90.734 -done)
  90.735 -(cd libjava; for i in ChangeLog* README*; do
  90.736 -	cp -p $i ../rpm.doc/libjava/$i.libjava
  90.737 -done)
  90.738 -
  90.739 -%install
  90.740 -rm -fr $RPM_BUILD_ROOT
  90.741 -
  90.742 -perl -pi -e \
  90.743 -  's~href="l(ibstdc|atest)~href="http://gcc.gnu.org/onlinedocs/libstdc++/l\1~' \
  90.744 -  libstdc++-v3/docs/html/documentation.html
  90.745 -ln -sf documentation.html libstdc++-v3/docs/html/index.html
  90.746 -find libstdc++-v3/docs/html -name CVS | xargs rm -rf
  90.747 -
  90.748 -cd obj-%{_target_platform}
  90.749 -TARGET_PLATFORM=%{_target_platform}
  90.750 -
  90.751 -# There are some MP bugs in libstdc++ and libjava Makefiles
  90.752 -make -C %{_target_platform}/libstdc++-v3
  90.753 -make -C %{_target_platform}/libjava
  90.754 -
  90.755 -make prefix=$RPM_BUILD_ROOT%{_prefix} mandir=$RPM_BUILD_ROOT%{_mandir} \
  90.756 -%if %{cross_compile}
  90.757 -	CC=%{__cc} \
  90.758 -	CXX=%{__cxx} \
  90.759 -	AR=%{__ar} \
  90.760 -	AS=%{__as} \
  90.761 -	LD=%{__ld} \
  90.762 -	NM=%{__nm} \
  90.763 -	RANLIB=%{__ranlib} \
  90.764 -	CC_FOR_TARGET=%{__cc} \
  90.765 -	GCC_FOR_TARGET=%{__cc} \
  90.766 -	CXX_FOR_TARGET=%{__cxx} \
  90.767 -	AR_FOR_TARGET=%{__ar} \
  90.768 -	AS_FOR_TARGET=%{__as} \
  90.769 -	LD_FOR_TARGET=%{__ld} \
  90.770 -	NM_FOR_TARGET=%{__nm} \
  90.771 -	RANLIB_FOR_TARGET=%{__ranlib} \
  90.772 -	HOST_CC=cc \
  90.773 -	CFLAGS_FOR_TARGET="$RPM_OPT_FLAGS -pipe" \
  90.774 -	CFLAGS_FOR_BUILD="-O -pipe" \
  90.775 -	CFLAGS="$RPM_OPT_FLAGS -pipe" \
  90.776 -	CXXFLAGS="$RPM_OPT_FLAGS -pipe" \
  90.777 -%endif
  90.778 -  infodir=$RPM_BUILD_ROOT%{_infodir} install
  90.779 -%if %{build_ada}
  90.780 -pushd gcc/ada
  90.781 -cp -a gnat-style.info* gnat_rm.info* $RPM_BUILD_ROOT%{_infodir}/
  90.782 -for i in gnat_ug_unx.info*; do
  90.783 -  sed 's/gnat_ug_unx/gnat_ug/g' $i > $RPM_BUILD_ROOT%{_infodir}/`echo $i | sed 's/gnat_ug_unx/gnat_ug/'`
  90.784 -done
  90.785 -chmod 644 $RPM_BUILD_ROOT%{_infodir}/gnat*
  90.786 -popd
  90.787 -%endif
  90.788 -
  90.789 -FULLPATH=$(dirname $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/cc1)
  90.790 -
  90.791 -file $RPM_BUILD_ROOT/%{_prefix}/bin/* | grep ELF | cut -d':' -f1 | xargs %{__strip} || :
  90.792 -%{__strip} $FULLPATH/{cc1,cc1obj,cc1plus,cpp0,tradcpp0,f771,jc1,jvgenmain}
  90.793 -
  90.794 -# fix some things
  90.795 -ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/cc
  90.796 -mkdir -p $RPM_BUILD_ROOT/lib
  90.797 -ln -sf ..%{_prefix}/bin/cpp $RPM_BUILD_ROOT/lib/cpp
  90.798 -ln -sf g77 $RPM_BUILD_ROOT%{_prefix}/bin/f77
  90.799 -rm -f $RPM_BUILD_ROOT%{_infodir}/dir
  90.800 -gzip -9 $RPM_BUILD_ROOT%{_infodir}/*.info*
  90.801 -ln -sf gcc $RPM_BUILD_ROOT%{_prefix}/bin/gnatgcc
  90.802 -
  90.803 -mv $RPM_BUILD_ROOT%{_prefix}/lib/libgcj.*a $FULLPATH/
  90.804 -sed 's/-lgcjgc//g;s/-lzgcj//g;s/-lpthread//g' $RPM_BUILD_ROOT%{_prefix}/lib/libgcj.spec > $FULLPATH/libgcj.spec
  90.805 -mv $RPM_BUILD_ROOT%{_prefix}/include/gc*.h $FULLPATH/include/
  90.806 -mv $RPM_BUILD_ROOT%{_prefix}/include/j*.h $FULLPATH/include/
  90.807 -mv -f $RPM_BUILD_ROOT%{_prefix}/include/{java,javax,gnu,org} $FULLPATH/include/
  90.808 -mkdir -p $FULLPATH/include/gcj
  90.809 -mv -f $RPM_BUILD_ROOT%{_prefix}/include/gcj/* $FULLPATH/include/gcj/
  90.810 -rmdir $RPM_BUILD_ROOT%{_prefix}/include/gcj
  90.811 -
  90.812 -mkdir -p $RPM_BUILD_ROOT/%{_lib}
  90.813 -mv -f `find $RPM_BUILD_ROOT%{_prefix}/lib -name libgcc_s.so.1` $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
  90.814 -chmod 755 $RPM_BUILD_ROOT/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
  90.815 -ln -sf libgcc_s-%{gcc_version}-%{DATE}.so.1 $RPM_BUILD_ROOT/%{_lib}/libgcc_s.so.1
  90.816 -ln -sf ../../%{_lib}/libgcc_s.so.1 $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s.so
  90.817 -#ln -sf `echo "%{_prefix}" | sed 's~/[^/]*~\.\./~g'`../%{_lib}/libgcc_s.so.1 \
  90.818 -#  $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libgcc_s.so
  90.819 -#mv -f $FULLPATH/libobjc.so.1* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
  90.820 -%if %{build_ada}
  90.821 -mv -f $FULLPATH/adalib/libgnarl-*.so.* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
  90.822 -mv -f $FULLPATH/adalib/libgnat-*.so.* $RPM_BUILD_ROOT%{_prefix}/%{_lib}/
  90.823 -rm -f $FULLPATH/adalib/libgnarl.so* $FULLPATH/adalib/libgnat.so*
  90.824 -%endif
  90.825 -pushd $FULLPATH
  90.826 -if [ "%{_lib}" = "lib" ]; then
  90.827 -ln -sf ../../../libobjc.so.1 libobjc.so
  90.828 -ln -sf ../../../libstdc++.so.5.* libstdc++.so
  90.829 -ln -sf ../../../libgcj.so.3.* libgcj.so
  90.830 -ln -sf ../../../libg2c.so.0.* libg2c.so
  90.831 -%if %{build_ada}
  90.832 -cd adalib
  90.833 -ln -sf ../../../../libgnarl-*.so.* libgnarl.so
  90.834 -ln -sf ../../../../libgnat-*.so.* libgnat.so
  90.835 -cd ..
  90.836 -%endif
  90.837 -else
  90.838 -ln -sf ../../../../%{_lib}/libobjc.so.1 libobjc.so
  90.839 -ln -sf ../../../../%{_lib}/libstdc++.so.5.* libstdc++.so
  90.840 -ln -sf ../../../../%{_lib}/libgcj.so.3.* libgcj.so
  90.841 -ln -sf ../../../../%{_lib}/libg2c.so.0.* libg2c.so
  90.842 -%if %{build_ada}
  90.843 -cd adalib
  90.844 -ln -sf ../../../../../%{_lib}/libgnarl-*.so.* libgnarl.so
  90.845 -ln -sf ../../../../../%{_lib}/libgnat-*.so.* libgnat.so
  90.846 -cd ..
  90.847 -%endif
  90.848 -fi
  90.849 -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libstdc++.*a .
  90.850 -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libsupc++.*a .
  90.851 -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libg2c.*a .
  90.852 -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libfrtbegin.*a .
  90.853 -mv -f $RPM_BUILD_ROOT%{_prefix}/lib/libobjc.*a .
  90.854 -# Strip debug info from Fortran/ObjC/Java static libraries
  90.855 -%{__strip} -g libg2c.a libobjc.a libgcj.a
  90.856 -# Fix up .la files
  90.857 -for i in *.la; do
  90.858 -  sed -e '/^libdir/s_%{_prefix}/lib_%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}_' \
  90.859 -      -e '/^dependency_libs/s_%{_prefix}/lib_%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}_' \
  90.860 -      -e '/^dependency_libs/s~'\''$~ '\''~' \
  90.861 -      -e '/^dependency_libs/s~[ 	][ 	]*~ ~g' \
  90.862 -      -e '/^dependency_libs/s~-L[^ ]* ~~g' \
  90.863 -      -e '/^dependency_libs/s~-lgcc_s -lgcc -lc -lgcc_s -lgcc ~~g' \
  90.864 -      -e '/^dependency_libs/s~-lgcc -lc -lgcc ~~g' \
  90.865 -      -e '/^dependency_libs/s~-lc ~~g' \
  90.866 -      -e '/^dependency_libs/s~-lm \(-lm \)*~-lm ~g' \
  90.867 -      $i > $i.tmp
  90.868 -  mv -f $i.tmp $i
  90.869 -done
  90.870 -popd
  90.871 -chmod 755 $RPM_BUILD_ROOT%{_prefix}/lib/libg2c.so.0.*
  90.872 -chmod 755 $RPM_BUILD_ROOT%{_prefix}/lib/libobjc.so.1.*
  90.873 -%if %{build_ada}
  90.874 -chmod 755 $RPM_BUILD_ROOT%{_prefix}/lib/libgnarl*so*
  90.875 -chmod 755 $RPM_BUILD_ROOT%{_prefix}/lib/libgnat*so*
  90.876 -%endif
  90.877 -
  90.878 -cat > $RPM_BUILD_ROOT%{_prefix}/bin/c89 <<"EOF"
  90.879 -#!/bin/sh
  90.880 -fl="-std=c89"
  90.881 -for opt; do
  90.882 -  case "$opt" in
  90.883 -    -ansi|-std=c89|-std=iso9899:1990) fl="";;
  90.884 -    -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
  90.885 -	    exit 1;;
  90.886 -  esac
  90.887 -done
  90.888 -exec %{_prefix}/bin/gcc $fl ${1+"$@"}
  90.889 -EOF
  90.890 -cat > $RPM_BUILD_ROOT%{_prefix}/bin/c99 <<"EOF"
  90.891 -#!/bin/sh
  90.892 -fl="-std=c99"
  90.893 -for opt; do
  90.894 -  case "$opt" in
  90.895 -    -std=c99|-std=iso9899:1999) fl="";;
  90.896 -    -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
  90.897 -	    exit 1;;
  90.898 -  esac
  90.899 -done
  90.900 -exec %{_prefix}/bin/gcc $fl ${1+"$@"}
  90.901 -EOF
  90.902 -chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9
  90.903 -
  90.904 -cd ..
  90.905 -%find_lang %{name}
  90.906 -
  90.907 -%if %{cross_compile}
  90.908 -# Install syslimits.h for canadian cross compile.
  90.909 -pushd $RPM_BUILD_DIR/gcc-%{gcc_version}-%{DATE}/obj-%{_target_platform}
  90.910 -cp -af ../gcc/gsyslimits.h $FULLPATH/include/syslimits.h
  90.911 -# Fix the specs file.
  90.912 -cat gcc/specs |
  90.913 -awk '
  90.914 -BEGIN {
  90.915 -  cross=0;
  90.916 -}
  90.917 -/cross_compile/ { print; cross = 1; next; }
  90.918 -/^1$/ {
  90.919 -  if (cross == 0) {
  90.920 -    print;
  90.921 -  }
  90.922 -  else {
  90.923 -    cross = 0;
  90.924 -    print "0";
  90.925 -  }
  90.926 -  next;
  90.927 -}
  90.928 -{ print; }
  90.929 -' > $FULLPATH/specs
  90.930 -popd
  90.931 -%endif
  90.932 -
  90.933 -%clean
  90.934 -rm -rf $RPM_BUILD_ROOT
  90.935 -
  90.936 -%post
  90.937 -/sbin/install-info \
  90.938 -  --info-dir=%{_infodir} %{_infodir}/gcc.info.gz
  90.939 -
  90.940 -%preun
  90.941 -if [ $1 = 0 ]; then
  90.942 -  /sbin/install-info --delete \
  90.943 -    --info-dir=%{_infodir} %{_infodir}/gcc.info.gz
  90.944 -fi
  90.945 -
  90.946 -%post -n cpp
  90.947 -/sbin/install-info \
  90.948 -  --info-dir=%{_infodir} %{_infodir}/cpp.info.gz
  90.949 -
  90.950 -%preun -n cpp
  90.951 -if [ $1 = 0 ]; then
  90.952 -  /sbin/install-info --delete \
  90.953 -    --info-dir=%{_infodir} %{_infodir}/cpp.info.gz
  90.954 -fi
  90.955 -
  90.956 -%post g77
  90.957 -/sbin/install-info \
  90.958 -  --info-dir=%{_infodir} %{_infodir}/g77.info.gz
  90.959 -
  90.960 -%preun g77
  90.961 -if [ $1 = 0 ]; then
  90.962 -  /sbin/install-info --delete \
  90.963 -    --info-dir=%{_infodir} %{_infodir}/g77.info.gz
  90.964 -fi
  90.965 -
  90.966 -%post java
  90.967 -/sbin/install-info \
  90.968 -  --info-dir=%{_infodir} %{_infodir}/gcj.info.gz
  90.969 -
  90.970 -%preun java
  90.971 -if [ $1 = 0 ]; then
  90.972 -  /sbin/install-info --delete \
  90.973 -    --info-dir=%{_infodir} %{_infodir}/gcj.info.gz
  90.974 -fi
  90.975 -
  90.976 -%post gnat
  90.977 -/sbin/install-info \
  90.978 -  --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz
  90.979 -/sbin/install-info \
  90.980 -  --info-dir=%{_infodir} %{_infodir}/gnat_ug.info.gz
  90.981 -
  90.982 -%preun gnat
  90.983 -if [ $1 = 0 ]; then
  90.984 -  /sbin/install-info --delete \
  90.985 -    --info-dir=%{_infodir} %{_infodir}/gnat_rm.info.gz
  90.986 -  /sbin/install-info --delete \
  90.987 -    --info-dir=%{_infodir} %{_infodir}/gnat_ug.info.gz
  90.988 -fi
  90.989 -
  90.990 -%post -n libgcc -p /sbin/ldconfig
  90.991 -
  90.992 -%postun -n libgcc -p /sbin/ldconfig
  90.993 -
  90.994 -%post -n libstdc++ -p /sbin/ldconfig
  90.995 -
  90.996 -%postun -n libstdc++ -p /sbin/ldconfig
  90.997 -
  90.998 -%post -n libobjc -p /sbin/ldconfig
  90.999 -
 90.1000 -%postun -n libobjc -p /sbin/ldconfig
 90.1001 -
 90.1002 -%post -n libgcj -p /sbin/ldconfig
 90.1003 -
 90.1004 -%postun -n libgcj -p /sbin/ldconfig
 90.1005 -
 90.1006 -%post -n libf2c -p /sbin/ldconfig
 90.1007 -
 90.1008 -%postun -n libf2c -p /sbin/ldconfig
 90.1009 -
 90.1010 -%post -n libgnat -p /sbin/ldconfig
 90.1011 -
 90.1012 -%postun -n libgnat -p /sbin/ldconfig
 90.1013 -
 90.1014 -%files -f %{name}.lang
 90.1015 -%defattr(-,root,root)
 90.1016 -%{_prefix}/bin/cc
 90.1017 -%{_prefix}/bin/c89
 90.1018 -%{_prefix}/bin/c99
 90.1019 -%{_prefix}/bin/gcc
 90.1020 -%{_prefix}/bin/gcov
 90.1021 -%if !%{cross_compile}
 90.1022 -%{_prefix}/bin/protoize
 90.1023 -%{_prefix}/bin/unprotoize
 90.1024 -%endif
 90.1025 -%{_prefix}/bin/%{_target_platform}-gcc
 90.1026 -%{_mandir}/man1/gcc.1*
 90.1027 -%{_mandir}/man1/gcov.1*
 90.1028 -%{_infodir}/gcc*
 90.1029 -%dir %{_prefix}/lib/gcc-lib
 90.1030 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1031 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1032 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include
 90.1033 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/stddef.h
 90.1034 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/stdarg.h
 90.1035 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/varargs.h
 90.1036 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/float.h
 90.1037 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/limits.h
 90.1038 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/stdbool.h
 90.1039 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/iso646.h
 90.1040 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/syslimits.h
 90.1041 -%ifarch %{ix86} x86_64
 90.1042 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/mmintrin.h
 90.1043 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/xmmintrin.h
 90.1044 -%endif
 90.1045 -%ifarch ia64
 90.1046 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/ia64intrin.h
 90.1047 -%endif
 90.1048 -%ifarch ppc
 90.1049 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/ppc-asm.h
 90.1050 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/altivec.h
 90.1051 -%endif
 90.1052 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/README
 90.1053 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/cc1
 90.1054 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/collect2
 90.1055 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/crt*.o
 90.1056 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libgcc.a
 90.1057 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libgcc_eh.a
 90.1058 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/specs
 90.1059 -%{_prefix}/%{_lib}/libgcc_s.so
 90.1060 -%doc gcc/README* gcc/*ChangeLog*
 90.1061 -
 90.1062 -%if !%{gcconly}
 90.1063 -%files -n cpp
 90.1064 -%defattr(-,root,root)
 90.1065 -/lib/cpp
 90.1066 -%endif
 90.1067 -%{_prefix}/bin/cpp
 90.1068 -%{_mandir}/man1/cpp.1*
 90.1069 -%{_infodir}/cpp*
 90.1070 -%dir %{_prefix}/lib/gcc-lib
 90.1071 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1072 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1073 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/cpp0
 90.1074 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/tradcpp0
 90.1075 -
 90.1076 -%files -n libgcc
 90.1077 -%defattr(-,root,root)
 90.1078 -/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
 90.1079 -/%{_lib}/libgcc_s.so.1
 90.1080 -
 90.1081 -%if !%{gcconly}
 90.1082 -%files c++
 90.1083 -%defattr(-,root,root)
 90.1084 -%{_prefix}/bin/%{_target_platform}-*++
 90.1085 -%{_prefix}/bin/g++
 90.1086 -%{_prefix}/bin/c++
 90.1087 -%{_prefix}/bin/c++filt
 90.1088 -%{_mandir}/man1/g++.1*
 90.1089 -%dir %{_prefix}/lib/gcc-lib
 90.1090 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1091 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1092 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/cc1plus
 90.1093 -%doc gcc/cp/ChangeLog*
 90.1094 -
 90.1095 -%files -n libstdc++
 90.1096 -%defattr(-,root,root)
 90.1097 -%{_prefix}/%{_lib}/libstdc++.so.5*
 90.1098 -
 90.1099 -%files -n libstdc++-devel
 90.1100 -%defattr(-,root,root)
 90.1101 -%{_prefix}/include/c++
 90.1102 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libstdc++.so
 90.1103 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libstdc++.a
 90.1104 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libsupc++.a
 90.1105 -%doc libstdc++-v3/ChangeLog* libstdc++-v3/README* libstdc++-v3/docs/html/
 90.1106 -
 90.1107 -%files objc
 90.1108 -%defattr(-,root,root)
 90.1109 -%dir %{_prefix}/lib/gcc-lib
 90.1110 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1111 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1112 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include
 90.1113 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/objc
 90.1114 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/cc1obj
 90.1115 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libobjc.a
 90.1116 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libobjc.so
 90.1117 -%doc rpm.doc/objc/*
 90.1118 -%doc libobjc/THREADS* libobjc/ChangeLog
 90.1119 -
 90.1120 -%files -n libobjc
 90.1121 -%defattr(-,root,root)
 90.1122 -%{_prefix}/%{_lib}/libobjc.so.1*
 90.1123 -
 90.1124 -%files g77
 90.1125 -%defattr(-,root,root)
 90.1126 -%{_prefix}/bin/g77
 90.1127 -%{_prefix}/bin/f77
 90.1128 -%{_mandir}/man1/g77.1*
 90.1129 -%{_infodir}/g77*
 90.1130 -%dir %{_prefix}/lib/gcc-lib
 90.1131 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1132 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1133 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include
 90.1134 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/f771
 90.1135 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libfrtbegin.a
 90.1136 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libg2c.a
 90.1137 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libg2c.so
 90.1138 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/g2c.h
 90.1139 -%doc gcc/f/README rpm.doc/g77/*
 90.1140 -
 90.1141 -%files -n libf2c
 90.1142 -%defattr(-,root,root)
 90.1143 -%{_prefix}/%{_lib}/libg2c.so.0*
 90.1144 -
 90.1145 -%files java
 90.1146 -%defattr(-,root,root)
 90.1147 -%{_prefix}/bin/gcj
 90.1148 -%{_prefix}/bin/gcjh
 90.1149 -%{_prefix}/bin/jcf-dump
 90.1150 -%{_prefix}/bin/jv-scan
 90.1151 -%{_mandir}/man1/gcj.1*
 90.1152 -%{_mandir}/man1/gcjh.1*
 90.1153 -%{_mandir}/man1/jcf-dump.1*
 90.1154 -%{_mandir}/man1/jv-scan.1*
 90.1155 -%{_infodir}/gcj*
 90.1156 -%dir %{_prefix}/lib/gcc-lib
 90.1157 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1158 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1159 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/jc1
 90.1160 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/jvgenmain
 90.1161 -%doc gcc/java/ChangeLog*
 90.1162 -
 90.1163 -%files -n libgcj
 90.1164 -%defattr(-,root,root)
 90.1165 -%{_prefix}/bin/jv-convert
 90.1166 -%{_prefix}/bin/gij
 90.1167 -%{_prefix}/bin/jar
 90.1168 -%{_prefix}/bin/grepjar
 90.1169 -%{_prefix}/bin/rmic
 90.1170 -%{_prefix}/bin/rmiregistry
 90.1171 -%{_mandir}/man1/jv-convert.1*
 90.1172 -%{_mandir}/man1/gij.1*
 90.1173 -%{_mandir}/man1/rmic.1*
 90.1174 -%{_mandir}/man1/rmiregistry.1*
 90.1175 -%{_prefix}/%{_lib}/libgcj.so.*
 90.1176 -%{_prefix}/share/java
 90.1177 -%{_prefix}/lib/security
 90.1178 -
 90.1179 -%files -n libgcj-devel
 90.1180 -%defattr(-,root,root)
 90.1181 -%{_prefix}/bin/addr2name.awk
 90.1182 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libgcj.a
 90.1183 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libgcj.so
 90.1184 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/libgcj.spec
 90.1185 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/gc*.h
 90.1186 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/j*.h
 90.1187 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/java
 90.1188 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/javax
 90.1189 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/gnu
 90.1190 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/gcj
 90.1191 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/include/org
 90.1192 -%doc rpm.doc/boehm-gc/* rpm.doc/fastjar/* rpm.doc/libffi/*
 90.1193 -%doc rpm.doc/libjava/*
 90.1194 -
 90.1195 -%if %{build_ada}
 90.1196 -%files gnat
 90.1197 -%defattr(-,root,root)
 90.1198 -%{_prefix}/bin/gnat*
 90.1199 -%{_infodir}/gnat*
 90.1200 -%dir %{_prefix}/lib/gcc-lib
 90.1201 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}
 90.1202 -%dir %{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}
 90.1203 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/adainclude
 90.1204 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/adalib
 90.1205 -%{_prefix}/lib/gcc-lib/%{_target_platform}/%{gcc_version}/gnat1
 90.1206 -%doc gcc/ada/ChangeLog
 90.1207 -
 90.1208 -%files -n libgnat
 90.1209 -%defattr(-,root,root)
 90.1210 -%{_prefix}/%{_lib}/libgnat-*.so.*
 90.1211 -%{_prefix}/%{_lib}/libgnarl-*.so.*
 90.1212 -%endif
 90.1213 -%endif
 90.1214 -
 90.1215 -%changelog
 90.1216 -* Tue Sep  3 2002 Bill Nottingham <notting@redhat.com> 3.2-7
 90.1217 -- fix calling of C++ destructors in certain cases
 90.1218 -
 90.1219 -* Tue Sep  3 2002 Jakub Jelinek <jakub@redhat.com> 3.2-6
 90.1220 -- update from CVS (but revert C++ tail padding patches
 90.1221 -  for now)
 90.1222 -- further fixes to make libstdc++-v3 build on glibc 2.3
 90.1223 -- run libstdc++-v3 make check-abi on IA-32 during testing
 90.1224 -
 90.1225 -* Fri Aug 30 2002 Jakub Jelinek <jakub@redhat.com> 3.2-5
 90.1226 -- disable tail copy patches, they seem to still have problems
 90.1227 -- make libstdc++-v3 build on glibc 2.3 (and use thread-local
 90.1228 -  locale model)
 90.1229 -- fix c89 and c99 scripts (#73104)
 90.1230 -
 90.1231 -* Wed Aug 26 2002 Jakub Jelinek <jakub@redhat.com> 3.2-4
 90.1232 -- reorder alpha_encode_section_info checks slightly to fix an ICE
 90.1233 -  when building glibc and to take better advantage of visibility
 90.1234 -  attribute on Alpha
 90.1235 -- as gdb is not there yet, disable -momit-leaf-frame-pointer
 90.1236 -  by default for now on IA-32
 90.1237 -- fix IA-64 bootstrap with tail padding patch (Jason Merrill, Daniel Berlin)
 90.1238 -- fix x86-64 %RIP to %rip, only output (%rip) if no other relocation
 90.1239 -  is used (Richard Henderson)
 90.1240 -
 90.1241 -* Fri Aug 23 2002 Jakub Jelinek <jakub@redhat.com> 3.2-3
 90.1242 -- take advantage of __attribute__((visibility())) on Alpha
 90.1243 -- avoid copying tail padding (Jason Merrill)
 90.1244 -
 90.1245 -* Thu Aug 22 2002 Jakub Jelinek <jakub@redhat.com> 3.2-2
 90.1246 -- fixed Dwarf2 DW_OP_GNU_push_tls_address patch from Richard Henderson
 90.1247 -- don't mention removed -a and -ax options in the documentation
 90.1248 -  (Nathan Sidwell, #72233)
 90.1249 -- fixed __typeof() followed by __asm() redirection from Alexandre Oliva
 90.1250 -
 90.1251 -* Wed Aug 14 2002 Jakub Jelinek <jakub@redhat.com> 3.2-1
 90.1252 -- update to 3.2 release
 90.1253 -- fix x86-64 PR target/7559 (Jan Hubicka)
 90.1254 -- fix -fprefetch-loop-arrays (Janis Johnson)
 90.1255 -- fix x86-64 prefetch (Jan Hubicka)
 90.1256 -
 90.1257 -* Fri Aug  9 2002 Jakub Jelinek <jakub@redhat.com> 3.2-0.3
 90.1258 -- istream fix (Benjamin Kosnik)
 90.1259 -- emit Dwarf2 DW_OP_GNU_push_tls_address extension for TLS (Richard Henderson)
 90.1260 -- temporarily disable __typeof() + __asm() fix
 90.1261 -
 90.1262 -* Thu Aug  8 2002 Jakub Jelinek <jakub@redhat.com> 3.2-0.2
 90.1263 -- update from 3.2 branch
 90.1264 -  - ABI incompatible changes in libstdc++.so.5, long long bitfield
 90.1265 -    layout on IA-32 (both C and C++), oversized bitfields layout
 90.1266 -    on IA-32 and bitfields with base type with __attribute__((aligned ()))
 90.1267 -  - fix strstream segfaults (#68292, Benjamin Kosnik)
 90.1268 -- fix __attribute__((visibility())) together with __asm__()
 90.1269 -  function redirection
 90.1270 -- fix __typeof() followed by __asm() redirection (Alexandre Oliva)
 90.1271 -- fix TLS ICE on glibc (#70061)
 90.1272 -- fix K6 ICE on linux kernel (#69989, Richard Sandiford, Jan Hubicka)
 90.1273 -- fix inlining bug with labels (#70941)
 90.1274 -- fix fold-const bug (#70541)
 90.1275 -- fix PR preprocessor/7358 (Neil Booth)
 90.1276 -- error when mixing __thread and non-__thread declarations
 90.1277 -  (#70059, Aldy Hernandez)
 90.1278 -- fix TLS bug on g++.dg/tls/diag-1.C (Jason Merrill)
 90.1279 -- add -mcmodel= x86-64 documentation (Andreas Jaeger)
 90.1280 -- avoid TLS emitting movl %gs:0, MEMORY on IA-32 (#71033)
 90.1281 -
 90.1282 -* Mon Jul 22 2002 Jakub Jelinek <jakub@redhat.com> 3.2-0.1
 90.1283 -- first attempt for gcc 3.2
 90.1284 -- remove .la files
 90.1285 -
 90.1286 -* Sat Jul 20 2002 Jakub Jelinek <jakub@redhat.com> 3.1-10
 90.1287 -- update from 3.1 branch
 90.1288 -  - add throw() to set_new_handler (Andreas Schwab)
 90.1289 -  - fixed PR optimization/7147, optimization/7153
 90.1290 -- make sure pic register is set up even when the only @PLT calls
 90.1291 -  are done in EH basic blocks (Richard Henderson)
 90.1292 -
 90.1293 -* Sun Jul 14 2002 Jakub Jelinek <jakub@redhat.com> 3.1-9
 90.1294 -- define %%_gnu to nothing for compatibility
 90.1295 -
 90.1296 -* Sat Jul 13 2002 Jakub Jelinek <jakub@redhat.com> 3.1-8
 90.1297 -- update from 3.1 branch
 90.1298 -  - fix OpenOffice miscompilation (PR c++/7279, Jason Merrill)
 90.1299 -  - PRs c++/7224, c++/6255, optimization/7145, c++/6706, preprocessor/7070,
 90.1300 -    middle-end/6963, target/6841, target/6770, target/6719,
 90.1301 -    other/6836, libstdc++/7057, libstdc++/7097, libstdc++/3946,
 90.1302 -    libstdc++/7173
 90.1303 -  - fix a GC bug with named labels in C++ (Jim Wilson)
 90.1304 -  - fix ICE on Mesa (Bernd Schmidt, #65771)
 90.1305 -- added some NRV tests
 90.1306 -- fix typo in i386 specs (PR c/7242)
 90.1307 -- fix IA-32 ICE with shifts by negative values followed by compare
 90.1308 -  (PR middle-end/7245, #68395)
 90.1309 -- fixed DWARF-2 output for const char * (PR debug/7241)
 90.1310 -- actually enable __cxa_atexit for standard compliance at configury time
 90.1311 -- added PPC as Ada enabled architecture
 90.1312 -
 90.1313 -* Wed Jun 19 2002 Jakub Jelinek <jakub@redhat.com> 3.1-7
 90.1314 -- update from 3.1 branch
 90.1315 -  - PRs target/6922, opt/6722, c/7030, c/6677, objc/6834, c++/6892,
 90.1316 -    c++/6723, opt/6793
 90.1317 -- use __cxa_atexit for standard compliance:
 90.1318 -  if your C++ project knows it won't call atexit from within its
 90.1319 -  static constructors, use -fno-use-cxa-atexit to optimize it
 90.1320 -- share hard register rtxs where possible to speed the compiler up (Jeff Law)
 90.1321 -- optimize tree_code_* arrays (Kaveh Ghazi)
 90.1322 -- don't link prefix.o into libgnat, link libgnat against libgcc_s and
 90.1323 -  libgnarl against libgnat
 90.1324 -- fix typo in GNAT %%post (#66847, #66941, #66639)
 90.1325 -- add TLS support
 90.1326 -
 90.1327 -* Fri Jun  7 2002 Jakub Jelinek <jakub@redhat.com> 3.1-6
 90.1328 -- add GNAT
 90.1329 -- remove DT_RPATH from Java binaries (#66103)
 90.1330 -- obsolete kaffe, install jar as %{_prefix}/bin/jar
 90.1331 -- add include/org directory in java
 90.1332 -- add rmic and rmiregistry programs to libgcj
 90.1333 -- add info documentation for gcj and various man pages
 90.1334 -- add message catalogues for da, el, es, fr, ja, nl, sv, tr
 90.1335 -- don't put IA-64 vtables with relocations into read-only sections
 90.1336 -  with -fpic
 90.1337 -
 90.1338 -* Tue Jun  4 2002 Jakub Jelinek <jakub@redhat.com> 3.1-5
 90.1339 -- update from 3.1 branch
 90.1340 -  - PRs optimization/6822, preprocessor/6844, target/6838, target/6788,
 90.1341 -	libstdc++/6886, libstdc++/6795, libstdc++/6811
 90.1342 -- m$ compatibility for unnamed fields as typedef of struct/union
 90.1343 -  (PR c/6660)
 90.1344 -- fix -fverbose-asm with unnamed fields (PR c/6809)
 90.1345 -- fix -mmmx ICE (PR optimization/6842)
 90.1346 -- default to -momit-leaf-frame-pointer on i386 (Richard Henderson)
 90.1347 -- use linkonce section/hidden symbol for i686 pic getpc thunks
 90.1348 -  (Richard Henderson)
 90.1349 -
 90.1350 -* Tue May 28 2002 Jakub Jelinek <jakub@redhat.com> 3.1-4
 90.1351 -- rebuilt
 90.1352 -
 90.1353 -* Sat May 25 2002 Jakub Jelinek <jakub@redhat.com> 3.1-3
 90.1354 -- update from 3.1 branch
 90.1355 -  - PRs other/6782, preprocessor/6780, preprocessor/6517,
 90.1356 -	libstdc++/6282, libstdc++/6701, libstdc++/6701
 90.1357 -  - fix out << "" bug (Ben Kosnik, #65409, PR libstdc++/6750)
 90.1358 -- 3 new patches
 90.1359 -  - fix C++ __PRETTY_FUNCTION__ (PR c++/6794)
 90.1360 -  - fix ICE on jikes (#65379)
 90.1361 -  - add test for fixed mozilla miscompilation
 90.1362 -- include intrinsic headers on IA-32/x86-64, include altivec.h on PPC
 90.1363 -
 90.1364 -* Wed May 22 2002 Jakub Jelinek <jakub@redhat.com> 3.1-2
 90.1365 -- update from 3.1 branch
 90.1366 -- 8 new patches
 90.1367 -  - fix as version test for 2.12.1 and newer binutils non-CVS releases
 90.1368 -  - fix ICE in do_subst (#65049)
 90.1369 -  - fix SSE conditional move (PR target/6753)
 90.1370 -  - fix SPARC CSE ICE (PR optimization/6759)
 90.1371 -  - fix x86_64 dbx64_register_map typo (Jan Hubicka)
 90.1372 -  - fix DWARF-2 with flag_asynchronous_unwind_tables set for leaf
 90.1373 -    functions (Jan Hubicka)
 90.1374 -  - fix DWARF-2 x86_64 __builtin_dwarf_reg_sizes (Jan Hubicka)
 90.1375 -  - fix x86_64 movabsdi (Michael Matz)
 90.1376 -
 90.1377 -* Wed May 15 2002 Jakub Jelinek <jakub@redhat.com> 3.1-1
 90.1378 -- update to 3.1 final
 90.1379 -- 15 new patches
 90.1380 -  - fix PR c/6643
 90.1381 -  - fix fold-const.c typo
 90.1382 -  - fix unitialized pointer-to-member values (Alexandre Oliva)
 90.1383 -  - fix templates with asm inputs (Jason Merrill)
 90.1384 -  - fix -fdata-section (Andreas Schwab)
 90.1385 -  - readd warning about i386 -malign-double into documentation (Jan Hubicka)
 90.1386 -  - fix PR libstdc++/6594 (Ben Kosnik)
 90.1387 -  - fix PR PR libstdc++/6648 (Paolo Carlini)
 90.1388 -  - fix libstdc++ testsuite rlimits (Rainer Orth)
 90.1389 -  - s390 java support (Gerhard Tonn)
 90.1390 -  - rotate testcases (Tom Rix)
 90.1391 -  - build libiberty with -fpic on x86_64 (Andreas Schwab)
 90.1392 -  - fix x86_64 multilib build (Bo Thorsen)
 90.1393 -  - fix x86_64 ASM_OUTPUT_MI_THUNK (Jan Hubicka)
 90.1394 -  - fix loop-2[cd].c tests on i386 (Eric Botcazou)
 90.1395 -- fix typo in g77 info files tweaking
 90.1396 -- fix libgcj.so symlink
 90.1397 -
 90.1398 -* Thu May  9 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.28
 90.1399 -- update to CVS 3.1 branch
 90.1400 -  - PR c++/6212, target/6429, opt/6534, c/6543, target/6561, c/6569
 90.1401 -- fix x86_64 q_regs_operand (Jan Hubicka)
 90.1402 -- better PR c++/6381 fix (Jason Merrill)
 90.1403 -
 90.1404 -* Fri May  3 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.27
 90.1405 -- update to CVS 3.1 branch
 90.1406 -  - PR target/5628, libstdc++/5820, c++/6396, preprocessor/6489,
 90.1407 -    libstdc++/6501, libstdc++/6511, target/6512, libstdc++/6513,
 90.1408 -    bootstrap/6514, opt/6516, bootstrap/6525, c++/6527, libstdc++/6533,
 90.1409 -    target/6540
 90.1410 -- fix PR target/6542, target/6522, libstdc++/6549
 90.1411 -
 90.1412 -* Mon Apr 29 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.26
 90.1413 -- update to CVS 3.1 branch
 90.1414 -  - PR c/3581, libstdc++/4150, libstdc++/4164, c/5154, c/5430, c++/5504,
 90.1415 -    c++/5658, c++/5719, f/6138, libgcj/6158, middle-end/6205, c++/6256,
 90.1416 -    c/6300, c++/6331, c/6343, c/6344, c++/6352, c/6358, libstdc++/6360,
 90.1417 -    c++/6395, target/6413, libstdc++/6414, target/6422, bootstrap/6445,
 90.1418 -    optimization/6475, target/6476, c++/6477, c++/6479, c++/6486, c++/6492,
 90.1419 -    target/6494, target/6496, c/6497, target/6500
 90.1420 -- fix PR c++/6396
 90.1421 -- run make check as part of build process
 90.1422 -
 90.1423 -* Thu Apr 18 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.25
 90.1424 -- update to CVS 3.1 branch
 90.1425 -  - PR opt/420, c++/525, target/817, target/1538, opt/3967, target/3997,
 90.1426 -    opt/4120, bootstrap/4191, opt/4311, optimization/4328, c++/4884, c++/4934,
 90.1427 -    c/5078, c++/5104, opt/5120, c++/5189, c++/5373, target/5446, c/5484,
 90.1428 -    c++/5507, c++/5571, c++/5636, target/5672, target/5715, target/5886,
 90.1429 -    c++/5933, c++/5964, c++/5998, opt/6007, target/6032, target/6041,
 90.1430 -    target/6054, c++/6073, target/6082, optimization/6086, target/6087,
 90.1431 -    middle-end/6096, middle-end/6098, middle-end/6099, middle-end/6100,
 90.1432 -    middle-end/6102, fortran/6106, c++/6119, opt/6165, optimization/6177,
 90.1433 -    c++/6179, optimization/6189, c/6202, c/6223, optimization/6233,
 90.1434 -    middle-end/6279, c/6290, optimization/6305, target/6305, bootstrap/6315,
 90.1435 -    c++/6320...
 90.1436 -- fix PR c++/6316
 90.1437 -
 90.1438 -* Wed Mar 27 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.24
 90.1439 -- update to CVS 3.1 branch
 90.1440 -  - PRs c/5656, c/5972, bootstrap/4192, target/4792, bootstrap/4195,
 90.1441 -    optimization/5854, target/6043, c++/6037, bootstrap/4128, target/5740,
 90.1442 -    c/5597, optimization/5863, optimization/5742, target/3177, c/5354,
 90.1443 -    optimization/5999, target/5977, middle-end/5731, target/5312...
 90.1444 -
 90.1445 -* Fri Mar 15 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.23.1
 90.1446 -- fix info and man page generation
 90.1447 -
 90.1448 -* Thu Mar 14 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.23
 90.1449 -- update to CVS 3.1 branch
 90.1450 -  - fix IA-64 packet selection (PR optimization/5892)
 90.1451 -  - make highest_pow2_factor work for all constants (PR middle-end/5877)
 90.1452 -  - fix -Wunused (#61047)
 90.1453 -  - fix loop on mixed mode class assignments (#60923)
 90.1454 -  - fix wide character literals
 90.1455 -  - support SPARC v9 long distance branches (PR target/5626)
 90.1456 -  - fix SPARC leaf functions
 90.1457 -  - fix a rtl sharing problem (Richard Henderson, #60760,
 90.1458 -    PR optimization/5844)
 90.1459 -  - fix va_arg with variable size types (PR c/3711)
 90.1460 -  - PRs optimization/5901, optimization/5878, 5693, preprocessor/5899
 90.1461 -- fix C++ ?: at the end of stmt expr (PR c++/5373)
 90.1462 -- fix loop unrolling with sibcalls (PR optimization/5891)
 90.1463 -
 90.1464 -* Thu Mar  7 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.22
 90.1465 -- update to CVS 3.1 branch
 90.1466 -  - fix ICE with volatile long long (#60650)
 90.1467 -  - fix tempbuf.h (Philipp Thomas, #60212)
 90.1468 -  - fix -fssa-ccp (Jeff Law, #60651)
 90.1469 -  - versioned libstdc++
 90.1470 -  - backport __attribute__((visibility("..."))) patches from trunk
 90.1471 -- include libstdc++ html documentation
 90.1472 -
 90.1473 -* Tue Feb  5 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.21
 90.1474 -- update to CVS HEAD
 90.1475 -  - fix demangler (H.J. Lu, #59300, #59310)
 90.1476 -  - fix typo in IA-32 specs file (#59081)
 90.1477 -  - support moving SFmode values in MMX regs if -mmmx (#59083)
 90.1478 -  - fix recog_for_combine (#59084)
 90.1479 -  - don't ICE when inserting insns on edge from bb0 to bb0 (Bernd Schmidt,
 90.1480 -    #59087)
 90.1481 -  - make sure configure has not time in the future (#59203)
 90.1482 -  - fix division/modulo by certain constants (#58065, PR c/5304)
 90.1483 -  - fix -Wswitch (PR c/4475)
 90.1484 -
 90.1485 -* Thu Jan 31 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.20
 90.1486 -- update to CVS HEAD
 90.1487 -  - fix jar (Tom Tromey)
 90.1488 -  - fix loop unrolling (Richard Henderson)
 90.1489 -
 90.1490 -* Wed Jan 30 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.19
 90.1491 -- update to CVS HEAD
 90.1492 -  - fix a reload bug on ia32 (#58579, #58648)
 90.1493 -  - issue error about unknown -W* options (#58909)
 90.1494 -  - fix ia64 libbfd miscompilation (#58694)
 90.1495 -  - register all pending unparsed_text structures with GC (#58647)
 90.1496 -  - fix __builtin_apply with ia32 -msse (#58447)
 90.1497 -  - prevent ia64 prologue insns saving regs required for eh from being
 90.1498 -    deleted (#58387)
 90.1499 -
 90.1500 -* Tue Jan 15 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.18
 90.1501 -- update to CVS HEAD
 90.1502 -  - handle static x[] = { [X...Y] = (foo) { Z } } (#58338)
 90.1503 -  - fix getdents.os miscompilation (Richard Henderson, #58308)
 90.1504 -  - fix ICE in try_forward_edges (#58125)
 90.1505 -  - fix ICE with -fexceptions -foptimize-sibling-calls
 90.1506 -
 90.1507 -* Tue Jan  8 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.17
 90.1508 -- avoid division by 0 when computing prediction probabilities (#57992)
 90.1509 -- fix ICE due to store_expr not adjusting value back for mode
 90.1510 -- increase -ftemplate-depth default value to 500
 90.1511 -
 90.1512 -* Mon Jan  7 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.16
 90.1513 -- if using PT_GNU_EH_FRAME registry, work around assembler bug resp. feature
 90.1514 -  and don't provide weak prototypes of functions which won't be used
 90.1515 -- on Alpha, fix a typo so that crtbeginT.o is built and installed
 90.1516 -- fix glibc inl-tester miscompilation on ia32
 90.1517 -
 90.1518 -* Sun Jan  6 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.15
 90.1519 -- update to CVS HEAD (fix glibc bootstrap failure)
 90.1520 -
 90.1521 -* Thu Jan  3 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.14
 90.1522 -- update to CVS HEAD (#57907)
 90.1523 -  - fix alpha bootstrap (Richard Henderson)
 90.1524 -- fix simplification of (div:SI (???:DI ???) (const_int 1))
 90.1525 -  (#57916)
 90.1526 -- add contrib/gcc_update --touch
 90.1527 -
 90.1528 -* Tue Jan  1 2002 Jakub Jelinek <jakub@redhat.com> 3.1-0.13
 90.1529 -- update to CVS HEAD (fix glibc miscompilation on alpha)
 90.1530 -- fix objc to not emit __objc_class_name_* without type and size
 90.1531 -
 90.1532 -* Mon Dec 31 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.12
 90.1533 -- update to CVS HEAD
 90.1534 -- fix sed commands for .la files
 90.1535 -- make Alpha use PT_GNU_EH_FRAME
 90.1536 -
 90.1537 -* Thu Dec 27 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.11
 90.1538 -- update to CVS HEAD (#57165, #57212, #57467, #57488, #57502,
 90.1539 -  #57505, #57574)
 90.1540 -- readd .la files after fixing them up by sed
 90.1541 -- add %%defattr(-,root,root) to libobjc subpackage
 90.1542 -
 90.1543 -* Mon Dec  3 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.10
 90.1544 -- one more gcc.spec fix for passing --gdwarf-2 resp. --gstabs to as
 90.1545 -- fix conditional register dead computation on IA-64
 90.1546 -- fix extern array of incomplete structures handling
 90.1547 -- fix gcc -xc -
 90.1548 -- fix Fortran ICEs with SAVE_EXPRs (Richard Kenner)
 90.1549 -
 90.1550 -* Tue Nov 27 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.9
 90.1551 -- update to CVS HEAD
 90.1552 -- make DWARF 2 preferred debugging format on Linux
 90.1553 -
 90.1554 -* Mon Nov 12 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.8
 90.1555 -- don't ship .la files (#56072)
 90.1556 -- include libfrtbegin.a (#56098)
 90.1557 -
 90.1558 -* Mon Nov 12 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.7
 90.1559 -- update to CVS HEAD
 90.1560 -- back out Nov 7th loop.c change for now
 90.1561 -
 90.1562 -* Fri Nov  9 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.6
 90.1563 -- update to CVS HEAD
 90.1564 -- frame unwind compatibility with 7.[12] binutils
 90.1565 -
 90.1566 -* Tue Nov  6 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.5
 90.1567 -- update to CVS HEAD
 90.1568 -- merge DW_EH_PE_indirect constants and their relocs
 90.1569 -
 90.1570 -* Thu Oct 25 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.4
 90.1571 -- don't loop forever or ICE on bogus array initializers (#53704)
 90.1572 -- fix store motion with pure calls
 90.1573 -- disable store motion for now
 90.1574 -
 90.1575 -* Tue Oct 23 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.3
 90.1576 -- fix inlining of C nested functions with auto prototypes
 90.1577 -
 90.1578 -* Mon Oct 22 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.2
 90.1579 -- update to CVS HEAD
 90.1580 -- tree inlining fix from Alexandre Oliva
 90.1581 -- fix anonymous union ICE on alpha
 90.1582 -
 90.1583 -* Mon Oct 15 2001 Jakub Jelinek <jakub@redhat.com> 3.1-0.1
 90.1584 -- switch package to main compiler from alternate compiler
 90.1585 -- update to CVS HEAD
 90.1586 -- early gcc-2.96-RH compatibility in __frame_state_for
 90.1587 -- change weak function tests for functions always present in GLIBC 2.2
 90.1588 -  into simple non-weak calls in crt*.o to avoid unnecessary symbol
 90.1589 -  lookups and prelink conflicts
 90.1590 -- don't link against libgcc_s C shared libraries
 90.1591 -
 90.1592 -* Tue Oct  2 2001 Jakub Jelinek <jakub@redhat.com> 3.0.1-4
 90.1593 -- update from CVS 3.0 branch
 90.1594 -  - ia64 function descriptors in vtables
 90.1595 -- handle large files in Fortran (#53328)
 90.1596 -- allow Java programs to be statically linked (#53605)
 90.1597 -- remove #include_next patch, Benjamin commited it
 90.1598 -
 90.1599 -* Thu Sep  6 2001 Jakub Jelinek <jakub@redhat.com> 3.0.1-3
 90.1600 -- don't use #include_next in <bits/std_c*> headers (Benjamin Kosnik, #53262)
 90.1601 -
 90.1602 -* Wed Sep  5 2001 Jakub Jelinek <jakub@redhat.com> 3.0.1-2
 90.1603 -- update from CVS 3.0 branch
 90.1604 -- check all gcc-2.96-RH patches whether they have made it into 3.0.1,
 90.1605 -  and if not, whether they are appropriate for 3.0.1
 90.1606 -- 8 new patches
 90.1607 -  - add 36 testcases from gcc-2.96-RH
 90.1608 -  - fix ICE on very questionable C++ code from JDK (#39858, #52960)
 90.1609 -  - fix -frepo (Nathan Sidwell, #52877)
 90.1610 -  - avoid generating bogus .stabs (#49214)
 90.1611 -  - issue a clear error message about invalid ia32 floating point
 90.1612 -    asm constraints (#27137)
 90.1613 -  - fix some comment typos
 90.1614 -  - fix ADDRESSOF recognition (#29686)
 90.1615 -
 90.1616 -* Mon Aug 27 2001 Jakub Jelinek <jakub@redhat.com> 3.0.1-1
 90.1617 -- update from CVS (3.0.1 final)
 90.1618 -- properly handle throw() exception specifiers in template decls (#51824)
 90.1619 -- fix IA-64 varargs handling in presence of additional anonymous arguments
 90.1620 -  (#50757)
 90.1621 -- fix boehm-gc for prelink
 90.1622 -- fix a typo in gcc3-c++ description (#52323)
 90.1623 -- remove Chill from package summary (#51764)
 90.1624 -
 90.1625 -* Tue Aug  7 2001 Jakub Jelinek <jakub@redhat.com> 3.0-6
 90.1626 -- update from CVS
 90.1627 -  - fix glibc vfprintf miscompilation
 90.1628 -- don't warn about if (&foo) if foo is weak (H.J.Lu, #50855)
 90.1629 -
 90.1630 -* Wed Jul 25 2001 Jakub Jelinek <jakub@redhat.com> 3.0-5
 90.1631 -- include libgcjgc.a in libgcj3-devel
 90.1632 -- include libgcjgc.so.* in libgcj3 on ia64
 90.1633 -- remove dependency on libgcj on ia64
 90.1634 -- add ldconfig to libgcj3 post/postun
 90.1635 -
 90.1636 -* Tue Jul 24 2001 Jakub Jelinek <jakub@redhat.com> 3.0-4
 90.1637 -- update from CVS
 90.1638 -- make gcc3-java/libgcj3* packages, so that they can coexist
 90.1639 -  with 2.96-RH Java
 90.1640 -- make sure shared Java libraries are built with proper dependencies
 90.1641 -
 90.1642 -* Wed Jul 11 2001 Jakub Jelinek <jakub@redhat.com> 3.0-3
 90.1643 -- fix libgcc_s.so and libstdc++.so symlinks
 90.1644 -- don't ship jar
 90.1645 -
 90.1646 -* Tue Jul 10 2001 Jakub Jelinek <jakub@redhat.com> 3.0-2
 90.1647 -- move libstdc++.so into gcc-lib
 90.1648 -- add libobjc.so symlink
 90.1649 -
 90.1650 -* Tue Jul 10 2001 Jakub Jelinek <jakub@redhat.com> 3.0-1
 90.1651 -- new rpm
    91.1 --- a/patches/gcc/3.2.3/README-sh	Wed Oct 28 12:03:38 2009 +0100
    91.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    91.3 @@ -1,16 +0,0 @@
    91.4 -http://mirror.sh-linux.org/rpm-2003/SRPMS/gcc-3.2.3-3.src.rpm contains the following patches:
    91.5 -
    91.6 -gcc-20030210-sh-linux-1.patch
    91.7 -gcc-3.2.3-libffi-1.patch
    91.8 -gcc-3.2.3-sh-linux-dwarf2-1.patch (*not* applied by the spec file, it's in there by accident)
    91.9 -
   91.10 -gcc-3.2.3-libffi-1.patch was needed just to build, I think.
   91.11 -
   91.12 -After that was applied, sh4 gcc seemed to compile fine, but c++ programs
   91.13 -failed to execute because libstdc++.so.5 was built without version
   91.14 -info.  This was caused directly by libstdc++-v3/configure setting
   91.15 -SYMVER_MAP=config/linker-map.dummy because it sees that 
   91.16 -no libgcc_s.so was generated; configure says
   91.17 -  checking for shared libgcc... no.
   91.18 -
   91.19 -Applying gcc-20030210-sh-linux-1.patch in hopes it makes those problems go away.
    92.1 --- a/patches/gcc/3.2.3/gcc-sh-linux.spec	Wed Oct 28 12:03:38 2009 +0100
    92.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    92.3 @@ -1,739 +0,0 @@
    92.4 -Summary: The GNU Compiler Collection for SuperH.
    92.5 -%define GCC_VERSION 3.2.3
    92.6 -%define arch_list sh3-linux sh3eb-linux sh4-linux sh4eb-linux
    92.7 -%define TARGET_LIBSTDC 1
    92.8 -%define TARGET_JAVA 1
    92.9 -
   92.10 -Name: gcc
   92.11 -Version: 3.2.3
   92.12 -Release: 3
   92.13 -
   92.14 -Copyright: GPL
   92.15 -Group: Development/Languages
   92.16 -Source0: gcc-%{GCC_VERSION}.tar.bz2
   92.17 -Patch1: gcc-20030210-sh-linux-1.patch
   92.18 -Patch2: gcc-3.2.3-libffi-1.patch
   92.19 -Patch3: gcc-3.2.3-sh-linux-dwarf2-1.patch
   92.20 -Buildroot: /var/tmp/gcc-%{_target}-root
   92.21 -ExclusiveArch: i386 sh3 sh3eb sh4 sh4eb
   92.22 -
   92.23 -%description
   92.24 -This package contains the GNU Compiler Collection: gcc and g++.
   92.25 -You'll need this package in order to compile C/C++ code.
   92.26 -
   92.27 -%ifarch i386
   92.28 -
   92.29 -# ==================== Cross Compiler ===============================
   92.30 -
   92.31 -%package sh-linux
   92.32 -Summary: The GNU Compiler Collection for sh-linux.
   92.33 -Group: Development/Languages
   92.34 -Requires: binutils-sh-linux >= 2.13.2
   92.35 -Provides: gcc-sh-linux
   92.36 -Obsoletes: gcc-sh3-linux gcc-sh3eb-linux gcc-sh4-linux gcc-sh4eb-linux
   92.37 -Obsoletes: gcc-sh3-linux-c++ gcc-sh3eb-linux-c++ gcc-sh4-linux-c++ gcc-sh4eb-linux-c++
   92.38 -Obsoletes: libstdc++-sh3-linux libstdc++-sh3eb-linux libstdc++-sh4-linux libstdc++-sh4eb-linux
   92.39 -AutoReqProv: no
   92.40 -
   92.41 -%description sh-linux
   92.42 -The gcc-sh-linux package contains GNU Compiler Collection: gcc g++ and libstdc++-v3.
   92.43 -
   92.44 -It includes support for most of the current C++ specification, including templates and
   92.45 -exception handling. It does also include the standard C++ library and C++ header files.
   92.46 -You'll need this package in order to cross compile C/C++ code for sh-linux.
   92.47 -
   92.48 -%package -n libgcj-sh-linux
   92.49 -Summary: Header files and libraries for sh-linux Java development.
   92.50 -Group: Development/Libraries
   92.51 -Requires: gcc-sh-linux = %{version}-%{release}
   92.52 -AutoReqProv: no
   92.53 -
   92.54 -%description -n libgcj-sh-linux
   92.55 -The Java static libraries and C header files. You will need this
   92.56 -package to compile your Java programs for sh-linux using the gcc Java compiler (gcj).
   92.57 -
   92.58 -%else
   92.59 -# =========================== Native Compiler =================================
   92.60 -%package libgcc
   92.61 -Summary: runtime libraries for the GNU Compiler Collection.
   92.62 -Group: System Environment/Libraries
   92.63 -
   92.64 -%description libgcc
   92.65 -This package contains libgcc shared libraries for the GNU C Compiler Collection.
   92.66 -You'll need this package in order to execute C,C++,JAVA code
   92.67 -that uses shared libgcc.
   92.68 -
   92.69 -%package c++
   92.70 -Summary: C++ support for gcc
   92.71 -Group: Development/Languages
   92.72 -Requires: gcc = %{version}-%{release}
   92.73 -
   92.74 -%description c++
   92.75 -This package adds C++ support to the GNU Compiler Collection. It includes
   92.76 -support for most of the current C++ specification, including templates and
   92.77 -exception handling. It does include the static standard C++
   92.78 -library and C++ header files; the library for dynamically linking
   92.79 -programs is available separately.
   92.80 -
   92.81 -%package -n libstdc++
   92.82 -Summary: GNU c++ library.
   92.83 -Group: System Environment/Libraries
   92.84 -
   92.85 -%description -n libstdc++
   92.86 -The libstdc++ package contains a snapshot of the GCC Standard C++
   92.87 -Library v3, an ongoing project to implement the ISO 14882 Standard C++
   92.88 -library.
   92.89 -
   92.90 -%package -n libstdc++-devel
   92.91 -Summary: Header files and libraries for C++ development
   92.92 -Group: Development/Libraries
   92.93 -Requires: libstdc++ = %{version}-%{release}, gcc-c++ = %{version}-%{release}
   92.94 -
   92.95 -%description -n libstdc++-devel
   92.96 -This is the GNU implementation of the standard C++ libraries.  This
   92.97 -package includes the header files and libraries needed for C++
   92.98 -development. This includes SGI's implementation of the STL.
   92.99 -
  92.100 -%package java
  92.101 -Summary: Java support for gcc
  92.102 -Group: Development/Languages
  92.103 -Requires: gcc = %{version}-%{release}, libgcj = %{version}-%{release}, libgcj-devel = %{version}-%{release}
  92.104 -
  92.105 -%description java
  92.106 -This package adds experimental support for compiling Java(tm) programs and
  92.107 -bytecode into native code. To use this you will also need the libgcj and
  92.108 -libgcj-devel packages.
  92.109 -
  92.110 -%package -n libgcj
  92.111 -Summary: Java runtime library for gcc.
  92.112 -Group: System Environment/Libraries
  92.113 -
  92.114 -%description -n libgcj
  92.115 -The Java runtime library. You will need this package to run your Java
  92.116 -programs compiled using the gcc Java compiler (gcj).
  92.117 -
  92.118 -%package -n libgcj-devel
  92.119 -Summary: Header files and libraries for Java development.
  92.120 -Group: Development/Libraries
  92.121 -Requires: libgcj = %{version}-%{release}
  92.122 -
  92.123 -%description -n libgcj-devel
  92.124 -The Java static libraries and C header files. You will need this
  92.125 -package to compile your Java programs using the gcc Java compiler (gcj).
  92.126 -
  92.127 -%endif
  92.128 -
  92.129 -%prep
  92.130 -%setup -q -n gcc-%{GCC_VERSION}
  92.131 -%patch1 -p1
  92.132 -%patch2 -p1
  92.133 -##%patch3 -p1
  92.134 -
  92.135 -%build
  92.136 -%ifarch i386
  92.137 -# build cross compiler for i386-linux host
  92.138 -for arch in sh-linux; do
  92.139 -  rm -rf ${arch}
  92.140 -  mkdir ${arch}
  92.141 -
  92.142 -  CONFIG_ARGS="\
  92.143 -        --prefix=%{_prefix} \
  92.144 -        --mandir=%{_mandir} \
  92.145 -        --infodir=%{_infodir} \
  92.146 -        --target=${arch} \
  92.147 -        --host=%{_host} \
  92.148 -        --build=%{_build} \
  92.149 -        --enable-languages=c,c++,java \
  92.150 -        --with-system-zlib \
  92.151 -        --with-gxx-include-dir=%{_prefix}/${arch}/include/g++-v3 \
  92.152 -        --includedir=%{_prefix}/${arch}/include \
  92.153 -	--disable-checking \
  92.154 -	--disable-shared \
  92.155 -	--enable-__cxa_atexit \
  92.156 -	--enable-c99 \
  92.157 -        --enable-threads=posix \
  92.158 -        --enable-long-long"
  92.159 -  if [ %{TARGET_JAVA} -ne 0 ]; then
  92.160 -    CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"
  92.161 -  fi
  92.162 -  (  cd $arch
  92.163 -     ../configure ${CONFIG_ARGS}
  92.164 -  )
  92.165 -  if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then
  92.166 -    sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$
  92.167 -    mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile
  92.168 -  fi
  92.169 -  make all-gcc -C ${arch}
  92.170 -
  92.171 -  if [ %{TARGET_LIBSTDC} -ne 0 ]; then
  92.172 -    CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"
  92.173 -    make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host" all-target-libstdc++-v3 -C ${arch}
  92.174 -  fi
  92.175 -
  92.176 -  if [ %{TARGET_JAVA} -ne 0 ]; then
  92.177 -    make all-fastjar -C ${arch}
  92.178 -    CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--host=%{_host}/--host=${arch}/`"
  92.179 -    dir=`pwd`
  92.180 -
  92.181 -    ac_cv_file__proc_self_exe=yes \
  92.182 -    ac_cv_prog_GCJ="$dir/$arch/gcc/gcj -B$dir/$arch/$arch/libjava/ -B$dir/$arch/gcc/ -B%{_prefix}/$arch/bin/ -B%{_prefix}/$arch/lib/ -isystem %{_prefix}/$arch/include" \
  92.183 -      make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-cross-host --enable-multilib --with-target-subdir=${arch} --with-x=no" \
  92.184 -      all-target-libjava -C ${arch}
  92.185 -  fi
  92.186 -
  92.187 -%else
  92.188 -# Canadian cross (build native compiler)
  92.189 -for arch in %{_target}; do
  92.190 -  rm -rf ${arch}
  92.191 -  mkdir -p ${arch}
  92.192 -  CONFIG_ARGS="\
  92.193 -        --prefix=%{_prefix} \
  92.194 -        --mandir=%{_mandir} \
  92.195 -        --infodir=%{_infodir} \
  92.196 -        --target=${arch} \
  92.197 -        --host=${arch} \
  92.198 -        --build=%{_build} \
  92.199 -        --enable-languages=c,c++,java \
  92.200 -        --with-system-zlib \
  92.201 -        --with-gxx-include-dir=%{_prefix}/include/g++-v3 \
  92.202 -	--disable-checking \
  92.203 -	--disable-shared \
  92.204 -	--enable-__cxa_atexit \
  92.205 -	--enable-c99 \
  92.206 -        --enable-threads=posix \
  92.207 -        --enable-long-long"
  92.208 -
  92.209 -  if [ %{TARGET_JAVA} -ne 0 ]; then
  92.210 -    CONFIG_ARGS="$CONFIG_ARGS --enable-libgcj"
  92.211 -  fi
  92.212 -
  92.213 -  (  cd ${arch}
  92.214 -     CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ \
  92.215 -        ../configure $CONFIG_ARGS
  92.216 -  )
  92.217 -
  92.218 -  if [ %{TARGET_LIBSTDC} -ne 0 -o %{TARGET_JAVA} -ne 0 ]; then
  92.219 -    sed -e s:-Dinhibit_libc::g ${arch}/gcc/Makefile >${arch}/gcc/Makefile.$$$
  92.220 -    mv -f ${arch}/gcc/Makefile.$$$ ${arch}/gcc/Makefile
  92.221 -  fi
  92.222 -
  92.223 -  make all-build-libiberty all-gcc -C ${arch}
  92.224 -
  92.225 -  if [ %{TARGET_LIBSTDC} -ne 0 ]; then
  92.226 -    CONFIG_ARGS="`echo $CONFIG_ARGS | sed -e s/--disable-shared/--enable-shared/`"
  92.227 -    make TARGET_CONFIGARGS="${CONFIG_ARGS}" all-target-libstdc++-v3 -C ${arch}
  92.228 -    if [ %{TARGET_JAVA} -ne 0 ]; then
  92.229 -      ( mkdir -p ${arch}/fastjar; cd ${arch}/fastjar; rm *; ../../fastjar/configure --with-system-zlib; make )
  92.230 -      ac_cv_file__proc_self_exe=yes \
  92.231 -        CC=${arch}-gcc AR=${arch}-ar RANLIB=${arch}-ranlib CXX=${arch}-g++ GCJ=${arch}-gcj \
  92.232 -        make TARGET_CONFIGARGS="${CONFIG_ARGS} --with-x=no" configure-target-libjava -C ${arch}
  92.233 -
  92.234 -        make -C ${arch}/${arch}/libffi
  92.235 -        make -C ${arch}/${arch}/boehm-gc
  92.236 -        make -C ${arch}/${arch}/zlib
  92.237 -        make GCJ=${arch}-gcj GCJH=${arch}-gcjh ZIP=${arch}-jar -C ${arch}/${arch}/libjava
  92.238 -      (
  92.239 -        rm -rf ${arch}/${arch}/fastjar
  92.240 -        mkdir -p ${arch}/${arch}/fastjar
  92.241 -        cd ${arch}/${arch}/fastjar
  92.242 -
  92.243 -        ac_cv_sizeof_char=1 \
  92.244 -        ac_cv_sizeof_short=2 \
  92.245 -        ac_cv_sizeof_int=4 \
  92.246 -        ac_cv_sizeof_long=4 \
  92.247 -        ac_cv_sizeof_long_long=8 \
  92.248 -        ac_cv_sizeof_float=4 \
  92.249 -        ac_cv_sizeof_double=8 \
  92.250 -        ac_cv_sizeof_long_double=8 \
  92.251 -        ac_cv_sizeof_void_p=4 \
  92.252 -        ac_cv_file__proc_self_exe=yes \
  92.253 -        ac_cv_header_langinfo_h=yes \
  92.254 -        CC=${arch}-gcc ../../../fastjar/configure $CONFIG_ARGS
  92.255 -
  92.256 -        make
  92.257 -      )
  92.258 -
  92.259 -    fi
  92.260 -  fi
  92.261 -%endif
  92.262 -done
  92.263 -
  92.264 -%install
  92.265 -rm -rf $RPM_BUILD_ROOT
  92.266 -mkdir -p ${RPM_BUILD_ROOT}/{%{_prefix}/bin,lib}
  92.267 -
  92.268 -%ifarch i386
  92.269 -  ARCH_STRTIP=strip
  92.270 -  EXESUFFIX=""
  92.271 -  arch=sh-linux
  92.272 -  TOOLPREFIX=${arch}-
  92.273 -  mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/{bin,include,lib,share}
  92.274 -  mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${arch}/lib/{m4,mb/m4}
  92.275 -  make DESTDIR=${RPM_BUILD_ROOT} \
  92.276 -	install-gcc \
  92.277 -	install-fastjar \
  92.278 -	-C ${arch}
  92.279 -%if 0
  92.280 -  ( cd ${RPM_BUILD_ROOT}%{_prefix}/sh-linux/lib
  92.281 -    rm -f libgcc_s_*.so
  92.282 -    mv libgcc_s_mb.so.1 mb/libgcc_s.so.1
  92.283 -    mv libgcc_s_m4.so.1 m4/libgcc_s.so.1
  92.284 -    mv libgcc_s_mb_m4.so.1 mb/m4/libgcc_s.so.1
  92.285 -    ln -s libgcc_s.so.1 mb/libgcc_s.so
  92.286 -    ln -s libgcc_s.so.1 m4/libgcc_s.so
  92.287 -    ln -s libgcc_s.so.1 mb/m4/libgcc_s.so
  92.288 -  )
  92.289 -%endif
  92.290 -
  92.291 -  if [ %{TARGET_LIBSTDC} -ne 0 ]; then
  92.292 -    make DESTDIR=${RPM_BUILD_ROOT} \
  92.293 -      install-target-libstdc++-v3 \
  92.294 -      -C ${arch}
  92.295 -  fi
  92.296 -  if [ %{TARGET_JAVA} -ne 0 ]; then
  92.297 -    make DESTDIR=${RPM_BUILD_ROOT} \
  92.298 -      install-target-libjava \
  92.299 -      install-target-boehm-gc \
  92.300 -      install-target-zlib \
  92.301 -      -C ${arch}
  92.302 -    make DESTDIR=${RPM_BUILD_ROOT} prefix=%{_prefix}/${arch} \
  92.303 -      install -C ${arch}/${arch}/libffi
  92.304 -    mv -f $RPM_BUILD_ROOT%{_prefix}/share/java $RPM_BUILD_ROOT%{_prefix}/sh-linux/share/
  92.305 -  fi
  92.306 -  rm -f $RPM_BUILD_ROOT%{_prefix}/bin/{gcov,gccbug}
  92.307 -  rm -f $RPM_BUILD_ROOT%{_prefix}/${arch}/bin/{gij,jv-convert}
  92.308 -  sed -e 's/@@VERSION@@/%{GCC_VERSION}/g' debian/shCPU-linux-GCC >$RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC
  92.309 -  chmod 0755 $RPM_BUILD_ROOT%{_prefix}/bin/shCPU-linux-GCC
  92.310 -
  92.311 -  LIBSTDC=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libstdc++.so*`
  92.312 -  LIBGCJ=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libgcj.so*`
  92.313 -  LIBFFI=`cd $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib; echo libffi*.so*`
  92.314 -  # literally (binary-ly) same
  92.315 -  PROGS="cpp c++ g++ g77 gcc gcj"
  92.316 -  DRIVERS="cc1 cc1obj cc1plus collect2 cpp0 f771 jc1 tradcpp0 jvgenmain"
  92.317 -  OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o"
  92.318 -  LIBS="libgcc.a libgcc_eh.a libobjc.a"
  92.319 -  LIBS_1="$LIBSTDC \
  92.320 -          $LIBGCJ libgcj.spec \
  92.321 -          $LIBFFI "
  92.322 -  LIBS_2="libstdc++.a libstdc++.la \
  92.323 -	  libsupc++.a libsupc++.la \
  92.324 -	  libgcj.a libgcj.la \
  92.325 -          libffi.a libffi.la"
  92.326 -  INCLUDE="include"
  92.327 -
  92.328 -  for CPU in sh3 sh3eb sh4 sh4eb; do
  92.329 -    mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}
  92.330 -    mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/${CPU}-linux/{lib,share/java}
  92.331 -    # Make symbolic links for include dir.
  92.332 -    ln -s ../sh-linux/include $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/include
  92.333 -
  92.334 -    # Make symbolic links for libgcj.jar
  92.335 -    ln -s ../../sh-linux/share/java/libgcj-%{GCC_VERSION}.jar $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/share/java/libgcj-%{GCC_VERSION}.jar
  92.336 -
  92.337 -    # Make symbolic links for executables.
  92.338 -    for p in ${PROGS}; do
  92.339 -      ln -s shCPU-linux-GCC $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-$p
  92.340 -    done
  92.341 -    ln -s sh-linux-gcjh $RPM_BUILD_ROOT%{_prefix}/bin/${CPU}-linux-gcjh
  92.342 -
  92.343 -    case "${CPU}" in
  92.344 -        sh3)
  92.345 -	    MULTILIBDIR=
  92.346 -	    MULTIPARENTDIR=
  92.347 -	    AS_ENDIAN_FLAG="-little"
  92.348 -	    CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
  92.349 -	    CPP_CPU_DEFS='-D__SH3__ -D__sh3__'
  92.350 -	    CC1_CPU_ENDIAN_FLAGS="-ml -m3"
  92.351 -	    CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m3"
  92.352 -	    LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"
  92.353 -	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3-linux/lib"
  92.354 -        ;;
  92.355 -        sh3eb)
  92.356 -	    MULTILIBDIR=/mb
  92.357 -	    MULTIPARENTDIR=../
  92.358 -	    AS_ENDIAN_FLAG="-big"
  92.359 -	    CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
  92.360 -	    CPP_CPU_DEFS='-D__SH3__ -D__sh3__'
  92.361 -	    CC1_CPU_ENDIAN_FLAGS="-mb -m3"
  92.362 -	    CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m3"
  92.363 -	    LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"
  92.364 -	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh3eb-linux/lib"
  92.365 -        ;;
  92.366 -        sh4)
  92.367 -	    MULTILIBDIR=/m4
  92.368 -	    MULTIPARENTDIR=../
  92.369 -	    AS_ENDIAN_FLAG="-little"
  92.370 -	    CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
  92.371 -	    CPP_CPU_DEFS="-D__SH4__"
  92.372 -	    CC1_CPU_ENDIAN_FLAGS="-ml -m4"
  92.373 -	    CC1PLUS_CPU_ENDIAN_FLAGS="-ml -m4"
  92.374 -	    LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh4"
  92.375 -	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh4-linux/lib"
  92.376 -        ;;
  92.377 -        sh4eb)
  92.378 -	    MULTILIBDIR=/mb/m4
  92.379 -	    MULTIPARENTDIR=../../
  92.380 -	    AS_ENDIAN_FLAG="-big"
  92.381 -	    CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
  92.382 -	    CPP_CPU_DEFS="-D__SH4__"
  92.383 -	    CC1_CPU_ENDIAN_FLAGS="-mb -m4"
  92.384 -	    CC1PLUS_CPU_ENDIAN_FLAGS="-mb -m4"
  92.385 -	    LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh4"
  92.386 -	    LINKER_RPATH_LINK_FLAG="-rpath-link %{_prefix}/sh4eb-linux/lib"
  92.387 -        ;;
  92.388 -    esac
  92.389 -
  92.390 -    # Make symbolic links for GCC drivers, objects, libraries, and include dir.
  92.391 -    for f in ${DRIVERS} ${INCLUDE}; do
  92.392 -       if [ -a $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/$f ]; then
  92.393 -         ln -s ../../sh-linux/%{GCC_VERSION}/$f $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/$f
  92.394 -       fi
  92.395 -    done
  92.396 -    for f in ${OBJS} ${LIBS}; do
  92.397 -       if [ -a $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}${MULTILIBDIR}/$f ]; then
  92.398 -         ln -s ../../sh-linux/%{GCC_VERSION}${MULTILIBDIR}/$f $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/$f
  92.399 -       fi
  92.400 -    done
  92.401 -
  92.402 -    for f in ${LIBS_1} ${LIBS_2}; do
  92.403 -      if [ -e $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f ]; then
  92.404 -        mv -f $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f $RPM_BUILD_ROOT%{_prefix}/${CPU}-linux/lib
  92.405 -        ln -s ${MULTIPARENTDIR}../../${CPU}-linux/lib/$f $RPM_BUILD_ROOT%{_prefix}/sh-linux/lib${MULTILIBDIR}/$f
  92.406 -      fi
  92.407 -    done
  92.408 -
  92.409 -    sed -e "s+@AS_ENDIAN_FLAG@+${AS_ENDIAN_FLAG}+" \
  92.410 -        -e "s+@CPP_ENDIAN_DEF@+${CPP_ENDIAN_DEF}+" \
  92.411 -        -e "s+@CPP_CPU_DEFS@+${CPP_CPU_DEFS}+" \
  92.412 -        -e "s+@CC1_CPU_ENDIAN_FLAGS@+${CC1_CPU_ENDIAN_FLAGS}+" \
  92.413 -        -e "s+@CC1PLUS_CPU_ENDIAN_FLAGS@+${CC1PLUS_CPU_ENDIAN_FLAGS}+" \
  92.414 -        -e "s+@LINKER_CPU_ENDIAN_FLAGS@+${LINKER_CPU_ENDIAN_FLAGS}+" \
  92.415 -        -e "s+@LINKER_RPATH_LINK_FLAG@+${LINKER_RPATH_LINK_FLAG}+" \
  92.416 -        debian/edit-specs.in >${arch}/edit-specs-${CPU}.sed
  92.417 -
  92.418 -    sed -f ${arch}/edit-specs-${CPU}.sed \
  92.419 -        $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/specs \
  92.420 -        > $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${CPU}-linux/%{GCC_VERSION}/specs
  92.421 -
  92.422 -  done
  92.423 -
  92.424 -%else
  92.425 -  ARCH_STRTIP=%{_target}-strip
  92.426 -  EXESUFFIX=""
  92.427 -  TOOLPREFIX=""
  92.428 -  ln -s ..%{_prefix}/bin/cpp ${RPM_BUILD_ROOT}/lib/cpp
  92.429 -  ln -s gcc ${RPM_BUILD_ROOT}%{_prefix}/bin/cc
  92.430 -  arch=%{_target}
  92.431 -  make DESTDIR=${RPM_BUILD_ROOT} \
  92.432 -	install -C ${arch}
  92.433 -  if [ %{TARGET_JAVA} -ne 0 ]; then
  92.434 -    make DESTDIR=${RPM_BUILD_ROOT} install -C ${arch}/${arch}/libffi
  92.435 -    make DESTDIR=${RPM_BUILD_ROOT} install -C ${arch}/${arch}/fastjar
  92.436 -    mv -f ${RPM_BUILD_ROOT}/%{_prefix}/%{_lib}/libgcj.spec \
  92.437 -          ${RPM_BUILD_ROOT}/%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/
  92.438 -  fi
  92.439 -  $ARCH_STRTIP $RPM_BUILD_ROOT%{_prefix}/bin/gcov$EXESUFFIX || :
  92.440 -
  92.441 -cat >${arch}/edit-specs <<EOF
  92.442 -/^*cross_compile:$/ {
  92.443 -n
  92.444 -c\\
  92.445 -0
  92.446 -}
  92.447 -EOF
  92.448 -  sed -f ${arch}/edit-specs -e 's#-rpath-link.*/usr/%{_target}/lib##' \
  92.449 -     ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs \
  92.450 -    >${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs.$$
  92.451 -  mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs.$$ \
  92.452 -        ${RPM_BUILD_ROOT}%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/specs
  92.453 -
  92.454 -  sed -e "s/dependency_libs=.*/dependency_libs='-lm -lgcc -lc -lgcc'/" \
  92.455 -     ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la \
  92.456 -    >${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la.$$
  92.457 -  mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la.$$ \
  92.458 -        ${RPM_BUILD_ROOT}%{_prefix}/lib/libstdc++.la
  92.459 -
  92.460 -  sed -e "s/dependency_libs=.*/dependency_libs='-lpthread -ldl -lz -lm -lgcc -lc -lgcc'/" \
  92.461 -     ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la \
  92.462 -    >${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la.$$
  92.463 -  mv -f ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la.$$ \
  92.464 -        ${RPM_BUILD_ROOT}%{_prefix}/lib/libgcj.la
  92.465 -
  92.466 -cat >$RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/syslimits.h <<EOF
  92.467 -#define _GCC_NEXT_LIMITS_H		/* tell gcc's limits.h to recurse */
  92.468 -#include_next <limits.h>
  92.469 -#undef _GCC_NEXT_LIMITS_H
  92.470 -EOF
  92.471 -
  92.472 -%endif
  92.473 -
  92.474 -  $ARCH_STRTIP $RPM_BUILD_ROOT%{_prefix}/bin/${TOOLPREFIX}{gcc,cpp,c++,c++filt,gcj,gcjh,gij,jar,grepjar,jcf-dump,jv-convert,jv-scan}$EXESUFFIX || :
  92.475 -  FULLPATH=$(dirname $RPM_BUILD_ROOT%{_prefix}/lib/gcc-lib/${arch}/%{GCC_VERSION}/cc1${EXESUFFIX})
  92.476 -  $ARCH_STRTIP $FULLPATH/{cc1${EXESUFFIX},cc1plus${EXESUFFIX},cpp0${EXESUFFIX},tradcpp0${EXESUFFIX},collect2${EXESUFFIX},jc1${EXESUFFIX},jvgenmain${EXESUFFIX}} || :
  92.477 -
  92.478 -  # Strip static libraries
  92.479 -  sh-linux-strip -S -R .comment `find $RPM_BUILD_ROOT -type f -name "*.a"` || :
  92.480 -
  92.481 -  # Strip ELF shared objects
  92.482 -  for f in `find $RPM_BUILD_ROOT -type f  \( -perm -0100 -or -perm -0010 -or -perm -0001 \) `; do
  92.483 -        if file $f | grep -q "shared object.*not stripped"; then
  92.484 -                sh-linux-strip --strip-unneeded -R .comment $f
  92.485 -        fi
  92.486 -  done
  92.487 -
  92.488 -%clean
  92.489 -rm -rf $RPM_BUILD_ROOT
  92.490 -
  92.491 -# ==================== Cross Compiler ===============================
  92.492 -%ifarch i386
  92.493 -
  92.494 -%files sh-linux
  92.495 -%defattr(-,root,root)
  92.496 -%{_prefix}/bin/sh*
  92.497 -%dir %{_prefix}/lib/gcc-lib/sh-linux
  92.498 -%dir %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}
  92.499 -%dir %{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include
  92.500 -%dir %{_prefix}/lib/gcc-lib/sh3-linux
  92.501 -%dir %{_prefix}/lib/gcc-lib/sh3-linux/%{GCC_VERSION}
  92.502 -%dir %{_prefix}/lib/gcc-lib/sh3eb-linux
  92.503 -%dir %{_prefix}/lib/gcc-lib/sh3eb-linux/%{GCC_VERSION}
  92.504 -%dir %{_prefix}/lib/gcc-lib/sh4-linux
  92.505 -%dir %{_prefix}/lib/gcc-lib/sh4-linux/%{GCC_VERSION}
  92.506 -%dir %{_prefix}/lib/gcc-lib/sh4eb-linux
  92.507 -%dir %{_prefix}/lib/gcc-lib/sh4eb-linux/%{GCC_VERSION}
  92.508 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cc1
  92.509 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cc1plus
  92.510 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/collect2
  92.511 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/cpp0
  92.512 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/*.o
  92.513 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/libgcc*.a
  92.514 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/specs
  92.515 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/tradcpp0
  92.516 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/jc1
  92.517 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/jvgenmain
  92.518 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/m4
  92.519 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/mb
  92.520 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stddef.h
  92.521 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stdarg.h
  92.522 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/varargs.h
  92.523 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/float.h
  92.524 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/limits.h
  92.525 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/stdbool.h
  92.526 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/iso646.h
  92.527 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/syslimits.h
  92.528 -%{_prefix}/lib/gcc-lib/sh-linux/%{GCC_VERSION}/include/README
  92.529 -%{_prefix}/lib/gcc-lib/sh3-linux/%{GCC_VERSION}/*
  92.530 -%{_prefix}/lib/gcc-lib/sh3eb-linux/%{GCC_VERSION}/*
  92.531 -%{_prefix}/lib/gcc-lib/sh4-linux/%{GCC_VERSION}/*
  92.532 -%{_prefix}/lib/gcc-lib/sh4eb-linux/%{GCC_VERSION}/*
  92.533 -%{_mandir}/man1/sh-linux-*
  92.534 -%dir %{_prefix}/sh-linux/include
  92.535 -%{_prefix}/sh3-linux/include
  92.536 -%{_prefix}/sh3eb-linux/include
  92.537 -%{_prefix}/sh4-linux/include
  92.538 -%{_prefix}/sh4eb-linux/include
  92.539 -%endif
  92.540 -
  92.541 -%if %{TARGET_LIBSTDC}
  92.542 -%ifarch i386
  92.543 -%{_prefix}/sh-linux/include/g++-v3
  92.544 -%{_prefix}/sh-linux/lib/libs*
  92.545 -%{_prefix}/sh-linux/lib/m4/libs*
  92.546 -%{_prefix}/sh-linux/lib/mb/libs*
  92.547 -%{_prefix}/sh-linux/lib/mb/m4/libs*
  92.548 -%{_prefix}/sh3-linux/lib/libs*
  92.549 -%{_prefix}/sh4-linux/lib/libs*
  92.550 -%{_prefix}/sh3eb-linux/lib/libs*
  92.551 -%{_prefix}/sh4eb-linux/lib/libs*
  92.552 -%endif
  92.553 -%endif
  92.554 -
  92.555 -%if %{TARGET_JAVA}
  92.556 -%ifarch i386
  92.557 -%files -n libgcj-sh-linux
  92.558 -%defattr(-,root,root)
  92.559 -%{_prefix}/sh-linux/include/*.h
  92.560 -%{_prefix}/sh-linux/include/gcj
  92.561 -%{_prefix}/sh-linux/include/gnu/*
  92.562 -%{_prefix}/sh-linux/include/java
  92.563 -%{_prefix}/sh-linux/lib/lib*gcj*
  92.564 -%{_prefix}/sh-linux/lib/m4/lib*gcj*
  92.565 -%{_prefix}/sh-linux/lib/mb/lib*gcj*
  92.566 -%{_prefix}/sh-linux/lib/mb/m4/lib*gcj*
  92.567 -%{_prefix}/sh-linux/lib/libffi*
  92.568 -%{_prefix}/sh-linux/lib/m4/libffi*
  92.569 -%{_prefix}/sh-linux/lib/mb/libffi*
  92.570 -%{_prefix}/sh-linux/lib/mb/m4/libffi*
  92.571 -%{_prefix}/sh-linux/share/java/libgcj-%{GCC_VERSION}.jar
  92.572 -%{_prefix}/sh3-linux/lib/lib*gcj*
  92.573 -%{_prefix}/sh3-linux/lib/libffi*
  92.574 -%{_prefix}/sh3-linux/share/java/libgcj-%{GCC_VERSION}.jar
  92.575 -%{_prefix}/sh4-linux/lib/lib*gcj*
  92.576 -%{_prefix}/sh4-linux/lib/libffi*
  92.577 -%{_prefix}/sh4-linux/share/java/libgcj-%{GCC_VERSION}.jar
  92.578 -%{_prefix}/sh3eb-linux/lib/lib*gcj*
  92.579 -%{_prefix}/sh3eb-linux/lib/libffi*
  92.580 -%{_prefix}/sh3eb-linux/share/java/libgcj-%{GCC_VERSION}.jar
  92.581 -%{_prefix}/sh4eb-linux/lib/lib*gcj*
  92.582 -%{_prefix}/sh4eb-linux/lib/libffi*
  92.583 -%{_prefix}/sh4eb-linux/share/java/libgcj-%{GCC_VERSION}.jar
  92.584 -%endif
  92.585 -%endif
  92.586 -
  92.587 -%ifarch sh3 sh3eb sh4 sh4eb
  92.588 -# =========================== Native Compiler =================================
  92.589 -%files
  92.590 -%defattr(-,root,root)
  92.591 -%dir %{_prefix}/lib/gcc-lib/%{_target}
  92.592 -%dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}
  92.593 -%dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include
  92.594 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cc1
  92.595 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/collect2
  92.596 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cpp0
  92.597 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/crt*.o
  92.598 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/libgcc*.a
  92.599 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/specs
  92.600 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/tradcpp0
  92.601 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stddef.h
  92.602 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stdarg.h
  92.603 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/varargs.h
  92.604 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/float.h
  92.605 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/limits.h
  92.606 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/stdbool.h
  92.607 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/iso646.h
  92.608 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/syslimits.h
  92.609 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/include/README
  92.610 -%{_prefix}/bin/gcc
  92.611 -%{_prefix}/bin/%{_target}-gcc
  92.612 -%{_prefix}/bin/cpp
  92.613 -%{_prefix}/bin/gccbug
  92.614 -%{_prefix}/bin/gcov
  92.615 -%{_prefix}/bin/cc
  92.616 -/lib/cpp
  92.617 -%{_infodir}/cpp*
  92.618 -%{_infodir}/gcc*
  92.619 -
  92.620 -%if 0
  92.621 -%files libgcc
  92.622 -%defattr(-,root,root)
  92.623 -/lib/libgcc_s.so*
  92.624 -%endif
  92.625 -
  92.626 -%files c++
  92.627 -%defattr(-,root,root)
  92.628 -%{_prefix}/bin/c++
  92.629 -%{_prefix}/bin/g++
  92.630 -%{_prefix}/bin/c++filt
  92.631 -%{_prefix}/bin/%{_target}-c++
  92.632 -%{_prefix}/bin/%{_target}-g++
  92.633 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/cc1plus
  92.634 -%endif
  92.635 -
  92.636 -%if %{TARGET_LIBSTDC}
  92.637 -%ifarch sh3 sh3eb sh4 sh4eb
  92.638 -%files -n libstdc++
  92.639 -%defattr(-,root,root)
  92.640 -%{_prefix}/lib/libstdc++.so*
  92.641 -
  92.642 -%files -n libstdc++-devel
  92.643 -%defattr(-,root,root)
  92.644 -%{_prefix}/include/g++-v3
  92.645 -%{_prefix}/lib/libstdc++.*a
  92.646 -%endif
  92.647 -%endif
  92.648 -
  92.649 -%if %{TARGET_JAVA}
  92.650 -%ifarch sh3 sh3eb sh4 sh4eb
  92.651 -%files java
  92.652 -%defattr(-,root,root)
  92.653 -%{_prefix}/bin/addr2name.awk
  92.654 -%{_prefix}/bin/gcj
  92.655 -%{_prefix}/bin/gcjh
  92.656 -%{_prefix}/bin/gij
  92.657 -%{_prefix}/bin/jar
  92.658 -%{_prefix}/bin/grepjar
  92.659 -%{_prefix}/bin/jcf-dump
  92.660 -%{_prefix}/bin/jv-convert
  92.661 -%{_prefix}/bin/jv-scan
  92.662 -%dir %{_prefix}/lib/gcc-lib
  92.663 -%dir %{_prefix}/lib/gcc-lib/%{_target}
  92.664 -%dir %{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}
  92.665 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/jc1
  92.666 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/jvgenmain
  92.667 -%{_infodir}/gcj*
  92.668 -
  92.669 -%files -n libgcj
  92.670 -%defattr(-,root,root)
  92.671 -%{_prefix}/%{_lib}/libgcj.so*
  92.672 -%{_prefix}/%{_lib}/libffi*.so*
  92.673 -%{_prefix}/lib/gcc-lib/%{_target}/%{GCC_VERSION}/libgcj.spec
  92.674 -%{_prefix}/share/java/libgcj-%{GCC_VERSION}.jar
  92.675 -
  92.676 -%files -n libgcj-devel
  92.677 -%defattr(-,root,root)
  92.678 -%{_prefix}/include/*.h
  92.679 -%{_prefix}/include/gcj
  92.680 -%{_prefix}/include/gnu/*
  92.681 -%{_prefix}/include/java
  92.682 -%{_prefix}/lib/libgcj.*a
  92.683 -%{_prefix}/lib/libffi.*a
  92.684 -%endif
  92.685 -%endif
  92.686 -
  92.687 -%changelog
  92.688 -* Wed Feb 19 2003 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.689 -- version 3.2.2.
  92.690 -
  92.691 -* Tue Feb 19 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.692 -- version 3.0.4.
  92.693 -
  92.694 -* Tue Feb 12 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.695 -- add java support.
  92.696 -
  92.697 -* Thu Feb 7 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.698 -- follow debian/SH update.
  92.699 -
  92.700 -* Tue Feb 5 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.701 -- follow debian/SH update.
  92.702 -
  92.703 -* Thu Jan 24 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.704 -- rebuild with new binutils.
  92.705 -
  92.706 -* Tue Jan 22 2002 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.707 -- leaf function optimization fixed.
  92.708 -
  92.709 -* Thu Dec 06 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.710 -- add gcc-ice-rml patch.
  92.711 -
  92.712 -* Tue Nov 13 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.713 -- add configure option.
  92.714 -
  92.715 -* Thu Nov 01 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.716 -- tablejump fix by gniibe.
  92.717 -
  92.718 -* Mon Oct 22 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.719 -- updated gcc patch.
  92.720 -
  92.721 -* Wed Oct 17 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.722 -- updated gcc patch.
  92.723 -
  92.724 -* Tue Oct 02 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.725 -- gcc/config/sh/sh.c bug fix.
  92.726 -
  92.727 -* Fri Aug 24 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.728 -- gcc version 3.0.1.
  92.729 -
  92.730 -* Thu Jun 28 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.731 -- gcc version 3.0.
  92.732 -- Add libstdc++ package.
  92.733 -
  92.734 -* Mon Apr 23 2001 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.735 -- Add cygwin host.
  92.736 -
  92.737 -* Sat Dec 23 2000 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.738 -- fix file attribute.
  92.739 -- add asmspecs patch.
  92.740 -
  92.741 -* Sat Nov 11 2000 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
  92.742 -- initial version.
    93.1 --- a/patches/gcc/3.3.6/100-fix-fixincl.patch	Wed Oct 28 12:03:38 2009 +0100
    93.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    93.3 @@ -1,70 +0,0 @@
    93.4 -See http://gcc.gnu.org/PR22541
    93.5 -
    93.6 -From: Dan Kegel
    93.7 -
    93.8 -When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
    93.9 -(the only two I've tried like this), the configure script happily copies
   93.10 -the glibc include files from include to sys-include; here's the line
   93.11 -from the log file (with $PREFIX instead of the real prefix):
   93.12 -
   93.13 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
   93.14 -
   93.15 -But later, when running fixincludes, it gives the error message
   93.16 - The directory that should contain system headers does not exist:
   93.17 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
   93.18 -
   93.19 -Nevertheless, it continues building; the header files it installs in
   93.20 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
   93.21 -do not include the boilerplate that would cause it to #include_next the
   93.22 -glibc headers in the system header directory.
   93.23 -Thus the resulting toolchain can't compile the following program:
   93.24 -#include <limits.h>
   93.25 -int x = PATH_MAX;
   93.26 -because its limits.h doesn't include the glibc header.
   93.27 -
   93.28 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
   93.29 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
   93.30 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
   93.31 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
   93.32 -it is only created later, during 'make install'.  (Which makes this problem
   93.33 -confusing, since one only notices the breakage well after 'make install',
   93.34 -at which point the path configure complained about does exist, and has the
   93.35 -right stuff in it.)
   93.36 -
   93.37 -A possible fix is to replace the line in gcc/Makefile.in that says
   93.38 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
   93.39 -with a version that gets rid of extra ..'s, e.g.
   93.40 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
   93.41 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
   93.42 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
   93.43 -
   93.44 -
   93.45 ---- gcc-3.4.3/gcc/Makefile.in.foo	2005-05-20 11:41:39.000000000 -0700
   93.46 -+++ gcc-3.4.3/gcc/Makefile.in	2005-05-20 12:08:46.000000000 -0700
   93.47 -@@ -350,7 +350,10 @@
   93.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
   93.49 - 
   93.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
   93.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
   93.52 -+# Purge it of unneccessary internal relative paths
   93.53 -+# to directories that might not exist yet.
   93.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
   93.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
   93.56 - 
   93.57 - # Control whether to run fixproto and fixincludes.
   93.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
   93.59 -@@ -2532,11 +2535,13 @@
   93.60 - 	$(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
   93.61 - 
   93.62 - # Build fixed copies of system files.
   93.63 -+# Abort if no system headers available, unless building a crosscompiler.
   93.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
   93.65 - stmp-fixinc: fixinc.sh gsyslimits.h
   93.66 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
   93.67 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
   93.68 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
   93.69 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
   93.70 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
   93.71 - 	  then sleep 1; else exit 1; fi; \
   93.72 - 	fi
   93.73 - 	rm -rf include; mkdir include
    94.1 --- a/patches/gcc/3.3.6/110-arm-bigendian.patch	Wed Oct 28 12:03:38 2009 +0100
    94.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    94.3 @@ -1,62 +0,0 @@
    94.4 -diff -urN gcc-3.3.4.orig/gcc/config/arm/linux-elf.h gcc-3.3.4/gcc/config/arm/linux-elf.h
    94.5 ---- gcc-3.3.4.orig/gcc/config/arm/linux-elf.h	2004-03-30 22:43:45.000000000 +0200
    94.6 -+++ gcc-3.3.4/gcc/config/arm/linux-elf.h	2004-08-20 02:13:02.969084177 +0200
    94.7 -@@ -30,17 +30,31 @@
    94.8 - /* Do not assume anything about header files.  */
    94.9 - #define NO_IMPLICIT_EXTERN_C
   94.10 - 
   94.11 -+/*
   94.12 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
   94.13 -+ * (big endian) configurations.
   94.14 -+ */
   94.15 -+#if TARGET_BIG_ENDIAN_DEFAULT
   94.16 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
   94.17 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
   94.18 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
   94.19 -+#else
   94.20 -+#define TARGET_ENDIAN_DEFAULT 0
   94.21 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
   94.22 -+#define TARGET_LINKER_EMULATION "armelf_linux"
   94.23 -+#endif
   94.24 -+
   94.25 - /* Default is to use APCS-32 mode.  */
   94.26 - #undef  TARGET_DEFAULT
   94.27 --#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
   94.28 -+#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS | TARGET_ENDIAN_DEFAULT)
   94.29 - 
   94.30 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
   94.31 - 
   94.32 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
   94.33 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
   94.34 - 
   94.35 - #undef  MULTILIB_DEFAULTS
   94.36 - #define MULTILIB_DEFAULTS \
   94.37 --	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   94.38 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
   94.39 - 
   94.40 - #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
   94.41 - 
   94.42 -@@ -88,7 +102,7 @@
   94.43 -    %{rdynamic:-export-dynamic} \
   94.44 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   94.45 -    -X \
   94.46 --   %{mbig-endian:-EB}" \
   94.47 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
   94.48 -    SUBTARGET_EXTRA_LINK_SPEC
   94.49 - 
   94.50 - #define TARGET_OS_CPP_BUILTINS()		\
   94.51 -diff -urN gcc-3.3.4.orig/gcc/config.gcc gcc-3.3.4/gcc/config.gcc
   94.52 ---- gcc-3.3.4.orig/gcc/config.gcc	2004-04-29 06:42:47.000000000 +0200
   94.53 -+++ gcc-3.3.4/gcc/config.gcc	2004-08-20 02:11:04.326143343 +0200
   94.54 -@@ -699,6 +699,11 @@
   94.55 - 	;;
   94.56 - arm*-*-linux*)			# ARM GNU/Linux with ELF
   94.57 - 	tm_file="dbxelf.h elfos.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
   94.58 -+	case $machine in
   94.59 -+	arm*b-*)
   94.60 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
   94.61 -+		;;
   94.62 -+	esac
   94.63 - 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
   94.64 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   94.65 - 	gnu_ld=yes
    95.1 --- a/patches/gcc/3.3.6/120-arm-pr22528.patch	Wed Oct 28 12:03:38 2009 +0100
    95.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    95.3 @@ -1,71 +0,0 @@
    95.4 -From http://gcc.gnu.org/ml/gcc-patches/2003-11/msg00832.html, by
    95.5 -Richard Earnshaw.  Fixes http://gcc.gnu.org/PR22528
    95.6 -
    95.7 ---- gcc-3.3.4/gcc/config/arm/arm.md.orig	2004-03-30 22:43:44.000000000 +0200
    95.8 -+++ gcc-3.3.4/gcc/config/arm/arm.md	2005-08-15 12:21:55.000000000 +0200
    95.9 -@@ -4275,7 +4275,7 @@
   95.10 -    (set (match_dup 2)
   95.11 - 	(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
   95.12 -    ;; store the high byte
   95.13 --   (set (match_dup 4) (subreg:QI (match_dup 2) 0))]	;explicit subreg safe
   95.14 -+   (set (match_dup 4) (match_dup 5))]
   95.15 -   "TARGET_ARM"
   95.16 -   "
   95.17 -   {
   95.18 -@@ -4291,7 +4291,8 @@
   95.19 -     operands[1] = adjust_address (operands[1], QImode, 0);
   95.20 -     operands[3] = gen_lowpart (QImode, operands[0]);
   95.21 -     operands[0] = gen_lowpart (SImode, operands[0]);
   95.22 --    operands[2] = gen_reg_rtx (SImode); 
   95.23 -+    operands[2] = gen_reg_rtx (SImode);
   95.24 -+    operands[5] = gen_lowpart (QImode, operands[2]);
   95.25 -   }"
   95.26 - )
   95.27 - 
   95.28 -@@ -4299,7 +4300,7 @@
   95.29 -   [(set (match_dup 4) (match_dup 3))
   95.30 -    (set (match_dup 2)
   95.31 - 	(ashiftrt:SI (match_operand 0 "" "") (const_int 8)))
   95.32 --   (set (match_operand 1 "" "")	(subreg:QI (match_dup 2) 3))]
   95.33 -+   (set (match_operand 1 "" "")	(match_dup 5))]
   95.34 -   "TARGET_ARM"
   95.35 -   "
   95.36 -   {
   95.37 -@@ -4316,13 +4317,14 @@
   95.38 -     operands[3] = gen_lowpart (QImode, operands[0]);
   95.39 -     operands[0] = gen_lowpart (SImode, operands[0]);
   95.40 -     operands[2] = gen_reg_rtx (SImode);
   95.41 -+    operands[5] = gen_lowpart (QImode, operands[2]);
   95.42 -   }"
   95.43 - )
   95.44 - 
   95.45 - ;; Subroutine to store a half word integer constant into memory.
   95.46 - (define_expand "storeinthi"
   95.47 -   [(set (match_operand 0 "" "")
   95.48 --	(subreg:QI (match_operand 1 "" "") 0))
   95.49 -+	(match_operand 1 "" ""))
   95.50 -    (set (match_dup 3) (match_dup 2))]
   95.51 -   "TARGET_ARM"
   95.52 -   "
   95.53 -@@ -4363,6 +4365,7 @@
   95.54 -     operands[3] = adjust_address (op0, QImode, 1);
   95.55 -     operands[0] = adjust_address (operands[0], QImode, 0);
   95.56 -     operands[2] = gen_lowpart (QImode, operands[2]);
   95.57 -+    operands[1] = gen_lowpart (QImode, operands[1]);
   95.58 -   }"
   95.59 - )
   95.60 - 
   95.61 -@@ -4682,11 +4685,12 @@
   95.62 -    (set (match_dup 3)
   95.63 - 	(ashiftrt:SI (match_dup 2) (const_int 16)))
   95.64 -    (set (match_operand:HI 0 "s_register_operand" "")
   95.65 --	(subreg:HI (match_dup 3) 0))]
   95.66 -+	(match_dup 4))]
   95.67 -   "TARGET_ARM"
   95.68 -   "
   95.69 -   operands[2] = gen_reg_rtx (SImode);
   95.70 -   operands[3] = gen_reg_rtx (SImode);
   95.71 -+  operands[4] = gen_lowpart (HImode, operands[3]);
   95.72 -   "
   95.73 - )
   95.74 - 
    96.1 --- a/patches/gcc/4.0.0/100-fix-fixincl.patch	Wed Oct 28 12:03:38 2009 +0100
    96.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    96.3 @@ -1,72 +0,0 @@
    96.4 -See http://gcc.gnu.org/PR22541
    96.5 -
    96.6 -From: Dan Kegel
    96.7 -
    96.8 -When building gcc-3.4.3 or gcc-4.0.[01] into a clean $PREFIX (the only two I've tried like this),
    96.9 -the configure script happily copies the glibc include files from include to sys-include;
   96.10 -here's the line from the log file (with $PREFIX instead of the real prefix):
   96.11 -
   96.12 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
   96.13 -
   96.14 -But later, when running fixincludes, it gives the error message
   96.15 - The directory that should contain system headers does not exist:
   96.16 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
   96.17 -
   96.18 -Nevertheless, it continues building; the header files it installs in
   96.19 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
   96.20 -do not include the boilerplate that would cause it to #include_next the
   96.21 -glibc headers in the system header directory.
   96.22 -Thus the resulting toolchain can't compile the following program:
   96.23 -#include <limits.h>
   96.24 -int x = PATH_MAX;
   96.25 -because its limits.h doesn't include the glibc header.
   96.26 -
   96.27 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
   96.28 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
   96.29 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
   96.30 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
   96.31 -it is only created later, during 'make install'.  (Which makes this problem
   96.32 -confusing, since one only notices the breakage well after 'make install',
   96.33 -at which point the path configure complained about does exist, and has the
   96.34 -right stuff in it.)
   96.35 -
   96.36 -A possible fix is to replace the line in gcc/Makefile.in that says
   96.37 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
   96.38 -with a version that gets rid of extra ..'s, e.g.
   96.39 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
   96.40 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
   96.41 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
   96.42 -
   96.43 -[rediffed against gcc-4.0.0]
   96.44 -
   96.45 ---- gcc-4.0.0/gcc/Makefile.in.orig	2005-04-04 12:45:13.000000000 -0700
   96.46 -+++ gcc-4.0.0/gcc/Makefile.in	2005-05-20 12:33:43.000000000 -0700
   96.47 -@@ -378,7 +378,10 @@
   96.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
   96.49 - 
   96.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
   96.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
   96.52 -+# Purge it of unneccessary internal relative paths
   96.53 -+# to directories that might not exist yet.
   96.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
   96.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
   96.56 - 
   96.57 - # Control whether to run fixproto and fixincludes.
   96.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
   96.59 -@@ -2838,13 +2841,15 @@
   96.60 - ../$(build_subdir)/fixincludes/fixincl: ; @ :
   96.61 - 
   96.62 - # Build fixed copies of system files.
   96.63 -+# Abort if no system headers available, unless building a crosscompiler.
   96.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
   96.65 - stmp-fixinc: gsyslimits.h macro_list \
   96.66 -   ../$(build_subdir)/fixincludes/fixincl \
   96.67 -   ../$(build_subdir)/fixincludes/fixinc.sh
   96.68 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
   96.69 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
   96.70 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
   96.71 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
   96.72 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
   96.73 - 	  then sleep 1; else exit 1; fi; \
   96.74 - 	fi
   96.75 - 	rm -rf include; mkdir include
    97.1 --- a/patches/gcc/4.0.0/110-arm-bigendian.patch	Wed Oct 28 12:03:38 2009 +0100
    97.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    97.3 @@ -1,79 +0,0 @@
    97.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
    97.5 -Adds support for arm*b-linux* big-endian ARM targets
    97.6 -
    97.7 -Fixes following build error for big-endian ARM targets:
    97.8 -
    97.9 -armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/bin/../lib/gcc/armeb-unknown-linux-gnu/4.0.0/../../../../armeb-unknown-linux-gnu/bin/ld: unrecognised emulation mode: armelf_linux
   97.10 -Supported emulations: armelfb_linux armelfb
   97.11 -collect2: ld returned 1 exit status
   97.12 -make[2]: *** [crosstool-0.32/build/armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/csu/crt1.o] Error 1
   97.13 -make[2]: Leaving directory `crosstool-0.32/build/armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4/csu'
   97.14 -make[1]: *** [csu/subdir_lib] Error 2
   97.15 -make[1]: Leaving directory `crosstool-0.32/build/armeb-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/glibc-2.3.4'
   97.16 -make: *** [lib] Error 2
   97.17 -
   97.18 -
   97.19 -See http://gcc.gnu.org/PR16350
   97.20 -
   97.21 ---- gcc-4.0-20050305/gcc/config/arm/linux-elf.h.orig	2005-03-23 18:44:54.822707377 +0100
   97.22 -+++ gcc-4.0-20050305/gcc/config/arm/linux-elf.h	2005-03-23 18:46:18.228560206 +0100
   97.23 -@@ -31,19 +31,33 @@
   97.24 - /* Do not assume anything about header files.  */
   97.25 - #define NO_IMPLICIT_EXTERN_C
   97.26 - 
   97.27 -+/*
   97.28 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for
   97.29 -+ * arm*b-*-linux* (big endian) configurations.
   97.30 -+ */
   97.31 -+#if TARGET_BIG_ENDIAN_DEFAULT
   97.32 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
   97.33 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
   97.34 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
   97.35 -+#else
   97.36 -+#define TARGET_ENDIAN_DEFAULT 0
   97.37 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
   97.38 -+#define TARGET_LINKER_EMULATION "armelf_linux"
   97.39 -+#endif
   97.40 -+
   97.41 - #undef  TARGET_DEFAULT_FLOAT_ABI
   97.42 - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
   97.43 - 
   97.44 - #undef  TARGET_DEFAULT
   97.45 --#define TARGET_DEFAULT (0)
   97.46 -+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
   97.47 - 
   97.48 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
   97.49 - 
   97.50 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
   97.51 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
   97.52 - 
   97.53 - #undef  MULTILIB_DEFAULTS
   97.54 - #define MULTILIB_DEFAULTS \
   97.55 --	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
   97.56 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
   97.57 - 
   97.58 - /* The GNU C++ standard library requires that these macros be defined.  */
   97.59 - #undef CPLUSPLUS_CPP_SPEC
   97.60 -@@ -90,7 +104,7 @@
   97.61 -    %{rdynamic:-export-dynamic} \
   97.62 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   97.63 -    -X \
   97.64 --   %{mbig-endian:-EB}" \
   97.65 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
   97.66 -    SUBTARGET_EXTRA_LINK_SPEC
   97.67 - 
   97.68 - #define TARGET_OS_CPP_BUILTINS()		\
   97.69 ---- gcc-4.0-20050305/gcc/config.gcc.orig	2005-03-23 18:46:23.318105335 +0100
   97.70 -+++ gcc-4.0-20050305/gcc/config.gcc	2005-03-23 18:47:41.592546386 +0100
   97.71 -@@ -650,6 +650,11 @@
   97.72 - 	;;
   97.73 - arm*-*-linux*)			# ARM GNU/Linux with ELF
   97.74 - 	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"
   97.75 -+	case $target in
   97.76 -+	arm*b-*-linux*)
   97.77 -+		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
   97.78 -+		;;
   97.79 -+	esac
   97.80 - 	tmake_file="${tmake_file} arm/t-arm arm/t-linux"
   97.81 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   97.82 - 	gnu_ld=yes
    98.1 --- a/patches/gcc/4.0.0/120-pr20815-fix.patch	Wed Oct 28 12:03:38 2009 +0100
    98.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    98.3 @@ -1,121 +0,0 @@
    98.4 -Date: 18 May 2005 22:47:59 -0000
    98.5 -Message-ID: <20050518224759.7352.qmail@sourceware.org>
    98.6 -From: "hubicka at ucw dot cz" <gcc-bugzilla@gcc.gnu.org>
    98.7 -To: dank@kegel.com
    98.8 -References: <20050407215701.20815.dank@kegel.com>
    98.9 -Reply-To: gcc-bugzilla@gcc.gnu.org
   98.10 -Subject: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
   98.11 -
   98.12 -
   98.13 -------- Additional Comments From hubicka at ucw dot cz  2005-05-18 22:47 -------
   98.14 -Subject: Re: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
   98.15 -
   98.16 -> 
   98.17 -> ------- Additional Comments From hubicka at ucw dot cz  2005-05-18 22:22 -------
   98.18 -> Subject: Re: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
   98.19 -> 
   98.20 -> coverage_checksum_string already knows a bit about ignoring random seed
   98.21 -> produced mess.  It looks like this needs to be extended somehow to
   98.22 -> handle namespaces too...
   98.23 -
   98.24 -This seems to solve the missmatch.  Would it be possible to test it on
   98.25 -bigger testcase and if it works distile a testcase that don't use
   98.26 -file IO so it is more suitable for gcc regtesting?
   98.27 -
   98.28 -Index: coverage.c
   98.29 -===================================================================
   98.30 -RCS file: /cvs/gcc/gcc/gcc/coverage.c,v
   98.31 -retrieving revision 1.6.2.12.2.12
   98.32 -diff -c -3 -p -r1.6.2.12.2.12 coverage.c
   98.33 -*** gcc-old/gcc/coverage.c	18 May 2005 07:37:31 -0000	1.6.2.12.2.12
   98.34 ---- gcc/gcc/coverage.c	18 May 2005 22:45:36 -0000
   98.35 -*************** coverage_checksum_string (unsigned chksu
   98.36 -*** 471,505 ****
   98.37 -       as the checksums are used only for sanity checking.  */
   98.38 -    for (i = 0; string[i]; i++)
   98.39 -      {
   98.40 -        if (!strncmp (string + i, "_GLOBAL__", 9))
   98.41 -! 	for (i = i + 9; string[i]; i++)
   98.42 -! 	  if (string[i]=='_')
   98.43 -! 	    {
   98.44 -! 	      int y;
   98.45 -! 	      unsigned seed;
   98.46 -! 	      int scan;
   98.47 -! 
   98.48 -! 	      for (y = 1; y < 9; y++)
   98.49 -! 		if (!(string[i + y] >= '0' && string[i + y] <= '9')
   98.50 -! 		    && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
   98.51 -! 		  break;
   98.52 -! 	      if (y != 9 || string[i + 9] != '_')
   98.53 -! 		continue;
   98.54 -! 	      for (y = 10; y < 18; y++)
   98.55 -! 		if (!(string[i + y] >= '0' && string[i + y] <= '9')
   98.56 -! 		    && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
   98.57 -! 		  break;
   98.58 -! 	      if (y != 18)
   98.59 -! 		continue;
   98.60 -! 	      scan = sscanf (string + i + 10, "%X", &seed);
   98.61 -! 	      gcc_assert (scan);
   98.62 -! 	      if (seed != crc32_string (0, flag_random_seed))
   98.63 -! 		continue;
   98.64 -! 	      string = dup = xstrdup (string);
   98.65 -! 	      for (y = 10; y < 18; y++)
   98.66 -! 		dup[i + y] = '0';
   98.67 -! 	      break;
   98.68 -! 	    }
   98.69 -        break;
   98.70 -      }
   98.71 -  
   98.72 ---- 471,511 ----
   98.73 -       as the checksums are used only for sanity checking.  */
   98.74 -    for (i = 0; string[i]; i++)
   98.75 -      {
   98.76 -+       int offset = 0;
   98.77 -+       if (!strncmp (string + i, "_GLOBAL__N_", 11))
   98.78 -+ 	offset = 11;
   98.79 -        if (!strncmp (string + i, "_GLOBAL__", 9))
   98.80 -! 	offset = 9;
   98.81 -! 
   98.82 -!       /* C++ namespaces do have scheme:
   98.83 -!          _GLOBAL__N_<filename>_<wrongmagicnumber>_<magicnumber>functionname
   98.84 -! 	 since filename might contain extra underscores there seems
   98.85 -! 	 to be no better chance then walk all possible offsets looking
   98.86 -! 	 for magicnuber.  */
   98.87 -!       if (offset)
   98.88 -!         for (;string[offset]; offset++)
   98.89 -! 	  for (i = i + offset; string[i]; i++)
   98.90 -! 	    if (string[i]=='_')
   98.91 -! 	      {
   98.92 -! 		int y;
   98.93 -! 
   98.94 -! 		for (y = 1; y < 9; y++)
   98.95 -! 		  if (!(string[i + y] >= '0' && string[i + y] <= '9')
   98.96 -! 		      && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
   98.97 -! 		    break;
   98.98 -! 		if (y != 9 || string[i + 9] != '_')
   98.99 -! 		  continue;
  98.100 -! 		for (y = 10; y < 18; y++)
  98.101 -! 		  if (!(string[i + y] >= '0' && string[i + y] <= '9')
  98.102 -! 		      && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  98.103 -! 		    break;
  98.104 -! 		if (y != 18)
  98.105 -! 		  continue;
  98.106 -! 		if (!dup)
  98.107 -! 		  string = dup = xstrdup (string);
  98.108 -! 		for (y = 10; y < 18; y++)
  98.109 -! 		  dup[i + y] = '0';
  98.110 -! 	      }
  98.111 -        break;
  98.112 -      }
  98.113 -  
  98.114 -
  98.115 -
  98.116 --- 
  98.117 -
  98.118 -
  98.119 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20815
  98.120 -
  98.121 -------- You are receiving this mail because: -------
  98.122 -You reported the bug, or are watching the reporter.
  98.123 -
  98.124 -
    99.1 --- a/patches/gcc/4.0.0/130-pr20973-fix.patch	Wed Oct 28 12:03:38 2009 +0100
    99.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    99.3 @@ -1,80 +0,0 @@
    99.4 -http://gcc.gnu.org/PR20973
    99.5 -
    99.6 -"gcc 4 (about RC1) miscompiles khtml, in fact something in CSS, which basically 
    99.7 -leads to all websites being misrendered.  I can't easily reduce the testcase, 
    99.8 -but have applied the whole preprocessed source of css/cssstyleselector.ii. 
    99.9 - 
   99.10 -It is to be compiled with g++ -O2 -fPIC -march=i586 -mtune=i686 
   99.11 --fno-exceptions.  A more detailed analysis will follow, as we've found out 
   99.12 -some things already."
   99.13 -
   99.14 ----
   99.15 -
   99.16 -Subject: Bug 20973
   99.17 -
   99.18 -CVSROOT:	/cvs/gcc
   99.19 -Module name:	gcc
   99.20 -Branch: 	gcc-4_0-branch
   99.21 -Changes by:	matz@gcc.gnu.org	2005-04-22 17:30:21
   99.22 -
   99.23 -Modified files:
   99.24 -	gcc            : ChangeLog reload.c 
   99.25 -
   99.26 -Log message:
   99.27 -	PR middle-end/20973
   99.28 -	* reload.c (push_reload, find_dummy_reload): Check for uninitialized
   99.29 -	pseudos.
   99.30 -
   99.31 -Patches:
   99.32 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.177&r2=2.7592.2.178
   99.33 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/reload.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.268&r2=1.268.2.1
   99.34 -
   99.35 ----
   99.36 -
   99.37 -===================================================================
   99.38 -RCS file: /cvs/gcc/gcc/gcc/reload.c,v
   99.39 -retrieving revision 1.268
   99.40 -retrieving revision 1.268.2.1
   99.41 -diff -u -r1.268 -r1.268.2.1
   99.42 ---- gcc/gcc/reload.c	2005/02/24 22:06:06	1.268
   99.43 -+++ gcc/gcc/reload.c	2005/04/22 17:30:15	1.268.2.1
   99.44 -@@ -1520,7 +1520,7 @@
   99.45 -      But if there is no spilling in this block, that is OK.
   99.46 -      An explicitly used hard reg cannot be a spill reg.  */
   99.47 - 
   99.48 --  if (rld[i].reg_rtx == 0 && in != 0)
   99.49 -+  if (rld[i].reg_rtx == 0 && in != 0 && hard_regs_live_known)
   99.50 -     {
   99.51 -       rtx note;
   99.52 -       int regno;
   99.53 -@@ -1534,6 +1534,11 @@
   99.54 - 	    && REG_P (XEXP (note, 0))
   99.55 - 	    && (regno = REGNO (XEXP (note, 0))) < FIRST_PSEUDO_REGISTER
   99.56 - 	    && reg_mentioned_p (XEXP (note, 0), in)
   99.57 -+	    /* Check that we don't use a hardreg for an uninitialized
   99.58 -+	       pseudo.  See also find_dummy_reload().  */
   99.59 -+	    && (ORIGINAL_REGNO (XEXP (note, 0)) < FIRST_PSEUDO_REGISTER
   99.60 -+		|| ! bitmap_bit_p (ENTRY_BLOCK_PTR->global_live_at_end,
   99.61 -+				   ORIGINAL_REGNO (XEXP (note, 0))))
   99.62 - 	    && ! refers_to_regno_for_reload_p (regno,
   99.63 - 					       (regno
   99.64 - 						+ hard_regno_nregs[regno]
   99.65 -@@ -1997,7 +2002,17 @@
   99.66 - 				is a subreg, and in that case, out
   99.67 - 				has a real mode.  */
   99.68 - 			     (GET_MODE (out) != VOIDmode
   99.69 --			      ? GET_MODE (out) : outmode)))
   99.70 -+			      ? GET_MODE (out) : outmode))
   99.71 -+        /* But only do all this if we can be sure, that this input
   99.72 -+           operand doesn't correspond with an uninitialized pseudoreg.
   99.73 -+           global can assign some hardreg to it, which is the same as
   99.74 -+	   a different pseudo also currently live (as it can ignore the
   99.75 -+	   conflict).  So we never must introduce writes to such hardregs,
   99.76 -+	   as they would clobber the other live pseudo using the same.
   99.77 -+	   See also PR20973.  */
   99.78 -+      && (ORIGINAL_REGNO (in) < FIRST_PSEUDO_REGISTER
   99.79 -+          || ! bitmap_bit_p (ENTRY_BLOCK_PTR->global_live_at_end,
   99.80 -+			     ORIGINAL_REGNO (in))))
   99.81 -     {
   99.82 -       unsigned int regno = REGNO (in) + in_offset;
   99.83 -       unsigned int nwords = hard_regno_nregs[regno][inmode];
   100.1 --- a/patches/gcc/4.0.0/140-pr21173-fix.patch	Wed Oct 28 12:03:38 2009 +0100
   100.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   100.3 @@ -1,66 +0,0 @@
   100.4 -See http://gcc.gnu.org/PR21173
   100.5 -This is a fix for a last minute brown-bag bug with gcc-4.0.0
   100.6 -
   100.7 - ------- Additional Comment #24 From CVS Commits 2005-04-25 14:03 [reply] ------- 
   100.8 -Subject: Bug 21173
   100.9 -
  100.10 -CVSROOT:        /cvs/gcc
  100.11 -Module name:    gcc
  100.12 -Branch:         gcc-4_0-branch
  100.13 -Changes by:     dberlin@gcc.gnu.org     2005-04-25 14:02:38
  100.14 -
  100.15 -Modified files:
  100.16 -        gcc            : ChangeLog tree-ssa-pre.c 
  100.17 -
  100.18 -Log message:
  100.19 -        2005-04-25  Daniel Berlin  <dberlin@dberlin.org>
  100.20 -        
  100.21 -        Fix PR tree-optimization/21173
  100.22 -        
  100.23 -        * tree-ssa-pre.c (create_expression_by_pieces): Call unshare_expr
  100.24 -        on things we pass to force_gimple_operand.  Don't try to special
  100.25 -        case min_invariants.
  100.26 -
  100.27 -Patches:
  100.28 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.192&r2=2.7592.2.193
  100.29 -http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-pre.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.65.4.2&r2=2.65.4.3
  100.30 -
  100.31 -===================================================================
  100.32 -RCS file: /cvs/gcc/gcc/gcc/tree-ssa-pre.c,v
  100.33 -retrieving revision 2.65.4.2
  100.34 -retrieving revision 2.65.4.3
  100.35 -diff -u -r2.65.4.2 -r2.65.4.3
  100.36 ---- gcc/gcc/tree-ssa-pre.c	2005/04/17 23:40:31	2.65.4.2
  100.37 -+++ gcc/gcc/tree-ssa-pre.c	2005/04/25 14:02:31	2.65.4.3
  100.38 -@@ -1330,7 +1330,8 @@
  100.39 - 	
  100.40 - 	folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr), 
  100.41 - 			      genop1, genop2));
  100.42 --	newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL);
  100.43 -+	newexpr = force_gimple_operand (unshare_expr (folded), 
  100.44 -+					&forced_stmts, false, NULL);
  100.45 - 	if (forced_stmts)
  100.46 - 	  {
  100.47 - 	    tsi = tsi_start (forced_stmts);
  100.48 -@@ -1372,14 +1373,8 @@
  100.49 - 	add_referenced_tmp_var (temp);
  100.50 - 	folded = fold (build (TREE_CODE (expr), TREE_TYPE (expr), 
  100.51 - 			      genop1));
  100.52 --	/* If the generated operand  is already GIMPLE min_invariant
  100.53 --	   just use it instead of calling force_gimple_operand on it,
  100.54 --	   since that may make it not invariant by copying it into an
  100.55 --	   assignment.  */
  100.56 --	if (!is_gimple_min_invariant (genop1))
  100.57 --	  newexpr = force_gimple_operand (folded, &forced_stmts, false, NULL);
  100.58 --	else
  100.59 --	  newexpr = genop1;
  100.60 -+	newexpr = force_gimple_operand (unshare_expr (folded), 
  100.61 -+					&forced_stmts, false, NULL);
  100.62 - 	if (forced_stmts)
  100.63 - 	  {
  100.64 - 	    tsi = tsi_start (forced_stmts);
  100.65 -
  100.66 -    0K .                                                         1.24 MB/s
  100.67 -
  100.68 -13:16:54 (1.24 MB/s) - `-' saved [1303]
  100.69 -
   101.1 --- a/patches/gcc/4.0.0/150-pr21951.patch	Wed Oct 28 12:03:38 2009 +0100
   101.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   101.3 @@ -1,153 +0,0 @@
   101.4 -Workaround for buglet in std::vector etc. when compiling 
   101.5 -with gcc-4.0.0 -Wall -O -fno-exceptions
   101.6 -Fixes:
   101.7 -
   101.8 -.../include/c++/4.0.0/bits/vector.tcc: In member function 'void std::vector<_Tp,
   101.9 -_Alloc>::reserve(size_t) [with _Tp = int, _Alloc = std::allocator<int>]':
  101.10 -.../include/c++/4.0.0/bits/vector.tcc:78: warning: control may reach end of
  101.11 -non-void function 'typename _Alloc::pointer std::vector<_Tp,
  101.12 -_Alloc>::_M_allocate_and_copy(size_t, _ForwardIterator, _ForwardIterator) [with
  101.13 -_ForwardIterator = int*, _Tp = int, _Alloc = std::allocator<int>]' being inlined
  101.14 -
  101.15 -See http://gcc.gnu.org/PR21951
  101.16 -
  101.17 ---- gcc-4.0.1-20050607/libstdc++-v3/include/bits/stl_vector.h.old	2005-06-11 03:58:20.000000000 -0700
  101.18 -+++ gcc-4.0.1-20050607/libstdc++-v3/include/bits/stl_vector.h	2005-06-11 04:01:21.000000000 -0700
  101.19 -@@ -765,13 +765,13 @@
  101.20 - 	    {
  101.21 - 	      std::__uninitialized_copy_a(__first, __last, __result,
  101.22 - 					  this->get_allocator());
  101.23 --	      return __result;
  101.24 - 	    }
  101.25 - 	  catch(...)
  101.26 - 	    {
  101.27 - 	      _M_deallocate(__result, __n);
  101.28 - 	      __throw_exception_again;
  101.29 - 	    }
  101.30 -+	  return __result;
  101.31 - 	}
  101.32 - 
  101.33 - 
  101.34 ---- gcc-4.0.1-20050607/libstdc++-v3/include/bits/stl_uninitialized.h.old	2005-06-11 03:58:20.000000000 -0700
  101.35 -+++ gcc-4.0.1-20050607/libstdc++-v3/include/bits/stl_uninitialized.h	2005-06-11 04:05:18.990003248 -0700
  101.36 -@@ -84,13 +84,13 @@
  101.37 - 	{
  101.38 - 	  for (; __first != __last; ++__first, ++__cur)
  101.39 - 	    std::_Construct(&*__cur, *__first);
  101.40 --	  return __cur;
  101.41 - 	}
  101.42 -       catch(...)
  101.43 - 	{
  101.44 - 	  std::_Destroy(__result, __cur);
  101.45 - 	  __throw_exception_again;
  101.46 - 	}
  101.47 -+      return __cur;
  101.48 -     }
  101.49 - 
  101.50 -   /**
  101.51 -@@ -236,13 +236,13 @@
  101.52 - 	{
  101.53 - 	  for (; __first != __last; ++__first, ++__cur)
  101.54 - 	    __alloc.construct(&*__cur, *__first);
  101.55 --	  return __cur;
  101.56 - 	}
  101.57 -       catch(...)
  101.58 - 	{
  101.59 - 	  std::_Destroy(__result, __cur, __alloc);
  101.60 - 	  __throw_exception_again;
  101.61 - 	}
  101.62 -+      return __cur;
  101.63 -     }
  101.64 - 
  101.65 -   template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
  101.66 -@@ -337,11 +337,13 @@
  101.67 - 	{
  101.68 - 	  return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
  101.69 - 	}
  101.70 -+#ifdef __EXCEPTIONS  // work around http://gcc.gnu.org/PR21951 in gcc-4.0 only
  101.71 -       catch(...)
  101.72 - 	{
  101.73 - 	  std::_Destroy(__result, __mid, __alloc);
  101.74 - 	  __throw_exception_again;
  101.75 - 	}
  101.76 -+#endif
  101.77 -     }
  101.78 - 
  101.79 -   // __uninitialized_fill_copy
  101.80 -@@ -360,11 +362,13 @@
  101.81 - 	{
  101.82 - 	  return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
  101.83 - 	}
  101.84 -+#ifdef __EXCEPTIONS  // work around http://gcc.gnu.org/PR21951 in gcc-4.0 only
  101.85 -       catch(...)
  101.86 - 	{
  101.87 - 	  std::_Destroy(__result, __mid, __alloc);
  101.88 - 	  __throw_exception_again;
  101.89 - 	}
  101.90 -+#endif
  101.91 -     }
  101.92 - 
  101.93 -   // __uninitialized_copy_fill
  101.94 ---- gcc-4.0.1-20050607/libstdc++-v3/include/ext/rope.old	2005-06-11 03:58:20.000000000 -0700
  101.95 -+++ gcc-4.0.1-20050607/libstdc++-v3/include/ext/rope	2005-06-11 04:13:26.628870872 -0700
  101.96 -@@ -1645,11 +1645,13 @@
  101.97 - 	_S_cond_store_eos(__buf[__size]);
  101.98 - 	try
  101.99 - 	  { return _S_new_RopeLeaf(__buf, __size, __a); }
 101.100 -+#ifdef __EXCEPTIONS  // work around http://gcc.gnu.org/PR21951 in gcc-4.0 only
 101.101 - 	catch(...)
 101.102 - 	  {
 101.103 - 	    _RopeRep::__STL_FREE_STRING(__buf, __size, __a);
 101.104 - 	    __throw_exception_again;
 101.105 - 	  }
 101.106 -+#endif
 101.107 -       }
 101.108 - 
 101.109 -       // Concatenation of nonempty strings.
 101.110 ---- gcc-4.0.1-20050607/libstdc++-v3/include/ext/memory.old	2005-06-11 03:58:20.000000000 -0700
 101.111 -+++ gcc-4.0.1-20050607/libstdc++-v3/include/ext/memory	2005-06-11 04:13:52.897877376 -0700
 101.112 -@@ -85,11 +85,13 @@
 101.113 - 	    std::_Construct(&*__cur, *__first);
 101.114 - 	  return pair<_InputIter, _ForwardIter>(__first, __cur);
 101.115 - 	}
 101.116 -+#ifdef __EXCEPTIONS  // work around http://gcc.gnu.org/PR21951 in gcc-4.0 only
 101.117 -       catch(...)
 101.118 - 	{
 101.119 - 	  std::_Destroy(__result, __cur);
 101.120 - 	  __throw_exception_again;
 101.121 - 	}
 101.122 -+#endif
 101.123 -     }
 101.124 - 
 101.125 -   template<typename _RandomAccessIter, typename _Size, typename _ForwardIter>
 101.126 -@@ -144,11 +146,13 @@
 101.127 - 	    __alloc.construct(&*__cur, *__first);
 101.128 - 	  return pair<_InputIter, _ForwardIter>(__first, __cur);
 101.129 - 	}
 101.130 -+#ifdef __EXCEPTIONS  // work around http://gcc.gnu.org/PR21951 in gcc-4.0 only
 101.131 -       catch(...)
 101.132 - 	{
 101.133 - 	  std::_Destroy(__result, __cur, __alloc);
 101.134 - 	  __throw_exception_again;
 101.135 - 	}
 101.136 -+#endif
 101.137 -     }
 101.138 - 
 101.139 -   template<typename _InputIter, typename _Size, typename _ForwardIter,
 101.140 ---- gcc-4.0.1-20050607/libstdc++-v3/include/ext/hashtable.h.old	2005-06-11 03:58:20.000000000 -0700
 101.141 -+++ gcc-4.0.1-20050607/libstdc++-v3/include/ext/hashtable.h	2005-06-11 04:14:28.384482592 -0700
 101.142 -@@ -607,13 +607,13 @@
 101.143 - 	try
 101.144 - 	  {
 101.145 - 	    this->get_allocator().construct(&__n->_M_val, __obj);
 101.146 --	    return __n;
 101.147 - 	  }
 101.148 - 	catch(...)
 101.149 - 	  {
 101.150 - 	    _M_put_node(__n);
 101.151 - 	    __throw_exception_again;
 101.152 - 	  }
 101.153 -+	return __n;
 101.154 -       }
 101.155 - 
 101.156 -       void
   102.1 --- a/patches/gcc/4.0.1/100-fix-fixincl.patch	Wed Oct 28 12:03:38 2009 +0100
   102.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   102.3 @@ -1,72 +0,0 @@
   102.4 -See http://gcc.gnu.org/PR22541
   102.5 -
   102.6 -From: Dan Kegel
   102.7 -
   102.8 -When building gcc-3.4.3 or gcc-4.0.[01] into a clean $PREFIX (the only two I've tried like this),
   102.9 -the configure script happily copies the glibc include files from include to sys-include;
  102.10 -here's the line from the log file (with $PREFIX instead of the real prefix):
  102.11 -
  102.12 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  102.13 -
  102.14 -But later, when running fixincludes, it gives the error message
  102.15 - The directory that should contain system headers does not exist:
  102.16 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  102.17 -
  102.18 -Nevertheless, it continues building; the header files it installs in
  102.19 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  102.20 -do not include the boilerplate that would cause it to #include_next the
  102.21 -glibc headers in the system header directory.
  102.22 -Thus the resulting toolchain can't compile the following program:
  102.23 -#include <limits.h>
  102.24 -int x = PATH_MAX;
  102.25 -because its limits.h doesn't include the glibc header.
  102.26 -
  102.27 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
  102.28 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
  102.29 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  102.30 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  102.31 -it is only created later, during 'make install'.  (Which makes this problem
  102.32 -confusing, since one only notices the breakage well after 'make install',
  102.33 -at which point the path configure complained about does exist, and has the
  102.34 -right stuff in it.)
  102.35 -
  102.36 -A possible fix is to replace the line in gcc/Makefile.in that says
  102.37 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  102.38 -with a version that gets rid of extra ..'s, e.g.
  102.39 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
  102.40 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  102.41 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  102.42 -
  102.43 -[rediffed against gcc-4.0.0]
  102.44 -
  102.45 ---- gcc-4.0.0/gcc/Makefile.in.orig	2005-04-04 12:45:13.000000000 -0700
  102.46 -+++ gcc-4.0.0/gcc/Makefile.in	2005-05-20 12:33:43.000000000 -0700
  102.47 -@@ -378,7 +378,10 @@
  102.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  102.49 - 
  102.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  102.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  102.52 -+# Purge it of unneccessary internal relative paths
  102.53 -+# to directories that might not exist yet.
  102.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  102.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  102.56 - 
  102.57 - # Control whether to run fixproto and fixincludes.
  102.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
  102.59 -@@ -2838,13 +2841,15 @@
  102.60 - ../$(build_subdir)/fixincludes/fixincl: ; @ :
  102.61 - 
  102.62 - # Build fixed copies of system files.
  102.63 -+# Abort if no system headers available, unless building a crosscompiler.
  102.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
  102.65 - stmp-fixinc: gsyslimits.h macro_list \
  102.66 -   ../$(build_subdir)/fixincludes/fixincl \
  102.67 -   ../$(build_subdir)/fixincludes/fixinc.sh
  102.68 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
  102.69 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  102.70 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  102.71 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  102.72 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  102.73 - 	  then sleep 1; else exit 1; fi; \
  102.74 - 	fi
  102.75 - 	rm -rf include; mkdir include
   103.1 --- a/patches/gcc/4.0.1/110-pr20815-fix.patch	Wed Oct 28 12:03:38 2009 +0100
   103.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   103.3 @@ -1,121 +0,0 @@
   103.4 -Date: 18 May 2005 22:47:59 -0000
   103.5 -Message-ID: <20050518224759.7352.qmail@sourceware.org>
   103.6 -From: "hubicka at ucw dot cz" <gcc-bugzilla@gcc.gnu.org>
   103.7 -To: dank@kegel.com
   103.8 -References: <20050407215701.20815.dank@kegel.com>
   103.9 -Reply-To: gcc-bugzilla@gcc.gnu.org
  103.10 -Subject: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
  103.11 -
  103.12 -
  103.13 -------- Additional Comments From hubicka at ucw dot cz  2005-05-18 22:47 -------
  103.14 -Subject: Re: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
  103.15 -
  103.16 -> 
  103.17 -> ------- Additional Comments From hubicka at ucw dot cz  2005-05-18 22:22 -------
  103.18 -> Subject: Re: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
  103.19 -> 
  103.20 -> coverage_checksum_string already knows a bit about ignoring random seed
  103.21 -> produced mess.  It looks like this needs to be extended somehow to
  103.22 -> handle namespaces too...
  103.23 -
  103.24 -This seems to solve the missmatch.  Would it be possible to test it on
  103.25 -bigger testcase and if it works distile a testcase that don't use
  103.26 -file IO so it is more suitable for gcc regtesting?
  103.27 -
  103.28 -Index: coverage.c
  103.29 -===================================================================
  103.30 -RCS file: /cvs/gcc/gcc/gcc/coverage.c,v
  103.31 -retrieving revision 1.6.2.12.2.12
  103.32 -diff -c -3 -p -r1.6.2.12.2.12 coverage.c
  103.33 -*** gcc-old/gcc/coverage.c	18 May 2005 07:37:31 -0000	1.6.2.12.2.12
  103.34 ---- gcc/gcc/coverage.c	18 May 2005 22:45:36 -0000
  103.35 -*************** coverage_checksum_string (unsigned chksu
  103.36 -*** 471,505 ****
  103.37 -       as the checksums are used only for sanity checking.  */
  103.38 -    for (i = 0; string[i]; i++)
  103.39 -      {
  103.40 -        if (!strncmp (string + i, "_GLOBAL__", 9))
  103.41 -! 	for (i = i + 9; string[i]; i++)
  103.42 -! 	  if (string[i]=='_')
  103.43 -! 	    {
  103.44 -! 	      int y;
  103.45 -! 	      unsigned seed;
  103.46 -! 	      int scan;
  103.47 -! 
  103.48 -! 	      for (y = 1; y < 9; y++)
  103.49 -! 		if (!(string[i + y] >= '0' && string[i + y] <= '9')
  103.50 -! 		    && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  103.51 -! 		  break;
  103.52 -! 	      if (y != 9 || string[i + 9] != '_')
  103.53 -! 		continue;
  103.54 -! 	      for (y = 10; y < 18; y++)
  103.55 -! 		if (!(string[i + y] >= '0' && string[i + y] <= '9')
  103.56 -! 		    && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  103.57 -! 		  break;
  103.58 -! 	      if (y != 18)
  103.59 -! 		continue;
  103.60 -! 	      scan = sscanf (string + i + 10, "%X", &seed);
  103.61 -! 	      gcc_assert (scan);
  103.62 -! 	      if (seed != crc32_string (0, flag_random_seed))
  103.63 -! 		continue;
  103.64 -! 	      string = dup = xstrdup (string);
  103.65 -! 	      for (y = 10; y < 18; y++)
  103.66 -! 		dup[i + y] = '0';
  103.67 -! 	      break;
  103.68 -! 	    }
  103.69 -        break;
  103.70 -      }
  103.71 -  
  103.72 ---- 471,511 ----
  103.73 -       as the checksums are used only for sanity checking.  */
  103.74 -    for (i = 0; string[i]; i++)
  103.75 -      {
  103.76 -+       int offset = 0;
  103.77 -+       if (!strncmp (string + i, "_GLOBAL__N_", 11))
  103.78 -+ 	offset = 11;
  103.79 -        if (!strncmp (string + i, "_GLOBAL__", 9))
  103.80 -! 	offset = 9;
  103.81 -! 
  103.82 -!       /* C++ namespaces do have scheme:
  103.83 -!          _GLOBAL__N_<filename>_<wrongmagicnumber>_<magicnumber>functionname
  103.84 -! 	 since filename might contain extra underscores there seems
  103.85 -! 	 to be no better chance then walk all possible offsets looking
  103.86 -! 	 for magicnuber.  */
  103.87 -!       if (offset)
  103.88 -!         for (;string[offset]; offset++)
  103.89 -! 	  for (i = i + offset; string[i]; i++)
  103.90 -! 	    if (string[i]=='_')
  103.91 -! 	      {
  103.92 -! 		int y;
  103.93 -! 
  103.94 -! 		for (y = 1; y < 9; y++)
  103.95 -! 		  if (!(string[i + y] >= '0' && string[i + y] <= '9')
  103.96 -! 		      && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  103.97 -! 		    break;
  103.98 -! 		if (y != 9 || string[i + 9] != '_')
  103.99 -! 		  continue;
 103.100 -! 		for (y = 10; y < 18; y++)
 103.101 -! 		  if (!(string[i + y] >= '0' && string[i + y] <= '9')
 103.102 -! 		      && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
 103.103 -! 		    break;
 103.104 -! 		if (y != 18)
 103.105 -! 		  continue;
 103.106 -! 		if (!dup)
 103.107 -! 		  string = dup = xstrdup (string);
 103.108 -! 		for (y = 10; y < 18; y++)
 103.109 -! 		  dup[i + y] = '0';
 103.110 -! 	      }
 103.111 -        break;
 103.112 -      }
 103.113 -  
 103.114 -
 103.115 -
 103.116 --- 
 103.117 -
 103.118 -
 103.119 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20815
 103.120 -
 103.121 -------- You are receiving this mail because: -------
 103.122 -You reported the bug, or are watching the reporter.
 103.123 -
 103.124 -
   104.1 --- a/patches/gcc/4.0.1/120-pr21951-fix2.patch	Wed Oct 28 12:03:38 2009 +0100
   104.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   104.3 @@ -1,71 +0,0 @@
   104.4 -Workaround for buglet in std::vector etc. when compiling
   104.5 -with gcc-4.0.1 -Wall -O -fno-exceptions
   104.6 -Fixes:
   104.7 -
   104.8 -.../include/c++/4.0.0/bits/vector.tcc: In member function 'void std::vector<_Tp,
   104.9 -_Alloc>::reserve(size_t) [with _Tp = int, _Alloc = std::allocator<int>]':
  104.10 -.../include/c++/4.0.0/bits/vector.tcc:78: warning: control may reach end of
  104.11 -non-void function 'typename _Alloc::pointer std::vector<_Tp,
  104.12 -_Alloc>::_M_allocate_and_copy(size_t, _ForwardIterator, _ForwardIterator) [with
  104.13 -_ForwardIterator = int*, _Tp = int, _Alloc = std::allocator<int>]' being inlined
  104.14 -
  104.15 -See http://gcc.gnu.org/PR21951
  104.16 -
  104.17 -To: gcc-patches at gcc dot gnu dot org
  104.18 -Subject: [4.0.x] may reach end warning in system headers
  104.19 -Message-Id: <20050701183024.E138714C16A9@geoffk5.apple.com>
  104.20 -Date: Fri,  1 Jul 2005 11:30:24 -0700 (PDT)
  104.21 -From: gkeating at apple dot com (Geoffrey Keating)
  104.22 -
  104.23 -
  104.24 -One of our users was getting
  104.25 -
  104.26 -/usr/include/gcc/darwin/4.0/c++/bits/stl_uninitialized.h:113: warning:
  104.27 -control may reach end of non-void function '_ForwardIterator
  104.28 -std::__uninitialized_copy_aux(_InputIterator, _InputIterator,
  104.29 -_ForwardIterator, __false_type) [with _InputIterator =
  104.30 -__gnu_cxx::__normal_iterator<TPoolAllocator::tAllocState*,
  104.31 -std::vector<TPoolAllocator::tAllocState,
  104.32 -std::allocator<TPoolAllocator::tAllocState> > >, _ForwardIterator =
  104.33 -__gnu_cxx::__normal_iterator<TPoolAllocator::tAllocState*,
  104.34 -std::vector<TPoolAllocator::tAllocState,
  104.35 -std::allocator<TPoolAllocator::tAllocState> > >]' being inlined
  104.36 -
  104.37 -which shouldn't be happening, he has no way to change a standard C++
  104.38 -header.  The warning is bogus anyway, but it's fixed in 4.1 through
  104.39 -the CFG changes, which I don't really want to backport to the 4.0
  104.40 -branch, so instead I'll add this patch.  Other warnings generated from
  104.41 -tree-inline.c check for DECL_SYSTEM_HEADER like this.
  104.42 -
  104.43 -Bootstrapped & tested on powerpc-darwin8, I'll commit when the branch
  104.44 -is unfrozen.
  104.45 -
  104.46 --- 
  104.47 -- Geoffrey Keating <geoffk@apple.com>
  104.48 -
  104.49 -===File ~/patches/gcc-40-4121982.patch======================
  104.50 -Index: ChangeLog
  104.51 -2005-06-28  Geoffrey Keating  <geoffk@apple.com>
  104.52 -
  104.53 -	* tree-inline.c (expand_call_inline): Prevent 'may reach end'
  104.54 -	warning in system headers.
  104.55 -
  104.56 -Index: tree-inline.c
  104.57 -===================================================================
  104.58 -RCS file: /cvs/gcc/gcc/gcc/tree-inline.c,v
  104.59 -retrieving revision 1.170.8.4
  104.60 -diff -u -p -u -p -r1.170.8.4 tree-inline.c
  104.61 ---- gcc-4.0.1/gcc/tree-inline.c.old	6 Jun 2005 19:20:32 -0000	1.170.8.4
  104.62 -+++ gcc-4.0.1/gcc/tree-inline.c	1 Jul 2005 18:27:26 -0000
  104.63 -@@ -1693,7 +1693,8 @@ expand_call_inline (tree *tp, int *walk_
  104.64 - 	&& !TREE_NO_WARNING (fn)
  104.65 - 	&& !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fn)))
  104.66 - 	&& return_slot_addr == NULL_TREE
  104.67 --	&& block_may_fallthru (copy))
  104.68 -+	&& block_may_fallthru (copy)
  104.69 -+	&& !DECL_IN_SYSTEM_HEADER (fn))
  104.70 -       {
  104.71 - 	warning ("control may reach end of non-void function %qD being inlined",
  104.72 - 		 fn);
  104.73 -============================================================
  104.74 -
   105.1 --- a/patches/gcc/4.0.2/100-fix-fixincl.patch	Wed Oct 28 12:03:38 2009 +0100
   105.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   105.3 @@ -1,72 +0,0 @@
   105.4 -See http://gcc.gnu.org/PR22541
   105.5 -
   105.6 -From: Dan Kegel
   105.7 -
   105.8 -When building gcc-3.4.3 or gcc-4.0.[01] into a clean $PREFIX (the only two I've tried like this),
   105.9 -the configure script happily copies the glibc include files from include to sys-include;
  105.10 -here's the line from the log file (with $PREFIX instead of the real prefix):
  105.11 -
  105.12 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  105.13 -
  105.14 -But later, when running fixincludes, it gives the error message
  105.15 - The directory that should contain system headers does not exist:
  105.16 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  105.17 -
  105.18 -Nevertheless, it continues building; the header files it installs in
  105.19 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  105.20 -do not include the boilerplate that would cause it to #include_next the
  105.21 -glibc headers in the system header directory.
  105.22 -Thus the resulting toolchain can't compile the following program:
  105.23 -#include <limits.h>
  105.24 -int x = PATH_MAX;
  105.25 -because its limits.h doesn't include the glibc header.
  105.26 -
  105.27 -That's not nice.  I suspect the problem is that gcc/Makefile.in assumes that
  105.28 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path 
  105.29 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  105.30 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  105.31 -it is only created later, during 'make install'.  (Which makes this problem
  105.32 -confusing, since one only notices the breakage well after 'make install',
  105.33 -at which point the path configure complained about does exist, and has the
  105.34 -right stuff in it.)
  105.35 -
  105.36 -A possible fix is to replace the line in gcc/Makefile.in that says
  105.37 -    SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  105.38 -with a version that gets rid of extra ..'s, e.g.
  105.39 -    SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
  105.40 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  105.41 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  105.42 -
  105.43 -[rediffed against gcc-4.0.0]
  105.44 -
  105.45 ---- gcc-4.0.0/gcc/Makefile.in.orig	2005-04-04 12:45:13.000000000 -0700
  105.46 -+++ gcc-4.0.0/gcc/Makefile.in	2005-05-20 12:33:43.000000000 -0700
  105.47 -@@ -378,7 +378,10 @@
  105.48 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  105.49 - 
  105.50 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  105.51 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  105.52 -+# Purge it of unneccessary internal relative paths
  105.53 -+# to directories that might not exist yet.
  105.54 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  105.55 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  105.56 - 
  105.57 - # Control whether to run fixproto and fixincludes.
  105.58 - STMP_FIXPROTO = @STMP_FIXPROTO@
  105.59 -@@ -2838,13 +2841,15 @@
  105.60 - ../$(build_subdir)/fixincludes/fixincl: ; @ :
  105.61 - 
  105.62 - # Build fixed copies of system files.
  105.63 -+# Abort if no system headers available, unless building a crosscompiler.
  105.64 -+# FIXME: abort unless building --without-headers would be more accurate and less ugly
  105.65 - stmp-fixinc: gsyslimits.h macro_list \
  105.66 -   ../$(build_subdir)/fixincludes/fixincl \
  105.67 -   ../$(build_subdir)/fixincludes/fixinc.sh
  105.68 - 	@if test ! -d ${SYSTEM_HEADER_DIR}; then \
  105.69 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  105.70 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  105.71 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  105.72 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  105.73 - 	  then sleep 1; else exit 1; fi; \
  105.74 - 	fi
  105.75 - 	rm -rf include; mkdir include
   106.1 --- a/patches/gcc/4.0.2/110-pr20815-fix.patch	Wed Oct 28 12:03:38 2009 +0100
   106.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   106.3 @@ -1,121 +0,0 @@
   106.4 -Date: 18 May 2005 22:47:59 -0000
   106.5 -Message-ID: <20050518224759.7352.qmail@sourceware.org>
   106.6 -From: "hubicka at ucw dot cz" <gcc-bugzilla@gcc.gnu.org>
   106.7 -To: dank@kegel.com
   106.8 -References: <20050407215701.20815.dank@kegel.com>
   106.9 -Reply-To: gcc-bugzilla@gcc.gnu.org
  106.10 -Subject: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
  106.11 -
  106.12 -
  106.13 -------- Additional Comments From hubicka at ucw dot cz  2005-05-18 22:47 -------
  106.14 -Subject: Re: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
  106.15 -
  106.16 -> 
  106.17 -> ------- Additional Comments From hubicka at ucw dot cz  2005-05-18 22:22 -------
  106.18 -> Subject: Re: [Bug gcov/profile/20815] -fprofile-use barfs with "coverage mismatch for function '...' while reading counter 'arcs'."
  106.19 -> 
  106.20 -> coverage_checksum_string already knows a bit about ignoring random seed
  106.21 -> produced mess.  It looks like this needs to be extended somehow to
  106.22 -> handle namespaces too...
  106.23 -
  106.24 -This seems to solve the missmatch.  Would it be possible to test it on
  106.25 -bigger testcase and if it works distile a testcase that don't use
  106.26 -file IO so it is more suitable for gcc regtesting?
  106.27 -
  106.28 -Index: coverage.c
  106.29 -===================================================================
  106.30 -RCS file: /cvs/gcc/gcc/gcc/coverage.c,v
  106.31 -retrieving revision 1.6.2.12.2.12
  106.32 -diff -c -3 -p -r1.6.2.12.2.12 coverage.c
  106.33 -*** gcc-old/gcc/coverage.c	18 May 2005 07:37:31 -0000	1.6.2.12.2.12
  106.34 ---- gcc/gcc/coverage.c	18 May 2005 22:45:36 -0000
  106.35 -*************** coverage_checksum_string (unsigned chksu
  106.36 -*** 471,505 ****
  106.37 -       as the checksums are used only for sanity checking.  */
  106.38 -    for (i = 0; string[i]; i++)
  106.39 -      {
  106.40 -        if (!strncmp (string + i, "_GLOBAL__", 9))
  106.41 -! 	for (i = i + 9; string[i]; i++)
  106.42 -! 	  if (string[i]=='_')
  106.43 -! 	    {
  106.44 -! 	      int y;
  106.45 -! 	      unsigned seed;
  106.46 -! 	      int scan;
  106.47 -! 
  106.48 -! 	      for (y = 1; y < 9; y++)
  106.49 -! 		if (!(string[i + y] >= '0' && string[i + y] <= '9')
  106.50 -! 		    && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  106.51 -! 		  break;
  106.52 -! 	      if (y != 9 || string[i + 9] != '_')
  106.53 -! 		continue;
  106.54 -! 	      for (y = 10; y < 18; y++)
  106.55 -! 		if (!(string[i + y] >= '0' && string[i + y] <= '9')
  106.56 -! 		    && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  106.57 -! 		  break;
  106.58 -! 	      if (y != 18)
  106.59 -! 		continue;
  106.60 -! 	      scan = sscanf (string + i + 10, "%X", &seed);
  106.61 -! 	      gcc_assert (scan);
  106.62 -! 	      if (seed != crc32_string (0, flag_random_seed))
  106.63 -! 		continue;
  106.64 -! 	      string = dup = xstrdup (string);
  106.65 -! 	      for (y = 10; y < 18; y++)
  106.66 -! 		dup[i + y] = '0';
  106.67 -! 	      break;
  106.68 -! 	    }
  106.69 -        break;
  106.70 -      }
  106.71 -  
  106.72 ---- 471,511 ----
  106.73 -       as the checksums are used only for sanity checking.  */
  106.74 -    for (i = 0; string[i]; i++)
  106.75 -      {
  106.76 -+       int offset = 0;
  106.77 -+       if (!strncmp (string + i, "_GLOBAL__N_", 11))
  106.78 -+ 	offset = 11;
  106.79 -        if (!strncmp (string + i, "_GLOBAL__", 9))
  106.80 -! 	offset = 9;
  106.81 -! 
  106.82 -!       /* C++ namespaces do have scheme:
  106.83 -!          _GLOBAL__N_<filename>_<wrongmagicnumber>_<magicnumber>functionname
  106.84 -! 	 since filename might contain extra underscores there seems
  106.85 -! 	 to be no better chance then walk all possible offsets looking
  106.86 -! 	 for magicnuber.  */
  106.87 -!       if (offset)
  106.88 -!         for (;string[offset]; offset++)
  106.89 -! 	  for (i = i + offset; string[i]; i++)
  106.90 -! 	    if (string[i]=='_')
  106.91 -! 	      {
  106.92 -! 		int y;
  106.93 -! 
  106.94 -! 		for (y = 1; y < 9; y++)
  106.95 -! 		  if (!(string[i + y] >= '0' && string[i + y] <= '9')
  106.96 -! 		      && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
  106.97 -! 		    break;
  106.98 -! 		if (y != 9 || string[i + 9] != '_')
  106.99 -! 		  continue;
 106.100 -! 		for (y = 10; y < 18; y++)
 106.101 -! 		  if (!(string[i + y] >= '0' && string[i + y] <= '9')
 106.102 -! 		      && !(string[i + y] >= 'A' && string[i + y] <= 'F'))
 106.103 -! 		    break;
 106.104 -! 		if (y != 18)
 106.105 -! 		  continue;
 106.106 -! 		if (!dup)
 106.107 -! 		  string = dup = xstrdup (string);
 106.108 -! 		for (y = 10; y < 18; y++)
 106.109 -! 		  dup[i + y] = '0';
 106.110 -! 	      }
 106.111 -        break;
 106.112 -      }
 106.113 -  
 106.114 -
 106.115 -
 106.116 --- 
 106.117 -
 106.118 -
 106.119 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20815
 106.120 -
 106.121 -------- You are receiving this mail because: -------
 106.122 -You reported the bug, or are watching the reporter.
 106.123 -
 106.124 -
   107.1 --- a/patches/gcc/4.0.2/120-pr21623-workaround.patch	Wed Oct 28 12:03:38 2009 +0100
   107.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   107.3 @@ -1,53 +0,0 @@
   107.4 -Message-ID: <434576E1.6020305@sscd.de>
   107.5 -Date: Thu, 06 Oct 2005 21:11:29 +0200
   107.6 -From: Alexander Sieb <sieb@sscd.de>
   107.7 -To: crossgcc@sourceware.org
   107.8 -Subject: Crosstool sh4-linux-gcc-4.0.2-glibc-2.3.5 patches
   107.9 -
  107.10 -Hi,
  107.11 -
  107.12 -attached you find the files I needed to add to crosstool-0.38
  107.13 -in order to build a sh4-linux gcc-4.0.2-glibc-2.3.5 tool chain.
  107.14 -
  107.15 -Files attached:
  107.16 -
  107.17 -sh4-gcc4.dat:
  107.18 -        * gcc4 needs --with-multilib-list=m4,m4-nofpu otherwise a linux
  107.19 -        kernel won't build as it uses the -m4-nofpu option.
  107.20 -
  107.21 -gcc-pr21623.patch:
  107.22 -        * Kaz Kojima provided a patch [really, a workaround -dank] for http://gcc.gnu.org/PR21623
  107.23 -
  107.24 -glibc-2.3.5-sh-memset.patch:
  107.25 -        * A patch for glibc-2.3.5 which corrects memset. From SUGIOKA Toshinobu.
  107.26 -        See content for rationale.
  107.27 -
  107.28 --- snip --
  107.29 -
  107.30 --- Here's patch 1 of 2, plus URLs showing where it is in CVS --
  107.31 -
  107.32 -[http://gcc.gnu.org/ml/gcc-cvs/2005-10/msg00081.html]
  107.33 -
  107.34 -2005-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
  107.35 -
  107.36 -	* config/sh/sh.c (sh_register_move_cost): Add case for moving
  107.37 -	from T_REGS to FP register class.
  107.38 -
  107.39 -[http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sh/sh.c.diff?cvsroot=gcc&r1=1.347&r2=1.348]
  107.40 -
  107.41 -RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
  107.42 -retrieving revision 1.347
  107.43 -retrieving revision 1.348
  107.44 -diff -u -r1.347 -r1.348
  107.45 ---- gcc/gcc/config/sh/sh.c	2005/09/05 12:45:22	1.347
  107.46 -+++ gcc/gcc/config/sh/sh.c	2005/10/03 22:07:08	1.348
  107.47 -@@ -9491,6 +9491,9 @@ sh_register_move_cost (enum machine_mode
  107.48 -       && REGCLASS_HAS_FP_REG (dstclass))
  107.49 -     return 4;
  107.50 - 
  107.51 -+  if (REGCLASS_HAS_FP_REG (dstclass) && srcclass == T_REGS)
  107.52 -+    return ((TARGET_HARD_SH4 && !optimize_size) ? 10 : 7);
  107.53 -+
  107.54 -   if ((REGCLASS_HAS_FP_REG (dstclass) && srcclass == MAC_REGS)
  107.55 -       || (dstclass == MAC_REGS && REGCLASS_HAS_FP_REG (srcclass)))
  107.56 -     return 9;
   108.1 --- a/patches/gcc/4.0.3/100-uclibc-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   108.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   108.3 @@ -1,553 +0,0 @@
   108.4 ---- gcc-4.0.2/gcc/config/t-linux-uclibc
   108.5 -+++ gcc-4.0.2/gcc/config/t-linux-uclibc
   108.6 -@@ -0,0 +1,5 @@
   108.7 -+# Remove glibc specific files added in t-linux
   108.8 -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
   108.9 -+
  108.10 -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
  108.11 -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
  108.12 ---- gcc-4.0.2/gcc/config.gcc
  108.13 -+++ gcc-4.0.2/gcc/config.gcc
  108.14 -@@ -1778,7 +1778,7 @@
  108.15 - 	;;
  108.16 - sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
  108.17 - sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
  108.18 --  sh-*-linux* | sh[346lbe]*-*-linux* | \
  108.19 -+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
  108.20 -   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
  108.21 -    sh64-*-netbsd* | sh64l*-*-netbsd*)
  108.22 - 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
  108.23 -@@ -2234,10 +2234,16 @@
  108.24 - *)
  108.25 - 	echo "*** Configuration ${target} not supported" 1>&2
  108.26 - 	exit 1
  108.27 - 	;;
  108.28 - esac
  108.29 -+
  108.30 -+# Rather than hook into each target, just do it after all the linux
  108.31 -+# targets have been processed
  108.32 -+case ${target} in
  108.33 -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
  108.34 -+esac
  108.35 - 
  108.36 - case ${target} in
  108.37 - i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
  108.38 - 	tmake_file="${tmake_file} i386/t-gmm_malloc"
  108.39 - 	;;
  108.40 ---- gcc-4.0.2/gcc/config/alpha/linux-elf.h
  108.41 -+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h
  108.42 -@@ -27,7 +27,11 @@
  108.43 - #define SUBTARGET_EXTRA_SPECS \
  108.44 - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
  108.45 - 
  108.46 -+#ifdef USE_UCLIBC
  108.47 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
  108.48 -+#else
  108.49 - #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
  108.50 -+#endif
  108.51 - 
  108.52 - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
  108.53 -   %{O*:-O3} %{!O*:-O1}						\
  108.54 ---- gcc-4.0.2/gcc/config/arm/linux-elf.h
  108.55 -+++ gcc-4.0.2/gcc/config/arm/linux-elf.h
  108.56 -@@ -81,14 +81,19 @@
  108.57 - #define ENDFILE_SPEC \
  108.58 -   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
  108.59 - 
  108.60 -+#ifdef USE_UCLIBC
  108.61 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
  108.62 -+#else
  108.63 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
  108.64 -+#endif
  108.65 - #undef  LINK_SPEC
  108.66 - #define LINK_SPEC "%{h*} %{version:-v} \
  108.67 -    %{b} %{Wl,*:%*} \
  108.68 -    %{static:-Bstatic} \
  108.69 -    %{shared:-shared} \
  108.70 -    %{symbolic:-Bsymbolic} \
  108.71 -    %{rdynamic:-export-dynamic} \
  108.72 --   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  108.73 -+   %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
  108.74 -    -X \
  108.75 -    %{mbig-endian:-EB}" \
  108.76 -    SUBTARGET_EXTRA_LINK_SPEC
  108.77 ---- gcc-4.0.2/gcc/config/cris/linux.h
  108.78 -+++ gcc-4.0.2/gcc/config/cris/linux.h
  108.79 -@@ -79,6 +79,25 @@
  108.80 - #undef CRIS_DEFAULT_CPU_VERSION
  108.81 - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
  108.82 - 
  108.83 -+#ifdef USE_UCLIBC
  108.84 -+
  108.85 -+#undef CRIS_SUBTARGET_VERSION
  108.86 -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
  108.87 -+
  108.88 -+#undef CRIS_LINK_SUBTARGET_SPEC
  108.89 -+#define CRIS_LINK_SUBTARGET_SPEC \
  108.90 -+ "-mcrislinux\
  108.91 -+  -rpath-link include/asm/../..%s\
  108.92 -+  %{shared} %{static}\
  108.93 -+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
  108.94 -+  %{!shared: \
  108.95 -+    %{!static: \
  108.96 -+      %{rdynamic:-export-dynamic} \
  108.97 -+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
  108.98 -+  %{!r:%{O2|O3: --gc-sections}}"
  108.99 -+
 108.100 -+#else  /* USE_UCLIBC */
 108.101 -+
 108.102 - #undef CRIS_SUBTARGET_VERSION
 108.103 - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 108.104 - 
 108.105 -@@ -93,6 +112,8 @@
 108.106 -   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 108.107 -   %{!r:%{O2|O3: --gc-sections}}"
 108.108 - 
 108.109 -+#endif  /* USE_UCLIBC */
 108.110 -+
 108.111 - 
 108.112 - /* Node: Run-time Target */
 108.113 - 
 108.114 ---- gcc-4.0.2/gcc/config/i386/linux.h
 108.115 -+++ gcc-4.0.2/gcc/config/i386/linux.h
 108.116 -@@ -107,6 +107,11 @@
 108.117 - #define LINK_EMULATION "elf_i386"
 108.118 - #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
 108.119 - 
 108.120 -+#ifdef USE_UCLIBC
 108.121 -+#undef DYNAMIC_LINKER
 108.122 -+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.123 -+#endif
 108.124 -+
 108.125 - #undef  SUBTARGET_EXTRA_SPECS
 108.126 - #define SUBTARGET_EXTRA_SPECS \
 108.127 -   { "link_emulation", LINK_EMULATION },\
 108.128 ---- gcc-4.0.2/gcc/config/i386/linux64.h
 108.129 -+++ gcc-4.0.2/gcc/config/i386/linux64.h
 108.130 -@@ -54,14 +54,21 @@
 108.131 -    When the -shared link option is used a final link is not being
 108.132 -    done.  */
 108.133 - 
 108.134 -+#ifdef USE_UCLIBC
 108.135 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.136 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 108.137 -+#else
 108.138 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 108.139 -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 108.140 -+#endif
 108.141 - #undef	LINK_SPEC
 108.142 - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 108.143 -   %{shared:-shared} \
 108.144 -   %{!shared: \
 108.145 -     %{!static: \
 108.146 -       %{rdynamic:-export-dynamic} \
 108.147 --      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 108.148 --      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 108.149 -+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 108.150 -+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 108.151 -     %{static:-static}}"
 108.152 - 
 108.153 - #define MULTILIB_DEFAULTS { "m64" }
 108.154 ---- gcc-4.0.2/gcc/config/ia64/linux.h
 108.155 -+++ gcc-4.0.2/gcc/config/ia64/linux.h
 108.156 -@@ -37,13 +37,18 @@
 108.157 - /* Define this for shared library support because it isn't in the main
 108.158 -    linux.h file.  */
 108.159 - 
 108.160 -+#ifdef USE_UCLIBC
 108.161 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 108.162 -+#else
 108.163 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 108.164 -+#endif
 108.165 - #undef LINK_SPEC
 108.166 - #define LINK_SPEC "\
 108.167 -   %{shared:-shared} \
 108.168 -   %{!shared: \
 108.169 -     %{!static: \
 108.170 -       %{rdynamic:-export-dynamic} \
 108.171 --      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 108.172 -+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.173 -       %{static:-static}}"
 108.174 - 
 108.175 - 
 108.176 ---- gcc-4.0.2/gcc/config/m68k/linux.h
 108.177 -+++ gcc-4.0.2/gcc/config/m68k/linux.h
 108.178 -@@ -127,12 +127,17 @@
 108.179 - 
 108.180 - /* If ELF is the default format, we should not use /lib/elf.  */
 108.181 - 
 108.182 -+#ifdef USE_UCLIBC
 108.183 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.184 -+#else
 108.185 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 108.186 -+#endif
 108.187 - #undef	LINK_SPEC
 108.188 - #define LINK_SPEC "-m m68kelf %{shared} \
 108.189 -   %{!shared: \
 108.190 -     %{!static: \
 108.191 -       %{rdynamic:-export-dynamic} \
 108.192 --      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 108.193 -+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.194 -     %{static}}"
 108.195 - 
 108.196 - /* For compatibility with linux/a.out */
 108.197 ---- gcc-4.0.2/gcc/config/mips/linux.h
 108.198 -+++ gcc-4.0.2/gcc/config/mips/linux.h
 108.199 -@@ -108,14 +108,19 @@
 108.200 - 
 108.201 - /* Borrowed from sparc/linux.h */
 108.202 - #undef LINK_SPEC
 108.203 -+#ifdef USE_UCLIBC
 108.204 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.205 -+#else
 108.206 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 108.207 -+#endif
 108.208 - #define LINK_SPEC \
 108.209 -  "%(endian_spec) \
 108.210 -   %{shared:-shared} \
 108.211 -   %{!shared: \
 108.212 -     %{!ibcs: \
 108.213 -       %{!static: \
 108.214 -         %{rdynamic:-export-dynamic} \
 108.215 --        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 108.216 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.217 -         %{static:-static}}}"
 108.218 - 
 108.219 - #undef SUBTARGET_ASM_SPEC
 108.220 ---- gcc-4.0.2/gcc/config/pa/pa-linux.h
 108.221 -+++ gcc-4.0.2/gcc/config/pa/pa-linux.h
 108.222 -@@ -82,13 +82,18 @@
 108.223 - /* Define this for shared library support because it isn't in the main
 108.224 -    linux.h file.  */
 108.225 - 
 108.226 -+#ifdef USE_UCLIBC
 108.227 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.228 -+#else
 108.229 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 108.230 -+#endif
 108.231 - #undef LINK_SPEC
 108.232 - #define LINK_SPEC "\
 108.233 -   %{shared:-shared} \
 108.234 -   %{!shared: \
 108.235 -     %{!static: \
 108.236 -       %{rdynamic:-export-dynamic} \
 108.237 --      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 108.238 -+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.239 -       %{static:-static}}"
 108.240 - 
 108.241 - /* glibc's profiling functions don't need gcc to allocate counters.  */
 108.242 ---- gcc-4.0.2/gcc/config/rs6000/linux.h
 108.243 -+++ gcc-4.0.2/gcc/config/rs6000/linux.h
 108.244 -@@ -69,7 +69,11 @@
 108.245 - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 108.246 - 
 108.247 - #undef	LINK_OS_DEFAULT_SPEC
 108.248 -+#ifdef USE_UCLIBC
 108.249 -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 108.250 -+#else
 108.251 - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 108.252 -+#endif
 108.253 - 
 108.254 - #define LINK_GCC_C_SEQUENCE_SPEC \
 108.255 -   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 108.256 ---- gcc-4.0.2/gcc/config/rs6000/sysv4.h
 108.257 -+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h
 108.258 -@@ -949,6 +949,7 @@
 108.259 -   mcall-linux  : %(link_os_linux)       ; \
 108.260 -   mcall-gnu    : %(link_os_gnu)         ; \
 108.261 -   mcall-netbsd : %(link_os_netbsd)      ; \
 108.262 -+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 108.263 -   mcall-openbsd: %(link_os_openbsd)     ; \
 108.264 -                : %(link_os_default)     }"
 108.265 - 
 108.266 -@@ -1127,6 +1128,10 @@
 108.267 -   %{rdynamic:-export-dynamic} \
 108.268 -   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 108.269 - 
 108.270 -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 108.271 -+  %{rdynamic:-export-dynamic} \
 108.272 -+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 108.273 -+
 108.274 - #if defined(HAVE_LD_EH_FRAME_HDR)
 108.275 - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 108.276 - #endif
 108.277 -@@ -1293,6 +1298,7 @@
 108.278 -   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 108.279 -   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 108.280 -   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 108.281 -+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 108.282 -   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 108.283 -   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 108.284 -   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 108.285 ---- gcc-4.0.2/gcc/config/s390/linux.h
 108.286 -+++ gcc-4.0.2/gcc/config/s390/linux.h
 108.287 -@@ -77,6 +77,13 @@
 108.288 - #define MULTILIB_DEFAULTS { "m31" }
 108.289 - #endif
 108.290 - 
 108.291 -+#ifdef USE_UCLIBC
 108.292 -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.293 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 108.294 -+#else
 108.295 -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 108.296 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 108.297 -+#endif
 108.298 - #undef  LINK_SPEC
 108.299 - #define LINK_SPEC \
 108.300 -   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 108.301 -@@ -86,8 +93,8 @@
 108.302 -       %{!static: \
 108.303 - 	%{rdynamic:-export-dynamic} \
 108.304 - 	%{!dynamic-linker: \
 108.305 --          %{m31:-dynamic-linker /lib/ld.so.1} \
 108.306 --          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 108.307 -+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 108.308 -+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 108.309 - 
 108.310 - 
 108.311 - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 108.312 ---- gcc-4.0.2/gcc/config/sh/linux.h
 108.313 -+++ gcc-4.0.2/gcc/config/sh/linux.h
 108.314 -@@ -67,11 +67,16 @@
 108.315 - #undef SUBTARGET_LINK_EMUL_SUFFIX
 108.316 - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 108.317 - #undef SUBTARGET_LINK_SPEC
 108.318 -+#ifdef USE_UCLIBC
 108.319 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.320 -+#else
 108.321 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 108.322 -+#endif
 108.323 - #define SUBTARGET_LINK_SPEC \
 108.324 -   "%{shared:-shared} \
 108.325 -    %{!static: \
 108.326 -      %{rdynamic:-export-dynamic} \
 108.327 --     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 108.328 -+     %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.329 -    %{static:-static}"
 108.330 - 
 108.331 - #undef LIB_SPEC
 108.332 ---- gcc-4.0.2/gcc/config/sparc/linux.h
 108.333 -+++ gcc-4.0.2/gcc/config/sparc/linux.h
 108.334 -@@ -130,14 +130,19 @@
 108.335 - 
 108.336 - /* If ELF is the default format, we should not use /lib/elf.  */
 108.337 - 
 108.338 -+#ifdef USE_UCLIBC
 108.339 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 108.340 -+#else
 108.341 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 108.342 -+#endif
 108.343 - #undef  LINK_SPEC
 108.344 - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 108.345 -   %{!mno-relax:%{!r:-relax}} \
 108.346 -   %{!shared: \
 108.347 -     %{!ibcs: \
 108.348 -       %{!static: \
 108.349 -         %{rdynamic:-export-dynamic} \
 108.350 --        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 108.351 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.352 -         %{static:-static}}}"
 108.353 - 
 108.354 - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
 108.355 ---- gcc-4.0.2/gcc/config/sparc/linux64.h
 108.356 -+++ gcc-4.0.2/gcc/config/sparc/linux64.h
 108.357 -@@ -167,12 +166,17 @@
 108.358 -   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 108.359 -   { "link_arch",	 LINK_ARCH_SPEC },
 108.360 -     
 108.361 -+#ifdef USE_UCLIBC
 108.362 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 108.363 -+#else
 108.364 -+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 108.365 -+#endif
 108.366 - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 108.367 -   %{!shared: \
 108.368 -     %{!ibcs: \
 108.369 -       %{!static: \
 108.370 -         %{rdynamic:-export-dynamic} \
 108.371 --        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 108.372 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 108.373 -         %{static:-static}}} \
 108.374 - "
 108.375 - 
 108.376 ---- gcc-4.0.2/libtool.m4
 108.377 -+++ gcc-4.0.2/libtool.m4
 108.378 -@@ -682,6 +682,11 @@
 108.379 -   lt_cv_deplibs_check_method=pass_all
 108.380 -   ;;
 108.381 - 
 108.382 -+linux-uclibc*)
 108.383 -+  lt_cv_deplibs_check_method=pass_all
 108.384 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.385 -+  ;;
 108.386 -+
 108.387 - netbsd* | knetbsd*-gnu)
 108.388 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.389 -     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 108.390 ---- gcc-4.0.2/ltconfig
 108.391 -+++ gcc-4.0.2/ltconfig
 108.392 -@@ -603,6 +603,7 @@
 108.393 - 
 108.394 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 108.395 - case $host_os in
 108.396 -+linux-uclibc*) ;;
 108.397 - linux-gnu*) ;;
 108.398 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 108.399 - esac
 108.400 -@@ -1274,6 +1275,23 @@
 108.401 -   dynamic_linker='GNU/Linux ld.so'
 108.402 -   ;;
 108.403 - 
 108.404 -+linux-uclibc*)
 108.405 -+  version_type=linux
 108.406 -+  need_lib_prefix=no
 108.407 -+  need_version=no
 108.408 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
 108.409 -+  soname_spec='${libname}${release}.so$major'
 108.410 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 108.411 -+  shlibpath_var=LD_LIBRARY_PATH
 108.412 -+  shlibpath_overrides_runpath=no
 108.413 -+  # This implies no fast_install, which is unacceptable.
 108.414 -+  # Some rework will be needed to allow for fast_install
 108.415 -+  # before this can be enabled.
 108.416 -+  hardcode_into_libs=yes
 108.417 -+  # Assume using the uClibc dynamic linker.
 108.418 -+  dynamic_linker="uClibc ld.so"
 108.419 -+  ;;
 108.420 -+
 108.421 - netbsd*)
 108.422 -   need_lib_prefix=no
 108.423 -   need_version=no
 108.424 ---- gcc-4.0.2/libffi/configure
 108.425 -+++ gcc-4.0.2/libffi/configure
 108.426 -@@ -3457,6 +3457,11 @@
 108.427 -   lt_cv_deplibs_check_method=pass_all
 108.428 -   ;;
 108.429 - 
 108.430 -+linux-uclibc*)
 108.431 -+  lt_cv_deplibs_check_method=pass_all
 108.432 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.433 -+  ;;
 108.434 -+
 108.435 - netbsd* | knetbsd*-gnu)
 108.436 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.437 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 108.438 ---- gcc-4.0.2/libgfortran/configure
 108.439 -+++ gcc-4.0.2/libgfortran/configure
 108.440 -@@ -3681,6 +3681,11 @@
 108.441 -   lt_cv_deplibs_check_method=pass_all
 108.442 -   ;;
 108.443 - 
 108.444 -+linux-uclibc*)
 108.445 -+  lt_cv_deplibs_check_method=pass_all
 108.446 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.447 -+  ;;
 108.448 -+
 108.449 - netbsd* | knetbsd*-gnu)
 108.450 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.451 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 108.452 ---- gcc-4.0.2/libjava/configure
 108.453 -+++ gcc-4.0.2/libjava/configure
 108.454 -@@ -4351,6 +4351,11 @@
 108.455 -   lt_cv_deplibs_check_method=pass_all
 108.456 -   ;;
 108.457 - 
 108.458 -+linux-uclibc*)
 108.459 -+  lt_cv_deplibs_check_method=pass_all
 108.460 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.461 -+  ;;
 108.462 -+
 108.463 - netbsd* | knetbsd*-gnu)
 108.464 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.465 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 108.466 ---- gcc-4.0.2/libmudflap/configure
 108.467 -+++ gcc-4.0.2/libmudflap/configure
 108.468 -@@ -5380,6 +5380,11 @@
 108.469 -   lt_cv_deplibs_check_method=pass_all
 108.470 -   ;;
 108.471 - 
 108.472 -+linux-uclibc*)
 108.473 -+  lt_cv_deplibs_check_method=pass_all
 108.474 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.475 -+  ;;
 108.476 -+
 108.477 - netbsd* | knetbsd*-gnu)
 108.478 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.479 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 108.480 ---- gcc-4.0.2/libobjc/configure
 108.481 -+++ gcc-4.0.2/libobjc/configure
 108.482 -@@ -3283,6 +3283,11 @@
 108.483 -   lt_cv_deplibs_check_method=pass_all
 108.484 -   ;;
 108.485 - 
 108.486 -+linux-uclibc*)
 108.487 -+  lt_cv_deplibs_check_method=pass_all
 108.488 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.489 -+  ;;
 108.490 -+
 108.491 - netbsd* | knetbsd*-gnu)
 108.492 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.493 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 108.494 ---- gcc-4.0.2/boehm-gc/configure
 108.495 -+++ gcc-4.0.2/boehm-gc/configure
 108.496 -@@ -4320,6 +4320,11 @@
 108.497 -   lt_cv_deplibs_check_method=pass_all
 108.498 -   ;;
 108.499 - 
 108.500 -+linux-uclibc*)
 108.501 -+  lt_cv_deplibs_check_method=pass_all
 108.502 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.503 -+  ;;
 108.504 -+
 108.505 - netbsd* | knetbsd*-gnu)
 108.506 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.507 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 108.508 ---- gcc-4.0.2/configure
 108.509 -+++ gcc-4.0.2/configure
 108.510 -@@ -1141,7 +1141,7 @@
 108.511 -     ;;
 108.512 - "")
 108.513 -     case "${target}" in
 108.514 --    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 108.515 -+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 108.516 -         # Enable libmudflap by default in GNU and friends.
 108.517 - 	;;
 108.518 -     *-*-freebsd*)
 108.519 ---- gcc-4.0.2/configure.in
 108.520 -+++ gcc-4.0.2/configure.in
 108.521 -@@ -350,7 +350,7 @@
 108.522 -     ;;
 108.523 - "")
 108.524 -     case "${target}" in
 108.525 --    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 108.526 -+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 108.527 -         # Enable libmudflap by default in GNU and friends.
 108.528 - 	;;
 108.529 -     *-*-freebsd*)
 108.530 ---- gcc-4.0.2/contrib/regression/objs-gcc.sh
 108.531 -+++ gcc-4.0.2/contrib/regression/objs-gcc.sh
 108.532 -@@ -105,6 +105,10 @@
 108.533 -  then
 108.534 -   make all-gdb all-dejagnu all-ld || exit 1
 108.535 -   make install-gdb install-dejagnu install-ld || exit 1
 108.536 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
 108.537 -+ then
 108.538 -+  make all-gdb all-dejagnu all-ld || exit 1
 108.539 -+  make install-gdb install-dejagnu install-ld || exit 1
 108.540 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
 108.541 -   make bootstrap || exit 1
 108.542 -   make install || exit 1
 108.543 ---- gcc-4.0.2/zlib/configure
 108.544 -+++ gcc-4.0.2/zlib/configure
 108.545 -@@ -3426,6 +3426,11 @@
 108.546 -   lt_cv_deplibs_check_method=pass_all
 108.547 -   ;;
 108.548 - 
 108.549 -+linux-uclibc*)
 108.550 -+  lt_cv_deplibs_check_method=pass_all
 108.551 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 108.552 -+  ;;
 108.553 -+
 108.554 - netbsd* | knetbsd*-gnu)
 108.555 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 108.556 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
   109.1 --- a/patches/gcc/4.0.3/110-uclibc-locale.patch	Wed Oct 28 12:03:38 2009 +0100
   109.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   109.3 @@ -1,3237 +0,0 @@
   109.4 -diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4
   109.5 ---- gcc-4.0.0-100/libstdc++-v3/acinclude.m4	2005-04-30 13:06:53.000000000 -0500
   109.6 -+++ gcc-4.0.0/libstdc++-v3/acinclude.m4	2005-04-28 20:19:01.000000000 -0500
   109.7 -@@ -1104,7 +1104,7 @@
   109.8 -   AC_MSG_CHECKING([for C locale to use])
   109.9 -   GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
  109.10 -     [use MODEL for target locale package],
  109.11 --    [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
  109.12 -+    [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
  109.13 -   
  109.14 -   # If they didn't use this option switch, or if they specified --enable
  109.15 -   # with no specific model, we'll have to look for one.  If they
  109.16 -@@ -1120,6 +1120,9 @@
  109.17 -   # Default to "generic".
  109.18 -   if test $enable_clocale_flag = auto; then
  109.19 -     case ${target_os} in
  109.20 -+      *-uclibc*)
  109.21 -+        enable_clocale_flag=uclibc
  109.22 -+        ;;
  109.23 -       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
  109.24 -         AC_EGREP_CPP([_GLIBCXX_ok], [
  109.25 -         #include <features.h>
  109.26 -@@ -1263,6 +1266,40 @@
  109.27 -       CTIME_CC=config/locale/generic/time_members.cc
  109.28 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
  109.29 -       ;;
  109.30 -+    uclibc)
  109.31 -+      AC_MSG_RESULT(uclibc)
  109.32 -+
  109.33 -+      # Declare intention to use gettext, and add support for specific
  109.34 -+      # languages.
  109.35 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
  109.36 -+      ALL_LINGUAS="de fr"
  109.37 -+
  109.38 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
  109.39 -+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
  109.40 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
  109.41 -+        USE_NLS=yes
  109.42 -+      fi
  109.43 -+      # Export the build objects.
  109.44 -+      for ling in $ALL_LINGUAS; do \
  109.45 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
  109.46 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
  109.47 -+      done
  109.48 -+      AC_SUBST(glibcxx_MOFILES)
  109.49 -+      AC_SUBST(glibcxx_POFILES)
  109.50 -+
  109.51 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
  109.52 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
  109.53 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
  109.54 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
  109.55 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
  109.56 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
  109.57 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
  109.58 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
  109.59 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
  109.60 -+      CTIME_H=config/locale/uclibc/time_members.h
  109.61 -+      CTIME_CC=config/locale/uclibc/time_members.cc
  109.62 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
  109.63 -+      ;;
  109.64 -   esac
  109.65 - 
  109.66 -   # This is where the testsuite looks for locale catalogs, using the
  109.67 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
  109.68 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	1969-12-31 18:00:00.000000000 -0600
  109.69 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2005-04-28 01:13:15.000000000 -0500
  109.70 -@@ -0,0 +1,59 @@
  109.71 -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
  109.72 -+
  109.73 -+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
  109.74 -+//
  109.75 -+// This file is part of the GNU ISO C++ Library.  This library is free
  109.76 -+// software; you can redistribute it and/or modify it under the
  109.77 -+// terms of the GNU General Public License as published by the
  109.78 -+// Free Software Foundation; either version 2, or (at your option)
  109.79 -+// any later version.
  109.80 -+
  109.81 -+// This library is distributed in the hope that it will be useful,
  109.82 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
  109.83 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  109.84 -+// GNU General Public License for more details.
  109.85 -+
  109.86 -+// You should have received a copy of the GNU General Public License along
  109.87 -+// with this library; see the file COPYING.  If not, write to the Free
  109.88 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  109.89 -+// USA.
  109.90 -+
  109.91 -+// As a special exception, you may use this file as part of a free software
  109.92 -+// library without restriction.  Specifically, if other files instantiate
  109.93 -+// templates or use macros or inline functions from this file, or you compile
  109.94 -+// this file and link it with other files to produce an executable, this
  109.95 -+// file does not by itself cause the resulting executable to be covered by
  109.96 -+// the GNU General Public License.  This exception does not however
  109.97 -+// invalidate any other reasons why the executable file might be covered by
  109.98 -+// the GNU General Public License.
  109.99 -+
 109.100 -+// Written by Jakub Jelinek <jakub@redhat.com>
 109.101 -+
 109.102 -+#include <clocale>
 109.103 -+
 109.104 -+#ifdef __UCLIBC_MJN3_ONLY__
 109.105 -+#warning clean this up
 109.106 -+#endif
 109.107 -+
 109.108 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.109 -+                                                  
 109.110 -+extern "C" __typeof(iswctype_l) __iswctype_l;
 109.111 -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
 109.112 -+extern "C" __typeof(strcoll_l) __strcoll_l;
 109.113 -+extern "C" __typeof(strftime_l) __strftime_l;
 109.114 -+extern "C" __typeof(strtod_l) __strtod_l;
 109.115 -+extern "C" __typeof(strtof_l) __strtof_l;
 109.116 -+extern "C" __typeof(strtold_l) __strtold_l;
 109.117 -+extern "C" __typeof(strxfrm_l) __strxfrm_l;
 109.118 -+extern "C" __typeof(towlower_l) __towlower_l;
 109.119 -+extern "C" __typeof(towupper_l) __towupper_l;
 109.120 -+extern "C" __typeof(wcscoll_l) __wcscoll_l;
 109.121 -+extern "C" __typeof(wcsftime_l) __wcsftime_l;
 109.122 -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
 109.123 -+extern "C" __typeof(wctype_l) __wctype_l;
 109.124 -+extern "C" __typeof(newlocale) __newlocale;
 109.125 -+extern "C" __typeof(freelocale) __freelocale;
 109.126 -+extern "C" __typeof(duplocale) __duplocale;
 109.127 -+extern "C" __typeof(uselocale) __uselocale;
 109.128 -+
 109.129 -+#endif // GLIBC 2.3 and later
 109.130 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
 109.131 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc	1969-12-31 18:00:00.000000000 -0600
 109.132 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc	2005-04-28 01:13:15.000000000 -0500
 109.133 -@@ -0,0 +1,160 @@
 109.134 -+// Wrapper for underlying C-language localization -*- C++ -*-
 109.135 -+
 109.136 -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 109.137 -+//
 109.138 -+// This file is part of the GNU ISO C++ Library.  This library is free
 109.139 -+// software; you can redistribute it and/or modify it under the
 109.140 -+// terms of the GNU General Public License as published by the
 109.141 -+// Free Software Foundation; either version 2, or (at your option)
 109.142 -+// any later version.
 109.143 -+
 109.144 -+// This library is distributed in the hope that it will be useful,
 109.145 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 109.146 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 109.147 -+// GNU General Public License for more details.
 109.148 -+
 109.149 -+// You should have received a copy of the GNU General Public License along
 109.150 -+// with this library; see the file COPYING.  If not, write to the Free
 109.151 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 109.152 -+// USA.
 109.153 -+
 109.154 -+// As a special exception, you may use this file as part of a free software
 109.155 -+// library without restriction.  Specifically, if other files instantiate
 109.156 -+// templates or use macros or inline functions from this file, or you compile
 109.157 -+// this file and link it with other files to produce an executable, this
 109.158 -+// file does not by itself cause the resulting executable to be covered by
 109.159 -+// the GNU General Public License.  This exception does not however
 109.160 -+// invalidate any other reasons why the executable file might be covered by
 109.161 -+// the GNU General Public License.
 109.162 -+
 109.163 -+//
 109.164 -+// ISO C++ 14882: 22.8  Standard locale categories.
 109.165 -+//
 109.166 -+
 109.167 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 109.168 -+
 109.169 -+#include <cerrno>  // For errno
 109.170 -+#include <locale>
 109.171 -+#include <stdexcept>
 109.172 -+#include <langinfo.h>
 109.173 -+#include <bits/c++locale_internal.h>
 109.174 -+
 109.175 -+#ifndef __UCLIBC_HAS_XLOCALE__
 109.176 -+#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
 109.177 -+#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
 109.178 -+#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
 109.179 -+#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
 109.180 -+#define __strtof_l(S, E, L)         strtof((S), (E))
 109.181 -+#define __strtod_l(S, E, L)         strtod((S), (E))
 109.182 -+#define __strtold_l(S, E, L)        strtold((S), (E))
 109.183 -+#warning should dummy __newlocale check for C|POSIX ?
 109.184 -+#define __newlocale(a, b, c)        NULL
 109.185 -+#define __freelocale(a)             ((void)0)
 109.186 -+#define __duplocale(a)              __c_locale()
 109.187 -+#endif
 109.188 -+
 109.189 -+namespace std 
 109.190 -+{
 109.191 -+  template<>
 109.192 -+    void
 109.193 -+    __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 
 109.194 -+		   const __c_locale& __cloc)
 109.195 -+    {
 109.196 -+      if (!(__err & ios_base::failbit))
 109.197 -+	{
 109.198 -+	  char* __sanity;
 109.199 -+	  errno = 0;
 109.200 -+	  float __f = __strtof_l(__s, &__sanity, __cloc);
 109.201 -+          if (__sanity != __s && errno != ERANGE)
 109.202 -+	    __v = __f;
 109.203 -+	  else
 109.204 -+	    __err |= ios_base::failbit;
 109.205 -+	}
 109.206 -+    }
 109.207 -+
 109.208 -+  template<>
 109.209 -+    void
 109.210 -+    __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 
 109.211 -+		   const __c_locale& __cloc)
 109.212 -+    {
 109.213 -+      if (!(__err & ios_base::failbit))
 109.214 -+	{
 109.215 -+	  char* __sanity;
 109.216 -+	  errno = 0;
 109.217 -+	  double __d = __strtod_l(__s, &__sanity, __cloc);
 109.218 -+          if (__sanity != __s && errno != ERANGE)
 109.219 -+	    __v = __d;
 109.220 -+	  else
 109.221 -+	    __err |= ios_base::failbit;
 109.222 -+	}
 109.223 -+    }
 109.224 -+
 109.225 -+  template<>
 109.226 -+    void
 109.227 -+    __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
 109.228 -+		   const __c_locale& __cloc)
 109.229 -+    {
 109.230 -+      if (!(__err & ios_base::failbit))
 109.231 -+	{
 109.232 -+	  char* __sanity;
 109.233 -+	  errno = 0;
 109.234 -+	  long double __ld = __strtold_l(__s, &__sanity, __cloc);
 109.235 -+          if (__sanity != __s && errno != ERANGE)
 109.236 -+	    __v = __ld;
 109.237 -+	  else
 109.238 -+	    __err |= ios_base::failbit;
 109.239 -+	}
 109.240 -+    }
 109.241 -+
 109.242 -+  void
 109.243 -+  locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, 
 109.244 -+				    __c_locale __old)
 109.245 -+  {
 109.246 -+    __cloc = __newlocale(1 << LC_ALL, __s, __old);
 109.247 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.248 -+    if (!__cloc)
 109.249 -+      {
 109.250 -+	// This named locale is not supported by the underlying OS.
 109.251 -+	__throw_runtime_error(__N("locale::facet::_S_create_c_locale "
 109.252 -+			      "name not valid"));
 109.253 -+      }
 109.254 -+#endif
 109.255 -+  }
 109.256 -+  
 109.257 -+  void
 109.258 -+  locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
 109.259 -+  {
 109.260 -+    if (_S_get_c_locale() != __cloc)
 109.261 -+      __freelocale(__cloc); 
 109.262 -+  }
 109.263 -+
 109.264 -+  __c_locale
 109.265 -+  locale::facet::_S_clone_c_locale(__c_locale& __cloc)
 109.266 -+  { return __duplocale(__cloc); }
 109.267 -+} // namespace std
 109.268 -+
 109.269 -+namespace __gnu_cxx
 109.270 -+{
 109.271 -+  const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
 109.272 -+    {
 109.273 -+      "LC_CTYPE", 
 109.274 -+      "LC_NUMERIC",
 109.275 -+      "LC_TIME", 
 109.276 -+      "LC_COLLATE", 
 109.277 -+      "LC_MONETARY",
 109.278 -+      "LC_MESSAGES", 
 109.279 -+#if _GLIBCXX_NUM_CATEGORIES != 0
 109.280 -+      "LC_PAPER", 
 109.281 -+      "LC_NAME", 
 109.282 -+      "LC_ADDRESS",
 109.283 -+      "LC_TELEPHONE", 
 109.284 -+      "LC_MEASUREMENT", 
 109.285 -+      "LC_IDENTIFICATION" 
 109.286 -+#endif
 109.287 -+    };
 109.288 -+}
 109.289 -+
 109.290 -+namespace std
 109.291 -+{
 109.292 -+  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
 109.293 -+}  // namespace std
 109.294 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h
 109.295 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h	1969-12-31 18:00:00.000000000 -0600
 109.296 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h	2005-04-28 01:13:15.000000000 -0500
 109.297 -@@ -0,0 +1,115 @@
 109.298 -+// Wrapper for underlying C-language localization -*- C++ -*-
 109.299 -+
 109.300 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 109.301 -+//
 109.302 -+// This file is part of the GNU ISO C++ Library.  This library is free
 109.303 -+// software; you can redistribute it and/or modify it under the
 109.304 -+// terms of the GNU General Public License as published by the
 109.305 -+// Free Software Foundation; either version 2, or (at your option)
 109.306 -+// any later version.
 109.307 -+
 109.308 -+// This library is distributed in the hope that it will be useful,
 109.309 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 109.310 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 109.311 -+// GNU General Public License for more details.
 109.312 -+
 109.313 -+// You should have received a copy of the GNU General Public License along
 109.314 -+// with this library; see the file COPYING.  If not, write to the Free
 109.315 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 109.316 -+// USA.
 109.317 -+
 109.318 -+// As a special exception, you may use this file as part of a free software
 109.319 -+// library without restriction.  Specifically, if other files instantiate
 109.320 -+// templates or use macros or inline functions from this file, or you compile
 109.321 -+// this file and link it with other files to produce an executable, this
 109.322 -+// file does not by itself cause the resulting executable to be covered by
 109.323 -+// the GNU General Public License.  This exception does not however
 109.324 -+// invalidate any other reasons why the executable file might be covered by
 109.325 -+// the GNU General Public License.
 109.326 -+
 109.327 -+//
 109.328 -+// ISO C++ 14882: 22.8  Standard locale categories.
 109.329 -+//
 109.330 -+
 109.331 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 109.332 -+
 109.333 -+#ifndef _C_LOCALE_H
 109.334 -+#define _C_LOCALE_H 1
 109.335 -+
 109.336 -+#pragma GCC system_header
 109.337 -+
 109.338 -+#include <cstring>              // get std::strlen
 109.339 -+#include <cstdio>               // get std::snprintf or std::sprintf
 109.340 -+#include <clocale>
 109.341 -+#include <langinfo.h>		// For codecvt
 109.342 -+#ifdef __UCLIBC_MJN3_ONLY__
 109.343 -+#warning fix this
 109.344 -+#endif
 109.345 -+#ifdef __UCLIBC_HAS_LOCALE__
 109.346 -+#include <iconv.h>		// For codecvt using iconv, iconv_t
 109.347 -+#endif
 109.348 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
 109.349 -+#include <libintl.h> 		// For messages
 109.350 -+#endif
 109.351 -+
 109.352 -+#ifdef __UCLIBC_MJN3_ONLY__
 109.353 -+#warning what is _GLIBCXX_C_LOCALE_GNU for
 109.354 -+#endif
 109.355 -+#define _GLIBCXX_C_LOCALE_GNU 1
 109.356 -+
 109.357 -+#ifdef __UCLIBC_MJN3_ONLY__
 109.358 -+#warning fix categories
 109.359 -+#endif
 109.360 -+// #define _GLIBCXX_NUM_CATEGORIES 6
 109.361 -+#define _GLIBCXX_NUM_CATEGORIES 0
 109.362 -+ 
 109.363 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.364 -+namespace __gnu_cxx
 109.365 -+{
 109.366 -+  extern "C" __typeof(uselocale) __uselocale;
 109.367 -+}
 109.368 -+#endif
 109.369 -+
 109.370 -+namespace std
 109.371 -+{
 109.372 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.373 -+  typedef __locale_t		__c_locale;
 109.374 -+#else
 109.375 -+  typedef int*			__c_locale;
 109.376 -+#endif
 109.377 -+
 109.378 -+  // Convert numeric value of type _Tv to string and return length of
 109.379 -+  // string.  If snprintf is available use it, otherwise fall back to
 109.380 -+  // the unsafe sprintf which, in general, can be dangerous and should
 109.381 -+  // be avoided.
 109.382 -+  template<typename _Tv>
 109.383 -+    int
 109.384 -+    __convert_from_v(char* __out, const int __size, const char* __fmt,
 109.385 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.386 -+		     _Tv __v, const __c_locale& __cloc, int __prec)
 109.387 -+    {
 109.388 -+      __c_locale __old = __gnu_cxx::__uselocale(__cloc);
 109.389 -+#else
 109.390 -+		     _Tv __v, const __c_locale&, int __prec)
 109.391 -+    {
 109.392 -+# ifdef __UCLIBC_HAS_LOCALE__
 109.393 -+      char* __old = std::setlocale(LC_ALL, NULL);
 109.394 -+      char* __sav = new char[std::strlen(__old) + 1];
 109.395 -+      std::strcpy(__sav, __old);
 109.396 -+      std::setlocale(LC_ALL, "C");
 109.397 -+# endif
 109.398 -+#endif
 109.399 -+
 109.400 -+      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
 109.401 -+
 109.402 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.403 -+      __gnu_cxx::__uselocale(__old);
 109.404 -+#elif defined __UCLIBC_HAS_LOCALE__
 109.405 -+      std::setlocale(LC_ALL, __sav);
 109.406 -+      delete [] __sav;
 109.407 -+#endif
 109.408 -+      return __ret;
 109.409 -+    }
 109.410 -+}
 109.411 -+
 109.412 -+#endif
 109.413 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
 109.414 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc	1969-12-31 18:00:00.000000000 -0600
 109.415 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc	2005-04-28 01:13:15.000000000 -0500
 109.416 -@@ -0,0 +1,306 @@
 109.417 -+// std::codecvt implementation details, GNU version -*- C++ -*-
 109.418 -+
 109.419 -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 109.420 -+//
 109.421 -+// This file is part of the GNU ISO C++ Library.  This library is free
 109.422 -+// software; you can redistribute it and/or modify it under the
 109.423 -+// terms of the GNU General Public License as published by the
 109.424 -+// Free Software Foundation; either version 2, or (at your option)
 109.425 -+// any later version.
 109.426 -+
 109.427 -+// This library is distributed in the hope that it will be useful,
 109.428 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 109.429 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 109.430 -+// GNU General Public License for more details.
 109.431 -+
 109.432 -+// You should have received a copy of the GNU General Public License along
 109.433 -+// with this library; see the file COPYING.  If not, write to the Free
 109.434 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 109.435 -+// USA.
 109.436 -+
 109.437 -+// As a special exception, you may use this file as part of a free software
 109.438 -+// library without restriction.  Specifically, if other files instantiate
 109.439 -+// templates or use macros or inline functions from this file, or you compile
 109.440 -+// this file and link it with other files to produce an executable, this
 109.441 -+// file does not by itself cause the resulting executable to be covered by
 109.442 -+// the GNU General Public License.  This exception does not however
 109.443 -+// invalidate any other reasons why the executable file might be covered by
 109.444 -+// the GNU General Public License.
 109.445 -+
 109.446 -+//
 109.447 -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
 109.448 -+//
 109.449 -+
 109.450 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 109.451 -+
 109.452 -+#include <locale>
 109.453 -+#include <bits/c++locale_internal.h>
 109.454 -+
 109.455 -+namespace std
 109.456 -+{
 109.457 -+  // Specializations.
 109.458 -+#ifdef _GLIBCXX_USE_WCHAR_T
 109.459 -+  codecvt_base::result
 109.460 -+  codecvt<wchar_t, char, mbstate_t>::
 109.461 -+  do_out(state_type& __state, const intern_type* __from, 
 109.462 -+	 const intern_type* __from_end, const intern_type*& __from_next,
 109.463 -+	 extern_type* __to, extern_type* __to_end,
 109.464 -+	 extern_type*& __to_next) const
 109.465 -+  {
 109.466 -+    result __ret = ok;
 109.467 -+    state_type __tmp_state(__state);
 109.468 -+
 109.469 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.470 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 109.471 -+#endif
 109.472 -+
 109.473 -+    // wcsnrtombs is *very* fast but stops if encounters NUL characters:
 109.474 -+    // in case we fall back to wcrtomb and then continue, in a loop.
 109.475 -+    // NB: wcsnrtombs is a GNU extension
 109.476 -+    for (__from_next = __from, __to_next = __to;
 109.477 -+	 __from_next < __from_end && __to_next < __to_end
 109.478 -+	 && __ret == ok;)
 109.479 -+      {
 109.480 -+	const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
 109.481 -+						      __from_end - __from_next);
 109.482 -+	if (!__from_chunk_end)
 109.483 -+	  __from_chunk_end = __from_end;
 109.484 -+
 109.485 -+	__from = __from_next;
 109.486 -+	const size_t __conv = wcsnrtombs(__to_next, &__from_next,
 109.487 -+					 __from_chunk_end - __from_next,
 109.488 -+					 __to_end - __to_next, &__state);
 109.489 -+	if (__conv == static_cast<size_t>(-1))
 109.490 -+	  {
 109.491 -+	    // In case of error, in order to stop at the exact place we
 109.492 -+	    // have to start again from the beginning with a series of
 109.493 -+	    // wcrtomb.
 109.494 -+	    for (; __from < __from_next; ++__from)
 109.495 -+	      __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
 109.496 -+	    __state = __tmp_state;
 109.497 -+	    __ret = error;
 109.498 -+	  }
 109.499 -+	else if (__from_next && __from_next < __from_chunk_end)
 109.500 -+	  {
 109.501 -+	    __to_next += __conv;
 109.502 -+	    __ret = partial;
 109.503 -+	  }
 109.504 -+	else
 109.505 -+	  {
 109.506 -+	    __from_next = __from_chunk_end;
 109.507 -+	    __to_next += __conv;
 109.508 -+	  }
 109.509 -+
 109.510 -+	if (__from_next < __from_end && __ret == ok)
 109.511 -+	  {
 109.512 -+	    extern_type __buf[MB_LEN_MAX];
 109.513 -+	    __tmp_state = __state;
 109.514 -+	    const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
 109.515 -+	    if (__conv > static_cast<size_t>(__to_end - __to_next))
 109.516 -+	      __ret = partial;
 109.517 -+	    else
 109.518 -+	      {
 109.519 -+		memcpy(__to_next, __buf, __conv);
 109.520 -+		__state = __tmp_state;
 109.521 -+		__to_next += __conv;
 109.522 -+		++__from_next;
 109.523 -+	      }
 109.524 -+	  }
 109.525 -+      }
 109.526 -+
 109.527 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.528 -+    __uselocale(__old);
 109.529 -+#endif
 109.530 -+
 109.531 -+    return __ret; 
 109.532 -+  }
 109.533 -+  
 109.534 -+  codecvt_base::result
 109.535 -+  codecvt<wchar_t, char, mbstate_t>::
 109.536 -+  do_in(state_type& __state, const extern_type* __from, 
 109.537 -+	const extern_type* __from_end, const extern_type*& __from_next,
 109.538 -+	intern_type* __to, intern_type* __to_end,
 109.539 -+	intern_type*& __to_next) const
 109.540 -+  {
 109.541 -+    result __ret = ok;
 109.542 -+    state_type __tmp_state(__state);
 109.543 -+
 109.544 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.545 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 109.546 -+#endif
 109.547 -+
 109.548 -+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
 109.549 -+    // in case we store a L'\0' and then continue, in a loop.
 109.550 -+    // NB: mbsnrtowcs is a GNU extension
 109.551 -+    for (__from_next = __from, __to_next = __to;
 109.552 -+	 __from_next < __from_end && __to_next < __to_end
 109.553 -+	 && __ret == ok;)
 109.554 -+      {
 109.555 -+	const extern_type* __from_chunk_end;
 109.556 -+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
 109.557 -+								  __from_end
 109.558 -+								  - __from_next));
 109.559 -+	if (!__from_chunk_end)
 109.560 -+	  __from_chunk_end = __from_end;
 109.561 -+
 109.562 -+	__from = __from_next;
 109.563 -+	size_t __conv = mbsnrtowcs(__to_next, &__from_next,
 109.564 -+				   __from_chunk_end - __from_next,
 109.565 -+				   __to_end - __to_next, &__state);
 109.566 -+	if (__conv == static_cast<size_t>(-1))
 109.567 -+	  {
 109.568 -+	    // In case of error, in order to stop at the exact place we
 109.569 -+	    // have to start again from the beginning with a series of
 109.570 -+	    // mbrtowc.
 109.571 -+	    for (;; ++__to_next, __from += __conv)
 109.572 -+	      {
 109.573 -+		__conv = mbrtowc(__to_next, __from, __from_end - __from,
 109.574 -+				 &__tmp_state);
 109.575 -+		if (__conv == static_cast<size_t>(-1)
 109.576 -+		    || __conv == static_cast<size_t>(-2))
 109.577 -+		  break;
 109.578 -+	      }
 109.579 -+	    __from_next = __from;
 109.580 -+	    __state = __tmp_state;	    
 109.581 -+	    __ret = error;
 109.582 -+	  }
 109.583 -+	else if (__from_next && __from_next < __from_chunk_end)
 109.584 -+	  {
 109.585 -+	    // It is unclear what to return in this case (see DR 382). 
 109.586 -+	    __to_next += __conv;
 109.587 -+	    __ret = partial;
 109.588 -+	  }
 109.589 -+	else
 109.590 -+	  {
 109.591 -+	    __from_next = __from_chunk_end;
 109.592 -+	    __to_next += __conv;
 109.593 -+	  }
 109.594 -+
 109.595 -+	if (__from_next < __from_end && __ret == ok)
 109.596 -+	  {
 109.597 -+	    if (__to_next < __to_end)
 109.598 -+	      {
 109.599 -+		// XXX Probably wrong for stateful encodings
 109.600 -+		__tmp_state = __state;		
 109.601 -+		++__from_next;
 109.602 -+		*__to_next++ = L'\0';
 109.603 -+	      }
 109.604 -+	    else
 109.605 -+	      __ret = partial;
 109.606 -+	  }
 109.607 -+      }
 109.608 -+
 109.609 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.610 -+    __uselocale(__old);
 109.611 -+#endif
 109.612 -+
 109.613 -+    return __ret; 
 109.614 -+  }
 109.615 -+
 109.616 -+  int 
 109.617 -+  codecvt<wchar_t, char, mbstate_t>::
 109.618 -+  do_encoding() const throw()
 109.619 -+  {
 109.620 -+    // XXX This implementation assumes that the encoding is
 109.621 -+    // stateless and is either single-byte or variable-width.
 109.622 -+    int __ret = 0;
 109.623 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.624 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 109.625 -+#endif
 109.626 -+    if (MB_CUR_MAX == 1)
 109.627 -+      __ret = 1;
 109.628 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.629 -+    __uselocale(__old);
 109.630 -+#endif
 109.631 -+    return __ret;
 109.632 -+  }  
 109.633 -+
 109.634 -+  int 
 109.635 -+  codecvt<wchar_t, char, mbstate_t>::
 109.636 -+  do_max_length() const throw()
 109.637 -+  {
 109.638 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.639 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 109.640 -+#endif
 109.641 -+    // XXX Probably wrong for stateful encodings.
 109.642 -+    int __ret = MB_CUR_MAX;
 109.643 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.644 -+    __uselocale(__old);
 109.645 -+#endif
 109.646 -+    return __ret;
 109.647 -+  }
 109.648 -+  
 109.649 -+  int 
 109.650 -+  codecvt<wchar_t, char, mbstate_t>::
 109.651 -+  do_length(state_type& __state, const extern_type* __from,
 109.652 -+	    const extern_type* __end, size_t __max) const
 109.653 -+  {
 109.654 -+    int __ret = 0;
 109.655 -+    state_type __tmp_state(__state);
 109.656 -+
 109.657 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.658 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 109.659 -+#endif
 109.660 -+
 109.661 -+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
 109.662 -+    // in case we advance past it and then continue, in a loop.
 109.663 -+    // NB: mbsnrtowcs is a GNU extension
 109.664 -+  
 109.665 -+    // A dummy internal buffer is needed in order for mbsnrtocws to consider
 109.666 -+    // its fourth parameter (it wouldn't with NULL as first parameter).
 109.667 -+    wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) 
 109.668 -+							   * __max));
 109.669 -+    while (__from < __end && __max)
 109.670 -+      {
 109.671 -+	const extern_type* __from_chunk_end;
 109.672 -+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
 109.673 -+								  __end
 109.674 -+								  - __from));
 109.675 -+	if (!__from_chunk_end)
 109.676 -+	  __from_chunk_end = __end;
 109.677 -+
 109.678 -+	const extern_type* __tmp_from = __from;
 109.679 -+	size_t __conv = mbsnrtowcs(__to, &__from,
 109.680 -+				   __from_chunk_end - __from,
 109.681 -+				   __max, &__state);
 109.682 -+	if (__conv == static_cast<size_t>(-1))
 109.683 -+	  {
 109.684 -+	    // In case of error, in order to stop at the exact place we
 109.685 -+	    // have to start again from the beginning with a series of
 109.686 -+	    // mbrtowc.
 109.687 -+	    for (__from = __tmp_from;; __from += __conv)
 109.688 -+	      {
 109.689 -+		__conv = mbrtowc(NULL, __from, __end - __from,
 109.690 -+				 &__tmp_state);
 109.691 -+		if (__conv == static_cast<size_t>(-1)
 109.692 -+		    || __conv == static_cast<size_t>(-2))
 109.693 -+		  break;
 109.694 -+	      }
 109.695 -+	    __state = __tmp_state;
 109.696 -+	    __ret += __from - __tmp_from;
 109.697 -+	    break;
 109.698 -+	  }
 109.699 -+	if (!__from)
 109.700 -+	  __from = __from_chunk_end;
 109.701 -+	
 109.702 -+	__ret += __from - __tmp_from;
 109.703 -+	__max -= __conv;
 109.704 -+
 109.705 -+	if (__from < __end && __max)
 109.706 -+	  {
 109.707 -+	    // XXX Probably wrong for stateful encodings
 109.708 -+	    __tmp_state = __state;
 109.709 -+	    ++__from;
 109.710 -+	    ++__ret;
 109.711 -+	    --__max;
 109.712 -+	  }
 109.713 -+      }
 109.714 -+
 109.715 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.716 -+    __uselocale(__old);
 109.717 -+#endif
 109.718 -+
 109.719 -+    return __ret; 
 109.720 -+  }
 109.721 -+#endif
 109.722 -+}
 109.723 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
 109.724 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc	1969-12-31 18:00:00.000000000 -0600
 109.725 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc	2005-04-28 01:13:15.000000000 -0500
 109.726 -@@ -0,0 +1,80 @@
 109.727 -+// std::collate implementation details, GNU version -*- C++ -*-
 109.728 -+
 109.729 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 109.730 -+//
 109.731 -+// This file is part of the GNU ISO C++ Library.  This library is free
 109.732 -+// software; you can redistribute it and/or modify it under the
 109.733 -+// terms of the GNU General Public License as published by the
 109.734 -+// Free Software Foundation; either version 2, or (at your option)
 109.735 -+// any later version.
 109.736 -+
 109.737 -+// This library is distributed in the hope that it will be useful,
 109.738 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 109.739 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 109.740 -+// GNU General Public License for more details.
 109.741 -+
 109.742 -+// You should have received a copy of the GNU General Public License along
 109.743 -+// with this library; see the file COPYING.  If not, write to the Free
 109.744 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 109.745 -+// USA.
 109.746 -+
 109.747 -+// As a special exception, you may use this file as part of a free software
 109.748 -+// library without restriction.  Specifically, if other files instantiate
 109.749 -+// templates or use macros or inline functions from this file, or you compile
 109.750 -+// this file and link it with other files to produce an executable, this
 109.751 -+// file does not by itself cause the resulting executable to be covered by
 109.752 -+// the GNU General Public License.  This exception does not however
 109.753 -+// invalidate any other reasons why the executable file might be covered by
 109.754 -+// the GNU General Public License.
 109.755 -+
 109.756 -+//
 109.757 -+// ISO C++ 14882: 22.2.4.1.2  collate virtual functions
 109.758 -+//
 109.759 -+
 109.760 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 109.761 -+
 109.762 -+#include <locale>
 109.763 -+#include <bits/c++locale_internal.h>
 109.764 -+
 109.765 -+#ifndef __UCLIBC_HAS_XLOCALE__
 109.766 -+#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
 109.767 -+#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
 109.768 -+#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
 109.769 -+#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
 109.770 -+#endif
 109.771 -+
 109.772 -+namespace std
 109.773 -+{
 109.774 -+  // These are basically extensions to char_traits, and perhaps should
 109.775 -+  // be put there instead of here.
 109.776 -+  template<>
 109.777 -+    int 
 109.778 -+    collate<char>::_M_compare(const char* __one, const char* __two) const
 109.779 -+    { 
 109.780 -+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
 109.781 -+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
 109.782 -+    }
 109.783 -+  
 109.784 -+  template<>
 109.785 -+    size_t
 109.786 -+    collate<char>::_M_transform(char* __to, const char* __from, 
 109.787 -+				size_t __n) const 
 109.788 -+    { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 109.789 -+
 109.790 -+#ifdef _GLIBCXX_USE_WCHAR_T
 109.791 -+  template<>
 109.792 -+    int 
 109.793 -+    collate<wchar_t>::_M_compare(const wchar_t* __one, 
 109.794 -+				 const wchar_t* __two) const
 109.795 -+    {
 109.796 -+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
 109.797 -+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
 109.798 -+    }
 109.799 -+  
 109.800 -+  template<>
 109.801 -+    size_t
 109.802 -+    collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
 109.803 -+				   size_t __n) const
 109.804 -+    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 109.805 -+#endif
 109.806 -+}
 109.807 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
 109.808 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc	1969-12-31 18:00:00.000000000 -0600
 109.809 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2005-04-28 01:13:15.000000000 -0500
 109.810 -@@ -0,0 +1,300 @@
 109.811 -+// std::ctype implementation details, GNU version -*- C++ -*-
 109.812 -+
 109.813 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 109.814 -+//
 109.815 -+// This file is part of the GNU ISO C++ Library.  This library is free
 109.816 -+// software; you can redistribute it and/or modify it under the
 109.817 -+// terms of the GNU General Public License as published by the
 109.818 -+// Free Software Foundation; either version 2, or (at your option)
 109.819 -+// any later version.
 109.820 -+
 109.821 -+// This library is distributed in the hope that it will be useful,
 109.822 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 109.823 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 109.824 -+// GNU General Public License for more details.
 109.825 -+
 109.826 -+// You should have received a copy of the GNU General Public License along
 109.827 -+// with this library; see the file COPYING.  If not, write to the Free
 109.828 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 109.829 -+// USA.
 109.830 -+
 109.831 -+// As a special exception, you may use this file as part of a free software
 109.832 -+// library without restriction.  Specifically, if other files instantiate
 109.833 -+// templates or use macros or inline functions from this file, or you compile
 109.834 -+// this file and link it with other files to produce an executable, this
 109.835 -+// file does not by itself cause the resulting executable to be covered by
 109.836 -+// the GNU General Public License.  This exception does not however
 109.837 -+// invalidate any other reasons why the executable file might be covered by
 109.838 -+// the GNU General Public License.
 109.839 -+
 109.840 -+//
 109.841 -+// ISO C++ 14882: 22.2.1.1.2  ctype virtual functions.
 109.842 -+//
 109.843 -+
 109.844 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 109.845 -+
 109.846 -+#define _LIBC
 109.847 -+#include <locale>
 109.848 -+#undef _LIBC
 109.849 -+#include <bits/c++locale_internal.h>
 109.850 -+
 109.851 -+#ifndef __UCLIBC_HAS_XLOCALE__
 109.852 -+#define __wctype_l(S, L)           wctype((S))
 109.853 -+#define __towupper_l(C, L)         towupper((C))
 109.854 -+#define __towlower_l(C, L)         towlower((C))
 109.855 -+#define __iswctype_l(C, M, L)      iswctype((C), (M))
 109.856 -+#endif
 109.857 -+
 109.858 -+namespace std
 109.859 -+{
 109.860 -+  // NB: The other ctype<char> specializations are in src/locale.cc and
 109.861 -+  // various /config/os/* files.
 109.862 -+  template<>
 109.863 -+    ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
 109.864 -+    : ctype<char>(0, false, __refs) 
 109.865 -+    { 		
 109.866 -+      if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
 109.867 -+	{
 109.868 -+	  this->_S_destroy_c_locale(this->_M_c_locale_ctype);
 109.869 -+	  this->_S_create_c_locale(this->_M_c_locale_ctype, __s); 
 109.870 -+#ifdef __UCLIBC_HAS_XLOCALE__
 109.871 -+	  this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
 109.872 -+	  this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
 109.873 -+	  this->_M_table = this->_M_c_locale_ctype->__ctype_b;
 109.874 -+#endif
 109.875 -+	}
 109.876 -+    }
 109.877 -+
 109.878 -+#ifdef _GLIBCXX_USE_WCHAR_T  
 109.879 -+  ctype<wchar_t>::__wmask_type
 109.880 -+  ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
 109.881 -+  {
 109.882 -+    __wmask_type __ret;
 109.883 -+    switch (__m)
 109.884 -+      {
 109.885 -+      case space:
 109.886 -+	__ret = __wctype_l("space", _M_c_locale_ctype);
 109.887 -+	break;
 109.888 -+      case print:
 109.889 -+	__ret = __wctype_l("print", _M_c_locale_ctype);
 109.890 -+	break;
 109.891 -+      case cntrl:
 109.892 -+	__ret = __wctype_l("cntrl", _M_c_locale_ctype);
 109.893 -+	break;
 109.894 -+      case upper:
 109.895 -+	__ret = __wctype_l("upper", _M_c_locale_ctype);
 109.896 -+	break;
 109.897 -+      case lower:
 109.898 -+	__ret = __wctype_l("lower", _M_c_locale_ctype);
 109.899 -+	break;
 109.900 -+      case alpha:
 109.901 -+	__ret = __wctype_l("alpha", _M_c_locale_ctype);
 109.902 -+	break;
 109.903 -+      case digit:
 109.904 -+	__ret = __wctype_l("digit", _M_c_locale_ctype);
 109.905 -+	break;
 109.906 -+      case punct:
 109.907 -+	__ret = __wctype_l("punct", _M_c_locale_ctype);
 109.908 -+	break;
 109.909 -+      case xdigit:
 109.910 -+	__ret = __wctype_l("xdigit", _M_c_locale_ctype);
 109.911 -+	break;
 109.912 -+      case alnum:
 109.913 -+	__ret = __wctype_l("alnum", _M_c_locale_ctype);
 109.914 -+	break;
 109.915 -+      case graph:
 109.916 -+	__ret = __wctype_l("graph", _M_c_locale_ctype);
 109.917 -+	break;
 109.918 -+      default:
 109.919 -+	__ret = __wmask_type();
 109.920 -+      }
 109.921 -+    return __ret;
 109.922 -+  }
 109.923 -+  
 109.924 -+  wchar_t
 109.925 -+  ctype<wchar_t>::do_toupper(wchar_t __c) const
 109.926 -+  { return __towupper_l(__c, _M_c_locale_ctype); }
 109.927 -+
 109.928 -+  const wchar_t*
 109.929 -+  ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
 109.930 -+  {
 109.931 -+    while (__lo < __hi)
 109.932 -+      {
 109.933 -+        *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
 109.934 -+        ++__lo;
 109.935 -+      }
 109.936 -+    return __hi;
 109.937 -+  }
 109.938 -+  
 109.939 -+  wchar_t
 109.940 -+  ctype<wchar_t>::do_tolower(wchar_t __c) const
 109.941 -+  { return __towlower_l(__c, _M_c_locale_ctype); }
 109.942 -+  
 109.943 -+  const wchar_t*
 109.944 -+  ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
 109.945 -+  {
 109.946 -+    while (__lo < __hi)
 109.947 -+      {
 109.948 -+        *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
 109.949 -+        ++__lo;
 109.950 -+      }
 109.951 -+    return __hi;
 109.952 -+  }
 109.953 -+
 109.954 -+  bool
 109.955 -+  ctype<wchar_t>::
 109.956 -+  do_is(mask __m, wchar_t __c) const
 109.957 -+  { 
 109.958 -+    // Highest bitmask in ctype_base == 10, but extra in "C"
 109.959 -+    // library for blank.
 109.960 -+    bool __ret = false;
 109.961 -+    const size_t __bitmasksize = 11; 
 109.962 -+    for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
 109.963 -+      if (__m & _M_bit[__bitcur]
 109.964 -+	  && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
 109.965 -+	{
 109.966 -+	  __ret = true;
 109.967 -+	  break;
 109.968 -+	}
 109.969 -+    return __ret;    
 109.970 -+  }
 109.971 -+  
 109.972 -+  const wchar_t* 
 109.973 -+  ctype<wchar_t>::
 109.974 -+  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
 109.975 -+  {
 109.976 -+    for (; __lo < __hi; ++__vec, ++__lo)
 109.977 -+      {
 109.978 -+	// Highest bitmask in ctype_base == 10, but extra in "C"
 109.979 -+	// library for blank.
 109.980 -+	const size_t __bitmasksize = 11; 
 109.981 -+	mask __m = 0;
 109.982 -+	for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
 109.983 -+	  if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
 109.984 -+	    __m |= _M_bit[__bitcur];
 109.985 -+	*__vec = __m;
 109.986 -+      }
 109.987 -+    return __hi;
 109.988 -+  }
 109.989 -+  
 109.990 -+  const wchar_t* 
 109.991 -+  ctype<wchar_t>::
 109.992 -+  do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
 109.993 -+  {
 109.994 -+    while (__lo < __hi && !this->do_is(__m, *__lo))
 109.995 -+      ++__lo;
 109.996 -+    return __lo;
 109.997 -+  }
 109.998 -+
 109.999 -+  const wchar_t*
109.1000 -+  ctype<wchar_t>::
109.1001 -+  do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
109.1002 -+  {
109.1003 -+    while (__lo < __hi && this->do_is(__m, *__lo) != 0)
109.1004 -+      ++__lo;
109.1005 -+    return __lo;
109.1006 -+  }
109.1007 -+
109.1008 -+  wchar_t
109.1009 -+  ctype<wchar_t>::
109.1010 -+  do_widen(char __c) const
109.1011 -+  { return _M_widen[static_cast<unsigned char>(__c)]; }
109.1012 -+
109.1013 -+  const char* 
109.1014 -+  ctype<wchar_t>::
109.1015 -+  do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
109.1016 -+  {
109.1017 -+    while (__lo < __hi)
109.1018 -+      {
109.1019 -+	*__dest = _M_widen[static_cast<unsigned char>(*__lo)];
109.1020 -+	++__lo;
109.1021 -+	++__dest;
109.1022 -+      }
109.1023 -+    return __hi;
109.1024 -+  }
109.1025 -+
109.1026 -+  char
109.1027 -+  ctype<wchar_t>::
109.1028 -+  do_narrow(wchar_t __wc, char __dfault) const
109.1029 -+  {
109.1030 -+    if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
109.1031 -+      return _M_narrow[__wc];
109.1032 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1033 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
109.1034 -+#endif
109.1035 -+    const int __c = wctob(__wc);
109.1036 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1037 -+    __uselocale(__old);
109.1038 -+#endif
109.1039 -+    return (__c == EOF ? __dfault : static_cast<char>(__c)); 
109.1040 -+  }
109.1041 -+
109.1042 -+  const wchar_t*
109.1043 -+  ctype<wchar_t>::
109.1044 -+  do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, 
109.1045 -+	    char* __dest) const
109.1046 -+  {
109.1047 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1048 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
109.1049 -+#endif
109.1050 -+    if (_M_narrow_ok)
109.1051 -+      while (__lo < __hi)
109.1052 -+	{
109.1053 -+	  if (*__lo >= 0 && *__lo < 128)
109.1054 -+	    *__dest = _M_narrow[*__lo];
109.1055 -+	  else
109.1056 -+	    {
109.1057 -+	      const int __c = wctob(*__lo);
109.1058 -+	      *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
109.1059 -+	    }
109.1060 -+	  ++__lo;
109.1061 -+	  ++__dest;
109.1062 -+	}
109.1063 -+    else
109.1064 -+      while (__lo < __hi)
109.1065 -+	{
109.1066 -+	  const int __c = wctob(*__lo);
109.1067 -+	  *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
109.1068 -+	  ++__lo;
109.1069 -+	  ++__dest;
109.1070 -+	}
109.1071 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1072 -+    __uselocale(__old);
109.1073 -+#endif
109.1074 -+    return __hi;
109.1075 -+  }
109.1076 -+
109.1077 -+  void
109.1078 -+  ctype<wchar_t>::_M_initialize_ctype()
109.1079 -+  {
109.1080 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1081 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
109.1082 -+#endif
109.1083 -+    wint_t __i;
109.1084 -+    for (__i = 0; __i < 128; ++__i)
109.1085 -+      {
109.1086 -+	const int __c = wctob(__i);
109.1087 -+	if (__c == EOF)
109.1088 -+	  break;
109.1089 -+	else
109.1090 -+	  _M_narrow[__i] = static_cast<char>(__c);
109.1091 -+      }
109.1092 -+    if (__i == 128)
109.1093 -+      _M_narrow_ok = true;
109.1094 -+    else
109.1095 -+      _M_narrow_ok = false;
109.1096 -+    for (size_t __j = 0;
109.1097 -+	 __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
109.1098 -+      _M_widen[__j] = btowc(__j);
109.1099 -+
109.1100 -+    for (size_t __k = 0; __k <= 11; ++__k)
109.1101 -+      { 
109.1102 -+	_M_bit[__k] = static_cast<mask>(_ISbit(__k));
109.1103 -+	_M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
109.1104 -+      }
109.1105 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1106 -+    __uselocale(__old);
109.1107 -+#endif
109.1108 -+  }
109.1109 -+#endif //  _GLIBCXX_USE_WCHAR_T
109.1110 -+}
109.1111 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
109.1112 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc	1969-12-31 18:00:00.000000000 -0600
109.1113 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc	2005-04-28 01:13:15.000000000 -0500
109.1114 -@@ -0,0 +1,100 @@
109.1115 -+// std::messages implementation details, GNU version -*- C++ -*-
109.1116 -+
109.1117 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
109.1118 -+//
109.1119 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.1120 -+// software; you can redistribute it and/or modify it under the
109.1121 -+// terms of the GNU General Public License as published by the
109.1122 -+// Free Software Foundation; either version 2, or (at your option)
109.1123 -+// any later version.
109.1124 -+
109.1125 -+// This library is distributed in the hope that it will be useful,
109.1126 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.1127 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.1128 -+// GNU General Public License for more details.
109.1129 -+
109.1130 -+// You should have received a copy of the GNU General Public License along
109.1131 -+// with this library; see the file COPYING.  If not, write to the Free
109.1132 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.1133 -+// USA.
109.1134 -+
109.1135 -+// As a special exception, you may use this file as part of a free software
109.1136 -+// library without restriction.  Specifically, if other files instantiate
109.1137 -+// templates or use macros or inline functions from this file, or you compile
109.1138 -+// this file and link it with other files to produce an executable, this
109.1139 -+// file does not by itself cause the resulting executable to be covered by
109.1140 -+// the GNU General Public License.  This exception does not however
109.1141 -+// invalidate any other reasons why the executable file might be covered by
109.1142 -+// the GNU General Public License.
109.1143 -+
109.1144 -+//
109.1145 -+// ISO C++ 14882: 22.2.7.1.2  messages virtual functions
109.1146 -+//
109.1147 -+
109.1148 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
109.1149 -+
109.1150 -+#include <locale>
109.1151 -+#include <bits/c++locale_internal.h>
109.1152 -+
109.1153 -+#ifdef __UCLIBC_MJN3_ONLY__
109.1154 -+#warning fix gettext stuff
109.1155 -+#endif
109.1156 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
109.1157 -+extern "C" char *__dcgettext(const char *domainname,
109.1158 -+			     const char *msgid, int category);
109.1159 -+#undef gettext
109.1160 -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
109.1161 -+#else
109.1162 -+#undef gettext
109.1163 -+#define gettext(msgid) (msgid)
109.1164 -+#endif
109.1165 -+
109.1166 -+namespace std
109.1167 -+{
109.1168 -+  // Specializations.
109.1169 -+  template<>
109.1170 -+    string
109.1171 -+    messages<char>::do_get(catalog, int, int, const string& __dfault) const
109.1172 -+    {
109.1173 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1174 -+      __c_locale __old = __uselocale(_M_c_locale_messages);
109.1175 -+      const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
109.1176 -+      __uselocale(__old);
109.1177 -+      return string(__msg);
109.1178 -+#elif defined __UCLIBC_HAS_LOCALE__
109.1179 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
109.1180 -+      setlocale(LC_ALL, _M_name_messages);
109.1181 -+      const char* __msg = gettext(__dfault.c_str());
109.1182 -+      setlocale(LC_ALL, __old);
109.1183 -+      free(__old);
109.1184 -+      return string(__msg);
109.1185 -+#else
109.1186 -+      const char* __msg = gettext(__dfault.c_str());
109.1187 -+      return string(__msg);
109.1188 -+#endif
109.1189 -+    }
109.1190 -+
109.1191 -+#ifdef _GLIBCXX_USE_WCHAR_T
109.1192 -+  template<>
109.1193 -+    wstring
109.1194 -+    messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
109.1195 -+    {
109.1196 -+# ifdef __UCLIBC_HAS_XLOCALE__
109.1197 -+      __c_locale __old = __uselocale(_M_c_locale_messages);
109.1198 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
109.1199 -+      __uselocale(__old);
109.1200 -+      return _M_convert_from_char(__msg);
109.1201 -+# elif defined __UCLIBC_HAS_LOCALE__
109.1202 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
109.1203 -+      setlocale(LC_ALL, _M_name_messages);
109.1204 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
109.1205 -+      setlocale(LC_ALL, __old);
109.1206 -+      free(__old);
109.1207 -+      return _M_convert_from_char(__msg);
109.1208 -+# else
109.1209 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
109.1210 -+      return _M_convert_from_char(__msg);
109.1211 -+# endif
109.1212 -+    }
109.1213 -+#endif
109.1214 -+}
109.1215 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h
109.1216 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h	1969-12-31 18:00:00.000000000 -0600
109.1217 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h	2005-04-28 01:13:15.000000000 -0500
109.1218 -@@ -0,0 +1,118 @@
109.1219 -+// std::messages implementation details, GNU version -*- C++ -*-
109.1220 -+
109.1221 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
109.1222 -+//
109.1223 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.1224 -+// software; you can redistribute it and/or modify it under the
109.1225 -+// terms of the GNU General Public License as published by the
109.1226 -+// Free Software Foundation; either version 2, or (at your option)
109.1227 -+// any later version.
109.1228 -+
109.1229 -+// This library is distributed in the hope that it will be useful,
109.1230 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.1231 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.1232 -+// GNU General Public License for more details.
109.1233 -+
109.1234 -+// You should have received a copy of the GNU General Public License along
109.1235 -+// with this library; see the file COPYING.  If not, write to the Free
109.1236 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.1237 -+// USA.
109.1238 -+
109.1239 -+// As a special exception, you may use this file as part of a free software
109.1240 -+// library without restriction.  Specifically, if other files instantiate
109.1241 -+// templates or use macros or inline functions from this file, or you compile
109.1242 -+// this file and link it with other files to produce an executable, this
109.1243 -+// file does not by itself cause the resulting executable to be covered by
109.1244 -+// the GNU General Public License.  This exception does not however
109.1245 -+// invalidate any other reasons why the executable file might be covered by
109.1246 -+// the GNU General Public License.
109.1247 -+
109.1248 -+//
109.1249 -+// ISO C++ 14882: 22.2.7.1.2  messages functions
109.1250 -+//
109.1251 -+
109.1252 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
109.1253 -+
109.1254 -+#ifdef __UCLIBC_MJN3_ONLY__
109.1255 -+#warning fix prototypes for *textdomain funcs
109.1256 -+#endif
109.1257 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
109.1258 -+extern "C" char *__textdomain(const char *domainname);
109.1259 -+extern "C" char *__bindtextdomain(const char *domainname,
109.1260 -+				  const char *dirname);
109.1261 -+#else
109.1262 -+#undef __textdomain
109.1263 -+#undef __bindtextdomain
109.1264 -+#define __textdomain(D)           ((void)0)
109.1265 -+#define __bindtextdomain(D,P)     ((void)0)
109.1266 -+#endif
109.1267 -+
109.1268 -+  // Non-virtual member functions.
109.1269 -+  template<typename _CharT>
109.1270 -+     messages<_CharT>::messages(size_t __refs)
109.1271 -+     : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 
109.1272 -+     _M_name_messages(_S_get_c_name())
109.1273 -+     { }
109.1274 -+
109.1275 -+  template<typename _CharT>
109.1276 -+     messages<_CharT>::messages(__c_locale __cloc, const char* __s, 
109.1277 -+				size_t __refs) 
109.1278 -+     : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
109.1279 -+     _M_name_messages(__s)
109.1280 -+     {
109.1281 -+       char* __tmp = new char[std::strlen(__s) + 1];
109.1282 -+       std::strcpy(__tmp, __s);
109.1283 -+       _M_name_messages = __tmp;
109.1284 -+     }
109.1285 -+
109.1286 -+  template<typename _CharT>
109.1287 -+    typename messages<_CharT>::catalog 
109.1288 -+    messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
109.1289 -+			   const char* __dir) const
109.1290 -+    { 
109.1291 -+      __bindtextdomain(__s.c_str(), __dir);
109.1292 -+      return this->do_open(__s, __loc); 
109.1293 -+    }
109.1294 -+
109.1295 -+  // Virtual member functions.
109.1296 -+  template<typename _CharT>
109.1297 -+    messages<_CharT>::~messages()
109.1298 -+    { 
109.1299 -+      if (_M_name_messages != _S_get_c_name())
109.1300 -+	delete [] _M_name_messages;
109.1301 -+      _S_destroy_c_locale(_M_c_locale_messages); 
109.1302 -+    }
109.1303 -+
109.1304 -+  template<typename _CharT>
109.1305 -+    typename messages<_CharT>::catalog 
109.1306 -+    messages<_CharT>::do_open(const basic_string<char>& __s, 
109.1307 -+			      const locale&) const
109.1308 -+    { 
109.1309 -+      // No error checking is done, assume the catalog exists and can
109.1310 -+      // be used.
109.1311 -+      __textdomain(__s.c_str());
109.1312 -+      return 0;
109.1313 -+    }
109.1314 -+
109.1315 -+  template<typename _CharT>
109.1316 -+    void    
109.1317 -+    messages<_CharT>::do_close(catalog) const 
109.1318 -+    { }
109.1319 -+
109.1320 -+   // messages_byname
109.1321 -+   template<typename _CharT>
109.1322 -+     messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
109.1323 -+     : messages<_CharT>(__refs) 
109.1324 -+     { 
109.1325 -+       if (this->_M_name_messages != locale::facet::_S_get_c_name())
109.1326 -+	 delete [] this->_M_name_messages;
109.1327 -+       char* __tmp = new char[std::strlen(__s) + 1];
109.1328 -+       std::strcpy(__tmp, __s);
109.1329 -+       this->_M_name_messages = __tmp;
109.1330 -+
109.1331 -+       if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
109.1332 -+	 {
109.1333 -+	   this->_S_destroy_c_locale(this->_M_c_locale_messages);
109.1334 -+	   this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
109.1335 -+	 }
109.1336 -+     }
109.1337 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
109.1338 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc	1969-12-31 18:00:00.000000000 -0600
109.1339 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2005-04-28 01:23:02.000000000 -0500
109.1340 -@@ -0,0 +1,692 @@
109.1341 -+// std::moneypunct implementation details, GNU version -*- C++ -*-
109.1342 -+
109.1343 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
109.1344 -+//
109.1345 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.1346 -+// software; you can redistribute it and/or modify it under the
109.1347 -+// terms of the GNU General Public License as published by the
109.1348 -+// Free Software Foundation; either version 2, or (at your option)
109.1349 -+// any later version.
109.1350 -+
109.1351 -+// This library is distributed in the hope that it will be useful,
109.1352 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.1353 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.1354 -+// GNU General Public License for more details.
109.1355 -+
109.1356 -+// You should have received a copy of the GNU General Public License along
109.1357 -+// with this library; see the file COPYING.  If not, write to the Free
109.1358 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.1359 -+// USA.
109.1360 -+
109.1361 -+// As a special exception, you may use this file as part of a free software
109.1362 -+// library without restriction.  Specifically, if other files instantiate
109.1363 -+// templates or use macros or inline functions from this file, or you compile
109.1364 -+// this file and link it with other files to produce an executable, this
109.1365 -+// file does not by itself cause the resulting executable to be covered by
109.1366 -+// the GNU General Public License.  This exception does not however
109.1367 -+// invalidate any other reasons why the executable file might be covered by
109.1368 -+// the GNU General Public License.
109.1369 -+
109.1370 -+//
109.1371 -+// ISO C++ 14882: 22.2.6.3.2  moneypunct virtual functions
109.1372 -+//
109.1373 -+
109.1374 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
109.1375 -+
109.1376 -+#define _LIBC
109.1377 -+#include <locale>
109.1378 -+#undef _LIBC
109.1379 -+#include <bits/c++locale_internal.h>
109.1380 -+
109.1381 -+#ifdef __UCLIBC_MJN3_ONLY__
109.1382 -+#warning optimize this for uclibc
109.1383 -+#warning tailor for stub locale support
109.1384 -+#endif
109.1385 -+
109.1386 -+#ifndef __UCLIBC_HAS_XLOCALE__
109.1387 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
109.1388 -+#endif
109.1389 -+
109.1390 -+namespace std
109.1391 -+{
109.1392 -+  // Construct and return valid pattern consisting of some combination of:
109.1393 -+  // space none symbol sign value
109.1394 -+  money_base::pattern
109.1395 -+  money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
109.1396 -+  { 
109.1397 -+    pattern __ret;
109.1398 -+
109.1399 -+    // This insanely complicated routine attempts to construct a valid
109.1400 -+    // pattern for use with monyepunct. A couple of invariants:
109.1401 -+
109.1402 -+    // if (__precedes) symbol -> value
109.1403 -+    // else value -> symbol
109.1404 -+    
109.1405 -+    // if (__space) space
109.1406 -+    // else none
109.1407 -+
109.1408 -+    // none == never first
109.1409 -+    // space never first or last
109.1410 -+
109.1411 -+    // Any elegant implementations of this are welcome.
109.1412 -+    switch (__posn)
109.1413 -+      {
109.1414 -+      case 0:
109.1415 -+      case 1:
109.1416 -+	// 1 The sign precedes the value and symbol.
109.1417 -+	__ret.field[0] = sign;
109.1418 -+	if (__space)
109.1419 -+	  {
109.1420 -+	    // Pattern starts with sign.
109.1421 -+	    if (__precedes)
109.1422 -+	      {
109.1423 -+		__ret.field[1] = symbol;
109.1424 -+		__ret.field[3] = value;
109.1425 -+	      }
109.1426 -+	    else
109.1427 -+	      {
109.1428 -+		__ret.field[1] = value;
109.1429 -+		__ret.field[3] = symbol;
109.1430 -+	      }
109.1431 -+	    __ret.field[2] = space;
109.1432 -+	  }
109.1433 -+	else
109.1434 -+	  {
109.1435 -+	    // Pattern starts with sign and ends with none.
109.1436 -+	    if (__precedes)
109.1437 -+	      {
109.1438 -+		__ret.field[1] = symbol;
109.1439 -+		__ret.field[2] = value;
109.1440 -+	      }
109.1441 -+	    else
109.1442 -+	      {
109.1443 -+		__ret.field[1] = value;
109.1444 -+		__ret.field[2] = symbol;
109.1445 -+	      }
109.1446 -+	    __ret.field[3] = none;
109.1447 -+	  }
109.1448 -+	break;
109.1449 -+      case 2:
109.1450 -+	// 2 The sign follows the value and symbol.
109.1451 -+	if (__space)
109.1452 -+	  {
109.1453 -+	    // Pattern either ends with sign.
109.1454 -+	    if (__precedes)
109.1455 -+	      {
109.1456 -+		__ret.field[0] = symbol;
109.1457 -+		__ret.field[2] = value;
109.1458 -+	      }
109.1459 -+	    else
109.1460 -+	      {
109.1461 -+		__ret.field[0] = value;
109.1462 -+		__ret.field[2] = symbol;
109.1463 -+	      }
109.1464 -+	    __ret.field[1] = space;
109.1465 -+	    __ret.field[3] = sign;
109.1466 -+	  }
109.1467 -+	else
109.1468 -+	  {
109.1469 -+	    // Pattern ends with sign then none.
109.1470 -+	    if (__precedes)
109.1471 -+	      {
109.1472 -+		__ret.field[0] = symbol;
109.1473 -+		__ret.field[1] = value;
109.1474 -+	      }
109.1475 -+	    else
109.1476 -+	      {
109.1477 -+		__ret.field[0] = value;
109.1478 -+		__ret.field[1] = symbol;
109.1479 -+	      }
109.1480 -+	    __ret.field[2] = sign;
109.1481 -+	    __ret.field[3] = none;
109.1482 -+	  }
109.1483 -+	break;
109.1484 -+      case 3:
109.1485 -+	// 3 The sign immediately precedes the symbol.
109.1486 -+	if (__precedes)
109.1487 -+	  {
109.1488 -+	    __ret.field[0] = sign;
109.1489 -+	    __ret.field[1] = symbol;	    
109.1490 -+	    if (__space)
109.1491 -+	      {
109.1492 -+		__ret.field[2] = space;
109.1493 -+		__ret.field[3] = value;
109.1494 -+	      }
109.1495 -+	    else
109.1496 -+	      {
109.1497 -+		__ret.field[2] = value;		
109.1498 -+		__ret.field[3] = none;
109.1499 -+	      }
109.1500 -+	  }
109.1501 -+	else
109.1502 -+	  {
109.1503 -+	    __ret.field[0] = value;
109.1504 -+	    if (__space)
109.1505 -+	      {
109.1506 -+		__ret.field[1] = space;
109.1507 -+		__ret.field[2] = sign;
109.1508 -+		__ret.field[3] = symbol;
109.1509 -+	      }
109.1510 -+	    else
109.1511 -+	      {
109.1512 -+		__ret.field[1] = sign;
109.1513 -+		__ret.field[2] = symbol;
109.1514 -+		__ret.field[3] = none;
109.1515 -+	      }
109.1516 -+	  }
109.1517 -+	break;
109.1518 -+      case 4:
109.1519 -+	// 4 The sign immediately follows the symbol.
109.1520 -+	if (__precedes)
109.1521 -+	  {
109.1522 -+	    __ret.field[0] = symbol;
109.1523 -+	    __ret.field[1] = sign;
109.1524 -+	    if (__space)
109.1525 -+	      {
109.1526 -+		__ret.field[2] = space;
109.1527 -+		__ret.field[3] = value;
109.1528 -+	      }
109.1529 -+	    else
109.1530 -+	      {
109.1531 -+		__ret.field[2] = value;
109.1532 -+		__ret.field[3] = none;
109.1533 -+	      }
109.1534 -+	  }
109.1535 -+	else
109.1536 -+	  {
109.1537 -+	    __ret.field[0] = value;
109.1538 -+	    if (__space)
109.1539 -+	      {
109.1540 -+		__ret.field[1] = space;
109.1541 -+		__ret.field[2] = symbol;
109.1542 -+		__ret.field[3] = sign;
109.1543 -+	      }
109.1544 -+	    else
109.1545 -+	      {
109.1546 -+		__ret.field[1] = symbol;
109.1547 -+		__ret.field[2] = sign;
109.1548 -+		__ret.field[3] = none;
109.1549 -+	      }
109.1550 -+	  }
109.1551 -+	break;
109.1552 -+      default:
109.1553 -+	__ret = pattern();
109.1554 -+      }
109.1555 -+    return __ret;
109.1556 -+  }
109.1557 -+
109.1558 -+  template<> 
109.1559 -+    void
109.1560 -+    moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, 
109.1561 -+						     const char*)
109.1562 -+    {
109.1563 -+      if (!_M_data)
109.1564 -+	_M_data = new __moneypunct_cache<char, true>;
109.1565 -+
109.1566 -+      if (!__cloc)
109.1567 -+	{
109.1568 -+	  // "C" locale
109.1569 -+	  _M_data->_M_decimal_point = '.';
109.1570 -+	  _M_data->_M_thousands_sep = ',';
109.1571 -+	  _M_data->_M_grouping = "";
109.1572 -+	  _M_data->_M_grouping_size = 0;
109.1573 -+	  _M_data->_M_curr_symbol = "";
109.1574 -+	  _M_data->_M_curr_symbol_size = 0;
109.1575 -+	  _M_data->_M_positive_sign = "";
109.1576 -+	  _M_data->_M_positive_sign_size = 0;
109.1577 -+	  _M_data->_M_negative_sign = "";
109.1578 -+	  _M_data->_M_negative_sign_size = 0;
109.1579 -+	  _M_data->_M_frac_digits = 0;
109.1580 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
109.1581 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
109.1582 -+
109.1583 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
109.1584 -+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
109.1585 -+	}
109.1586 -+      else
109.1587 -+	{
109.1588 -+	  // Named locale.
109.1589 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
109.1590 -+							__cloc));
109.1591 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
109.1592 -+							__cloc));
109.1593 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
109.1594 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
109.1595 -+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
109.1596 -+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
109.1597 -+
109.1598 -+	  char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
109.1599 -+	  if (!__nposn)
109.1600 -+	    _M_data->_M_negative_sign = "()";
109.1601 -+	  else
109.1602 -+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, 
109.1603 -+							__cloc);
109.1604 -+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
109.1605 -+
109.1606 -+	  // _Intl == true
109.1607 -+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
109.1608 -+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
109.1609 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
109.1610 -+						      __cloc));
109.1611 -+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
109.1612 -+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
109.1613 -+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
109.1614 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
109.1615 -+							__pposn);
109.1616 -+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
109.1617 -+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
109.1618 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
109.1619 -+							__nposn);
109.1620 -+	}
109.1621 -+    }
109.1622 -+
109.1623 -+  template<> 
109.1624 -+    void
109.1625 -+    moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, 
109.1626 -+						      const char*)
109.1627 -+    {
109.1628 -+      if (!_M_data)
109.1629 -+	_M_data = new __moneypunct_cache<char, false>;
109.1630 -+
109.1631 -+      if (!__cloc)
109.1632 -+	{
109.1633 -+	  // "C" locale
109.1634 -+	  _M_data->_M_decimal_point = '.';
109.1635 -+	  _M_data->_M_thousands_sep = ',';
109.1636 -+	  _M_data->_M_grouping = "";
109.1637 -+	  _M_data->_M_grouping_size = 0;
109.1638 -+	  _M_data->_M_curr_symbol = "";
109.1639 -+	  _M_data->_M_curr_symbol_size = 0;
109.1640 -+	  _M_data->_M_positive_sign = "";
109.1641 -+	  _M_data->_M_positive_sign_size = 0;
109.1642 -+	  _M_data->_M_negative_sign = "";
109.1643 -+	  _M_data->_M_negative_sign_size = 0;
109.1644 -+	  _M_data->_M_frac_digits = 0;
109.1645 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
109.1646 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
109.1647 -+
109.1648 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
109.1649 -+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
109.1650 -+	}
109.1651 -+      else
109.1652 -+	{
109.1653 -+	  // Named locale.
109.1654 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
109.1655 -+							__cloc));
109.1656 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
109.1657 -+							__cloc));
109.1658 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
109.1659 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
109.1660 -+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
109.1661 -+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
109.1662 -+
109.1663 -+	  char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
109.1664 -+	  if (!__nposn)
109.1665 -+	    _M_data->_M_negative_sign = "()";
109.1666 -+	  else
109.1667 -+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
109.1668 -+							__cloc);
109.1669 -+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
109.1670 -+
109.1671 -+	  // _Intl == false
109.1672 -+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
109.1673 -+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
109.1674 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
109.1675 -+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
109.1676 -+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
109.1677 -+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
109.1678 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
109.1679 -+							__pposn);
109.1680 -+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
109.1681 -+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
109.1682 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
109.1683 -+							__nposn);
109.1684 -+	}
109.1685 -+    }
109.1686 -+
109.1687 -+  template<> 
109.1688 -+    moneypunct<char, true>::~moneypunct()
109.1689 -+    { delete _M_data; }
109.1690 -+
109.1691 -+  template<> 
109.1692 -+    moneypunct<char, false>::~moneypunct()
109.1693 -+    { delete _M_data; }
109.1694 -+
109.1695 -+#ifdef _GLIBCXX_USE_WCHAR_T
109.1696 -+  template<> 
109.1697 -+    void
109.1698 -+    moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, 
109.1699 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1700 -+							const char*)
109.1701 -+#else
109.1702 -+							const char* __name)
109.1703 -+#endif
109.1704 -+    {
109.1705 -+      if (!_M_data)
109.1706 -+	_M_data = new __moneypunct_cache<wchar_t, true>;
109.1707 -+
109.1708 -+      if (!__cloc)
109.1709 -+	{
109.1710 -+	  // "C" locale
109.1711 -+	  _M_data->_M_decimal_point = L'.';
109.1712 -+	  _M_data->_M_thousands_sep = L',';
109.1713 -+	  _M_data->_M_grouping = "";
109.1714 -+	  _M_data->_M_grouping_size = 0;
109.1715 -+	  _M_data->_M_curr_symbol = L"";
109.1716 -+	  _M_data->_M_curr_symbol_size = 0;
109.1717 -+	  _M_data->_M_positive_sign = L"";
109.1718 -+	  _M_data->_M_positive_sign_size = 0;
109.1719 -+	  _M_data->_M_negative_sign = L"";
109.1720 -+	  _M_data->_M_negative_sign_size = 0;
109.1721 -+	  _M_data->_M_frac_digits = 0;
109.1722 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
109.1723 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
109.1724 -+
109.1725 -+	  // Use ctype::widen code without the facet...
109.1726 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
109.1727 -+	    _M_data->_M_atoms[__i] =
109.1728 -+	      static_cast<wchar_t>(money_base::_S_atoms[__i]);
109.1729 -+	}
109.1730 -+      else
109.1731 -+	{
109.1732 -+	  // Named locale.
109.1733 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1734 -+	  __c_locale __old = __uselocale(__cloc);
109.1735 -+#else
109.1736 -+	  // Switch to named locale so that mbsrtowcs will work.
109.1737 -+	  char* __old = strdup(setlocale(LC_ALL, NULL));
109.1738 -+	  setlocale(LC_ALL, __name);
109.1739 -+#endif
109.1740 -+
109.1741 -+#ifdef __UCLIBC_MJN3_ONLY__
109.1742 -+#warning fix this... should be monetary
109.1743 -+#endif
109.1744 -+#ifdef __UCLIBC__
109.1745 -+# ifdef __UCLIBC_HAS_XLOCALE__
109.1746 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
109.1747 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
109.1748 -+# else
109.1749 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
109.1750 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
109.1751 -+# endif
109.1752 -+#else
109.1753 -+	  union { char *__s; wchar_t __w; } __u;
109.1754 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
109.1755 -+	  _M_data->_M_decimal_point = __u.__w;
109.1756 -+
109.1757 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
109.1758 -+	  _M_data->_M_thousands_sep = __u.__w;
109.1759 -+#endif
109.1760 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
109.1761 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
109.1762 -+
109.1763 -+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
109.1764 -+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
109.1765 -+	  const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
109.1766 -+
109.1767 -+	  wchar_t* __wcs_ps = 0;
109.1768 -+	  wchar_t* __wcs_ns = 0;
109.1769 -+	  const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
109.1770 -+	  try
109.1771 -+	    {
109.1772 -+	      mbstate_t __state;
109.1773 -+	      size_t __len = strlen(__cpossign);
109.1774 -+	      if (__len)
109.1775 -+		{
109.1776 -+		  ++__len;
109.1777 -+		  memset(&__state, 0, sizeof(mbstate_t));
109.1778 -+		  __wcs_ps = new wchar_t[__len];
109.1779 -+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
109.1780 -+		  _M_data->_M_positive_sign = __wcs_ps;
109.1781 -+		}
109.1782 -+	      else
109.1783 -+		_M_data->_M_positive_sign = L"";
109.1784 -+	      _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
109.1785 -+	      
109.1786 -+	      __len = strlen(__cnegsign);
109.1787 -+	      if (!__nposn)
109.1788 -+		_M_data->_M_negative_sign = L"()";
109.1789 -+	      else if (__len)
109.1790 -+		{ 
109.1791 -+		  ++__len;
109.1792 -+		  memset(&__state, 0, sizeof(mbstate_t));
109.1793 -+		  __wcs_ns = new wchar_t[__len];
109.1794 -+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
109.1795 -+		  _M_data->_M_negative_sign = __wcs_ns;
109.1796 -+		}
109.1797 -+	      else
109.1798 -+		_M_data->_M_negative_sign = L"";
109.1799 -+	      _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
109.1800 -+	      
109.1801 -+	      // _Intl == true.
109.1802 -+	      __len = strlen(__ccurr);
109.1803 -+	      if (__len)
109.1804 -+		{
109.1805 -+		  ++__len;
109.1806 -+		  memset(&__state, 0, sizeof(mbstate_t));
109.1807 -+		  wchar_t* __wcs = new wchar_t[__len];
109.1808 -+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
109.1809 -+		  _M_data->_M_curr_symbol = __wcs;
109.1810 -+		}
109.1811 -+	      else
109.1812 -+		_M_data->_M_curr_symbol = L"";
109.1813 -+	      _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
109.1814 -+	    }
109.1815 -+	  catch (...)
109.1816 -+	    {
109.1817 -+	      delete _M_data;
109.1818 -+	      _M_data = 0;
109.1819 -+	      delete __wcs_ps;
109.1820 -+	      delete __wcs_ns;	      
109.1821 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1822 -+	      __uselocale(__old);
109.1823 -+#else
109.1824 -+	      setlocale(LC_ALL, __old);
109.1825 -+	      free(__old);
109.1826 -+#endif
109.1827 -+	      __throw_exception_again;
109.1828 -+	    } 
109.1829 -+	  
109.1830 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
109.1831 -+						      __cloc));
109.1832 -+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
109.1833 -+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
109.1834 -+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
109.1835 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
109.1836 -+							__pposn);
109.1837 -+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
109.1838 -+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
109.1839 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
109.1840 -+							__nposn);
109.1841 -+
109.1842 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1843 -+	  __uselocale(__old);
109.1844 -+#else
109.1845 -+	  setlocale(LC_ALL, __old);
109.1846 -+	  free(__old);
109.1847 -+#endif
109.1848 -+	}
109.1849 -+    }
109.1850 -+
109.1851 -+  template<> 
109.1852 -+  void
109.1853 -+  moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
109.1854 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1855 -+						       const char*)
109.1856 -+#else
109.1857 -+                                                       const char* __name)
109.1858 -+#endif
109.1859 -+  {
109.1860 -+    if (!_M_data)
109.1861 -+      _M_data = new __moneypunct_cache<wchar_t, false>;
109.1862 -+
109.1863 -+    if (!__cloc)
109.1864 -+	{
109.1865 -+	  // "C" locale
109.1866 -+	  _M_data->_M_decimal_point = L'.';
109.1867 -+	  _M_data->_M_thousands_sep = L',';
109.1868 -+	  _M_data->_M_grouping = "";
109.1869 -+          _M_data->_M_grouping_size = 0;
109.1870 -+	  _M_data->_M_curr_symbol = L"";
109.1871 -+	  _M_data->_M_curr_symbol_size = 0;
109.1872 -+	  _M_data->_M_positive_sign = L"";
109.1873 -+	  _M_data->_M_positive_sign_size = 0;
109.1874 -+	  _M_data->_M_negative_sign = L"";
109.1875 -+	  _M_data->_M_negative_sign_size = 0;
109.1876 -+	  _M_data->_M_frac_digits = 0;
109.1877 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
109.1878 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
109.1879 -+
109.1880 -+	  // Use ctype::widen code without the facet...
109.1881 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
109.1882 -+	    _M_data->_M_atoms[__i] =
109.1883 -+	      static_cast<wchar_t>(money_base::_S_atoms[__i]);
109.1884 -+	}
109.1885 -+      else
109.1886 -+	{
109.1887 -+	  // Named locale.
109.1888 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1889 -+	  __c_locale __old = __uselocale(__cloc);
109.1890 -+#else
109.1891 -+	  // Switch to named locale so that mbsrtowcs will work.
109.1892 -+	  char* __old = strdup(setlocale(LC_ALL, NULL));
109.1893 -+	  setlocale(LC_ALL, __name);
109.1894 -+#endif
109.1895 -+
109.1896 -+#ifdef __UCLIBC_MJN3_ONLY__
109.1897 -+#warning fix this... should be monetary
109.1898 -+#endif
109.1899 -+#ifdef __UCLIBC__
109.1900 -+# ifdef __UCLIBC_HAS_XLOCALE__
109.1901 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
109.1902 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
109.1903 -+# else
109.1904 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
109.1905 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
109.1906 -+# endif
109.1907 -+#else
109.1908 -+          union { char *__s; wchar_t __w; } __u;
109.1909 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
109.1910 -+	  _M_data->_M_decimal_point = __u.__w;
109.1911 -+
109.1912 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
109.1913 -+	  _M_data->_M_thousands_sep = __u.__w;
109.1914 -+#endif
109.1915 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
109.1916 -+          _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
109.1917 -+
109.1918 -+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
109.1919 -+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
109.1920 -+	  const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
109.1921 -+
109.1922 -+	  wchar_t* __wcs_ps = 0;
109.1923 -+	  wchar_t* __wcs_ns = 0;
109.1924 -+	  const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
109.1925 -+	  try
109.1926 -+            {
109.1927 -+              mbstate_t __state;
109.1928 -+              size_t __len;
109.1929 -+              __len = strlen(__cpossign);
109.1930 -+              if (__len)
109.1931 -+                {
109.1932 -+		  ++__len;
109.1933 -+		  memset(&__state, 0, sizeof(mbstate_t));
109.1934 -+		  __wcs_ps = new wchar_t[__len];
109.1935 -+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
109.1936 -+		  _M_data->_M_positive_sign = __wcs_ps;
109.1937 -+		}
109.1938 -+	      else
109.1939 -+		_M_data->_M_positive_sign = L"";
109.1940 -+              _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
109.1941 -+	      
109.1942 -+	      __len = strlen(__cnegsign);
109.1943 -+	      if (!__nposn)
109.1944 -+		_M_data->_M_negative_sign = L"()";
109.1945 -+	      else if (__len)
109.1946 -+		{ 
109.1947 -+		  ++__len;
109.1948 -+		  memset(&__state, 0, sizeof(mbstate_t));
109.1949 -+		  __wcs_ns = new wchar_t[__len];
109.1950 -+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
109.1951 -+		  _M_data->_M_negative_sign = __wcs_ns;
109.1952 -+		}
109.1953 -+	      else
109.1954 -+		_M_data->_M_negative_sign = L"";
109.1955 -+              _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
109.1956 -+
109.1957 -+	      // _Intl == true.
109.1958 -+	      __len = strlen(__ccurr);
109.1959 -+	      if (__len)
109.1960 -+		{
109.1961 -+		  ++__len;
109.1962 -+		  memset(&__state, 0, sizeof(mbstate_t));
109.1963 -+		  wchar_t* __wcs = new wchar_t[__len];
109.1964 -+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
109.1965 -+		  _M_data->_M_curr_symbol = __wcs;
109.1966 -+		}
109.1967 -+	      else
109.1968 -+		_M_data->_M_curr_symbol = L"";
109.1969 -+              _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
109.1970 -+	    }
109.1971 -+          catch (...)
109.1972 -+	    {
109.1973 -+	      delete _M_data;
109.1974 -+              _M_data = 0;
109.1975 -+	      delete __wcs_ps;
109.1976 -+	      delete __wcs_ns;	      
109.1977 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1978 -+	      __uselocale(__old);
109.1979 -+#else
109.1980 -+	      setlocale(LC_ALL, __old);
109.1981 -+	      free(__old);
109.1982 -+#endif
109.1983 -+              __throw_exception_again;
109.1984 -+	    }
109.1985 -+
109.1986 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
109.1987 -+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
109.1988 -+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
109.1989 -+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
109.1990 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
109.1991 -+	                                                __pposn);
109.1992 -+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
109.1993 -+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
109.1994 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
109.1995 -+	                                                __nposn);
109.1996 -+
109.1997 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.1998 -+	  __uselocale(__old);
109.1999 -+#else
109.2000 -+	  setlocale(LC_ALL, __old);
109.2001 -+	  free(__old);
109.2002 -+#endif
109.2003 -+	}
109.2004 -+    }
109.2005 -+
109.2006 -+  template<> 
109.2007 -+    moneypunct<wchar_t, true>::~moneypunct()
109.2008 -+    {
109.2009 -+      if (_M_data->_M_positive_sign_size)
109.2010 -+	delete [] _M_data->_M_positive_sign;
109.2011 -+      if (_M_data->_M_negative_sign_size
109.2012 -+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
109.2013 -+	delete [] _M_data->_M_negative_sign;
109.2014 -+      if (_M_data->_M_curr_symbol_size)
109.2015 -+	delete [] _M_data->_M_curr_symbol;
109.2016 -+      delete _M_data;
109.2017 -+    }
109.2018 -+
109.2019 -+  template<> 
109.2020 -+    moneypunct<wchar_t, false>::~moneypunct()
109.2021 -+    {
109.2022 -+      if (_M_data->_M_positive_sign_size)
109.2023 -+	delete [] _M_data->_M_positive_sign;
109.2024 -+      if (_M_data->_M_negative_sign_size
109.2025 -+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
109.2026 -+	delete [] _M_data->_M_negative_sign;
109.2027 -+      if (_M_data->_M_curr_symbol_size)
109.2028 -+	delete [] _M_data->_M_curr_symbol;
109.2029 -+      delete _M_data;
109.2030 -+    }
109.2031 -+#endif
109.2032 -+}
109.2033 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
109.2034 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc	1969-12-31 18:00:00.000000000 -0600
109.2035 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2005-04-28 01:20:20.000000000 -0500
109.2036 -@@ -0,0 +1,173 @@
109.2037 -+// std::numpunct implementation details, GNU version -*- C++ -*-
109.2038 -+
109.2039 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
109.2040 -+//
109.2041 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2042 -+// software; you can redistribute it and/or modify it under the
109.2043 -+// terms of the GNU General Public License as published by the
109.2044 -+// Free Software Foundation; either version 2, or (at your option)
109.2045 -+// any later version.
109.2046 -+
109.2047 -+// This library is distributed in the hope that it will be useful,
109.2048 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2049 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2050 -+// GNU General Public License for more details.
109.2051 -+
109.2052 -+// You should have received a copy of the GNU General Public License along
109.2053 -+// with this library; see the file COPYING.  If not, write to the Free
109.2054 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2055 -+// USA.
109.2056 -+
109.2057 -+// As a special exception, you may use this file as part of a free software
109.2058 -+// library without restriction.  Specifically, if other files instantiate
109.2059 -+// templates or use macros or inline functions from this file, or you compile
109.2060 -+// this file and link it with other files to produce an executable, this
109.2061 -+// file does not by itself cause the resulting executable to be covered by
109.2062 -+// the GNU General Public License.  This exception does not however
109.2063 -+// invalidate any other reasons why the executable file might be covered by
109.2064 -+// the GNU General Public License.
109.2065 -+
109.2066 -+//
109.2067 -+// ISO C++ 14882: 22.2.3.1.2  numpunct virtual functions
109.2068 -+//
109.2069 -+
109.2070 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
109.2071 -+
109.2072 -+#define _LIBC
109.2073 -+#include <locale>
109.2074 -+#undef _LIBC
109.2075 -+#include <bits/c++locale_internal.h>
109.2076 -+
109.2077 -+#ifdef __UCLIBC_MJN3_ONLY__
109.2078 -+#warning tailor for stub locale support
109.2079 -+#endif
109.2080 -+#ifndef __UCLIBC_HAS_XLOCALE__
109.2081 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
109.2082 -+#endif
109.2083 -+
109.2084 -+namespace std
109.2085 -+{
109.2086 -+  template<> 
109.2087 -+    void
109.2088 -+    numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
109.2089 -+    {
109.2090 -+      if (!_M_data)
109.2091 -+	_M_data = new __numpunct_cache<char>;
109.2092 -+
109.2093 -+      if (!__cloc)
109.2094 -+	{
109.2095 -+	  // "C" locale
109.2096 -+	  _M_data->_M_grouping = "";
109.2097 -+	  _M_data->_M_grouping_size = 0;
109.2098 -+	  _M_data->_M_use_grouping = false;
109.2099 -+
109.2100 -+	  _M_data->_M_decimal_point = '.';
109.2101 -+	  _M_data->_M_thousands_sep = ',';
109.2102 -+
109.2103 -+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
109.2104 -+	    _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
109.2105 -+
109.2106 -+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
109.2107 -+	    _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
109.2108 -+	}
109.2109 -+      else
109.2110 -+	{
109.2111 -+	  // Named locale.
109.2112 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, 
109.2113 -+							__cloc));
109.2114 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, 
109.2115 -+							__cloc));
109.2116 -+
109.2117 -+	  // Check for NULL, which implies no grouping.
109.2118 -+	  if (_M_data->_M_thousands_sep == '\0')
109.2119 -+	    _M_data->_M_grouping = "";
109.2120 -+	  else
109.2121 -+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
109.2122 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
109.2123 -+	}
109.2124 -+
109.2125 -+      // NB: There is no way to extact this info from posix locales.
109.2126 -+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
109.2127 -+      _M_data->_M_truename = "true";
109.2128 -+      _M_data->_M_truename_size = 4;
109.2129 -+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
109.2130 -+      _M_data->_M_falsename = "false";
109.2131 -+      _M_data->_M_falsename_size = 5;
109.2132 -+    }
109.2133 -+ 
109.2134 -+  template<> 
109.2135 -+    numpunct<char>::~numpunct()
109.2136 -+    { delete _M_data; }
109.2137 -+   
109.2138 -+#ifdef _GLIBCXX_USE_WCHAR_T
109.2139 -+  template<> 
109.2140 -+    void
109.2141 -+    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
109.2142 -+    {
109.2143 -+      if (!_M_data)
109.2144 -+	_M_data = new __numpunct_cache<wchar_t>;
109.2145 -+
109.2146 -+      if (!__cloc)
109.2147 -+	{
109.2148 -+	  // "C" locale
109.2149 -+	  _M_data->_M_grouping = "";
109.2150 -+	  _M_data->_M_grouping_size = 0;
109.2151 -+	  _M_data->_M_use_grouping = false;
109.2152 -+
109.2153 -+	  _M_data->_M_decimal_point = L'.';
109.2154 -+	  _M_data->_M_thousands_sep = L',';
109.2155 -+
109.2156 -+	  // Use ctype::widen code without the facet...
109.2157 -+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
109.2158 -+	    _M_data->_M_atoms_out[__i] =
109.2159 -+	      static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
109.2160 -+
109.2161 -+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
109.2162 -+	    _M_data->_M_atoms_in[__j] =
109.2163 -+	      static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
109.2164 -+	}
109.2165 -+      else
109.2166 -+	{
109.2167 -+	  // Named locale.
109.2168 -+	  // NB: In the GNU model wchar_t is always 32 bit wide.
109.2169 -+#ifdef __UCLIBC_MJN3_ONLY__
109.2170 -+#warning fix this
109.2171 -+#endif
109.2172 -+#ifdef __UCLIBC__
109.2173 -+# ifdef __UCLIBC_HAS_XLOCALE__
109.2174 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
109.2175 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
109.2176 -+# else
109.2177 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
109.2178 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
109.2179 -+# endif
109.2180 -+#else
109.2181 -+	  union { char *__s; wchar_t __w; } __u;
109.2182 -+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
109.2183 -+	  _M_data->_M_decimal_point = __u.__w;
109.2184 -+
109.2185 -+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
109.2186 -+	  _M_data->_M_thousands_sep = __u.__w;
109.2187 -+#endif
109.2188 -+
109.2189 -+	  if (_M_data->_M_thousands_sep == L'\0')
109.2190 -+	    _M_data->_M_grouping = "";
109.2191 -+	  else
109.2192 -+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
109.2193 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
109.2194 -+	}
109.2195 -+
109.2196 -+      // NB: There is no way to extact this info from posix locales.
109.2197 -+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
109.2198 -+      _M_data->_M_truename = L"true";
109.2199 -+      _M_data->_M_truename_size = 4;
109.2200 -+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
109.2201 -+      _M_data->_M_falsename = L"false";
109.2202 -+      _M_data->_M_falsename_size = 5;
109.2203 -+    }
109.2204 -+
109.2205 -+  template<> 
109.2206 -+    numpunct<wchar_t>::~numpunct()
109.2207 -+    { delete _M_data; }
109.2208 -+ #endif
109.2209 -+}
109.2210 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc
109.2211 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc	1969-12-31 18:00:00.000000000 -0600
109.2212 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc	2005-04-28 01:13:15.000000000 -0500
109.2213 -@@ -0,0 +1,406 @@
109.2214 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
109.2215 -+
109.2216 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
109.2217 -+//
109.2218 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2219 -+// software; you can redistribute it and/or modify it under the
109.2220 -+// terms of the GNU General Public License as published by the
109.2221 -+// Free Software Foundation; either version 2, or (at your option)
109.2222 -+// any later version.
109.2223 -+
109.2224 -+// This library is distributed in the hope that it will be useful,
109.2225 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2226 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2227 -+// GNU General Public License for more details.
109.2228 -+
109.2229 -+// You should have received a copy of the GNU General Public License along
109.2230 -+// with this library; see the file COPYING.  If not, write to the Free
109.2231 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2232 -+// USA.
109.2233 -+
109.2234 -+// As a special exception, you may use this file as part of a free software
109.2235 -+// library without restriction.  Specifically, if other files instantiate
109.2236 -+// templates or use macros or inline functions from this file, or you compile
109.2237 -+// this file and link it with other files to produce an executable, this
109.2238 -+// file does not by itself cause the resulting executable to be covered by
109.2239 -+// the GNU General Public License.  This exception does not however
109.2240 -+// invalidate any other reasons why the executable file might be covered by
109.2241 -+// the GNU General Public License.
109.2242 -+
109.2243 -+//
109.2244 -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
109.2245 -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
109.2246 -+//
109.2247 -+
109.2248 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
109.2249 -+
109.2250 -+#include <locale>
109.2251 -+#include <bits/c++locale_internal.h>
109.2252 -+
109.2253 -+#ifdef __UCLIBC_MJN3_ONLY__
109.2254 -+#warning tailor for stub locale support
109.2255 -+#endif
109.2256 -+#ifndef __UCLIBC_HAS_XLOCALE__
109.2257 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
109.2258 -+#endif
109.2259 -+
109.2260 -+namespace std
109.2261 -+{
109.2262 -+  template<>
109.2263 -+    void
109.2264 -+    __timepunct<char>::
109.2265 -+    _M_put(char* __s, size_t __maxlen, const char* __format, 
109.2266 -+	   const tm* __tm) const
109.2267 -+    {
109.2268 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.2269 -+      const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
109.2270 -+					_M_c_locale_timepunct);
109.2271 -+#else
109.2272 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
109.2273 -+      setlocale(LC_ALL, _M_name_timepunct);
109.2274 -+      const size_t __len = strftime(__s, __maxlen, __format, __tm);
109.2275 -+      setlocale(LC_ALL, __old);
109.2276 -+      free(__old);
109.2277 -+#endif
109.2278 -+      // Make sure __s is null terminated.
109.2279 -+      if (__len == 0)
109.2280 -+	__s[0] = '\0';
109.2281 -+    }
109.2282 -+
109.2283 -+  template<> 
109.2284 -+    void
109.2285 -+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
109.2286 -+    {
109.2287 -+      if (!_M_data)
109.2288 -+	_M_data = new __timepunct_cache<char>;
109.2289 -+
109.2290 -+      if (!__cloc)
109.2291 -+	{
109.2292 -+	  // "C" locale
109.2293 -+	  _M_c_locale_timepunct = _S_get_c_locale();
109.2294 -+
109.2295 -+	  _M_data->_M_date_format = "%m/%d/%y";
109.2296 -+	  _M_data->_M_date_era_format = "%m/%d/%y";
109.2297 -+	  _M_data->_M_time_format = "%H:%M:%S";
109.2298 -+	  _M_data->_M_time_era_format = "%H:%M:%S";
109.2299 -+	  _M_data->_M_date_time_format = "";
109.2300 -+	  _M_data->_M_date_time_era_format = "";
109.2301 -+	  _M_data->_M_am = "AM";
109.2302 -+	  _M_data->_M_pm = "PM";
109.2303 -+	  _M_data->_M_am_pm_format = "";
109.2304 -+
109.2305 -+	  // Day names, starting with "C"'s Sunday.
109.2306 -+	  _M_data->_M_day1 = "Sunday";
109.2307 -+	  _M_data->_M_day2 = "Monday";
109.2308 -+	  _M_data->_M_day3 = "Tuesday";
109.2309 -+	  _M_data->_M_day4 = "Wednesday";
109.2310 -+	  _M_data->_M_day5 = "Thursday";
109.2311 -+	  _M_data->_M_day6 = "Friday";
109.2312 -+	  _M_data->_M_day7 = "Saturday";
109.2313 -+
109.2314 -+	  // Abbreviated day names, starting with "C"'s Sun.
109.2315 -+	  _M_data->_M_aday1 = "Sun";
109.2316 -+	  _M_data->_M_aday2 = "Mon";
109.2317 -+	  _M_data->_M_aday3 = "Tue";
109.2318 -+	  _M_data->_M_aday4 = "Wed";
109.2319 -+	  _M_data->_M_aday5 = "Thu";
109.2320 -+	  _M_data->_M_aday6 = "Fri";
109.2321 -+	  _M_data->_M_aday7 = "Sat";
109.2322 -+
109.2323 -+	  // Month names, starting with "C"'s January.
109.2324 -+	  _M_data->_M_month01 = "January";
109.2325 -+	  _M_data->_M_month02 = "February";
109.2326 -+	  _M_data->_M_month03 = "March";
109.2327 -+	  _M_data->_M_month04 = "April";
109.2328 -+	  _M_data->_M_month05 = "May";
109.2329 -+	  _M_data->_M_month06 = "June";
109.2330 -+	  _M_data->_M_month07 = "July";
109.2331 -+	  _M_data->_M_month08 = "August";
109.2332 -+	  _M_data->_M_month09 = "September";
109.2333 -+	  _M_data->_M_month10 = "October";
109.2334 -+	  _M_data->_M_month11 = "November";
109.2335 -+	  _M_data->_M_month12 = "December";
109.2336 -+
109.2337 -+	  // Abbreviated month names, starting with "C"'s Jan.
109.2338 -+	  _M_data->_M_amonth01 = "Jan";
109.2339 -+	  _M_data->_M_amonth02 = "Feb";
109.2340 -+	  _M_data->_M_amonth03 = "Mar";
109.2341 -+	  _M_data->_M_amonth04 = "Apr";
109.2342 -+	  _M_data->_M_amonth05 = "May";
109.2343 -+	  _M_data->_M_amonth06 = "Jun";
109.2344 -+	  _M_data->_M_amonth07 = "Jul";
109.2345 -+	  _M_data->_M_amonth08 = "Aug";
109.2346 -+	  _M_data->_M_amonth09 = "Sep";
109.2347 -+	  _M_data->_M_amonth10 = "Oct";
109.2348 -+	  _M_data->_M_amonth11 = "Nov";
109.2349 -+	  _M_data->_M_amonth12 = "Dec";
109.2350 -+	}
109.2351 -+      else
109.2352 -+	{
109.2353 -+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
109.2354 -+
109.2355 -+	  _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
109.2356 -+	  _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
109.2357 -+	  _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
109.2358 -+	  _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
109.2359 -+	  _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
109.2360 -+	  _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
109.2361 -+							     __cloc);
109.2362 -+	  _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
109.2363 -+	  _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
109.2364 -+	  _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
109.2365 -+
109.2366 -+	  // Day names, starting with "C"'s Sunday.
109.2367 -+	  _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
109.2368 -+	  _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
109.2369 -+	  _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
109.2370 -+	  _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
109.2371 -+	  _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
109.2372 -+	  _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
109.2373 -+	  _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
109.2374 -+
109.2375 -+	  // Abbreviated day names, starting with "C"'s Sun.
109.2376 -+	  _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
109.2377 -+	  _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
109.2378 -+	  _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
109.2379 -+	  _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
109.2380 -+	  _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
109.2381 -+	  _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
109.2382 -+	  _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
109.2383 -+
109.2384 -+	  // Month names, starting with "C"'s January.
109.2385 -+	  _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
109.2386 -+	  _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
109.2387 -+	  _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
109.2388 -+	  _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
109.2389 -+	  _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
109.2390 -+	  _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
109.2391 -+	  _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
109.2392 -+	  _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
109.2393 -+	  _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
109.2394 -+	  _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
109.2395 -+	  _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
109.2396 -+	  _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
109.2397 -+
109.2398 -+	  // Abbreviated month names, starting with "C"'s Jan.
109.2399 -+	  _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
109.2400 -+	  _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
109.2401 -+	  _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
109.2402 -+	  _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
109.2403 -+	  _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
109.2404 -+	  _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
109.2405 -+	  _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
109.2406 -+	  _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
109.2407 -+	  _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
109.2408 -+	  _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
109.2409 -+	  _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
109.2410 -+	  _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
109.2411 -+	}
109.2412 -+    }
109.2413 -+
109.2414 -+#ifdef _GLIBCXX_USE_WCHAR_T
109.2415 -+  template<>
109.2416 -+    void
109.2417 -+    __timepunct<wchar_t>::
109.2418 -+    _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 
109.2419 -+	   const tm* __tm) const
109.2420 -+    {
109.2421 -+#ifdef __UCLIBC_HAS_XLOCALE__
109.2422 -+      __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
109.2423 -+      const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
109.2424 -+					_M_c_locale_timepunct);
109.2425 -+#else
109.2426 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
109.2427 -+      setlocale(LC_ALL, _M_name_timepunct);
109.2428 -+      const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
109.2429 -+      setlocale(LC_ALL, __old);
109.2430 -+      free(__old);
109.2431 -+#endif
109.2432 -+      // Make sure __s is null terminated.
109.2433 -+      if (__len == 0)
109.2434 -+	__s[0] = L'\0';
109.2435 -+    }
109.2436 -+
109.2437 -+  template<> 
109.2438 -+    void
109.2439 -+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
109.2440 -+    {
109.2441 -+      if (!_M_data)
109.2442 -+	_M_data = new __timepunct_cache<wchar_t>;
109.2443 -+
109.2444 -+#warning wide time stuff
109.2445 -+//       if (!__cloc)
109.2446 -+	{
109.2447 -+	  // "C" locale
109.2448 -+	  _M_c_locale_timepunct = _S_get_c_locale();
109.2449 -+
109.2450 -+	  _M_data->_M_date_format = L"%m/%d/%y";
109.2451 -+	  _M_data->_M_date_era_format = L"%m/%d/%y";
109.2452 -+	  _M_data->_M_time_format = L"%H:%M:%S";
109.2453 -+	  _M_data->_M_time_era_format = L"%H:%M:%S";
109.2454 -+	  _M_data->_M_date_time_format = L"";
109.2455 -+	  _M_data->_M_date_time_era_format = L"";
109.2456 -+	  _M_data->_M_am = L"AM";
109.2457 -+	  _M_data->_M_pm = L"PM";
109.2458 -+	  _M_data->_M_am_pm_format = L"";
109.2459 -+
109.2460 -+	  // Day names, starting with "C"'s Sunday.
109.2461 -+	  _M_data->_M_day1 = L"Sunday";
109.2462 -+	  _M_data->_M_day2 = L"Monday";
109.2463 -+	  _M_data->_M_day3 = L"Tuesday";
109.2464 -+	  _M_data->_M_day4 = L"Wednesday";
109.2465 -+	  _M_data->_M_day5 = L"Thursday";
109.2466 -+	  _M_data->_M_day6 = L"Friday";
109.2467 -+	  _M_data->_M_day7 = L"Saturday";
109.2468 -+
109.2469 -+	  // Abbreviated day names, starting with "C"'s Sun.
109.2470 -+	  _M_data->_M_aday1 = L"Sun";
109.2471 -+	  _M_data->_M_aday2 = L"Mon";
109.2472 -+	  _M_data->_M_aday3 = L"Tue";
109.2473 -+	  _M_data->_M_aday4 = L"Wed";
109.2474 -+	  _M_data->_M_aday5 = L"Thu";
109.2475 -+	  _M_data->_M_aday6 = L"Fri";
109.2476 -+	  _M_data->_M_aday7 = L"Sat";
109.2477 -+
109.2478 -+	  // Month names, starting with "C"'s January.
109.2479 -+	  _M_data->_M_month01 = L"January";
109.2480 -+	  _M_data->_M_month02 = L"February";
109.2481 -+	  _M_data->_M_month03 = L"March";
109.2482 -+	  _M_data->_M_month04 = L"April";
109.2483 -+	  _M_data->_M_month05 = L"May";
109.2484 -+	  _M_data->_M_month06 = L"June";
109.2485 -+	  _M_data->_M_month07 = L"July";
109.2486 -+	  _M_data->_M_month08 = L"August";
109.2487 -+	  _M_data->_M_month09 = L"September";
109.2488 -+	  _M_data->_M_month10 = L"October";
109.2489 -+	  _M_data->_M_month11 = L"November";
109.2490 -+	  _M_data->_M_month12 = L"December";
109.2491 -+
109.2492 -+	  // Abbreviated month names, starting with "C"'s Jan.
109.2493 -+	  _M_data->_M_amonth01 = L"Jan";
109.2494 -+	  _M_data->_M_amonth02 = L"Feb";
109.2495 -+	  _M_data->_M_amonth03 = L"Mar";
109.2496 -+	  _M_data->_M_amonth04 = L"Apr";
109.2497 -+	  _M_data->_M_amonth05 = L"May";
109.2498 -+	  _M_data->_M_amonth06 = L"Jun";
109.2499 -+	  _M_data->_M_amonth07 = L"Jul";
109.2500 -+	  _M_data->_M_amonth08 = L"Aug";
109.2501 -+	  _M_data->_M_amonth09 = L"Sep";
109.2502 -+	  _M_data->_M_amonth10 = L"Oct";
109.2503 -+	  _M_data->_M_amonth11 = L"Nov";
109.2504 -+	  _M_data->_M_amonth12 = L"Dec";
109.2505 -+	}
109.2506 -+#if 0
109.2507 -+      else
109.2508 -+	{
109.2509 -+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
109.2510 -+
109.2511 -+	  union { char *__s; wchar_t *__w; } __u;
109.2512 -+
109.2513 -+	  __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
109.2514 -+	  _M_data->_M_date_format = __u.__w;
109.2515 -+	  __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
109.2516 -+	  _M_data->_M_date_era_format = __u.__w;
109.2517 -+	  __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
109.2518 -+	  _M_data->_M_time_format = __u.__w;
109.2519 -+	  __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
109.2520 -+	  _M_data->_M_time_era_format = __u.__w;
109.2521 -+	  __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
109.2522 -+	  _M_data->_M_date_time_format = __u.__w;
109.2523 -+	  __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
109.2524 -+	  _M_data->_M_date_time_era_format = __u.__w;
109.2525 -+	  __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
109.2526 -+	  _M_data->_M_am = __u.__w;
109.2527 -+	  __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
109.2528 -+	  _M_data->_M_pm = __u.__w;
109.2529 -+	  __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
109.2530 -+	  _M_data->_M_am_pm_format = __u.__w;
109.2531 -+
109.2532 -+	  // Day names, starting with "C"'s Sunday.
109.2533 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
109.2534 -+	  _M_data->_M_day1 = __u.__w;
109.2535 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
109.2536 -+	  _M_data->_M_day2 = __u.__w;
109.2537 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
109.2538 -+	  _M_data->_M_day3 = __u.__w;
109.2539 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
109.2540 -+	  _M_data->_M_day4 = __u.__w;
109.2541 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
109.2542 -+	  _M_data->_M_day5 = __u.__w;
109.2543 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
109.2544 -+	  _M_data->_M_day6 = __u.__w;
109.2545 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
109.2546 -+	  _M_data->_M_day7 = __u.__w;
109.2547 -+
109.2548 -+	  // Abbreviated day names, starting with "C"'s Sun.
109.2549 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
109.2550 -+	  _M_data->_M_aday1 = __u.__w;
109.2551 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
109.2552 -+	  _M_data->_M_aday2 = __u.__w;
109.2553 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
109.2554 -+	  _M_data->_M_aday3 = __u.__w;
109.2555 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
109.2556 -+	  _M_data->_M_aday4 = __u.__w;
109.2557 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
109.2558 -+	  _M_data->_M_aday5 = __u.__w;
109.2559 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
109.2560 -+	  _M_data->_M_aday6 = __u.__w;
109.2561 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
109.2562 -+	  _M_data->_M_aday7 = __u.__w;
109.2563 -+
109.2564 -+	  // Month names, starting with "C"'s January.
109.2565 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
109.2566 -+	  _M_data->_M_month01 = __u.__w;
109.2567 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
109.2568 -+	  _M_data->_M_month02 = __u.__w;
109.2569 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
109.2570 -+	  _M_data->_M_month03 = __u.__w;
109.2571 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
109.2572 -+	  _M_data->_M_month04 = __u.__w;
109.2573 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
109.2574 -+	  _M_data->_M_month05 = __u.__w;
109.2575 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
109.2576 -+	  _M_data->_M_month06 = __u.__w;
109.2577 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
109.2578 -+	  _M_data->_M_month07 = __u.__w;
109.2579 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
109.2580 -+	  _M_data->_M_month08 = __u.__w;
109.2581 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
109.2582 -+	  _M_data->_M_month09 = __u.__w;
109.2583 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
109.2584 -+	  _M_data->_M_month10 = __u.__w;
109.2585 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
109.2586 -+	  _M_data->_M_month11 = __u.__w;
109.2587 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
109.2588 -+	  _M_data->_M_month12 = __u.__w;
109.2589 -+
109.2590 -+	  // Abbreviated month names, starting with "C"'s Jan.
109.2591 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
109.2592 -+	  _M_data->_M_amonth01 = __u.__w;
109.2593 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
109.2594 -+	  _M_data->_M_amonth02 = __u.__w;
109.2595 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
109.2596 -+	  _M_data->_M_amonth03 = __u.__w;
109.2597 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
109.2598 -+	  _M_data->_M_amonth04 = __u.__w;
109.2599 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
109.2600 -+	  _M_data->_M_amonth05 = __u.__w;
109.2601 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
109.2602 -+	  _M_data->_M_amonth06 = __u.__w;
109.2603 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
109.2604 -+	  _M_data->_M_amonth07 = __u.__w;
109.2605 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
109.2606 -+	  _M_data->_M_amonth08 = __u.__w;
109.2607 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
109.2608 -+	  _M_data->_M_amonth09 = __u.__w;
109.2609 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
109.2610 -+	  _M_data->_M_amonth10 = __u.__w;
109.2611 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
109.2612 -+	  _M_data->_M_amonth11 = __u.__w;
109.2613 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
109.2614 -+	  _M_data->_M_amonth12 = __u.__w;
109.2615 -+	}
109.2616 -+#endif // 0
109.2617 -+    }
109.2618 -+#endif
109.2619 -+}
109.2620 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h
109.2621 ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h	1969-12-31 18:00:00.000000000 -0600
109.2622 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h	2004-05-22 18:46:31.000000000 -0500
109.2623 -@@ -0,0 +1,68 @@
109.2624 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
109.2625 -+
109.2626 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
109.2627 -+//
109.2628 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2629 -+// software; you can redistribute it and/or modify it under the
109.2630 -+// terms of the GNU General Public License as published by the
109.2631 -+// Free Software Foundation; either version 2, or (at your option)
109.2632 -+// any later version.
109.2633 -+
109.2634 -+// This library is distributed in the hope that it will be useful,
109.2635 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2636 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2637 -+// GNU General Public License for more details.
109.2638 -+
109.2639 -+// You should have received a copy of the GNU General Public License along
109.2640 -+// with this library; see the file COPYING.  If not, write to the Free
109.2641 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2642 -+// USA.
109.2643 -+
109.2644 -+// As a special exception, you may use this file as part of a free software
109.2645 -+// library without restriction.  Specifically, if other files instantiate
109.2646 -+// templates or use macros or inline functions from this file, or you compile
109.2647 -+// this file and link it with other files to produce an executable, this
109.2648 -+// file does not by itself cause the resulting executable to be covered by
109.2649 -+// the GNU General Public License.  This exception does not however
109.2650 -+// invalidate any other reasons why the executable file might be covered by
109.2651 -+// the GNU General Public License.
109.2652 -+
109.2653 -+//
109.2654 -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
109.2655 -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
109.2656 -+//
109.2657 -+
109.2658 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
109.2659 -+
109.2660 -+  template<typename _CharT>
109.2661 -+    __timepunct<_CharT>::__timepunct(size_t __refs) 
109.2662 -+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
109.2663 -+    _M_name_timepunct(_S_get_c_name())
109.2664 -+    { _M_initialize_timepunct(); }
109.2665 -+
109.2666 -+  template<typename _CharT>
109.2667 -+    __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 
109.2668 -+    : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), 
109.2669 -+    _M_name_timepunct(_S_get_c_name())
109.2670 -+    { _M_initialize_timepunct(); }
109.2671 -+
109.2672 -+  template<typename _CharT>
109.2673 -+    __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
109.2674 -+				     size_t __refs) 
109.2675 -+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
109.2676 -+    _M_name_timepunct(__s)
109.2677 -+    { 
109.2678 -+      char* __tmp = new char[std::strlen(__s) + 1];
109.2679 -+      std::strcpy(__tmp, __s);
109.2680 -+      _M_name_timepunct = __tmp;
109.2681 -+      _M_initialize_timepunct(__cloc); 
109.2682 -+    }
109.2683 -+
109.2684 -+  template<typename _CharT>
109.2685 -+    __timepunct<_CharT>::~__timepunct()
109.2686 -+    { 
109.2687 -+      if (_M_name_timepunct != _S_get_c_name())
109.2688 -+	delete [] _M_name_timepunct;
109.2689 -+      delete _M_data; 
109.2690 -+      _S_destroy_c_locale(_M_c_locale_timepunct); 
109.2691 -+    }
109.2692 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h
109.2693 ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h	1969-12-31 18:00:00.000000000 -0600
109.2694 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h	2005-04-28 01:10:27.000000000 -0500
109.2695 -@@ -0,0 +1,64 @@
109.2696 -+// Locale support -*- C++ -*-
109.2697 -+
109.2698 -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004
109.2699 -+// Free Software Foundation, Inc.
109.2700 -+//
109.2701 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2702 -+// software; you can redistribute it and/or modify it under the
109.2703 -+// terms of the GNU General Public License as published by the
109.2704 -+// Free Software Foundation; either version 2, or (at your option)
109.2705 -+// any later version.
109.2706 -+
109.2707 -+// This library is distributed in the hope that it will be useful,
109.2708 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2709 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2710 -+// GNU General Public License for more details.
109.2711 -+
109.2712 -+// You should have received a copy of the GNU General Public License along
109.2713 -+// with this library; see the file COPYING.  If not, write to the Free
109.2714 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2715 -+// USA.
109.2716 -+
109.2717 -+// As a special exception, you may use this file as part of a free software
109.2718 -+// library without restriction.  Specifically, if other files instantiate
109.2719 -+// templates or use macros or inline functions from this file, or you compile
109.2720 -+// this file and link it with other files to produce an executable, this
109.2721 -+// file does not by itself cause the resulting executable to be covered by
109.2722 -+// the GNU General Public License.  This exception does not however
109.2723 -+// invalidate any other reasons why the executable file might be covered by
109.2724 -+// the GNU General Public License.
109.2725 -+
109.2726 -+//
109.2727 -+// ISO C++ 14882: 22.1  Locales
109.2728 -+//
109.2729 -+  
109.2730 -+/** @file ctype_base.h
109.2731 -+ *  This is an internal header file, included by other library headers.
109.2732 -+ *  You should not attempt to use it directly.
109.2733 -+ */
109.2734 -+
109.2735 -+// Information as gleaned from /usr/include/ctype.h
109.2736 -+  
109.2737 -+  /// @brief  Base class for ctype.
109.2738 -+  struct ctype_base
109.2739 -+  {
109.2740 -+    // Note: In uClibc, the following two types depend on configuration.
109.2741 -+ 
109.2742 -+    // Non-standard typedefs.
109.2743 -+    typedef const __ctype_touplow_t* __to_type;
109.2744 -+
109.2745 -+    // NB: Offsets into ctype<char>::_M_table force a particular size
109.2746 -+    // on the mask type. Because of this, we don't use an enum.
109.2747 -+    typedef __ctype_mask_t	mask;   
109.2748 -+    static const mask upper    	= _ISupper;
109.2749 -+    static const mask lower 	= _ISlower;
109.2750 -+    static const mask alpha 	= _ISalpha;
109.2751 -+    static const mask digit 	= _ISdigit;
109.2752 -+    static const mask xdigit 	= _ISxdigit;
109.2753 -+    static const mask space 	= _ISspace;
109.2754 -+    static const mask print 	= _ISprint;
109.2755 -+    static const mask graph 	= _ISalpha | _ISdigit | _ISpunct;
109.2756 -+    static const mask cntrl 	= _IScntrl;
109.2757 -+    static const mask punct 	= _ISpunct;
109.2758 -+    static const mask alnum 	= _ISalpha | _ISdigit;
109.2759 -+  };
109.2760 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h
109.2761 ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h	1969-12-31 18:00:00.000000000 -0600
109.2762 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h	2002-06-24 00:49:19.000000000 -0500
109.2763 -@@ -0,0 +1,69 @@
109.2764 -+// Locale support -*- C++ -*-
109.2765 -+
109.2766 -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
109.2767 -+//
109.2768 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2769 -+// software; you can redistribute it and/or modify it under the
109.2770 -+// terms of the GNU General Public License as published by the
109.2771 -+// Free Software Foundation; either version 2, or (at your option)
109.2772 -+// any later version.
109.2773 -+
109.2774 -+// This library is distributed in the hope that it will be useful,
109.2775 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2776 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2777 -+// GNU General Public License for more details.
109.2778 -+
109.2779 -+// You should have received a copy of the GNU General Public License along
109.2780 -+// with this library; see the file COPYING.  If not, write to the Free
109.2781 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2782 -+// USA.
109.2783 -+
109.2784 -+// As a special exception, you may use this file as part of a free software
109.2785 -+// library without restriction.  Specifically, if other files instantiate
109.2786 -+// templates or use macros or inline functions from this file, or you compile
109.2787 -+// this file and link it with other files to produce an executable, this
109.2788 -+// file does not by itself cause the resulting executable to be covered by
109.2789 -+// the GNU General Public License.  This exception does not however
109.2790 -+// invalidate any other reasons why the executable file might be covered by
109.2791 -+// the GNU General Public License.
109.2792 -+
109.2793 -+//
109.2794 -+// ISO C++ 14882: 22.1  Locales
109.2795 -+//
109.2796 -+  
109.2797 -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
109.2798 -+// functions go in ctype.cc
109.2799 -+  
109.2800 -+  bool
109.2801 -+  ctype<char>::
109.2802 -+  is(mask __m, char __c) const
109.2803 -+  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
109.2804 -+
109.2805 -+  const char*
109.2806 -+  ctype<char>::
109.2807 -+  is(const char* __low, const char* __high, mask* __vec) const
109.2808 -+  {
109.2809 -+    while (__low < __high)
109.2810 -+      *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
109.2811 -+    return __high;
109.2812 -+  }
109.2813 -+
109.2814 -+  const char*
109.2815 -+  ctype<char>::
109.2816 -+  scan_is(mask __m, const char* __low, const char* __high) const
109.2817 -+  {
109.2818 -+    while (__low < __high 
109.2819 -+	   && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
109.2820 -+      ++__low;
109.2821 -+    return __low;
109.2822 -+  }
109.2823 -+
109.2824 -+  const char*
109.2825 -+  ctype<char>::
109.2826 -+  scan_not(mask __m, const char* __low, const char* __high) const
109.2827 -+  {
109.2828 -+    while (__low < __high 
109.2829 -+	   && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
109.2830 -+      ++__low;
109.2831 -+    return __low;
109.2832 -+  }
109.2833 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h
109.2834 ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h	1969-12-31 18:00:00.000000000 -0600
109.2835 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h	2005-04-28 01:10:27.000000000 -0500
109.2836 -@@ -0,0 +1,92 @@
109.2837 -+// Locale support -*- C++ -*-
109.2838 -+
109.2839 -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
109.2840 -+// Free Software Foundation, Inc.
109.2841 -+//
109.2842 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2843 -+// software; you can redistribute it and/or modify it under the
109.2844 -+// terms of the GNU General Public License as published by the
109.2845 -+// Free Software Foundation; either version 2, or (at your option)
109.2846 -+// any later version.
109.2847 -+
109.2848 -+// This library is distributed in the hope that it will be useful,
109.2849 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2850 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2851 -+// GNU General Public License for more details.
109.2852 -+
109.2853 -+// You should have received a copy of the GNU General Public License along
109.2854 -+// with this library; see the file COPYING.  If not, write to the Free
109.2855 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2856 -+// USA.
109.2857 -+
109.2858 -+// As a special exception, you may use this file as part of a free software
109.2859 -+// library without restriction.  Specifically, if other files instantiate
109.2860 -+// templates or use macros or inline functions from this file, or you compile
109.2861 -+// this file and link it with other files to produce an executable, this
109.2862 -+// file does not by itself cause the resulting executable to be covered by
109.2863 -+// the GNU General Public License.  This exception does not however
109.2864 -+// invalidate any other reasons why the executable file might be covered by
109.2865 -+// the GNU General Public License.
109.2866 -+
109.2867 -+//
109.2868 -+// ISO C++ 14882: 22.1  Locales
109.2869 -+//
109.2870 -+  
109.2871 -+// Information as gleaned from /usr/include/ctype.h
109.2872 -+
109.2873 -+  const ctype_base::mask*
109.2874 -+  ctype<char>::classic_table() throw()
109.2875 -+  { return __C_ctype_b; }
109.2876 -+
109.2877 -+  ctype<char>::ctype(__c_locale, const mask* __table, bool __del, 
109.2878 -+		     size_t __refs) 
109.2879 -+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
109.2880 -+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
109.2881 -+  {
109.2882 -+    _M_toupper = __C_ctype_toupper;
109.2883 -+    _M_tolower = __C_ctype_tolower;
109.2884 -+    _M_table = __table ? __table : __C_ctype_b;
109.2885 -+    memset(_M_widen, 0, sizeof(_M_widen));
109.2886 -+    memset(_M_narrow, 0, sizeof(_M_narrow));
109.2887 -+  }
109.2888 -+
109.2889 -+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
109.2890 -+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
109.2891 -+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
109.2892 -+  {
109.2893 -+    _M_toupper = __C_ctype_toupper;
109.2894 -+    _M_tolower = __C_ctype_tolower;
109.2895 -+    _M_table = __table ? __table : __C_ctype_b;
109.2896 -+    memset(_M_widen, 0, sizeof(_M_widen));
109.2897 -+    memset(_M_narrow, 0, sizeof(_M_narrow));
109.2898 -+  }
109.2899 -+
109.2900 -+  char
109.2901 -+  ctype<char>::do_toupper(char __c) const
109.2902 -+  { return _M_toupper[static_cast<unsigned char>(__c)]; }
109.2903 -+
109.2904 -+  const char*
109.2905 -+  ctype<char>::do_toupper(char* __low, const char* __high) const
109.2906 -+  {
109.2907 -+    while (__low < __high)
109.2908 -+      {
109.2909 -+	*__low = _M_toupper[static_cast<unsigned char>(*__low)];
109.2910 -+	++__low;
109.2911 -+      }
109.2912 -+    return __high;
109.2913 -+  }
109.2914 -+
109.2915 -+  char
109.2916 -+  ctype<char>::do_tolower(char __c) const
109.2917 -+  { return _M_tolower[static_cast<unsigned char>(__c)]; }
109.2918 -+
109.2919 -+  const char* 
109.2920 -+  ctype<char>::do_tolower(char* __low, const char* __high) const
109.2921 -+  {
109.2922 -+    while (__low < __high)
109.2923 -+      {
109.2924 -+	*__low = _M_tolower[static_cast<unsigned char>(*__low)];
109.2925 -+	++__low;
109.2926 -+      }
109.2927 -+    return __high;
109.2928 -+  }
109.2929 -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h
109.2930 ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h	1969-12-31 18:00:00.000000000 -0600
109.2931 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h	2005-04-28 01:10:27.000000000 -0500
109.2932 -@@ -0,0 +1,44 @@
109.2933 -+// Specific definitions for GNU/Linux  -*- C++ -*-
109.2934 -+
109.2935 -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
109.2936 -+//
109.2937 -+// This file is part of the GNU ISO C++ Library.  This library is free
109.2938 -+// software; you can redistribute it and/or modify it under the
109.2939 -+// terms of the GNU General Public License as published by the
109.2940 -+// Free Software Foundation; either version 2, or (at your option)
109.2941 -+// any later version.
109.2942 -+
109.2943 -+// This library is distributed in the hope that it will be useful,
109.2944 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
109.2945 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
109.2946 -+// GNU General Public License for more details.
109.2947 -+
109.2948 -+// You should have received a copy of the GNU General Public License along
109.2949 -+// with this library; see the file COPYING.  If not, write to the Free
109.2950 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
109.2951 -+// USA.
109.2952 -+
109.2953 -+// As a special exception, you may use this file as part of a free software
109.2954 -+// library without restriction.  Specifically, if other files instantiate
109.2955 -+// templates or use macros or inline functions from this file, or you compile
109.2956 -+// this file and link it with other files to produce an executable, this
109.2957 -+// file does not by itself cause the resulting executable to be covered by
109.2958 -+// the GNU General Public License.  This exception does not however
109.2959 -+// invalidate any other reasons why the executable file might be covered by
109.2960 -+// the GNU General Public License.
109.2961 -+
109.2962 -+#ifndef _GLIBCXX_OS_DEFINES
109.2963 -+#define _GLIBCXX_OS_DEFINES 1
109.2964 -+
109.2965 -+// System-specific #define, typedefs, corrections, etc, go here.  This
109.2966 -+// file will come before all others.
109.2967 -+
109.2968 -+// This keeps isanum, et al from being propagated as macros.
109.2969 -+#define __NO_CTYPE 1
109.2970 -+
109.2971 -+#include <features.h>
109.2972 -+
109.2973 -+// We must not see the optimized string functions GNU libc defines.
109.2974 -+#define __NO_STRING_INLINES
109.2975 -+
109.2976 -+#endif
109.2977 -diff -urN gcc-4.0.0-100/libstdc++-v3/configure gcc-4.0.0/libstdc++-v3/configure
109.2978 ---- gcc-4.0.0-100/libstdc++-v3/configure	2005-04-30 13:06:53.683055232 -0500
109.2979 -+++ gcc-4.0.0/libstdc++-v3/configure	2005-04-30 12:24:24.000000000 -0500
109.2980 -@@ -3998,6 +3998,11 @@
109.2981 -   lt_cv_deplibs_check_method=pass_all
109.2982 -   ;;
109.2983 - 
109.2984 -+linux-uclibc*)
109.2985 -+  lt_cv_deplibs_check_method=pass_all
109.2986 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
109.2987 -+  ;;
109.2988 -+
109.2989 - netbsd* | knetbsd*-gnu)
109.2990 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
109.2991 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
109.2992 -@@ -5672,7 +5677,7 @@
109.2993 -   enableval="$enable_clocale"
109.2994 - 
109.2995 -       case "$enableval" in
109.2996 --       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
109.2997 -+       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
109.2998 -        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
109.2999 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
109.3000 -    { (exit 1); exit 1; }; } ;;
109.3001 -@@ -5697,6 +5702,9 @@
109.3002 -   # Default to "generic".
109.3003 -   if test $enable_clocale_flag = auto; then
109.3004 -     case ${target_os} in
109.3005 -+      linux-uclibc*)
109.3006 -+	enable_clocale_flag=uclibc
109.3007 -+	;;
109.3008 -       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
109.3009 -         cat >conftest.$ac_ext <<_ACEOF
109.3010 - /* confdefs.h.  */
109.3011 -@@ -5927,6 +5935,76 @@
109.3012 -       CTIME_CC=config/locale/generic/time_members.cc
109.3013 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
109.3014 -       ;;
109.3015 -+    uclibc)
109.3016 -+      echo "$as_me:$LINENO: result: uclibc" >&5
109.3017 -+echo "${ECHO_T}uclibc" >&6
109.3018 -+
109.3019 -+      # Declare intention to use gettext, and add support for specific
109.3020 -+      # languages.
109.3021 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
109.3022 -+      ALL_LINGUAS="de fr"
109.3023 -+
109.3024 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
109.3025 -+      # Extract the first word of "msgfmt", so it can be a program name with args.
109.3026 -+set dummy msgfmt; ac_word=$2
109.3027 -+echo "$as_me:$LINENO: checking for $ac_word" >&5
109.3028 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
109.3029 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
109.3030 -+  echo $ECHO_N "(cached) $ECHO_C" >&6
109.3031 -+else
109.3032 -+  if test -n "$check_msgfmt"; then
109.3033 -+  ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
109.3034 -+else
109.3035 -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
109.3036 -+for as_dir in $PATH
109.3037 -+do
109.3038 -+  IFS=$as_save_IFS
109.3039 -+  test -z "$as_dir" && as_dir=.
109.3040 -+  for ac_exec_ext in '' $ac_executable_extensions; do
109.3041 -+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
109.3042 -+    ac_cv_prog_check_msgfmt="yes"
109.3043 -+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
109.3044 -+    break 2
109.3045 -+  fi
109.3046 -+done
109.3047 -+done
109.3048 -+
109.3049 -+  test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
109.3050 -+fi
109.3051 -+fi
109.3052 -+check_msgfmt=$ac_cv_prog_check_msgfmt
109.3053 -+if test -n "$check_msgfmt"; then
109.3054 -+  echo "$as_me:$LINENO: result: $check_msgfmt" >&5
109.3055 -+echo "${ECHO_T}$check_msgfmt" >&6
109.3056 -+else
109.3057 -+  echo "$as_me:$LINENO: result: no" >&5
109.3058 -+echo "${ECHO_T}no" >&6
109.3059 -+fi
109.3060 -+
109.3061 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
109.3062 -+        USE_NLS=yes
109.3063 -+      fi
109.3064 -+      # Export the build objects.
109.3065 -+      for ling in $ALL_LINGUAS; do \
109.3066 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
109.3067 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
109.3068 -+      done
109.3069 -+
109.3070 -+
109.3071 -+
109.3072 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
109.3073 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
109.3074 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
109.3075 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
109.3076 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
109.3077 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
109.3078 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
109.3079 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
109.3080 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
109.3081 -+      CTIME_H=config/locale/uclibc/time_members.h
109.3082 -+      CTIME_CC=config/locale/uclibc/time_members.cc
109.3083 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
109.3084 -+      ;;
109.3085 -   esac
109.3086 - 
109.3087 -   # This is where the testsuite looks for locale catalogs, using the
109.3088 -diff -urN gcc-4.0.0-100/libstdc++-v3/configure.host gcc-4.0.0/libstdc++-v3/configure.host
109.3089 ---- gcc-4.0.0-100/libstdc++-v3/configure.host	2005-04-30 13:06:53.688054472 -0500
109.3090 -+++ gcc-4.0.0/libstdc++-v3/configure.host	2005-04-28 20:20:32.000000000 -0500
109.3091 -@@ -249,6 +249,12 @@
109.3092 -     ;;
109.3093 - esac
109.3094 - 
109.3095 -+# Override for uClibc since linux-uclibc gets mishandled above.
109.3096 -+case "${host_os}" in
109.3097 -+  *-uclibc*)
109.3098 -+    os_include_dir="os/uclibc"
109.3099 -+    ;;
109.3100 -+esac
109.3101 - 
109.3102 - # Set any OS-dependent and CPU-dependent bits.
109.3103 - # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
109.3104 -diff -urN gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 gcc-4.0.0/libstdc++-v3/crossconfig.m4
109.3105 ---- gcc-4.0.0-100/libstdc++-v3/crossconfig.m4	2005-04-30 13:06:53.689054320 -0500
109.3106 -+++ gcc-4.0.0/libstdc++-v3/crossconfig.m4	2005-04-28 20:27:15.000000000 -0500
109.3107 -@@ -142,6 +142,98 @@
109.3108 - 	;;
109.3109 -     esac
109.3110 -     ;;
109.3111 -+  *-uclibc*)
109.3112 -+# Temporary hack until we implement the float versions of the libm funcs
109.3113 -+    AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
109.3114 -+      machine/endian.h machine/param.h sys/machine.h sys/types.h \
109.3115 -+      fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
109.3116 -+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
109.3117 -+    AC_SUBST(SECTION_FLAGS)
109.3118 -+    GLIBCXX_CHECK_LINKER_FEATURES
109.3119 -+    GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
109.3120 -+    GLIBCXX_CHECK_WCHAR_T_SUPPORT
109.3121 -+
109.3122 -+    # For LFS.
109.3123 -+    AC_DEFINE(HAVE_INT64_T)
109.3124 -+    case "$target" in
109.3125 -+      *-uclinux*)
109.3126 -+        # Don't enable LFS with uClinux
109.3127 -+        ;;
109.3128 -+      *)
109.3129 -+        AC_DEFINE(_GLIBCXX_USE_LFS)
109.3130 -+    esac
109.3131 -+
109.3132 -+    # For showmanyc_helper().
109.3133 -+    AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
109.3134 -+    GLIBCXX_CHECK_POLL
109.3135 -+    GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
109.3136 -+
109.3137 -+    # For xsputn_2().
109.3138 -+    AC_CHECK_HEADERS(sys/uio.h)
109.3139 -+    GLIBCXX_CHECK_WRITEV
109.3140 -+
109.3141 -+#     AC_DEFINE(HAVE_ACOSF)
109.3142 -+#     AC_DEFINE(HAVE_ASINF)
109.3143 -+#     AC_DEFINE(HAVE_ATANF)
109.3144 -+#     AC_DEFINE(HAVE_ATAN2F)
109.3145 -+    AC_DEFINE(HAVE_CEILF)
109.3146 -+    AC_DEFINE(HAVE_COPYSIGN)
109.3147 -+#     AC_DEFINE(HAVE_COPYSIGNF)
109.3148 -+#     AC_DEFINE(HAVE_COSF)
109.3149 -+#     AC_DEFINE(HAVE_COSHF)
109.3150 -+#     AC_DEFINE(HAVE_EXPF)
109.3151 -+#     AC_DEFINE(HAVE_FABSF)
109.3152 -+    AC_DEFINE(HAVE_FINITE)
109.3153 -+    AC_DEFINE(HAVE_FINITEF)
109.3154 -+    AC_DEFINE(HAVE_FLOORF)
109.3155 -+#     AC_DEFINE(HAVE_FMODF)
109.3156 -+#     AC_DEFINE(HAVE_FREXPF)
109.3157 -+    AC_DEFINE(HAVE_HYPOT)
109.3158 -+#     AC_DEFINE(HAVE_HYPOTF)
109.3159 -+    AC_DEFINE(HAVE_ISINF)
109.3160 -+    AC_DEFINE(HAVE_ISINFF)
109.3161 -+    AC_DEFINE(HAVE_ISNAN)
109.3162 -+    AC_DEFINE(HAVE_ISNANF)
109.3163 -+#     AC_DEFINE(HAVE_LOGF)
109.3164 -+#     AC_DEFINE(HAVE_LOG10F)
109.3165 -+#     AC_DEFINE(HAVE_MODFF)
109.3166 -+#     AC_DEFINE(HAVE_SINF)
109.3167 -+#     AC_DEFINE(HAVE_SINHF)
109.3168 -+#     AC_DEFINE(HAVE_SINCOS)
109.3169 -+#     AC_DEFINE(HAVE_SINCOSF)
109.3170 -+    AC_DEFINE(HAVE_SQRTF)
109.3171 -+#     AC_DEFINE(HAVE_TANF)
109.3172 -+#     AC_DEFINE(HAVE_TANHF)
109.3173 -+    if test x"long_double_math_on_this_cpu" = x"yes"; then
109.3174 -+#       AC_DEFINE(HAVE_ACOSL)
109.3175 -+#       AC_DEFINE(HAVE_ASINL)
109.3176 -+#       AC_DEFINE(HAVE_ATANL)
109.3177 -+#       AC_DEFINE(HAVE_ATAN2L)
109.3178 -+#       AC_DEFINE(HAVE_CEILL)
109.3179 -+#       AC_DEFINE(HAVE_COPYSIGNL)
109.3180 -+#       AC_DEFINE(HAVE_COSL)
109.3181 -+#       AC_DEFINE(HAVE_COSHL)
109.3182 -+#       AC_DEFINE(HAVE_EXPL)
109.3183 -+#       AC_DEFINE(HAVE_FABSL)
109.3184 -+#       AC_DEFINE(HAVE_FINITEL)
109.3185 -+#       AC_DEFINE(HAVE_FLOORL)
109.3186 -+#       AC_DEFINE(HAVE_FMODL)
109.3187 -+#       AC_DEFINE(HAVE_FREXPL)
109.3188 -+#       AC_DEFINE(HAVE_HYPOTL)
109.3189 -+#       AC_DEFINE(HAVE_ISINFL)
109.3190 -+#       AC_DEFINE(HAVE_ISNANL)
109.3191 -+#       AC_DEFINE(HAVE_LOGL)
109.3192 -+#       AC_DEFINE(HAVE_LOG10L)
109.3193 -+#       AC_DEFINE(HAVE_MODFL)
109.3194 -+#       AC_DEFINE(HAVE_POWL)
109.3195 -+#       AC_DEFINE(HAVE_SINL)
109.3196 -+#       AC_DEFINE(HAVE_SINHL)
109.3197 -+#       AC_DEFINE(HAVE_SINCOSL)
109.3198 -+#       AC_DEFINE(HAVE_SQRTL)
109.3199 -+#       AC_DEFINE(HAVE_TANL)
109.3200 -+#       AC_DEFINE(HAVE_TANHL)
109.3201 -+    fi
109.3202 -+    ;;
109.3203 -   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
109.3204 -     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
109.3205 -       machine/endian.h machine/param.h sys/machine.h sys/types.h \
109.3206 -@@ -156,7 +248,7 @@
109.3207 -     AC_DEFINE(HAVE_INT64_T)
109.3208 -     case "$target" in
109.3209 -       *-uclinux*)
109.3210 --        # Don't enable LFS with uClibc
109.3211 -+        # Don't enable LFS with uClinux
109.3212 -         ;;
109.3213 -       *)
109.3214 -         AC_DEFINE(_GLIBCXX_USE_LFS)
109.3215 -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h
109.3216 ---- gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h	2005-04-30 13:06:53.690054168 -0500
109.3217 -+++ gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h	2005-04-28 20:15:56.000000000 -0500
109.3218 -@@ -101,7 +101,9 @@
109.3219 - using std::wmemcpy;
109.3220 - using std::wmemmove;
109.3221 - using std::wmemset;
109.3222 -+#if _GLIBCXX_HAVE_WCSFTIME
109.3223 - using std::wcsftime;
109.3224 -+#endif
109.3225 - 
109.3226 - #if _GLIBCXX_USE_C99
109.3227 - using std::wcstold;
109.3228 -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h
109.3229 ---- gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h	2005-04-30 13:06:53.691054016 -0500
109.3230 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h	2005-04-28 20:15:56.000000000 -0500
109.3231 -@@ -179,7 +179,9 @@
109.3232 -   using ::wcscoll;
109.3233 -   using ::wcscpy;
109.3234 -   using ::wcscspn;
109.3235 -+#if _GLIBCXX_HAVE_WCSFTIME
109.3236 -   using ::wcsftime;
109.3237 -+#endif
109.3238 -   using ::wcslen;
109.3239 -   using ::wcsncat;
109.3240 -   using ::wcsncmp;
   110.1 --- a/patches/gcc/4.0.3/120-libstdc++-pic.patch	Wed Oct 28 12:03:38 2009 +0100
   110.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   110.3 @@ -1,45 +0,0 @@
   110.4 ---- gcc-4.0.0/libstdc++-v3/src/Makefile.am
   110.5 -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am
   110.6 -@@ -214,6 +214,10 @@
   110.7 - 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
   110.8 - 
   110.9 - 
  110.10 -+install-exec-local:
  110.11 -+	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
  110.12 -+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
  110.13 -+
  110.14 - # Added bits to build debug library.
  110.15 - if GLIBCXX_BUILD_DEBUG
  110.16 - all-local: build_debug
  110.17 ---- gcc-4.0.0/libstdc++-v3/src/Makefile.in
  110.18 -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in
  110.19 -@@ -625,7 +625,7 @@
  110.20 - 
  110.21 - install-data-am: install-data-local
  110.22 - 
  110.23 --install-exec-am: install-toolexeclibLTLIBRARIES
  110.24 -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
  110.25 - 
  110.26 - install-info: install-info-am
  110.27 - 
  110.28 -@@ -664,7 +664,7 @@
  110.29 - 	maintainer-clean-generic mostlyclean mostlyclean-compile \
  110.30 - 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
  110.31 - 	tags uninstall uninstall-am uninstall-info-am \
  110.32 --	uninstall-toolexeclibLTLIBRARIES
  110.33 -+	uninstall-toolexeclibLTLIBRARIES install-exec-local
  110.34 - 
  110.35 - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver:  ${glibcxx_srcdir}/$(SYMVER_MAP)
  110.36 - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@	cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
  110.37 -@@ -743,6 +743,11 @@
  110.38 - install_debug:
  110.39 - 	(cd ${debugdir} && $(MAKE) \
  110.40 - 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
  110.41 -+
  110.42 -+install-exec-local:
  110.43 -+	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
  110.44 -+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
  110.45 -+
  110.46 - # Tell versions [3.59,3.63) of GNU make to not export all variables.
  110.47 - # Otherwise a system limit (for SysV at least) may be exceeded.
  110.48 - .NOEXPORT:
   111.1 --- a/patches/gcc/4.0.3/130-missing-execinfo_h.patch	Wed Oct 28 12:03:38 2009 +0100
   111.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   111.3 @@ -1,11 +0,0 @@
   111.4 ---- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500
   111.5 -+++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500
   111.6 -@@ -500,7 +500,7 @@
   111.7 - #ifdef __linux__
   111.8 - # include <features.h>
   111.9 - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
  111.10 --     && !defined(__ia64__)
  111.11 -+     && !defined(__ia64__) && !defined(__UCLIBC__)
  111.12 - #   ifndef GC_HAVE_BUILTIN_BACKTRACE
  111.13 - #     define GC_HAVE_BUILTIN_BACKTRACE
  111.14 - #   endif
   112.1 --- a/patches/gcc/4.0.3/140-c99-snprintf.patch	Wed Oct 28 12:03:38 2009 +0100
   112.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   112.3 @@ -1,11 +0,0 @@
   112.4 ---- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig	2005-04-29 00:08:41.000000000 -0500
   112.5 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h	2005-04-29 00:08:45.000000000 -0500
   112.6 -@@ -142,7 +142,7 @@
   112.7 -   using ::vsprintf;
   112.8 - }
   112.9 - 
  112.10 --#if _GLIBCXX_USE_C99
  112.11 -+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
  112.12 - 
  112.13 - #undef snprintf
  112.14 - #undef vfscanf
   113.1 --- a/patches/gcc/4.0.3/150-c99-complex-ugly-hack.patch	Wed Oct 28 12:03:38 2009 +0100
   113.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   113.3 @@ -1,12 +0,0 @@
   113.4 ---- gcc-4.0.0/libstdc++-v3/configure-old	2005-04-30 22:04:48.061603912 -0500
   113.5 -+++ gcc-4.0.0/libstdc++-v3/configure	2005-04-30 22:06:13.678588152 -0500
   113.6 -@@ -7194,6 +7194,9 @@
   113.7 - cat >>conftest.$ac_ext <<_ACEOF
   113.8 - /* end confdefs.h.  */
   113.9 - #include <complex.h>
  113.10 -+#ifdef __UCLIBC__
  113.11 -+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
  113.12 -+#endif
  113.13 - int
  113.14 - main ()
  113.15 - {
   114.1 --- a/patches/gcc/4.0.3/160-index_macro.patch	Wed Oct 28 12:03:38 2009 +0100
   114.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   114.3 @@ -1,24 +0,0 @@
   114.4 ---- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps	2006-03-24 01:49:51 +0100
   114.5 -+++ gcc-4.1.0/libstdc++-v3/include/ext/rope	2006-03-24 01:49:37 +0100
   114.6 -@@ -59,6 +59,9 @@
   114.7 - #include <bits/allocator.h>
   114.8 - #include <ext/hash_fun.h>
   114.9 - 
  114.10 -+/* cope w/ index defined as macro, SuSv3 proposal */
  114.11 -+#undef index
  114.12 -+
  114.13 - # ifdef __GC
  114.14 - #   define __GC_CONST const
  114.15 - # else
  114.16 ---- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps	2006-03-24 01:50:04 +0100
  114.17 -+++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h	2006-03-24 01:50:28 +0100
  114.18 -@@ -53,6 +53,9 @@
  114.19 - #include <ext/memory> // For uninitialized_copy_n
  114.20 - #include <ext/numeric> // For power
  114.21 - 
  114.22 -+/* cope w/ index defined as macro, SuSv3 proposal */
  114.23 -+#undef index
  114.24 -+
  114.25 - namespace __gnu_cxx
  114.26 - {
  114.27 -   using std::size_t;
   115.1 --- a/patches/gcc/4.0.3/170-sdk-libstdc++-includes.patch	Wed Oct 28 12:03:38 2009 +0100
   115.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   115.3 @@ -1,22 +0,0 @@
   115.4 -diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am
   115.5 ---- gcc-4.0.0-100/libstdc++-v3/fragment.am	2004-10-25 15:32:40.000000000 -0500
   115.6 -+++ gcc-4.0.0/libstdc++-v3/fragment.am	2005-04-28 21:48:43.000000000 -0500
   115.7 -@@ -18,5 +18,5 @@
   115.8 - 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
   115.9 - 
  115.10 - # -I/-D flags to pass when compiling.
  115.11 --AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
  115.12 -+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
  115.13 - 
  115.14 -diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am
  115.15 ---- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am	2003-08-27 16:29:42.000000000 -0500
  115.16 -+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am	2005-04-28 21:48:43.000000000 -0500
  115.17 -@@ -32,7 +32,7 @@
  115.18 - 
  115.19 - libmath_la_SOURCES = stubs.c
  115.20 - 
  115.21 --AM_CPPFLAGS = $(CANADIAN_INCLUDES)
  115.22 -+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
  115.23 - 
  115.24 - # Only compiling "C" sources in this directory.
  115.25 - LIBTOOL = @LIBTOOL@ --tag CC
   116.1 --- a/patches/gcc/4.0.3/180-arm-bigendian.patch	Wed Oct 28 12:03:38 2009 +0100
   116.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   116.3 @@ -1,67 +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 ---- gcc-4.0.3/gcc/config/arm/linux-elf.h
  116.10 -+++ gcc-4.0.3/gcc/config/arm/linux-elf.h
  116.11 -@@ -31,19 +31,33 @@
  116.12 - /* Do not assume anything about header files.  */
  116.13 - #define NO_IMPLICIT_EXTERN_C
  116.14 - 
  116.15 -+/*
  116.16 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  116.17 -+ * (big endian) configurations.
  116.18 -+ */
  116.19 -+#if TARGET_BIG_ENDIAN_DEFAULT
  116.20 -+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
  116.21 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  116.22 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  116.23 -+#else
  116.24 -+#define TARGET_ENDIAN_DEFAULT 0
  116.25 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  116.26 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  116.27 -+#endif
  116.28 -+
  116.29 - #undef  TARGET_DEFAULT_FLOAT_ABI
  116.30 - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
  116.31 - 
  116.32 - #undef  TARGET_DEFAULT
  116.33 --#define TARGET_DEFAULT (0)
  116.34 -+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
  116.35 - 
  116.36 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  116.37 - 
  116.38 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  116.39 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  116.40 - 
  116.41 - #undef  MULTILIB_DEFAULTS
  116.42 - #define MULTILIB_DEFAULTS \
  116.43 --	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
  116.44 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
  116.45 - 
  116.46 - /* The GNU C++ standard library requires that these macros be defined.  */
  116.47 - #undef CPLUSPLUS_CPP_SPEC
  116.48 -@@ -90,7 +104,7 @@
  116.49 -    %{rdynamic:-export-dynamic} \
  116.50 -    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
  116.51 -    -X \
  116.52 --   %{mbig-endian:-EB}" \
  116.53 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  116.54 -    SUBTARGET_EXTRA_LINK_SPEC
  116.55 - 
  116.56 - #define TARGET_OS_CPP_BUILTINS()		\
  116.57 ---- gcc-4.0.3/gcc/config.gcc
  116.58 -+++ gcc-4.0.3/gcc/config.gcc
  116.59 -@@ -672,6 +672,11 @@
  116.60 - 	;;
  116.61 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  116.62 - 	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.63 -+	case $target in
  116.64 -+	arm*b-*)
  116.65 -+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
  116.66 -+		;;
  116.67 -+	esac
  116.68 - 	tmake_file="${tmake_file} arm/t-arm arm/t-linux"
  116.69 - 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  116.70 - 	gnu_ld=yes
   117.1 --- a/patches/gcc/4.1.0/100-fix-fixincl.patch	Wed Oct 28 12:03:38 2009 +0100
   117.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   117.3 @@ -1,71 +0,0 @@
   117.4 -See http://gcc.gnu.org/PR22541
   117.5 -
   117.6 -From: Dan Kegel
   117.7 -
   117.8 -When building gcc-3.4.3 or gcc-4.x into a clean $PREFIX,
   117.9 -the configure script happily copies the glibc include files from include to sys-include;
  117.10 -here's the line from the log file (with $PREFIX instead of the real prefix):
  117.11 -
  117.12 -Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
  117.13 -
  117.14 -But later, when running fixincludes, it gives the error message
  117.15 - The directory that should contain system headers does not exist:
  117.16 -  $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
  117.17 -
  117.18 -Nevertheless, it continues building; the header files it installs in
  117.19 - $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
  117.20 -do not include the boilerplate that would cause it to #include_next the
  117.21 -glibc headers in the system header directory.
  117.22 -Thus the resulting toolchain can't compile the following program:
  117.23 -#include <limits.h>
  117.24 -int x = PATH_MAX;
  117.25 -because its limits.h doesn't include the glibc header.
  117.26 -
  117.27 -The problem is that gcc/Makefile.in assumes that
  117.28 -it can refer to $PREFIX/i686-unknown-linux-gnu  with the path
  117.29 -                $PREFIX/lib/../i686-unknown-linux-gnu, but
  117.30 -that fails because the directory $PREFIX/lib doesn't exist during 'make all';
  117.31 -it is only created later, during 'make install'.  (Which makes this problem
  117.32 -confusing, since one only notices the breakage well after 'make install',
  117.33 -at which point the path configure complained about does exist, and has the
  117.34 -right stuff in it.)
  117.35 -
  117.36 -A fix that I've been using for a while is to use sed to canonicalize
  117.37 -the path.  The sed syntax is a bit obtuse, but it works. 
  117.38 -
  117.39 -(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
  117.40 -for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
  117.41 -
  117.42 -[rediffed against gcc-4.1-20060210]
  117.43 -
  117.44 ---- gcc-4.1-20060210/gcc/Makefile.in.old	2006-01-11 06:29:29.000000000 -0800
  117.45 -+++ gcc-4.1-20060210/gcc/Makefile.in	2006-02-14 16:08:54.000000000 -0800
  117.46 -@@ -388,7 +388,10 @@
  117.47 - CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
  117.48 - 
  117.49 - # autoconf sets SYSTEM_HEADER_DIR to one of the above.
  117.50 --SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
  117.51 -+# Purge it of unneccessary internal relative paths
  117.52 -+# to directories that might not exist yet.
  117.53 -+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
  117.54 -+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
  117.55 - 
  117.56 - # Control whether to run fixproto and fixincludes.
  117.57 - STMP_FIXPROTO = @STMP_FIXPROTO@
  117.58 -@@ -3167,13 +3170,15 @@
  117.59 - ../$(build_subdir)/fixincludes/fixincl: ; @ :
  117.60 - 
  117.61 - # Build fixed copies of system files.
  117.62 -+# Abort if no system headers available, unless building a crosscompiler.
  117.63 -+# Canonicalize $gcc_tooldir/sys-include in same way as $SYSTEM_HEADER_DIR was canonicalized so test still works
  117.64 - stmp-fixinc: gsyslimits.h macro_list \
  117.65 -   $(build_objdir)/fixincludes/fixincl \
  117.66 -   $(build_objdir)/fixincludes/fixinc.sh
  117.67 - 	@if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
  117.68 - 	  echo The directory that should contain system headers does not exist: >&2 ; \
  117.69 - 	  echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
  117.70 --	  if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
  117.71 -+	  if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
  117.72 - 	  then sleep 1; else exit 1; fi; \
  117.73 - 	fi
  117.74 - 	rm -rf include; mkdir include
   118.1 --- a/patches/gcc/4.1.1/100-uclibc-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   118.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   118.3 @@ -1,544 +0,0 @@
   118.4 ---- gcc-4.1.0/gcc/config/t-linux-uclibc
   118.5 -+++ gcc-4.1.0/gcc/config/t-linux-uclibc
   118.6 -@@ -0,0 +1,5 @@
   118.7 -+# Remove glibc specific files added in t-linux
   118.8 -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
   118.9 -+
  118.10 -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
  118.11 -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
  118.12 ---- gcc-4.1.0/gcc/config.gcc
  118.13 -+++ gcc-4.1.0/gcc/config.gcc
  118.14 -@@ -1887,7 +1887,7 @@ s390x-ibm-tpf*)
  118.15 - 	;;
  118.16 - sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
  118.17 - sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
  118.18 --  sh-*-linux* | sh[346lbe]*-*-linux* | \
  118.19 -+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
  118.20 -   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
  118.21 -    sh64-*-netbsd* | sh64l*-*-netbsd*)
  118.22 - 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
  118.23 -@@ -2341,6 +2341,12 @@ m32c-*-elf*)
  118.24 - 	;;
  118.25 - esac
  118.26 - 
  118.27 -+# Rather than hook into each target, just do it after all the linux
  118.28 -+# targets have been processed
  118.29 -+case ${target} in
  118.30 -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
  118.31 -+esac
  118.32 -+
  118.33 - case ${target} in
  118.34 - i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
  118.35 - 	tmake_file="${tmake_file} i386/t-gmm_malloc"
  118.36 ---- gcc-4.1.0/boehm-gc/configure
  118.37 -+++ gcc-4.1.0/boehm-gc/configure
  118.38 -@@ -4320,6 +4320,11 @@ linux-gnu*)
  118.39 -   lt_cv_deplibs_check_method=pass_all
  118.40 -   ;;
  118.41 - 
  118.42 -+linux-uclibc*)
  118.43 -+  lt_cv_deplibs_check_method=pass_all
  118.44 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  118.45 -+  ;;
  118.46 -+
  118.47 - netbsd* | knetbsd*-gnu)
  118.48 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  118.49 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  118.50 ---- gcc-4.1.0/configure
  118.51 -+++ gcc-4.1.0/configure
  118.52 -@@ -1133,7 +1133,7 @@ no)
  118.53 -     ;;
  118.54 - "")
  118.55 -     case "${target}" in
  118.56 --    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
  118.57 -+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
  118.58 -         # Enable libmudflap by default in GNU and friends.
  118.59 - 	;;
  118.60 -     *-*-freebsd*)
  118.61 ---- gcc-4.1.0/configure.in
  118.62 -+++ gcc-4.1.0/configure.in
  118.63 -@@ -341,7 +341,7 @@ no)
  118.64 -     ;;
  118.65 - "")
  118.66 -     case "${target}" in
  118.67 --    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
  118.68 -+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
  118.69 -         # Enable libmudflap by default in GNU and friends.
  118.70 - 	;;
  118.71 -     *-*-freebsd*)
  118.72 ---- gcc-4.1.0/contrib/regression/objs-gcc.sh
  118.73 -+++ gcc-4.1.0/contrib/regression/objs-gcc.sh
  118.74 -@@ -105,6 +105,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H
  118.75 -  then
  118.76 -   make all-gdb all-dejagnu all-ld || exit 1
  118.77 -   make install-gdb install-dejagnu install-ld || exit 1
  118.78 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
  118.79 -+ then
  118.80 -+  make all-gdb all-dejagnu all-ld || exit 1
  118.81 -+  make install-gdb install-dejagnu install-ld || exit 1
  118.82 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
  118.83 -   make bootstrap || exit 1
  118.84 -   make install || exit 1
  118.85 ---- gcc-4.1.0/gcc/config/alpha/linux-elf.h
  118.86 -+++ gcc-4.1.0/gcc/config/alpha/linux-elf.h
  118.87 -@@ -27,7 +27,11 @@ Boston, MA 02110-1301, USA.  */
  118.88 - #define SUBTARGET_EXTRA_SPECS \
  118.89 - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
  118.90 - 
  118.91 -+#if defined USE_UCLIBC
  118.92 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
  118.93 -+#else
  118.94 - #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
  118.95 -+#endif
  118.96 - 
  118.97 - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
  118.98 -   %{O*:-O3} %{!O*:-O1}						\
  118.99 ---- gcc-4.1.0/gcc/config/arm/linux-elf.h
 118.100 -+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
 118.101 -@@ -51,7 +51,11 @@
 118.102 - 
 118.103 - #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
 118.104 - 
 118.105 -+#ifdef USE_UCLIBC
 118.106 -+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
 118.107 -+#else
 118.108 - #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
 118.109 -+#endif
 118.110 - 
 118.111 - #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
 118.112 -    %{b} \
 118.113 ---- gcc-4.1.0/gcc/config/cris/linux.h
 118.114 -+++ gcc-4.1.0/gcc/config/cris/linux.h
 118.115 -@@ -73,6 +73,25 @@ Boston, MA 02110-1301, USA.  */
 118.116 - #undef CRIS_DEFAULT_CPU_VERSION
 118.117 - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 118.118 - 
 118.119 -+#ifdef USE_UCLIBC
 118.120 -+
 118.121 -+#undef CRIS_SUBTARGET_VERSION
 118.122 -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 118.123 -+
 118.124 -+#undef CRIS_LINK_SUBTARGET_SPEC
 118.125 -+#define CRIS_LINK_SUBTARGET_SPEC \
 118.126 -+ "-mcrislinux\
 118.127 -+  -rpath-link include/asm/../..%s\
 118.128 -+  %{shared} %{static}\
 118.129 -+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 118.130 -+  %{!shared: \
 118.131 -+    %{!static: \
 118.132 -+      %{rdynamic:-export-dynamic} \
 118.133 -+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 118.134 -+  %{!r:%{O2|O3: --gc-sections}}"
 118.135 -+
 118.136 -+#else  /* USE_UCLIBC */
 118.137 -+
 118.138 - #undef CRIS_SUBTARGET_VERSION
 118.139 - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 118.140 - 
 118.141 -@@ -87,6 +106,8 @@ Boston, MA 02110-1301, USA.  */
 118.142 -   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 118.143 -   %{!r:%{O2|O3: --gc-sections}}"
 118.144 - 
 118.145 -+#endif  /* USE_UCLIBC */
 118.146 -+
 118.147 - 
 118.148 - /* Node: Run-time Target */
 118.149 - 
 118.150 ---- gcc-4.1.0/gcc/config/i386/linux.h
 118.151 -+++ gcc-4.1.0/gcc/config/i386/linux.h
 118.152 -@@ -107,6 +107,11 @@ Boston, MA 02110-1301, USA.  */
 118.153 - #define LINK_EMULATION "elf_i386"
 118.154 - #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
 118.155 - 
 118.156 -+#if defined USE_UCLIBC
 118.157 -+#undef DYNAMIC_LINKER
 118.158 -+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.159 -+#endif
 118.160 -+
 118.161 - #undef  SUBTARGET_EXTRA_SPECS
 118.162 - #define SUBTARGET_EXTRA_SPECS \
 118.163 -   { "link_emulation", LINK_EMULATION },\
 118.164 ---- gcc-4.1.0/gcc/config/i386/linux64.h
 118.165 -+++ gcc-4.1.0/gcc/config/i386/linux64.h
 118.166 -@@ -54,14 +54,21 @@ Boston, MA 02110-1301, USA.  */
 118.167 -    When the -shared link option is used a final link is not being
 118.168 -    done.  */
 118.169 - 
 118.170 -+#ifdef USE_UCLIBC
 118.171 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.172 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 118.173 -+#else
 118.174 -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 118.175 -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 118.176 -+#endif
 118.177 - #undef	LINK_SPEC
 118.178 - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 118.179 -   %{shared:-shared} \
 118.180 -   %{!shared: \
 118.181 -     %{!static: \
 118.182 -       %{rdynamic:-export-dynamic} \
 118.183 --      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 118.184 --      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 118.185 -+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 118.186 -+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 118.187 -     %{static:-static}}"
 118.188 - 
 118.189 - /* Similar to standard Linux, but adding -ffast-math support.  */
 118.190 ---- gcc-4.1.0/gcc/config/ia64/linux.h
 118.191 -+++ gcc-4.1.0/gcc/config/ia64/linux.h
 118.192 -@@ -37,13 +37,18 @@ do {						\
 118.193 - /* Define this for shared library support because it isn't in the main
 118.194 -    linux.h file.  */
 118.195 - 
 118.196 -+#ifdef USE_UCLIBC
 118.197 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 118.198 -+#else
 118.199 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 118.200 -+#endif
 118.201 - #undef LINK_SPEC
 118.202 - #define LINK_SPEC "\
 118.203 -   %{shared:-shared} \
 118.204 -   %{!shared: \
 118.205 -     %{!static: \
 118.206 -       %{rdynamic:-export-dynamic} \
 118.207 --      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 118.208 -+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 118.209 -       %{static:-static}}"
 118.210 - 
 118.211 - 
 118.212 ---- gcc-4.1.0/gcc/config/m68k/linux.h
 118.213 -+++ gcc-4.1.0/gcc/config/m68k/linux.h
 118.214 -@@ -123,12 +123,17 @@ Boston, MA 02110-1301, USA.  */
 118.215 - 
 118.216 - /* If ELF is the default format, we should not use /lib/elf.  */
 118.217 - 
 118.218 -+#ifdef USE_UCLIBC
 118.219 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.220 -+#else
 118.221 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 118.222 -+#endif
 118.223 - #undef	LINK_SPEC
 118.224 - #define LINK_SPEC "-m m68kelf %{shared} \
 118.225 -   %{!shared: \
 118.226 -     %{!static: \
 118.227 -       %{rdynamic:-export-dynamic} \
 118.228 --      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 118.229 -+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 118.230 -     %{static}}"
 118.231 - 
 118.232 - /* For compatibility with linux/a.out */
 118.233 ---- gcc-4.1.0/gcc/config/mips/linux.h
 118.234 -+++ gcc-4.1.0/gcc/config/mips/linux.h
 118.235 -@@ -105,6 +105,11 @@ Boston, MA 02110-1301, USA.  */
 118.236 - 
 118.237 - /* Borrowed from sparc/linux.h */
 118.238 - #undef LINK_SPEC
 118.239 -+#ifdef USE_UCLIBC
 118.240 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.241 -+#else
 118.242 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 118.243 -+#endif
 118.244 - #define LINK_SPEC \
 118.245 -  "%(endian_spec) \
 118.246 -   %{shared:-shared} \
 118.247 -@@ -112,7 +117,7 @@ Boston, MA 02110-1301, USA.  */
 118.248 -     %{!ibcs: \
 118.249 -       %{!static: \
 118.250 -         %{rdynamic:-export-dynamic} \
 118.251 --        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 118.252 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 118.253 -         %{static:-static}}}"
 118.254 - 
 118.255 - #undef SUBTARGET_ASM_SPEC
 118.256 ---- gcc-4.1.0/gcc/config/pa/pa-linux.h
 118.257 -+++ gcc-4.1.0/gcc/config/pa/pa-linux.h
 118.258 -@@ -49,13 +49,18 @@ Boston, MA 02110-1301, USA.  */
 118.259 - /* Define this for shared library support because it isn't in the main
 118.260 -    linux.h file.  */
 118.261 - 
 118.262 -+#ifdef USE_UCLIBC
 118.263 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.264 -+#else
 118.265 -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 118.266 -+#endif
 118.267 - #undef LINK_SPEC
 118.268 - #define LINK_SPEC "\
 118.269 -   %{shared:-shared} \
 118.270 -   %{!shared: \
 118.271 -     %{!static: \
 118.272 -       %{rdynamic:-export-dynamic} \
 118.273 --      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 118.274 -+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 118.275 -       %{static:-static}}"
 118.276 - 
 118.277 - /* glibc's profiling functions don't need gcc to allocate counters.  */
 118.278 ---- gcc-4.1.0/gcc/config/rs6000/linux.h
 118.279 -+++ gcc-4.1.0/gcc/config/rs6000/linux.h
 118.280 -@@ -72,7 +72,11 @@
 118.281 - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 118.282 - 
 118.283 - #undef	LINK_OS_DEFAULT_SPEC
 118.284 -+#ifdef USE_UCLIBC
 118.285 -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 118.286 -+#else
 118.287 - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 118.288 -+#endif
 118.289 - 
 118.290 - #define LINK_GCC_C_SEQUENCE_SPEC \
 118.291 -   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 118.292 ---- gcc-4.1.0/gcc/config/rs6000/sysv4.h
 118.293 -+++ gcc-4.1.0/gcc/config/rs6000/sysv4.h
 118.294 -@@ -866,6 +866,7 @@ extern int fixuplabelno;
 118.295 -   mcall-linux  : %(link_os_linux)       ; \
 118.296 -   mcall-gnu    : %(link_os_gnu)         ; \
 118.297 -   mcall-netbsd : %(link_os_netbsd)      ; \
 118.298 -+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 118.299 -   mcall-openbsd: %(link_os_openbsd)     ; \
 118.300 -                : %(link_os_default)     }"
 118.301 - 
 118.302 -@@ -1043,6 +1044,10 @@ extern int fixuplabelno;
 118.303 -   %{rdynamic:-export-dynamic} \
 118.304 -   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 118.305 - 
 118.306 -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 118.307 -+  %{rdynamic:-export-dynamic} \
 118.308 -+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 118.309 -+
 118.310 - #if defined(HAVE_LD_EH_FRAME_HDR)
 118.311 - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 118.312 - #endif
 118.313 -@@ -1209,6 +1214,7 @@ ncrtn.o%s"
 118.314 -   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 118.315 -   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 118.316 -   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 118.317 -+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 118.318 -   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 118.319 -   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 118.320 -   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 118.321 ---- gcc-4.1.0/gcc/config/s390/linux.h
 118.322 -+++ gcc-4.1.0/gcc/config/s390/linux.h
 118.323 -@@ -77,6 +77,13 @@ Software Foundation, 51 Franklin Street,
 118.324 - #define MULTILIB_DEFAULTS { "m31" }
 118.325 - #endif
 118.326 - 
 118.327 -+#ifdef USE_UCLIBC
 118.328 -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.329 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 118.330 -+#else
 118.331 -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 118.332 -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 118.333 -+#endif
 118.334 - #undef  LINK_SPEC
 118.335 - #define LINK_SPEC \
 118.336 -   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 118.337 -@@ -86,8 +93,8 @@ Software Foundation, 51 Franklin Street,
 118.338 -       %{!static: \
 118.339 - 	%{rdynamic:-export-dynamic} \
 118.340 - 	%{!dynamic-linker: \
 118.341 --          %{m31:-dynamic-linker /lib/ld.so.1} \
 118.342 --          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 118.343 -+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 118.344 -+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 118.345 - 
 118.346 - 
 118.347 - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 118.348 ---- gcc-4.1.0/gcc/config/sh/linux.h
 118.349 -+++ gcc-4.1.0/gcc/config/sh/linux.h
 118.350 -@@ -56,12 +56,21 @@ Boston, MA 02110-1301, USA.  */
 118.351 - #undef SUBTARGET_LINK_EMUL_SUFFIX
 118.352 - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 118.353 - #undef SUBTARGET_LINK_SPEC
 118.354 -+#ifdef USE_UCLIBC
 118.355 -+#define SUBTARGET_LINK_SPEC \
 118.356 -+  "%{shared:-shared} \
 118.357 -+   %{!static: \
 118.358 -+     %{rdynamic:-export-dynamic} \
 118.359 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 118.360 -+   %{static:-static}"
 118.361 -+#else
 118.362 - #define SUBTARGET_LINK_SPEC \
 118.363 -   "%{shared:-shared} \
 118.364 -    %{!static: \
 118.365 -      %{rdynamic:-export-dynamic} \
 118.366 -      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 118.367 -    %{static:-static}"
 118.368 -+#endif
 118.369 - 
 118.370 - /* Output assembler code to STREAM to call the profiler.  */
 118.371 - 
 118.372 ---- gcc-4.1.0/gcc/config/sparc/linux.h
 118.373 -+++ gcc-4.1.0/gcc/config/sparc/linux.h
 118.374 -@@ -125,6 +125,11 @@ Boston, MA 02110-1301, USA.  */
 118.375 - 
 118.376 - /* If ELF is the default format, we should not use /lib/elf.  */
 118.377 - 
 118.378 -+#ifdef USE_UCLIBC
 118.379 -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 118.380 -+#else
 118.381 -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 118.382 -+#endif
 118.383 - #undef  LINK_SPEC
 118.384 - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 118.385 -   %{!mno-relax:%{!r:-relax}} \
 118.386 -@@ -132,7 +137,7 @@ Boston, MA 02110-1301, USA.  */
 118.387 -     %{!ibcs: \
 118.388 -       %{!static: \
 118.389 -         %{rdynamic:-export-dynamic} \
 118.390 --        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 118.391 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 118.392 -         %{static:-static}}}"
 118.393 - 
 118.394 - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
 118.395 ---- gcc-4.1.0/gcc/config/sparc/linux64.h
 118.396 -+++ gcc-4.1.0/gcc/config/sparc/linux64.h
 118.397 -@@ -162,12 +162,17 @@ Boston, MA 02110-1301, USA.  */
 118.398 -   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 118.399 -   { "link_arch",	 LINK_ARCH_SPEC },
 118.400 -     
 118.401 -+#ifdef USE_UCLIBC
 118.402 -+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 118.403 -+#else
 118.404 -+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 118.405 -+#endif
 118.406 - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 118.407 -   %{!shared: \
 118.408 -     %{!ibcs: \
 118.409 -       %{!static: \
 118.410 -         %{rdynamic:-export-dynamic} \
 118.411 --        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 118.412 -+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 118.413 -         %{static:-static}}} \
 118.414 - "
 118.415 - 
 118.416 ---- gcc-4.1.0/libffi/configure
 118.417 -+++ gcc-4.1.0/libffi/configure
 118.418 -@@ -3457,6 +3457,11 @@ linux-gnu*)
 118.419 -   lt_cv_deplibs_check_method=pass_all
 118.420 -   ;;
 118.421 - 
 118.422 -+linux-uclibc*)
 118.423 -+  lt_cv_deplibs_check_method=pass_all
 118.424 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.425 -+  ;;
 118.426 -+
 118.427 - netbsd* | knetbsd*-gnu)
 118.428 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.429 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 118.430 ---- gcc-4.1.0/libgfortran/configure
 118.431 -+++ gcc-4.1.0/libgfortran/configure
 118.432 -@@ -3699,6 +3699,11 @@ linux-gnu*)
 118.433 -   lt_cv_deplibs_check_method=pass_all
 118.434 -   ;;
 118.435 - 
 118.436 -+linux-uclibc*)
 118.437 -+  lt_cv_deplibs_check_method=pass_all
 118.438 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.439 -+  ;;
 118.440 -+
 118.441 - netbsd* | knetbsd*-gnu)
 118.442 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.443 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 118.444 ---- gcc-4.1.0/libjava/configure
 118.445 -+++ gcc-4.1.0/libjava/configure
 118.446 -@@ -5137,6 +5137,11 @@ linux-gnu*)
 118.447 -   lt_cv_deplibs_check_method=pass_all
 118.448 -   ;;
 118.449 - 
 118.450 -+linux-uclibc*)
 118.451 -+  lt_cv_deplibs_check_method=pass_all
 118.452 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.453 -+  ;;
 118.454 -+
 118.455 - netbsd* | knetbsd*-gnu)
 118.456 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.457 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 118.458 ---- gcc-4.1.0/libmudflap/configure
 118.459 -+++ gcc-4.1.0/libmudflap/configure
 118.460 -@@ -5382,6 +5382,11 @@ linux-gnu*)
 118.461 -   lt_cv_deplibs_check_method=pass_all
 118.462 -   ;;
 118.463 - 
 118.464 -+linux-uclibc*)
 118.465 -+  lt_cv_deplibs_check_method=pass_all
 118.466 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.467 -+  ;;
 118.468 -+
 118.469 - netbsd* | knetbsd*-gnu)
 118.470 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.471 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 118.472 ---- gcc-4.1.0/libobjc/configure
 118.473 -+++ gcc-4.1.0/libobjc/configure
 118.474 -@@ -3312,6 +3312,11 @@ linux-gnu*)
 118.475 -   lt_cv_deplibs_check_method=pass_all
 118.476 -   ;;
 118.477 - 
 118.478 -+linux-uclibc*)
 118.479 -+  lt_cv_deplibs_check_method=pass_all
 118.480 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.481 -+  ;;
 118.482 -+
 118.483 - netbsd* | knetbsd*-gnu)
 118.484 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.485 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 118.486 ---- gcc-4.1.0/libtool.m4
 118.487 -+++ gcc-4.1.0/libtool.m4
 118.488 -@@ -743,6 +743,11 @@ linux-gnu*)
 118.489 -   lt_cv_deplibs_check_method=pass_all
 118.490 -   ;;
 118.491 - 
 118.492 -+linux-uclibc*)
 118.493 -+  lt_cv_deplibs_check_method=pass_all
 118.494 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.495 -+  ;;
 118.496 -+
 118.497 - netbsd* | knetbsd*-gnu)
 118.498 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.499 -     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 118.500 ---- gcc-4.1.0/ltconfig
 118.501 -+++ gcc-4.1.0/ltconfig
 118.502 -@@ -603,6 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
 118.503 - 
 118.504 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 118.505 - case $host_os in
 118.506 -+linux-uclibc*) ;;
 118.507 - linux-gnu*) ;;
 118.508 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 118.509 - esac
 118.510 -@@ -1274,6 +1275,23 @@ linux-gnu*)
 118.511 -   dynamic_linker='GNU/Linux ld.so'
 118.512 -   ;;
 118.513 - 
 118.514 -+linux-uclibc*)
 118.515 -+  version_type=linux
 118.516 -+  need_lib_prefix=no
 118.517 -+  need_version=no
 118.518 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
 118.519 -+  soname_spec='${libname}${release}.so$major'
 118.520 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
 118.521 -+  shlibpath_var=LD_LIBRARY_PATH
 118.522 -+  shlibpath_overrides_runpath=no
 118.523 -+  # This implies no fast_install, which is unacceptable.
 118.524 -+  # Some rework will be needed to allow for fast_install
 118.525 -+  # before this can be enabled.
 118.526 -+  hardcode_into_libs=yes
 118.527 -+  # Assume using the uClibc dynamic linker.
 118.528 -+  dynamic_linker="uClibc ld.so"
 118.529 -+  ;;
 118.530 -+
 118.531 - netbsd*)
 118.532 -   need_lib_prefix=no
 118.533 -   need_version=no
 118.534 ---- gcc-4.1.0/zlib/configure
 118.535 -+++ gcc-4.1.0/zlib/configure
 118.536 -@@ -3426,6 +3426,11 @@ linux-gnu*)
 118.537 -   lt_cv_deplibs_check_method=pass_all
 118.538 -   ;;
 118.539 - 
 118.540 -+linux-uclibc*)
 118.541 -+  lt_cv_deplibs_check_method=pass_all
 118.542 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
 118.543 -+  ;;
 118.544 -+
 118.545 - netbsd* | knetbsd*-gnu)
 118.546 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 118.547 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
   119.1 --- a/patches/gcc/4.1.1/110-arm-eabi.patch	Wed Oct 28 12:03:38 2009 +0100
   119.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   119.3 @@ -1,27 +0,0 @@
   119.4 ---- gcc-2005q3-1.orig/gcc/config.gcc	2005-10-31 19:02:54.000000000 +0300
   119.5 -+++ gcc-2005q3-1/gcc/config.gcc	2006-01-27 01:09:09.000000000 +0300
   119.6 -@@ -674,7 +674,7 @@
   119.7 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
   119.8 - 	tmake_file="${tmake_file} t-linux arm/t-arm"
   119.9 - 	case ${target} in
  119.10 --	arm*-*-linux-gnueabi)
  119.11 -+	arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
  119.12 - 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
  119.13 - 	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
  119.14 -   	    # The BPABI long long divmod functions return a 128-bit value in 
  119.15 -
  119.16 -diff -urN gcc-2005q3-2/gcc/config/arm/linux-eabi.h gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h
  119.17 ---- gcc-2005q3-2/gcc/config/arm/linux-eabi.h	2005-12-07 23:14:16.000000000 +0300
  119.18 -+++ gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h	2006-03-29 19:02:34.000000000 +0400
  119.19 -@@ -53,7 +53,11 @@
  119.20 - /* Use ld-linux.so.3 so that it will be possible to run "classic"
  119.21 -    GNU/Linux binaries on an EABI system.  */
  119.22 - #undef LINUX_TARGET_INTERPRETER
  119.23 -+#ifdef USE_UCLIBC
  119.24 -+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
  119.25 -+#else
  119.26 - #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
  119.27 -+#endif
  119.28 - 
  119.29 - /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
  119.30 -    use the GNU/Linux version, not the generic BPABI version.  */
   120.1 --- a/patches/gcc/4.1.1/120-uclibc-locale.patch	Wed Oct 28 12:03:38 2009 +0100
   120.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   120.3 @@ -1,3239 +0,0 @@
   120.4 ---- gcc-4.1.0-dist/libstdc++-v3/acinclude.m4
   120.5 -+++ gcc-4.1.0/libstdc++-v3/acinclude.m4
   120.6 -@@ -1071,7 +1071,7 @@
   120.7 -   AC_MSG_CHECKING([for C locale to use])
   120.8 -   GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
   120.9 -     [use MODEL for target locale package],
  120.10 --    [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
  120.11 -+    [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
  120.12 -   
  120.13 -   # If they didn't use this option switch, or if they specified --enable
  120.14 -   # with no specific model, we'll have to look for one.  If they
  120.15 -@@ -1087,6 +1087,9 @@
  120.16 -   # Default to "generic".
  120.17 -   if test $enable_clocale_flag = auto; then
  120.18 -     case ${target_os} in
  120.19 -+      *-uclibc*)
  120.20 -+        enable_clocale_flag=uclibc
  120.21 -+        ;;
  120.22 -       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
  120.23 -         AC_EGREP_CPP([_GLIBCXX_ok], [
  120.24 -         #include <features.h>
  120.25 -@@ -1230,6 +1233,40 @@
  120.26 -       CTIME_CC=config/locale/generic/time_members.cc
  120.27 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
  120.28 -       ;;
  120.29 -+    uclibc)
  120.30 -+      AC_MSG_RESULT(uclibc)
  120.31 -+
  120.32 -+      # Declare intention to use gettext, and add support for specific
  120.33 -+      # languages.
  120.34 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
  120.35 -+      ALL_LINGUAS="de fr"
  120.36 -+
  120.37 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
  120.38 -+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
  120.39 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
  120.40 -+        USE_NLS=yes
  120.41 -+      fi
  120.42 -+      # Export the build objects.
  120.43 -+      for ling in $ALL_LINGUAS; do \
  120.44 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
  120.45 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
  120.46 -+      done
  120.47 -+      AC_SUBST(glibcxx_MOFILES)
  120.48 -+      AC_SUBST(glibcxx_POFILES)
  120.49 -+
  120.50 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
  120.51 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
  120.52 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
  120.53 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
  120.54 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
  120.55 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
  120.56 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
  120.57 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
  120.58 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
  120.59 -+      CTIME_H=config/locale/uclibc/time_members.h
  120.60 -+      CTIME_CC=config/locale/uclibc/time_members.cc
  120.61 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
  120.62 -+      ;;
  120.63 -   esac
  120.64 - 
  120.65 -   # This is where the testsuite looks for locale catalogs, using the
  120.66 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
  120.67 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
  120.68 -@@ -0,0 +1,63 @@
  120.69 -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
  120.70 -+
  120.71 -+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
  120.72 -+//
  120.73 -+// This file is part of the GNU ISO C++ Library.  This library is free
  120.74 -+// software; you can redistribute it and/or modify it under the
  120.75 -+// terms of the GNU General Public License as published by the
  120.76 -+// Free Software Foundation; either version 2, or (at your option)
  120.77 -+// any later version.
  120.78 -+
  120.79 -+// This library is distributed in the hope that it will be useful,
  120.80 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
  120.81 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  120.82 -+// GNU General Public License for more details.
  120.83 -+
  120.84 -+// You should have received a copy of the GNU General Public License along
  120.85 -+// with this library; see the file COPYING.  If not, write to the Free
  120.86 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  120.87 -+// USA.
  120.88 -+
  120.89 -+// As a special exception, you may use this file as part of a free software
  120.90 -+// library without restriction.  Specifically, if other files instantiate
  120.91 -+// templates or use macros or inline functions from this file, or you compile
  120.92 -+// this file and link it with other files to produce an executable, this
  120.93 -+// file does not by itself cause the resulting executable to be covered by
  120.94 -+// the GNU General Public License.  This exception does not however
  120.95 -+// invalidate any other reasons why the executable file might be covered by
  120.96 -+// the GNU General Public License.
  120.97 -+
  120.98 -+// Written by Jakub Jelinek <jakub@redhat.com>
  120.99 -+
 120.100 -+#include <bits/c++config.h>
 120.101 -+#include <clocale>
 120.102 -+
 120.103 -+#ifdef __UCLIBC_MJN3_ONLY__
 120.104 -+#warning clean this up
 120.105 -+#endif
 120.106 -+
 120.107 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.108 -+                                                  
 120.109 -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
 120.110 -+extern "C" __typeof(strcoll_l) __strcoll_l;
 120.111 -+extern "C" __typeof(strftime_l) __strftime_l;
 120.112 -+extern "C" __typeof(strtod_l) __strtod_l;
 120.113 -+extern "C" __typeof(strtof_l) __strtof_l;
 120.114 -+extern "C" __typeof(strtold_l) __strtold_l;
 120.115 -+extern "C" __typeof(strxfrm_l) __strxfrm_l;
 120.116 -+extern "C" __typeof(newlocale) __newlocale;
 120.117 -+extern "C" __typeof(freelocale) __freelocale;
 120.118 -+extern "C" __typeof(duplocale) __duplocale;
 120.119 -+extern "C" __typeof(uselocale) __uselocale;
 120.120 -+
 120.121 -+#ifdef _GLIBCXX_USE_WCHAR_T
 120.122 -+extern "C" __typeof(iswctype_l) __iswctype_l;
 120.123 -+extern "C" __typeof(towlower_l) __towlower_l;
 120.124 -+extern "C" __typeof(towupper_l) __towupper_l;
 120.125 -+extern "C" __typeof(wcscoll_l) __wcscoll_l;
 120.126 -+extern "C" __typeof(wcsftime_l) __wcsftime_l;
 120.127 -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
 120.128 -+extern "C" __typeof(wctype_l) __wctype_l;
 120.129 -+#endif 
 120.130 -+
 120.131 -+#endif // GLIBC 2.3 and later
 120.132 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/c_locale.cc
 120.133 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
 120.134 -@@ -0,0 +1,152 @@
 120.135 -+// Wrapper for underlying C-language localization -*- C++ -*-
 120.136 -+
 120.137 -+// Copyright (C) 2001, 2002, 2003, 2004, 2005 
 120.138 -+// Free Software Foundation, Inc.
 120.139 -+//
 120.140 -+// This file is part of the GNU ISO C++ Library.  This library is free
 120.141 -+// software; you can redistribute it and/or modify it under the
 120.142 -+// terms of the GNU General Public License as published by the
 120.143 -+// Free Software Foundation; either version 2, or (at your option)
 120.144 -+// any later version.
 120.145 -+
 120.146 -+// This library is distributed in the hope that it will be useful,
 120.147 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 120.148 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 120.149 -+// GNU General Public License for more details.
 120.150 -+
 120.151 -+// You should have received a copy of the GNU General Public License along
 120.152 -+// with this library; see the file COPYING.  If not, write to the Free
 120.153 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 120.154 -+// USA.
 120.155 -+
 120.156 -+// As a special exception, you may use this file as part of a free software
 120.157 -+// library without restriction.  Specifically, if other files instantiate
 120.158 -+// templates or use macros or inline functions from this file, or you compile
 120.159 -+// this file and link it with other files to produce an executable, this
 120.160 -+// file does not by itself cause the resulting executable to be covered by
 120.161 -+// the GNU General Public License.  This exception does not however
 120.162 -+// invalidate any other reasons why the executable file might be covered by
 120.163 -+// the GNU General Public License.
 120.164 -+
 120.165 -+//
 120.166 -+// ISO C++ 14882: 22.8  Standard locale categories.
 120.167 -+//
 120.168 -+
 120.169 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 120.170 -+
 120.171 -+#include <cerrno>  // For errno
 120.172 -+#include <locale>
 120.173 -+#include <stdexcept>
 120.174 -+#include <langinfo.h>
 120.175 -+#include <bits/c++locale_internal.h>
 120.176 -+
 120.177 -+#ifndef __UCLIBC_HAS_XLOCALE__
 120.178 -+#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
 120.179 -+#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
 120.180 -+#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
 120.181 -+#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
 120.182 -+#define __strtof_l(S, E, L)         strtof((S), (E))
 120.183 -+#define __strtod_l(S, E, L)         strtod((S), (E))
 120.184 -+#define __strtold_l(S, E, L)        strtold((S), (E))
 120.185 -+#warning should dummy __newlocale check for C|POSIX ?
 120.186 -+#define __newlocale(a, b, c)        NULL
 120.187 -+#define __freelocale(a)             ((void)0)
 120.188 -+#define __duplocale(a)              __c_locale()
 120.189 -+#endif
 120.190 -+
 120.191 -+namespace std 
 120.192 -+{
 120.193 -+  template<>
 120.194 -+    void
 120.195 -+    __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 
 120.196 -+		   const __c_locale& __cloc)
 120.197 -+    {
 120.198 -+      char* __sanity;
 120.199 -+      errno = 0;
 120.200 -+      float __f = __strtof_l(__s, &__sanity, __cloc);
 120.201 -+      if (__sanity != __s && errno != ERANGE)
 120.202 -+	__v = __f;
 120.203 -+      else
 120.204 -+	__err |= ios_base::failbit;
 120.205 -+    }
 120.206 -+
 120.207 -+  template<>
 120.208 -+    void
 120.209 -+    __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 
 120.210 -+		   const __c_locale& __cloc)
 120.211 -+    {
 120.212 -+      char* __sanity;
 120.213 -+      errno = 0;
 120.214 -+      double __d = __strtod_l(__s, &__sanity, __cloc);
 120.215 -+      if (__sanity != __s && errno != ERANGE)
 120.216 -+	__v = __d;
 120.217 -+      else
 120.218 -+	__err |= ios_base::failbit;
 120.219 -+    }
 120.220 -+
 120.221 -+  template<>
 120.222 -+    void
 120.223 -+    __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
 120.224 -+		   const __c_locale& __cloc)
 120.225 -+    {
 120.226 -+      char* __sanity;
 120.227 -+      errno = 0;
 120.228 -+      long double __ld = __strtold_l(__s, &__sanity, __cloc);
 120.229 -+      if (__sanity != __s && errno != ERANGE)
 120.230 -+	__v = __ld;
 120.231 -+      else
 120.232 -+	__err |= ios_base::failbit;
 120.233 -+    }
 120.234 -+
 120.235 -+  void
 120.236 -+  locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, 
 120.237 -+				    __c_locale __old)
 120.238 -+  {
 120.239 -+    __cloc = __newlocale(1 << LC_ALL, __s, __old);
 120.240 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.241 -+    if (!__cloc)
 120.242 -+      {
 120.243 -+	// This named locale is not supported by the underlying OS.
 120.244 -+	__throw_runtime_error(__N("locale::facet::_S_create_c_locale "
 120.245 -+			      "name not valid"));
 120.246 -+      }
 120.247 -+#endif
 120.248 -+  }
 120.249 -+  
 120.250 -+  void
 120.251 -+  locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
 120.252 -+  {
 120.253 -+    if (__cloc && _S_get_c_locale() != __cloc)
 120.254 -+      __freelocale(__cloc); 
 120.255 -+  }
 120.256 -+
 120.257 -+  __c_locale
 120.258 -+  locale::facet::_S_clone_c_locale(__c_locale& __cloc)
 120.259 -+  { return __duplocale(__cloc); }
 120.260 -+} // namespace std
 120.261 -+
 120.262 -+namespace __gnu_cxx
 120.263 -+{
 120.264 -+  const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
 120.265 -+    {
 120.266 -+      "LC_CTYPE", 
 120.267 -+      "LC_NUMERIC",
 120.268 -+      "LC_TIME", 
 120.269 -+      "LC_COLLATE", 
 120.270 -+      "LC_MONETARY",
 120.271 -+      "LC_MESSAGES", 
 120.272 -+#if _GLIBCXX_NUM_CATEGORIES != 0
 120.273 -+      "LC_PAPER", 
 120.274 -+      "LC_NAME", 
 120.275 -+      "LC_ADDRESS",
 120.276 -+      "LC_TELEPHONE", 
 120.277 -+      "LC_MEASUREMENT", 
 120.278 -+      "LC_IDENTIFICATION" 
 120.279 -+#endif
 120.280 -+    };
 120.281 -+}
 120.282 -+
 120.283 -+namespace std
 120.284 -+{
 120.285 -+  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
 120.286 -+}  // namespace std
 120.287 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/c_locale.h
 120.288 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/c_locale.h
 120.289 -@@ -0,0 +1,117 @@
 120.290 -+// Wrapper for underlying C-language localization -*- C++ -*-
 120.291 -+
 120.292 -+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 120.293 -+//
 120.294 -+// This file is part of the GNU ISO C++ Library.  This library is free
 120.295 -+// software; you can redistribute it and/or modify it under the
 120.296 -+// terms of the GNU General Public License as published by the
 120.297 -+// Free Software Foundation; either version 2, or (at your option)
 120.298 -+// any later version.
 120.299 -+
 120.300 -+// This library is distributed in the hope that it will be useful,
 120.301 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 120.302 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 120.303 -+// GNU General Public License for more details.
 120.304 -+
 120.305 -+// You should have received a copy of the GNU General Public License along
 120.306 -+// with this library; see the file COPYING.  If not, write to the Free
 120.307 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 120.308 -+// USA.
 120.309 -+
 120.310 -+// As a special exception, you may use this file as part of a free software
 120.311 -+// library without restriction.  Specifically, if other files instantiate
 120.312 -+// templates or use macros or inline functions from this file, or you compile
 120.313 -+// this file and link it with other files to produce an executable, this
 120.314 -+// file does not by itself cause the resulting executable to be covered by
 120.315 -+// the GNU General Public License.  This exception does not however
 120.316 -+// invalidate any other reasons why the executable file might be covered by
 120.317 -+// the GNU General Public License.
 120.318 -+
 120.319 -+//
 120.320 -+// ISO C++ 14882: 22.8  Standard locale categories.
 120.321 -+//
 120.322 -+
 120.323 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 120.324 -+
 120.325 -+#ifndef _C_LOCALE_H
 120.326 -+#define _C_LOCALE_H 1
 120.327 -+
 120.328 -+#pragma GCC system_header
 120.329 -+
 120.330 -+#include <cstring>              // get std::strlen
 120.331 -+#include <cstdio>               // get std::snprintf or std::sprintf
 120.332 -+#include <clocale>
 120.333 -+#include <langinfo.h>		// For codecvt
 120.334 -+#ifdef __UCLIBC_MJN3_ONLY__
 120.335 -+#warning fix this
 120.336 -+#endif
 120.337 -+#ifdef __UCLIBC_HAS_LOCALE__
 120.338 -+#include <iconv.h>		// For codecvt using iconv, iconv_t
 120.339 -+#endif
 120.340 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
 120.341 -+#include <libintl.h> 		// For messages
 120.342 -+#endif
 120.343 -+
 120.344 -+#ifdef __UCLIBC_MJN3_ONLY__
 120.345 -+#warning what is _GLIBCXX_C_LOCALE_GNU for
 120.346 -+#endif
 120.347 -+#define _GLIBCXX_C_LOCALE_GNU 1
 120.348 -+
 120.349 -+#ifdef __UCLIBC_MJN3_ONLY__
 120.350 -+#warning fix categories
 120.351 -+#endif
 120.352 -+// #define _GLIBCXX_NUM_CATEGORIES 6
 120.353 -+#define _GLIBCXX_NUM_CATEGORIES 0
 120.354 -+ 
 120.355 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.356 -+namespace __gnu_cxx
 120.357 -+{
 120.358 -+  extern "C" __typeof(uselocale) __uselocale;
 120.359 -+}
 120.360 -+#endif
 120.361 -+
 120.362 -+namespace std
 120.363 -+{
 120.364 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.365 -+  typedef __locale_t		__c_locale;
 120.366 -+#else
 120.367 -+  typedef int*			__c_locale;
 120.368 -+#endif
 120.369 -+
 120.370 -+  // Convert numeric value of type _Tv to string and return length of
 120.371 -+  // string.  If snprintf is available use it, otherwise fall back to
 120.372 -+  // the unsafe sprintf which, in general, can be dangerous and should
 120.373 -+  // be avoided.
 120.374 -+  template<typename _Tv>
 120.375 -+    int
 120.376 -+    __convert_from_v(char* __out, 
 120.377 -+		     const int __size __attribute__ ((__unused__)),
 120.378 -+		     const char* __fmt,
 120.379 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.380 -+		     _Tv __v, const __c_locale& __cloc, int __prec)
 120.381 -+    {
 120.382 -+      __c_locale __old = __gnu_cxx::__uselocale(__cloc);
 120.383 -+#else
 120.384 -+		     _Tv __v, const __c_locale&, int __prec)
 120.385 -+    {
 120.386 -+# ifdef __UCLIBC_HAS_LOCALE__
 120.387 -+      char* __old = std::setlocale(LC_ALL, NULL);
 120.388 -+      char* __sav = new char[std::strlen(__old) + 1];
 120.389 -+      std::strcpy(__sav, __old);
 120.390 -+      std::setlocale(LC_ALL, "C");
 120.391 -+# endif
 120.392 -+#endif
 120.393 -+
 120.394 -+      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
 120.395 -+
 120.396 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.397 -+      __gnu_cxx::__uselocale(__old);
 120.398 -+#elif defined __UCLIBC_HAS_LOCALE__
 120.399 -+      std::setlocale(LC_ALL, __sav);
 120.400 -+      delete [] __sav;
 120.401 -+#endif
 120.402 -+      return __ret;
 120.403 -+    }
 120.404 -+}
 120.405 -+
 120.406 -+#endif
 120.407 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
 120.408 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
 120.409 -@@ -0,0 +1,306 @@
 120.410 -+// std::codecvt implementation details, GNU version -*- C++ -*-
 120.411 -+
 120.412 -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 120.413 -+//
 120.414 -+// This file is part of the GNU ISO C++ Library.  This library is free
 120.415 -+// software; you can redistribute it and/or modify it under the
 120.416 -+// terms of the GNU General Public License as published by the
 120.417 -+// Free Software Foundation; either version 2, or (at your option)
 120.418 -+// any later version.
 120.419 -+
 120.420 -+// This library is distributed in the hope that it will be useful,
 120.421 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 120.422 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 120.423 -+// GNU General Public License for more details.
 120.424 -+
 120.425 -+// You should have received a copy of the GNU General Public License along
 120.426 -+// with this library; see the file COPYING.  If not, write to the Free
 120.427 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 120.428 -+// USA.
 120.429 -+
 120.430 -+// As a special exception, you may use this file as part of a free software
 120.431 -+// library without restriction.  Specifically, if other files instantiate
 120.432 -+// templates or use macros or inline functions from this file, or you compile
 120.433 -+// this file and link it with other files to produce an executable, this
 120.434 -+// file does not by itself cause the resulting executable to be covered by
 120.435 -+// the GNU General Public License.  This exception does not however
 120.436 -+// invalidate any other reasons why the executable file might be covered by
 120.437 -+// the GNU General Public License.
 120.438 -+
 120.439 -+//
 120.440 -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
 120.441 -+//
 120.442 -+
 120.443 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 120.444 -+
 120.445 -+#include <locale>
 120.446 -+#include <bits/c++locale_internal.h>
 120.447 -+
 120.448 -+namespace std
 120.449 -+{
 120.450 -+  // Specializations.
 120.451 -+#ifdef _GLIBCXX_USE_WCHAR_T
 120.452 -+  codecvt_base::result
 120.453 -+  codecvt<wchar_t, char, mbstate_t>::
 120.454 -+  do_out(state_type& __state, const intern_type* __from, 
 120.455 -+	 const intern_type* __from_end, const intern_type*& __from_next,
 120.456 -+	 extern_type* __to, extern_type* __to_end,
 120.457 -+	 extern_type*& __to_next) const
 120.458 -+  {
 120.459 -+    result __ret = ok;
 120.460 -+    state_type __tmp_state(__state);
 120.461 -+
 120.462 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.463 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 120.464 -+#endif
 120.465 -+
 120.466 -+    // wcsnrtombs is *very* fast but stops if encounters NUL characters:
 120.467 -+    // in case we fall back to wcrtomb and then continue, in a loop.
 120.468 -+    // NB: wcsnrtombs is a GNU extension
 120.469 -+    for (__from_next = __from, __to_next = __to;
 120.470 -+	 __from_next < __from_end && __to_next < __to_end
 120.471 -+	 && __ret == ok;)
 120.472 -+      {
 120.473 -+	const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
 120.474 -+						      __from_end - __from_next);
 120.475 -+	if (!__from_chunk_end)
 120.476 -+	  __from_chunk_end = __from_end;
 120.477 -+
 120.478 -+	__from = __from_next;
 120.479 -+	const size_t __conv = wcsnrtombs(__to_next, &__from_next,
 120.480 -+					 __from_chunk_end - __from_next,
 120.481 -+					 __to_end - __to_next, &__state);
 120.482 -+	if (__conv == static_cast<size_t>(-1))
 120.483 -+	  {
 120.484 -+	    // In case of error, in order to stop at the exact place we
 120.485 -+	    // have to start again from the beginning with a series of
 120.486 -+	    // wcrtomb.
 120.487 -+	    for (; __from < __from_next; ++__from)
 120.488 -+	      __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
 120.489 -+	    __state = __tmp_state;
 120.490 -+	    __ret = error;
 120.491 -+	  }
 120.492 -+	else if (__from_next && __from_next < __from_chunk_end)
 120.493 -+	  {
 120.494 -+	    __to_next += __conv;
 120.495 -+	    __ret = partial;
 120.496 -+	  }
 120.497 -+	else
 120.498 -+	  {
 120.499 -+	    __from_next = __from_chunk_end;
 120.500 -+	    __to_next += __conv;
 120.501 -+	  }
 120.502 -+
 120.503 -+	if (__from_next < __from_end && __ret == ok)
 120.504 -+	  {
 120.505 -+	    extern_type __buf[MB_LEN_MAX];
 120.506 -+	    __tmp_state = __state;
 120.507 -+	    const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
 120.508 -+	    if (__conv > static_cast<size_t>(__to_end - __to_next))
 120.509 -+	      __ret = partial;
 120.510 -+	    else
 120.511 -+	      {
 120.512 -+		memcpy(__to_next, __buf, __conv);
 120.513 -+		__state = __tmp_state;
 120.514 -+		__to_next += __conv;
 120.515 -+		++__from_next;
 120.516 -+	      }
 120.517 -+	  }
 120.518 -+      }
 120.519 -+
 120.520 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.521 -+    __uselocale(__old);
 120.522 -+#endif
 120.523 -+
 120.524 -+    return __ret; 
 120.525 -+  }
 120.526 -+  
 120.527 -+  codecvt_base::result
 120.528 -+  codecvt<wchar_t, char, mbstate_t>::
 120.529 -+  do_in(state_type& __state, const extern_type* __from, 
 120.530 -+	const extern_type* __from_end, const extern_type*& __from_next,
 120.531 -+	intern_type* __to, intern_type* __to_end,
 120.532 -+	intern_type*& __to_next) const
 120.533 -+  {
 120.534 -+    result __ret = ok;
 120.535 -+    state_type __tmp_state(__state);
 120.536 -+
 120.537 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.538 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 120.539 -+#endif
 120.540 -+
 120.541 -+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
 120.542 -+    // in case we store a L'\0' and then continue, in a loop.
 120.543 -+    // NB: mbsnrtowcs is a GNU extension
 120.544 -+    for (__from_next = __from, __to_next = __to;
 120.545 -+	 __from_next < __from_end && __to_next < __to_end
 120.546 -+	 && __ret == ok;)
 120.547 -+      {
 120.548 -+	const extern_type* __from_chunk_end;
 120.549 -+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
 120.550 -+								  __from_end
 120.551 -+								  - __from_next));
 120.552 -+	if (!__from_chunk_end)
 120.553 -+	  __from_chunk_end = __from_end;
 120.554 -+
 120.555 -+	__from = __from_next;
 120.556 -+	size_t __conv = mbsnrtowcs(__to_next, &__from_next,
 120.557 -+				   __from_chunk_end - __from_next,
 120.558 -+				   __to_end - __to_next, &__state);
 120.559 -+	if (__conv == static_cast<size_t>(-1))
 120.560 -+	  {
 120.561 -+	    // In case of error, in order to stop at the exact place we
 120.562 -+	    // have to start again from the beginning with a series of
 120.563 -+	    // mbrtowc.
 120.564 -+	    for (;; ++__to_next, __from += __conv)
 120.565 -+	      {
 120.566 -+		__conv = mbrtowc(__to_next, __from, __from_end - __from,
 120.567 -+				 &__tmp_state);
 120.568 -+		if (__conv == static_cast<size_t>(-1)
 120.569 -+		    || __conv == static_cast<size_t>(-2))
 120.570 -+		  break;
 120.571 -+	      }
 120.572 -+	    __from_next = __from;
 120.573 -+	    __state = __tmp_state;	    
 120.574 -+	    __ret = error;
 120.575 -+	  }
 120.576 -+	else if (__from_next && __from_next < __from_chunk_end)
 120.577 -+	  {
 120.578 -+	    // It is unclear what to return in this case (see DR 382). 
 120.579 -+	    __to_next += __conv;
 120.580 -+	    __ret = partial;
 120.581 -+	  }
 120.582 -+	else
 120.583 -+	  {
 120.584 -+	    __from_next = __from_chunk_end;
 120.585 -+	    __to_next += __conv;
 120.586 -+	  }
 120.587 -+
 120.588 -+	if (__from_next < __from_end && __ret == ok)
 120.589 -+	  {
 120.590 -+	    if (__to_next < __to_end)
 120.591 -+	      {
 120.592 -+		// XXX Probably wrong for stateful encodings
 120.593 -+		__tmp_state = __state;		
 120.594 -+		++__from_next;
 120.595 -+		*__to_next++ = L'\0';
 120.596 -+	      }
 120.597 -+	    else
 120.598 -+	      __ret = partial;
 120.599 -+	  }
 120.600 -+      }
 120.601 -+
 120.602 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.603 -+    __uselocale(__old);
 120.604 -+#endif
 120.605 -+
 120.606 -+    return __ret; 
 120.607 -+  }
 120.608 -+
 120.609 -+  int 
 120.610 -+  codecvt<wchar_t, char, mbstate_t>::
 120.611 -+  do_encoding() const throw()
 120.612 -+  {
 120.613 -+    // XXX This implementation assumes that the encoding is
 120.614 -+    // stateless and is either single-byte or variable-width.
 120.615 -+    int __ret = 0;
 120.616 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.617 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 120.618 -+#endif
 120.619 -+    if (MB_CUR_MAX == 1)
 120.620 -+      __ret = 1;
 120.621 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.622 -+    __uselocale(__old);
 120.623 -+#endif
 120.624 -+    return __ret;
 120.625 -+  }  
 120.626 -+
 120.627 -+  int 
 120.628 -+  codecvt<wchar_t, char, mbstate_t>::
 120.629 -+  do_max_length() const throw()
 120.630 -+  {
 120.631 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.632 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 120.633 -+#endif
 120.634 -+    // XXX Probably wrong for stateful encodings.
 120.635 -+    int __ret = MB_CUR_MAX;
 120.636 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.637 -+    __uselocale(__old);
 120.638 -+#endif
 120.639 -+    return __ret;
 120.640 -+  }
 120.641 -+  
 120.642 -+  int 
 120.643 -+  codecvt<wchar_t, char, mbstate_t>::
 120.644 -+  do_length(state_type& __state, const extern_type* __from,
 120.645 -+	    const extern_type* __end, size_t __max) const
 120.646 -+  {
 120.647 -+    int __ret = 0;
 120.648 -+    state_type __tmp_state(__state);
 120.649 -+
 120.650 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.651 -+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
 120.652 -+#endif
 120.653 -+
 120.654 -+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
 120.655 -+    // in case we advance past it and then continue, in a loop.
 120.656 -+    // NB: mbsnrtowcs is a GNU extension
 120.657 -+  
 120.658 -+    // A dummy internal buffer is needed in order for mbsnrtocws to consider
 120.659 -+    // its fourth parameter (it wouldn't with NULL as first parameter).
 120.660 -+    wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) 
 120.661 -+							   * __max));
 120.662 -+    while (__from < __end && __max)
 120.663 -+      {
 120.664 -+	const extern_type* __from_chunk_end;
 120.665 -+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
 120.666 -+								  __end
 120.667 -+								  - __from));
 120.668 -+	if (!__from_chunk_end)
 120.669 -+	  __from_chunk_end = __end;
 120.670 -+
 120.671 -+	const extern_type* __tmp_from = __from;
 120.672 -+	size_t __conv = mbsnrtowcs(__to, &__from,
 120.673 -+				   __from_chunk_end - __from,
 120.674 -+				   __max, &__state);
 120.675 -+	if (__conv == static_cast<size_t>(-1))
 120.676 -+	  {
 120.677 -+	    // In case of error, in order to stop at the exact place we
 120.678 -+	    // have to start again from the beginning with a series of
 120.679 -+	    // mbrtowc.
 120.680 -+	    for (__from = __tmp_from;; __from += __conv)
 120.681 -+	      {
 120.682 -+		__conv = mbrtowc(NULL, __from, __end - __from,
 120.683 -+				 &__tmp_state);
 120.684 -+		if (__conv == static_cast<size_t>(-1)
 120.685 -+		    || __conv == static_cast<size_t>(-2))
 120.686 -+		  break;
 120.687 -+	      }
 120.688 -+	    __state = __tmp_state;
 120.689 -+	    __ret += __from - __tmp_from;
 120.690 -+	    break;
 120.691 -+	  }
 120.692 -+	if (!__from)
 120.693 -+	  __from = __from_chunk_end;
 120.694 -+	
 120.695 -+	__ret += __from - __tmp_from;
 120.696 -+	__max -= __conv;
 120.697 -+
 120.698 -+	if (__from < __end && __max)
 120.699 -+	  {
 120.700 -+	    // XXX Probably wrong for stateful encodings
 120.701 -+	    __tmp_state = __state;
 120.702 -+	    ++__from;
 120.703 -+	    ++__ret;
 120.704 -+	    --__max;
 120.705 -+	  }
 120.706 -+      }
 120.707 -+
 120.708 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.709 -+    __uselocale(__old);
 120.710 -+#endif
 120.711 -+
 120.712 -+    return __ret; 
 120.713 -+  }
 120.714 -+#endif
 120.715 -+}
 120.716 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/collate_members.cc
 120.717 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
 120.718 -@@ -0,0 +1,80 @@
 120.719 -+// std::collate implementation details, GNU version -*- C++ -*-
 120.720 -+
 120.721 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
 120.722 -+//
 120.723 -+// This file is part of the GNU ISO C++ Library.  This library is free
 120.724 -+// software; you can redistribute it and/or modify it under the
 120.725 -+// terms of the GNU General Public License as published by the
 120.726 -+// Free Software Foundation; either version 2, or (at your option)
 120.727 -+// any later version.
 120.728 -+
 120.729 -+// This library is distributed in the hope that it will be useful,
 120.730 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 120.731 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 120.732 -+// GNU General Public License for more details.
 120.733 -+
 120.734 -+// You should have received a copy of the GNU General Public License along
 120.735 -+// with this library; see the file COPYING.  If not, write to the Free
 120.736 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 120.737 -+// USA.
 120.738 -+
 120.739 -+// As a special exception, you may use this file as part of a free software
 120.740 -+// library without restriction.  Specifically, if other files instantiate
 120.741 -+// templates or use macros or inline functions from this file, or you compile
 120.742 -+// this file and link it with other files to produce an executable, this
 120.743 -+// file does not by itself cause the resulting executable to be covered by
 120.744 -+// the GNU General Public License.  This exception does not however
 120.745 -+// invalidate any other reasons why the executable file might be covered by
 120.746 -+// the GNU General Public License.
 120.747 -+
 120.748 -+//
 120.749 -+// ISO C++ 14882: 22.2.4.1.2  collate virtual functions
 120.750 -+//
 120.751 -+
 120.752 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 120.753 -+
 120.754 -+#include <locale>
 120.755 -+#include <bits/c++locale_internal.h>
 120.756 -+
 120.757 -+#ifndef __UCLIBC_HAS_XLOCALE__
 120.758 -+#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
 120.759 -+#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
 120.760 -+#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
 120.761 -+#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
 120.762 -+#endif
 120.763 -+
 120.764 -+namespace std
 120.765 -+{
 120.766 -+  // These are basically extensions to char_traits, and perhaps should
 120.767 -+  // be put there instead of here.
 120.768 -+  template<>
 120.769 -+    int 
 120.770 -+    collate<char>::_M_compare(const char* __one, const char* __two) const
 120.771 -+    { 
 120.772 -+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
 120.773 -+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
 120.774 -+    }
 120.775 -+  
 120.776 -+  template<>
 120.777 -+    size_t
 120.778 -+    collate<char>::_M_transform(char* __to, const char* __from, 
 120.779 -+				size_t __n) const 
 120.780 -+    { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 120.781 -+
 120.782 -+#ifdef _GLIBCXX_USE_WCHAR_T
 120.783 -+  template<>
 120.784 -+    int 
 120.785 -+    collate<wchar_t>::_M_compare(const wchar_t* __one, 
 120.786 -+				 const wchar_t* __two) const
 120.787 -+    {
 120.788 -+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
 120.789 -+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
 120.790 -+    }
 120.791 -+  
 120.792 -+  template<>
 120.793 -+    size_t
 120.794 -+    collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
 120.795 -+				   size_t __n) const
 120.796 -+    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 120.797 -+#endif
 120.798 -+}
 120.799 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/ctype_members.cc
 120.800 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
 120.801 -@@ -0,0 +1,314 @@
 120.802 -+// std::ctype implementation details, GNU version -*- C++ -*-
 120.803 -+
 120.804 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 120.805 -+//
 120.806 -+// This file is part of the GNU ISO C++ Library.  This library is free
 120.807 -+// software; you can redistribute it and/or modify it under the
 120.808 -+// terms of the GNU General Public License as published by the
 120.809 -+// Free Software Foundation; either version 2, or (at your option)
 120.810 -+// any later version.
 120.811 -+
 120.812 -+// This library is distributed in the hope that it will be useful,
 120.813 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 120.814 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 120.815 -+// GNU General Public License for more details.
 120.816 -+
 120.817 -+// You should have received a copy of the GNU General Public License along
 120.818 -+// with this library; see the file COPYING.  If not, write to the Free
 120.819 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 120.820 -+// USA.
 120.821 -+
 120.822 -+// As a special exception, you may use this file as part of a free software
 120.823 -+// library without restriction.  Specifically, if other files instantiate
 120.824 -+// templates or use macros or inline functions from this file, or you compile
 120.825 -+// this file and link it with other files to produce an executable, this
 120.826 -+// file does not by itself cause the resulting executable to be covered by
 120.827 -+// the GNU General Public License.  This exception does not however
 120.828 -+// invalidate any other reasons why the executable file might be covered by
 120.829 -+// the GNU General Public License.
 120.830 -+
 120.831 -+//
 120.832 -+// ISO C++ 14882: 22.2.1.1.2  ctype virtual functions.
 120.833 -+//
 120.834 -+
 120.835 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
 120.836 -+
 120.837 -+#define _LIBC
 120.838 -+#include <locale>
 120.839 -+#undef _LIBC
 120.840 -+#include <bits/c++locale_internal.h>
 120.841 -+
 120.842 -+#ifndef __UCLIBC_HAS_XLOCALE__
 120.843 -+#define __wctype_l(S, L)           wctype((S))
 120.844 -+#define __towupper_l(C, L)         towupper((C))
 120.845 -+#define __towlower_l(C, L)         towlower((C))
 120.846 -+#define __iswctype_l(C, M, L)      iswctype((C), (M))
 120.847 -+#endif
 120.848 -+
 120.849 -+namespace std
 120.850 -+{
 120.851 -+  // NB: The other ctype<char> specializations are in src/locale.cc and
 120.852 -+  // various /config/os/* files.
 120.853 -+  template<>
 120.854 -+    ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
 120.855 -+    : ctype<char>(0, false, __refs) 
 120.856 -+    { 		
 120.857 -+      if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
 120.858 -+	{
 120.859 -+	  this->_S_destroy_c_locale(this->_M_c_locale_ctype);
 120.860 -+	  this->_S_create_c_locale(this->_M_c_locale_ctype, __s); 
 120.861 -+#ifdef __UCLIBC_HAS_XLOCALE__
 120.862 -+	  this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
 120.863 -+	  this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
 120.864 -+	  this->_M_table = this->_M_c_locale_ctype->__ctype_b;
 120.865 -+#endif
 120.866 -+	}
 120.867 -+    }
 120.868 -+
 120.869 -+#ifdef _GLIBCXX_USE_WCHAR_T  
 120.870 -+  ctype<wchar_t>::__wmask_type
 120.871 -+  ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
 120.872 -+  {
 120.873 -+    __wmask_type __ret;
 120.874 -+    switch (__m)
 120.875 -+      {
 120.876 -+      case space:
 120.877 -+	__ret = __wctype_l("space", _M_c_locale_ctype);
 120.878 -+	break;
 120.879 -+      case print:
 120.880 -+	__ret = __wctype_l("print", _M_c_locale_ctype);
 120.881 -+	break;
 120.882 -+      case cntrl:
 120.883 -+	__ret = __wctype_l("cntrl", _M_c_locale_ctype);
 120.884 -+	break;
 120.885 -+      case upper:
 120.886 -+	__ret = __wctype_l("upper", _M_c_locale_ctype);
 120.887 -+	break;
 120.888 -+      case lower:
 120.889 -+	__ret = __wctype_l("lower", _M_c_locale_ctype);
 120.890 -+	break;
 120.891 -+      case alpha:
 120.892 -+	__ret = __wctype_l("alpha", _M_c_locale_ctype);
 120.893 -+	break;
 120.894 -+      case digit:
 120.895 -+	__ret = __wctype_l("digit", _M_c_locale_ctype);
 120.896 -+	break;
 120.897 -+      case punct:
 120.898 -+	__ret = __wctype_l("punct", _M_c_locale_ctype);
 120.899 -+	break;
 120.900 -+      case xdigit:
 120.901 -+	__ret = __wctype_l("xdigit", _M_c_locale_ctype);
 120.902 -+	break;
 120.903 -+      case alnum:
 120.904 -+	__ret = __wctype_l("alnum", _M_c_locale_ctype);
 120.905 -+	break;
 120.906 -+      case graph:
 120.907 -+	__ret = __wctype_l("graph", _M_c_locale_ctype);
 120.908 -+	break;
 120.909 -+      default:
 120.910 -+	__ret = __wmask_type();
 120.911 -+      }
 120.912 -+    return __ret;
 120.913 -+  }
 120.914 -+  
 120.915 -+  wchar_t
 120.916 -+  ctype<wchar_t>::do_toupper(wchar_t __c) const
 120.917 -+  { return __towupper_l(__c, _M_c_locale_ctype); }
 120.918 -+
 120.919 -+  const wchar_t*
 120.920 -+  ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
 120.921 -+  {
 120.922 -+    while (__lo < __hi)
 120.923 -+      {
 120.924 -+        *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
 120.925 -+        ++__lo;
 120.926 -+      }
 120.927 -+    return __hi;
 120.928 -+  }
 120.929 -+  
 120.930 -+  wchar_t
 120.931 -+  ctype<wchar_t>::do_tolower(wchar_t __c) const
 120.932 -+  { return __towlower_l(__c, _M_c_locale_ctype); }
 120.933 -+  
 120.934 -+  const wchar_t*
 120.935 -+  ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
 120.936 -+  {
 120.937 -+    while (__lo < __hi)
 120.938 -+      {
 120.939 -+        *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
 120.940 -+        ++__lo;
 120.941 -+      }
 120.942 -+    return __hi;
 120.943 -+  }
 120.944 -+
 120.945 -+  bool
 120.946 -+  ctype<wchar_t>::
 120.947 -+  do_is(mask __m, wchar_t __c) const
 120.948 -+  { 
 120.949 -+    // The case of __m == ctype_base::space is particularly important,
 120.950 -+    // due to its use in many istream functions.  Therefore we deal with
 120.951 -+    // it first, exploiting the knowledge that on GNU systems _M_bit[5]
 120.952 -+    // is the mask corresponding to ctype_base::space.  NB: an encoding
 120.953 -+    // change would not affect correctness!
 120.954 -+    bool __ret = false;
 120.955 -+    if (__m == _M_bit[5])
 120.956 -+      __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
 120.957 -+    else
 120.958 -+      {
 120.959 -+	// Highest bitmask in ctype_base == 10, but extra in "C"
 120.960 -+	// library for blank.
 120.961 -+	const size_t __bitmasksize = 11;
 120.962 -+	for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
 120.963 -+	  if (__m & _M_bit[__bitcur])
 120.964 -+	    {
 120.965 -+	      if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
 120.966 -+		{
 120.967 -+		  __ret = true;
 120.968 -+		  break;
 120.969 -+		}
 120.970 -+	      else if (__m == _M_bit[__bitcur])
 120.971 -+		break;
 120.972 -+	    }
 120.973 -+      }
 120.974 -+    return __ret;    
 120.975 -+  }
 120.976 -+
 120.977 -+  const wchar_t* 
 120.978 -+  ctype<wchar_t>::
 120.979 -+  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
 120.980 -+  {
 120.981 -+    for (; __lo < __hi; ++__vec, ++__lo)
 120.982 -+      {
 120.983 -+	// Highest bitmask in ctype_base == 10, but extra in "C"
 120.984 -+	// library for blank.
 120.985 -+	const size_t __bitmasksize = 11; 
 120.986 -+	mask __m = 0;
 120.987 -+	for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
 120.988 -+	  if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
 120.989 -+	    __m |= _M_bit[__bitcur];
 120.990 -+	*__vec = __m;
 120.991 -+      }
 120.992 -+    return __hi;
 120.993 -+  }
 120.994 -+  
 120.995 -+  const wchar_t* 
 120.996 -+  ctype<wchar_t>::
 120.997 -+  do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
 120.998 -+  {
 120.999 -+    while (__lo < __hi && !this->do_is(__m, *__lo))
120.1000 -+      ++__lo;
120.1001 -+    return __lo;
120.1002 -+  }
120.1003 -+
120.1004 -+  const wchar_t*
120.1005 -+  ctype<wchar_t>::
120.1006 -+  do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
120.1007 -+  {
120.1008 -+    while (__lo < __hi && this->do_is(__m, *__lo) != 0)
120.1009 -+      ++__lo;
120.1010 -+    return __lo;
120.1011 -+  }
120.1012 -+
120.1013 -+  wchar_t
120.1014 -+  ctype<wchar_t>::
120.1015 -+  do_widen(char __c) const
120.1016 -+  { return _M_widen[static_cast<unsigned char>(__c)]; }
120.1017 -+
120.1018 -+  const char* 
120.1019 -+  ctype<wchar_t>::
120.1020 -+  do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
120.1021 -+  {
120.1022 -+    while (__lo < __hi)
120.1023 -+      {
120.1024 -+	*__dest = _M_widen[static_cast<unsigned char>(*__lo)];
120.1025 -+	++__lo;
120.1026 -+	++__dest;
120.1027 -+      }
120.1028 -+    return __hi;
120.1029 -+  }
120.1030 -+
120.1031 -+  char
120.1032 -+  ctype<wchar_t>::
120.1033 -+  do_narrow(wchar_t __wc, char __dfault) const
120.1034 -+  {
120.1035 -+    if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
120.1036 -+      return _M_narrow[__wc];
120.1037 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1038 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
120.1039 -+#endif
120.1040 -+    const int __c = wctob(__wc);
120.1041 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1042 -+    __uselocale(__old);
120.1043 -+#endif
120.1044 -+    return (__c == EOF ? __dfault : static_cast<char>(__c)); 
120.1045 -+  }
120.1046 -+
120.1047 -+  const wchar_t*
120.1048 -+  ctype<wchar_t>::
120.1049 -+  do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, 
120.1050 -+	    char* __dest) const
120.1051 -+  {
120.1052 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1053 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
120.1054 -+#endif
120.1055 -+    if (_M_narrow_ok)
120.1056 -+      while (__lo < __hi)
120.1057 -+	{
120.1058 -+	  if (*__lo >= 0 && *__lo < 128)
120.1059 -+	    *__dest = _M_narrow[*__lo];
120.1060 -+	  else
120.1061 -+	    {
120.1062 -+	      const int __c = wctob(*__lo);
120.1063 -+	      *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
120.1064 -+	    }
120.1065 -+	  ++__lo;
120.1066 -+	  ++__dest;
120.1067 -+	}
120.1068 -+    else
120.1069 -+      while (__lo < __hi)
120.1070 -+	{
120.1071 -+	  const int __c = wctob(*__lo);
120.1072 -+	  *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
120.1073 -+	  ++__lo;
120.1074 -+	  ++__dest;
120.1075 -+	}
120.1076 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1077 -+    __uselocale(__old);
120.1078 -+#endif
120.1079 -+    return __hi;
120.1080 -+  }
120.1081 -+
120.1082 -+  void
120.1083 -+  ctype<wchar_t>::_M_initialize_ctype()
120.1084 -+  {
120.1085 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1086 -+    __c_locale __old = __uselocale(_M_c_locale_ctype);
120.1087 -+#endif
120.1088 -+    wint_t __i;
120.1089 -+    for (__i = 0; __i < 128; ++__i)
120.1090 -+      {
120.1091 -+	const int __c = wctob(__i);
120.1092 -+	if (__c == EOF)
120.1093 -+	  break;
120.1094 -+	else
120.1095 -+	  _M_narrow[__i] = static_cast<char>(__c);
120.1096 -+      }
120.1097 -+    if (__i == 128)
120.1098 -+      _M_narrow_ok = true;
120.1099 -+    else
120.1100 -+      _M_narrow_ok = false;
120.1101 -+    for (size_t __j = 0;
120.1102 -+	 __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
120.1103 -+      _M_widen[__j] = btowc(__j);
120.1104 -+
120.1105 -+    for (size_t __k = 0; __k <= 11; ++__k)
120.1106 -+      { 
120.1107 -+	_M_bit[__k] = static_cast<mask>(_ISbit(__k));
120.1108 -+	_M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
120.1109 -+      }
120.1110 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1111 -+    __uselocale(__old);
120.1112 -+#endif
120.1113 -+  }
120.1114 -+#endif //  _GLIBCXX_USE_WCHAR_T
120.1115 -+}
120.1116 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/messages_members.cc
120.1117 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
120.1118 -@@ -0,0 +1,100 @@
120.1119 -+// std::messages implementation details, GNU version -*- C++ -*-
120.1120 -+
120.1121 -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
120.1122 -+//
120.1123 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.1124 -+// software; you can redistribute it and/or modify it under the
120.1125 -+// terms of the GNU General Public License as published by the
120.1126 -+// Free Software Foundation; either version 2, or (at your option)
120.1127 -+// any later version.
120.1128 -+
120.1129 -+// This library is distributed in the hope that it will be useful,
120.1130 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.1131 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.1132 -+// GNU General Public License for more details.
120.1133 -+
120.1134 -+// You should have received a copy of the GNU General Public License along
120.1135 -+// with this library; see the file COPYING.  If not, write to the Free
120.1136 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
120.1137 -+// USA.
120.1138 -+
120.1139 -+// As a special exception, you may use this file as part of a free software
120.1140 -+// library without restriction.  Specifically, if other files instantiate
120.1141 -+// templates or use macros or inline functions from this file, or you compile
120.1142 -+// this file and link it with other files to produce an executable, this
120.1143 -+// file does not by itself cause the resulting executable to be covered by
120.1144 -+// the GNU General Public License.  This exception does not however
120.1145 -+// invalidate any other reasons why the executable file might be covered by
120.1146 -+// the GNU General Public License.
120.1147 -+
120.1148 -+//
120.1149 -+// ISO C++ 14882: 22.2.7.1.2  messages virtual functions
120.1150 -+//
120.1151 -+
120.1152 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
120.1153 -+
120.1154 -+#include <locale>
120.1155 -+#include <bits/c++locale_internal.h>
120.1156 -+
120.1157 -+#ifdef __UCLIBC_MJN3_ONLY__
120.1158 -+#warning fix gettext stuff
120.1159 -+#endif
120.1160 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
120.1161 -+extern "C" char *__dcgettext(const char *domainname,
120.1162 -+			     const char *msgid, int category);
120.1163 -+#undef gettext
120.1164 -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
120.1165 -+#else
120.1166 -+#undef gettext
120.1167 -+#define gettext(msgid) (msgid)
120.1168 -+#endif
120.1169 -+
120.1170 -+namespace std
120.1171 -+{
120.1172 -+  // Specializations.
120.1173 -+  template<>
120.1174 -+    string
120.1175 -+    messages<char>::do_get(catalog, int, int, const string& __dfault) const
120.1176 -+    {
120.1177 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1178 -+      __c_locale __old = __uselocale(_M_c_locale_messages);
120.1179 -+      const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
120.1180 -+      __uselocale(__old);
120.1181 -+      return string(__msg);
120.1182 -+#elif defined __UCLIBC_HAS_LOCALE__
120.1183 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
120.1184 -+      setlocale(LC_ALL, _M_name_messages);
120.1185 -+      const char* __msg = gettext(__dfault.c_str());
120.1186 -+      setlocale(LC_ALL, __old);
120.1187 -+      free(__old);
120.1188 -+      return string(__msg);
120.1189 -+#else
120.1190 -+      const char* __msg = gettext(__dfault.c_str());
120.1191 -+      return string(__msg);
120.1192 -+#endif
120.1193 -+    }
120.1194 -+
120.1195 -+#ifdef _GLIBCXX_USE_WCHAR_T
120.1196 -+  template<>
120.1197 -+    wstring
120.1198 -+    messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
120.1199 -+    {
120.1200 -+# ifdef __UCLIBC_HAS_XLOCALE__
120.1201 -+      __c_locale __old = __uselocale(_M_c_locale_messages);
120.1202 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
120.1203 -+      __uselocale(__old);
120.1204 -+      return _M_convert_from_char(__msg);
120.1205 -+# elif defined __UCLIBC_HAS_LOCALE__
120.1206 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
120.1207 -+      setlocale(LC_ALL, _M_name_messages);
120.1208 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
120.1209 -+      setlocale(LC_ALL, __old);
120.1210 -+      free(__old);
120.1211 -+      return _M_convert_from_char(__msg);
120.1212 -+# else
120.1213 -+      char* __msg = gettext(_M_convert_to_char(__dfault));
120.1214 -+      return _M_convert_from_char(__msg);
120.1215 -+# endif
120.1216 -+    }
120.1217 -+#endif
120.1218 -+}
120.1219 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/messages_members.h
120.1220 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/messages_members.h
120.1221 -@@ -0,0 +1,121 @@
120.1222 -+// std::messages implementation details, GNU version -*- C++ -*-
120.1223 -+
120.1224 -+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
120.1225 -+//
120.1226 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.1227 -+// software; you can redistribute it and/or modify it under the
120.1228 -+// terms of the GNU General Public License as published by the
120.1229 -+// Free Software Foundation; either version 2, or (at your option)
120.1230 -+// any later version.
120.1231 -+
120.1232 -+// This library is distributed in the hope that it will be useful,
120.1233 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.1234 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.1235 -+// GNU General Public License for more details.
120.1236 -+
120.1237 -+// You should have received a copy of the GNU General Public License along
120.1238 -+// with this library; see the file COPYING.  If not, write to the Free
120.1239 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
120.1240 -+// USA.
120.1241 -+
120.1242 -+// As a special exception, you may use this file as part of a free software
120.1243 -+// library without restriction.  Specifically, if other files instantiate
120.1244 -+// templates or use macros or inline functions from this file, or you compile
120.1245 -+// this file and link it with other files to produce an executable, this
120.1246 -+// file does not by itself cause the resulting executable to be covered by
120.1247 -+// the GNU General Public License.  This exception does not however
120.1248 -+// invalidate any other reasons why the executable file might be covered by
120.1249 -+// the GNU General Public License.
120.1250 -+
120.1251 -+//
120.1252 -+// ISO C++ 14882: 22.2.7.1.2  messages functions
120.1253 -+//
120.1254 -+
120.1255 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
120.1256 -+
120.1257 -+#ifdef __UCLIBC_MJN3_ONLY__
120.1258 -+#warning fix prototypes for *textdomain funcs
120.1259 -+#endif
120.1260 -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
120.1261 -+extern "C" char *__textdomain(const char *domainname);
120.1262 -+extern "C" char *__bindtextdomain(const char *domainname,
120.1263 -+				  const char *dirname);
120.1264 -+#else
120.1265 -+#undef __textdomain
120.1266 -+#undef __bindtextdomain
120.1267 -+#define __textdomain(D)           ((void)0)
120.1268 -+#define __bindtextdomain(D,P)     ((void)0)
120.1269 -+#endif
120.1270 -+
120.1271 -+  // Non-virtual member functions.
120.1272 -+  template<typename _CharT>
120.1273 -+     messages<_CharT>::messages(size_t __refs)
120.1274 -+     : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 
120.1275 -+       _M_name_messages(_S_get_c_name())
120.1276 -+     { }
120.1277 -+
120.1278 -+  template<typename _CharT>
120.1279 -+     messages<_CharT>::messages(__c_locale __cloc, const char* __s, 
120.1280 -+				size_t __refs) 
120.1281 -+     : facet(__refs), _M_c_locale_messages(NULL), _M_name_messages(NULL)
120.1282 -+     {
120.1283 -+       const size_t __len = std::strlen(__s) + 1;
120.1284 -+       char* __tmp = new char[__len];
120.1285 -+       std::memcpy(__tmp, __s, __len);
120.1286 -+       _M_name_messages = __tmp;
120.1287 -+
120.1288 -+       // Last to avoid leaking memory if new throws.
120.1289 -+       _M_c_locale_messages = _S_clone_c_locale(__cloc);
120.1290 -+     }
120.1291 -+
120.1292 -+  template<typename _CharT>
120.1293 -+    typename messages<_CharT>::catalog 
120.1294 -+    messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
120.1295 -+			   const char* __dir) const
120.1296 -+    { 
120.1297 -+      __bindtextdomain(__s.c_str(), __dir);
120.1298 -+      return this->do_open(__s, __loc); 
120.1299 -+    }
120.1300 -+
120.1301 -+  // Virtual member functions.
120.1302 -+  template<typename _CharT>
120.1303 -+    messages<_CharT>::~messages()
120.1304 -+    { 
120.1305 -+      if (_M_name_messages != _S_get_c_name())
120.1306 -+	delete [] _M_name_messages;
120.1307 -+      _S_destroy_c_locale(_M_c_locale_messages); 
120.1308 -+    }
120.1309 -+
120.1310 -+  template<typename _CharT>
120.1311 -+    typename messages<_CharT>::catalog 
120.1312 -+    messages<_CharT>::do_open(const basic_string<char>& __s, 
120.1313 -+			      const locale&) const
120.1314 -+    { 
120.1315 -+      // No error checking is done, assume the catalog exists and can
120.1316 -+      // be used.
120.1317 -+      __textdomain(__s.c_str());
120.1318 -+      return 0;
120.1319 -+    }
120.1320 -+
120.1321 -+  template<typename _CharT>
120.1322 -+    void    
120.1323 -+    messages<_CharT>::do_close(catalog) const 
120.1324 -+    { }
120.1325 -+
120.1326 -+   // messages_byname
120.1327 -+   template<typename _CharT>
120.1328 -+     messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
120.1329 -+     : messages<_CharT>(__refs) 
120.1330 -+     { 
120.1331 -+       if (this->_M_name_messages != locale::facet::_S_get_c_name())
120.1332 -+	 delete [] this->_M_name_messages;
120.1333 -+       char* __tmp = new char[std::strlen(__s) + 1];
120.1334 -+       std::strcpy(__tmp, __s);
120.1335 -+       this->_M_name_messages = __tmp;
120.1336 -+
120.1337 -+       if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
120.1338 -+	 {
120.1339 -+	   this->_S_destroy_c_locale(this->_M_c_locale_messages);
120.1340 -+	   this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
120.1341 -+	 }
120.1342 -+     }
120.1343 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/monetary_members.cc
120.1344 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
120.1345 -@@ -0,0 +1,692 @@
120.1346 -+// std::moneypunct implementation details, GNU version -*- C++ -*-
120.1347 -+
120.1348 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
120.1349 -+//
120.1350 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.1351 -+// software; you can redistribute it and/or modify it under the
120.1352 -+// terms of the GNU General Public License as published by the
120.1353 -+// Free Software Foundation; either version 2, or (at your option)
120.1354 -+// any later version.
120.1355 -+
120.1356 -+// This library is distributed in the hope that it will be useful,
120.1357 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.1358 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.1359 -+// GNU General Public License for more details.
120.1360 -+
120.1361 -+// You should have received a copy of the GNU General Public License along
120.1362 -+// with this library; see the file COPYING.  If not, write to the Free
120.1363 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
120.1364 -+// USA.
120.1365 -+
120.1366 -+// As a special exception, you may use this file as part of a free software
120.1367 -+// library without restriction.  Specifically, if other files instantiate
120.1368 -+// templates or use macros or inline functions from this file, or you compile
120.1369 -+// this file and link it with other files to produce an executable, this
120.1370 -+// file does not by itself cause the resulting executable to be covered by
120.1371 -+// the GNU General Public License.  This exception does not however
120.1372 -+// invalidate any other reasons why the executable file might be covered by
120.1373 -+// the GNU General Public License.
120.1374 -+
120.1375 -+//
120.1376 -+// ISO C++ 14882: 22.2.6.3.2  moneypunct virtual functions
120.1377 -+//
120.1378 -+
120.1379 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
120.1380 -+
120.1381 -+#define _LIBC
120.1382 -+#include <locale>
120.1383 -+#undef _LIBC
120.1384 -+#include <bits/c++locale_internal.h>
120.1385 -+
120.1386 -+#ifdef __UCLIBC_MJN3_ONLY__
120.1387 -+#warning optimize this for uclibc
120.1388 -+#warning tailor for stub locale support
120.1389 -+#endif
120.1390 -+
120.1391 -+#ifndef __UCLIBC_HAS_XLOCALE__
120.1392 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
120.1393 -+#endif
120.1394 -+
120.1395 -+namespace std
120.1396 -+{
120.1397 -+  // Construct and return valid pattern consisting of some combination of:
120.1398 -+  // space none symbol sign value
120.1399 -+  money_base::pattern
120.1400 -+  money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
120.1401 -+  { 
120.1402 -+    pattern __ret;
120.1403 -+
120.1404 -+    // This insanely complicated routine attempts to construct a valid
120.1405 -+    // pattern for use with monyepunct. A couple of invariants:
120.1406 -+
120.1407 -+    // if (__precedes) symbol -> value
120.1408 -+    // else value -> symbol
120.1409 -+    
120.1410 -+    // if (__space) space
120.1411 -+    // else none
120.1412 -+
120.1413 -+    // none == never first
120.1414 -+    // space never first or last
120.1415 -+
120.1416 -+    // Any elegant implementations of this are welcome.
120.1417 -+    switch (__posn)
120.1418 -+      {
120.1419 -+      case 0:
120.1420 -+      case 1:
120.1421 -+	// 1 The sign precedes the value and symbol.
120.1422 -+	__ret.field[0] = sign;
120.1423 -+	if (__space)
120.1424 -+	  {
120.1425 -+	    // Pattern starts with sign.
120.1426 -+	    if (__precedes)
120.1427 -+	      {
120.1428 -+		__ret.field[1] = symbol;
120.1429 -+		__ret.field[3] = value;
120.1430 -+	      }
120.1431 -+	    else
120.1432 -+	      {
120.1433 -+		__ret.field[1] = value;
120.1434 -+		__ret.field[3] = symbol;
120.1435 -+	      }
120.1436 -+	    __ret.field[2] = space;
120.1437 -+	  }
120.1438 -+	else
120.1439 -+	  {
120.1440 -+	    // Pattern starts with sign and ends with none.
120.1441 -+	    if (__precedes)
120.1442 -+	      {
120.1443 -+		__ret.field[1] = symbol;
120.1444 -+		__ret.field[2] = value;
120.1445 -+	      }
120.1446 -+	    else
120.1447 -+	      {
120.1448 -+		__ret.field[1] = value;
120.1449 -+		__ret.field[2] = symbol;
120.1450 -+	      }
120.1451 -+	    __ret.field[3] = none;
120.1452 -+	  }
120.1453 -+	break;
120.1454 -+      case 2:
120.1455 -+	// 2 The sign follows the value and symbol.
120.1456 -+	if (__space)
120.1457 -+	  {
120.1458 -+	    // Pattern either ends with sign.
120.1459 -+	    if (__precedes)
120.1460 -+	      {
120.1461 -+		__ret.field[0] = symbol;
120.1462 -+		__ret.field[2] = value;
120.1463 -+	      }
120.1464 -+	    else
120.1465 -+	      {
120.1466 -+		__ret.field[0] = value;
120.1467 -+		__ret.field[2] = symbol;
120.1468 -+	      }
120.1469 -+	    __ret.field[1] = space;
120.1470 -+	    __ret.field[3] = sign;
120.1471 -+	  }
120.1472 -+	else
120.1473 -+	  {
120.1474 -+	    // Pattern ends with sign then none.
120.1475 -+	    if (__precedes)
120.1476 -+	      {
120.1477 -+		__ret.field[0] = symbol;
120.1478 -+		__ret.field[1] = value;
120.1479 -+	      }
120.1480 -+	    else
120.1481 -+	      {
120.1482 -+		__ret.field[0] = value;
120.1483 -+		__ret.field[1] = symbol;
120.1484 -+	      }
120.1485 -+	    __ret.field[2] = sign;
120.1486 -+	    __ret.field[3] = none;
120.1487 -+	  }
120.1488 -+	break;
120.1489 -+      case 3:
120.1490 -+	// 3 The sign immediately precedes the symbol.
120.1491 -+	if (__precedes)
120.1492 -+	  {
120.1493 -+	    __ret.field[0] = sign;
120.1494 -+	    __ret.field[1] = symbol;	    
120.1495 -+	    if (__space)
120.1496 -+	      {
120.1497 -+		__ret.field[2] = space;
120.1498 -+		__ret.field[3] = value;
120.1499 -+	      }
120.1500 -+	    else
120.1501 -+	      {
120.1502 -+		__ret.field[2] = value;		
120.1503 -+		__ret.field[3] = none;
120.1504 -+	      }
120.1505 -+	  }
120.1506 -+	else
120.1507 -+	  {
120.1508 -+	    __ret.field[0] = value;
120.1509 -+	    if (__space)
120.1510 -+	      {
120.1511 -+		__ret.field[1] = space;
120.1512 -+		__ret.field[2] = sign;
120.1513 -+		__ret.field[3] = symbol;
120.1514 -+	      }
120.1515 -+	    else
120.1516 -+	      {
120.1517 -+		__ret.field[1] = sign;
120.1518 -+		__ret.field[2] = symbol;
120.1519 -+		__ret.field[3] = none;
120.1520 -+	      }
120.1521 -+	  }
120.1522 -+	break;
120.1523 -+      case 4:
120.1524 -+	// 4 The sign immediately follows the symbol.
120.1525 -+	if (__precedes)
120.1526 -+	  {
120.1527 -+	    __ret.field[0] = symbol;
120.1528 -+	    __ret.field[1] = sign;
120.1529 -+	    if (__space)
120.1530 -+	      {
120.1531 -+		__ret.field[2] = space;
120.1532 -+		__ret.field[3] = value;
120.1533 -+	      }
120.1534 -+	    else
120.1535 -+	      {
120.1536 -+		__ret.field[2] = value;
120.1537 -+		__ret.field[3] = none;
120.1538 -+	      }
120.1539 -+	  }
120.1540 -+	else
120.1541 -+	  {
120.1542 -+	    __ret.field[0] = value;
120.1543 -+	    if (__space)
120.1544 -+	      {
120.1545 -+		__ret.field[1] = space;
120.1546 -+		__ret.field[2] = symbol;
120.1547 -+		__ret.field[3] = sign;
120.1548 -+	      }
120.1549 -+	    else
120.1550 -+	      {
120.1551 -+		__ret.field[1] = symbol;
120.1552 -+		__ret.field[2] = sign;
120.1553 -+		__ret.field[3] = none;
120.1554 -+	      }
120.1555 -+	  }
120.1556 -+	break;
120.1557 -+      default:
120.1558 -+	__ret = pattern();
120.1559 -+      }
120.1560 -+    return __ret;
120.1561 -+  }
120.1562 -+
120.1563 -+  template<> 
120.1564 -+    void
120.1565 -+    moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, 
120.1566 -+						     const char*)
120.1567 -+    {
120.1568 -+      if (!_M_data)
120.1569 -+	_M_data = new __moneypunct_cache<char, true>;
120.1570 -+
120.1571 -+      if (!__cloc)
120.1572 -+	{
120.1573 -+	  // "C" locale
120.1574 -+	  _M_data->_M_decimal_point = '.';
120.1575 -+	  _M_data->_M_thousands_sep = ',';
120.1576 -+	  _M_data->_M_grouping = "";
120.1577 -+	  _M_data->_M_grouping_size = 0;
120.1578 -+	  _M_data->_M_curr_symbol = "";
120.1579 -+	  _M_data->_M_curr_symbol_size = 0;
120.1580 -+	  _M_data->_M_positive_sign = "";
120.1581 -+	  _M_data->_M_positive_sign_size = 0;
120.1582 -+	  _M_data->_M_negative_sign = "";
120.1583 -+	  _M_data->_M_negative_sign_size = 0;
120.1584 -+	  _M_data->_M_frac_digits = 0;
120.1585 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
120.1586 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
120.1587 -+
120.1588 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
120.1589 -+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
120.1590 -+	}
120.1591 -+      else
120.1592 -+	{
120.1593 -+	  // Named locale.
120.1594 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
120.1595 -+							__cloc));
120.1596 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
120.1597 -+							__cloc));
120.1598 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
120.1599 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
120.1600 -+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
120.1601 -+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
120.1602 -+
120.1603 -+	  char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
120.1604 -+	  if (!__nposn)
120.1605 -+	    _M_data->_M_negative_sign = "()";
120.1606 -+	  else
120.1607 -+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, 
120.1608 -+							__cloc);
120.1609 -+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
120.1610 -+
120.1611 -+	  // _Intl == true
120.1612 -+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
120.1613 -+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
120.1614 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
120.1615 -+						      __cloc));
120.1616 -+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
120.1617 -+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
120.1618 -+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
120.1619 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
120.1620 -+							__pposn);
120.1621 -+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
120.1622 -+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
120.1623 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
120.1624 -+							__nposn);
120.1625 -+	}
120.1626 -+    }
120.1627 -+
120.1628 -+  template<> 
120.1629 -+    void
120.1630 -+    moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, 
120.1631 -+						      const char*)
120.1632 -+    {
120.1633 -+      if (!_M_data)
120.1634 -+	_M_data = new __moneypunct_cache<char, false>;
120.1635 -+
120.1636 -+      if (!__cloc)
120.1637 -+	{
120.1638 -+	  // "C" locale
120.1639 -+	  _M_data->_M_decimal_point = '.';
120.1640 -+	  _M_data->_M_thousands_sep = ',';
120.1641 -+	  _M_data->_M_grouping = "";
120.1642 -+	  _M_data->_M_grouping_size = 0;
120.1643 -+	  _M_data->_M_curr_symbol = "";
120.1644 -+	  _M_data->_M_curr_symbol_size = 0;
120.1645 -+	  _M_data->_M_positive_sign = "";
120.1646 -+	  _M_data->_M_positive_sign_size = 0;
120.1647 -+	  _M_data->_M_negative_sign = "";
120.1648 -+	  _M_data->_M_negative_sign_size = 0;
120.1649 -+	  _M_data->_M_frac_digits = 0;
120.1650 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
120.1651 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
120.1652 -+
120.1653 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
120.1654 -+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
120.1655 -+	}
120.1656 -+      else
120.1657 -+	{
120.1658 -+	  // Named locale.
120.1659 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
120.1660 -+							__cloc));
120.1661 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
120.1662 -+							__cloc));
120.1663 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
120.1664 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
120.1665 -+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
120.1666 -+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
120.1667 -+
120.1668 -+	  char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
120.1669 -+	  if (!__nposn)
120.1670 -+	    _M_data->_M_negative_sign = "()";
120.1671 -+	  else
120.1672 -+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
120.1673 -+							__cloc);
120.1674 -+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
120.1675 -+
120.1676 -+	  // _Intl == false
120.1677 -+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
120.1678 -+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
120.1679 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
120.1680 -+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
120.1681 -+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
120.1682 -+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
120.1683 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
120.1684 -+							__pposn);
120.1685 -+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
120.1686 -+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
120.1687 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
120.1688 -+							__nposn);
120.1689 -+	}
120.1690 -+    }
120.1691 -+
120.1692 -+  template<> 
120.1693 -+    moneypunct<char, true>::~moneypunct()
120.1694 -+    { delete _M_data; }
120.1695 -+
120.1696 -+  template<> 
120.1697 -+    moneypunct<char, false>::~moneypunct()
120.1698 -+    { delete _M_data; }
120.1699 -+
120.1700 -+#ifdef _GLIBCXX_USE_WCHAR_T
120.1701 -+  template<> 
120.1702 -+    void
120.1703 -+    moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, 
120.1704 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1705 -+							const char*)
120.1706 -+#else
120.1707 -+							const char* __name)
120.1708 -+#endif
120.1709 -+    {
120.1710 -+      if (!_M_data)
120.1711 -+	_M_data = new __moneypunct_cache<wchar_t, true>;
120.1712 -+
120.1713 -+      if (!__cloc)
120.1714 -+	{
120.1715 -+	  // "C" locale
120.1716 -+	  _M_data->_M_decimal_point = L'.';
120.1717 -+	  _M_data->_M_thousands_sep = L',';
120.1718 -+	  _M_data->_M_grouping = "";
120.1719 -+	  _M_data->_M_grouping_size = 0;
120.1720 -+	  _M_data->_M_curr_symbol = L"";
120.1721 -+	  _M_data->_M_curr_symbol_size = 0;
120.1722 -+	  _M_data->_M_positive_sign = L"";
120.1723 -+	  _M_data->_M_positive_sign_size = 0;
120.1724 -+	  _M_data->_M_negative_sign = L"";
120.1725 -+	  _M_data->_M_negative_sign_size = 0;
120.1726 -+	  _M_data->_M_frac_digits = 0;
120.1727 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
120.1728 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
120.1729 -+
120.1730 -+	  // Use ctype::widen code without the facet...
120.1731 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
120.1732 -+	    _M_data->_M_atoms[__i] =
120.1733 -+	      static_cast<wchar_t>(money_base::_S_atoms[__i]);
120.1734 -+	}
120.1735 -+      else
120.1736 -+	{
120.1737 -+	  // Named locale.
120.1738 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1739 -+	  __c_locale __old = __uselocale(__cloc);
120.1740 -+#else
120.1741 -+	  // Switch to named locale so that mbsrtowcs will work.
120.1742 -+	  char* __old = strdup(setlocale(LC_ALL, NULL));
120.1743 -+	  setlocale(LC_ALL, __name);
120.1744 -+#endif
120.1745 -+
120.1746 -+#ifdef __UCLIBC_MJN3_ONLY__
120.1747 -+#warning fix this... should be monetary
120.1748 -+#endif
120.1749 -+#ifdef __UCLIBC__
120.1750 -+# ifdef __UCLIBC_HAS_XLOCALE__
120.1751 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
120.1752 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
120.1753 -+# elif defined __UCLIBC_HAS_LOCALE__
120.1754 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
120.1755 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
120.1756 -+# endif
120.1757 -+#else
120.1758 -+	  union { char *__s; wchar_t __w; } __u;
120.1759 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
120.1760 -+	  _M_data->_M_decimal_point = __u.__w;
120.1761 -+
120.1762 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
120.1763 -+	  _M_data->_M_thousands_sep = __u.__w;
120.1764 -+#endif
120.1765 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
120.1766 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
120.1767 -+
120.1768 -+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
120.1769 -+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
120.1770 -+	  const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
120.1771 -+
120.1772 -+	  wchar_t* __wcs_ps = 0;
120.1773 -+	  wchar_t* __wcs_ns = 0;
120.1774 -+	  const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
120.1775 -+	  try
120.1776 -+	    {
120.1777 -+	      mbstate_t __state;
120.1778 -+	      size_t __len = strlen(__cpossign);
120.1779 -+	      if (__len)
120.1780 -+		{
120.1781 -+		  ++__len;
120.1782 -+		  memset(&__state, 0, sizeof(mbstate_t));
120.1783 -+		  __wcs_ps = new wchar_t[__len];
120.1784 -+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
120.1785 -+		  _M_data->_M_positive_sign = __wcs_ps;
120.1786 -+		}
120.1787 -+	      else
120.1788 -+		_M_data->_M_positive_sign = L"";
120.1789 -+	      _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
120.1790 -+	      
120.1791 -+	      __len = strlen(__cnegsign);
120.1792 -+	      if (!__nposn)
120.1793 -+		_M_data->_M_negative_sign = L"()";
120.1794 -+	      else if (__len)
120.1795 -+		{ 
120.1796 -+		  ++__len;
120.1797 -+		  memset(&__state, 0, sizeof(mbstate_t));
120.1798 -+		  __wcs_ns = new wchar_t[__len];
120.1799 -+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
120.1800 -+		  _M_data->_M_negative_sign = __wcs_ns;
120.1801 -+		}
120.1802 -+	      else
120.1803 -+		_M_data->_M_negative_sign = L"";
120.1804 -+	      _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
120.1805 -+	      
120.1806 -+	      // _Intl == true.
120.1807 -+	      __len = strlen(__ccurr);
120.1808 -+	      if (__len)
120.1809 -+		{
120.1810 -+		  ++__len;
120.1811 -+		  memset(&__state, 0, sizeof(mbstate_t));
120.1812 -+		  wchar_t* __wcs = new wchar_t[__len];
120.1813 -+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
120.1814 -+		  _M_data->_M_curr_symbol = __wcs;
120.1815 -+		}
120.1816 -+	      else
120.1817 -+		_M_data->_M_curr_symbol = L"";
120.1818 -+	      _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
120.1819 -+	    }
120.1820 -+	  catch (...)
120.1821 -+	    {
120.1822 -+	      delete _M_data;
120.1823 -+	      _M_data = 0;
120.1824 -+	      delete __wcs_ps;
120.1825 -+	      delete __wcs_ns;	      
120.1826 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1827 -+	      __uselocale(__old);
120.1828 -+#else
120.1829 -+	      setlocale(LC_ALL, __old);
120.1830 -+	      free(__old);
120.1831 -+#endif
120.1832 -+	      __throw_exception_again;
120.1833 -+	    } 
120.1834 -+	  
120.1835 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
120.1836 -+						      __cloc));
120.1837 -+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
120.1838 -+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
120.1839 -+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
120.1840 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
120.1841 -+							__pposn);
120.1842 -+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
120.1843 -+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
120.1844 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
120.1845 -+							__nposn);
120.1846 -+
120.1847 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1848 -+	  __uselocale(__old);
120.1849 -+#else
120.1850 -+	  setlocale(LC_ALL, __old);
120.1851 -+	  free(__old);
120.1852 -+#endif
120.1853 -+	}
120.1854 -+    }
120.1855 -+
120.1856 -+  template<> 
120.1857 -+  void
120.1858 -+  moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
120.1859 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1860 -+						       const char*)
120.1861 -+#else
120.1862 -+                                                       const char* __name)
120.1863 -+#endif
120.1864 -+  {
120.1865 -+    if (!_M_data)
120.1866 -+      _M_data = new __moneypunct_cache<wchar_t, false>;
120.1867 -+
120.1868 -+    if (!__cloc)
120.1869 -+	{
120.1870 -+	  // "C" locale
120.1871 -+	  _M_data->_M_decimal_point = L'.';
120.1872 -+	  _M_data->_M_thousands_sep = L',';
120.1873 -+	  _M_data->_M_grouping = "";
120.1874 -+          _M_data->_M_grouping_size = 0;
120.1875 -+	  _M_data->_M_curr_symbol = L"";
120.1876 -+	  _M_data->_M_curr_symbol_size = 0;
120.1877 -+	  _M_data->_M_positive_sign = L"";
120.1878 -+	  _M_data->_M_positive_sign_size = 0;
120.1879 -+	  _M_data->_M_negative_sign = L"";
120.1880 -+	  _M_data->_M_negative_sign_size = 0;
120.1881 -+	  _M_data->_M_frac_digits = 0;
120.1882 -+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
120.1883 -+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
120.1884 -+
120.1885 -+	  // Use ctype::widen code without the facet...
120.1886 -+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
120.1887 -+	    _M_data->_M_atoms[__i] =
120.1888 -+	      static_cast<wchar_t>(money_base::_S_atoms[__i]);
120.1889 -+	}
120.1890 -+      else
120.1891 -+	{
120.1892 -+	  // Named locale.
120.1893 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1894 -+	  __c_locale __old = __uselocale(__cloc);
120.1895 -+#else
120.1896 -+	  // Switch to named locale so that mbsrtowcs will work.
120.1897 -+	  char* __old = strdup(setlocale(LC_ALL, NULL));
120.1898 -+	  setlocale(LC_ALL, __name);
120.1899 -+#endif
120.1900 -+
120.1901 -+#ifdef __UCLIBC_MJN3_ONLY__
120.1902 -+#warning fix this... should be monetary
120.1903 -+#endif
120.1904 -+#ifdef __UCLIBC__
120.1905 -+# ifdef __UCLIBC_HAS_XLOCALE__
120.1906 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
120.1907 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
120.1908 -+# elif defined __UCLIBC_HAS_LOCALE__
120.1909 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
120.1910 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
120.1911 -+# endif
120.1912 -+#else
120.1913 -+          union { char *__s; wchar_t __w; } __u;
120.1914 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
120.1915 -+	  _M_data->_M_decimal_point = __u.__w;
120.1916 -+
120.1917 -+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
120.1918 -+	  _M_data->_M_thousands_sep = __u.__w;
120.1919 -+#endif
120.1920 -+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
120.1921 -+          _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
120.1922 -+
120.1923 -+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
120.1924 -+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
120.1925 -+	  const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
120.1926 -+
120.1927 -+	  wchar_t* __wcs_ps = 0;
120.1928 -+	  wchar_t* __wcs_ns = 0;
120.1929 -+	  const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
120.1930 -+	  try
120.1931 -+            {
120.1932 -+              mbstate_t __state;
120.1933 -+              size_t __len;
120.1934 -+              __len = strlen(__cpossign);
120.1935 -+              if (__len)
120.1936 -+                {
120.1937 -+		  ++__len;
120.1938 -+		  memset(&__state, 0, sizeof(mbstate_t));
120.1939 -+		  __wcs_ps = new wchar_t[__len];
120.1940 -+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
120.1941 -+		  _M_data->_M_positive_sign = __wcs_ps;
120.1942 -+		}
120.1943 -+	      else
120.1944 -+		_M_data->_M_positive_sign = L"";
120.1945 -+              _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
120.1946 -+	      
120.1947 -+	      __len = strlen(__cnegsign);
120.1948 -+	      if (!__nposn)
120.1949 -+		_M_data->_M_negative_sign = L"()";
120.1950 -+	      else if (__len)
120.1951 -+		{ 
120.1952 -+		  ++__len;
120.1953 -+		  memset(&__state, 0, sizeof(mbstate_t));
120.1954 -+		  __wcs_ns = new wchar_t[__len];
120.1955 -+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
120.1956 -+		  _M_data->_M_negative_sign = __wcs_ns;
120.1957 -+		}
120.1958 -+	      else
120.1959 -+		_M_data->_M_negative_sign = L"";
120.1960 -+              _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
120.1961 -+
120.1962 -+	      // _Intl == true.
120.1963 -+	      __len = strlen(__ccurr);
120.1964 -+	      if (__len)
120.1965 -+		{
120.1966 -+		  ++__len;
120.1967 -+		  memset(&__state, 0, sizeof(mbstate_t));
120.1968 -+		  wchar_t* __wcs = new wchar_t[__len];
120.1969 -+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
120.1970 -+		  _M_data->_M_curr_symbol = __wcs;
120.1971 -+		}
120.1972 -+	      else
120.1973 -+		_M_data->_M_curr_symbol = L"";
120.1974 -+              _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
120.1975 -+	    }
120.1976 -+          catch (...)
120.1977 -+	    {
120.1978 -+	      delete _M_data;
120.1979 -+              _M_data = 0;
120.1980 -+	      delete __wcs_ps;
120.1981 -+	      delete __wcs_ns;	      
120.1982 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.1983 -+	      __uselocale(__old);
120.1984 -+#else
120.1985 -+	      setlocale(LC_ALL, __old);
120.1986 -+	      free(__old);
120.1987 -+#endif
120.1988 -+              __throw_exception_again;
120.1989 -+	    }
120.1990 -+
120.1991 -+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
120.1992 -+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
120.1993 -+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
120.1994 -+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
120.1995 -+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
120.1996 -+	                                                __pposn);
120.1997 -+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
120.1998 -+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
120.1999 -+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
120.2000 -+	                                                __nposn);
120.2001 -+
120.2002 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.2003 -+	  __uselocale(__old);
120.2004 -+#else
120.2005 -+	  setlocale(LC_ALL, __old);
120.2006 -+	  free(__old);
120.2007 -+#endif
120.2008 -+	}
120.2009 -+    }
120.2010 -+
120.2011 -+  template<> 
120.2012 -+    moneypunct<wchar_t, true>::~moneypunct()
120.2013 -+    {
120.2014 -+      if (_M_data->_M_positive_sign_size)
120.2015 -+	delete [] _M_data->_M_positive_sign;
120.2016 -+      if (_M_data->_M_negative_sign_size
120.2017 -+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
120.2018 -+	delete [] _M_data->_M_negative_sign;
120.2019 -+      if (_M_data->_M_curr_symbol_size)
120.2020 -+	delete [] _M_data->_M_curr_symbol;
120.2021 -+      delete _M_data;
120.2022 -+    }
120.2023 -+
120.2024 -+  template<> 
120.2025 -+    moneypunct<wchar_t, false>::~moneypunct()
120.2026 -+    {
120.2027 -+      if (_M_data->_M_positive_sign_size)
120.2028 -+	delete [] _M_data->_M_positive_sign;
120.2029 -+      if (_M_data->_M_negative_sign_size
120.2030 -+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
120.2031 -+	delete [] _M_data->_M_negative_sign;
120.2032 -+      if (_M_data->_M_curr_symbol_size)
120.2033 -+	delete [] _M_data->_M_curr_symbol;
120.2034 -+      delete _M_data;
120.2035 -+    }
120.2036 -+#endif
120.2037 -+}
120.2038 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/numeric_members.cc
120.2039 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
120.2040 -@@ -0,0 +1,173 @@
120.2041 -+// std::numpunct implementation details, GNU version -*- C++ -*-
120.2042 -+
120.2043 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
120.2044 -+//
120.2045 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2046 -+// software; you can redistribute it and/or modify it under the
120.2047 -+// terms of the GNU General Public License as published by the
120.2048 -+// Free Software Foundation; either version 2, or (at your option)
120.2049 -+// any later version.
120.2050 -+
120.2051 -+// This library is distributed in the hope that it will be useful,
120.2052 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2053 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2054 -+// GNU General Public License for more details.
120.2055 -+
120.2056 -+// You should have received a copy of the GNU General Public License along
120.2057 -+// with this library; see the file COPYING.  If not, write to the Free
120.2058 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
120.2059 -+// USA.
120.2060 -+
120.2061 -+// As a special exception, you may use this file as part of a free software
120.2062 -+// library without restriction.  Specifically, if other files instantiate
120.2063 -+// templates or use macros or inline functions from this file, or you compile
120.2064 -+// this file and link it with other files to produce an executable, this
120.2065 -+// file does not by itself cause the resulting executable to be covered by
120.2066 -+// the GNU General Public License.  This exception does not however
120.2067 -+// invalidate any other reasons why the executable file might be covered by
120.2068 -+// the GNU General Public License.
120.2069 -+
120.2070 -+//
120.2071 -+// ISO C++ 14882: 22.2.3.1.2  numpunct virtual functions
120.2072 -+//
120.2073 -+
120.2074 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
120.2075 -+
120.2076 -+#define _LIBC
120.2077 -+#include <locale>
120.2078 -+#undef _LIBC
120.2079 -+#include <bits/c++locale_internal.h>
120.2080 -+
120.2081 -+#ifdef __UCLIBC_MJN3_ONLY__
120.2082 -+#warning tailor for stub locale support
120.2083 -+#endif
120.2084 -+#ifndef __UCLIBC_HAS_XLOCALE__
120.2085 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
120.2086 -+#endif
120.2087 -+
120.2088 -+namespace std
120.2089 -+{
120.2090 -+  template<> 
120.2091 -+    void
120.2092 -+    numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
120.2093 -+    {
120.2094 -+      if (!_M_data)
120.2095 -+	_M_data = new __numpunct_cache<char>;
120.2096 -+
120.2097 -+      if (!__cloc)
120.2098 -+	{
120.2099 -+	  // "C" locale
120.2100 -+	  _M_data->_M_grouping = "";
120.2101 -+	  _M_data->_M_grouping_size = 0;
120.2102 -+	  _M_data->_M_use_grouping = false;
120.2103 -+
120.2104 -+	  _M_data->_M_decimal_point = '.';
120.2105 -+	  _M_data->_M_thousands_sep = ',';
120.2106 -+
120.2107 -+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
120.2108 -+	    _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
120.2109 -+
120.2110 -+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
120.2111 -+	    _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
120.2112 -+	}
120.2113 -+      else
120.2114 -+	{
120.2115 -+	  // Named locale.
120.2116 -+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, 
120.2117 -+							__cloc));
120.2118 -+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, 
120.2119 -+							__cloc));
120.2120 -+
120.2121 -+	  // Check for NULL, which implies no grouping.
120.2122 -+	  if (_M_data->_M_thousands_sep == '\0')
120.2123 -+	    _M_data->_M_grouping = "";
120.2124 -+	  else
120.2125 -+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
120.2126 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
120.2127 -+	}
120.2128 -+
120.2129 -+      // NB: There is no way to extact this info from posix locales.
120.2130 -+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
120.2131 -+      _M_data->_M_truename = "true";
120.2132 -+      _M_data->_M_truename_size = 4;
120.2133 -+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
120.2134 -+      _M_data->_M_falsename = "false";
120.2135 -+      _M_data->_M_falsename_size = 5;
120.2136 -+    }
120.2137 -+ 
120.2138 -+  template<> 
120.2139 -+    numpunct<char>::~numpunct()
120.2140 -+    { delete _M_data; }
120.2141 -+   
120.2142 -+#ifdef _GLIBCXX_USE_WCHAR_T
120.2143 -+  template<> 
120.2144 -+    void
120.2145 -+    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
120.2146 -+    {
120.2147 -+      if (!_M_data)
120.2148 -+	_M_data = new __numpunct_cache<wchar_t>;
120.2149 -+
120.2150 -+      if (!__cloc)
120.2151 -+	{
120.2152 -+	  // "C" locale
120.2153 -+	  _M_data->_M_grouping = "";
120.2154 -+	  _M_data->_M_grouping_size = 0;
120.2155 -+	  _M_data->_M_use_grouping = false;
120.2156 -+
120.2157 -+	  _M_data->_M_decimal_point = L'.';
120.2158 -+	  _M_data->_M_thousands_sep = L',';
120.2159 -+
120.2160 -+	  // Use ctype::widen code without the facet...
120.2161 -+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
120.2162 -+	    _M_data->_M_atoms_out[__i] =
120.2163 -+	      static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
120.2164 -+
120.2165 -+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
120.2166 -+	    _M_data->_M_atoms_in[__j] =
120.2167 -+	      static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
120.2168 -+	}
120.2169 -+      else
120.2170 -+	{
120.2171 -+	  // Named locale.
120.2172 -+	  // NB: In the GNU model wchar_t is always 32 bit wide.
120.2173 -+#ifdef __UCLIBC_MJN3_ONLY__
120.2174 -+#warning fix this
120.2175 -+#endif
120.2176 -+#ifdef __UCLIBC__
120.2177 -+# ifdef __UCLIBC_HAS_XLOCALE__
120.2178 -+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
120.2179 -+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
120.2180 -+# elif defined __UCLIBC_HAS_LOCALE__
120.2181 -+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
120.2182 -+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
120.2183 -+# endif
120.2184 -+#else
120.2185 -+	  union { char *__s; wchar_t __w; } __u;
120.2186 -+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
120.2187 -+	  _M_data->_M_decimal_point = __u.__w;
120.2188 -+
120.2189 -+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
120.2190 -+	  _M_data->_M_thousands_sep = __u.__w;
120.2191 -+#endif
120.2192 -+
120.2193 -+	  if (_M_data->_M_thousands_sep == L'\0')
120.2194 -+	    _M_data->_M_grouping = "";
120.2195 -+	  else
120.2196 -+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
120.2197 -+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
120.2198 -+	}
120.2199 -+
120.2200 -+      // NB: There is no way to extact this info from posix locales.
120.2201 -+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
120.2202 -+      _M_data->_M_truename = L"true";
120.2203 -+      _M_data->_M_truename_size = 4;
120.2204 -+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
120.2205 -+      _M_data->_M_falsename = L"false";
120.2206 -+      _M_data->_M_falsename_size = 5;
120.2207 -+    }
120.2208 -+
120.2209 -+  template<> 
120.2210 -+    numpunct<wchar_t>::~numpunct()
120.2211 -+    { delete _M_data; }
120.2212 -+ #endif
120.2213 -+}
120.2214 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/time_members.cc
120.2215 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/time_members.cc
120.2216 -@@ -0,0 +1,406 @@
120.2217 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
120.2218 -+
120.2219 -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
120.2220 -+//
120.2221 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2222 -+// software; you can redistribute it and/or modify it under the
120.2223 -+// terms of the GNU General Public License as published by the
120.2224 -+// Free Software Foundation; either version 2, or (at your option)
120.2225 -+// any later version.
120.2226 -+
120.2227 -+// This library is distributed in the hope that it will be useful,
120.2228 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2229 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2230 -+// GNU General Public License for more details.
120.2231 -+
120.2232 -+// You should have received a copy of the GNU General Public License along
120.2233 -+// with this library; see the file COPYING.  If not, write to the Free
120.2234 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
120.2235 -+// USA.
120.2236 -+
120.2237 -+// As a special exception, you may use this file as part of a free software
120.2238 -+// library without restriction.  Specifically, if other files instantiate
120.2239 -+// templates or use macros or inline functions from this file, or you compile
120.2240 -+// this file and link it with other files to produce an executable, this
120.2241 -+// file does not by itself cause the resulting executable to be covered by
120.2242 -+// the GNU General Public License.  This exception does not however
120.2243 -+// invalidate any other reasons why the executable file might be covered by
120.2244 -+// the GNU General Public License.
120.2245 -+
120.2246 -+//
120.2247 -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
120.2248 -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
120.2249 -+//
120.2250 -+
120.2251 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
120.2252 -+
120.2253 -+#include <locale>
120.2254 -+#include <bits/c++locale_internal.h>
120.2255 -+
120.2256 -+#ifdef __UCLIBC_MJN3_ONLY__
120.2257 -+#warning tailor for stub locale support
120.2258 -+#endif
120.2259 -+#ifndef __UCLIBC_HAS_XLOCALE__
120.2260 -+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
120.2261 -+#endif
120.2262 -+
120.2263 -+namespace std
120.2264 -+{
120.2265 -+  template<>
120.2266 -+    void
120.2267 -+    __timepunct<char>::
120.2268 -+    _M_put(char* __s, size_t __maxlen, const char* __format, 
120.2269 -+	   const tm* __tm) const
120.2270 -+    {
120.2271 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.2272 -+      const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
120.2273 -+					_M_c_locale_timepunct);
120.2274 -+#else
120.2275 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
120.2276 -+      setlocale(LC_ALL, _M_name_timepunct);
120.2277 -+      const size_t __len = strftime(__s, __maxlen, __format, __tm);
120.2278 -+      setlocale(LC_ALL, __old);
120.2279 -+      free(__old);
120.2280 -+#endif
120.2281 -+      // Make sure __s is null terminated.
120.2282 -+      if (__len == 0)
120.2283 -+	__s[0] = '\0';
120.2284 -+    }
120.2285 -+
120.2286 -+  template<> 
120.2287 -+    void
120.2288 -+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
120.2289 -+    {
120.2290 -+      if (!_M_data)
120.2291 -+	_M_data = new __timepunct_cache<char>;
120.2292 -+
120.2293 -+      if (!__cloc)
120.2294 -+	{
120.2295 -+	  // "C" locale
120.2296 -+	  _M_c_locale_timepunct = _S_get_c_locale();
120.2297 -+
120.2298 -+	  _M_data->_M_date_format = "%m/%d/%y";
120.2299 -+	  _M_data->_M_date_era_format = "%m/%d/%y";
120.2300 -+	  _M_data->_M_time_format = "%H:%M:%S";
120.2301 -+	  _M_data->_M_time_era_format = "%H:%M:%S";
120.2302 -+	  _M_data->_M_date_time_format = "";
120.2303 -+	  _M_data->_M_date_time_era_format = "";
120.2304 -+	  _M_data->_M_am = "AM";
120.2305 -+	  _M_data->_M_pm = "PM";
120.2306 -+	  _M_data->_M_am_pm_format = "";
120.2307 -+
120.2308 -+	  // Day names, starting with "C"'s Sunday.
120.2309 -+	  _M_data->_M_day1 = "Sunday";
120.2310 -+	  _M_data->_M_day2 = "Monday";
120.2311 -+	  _M_data->_M_day3 = "Tuesday";
120.2312 -+	  _M_data->_M_day4 = "Wednesday";
120.2313 -+	  _M_data->_M_day5 = "Thursday";
120.2314 -+	  _M_data->_M_day6 = "Friday";
120.2315 -+	  _M_data->_M_day7 = "Saturday";
120.2316 -+
120.2317 -+	  // Abbreviated day names, starting with "C"'s Sun.
120.2318 -+	  _M_data->_M_aday1 = "Sun";
120.2319 -+	  _M_data->_M_aday2 = "Mon";
120.2320 -+	  _M_data->_M_aday3 = "Tue";
120.2321 -+	  _M_data->_M_aday4 = "Wed";
120.2322 -+	  _M_data->_M_aday5 = "Thu";
120.2323 -+	  _M_data->_M_aday6 = "Fri";
120.2324 -+	  _M_data->_M_aday7 = "Sat";
120.2325 -+
120.2326 -+	  // Month names, starting with "C"'s January.
120.2327 -+	  _M_data->_M_month01 = "January";
120.2328 -+	  _M_data->_M_month02 = "February";
120.2329 -+	  _M_data->_M_month03 = "March";
120.2330 -+	  _M_data->_M_month04 = "April";
120.2331 -+	  _M_data->_M_month05 = "May";
120.2332 -+	  _M_data->_M_month06 = "June";
120.2333 -+	  _M_data->_M_month07 = "July";
120.2334 -+	  _M_data->_M_month08 = "August";
120.2335 -+	  _M_data->_M_month09 = "September";
120.2336 -+	  _M_data->_M_month10 = "October";
120.2337 -+	  _M_data->_M_month11 = "November";
120.2338 -+	  _M_data->_M_month12 = "December";
120.2339 -+
120.2340 -+	  // Abbreviated month names, starting with "C"'s Jan.
120.2341 -+	  _M_data->_M_amonth01 = "Jan";
120.2342 -+	  _M_data->_M_amonth02 = "Feb";
120.2343 -+	  _M_data->_M_amonth03 = "Mar";
120.2344 -+	  _M_data->_M_amonth04 = "Apr";
120.2345 -+	  _M_data->_M_amonth05 = "May";
120.2346 -+	  _M_data->_M_amonth06 = "Jun";
120.2347 -+	  _M_data->_M_amonth07 = "Jul";
120.2348 -+	  _M_data->_M_amonth08 = "Aug";
120.2349 -+	  _M_data->_M_amonth09 = "Sep";
120.2350 -+	  _M_data->_M_amonth10 = "Oct";
120.2351 -+	  _M_data->_M_amonth11 = "Nov";
120.2352 -+	  _M_data->_M_amonth12 = "Dec";
120.2353 -+	}
120.2354 -+      else
120.2355 -+	{
120.2356 -+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
120.2357 -+
120.2358 -+	  _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
120.2359 -+	  _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
120.2360 -+	  _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
120.2361 -+	  _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
120.2362 -+	  _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
120.2363 -+	  _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
120.2364 -+							     __cloc);
120.2365 -+	  _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
120.2366 -+	  _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
120.2367 -+	  _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
120.2368 -+
120.2369 -+	  // Day names, starting with "C"'s Sunday.
120.2370 -+	  _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
120.2371 -+	  _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
120.2372 -+	  _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
120.2373 -+	  _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
120.2374 -+	  _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
120.2375 -+	  _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
120.2376 -+	  _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
120.2377 -+
120.2378 -+	  // Abbreviated day names, starting with "C"'s Sun.
120.2379 -+	  _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
120.2380 -+	  _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
120.2381 -+	  _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
120.2382 -+	  _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
120.2383 -+	  _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
120.2384 -+	  _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
120.2385 -+	  _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
120.2386 -+
120.2387 -+	  // Month names, starting with "C"'s January.
120.2388 -+	  _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
120.2389 -+	  _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
120.2390 -+	  _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
120.2391 -+	  _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
120.2392 -+	  _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
120.2393 -+	  _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
120.2394 -+	  _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
120.2395 -+	  _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
120.2396 -+	  _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
120.2397 -+	  _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
120.2398 -+	  _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
120.2399 -+	  _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
120.2400 -+
120.2401 -+	  // Abbreviated month names, starting with "C"'s Jan.
120.2402 -+	  _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
120.2403 -+	  _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
120.2404 -+	  _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
120.2405 -+	  _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
120.2406 -+	  _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
120.2407 -+	  _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
120.2408 -+	  _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
120.2409 -+	  _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
120.2410 -+	  _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
120.2411 -+	  _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
120.2412 -+	  _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
120.2413 -+	  _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
120.2414 -+	}
120.2415 -+    }
120.2416 -+
120.2417 -+#ifdef _GLIBCXX_USE_WCHAR_T
120.2418 -+  template<>
120.2419 -+    void
120.2420 -+    __timepunct<wchar_t>::
120.2421 -+    _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 
120.2422 -+	   const tm* __tm) const
120.2423 -+    {
120.2424 -+#ifdef __UCLIBC_HAS_XLOCALE__
120.2425 -+      __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
120.2426 -+      const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
120.2427 -+					_M_c_locale_timepunct);
120.2428 -+#else
120.2429 -+      char* __old = strdup(setlocale(LC_ALL, NULL));
120.2430 -+      setlocale(LC_ALL, _M_name_timepunct);
120.2431 -+      const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
120.2432 -+      setlocale(LC_ALL, __old);
120.2433 -+      free(__old);
120.2434 -+#endif
120.2435 -+      // Make sure __s is null terminated.
120.2436 -+      if (__len == 0)
120.2437 -+	__s[0] = L'\0';
120.2438 -+    }
120.2439 -+
120.2440 -+  template<> 
120.2441 -+    void
120.2442 -+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
120.2443 -+    {
120.2444 -+      if (!_M_data)
120.2445 -+	_M_data = new __timepunct_cache<wchar_t>;
120.2446 -+
120.2447 -+#warning wide time stuff
120.2448 -+//       if (!__cloc)
120.2449 -+	{
120.2450 -+	  // "C" locale
120.2451 -+	  _M_c_locale_timepunct = _S_get_c_locale();
120.2452 -+
120.2453 -+	  _M_data->_M_date_format = L"%m/%d/%y";
120.2454 -+	  _M_data->_M_date_era_format = L"%m/%d/%y";
120.2455 -+	  _M_data->_M_time_format = L"%H:%M:%S";
120.2456 -+	  _M_data->_M_time_era_format = L"%H:%M:%S";
120.2457 -+	  _M_data->_M_date_time_format = L"";
120.2458 -+	  _M_data->_M_date_time_era_format = L"";
120.2459 -+	  _M_data->_M_am = L"AM";
120.2460 -+	  _M_data->_M_pm = L"PM";
120.2461 -+	  _M_data->_M_am_pm_format = L"";
120.2462 -+
120.2463 -+	  // Day names, starting with "C"'s Sunday.
120.2464 -+	  _M_data->_M_day1 = L"Sunday";
120.2465 -+	  _M_data->_M_day2 = L"Monday";
120.2466 -+	  _M_data->_M_day3 = L"Tuesday";
120.2467 -+	  _M_data->_M_day4 = L"Wednesday";
120.2468 -+	  _M_data->_M_day5 = L"Thursday";
120.2469 -+	  _M_data->_M_day6 = L"Friday";
120.2470 -+	  _M_data->_M_day7 = L"Saturday";
120.2471 -+
120.2472 -+	  // Abbreviated day names, starting with "C"'s Sun.
120.2473 -+	  _M_data->_M_aday1 = L"Sun";
120.2474 -+	  _M_data->_M_aday2 = L"Mon";
120.2475 -+	  _M_data->_M_aday3 = L"Tue";
120.2476 -+	  _M_data->_M_aday4 = L"Wed";
120.2477 -+	  _M_data->_M_aday5 = L"Thu";
120.2478 -+	  _M_data->_M_aday6 = L"Fri";
120.2479 -+	  _M_data->_M_aday7 = L"Sat";
120.2480 -+
120.2481 -+	  // Month names, starting with "C"'s January.
120.2482 -+	  _M_data->_M_month01 = L"January";
120.2483 -+	  _M_data->_M_month02 = L"February";
120.2484 -+	  _M_data->_M_month03 = L"March";
120.2485 -+	  _M_data->_M_month04 = L"April";
120.2486 -+	  _M_data->_M_month05 = L"May";
120.2487 -+	  _M_data->_M_month06 = L"June";
120.2488 -+	  _M_data->_M_month07 = L"July";
120.2489 -+	  _M_data->_M_month08 = L"August";
120.2490 -+	  _M_data->_M_month09 = L"September";
120.2491 -+	  _M_data->_M_month10 = L"October";
120.2492 -+	  _M_data->_M_month11 = L"November";
120.2493 -+	  _M_data->_M_month12 = L"December";
120.2494 -+
120.2495 -+	  // Abbreviated month names, starting with "C"'s Jan.
120.2496 -+	  _M_data->_M_amonth01 = L"Jan";
120.2497 -+	  _M_data->_M_amonth02 = L"Feb";
120.2498 -+	  _M_data->_M_amonth03 = L"Mar";
120.2499 -+	  _M_data->_M_amonth04 = L"Apr";
120.2500 -+	  _M_data->_M_amonth05 = L"May";
120.2501 -+	  _M_data->_M_amonth06 = L"Jun";
120.2502 -+	  _M_data->_M_amonth07 = L"Jul";
120.2503 -+	  _M_data->_M_amonth08 = L"Aug";
120.2504 -+	  _M_data->_M_amonth09 = L"Sep";
120.2505 -+	  _M_data->_M_amonth10 = L"Oct";
120.2506 -+	  _M_data->_M_amonth11 = L"Nov";
120.2507 -+	  _M_data->_M_amonth12 = L"Dec";
120.2508 -+	}
120.2509 -+#if 0
120.2510 -+      else
120.2511 -+	{
120.2512 -+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
120.2513 -+
120.2514 -+	  union { char *__s; wchar_t *__w; } __u;
120.2515 -+
120.2516 -+	  __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
120.2517 -+	  _M_data->_M_date_format = __u.__w;
120.2518 -+	  __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
120.2519 -+	  _M_data->_M_date_era_format = __u.__w;
120.2520 -+	  __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
120.2521 -+	  _M_data->_M_time_format = __u.__w;
120.2522 -+	  __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
120.2523 -+	  _M_data->_M_time_era_format = __u.__w;
120.2524 -+	  __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
120.2525 -+	  _M_data->_M_date_time_format = __u.__w;
120.2526 -+	  __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
120.2527 -+	  _M_data->_M_date_time_era_format = __u.__w;
120.2528 -+	  __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
120.2529 -+	  _M_data->_M_am = __u.__w;
120.2530 -+	  __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
120.2531 -+	  _M_data->_M_pm = __u.__w;
120.2532 -+	  __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
120.2533 -+	  _M_data->_M_am_pm_format = __u.__w;
120.2534 -+
120.2535 -+	  // Day names, starting with "C"'s Sunday.
120.2536 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
120.2537 -+	  _M_data->_M_day1 = __u.__w;
120.2538 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
120.2539 -+	  _M_data->_M_day2 = __u.__w;
120.2540 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
120.2541 -+	  _M_data->_M_day3 = __u.__w;
120.2542 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
120.2543 -+	  _M_data->_M_day4 = __u.__w;
120.2544 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
120.2545 -+	  _M_data->_M_day5 = __u.__w;
120.2546 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
120.2547 -+	  _M_data->_M_day6 = __u.__w;
120.2548 -+	  __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
120.2549 -+	  _M_data->_M_day7 = __u.__w;
120.2550 -+
120.2551 -+	  // Abbreviated day names, starting with "C"'s Sun.
120.2552 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
120.2553 -+	  _M_data->_M_aday1 = __u.__w;
120.2554 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
120.2555 -+	  _M_data->_M_aday2 = __u.__w;
120.2556 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
120.2557 -+	  _M_data->_M_aday3 = __u.__w;
120.2558 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
120.2559 -+	  _M_data->_M_aday4 = __u.__w;
120.2560 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
120.2561 -+	  _M_data->_M_aday5 = __u.__w;
120.2562 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
120.2563 -+	  _M_data->_M_aday6 = __u.__w;
120.2564 -+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
120.2565 -+	  _M_data->_M_aday7 = __u.__w;
120.2566 -+
120.2567 -+	  // Month names, starting with "C"'s January.
120.2568 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
120.2569 -+	  _M_data->_M_month01 = __u.__w;
120.2570 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
120.2571 -+	  _M_data->_M_month02 = __u.__w;
120.2572 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
120.2573 -+	  _M_data->_M_month03 = __u.__w;
120.2574 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
120.2575 -+	  _M_data->_M_month04 = __u.__w;
120.2576 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
120.2577 -+	  _M_data->_M_month05 = __u.__w;
120.2578 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
120.2579 -+	  _M_data->_M_month06 = __u.__w;
120.2580 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
120.2581 -+	  _M_data->_M_month07 = __u.__w;
120.2582 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
120.2583 -+	  _M_data->_M_month08 = __u.__w;
120.2584 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
120.2585 -+	  _M_data->_M_month09 = __u.__w;
120.2586 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
120.2587 -+	  _M_data->_M_month10 = __u.__w;
120.2588 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
120.2589 -+	  _M_data->_M_month11 = __u.__w;
120.2590 -+	  __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
120.2591 -+	  _M_data->_M_month12 = __u.__w;
120.2592 -+
120.2593 -+	  // Abbreviated month names, starting with "C"'s Jan.
120.2594 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
120.2595 -+	  _M_data->_M_amonth01 = __u.__w;
120.2596 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
120.2597 -+	  _M_data->_M_amonth02 = __u.__w;
120.2598 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
120.2599 -+	  _M_data->_M_amonth03 = __u.__w;
120.2600 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
120.2601 -+	  _M_data->_M_amonth04 = __u.__w;
120.2602 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
120.2603 -+	  _M_data->_M_amonth05 = __u.__w;
120.2604 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
120.2605 -+	  _M_data->_M_amonth06 = __u.__w;
120.2606 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
120.2607 -+	  _M_data->_M_amonth07 = __u.__w;
120.2608 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
120.2609 -+	  _M_data->_M_amonth08 = __u.__w;
120.2610 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
120.2611 -+	  _M_data->_M_amonth09 = __u.__w;
120.2612 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
120.2613 -+	  _M_data->_M_amonth10 = __u.__w;
120.2614 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
120.2615 -+	  _M_data->_M_amonth11 = __u.__w;
120.2616 -+	  __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
120.2617 -+	  _M_data->_M_amonth12 = __u.__w;
120.2618 -+	}
120.2619 -+#endif // 0
120.2620 -+    }
120.2621 -+#endif
120.2622 -+}
120.2623 ---- gcc-4.1.0-dist/libstdc++-v3/config/locale/uclibc/time_members.h
120.2624 -+++ gcc-4.1.0/libstdc++-v3/config/locale/uclibc/time_members.h
120.2625 -@@ -0,0 +1,76 @@
120.2626 -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
120.2627 -+
120.2628 -+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
120.2629 -+//
120.2630 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2631 -+// software; you can redistribute it and/or modify it under the
120.2632 -+// terms of the GNU General Public License as published by the
120.2633 -+// Free Software Foundation; either version 2, or (at your option)
120.2634 -+// any later version.
120.2635 -+
120.2636 -+// This library is distributed in the hope that it will be useful,
120.2637 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2638 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2639 -+// GNU General Public License for more details.
120.2640 -+
120.2641 -+// You should have received a copy of the GNU General Public License along
120.2642 -+// with this library; see the file COPYING.  If not, write to the Free
120.2643 -+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
120.2644 -+// USA.
120.2645 -+
120.2646 -+// As a special exception, you may use this file as part of a free software
120.2647 -+// library without restriction.  Specifically, if other files instantiate
120.2648 -+// templates or use macros or inline functions from this file, or you compile
120.2649 -+// this file and link it with other files to produce an executable, this
120.2650 -+// file does not by itself cause the resulting executable to be covered by
120.2651 -+// the GNU General Public License.  This exception does not however
120.2652 -+// invalidate any other reasons why the executable file might be covered by
120.2653 -+// the GNU General Public License.
120.2654 -+
120.2655 -+//
120.2656 -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
120.2657 -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
120.2658 -+//
120.2659 -+
120.2660 -+// Written by Benjamin Kosnik <bkoz@redhat.com>
120.2661 -+
120.2662 -+  template<typename _CharT>
120.2663 -+    __timepunct<_CharT>::__timepunct(size_t __refs) 
120.2664 -+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
120.2665 -+      _M_name_timepunct(_S_get_c_name())
120.2666 -+    { _M_initialize_timepunct(); }
120.2667 -+
120.2668 -+  template<typename _CharT>
120.2669 -+    __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 
120.2670 -+    : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), 
120.2671 -+      _M_name_timepunct(_S_get_c_name())
120.2672 -+    { _M_initialize_timepunct(); }
120.2673 -+
120.2674 -+  template<typename _CharT>
120.2675 -+    __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
120.2676 -+				     size_t __refs) 
120.2677 -+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
120.2678 -+      _M_name_timepunct(NULL)
120.2679 -+    { 
120.2680 -+      const size_t __len = std::strlen(__s) + 1;
120.2681 -+      char* __tmp = new char[__len];
120.2682 -+      std::memcpy(__tmp, __s, __len);
120.2683 -+      _M_name_timepunct = __tmp;
120.2684 -+
120.2685 -+      try
120.2686 -+	{ _M_initialize_timepunct(__cloc); }
120.2687 -+      catch(...)
120.2688 -+	{
120.2689 -+	  delete [] _M_name_timepunct;
120.2690 -+	  __throw_exception_again;
120.2691 -+	}
120.2692 -+    }
120.2693 -+
120.2694 -+  template<typename _CharT>
120.2695 -+    __timepunct<_CharT>::~__timepunct()
120.2696 -+    { 
120.2697 -+      if (_M_name_timepunct != _S_get_c_name())
120.2698 -+	delete [] _M_name_timepunct;
120.2699 -+      delete _M_data; 
120.2700 -+      _S_destroy_c_locale(_M_c_locale_timepunct); 
120.2701 -+    }
120.2702 ---- gcc-4.1.0-dist/libstdc++-v3/config/os/uclibc/ctype_base.h
120.2703 -+++ gcc-4.1.0/libstdc++-v3/config/os/uclibc/ctype_base.h
120.2704 -@@ -0,0 +1,64 @@
120.2705 -+// Locale support -*- C++ -*-
120.2706 -+
120.2707 -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004
120.2708 -+// Free Software Foundation, Inc.
120.2709 -+//
120.2710 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2711 -+// software; you can redistribute it and/or modify it under the
120.2712 -+// terms of the GNU General Public License as published by the
120.2713 -+// Free Software Foundation; either version 2, or (at your option)
120.2714 -+// any later version.
120.2715 -+
120.2716 -+// This library is distributed in the hope that it will be useful,
120.2717 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2718 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2719 -+// GNU General Public License for more details.
120.2720 -+
120.2721 -+// You should have received a copy of the GNU General Public License along
120.2722 -+// with this library; see the file COPYING.  If not, write to the Free
120.2723 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
120.2724 -+// USA.
120.2725 -+
120.2726 -+// As a special exception, you may use this file as part of a free software
120.2727 -+// library without restriction.  Specifically, if other files instantiate
120.2728 -+// templates or use macros or inline functions from this file, or you compile
120.2729 -+// this file and link it with other files to produce an executable, this
120.2730 -+// file does not by itself cause the resulting executable to be covered by
120.2731 -+// the GNU General Public License.  This exception does not however
120.2732 -+// invalidate any other reasons why the executable file might be covered by
120.2733 -+// the GNU General Public License.
120.2734 -+
120.2735 -+//
120.2736 -+// ISO C++ 14882: 22.1  Locales
120.2737 -+//
120.2738 -+  
120.2739 -+/** @file ctype_base.h
120.2740 -+ *  This is an internal header file, included by other library headers.
120.2741 -+ *  You should not attempt to use it directly.
120.2742 -+ */
120.2743 -+
120.2744 -+// Information as gleaned from /usr/include/ctype.h
120.2745 -+  
120.2746 -+  /// @brief  Base class for ctype.
120.2747 -+  struct ctype_base
120.2748 -+  {
120.2749 -+    // Note: In uClibc, the following two types depend on configuration.
120.2750 -+ 
120.2751 -+    // Non-standard typedefs.
120.2752 -+    typedef const __ctype_touplow_t* __to_type;
120.2753 -+
120.2754 -+    // NB: Offsets into ctype<char>::_M_table force a particular size
120.2755 -+    // on the mask type. Because of this, we don't use an enum.
120.2756 -+    typedef __ctype_mask_t	mask;   
120.2757 -+    static const mask upper    	= _ISupper;
120.2758 -+    static const mask lower 	= _ISlower;
120.2759 -+    static const mask alpha 	= _ISalpha;
120.2760 -+    static const mask digit 	= _ISdigit;
120.2761 -+    static const mask xdigit 	= _ISxdigit;
120.2762 -+    static const mask space 	= _ISspace;
120.2763 -+    static const mask print 	= _ISprint;
120.2764 -+    static const mask graph 	= _ISalpha | _ISdigit | _ISpunct;
120.2765 -+    static const mask cntrl 	= _IScntrl;
120.2766 -+    static const mask punct 	= _ISpunct;
120.2767 -+    static const mask alnum 	= _ISalpha | _ISdigit;
120.2768 -+  };
120.2769 ---- gcc-4.1.0-dist/libstdc++-v3/config/os/uclibc/ctype_inline.h
120.2770 -+++ gcc-4.1.0/libstdc++-v3/config/os/uclibc/ctype_inline.h
120.2771 -@@ -0,0 +1,69 @@
120.2772 -+// Locale support -*- C++ -*-
120.2773 -+
120.2774 -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
120.2775 -+//
120.2776 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2777 -+// software; you can redistribute it and/or modify it under the
120.2778 -+// terms of the GNU General Public License as published by the
120.2779 -+// Free Software Foundation; either version 2, or (at your option)
120.2780 -+// any later version.
120.2781 -+
120.2782 -+// This library is distributed in the hope that it will be useful,
120.2783 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2784 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2785 -+// GNU General Public License for more details.
120.2786 -+
120.2787 -+// You should have received a copy of the GNU General Public License along
120.2788 -+// with this library; see the file COPYING.  If not, write to the Free
120.2789 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
120.2790 -+// USA.
120.2791 -+
120.2792 -+// As a special exception, you may use this file as part of a free software
120.2793 -+// library without restriction.  Specifically, if other files instantiate
120.2794 -+// templates or use macros or inline functions from this file, or you compile
120.2795 -+// this file and link it with other files to produce an executable, this
120.2796 -+// file does not by itself cause the resulting executable to be covered by
120.2797 -+// the GNU General Public License.  This exception does not however
120.2798 -+// invalidate any other reasons why the executable file might be covered by
120.2799 -+// the GNU General Public License.
120.2800 -+
120.2801 -+//
120.2802 -+// ISO C++ 14882: 22.1  Locales
120.2803 -+//
120.2804 -+  
120.2805 -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
120.2806 -+// functions go in ctype.cc
120.2807 -+  
120.2808 -+  bool
120.2809 -+  ctype<char>::
120.2810 -+  is(mask __m, char __c) const
120.2811 -+  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
120.2812 -+
120.2813 -+  const char*
120.2814 -+  ctype<char>::
120.2815 -+  is(const char* __low, const char* __high, mask* __vec) const
120.2816 -+  {
120.2817 -+    while (__low < __high)
120.2818 -+      *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
120.2819 -+    return __high;
120.2820 -+  }
120.2821 -+
120.2822 -+  const char*
120.2823 -+  ctype<char>::
120.2824 -+  scan_is(mask __m, const char* __low, const char* __high) const
120.2825 -+  {
120.2826 -+    while (__low < __high 
120.2827 -+	   && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
120.2828 -+      ++__low;
120.2829 -+    return __low;
120.2830 -+  }
120.2831 -+
120.2832 -+  const char*
120.2833 -+  ctype<char>::
120.2834 -+  scan_not(mask __m, const char* __low, const char* __high) const
120.2835 -+  {
120.2836 -+    while (__low < __high 
120.2837 -+	   && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
120.2838 -+      ++__low;
120.2839 -+    return __low;
120.2840 -+  }
120.2841 ---- gcc-4.1.0-dist/libstdc++-v3/config/os/uclibc/ctype_noninline.h
120.2842 -+++ gcc-4.1.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h
120.2843 -@@ -0,0 +1,92 @@
120.2844 -+// Locale support -*- C++ -*-
120.2845 -+
120.2846 -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
120.2847 -+// Free Software Foundation, Inc.
120.2848 -+//
120.2849 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2850 -+// software; you can redistribute it and/or modify it under the
120.2851 -+// terms of the GNU General Public License as published by the
120.2852 -+// Free Software Foundation; either version 2, or (at your option)
120.2853 -+// any later version.
120.2854 -+
120.2855 -+// This library is distributed in the hope that it will be useful,
120.2856 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2857 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2858 -+// GNU General Public License for more details.
120.2859 -+
120.2860 -+// You should have received a copy of the GNU General Public License along
120.2861 -+// with this library; see the file COPYING.  If not, write to the Free
120.2862 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
120.2863 -+// USA.
120.2864 -+
120.2865 -+// As a special exception, you may use this file as part of a free software
120.2866 -+// library without restriction.  Specifically, if other files instantiate
120.2867 -+// templates or use macros or inline functions from this file, or you compile
120.2868 -+// this file and link it with other files to produce an executable, this
120.2869 -+// file does not by itself cause the resulting executable to be covered by
120.2870 -+// the GNU General Public License.  This exception does not however
120.2871 -+// invalidate any other reasons why the executable file might be covered by
120.2872 -+// the GNU General Public License.
120.2873 -+
120.2874 -+//
120.2875 -+// ISO C++ 14882: 22.1  Locales
120.2876 -+//
120.2877 -+  
120.2878 -+// Information as gleaned from /usr/include/ctype.h
120.2879 -+
120.2880 -+  const ctype_base::mask*
120.2881 -+  ctype<char>::classic_table() throw()
120.2882 -+  { return __C_ctype_b; }
120.2883 -+
120.2884 -+  ctype<char>::ctype(__c_locale, const mask* __table, bool __del, 
120.2885 -+		     size_t __refs) 
120.2886 -+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
120.2887 -+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
120.2888 -+  {
120.2889 -+    _M_toupper = __C_ctype_toupper;
120.2890 -+    _M_tolower = __C_ctype_tolower;
120.2891 -+    _M_table = __table ? __table : __C_ctype_b;
120.2892 -+    memset(_M_widen, 0, sizeof(_M_widen));
120.2893 -+    memset(_M_narrow, 0, sizeof(_M_narrow));
120.2894 -+  }
120.2895 -+
120.2896 -+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
120.2897 -+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
120.2898 -+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
120.2899 -+  {
120.2900 -+    _M_toupper = __C_ctype_toupper;
120.2901 -+    _M_tolower = __C_ctype_tolower;
120.2902 -+    _M_table = __table ? __table : __C_ctype_b;
120.2903 -+    memset(_M_widen, 0, sizeof(_M_widen));
120.2904 -+    memset(_M_narrow, 0, sizeof(_M_narrow));
120.2905 -+  }
120.2906 -+
120.2907 -+  char
120.2908 -+  ctype<char>::do_toupper(char __c) const
120.2909 -+  { return _M_toupper[static_cast<unsigned char>(__c)]; }
120.2910 -+
120.2911 -+  const char*
120.2912 -+  ctype<char>::do_toupper(char* __low, const char* __high) const
120.2913 -+  {
120.2914 -+    while (__low < __high)
120.2915 -+      {
120.2916 -+	*__low = _M_toupper[static_cast<unsigned char>(*__low)];
120.2917 -+	++__low;
120.2918 -+      }
120.2919 -+    return __high;
120.2920 -+  }
120.2921 -+
120.2922 -+  char
120.2923 -+  ctype<char>::do_tolower(char __c) const
120.2924 -+  { return _M_tolower[static_cast<unsigned char>(__c)]; }
120.2925 -+
120.2926 -+  const char* 
120.2927 -+  ctype<char>::do_tolower(char* __low, const char* __high) const
120.2928 -+  {
120.2929 -+    while (__low < __high)
120.2930 -+      {
120.2931 -+	*__low = _M_tolower[static_cast<unsigned char>(*__low)];
120.2932 -+	++__low;
120.2933 -+      }
120.2934 -+    return __high;
120.2935 -+  }
120.2936 ---- gcc-4.1.0-dist/libstdc++-v3/config/os/uclibc/os_defines.h
120.2937 -+++ gcc-4.1.0/libstdc++-v3/config/os/uclibc/os_defines.h
120.2938 -@@ -0,0 +1,44 @@
120.2939 -+// Specific definitions for GNU/Linux  -*- C++ -*-
120.2940 -+
120.2941 -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
120.2942 -+//
120.2943 -+// This file is part of the GNU ISO C++ Library.  This library is free
120.2944 -+// software; you can redistribute it and/or modify it under the
120.2945 -+// terms of the GNU General Public License as published by the
120.2946 -+// Free Software Foundation; either version 2, or (at your option)
120.2947 -+// any later version.
120.2948 -+
120.2949 -+// This library is distributed in the hope that it will be useful,
120.2950 -+// but WITHOUT ANY WARRANTY; without even the implied warranty of
120.2951 -+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
120.2952 -+// GNU General Public License for more details.
120.2953 -+
120.2954 -+// You should have received a copy of the GNU General Public License along
120.2955 -+// with this library; see the file COPYING.  If not, write to the Free
120.2956 -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
120.2957 -+// USA.
120.2958 -+
120.2959 -+// As a special exception, you may use this file as part of a free software
120.2960 -+// library without restriction.  Specifically, if other files instantiate
120.2961 -+// templates or use macros or inline functions from this file, or you compile
120.2962 -+// this file and link it with other files to produce an executable, this
120.2963 -+// file does not by itself cause the resulting executable to be covered by
120.2964 -+// the GNU General Public License.  This exception does not however
120.2965 -+// invalidate any other reasons why the executable file might be covered by
120.2966 -+// the GNU General Public License.
120.2967 -+
120.2968 -+#ifndef _GLIBCXX_OS_DEFINES
120.2969 -+#define _GLIBCXX_OS_DEFINES 1
120.2970 -+
120.2971 -+// System-specific #define, typedefs, corrections, etc, go here.  This
120.2972 -+// file will come before all others.
120.2973 -+
120.2974 -+// This keeps isanum, et al from being propagated as macros.
120.2975 -+#define __NO_CTYPE 1
120.2976 -+
120.2977 -+#include <features.h>
120.2978 -+
120.2979 -+// We must not see the optimized string functions GNU libc defines.
120.2980 -+#define __NO_STRING_INLINES
120.2981 -+
120.2982 -+#endif
120.2983 ---- gcc-4.1.0-dist/libstdc++-v3/configure
120.2984 -+++ gcc-4.1.0/libstdc++-v3/configure
120.2985 -@@ -4005,6 +4005,11 @@
120.2986 -   lt_cv_deplibs_check_method=pass_all
120.2987 -   ;;
120.2988 - 
120.2989 -+linux-uclibc*)
120.2990 -+  lt_cv_deplibs_check_method=pass_all
120.2991 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
120.2992 -+  ;;
120.2993 -+
120.2994 - netbsd* | knetbsd*-gnu)
120.2995 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
120.2996 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
120.2997 -@@ -5740,7 +5745,7 @@
120.2998 -   enableval="$enable_clocale"
120.2999 - 
120.3000 -       case "$enableval" in
120.3001 --       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
120.3002 -+       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
120.3003 -        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
120.3004 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
120.3005 -    { (exit 1); exit 1; }; } ;;
120.3006 -@@ -5765,6 +5770,9 @@
120.3007 -   # Default to "generic".
120.3008 -   if test $enable_clocale_flag = auto; then
120.3009 -     case ${target_os} in
120.3010 -+      linux-uclibc*)
120.3011 -+        enable_clocale_flag=uclibc
120.3012 -+	;;
120.3013 -       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
120.3014 -         cat >conftest.$ac_ext <<_ACEOF
120.3015 - /* confdefs.h.  */
120.3016 -@@ -5995,6 +6003,76 @@
120.3017 -       CTIME_CC=config/locale/generic/time_members.cc
120.3018 -       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
120.3019 -       ;;
120.3020 -+    uclibc)
120.3021 -+      echo "$as_me:$LINENO: result: uclibc" >&5
120.3022 -+echo "${ECHO_T}uclibc" >&6
120.3023 -+
120.3024 -+      # Declare intention to use gettext, and add support for specific
120.3025 -+      # languages.
120.3026 -+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
120.3027 -+      ALL_LINGUAS="de fr"
120.3028 -+
120.3029 -+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
120.3030 -+      # Extract the first word of "msgfmt", so it can be a program name with args.
120.3031 -+set dummy msgfmt; ac_word=$2
120.3032 -+echo "$as_me:$LINENO: checking for $ac_word" >&5
120.3033 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
120.3034 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
120.3035 -+  echo $ECHO_N "(cached) $ECHO_C" >&6
120.3036 -+else
120.3037 -+  if test -n "$check_msgfmt"; then
120.3038 -+  ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
120.3039 -+else
120.3040 -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
120.3041 -+for as_dir in $PATH
120.3042 -+do
120.3043 -+  IFS=$as_save_IFS
120.3044 -+  test -z "$as_dir" && as_dir=.
120.3045 -+  for ac_exec_ext in '' $ac_executable_extensions; do
120.3046 -+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
120.3047 -+    ac_cv_prog_check_msgfmt="yes"
120.3048 -+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
120.3049 -+    break 2
120.3050 -+  fi
120.3051 -+done
120.3052 -+done
120.3053 -+
120.3054 -+  test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
120.3055 -+fi
120.3056 -+fi
120.3057 -+check_msgfmt=$ac_cv_prog_check_msgfmt
120.3058 -+if test -n "$check_msgfmt"; then
120.3059 -+  echo "$as_me:$LINENO: result: $check_msgfmt" >&5
120.3060 -+echo "${ECHO_T}$check_msgfmt" >&6
120.3061 -+else
120.3062 -+  echo "$as_me:$LINENO: result: no" >&5
120.3063 -+echo "${ECHO_T}no" >&6
120.3064 -+fi
120.3065 -+
120.3066 -+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
120.3067 -+        USE_NLS=yes
120.3068 -+      fi
120.3069 -+      # Export the build objects.
120.3070 -+      for ling in $ALL_LINGUAS; do \
120.3071 -+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
120.3072 -+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
120.3073 -+      done
120.3074 -+
120.3075 -+
120.3076 -+
120.3077 -+      CLOCALE_H=config/locale/uclibc/c_locale.h
120.3078 -+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
120.3079 -+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
120.3080 -+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
120.3081 -+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
120.3082 -+      CMESSAGES_H=config/locale/uclibc/messages_members.h
120.3083 -+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
120.3084 -+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
120.3085 -+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
120.3086 -+      CTIME_H=config/locale/uclibc/time_members.h
120.3087 -+      CTIME_CC=config/locale/uclibc/time_members.cc
120.3088 -+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
120.3089 -+      ;;
120.3090 -   esac
120.3091 - 
120.3092 -   # This is where the testsuite looks for locale catalogs, using the
120.3093 ---- gcc-4.1.0-dist/libstdc++-v3/configure.host
120.3094 -+++ gcc-4.1.0/libstdc++-v3/configure.host
120.3095 -@@ -261,6 +261,12 @@
120.3096 -     ;;
120.3097 - esac
120.3098 - 
120.3099 -+# Override for uClibc since linux-uclibc gets mishandled above.
120.3100 -+case "${host_os}" in
120.3101 -+  *-uclibc*)
120.3102 -+    os_include_dir="os/uclibc"
120.3103 -+    ;;
120.3104 -+esac
120.3105 - 
120.3106 - # Set any OS-dependent and CPU-dependent bits.
120.3107 - # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
120.3108 ---- gcc-4.1.0-dist/libstdc++-v3/crossconfig.m4
120.3109 -+++ gcc-4.1.0/libstdc++-v3/crossconfig.m4
120.3110 -@@ -143,6 +143,99 @@
120.3111 - 	;;
120.3112 -     esac
120.3113 -     ;;
120.3114 -+  *-uclibc*)
120.3115 -+# Temporary hack until we implement the float versions of the libm funcs
120.3116 -+    AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
120.3117 -+      machine/endian.h machine/param.h sys/machine.h sys/types.h \
120.3118 -+      fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
120.3119 -+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
120.3120 -+    AC_SUBST(SECTION_FLAGS)
120.3121 -+    GLIBCXX_CHECK_LINKER_FEATURES
120.3122 -+    GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
120.3123 -+    GLIBCXX_CHECK_WCHAR_T_SUPPORT
120.3124 -+
120.3125 -+    # For LFS.
120.3126 -+    AC_DEFINE(HAVE_INT64_T)
120.3127 -+    case "$target" in
120.3128 -+      *-uclinux*)
120.3129 -+        # Don't enable LFS with uClinux
120.3130 -+        ;;
120.3131 -+      *)
120.3132 -+        AC_DEFINE(_GLIBCXX_USE_LFS)
120.3133 -+    esac
120.3134 -+
120.3135 -+    # For showmanyc_helper().
120.3136 -+    AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
120.3137 -+    GLIBCXX_CHECK_POLL
120.3138 -+    GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
120.3139 -+
120.3140 -+    # For xsputn_2().
120.3141 -+    AC_CHECK_HEADERS(sys/uio.h)
120.3142 -+    GLIBCXX_CHECK_WRITEV
120.3143 -+
120.3144 -+#     AC_DEFINE(HAVE_ACOSF)
120.3145 -+#     AC_DEFINE(HAVE_ASINF)
120.3146 -+#     AC_DEFINE(HAVE_ATANF)
120.3147 -+#     AC_DEFINE(HAVE_ATAN2F)
120.3148 -+    AC_DEFINE(HAVE_CEILF)
120.3149 -+    AC_DEFINE(HAVE_COPYSIGN)
120.3150 -+#     AC_DEFINE(HAVE_COPYSIGNF)
120.3151 -+#     AC_DEFINE(HAVE_COSF)
120.3152 -+#     AC_DEFINE(HAVE_COSHF)
120.3153 -+#     AC_DEFINE(HAVE_EXPF)
120.3154 -+#     AC_DEFINE(HAVE_FABSF)
120.3155 -+    AC_DEFINE(HAVE_FINITE)
120.3156 -+    AC_DEFINE(HAVE_FINITEF)
120.3157 -+    AC_DEFINE(HAVE_FLOORF)
120.3158 -+#     AC_DEFINE(HAVE_FMODF)
120.3159 -+#     AC_DEFINE(HAVE_FREXPF)
120.3160 -+    AC_DEFINE(HAVE_HYPOT)
120.3161 -+#     AC_DEFINE(HAVE_HYPOTF)
120.3162 -+    AC_DEFINE(HAVE_ISINF)
120.3163 -+    AC_DEFINE(HAVE_ISINFF)
120.3164 -+    AC_DEFINE(HAVE_ISNAN)
120.3165 -+    AC_DEFINE(HAVE_ISNANF)
120.3166 -+#     AC_DEFINE(HAVE_LOGF)
120.3167 -+#     AC_DEFINE(HAVE_LOG10F)
120.3168 -+#     AC_DEFINE(HAVE_MODFF)
120.3169 -+#     AC_DEFINE(HAVE_SINF)
120.3170 -+#     AC_DEFINE(HAVE_SINHF)
120.3171 -+#     AC_DEFINE(HAVE_SINCOS)
120.3172 -+#     AC_DEFINE(HAVE_SINCOSF)
120.3173 -+    AC_DEFINE(HAVE_SQRTF)
120.3174 -+#     AC_DEFINE(HAVE_TANF)
120.3175 -+#     AC_DEFINE(HAVE_TANHF)
120.3176 -+    if test x"long_double_math_on_this_cpu" = x"yes"; then
120.3177 -+      AC_MSG_ERROR([long_double_math_on_this_cpu is yes!])
120.3178 -+#       AC_DEFINE(HAVE_ACOSL)
120.3179 -+#       AC_DEFINE(HAVE_ASINL)
120.3180 -+#       AC_DEFINE(HAVE_ATANL)
120.3181 -+#       AC_DEFINE(HAVE_ATAN2L)
120.3182 -+#       AC_DEFINE(HAVE_CEILL)
120.3183 -+#       AC_DEFINE(HAVE_COPYSIGNL)
120.3184 -+#       AC_DEFINE(HAVE_COSL)
120.3185 -+#       AC_DEFINE(HAVE_COSHL)
120.3186 -+#       AC_DEFINE(HAVE_EXPL)
120.3187 -+#       AC_DEFINE(HAVE_FABSL)
120.3188 -+#       AC_DEFINE(HAVE_FINITEL)
120.3189 -+#       AC_DEFINE(HAVE_FLOORL)
120.3190 -+#       AC_DEFINE(HAVE_FMODL)
120.3191 -+#       AC_DEFINE(HAVE_FREXPL)
120.3192 -+#       AC_DEFINE(HAVE_HYPOTL)
120.3193 -+#       AC_DEFINE(HAVE_ISINFL)
120.3194 -+#       AC_DEFINE(HAVE_ISNANL)
120.3195 -+#       AC_DEFINE(HAVE_LOGL)
120.3196 -+#       AC_DEFINE(HAVE_LOG10L)
120.3197 -+#       AC_DEFINE(HAVE_MODFL)
120.3198 -+#       AC_DEFINE(HAVE_POWL)
120.3199 -+#       AC_DEFINE(HAVE_SINL)
120.3200 -+#       AC_DEFINE(HAVE_SINHL)
120.3201 -+#       AC_DEFINE(HAVE_SINCOSL)
120.3202 -+#       AC_DEFINE(HAVE_SQRTL)
120.3203 -+#       AC_DEFINE(HAVE_TANL)
120.3204 -+#       AC_DEFINE(HAVE_TANHL)
120.3205 -+    fi
120.3206 -+    ;;
120.3207 -   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
120.3208 -     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
120.3209 -       machine/endian.h machine/param.h sys/machine.h sys/types.h \
120.3210 -@@ -157,7 +250,7 @@
120.3211 -     AC_DEFINE(HAVE_INT64_T)
120.3212 -     case "$target" in
120.3213 -       *-uclinux*)
120.3214 --        # Don't enable LFS with uClibc
120.3215 -+        # Don't enable LFS with uClinux
120.3216 -         ;;
120.3217 -       *)
120.3218 -         AC_DEFINE(_GLIBCXX_USE_LFS)
120.3219 ---- gcc-4.1.0-dist/libstdc++-v3/include/c_compatibility/wchar.h
120.3220 -+++ gcc-4.1.0/libstdc++-v3/include/c_compatibility/wchar.h
120.3221 -@@ -101,7 +101,9 @@
120.3222 - using std::wmemcpy;
120.3223 - using std::wmemmove;
120.3224 - using std::wmemset;
120.3225 -+#if _GLIBCXX_HAVE_WCSFTIME
120.3226 - using std::wcsftime;
120.3227 -+#endif
120.3228 - 
120.3229 - #if _GLIBCXX_USE_C99
120.3230 - using std::wcstold;
120.3231 ---- gcc-4.1.0-dist/libstdc++-v3/include/c_std/std_cwchar.h
120.3232 -+++ gcc-4.1.0/libstdc++-v3/include/c_std/std_cwchar.h
120.3233 -@@ -180,7 +180,9 @@
120.3234 -   using ::wcscoll;
120.3235 -   using ::wcscpy;
120.3236 -   using ::wcscspn;
120.3237 -+#if _GLIBCXX_HAVE_WCSFTIME
120.3238 -   using ::wcsftime;
120.3239 -+#endif
120.3240 -   using ::wcslen;
120.3241 -   using ::wcsncat;
120.3242 -   using ::wcsncmp;
   121.1 --- a/patches/gcc/4.1.1/130-libstdc++-pic.patch	Wed Oct 28 12:03:38 2009 +0100
   121.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   121.3 @@ -1,50 +0,0 @@
   121.4 -# DP: Build and install libstdc++_pic.a library.
   121.5 -
   121.6 ---- gcc/libstdc++-v3/src/Makefile.am
   121.7 -+++ gcc/libstdc++-v3/src/Makefile.am
   121.8 -@@ -214,6 +214,12 @@
   121.9 - 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
  121.10 - 
  121.11 - 
  121.12 -+install-exec-local:
  121.13 -+ifeq ($(enable_shared),yes)
  121.14 -+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
  121.15 -+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
  121.16 -+endif
  121.17 -+
  121.18 - # Added bits to build debug library.
  121.19 - if GLIBCXX_BUILD_DEBUG
  121.20 - all-local: build_debug
  121.21 ---- gcc/libstdc++-v3/src/Makefile.in
  121.22 -+++ gcc/libstdc++-v3/src/Makefile.in
  121.23 -@@ -627,7 +627,7 @@
  121.24 - 
  121.25 - install-data-am: install-data-local
  121.26 - 
  121.27 --install-exec-am: install-toolexeclibLTLIBRARIES
  121.28 -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
  121.29 - 
  121.30 - install-info: install-info-am
  121.31 - 
  121.32 -@@ -660,6 +660,7 @@
  121.33 - 	distclean-libtool distclean-tags distdir dvi dvi-am html \
  121.34 - 	html-am info info-am install install-am install-data \
  121.35 - 	install-data-am install-data-local install-exec \
  121.36 -+	install-exec-local \
  121.37 - 	install-exec-am install-info install-info-am install-man \
  121.38 - 	install-strip install-toolexeclibLTLIBRARIES installcheck \
  121.39 - 	installcheck-am installdirs maintainer-clean \
  121.40 -@@ -743,6 +743,13 @@
  121.41 - install_debug:
  121.42 - 	(cd ${debugdir} && $(MAKE) \
  121.43 - 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
  121.44 -+
  121.45 -+install-exec-local:
  121.46 -+ifeq ($(enable_shared),yes)
  121.47 -+	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
  121.48 -+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
  121.49 -+endif
  121.50 -+
  121.51 - # Tell versions [3.59,3.63) of GNU make to not export all variables.
  121.52 - # Otherwise a system limit (for SysV at least) may be exceeded.
  121.53 - .NOEXPORT:
   122.1 --- a/patches/gcc/4.1.1/140-missing-execinfo_h.patch	Wed Oct 28 12:03:38 2009 +0100
   122.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   122.3 @@ -1,11 +0,0 @@
   122.4 ---- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500
   122.5 -+++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500
   122.6 -@@ -500,7 +500,7 @@
   122.7 - #ifdef __linux__
   122.8 - # include <features.h>
   122.9 - # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
  122.10 --     && !defined(__ia64__)
  122.11 -+     && !defined(__ia64__) && !defined(__UCLIBC__)
  122.12 - #   ifndef GC_HAVE_BUILTIN_BACKTRACE
  122.13 - #     define GC_HAVE_BUILTIN_BACKTRACE
  122.14 - #   endif
   123.1 --- a/patches/gcc/4.1.1/150-c99-snprintf.patch	Wed Oct 28 12:03:38 2009 +0100
   123.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   123.3 @@ -1,11 +0,0 @@
   123.4 ---- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig	2005-04-29 00:08:41.000000000 -0500
   123.5 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h	2005-04-29 00:08:45.000000000 -0500
   123.6 -@@ -142,7 +142,7 @@
   123.7 -   using ::vsprintf;
   123.8 - }
   123.9 - 
  123.10 --#if _GLIBCXX_USE_C99
  123.11 -+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
  123.12 - 
  123.13 - #undef snprintf
  123.14 - #undef vfscanf
   124.1 --- a/patches/gcc/4.1.1/160-c99-complex-ugly-hack.patch	Wed Oct 28 12:03:38 2009 +0100
   124.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   124.3 @@ -1,12 +0,0 @@
   124.4 ---- gcc-4.0.0/libstdc++-v3/configure-old	2005-04-30 22:04:48.061603912 -0500
   124.5 -+++ gcc-4.0.0/libstdc++-v3/configure	2005-04-30 22:06:13.678588152 -0500
   124.6 -@@ -7194,6 +7194,9 @@
   124.7 - cat >>conftest.$ac_ext <<_ACEOF
   124.8 - /* end confdefs.h.  */
   124.9 - #include <complex.h>
  124.10 -+#ifdef __UCLIBC__
  124.11 -+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
  124.12 -+#endif
  124.13 - int
  124.14 - main ()
  124.15 - {
   125.1 --- a/patches/gcc/4.1.1/170-index_macro.patch	Wed Oct 28 12:03:38 2009 +0100
   125.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   125.3 @@ -1,24 +0,0 @@
   125.4 ---- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps	2006-03-24 01:49:51 +0100
   125.5 -+++ gcc-4.1.0/libstdc++-v3/include/ext/rope	2006-03-24 01:49:37 +0100
   125.6 -@@ -59,6 +59,9 @@
   125.7 - #include <bits/allocator.h>
   125.8 - #include <ext/hash_fun.h>
   125.9 - 
  125.10 -+/* cope w/ index defined as macro, SuSv3 proposal */
  125.11 -+#undef index
  125.12 -+
  125.13 - # ifdef __GC
  125.14 - #   define __GC_CONST const
  125.15 - # else
  125.16 ---- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps	2006-03-24 01:50:04 +0100
  125.17 -+++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h	2006-03-24 01:50:28 +0100
  125.18 -@@ -53,6 +53,9 @@
  125.19 - #include <ext/memory> // For uninitialized_copy_n
  125.20 - #include <ext/numeric> // For power
  125.21 - 
  125.22 -+/* cope w/ index defined as macro, SuSv3 proposal */
  125.23 -+#undef index
  125.24 -+
  125.25 - namespace __gnu_cxx
  125.26 - {
  125.27 -   using std::size_t;
   126.1 --- a/patches/gcc/4.1.1/180-sh-pr24836.patch	Wed Oct 28 12:03:38 2009 +0100
   126.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   126.3 @@ -1,25 +0,0 @@
   126.4 -http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
   126.5 -http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836
   126.6 -
   126.7 ---- gcc/gcc/configure.ac	(revision 106699)
   126.8 -+++ gcc/gcc/configure.ac	(working copy)
   126.9 -@@ -2446,7 +2446,7 @@
  126.10 - 	tls_first_minor=14
  126.11 - 	tls_as_opt="-m64 -Aesame --fatal-warnings"
  126.12 - 	;;
  126.13 --  sh-*-* | sh[34]-*-*)
  126.14 -+  sh-*-* | sh[34]*-*-*)
  126.15 -     conftest_s='
  126.16 - 	.section ".tdata","awT",@progbits
  126.17 - foo:	.long	25
  126.18 ---- gcc/gcc/configure
  126.19 -+++ gcc/gcc/configure
  126.20 -@@ -14846,7 +14846,7 @@
  126.21 - 	tls_first_minor=14
  126.22 - 	tls_as_opt="-m64 -Aesame --fatal-warnings"
  126.23 - 	;;
  126.24 --  sh-*-* | sh[34]-*-*)
  126.25 -+  sh-*-* | sh[34]*-*-*)
  126.26 -     conftest_s='
  126.27 - 	.section ".tdata","awT",@progbits
  126.28 - foo:	.long	25
   127.1 --- a/patches/gcc/4.1.1/190-arm-bigendian.patch	Wed Oct 28 12:03:38 2009 +0100
   127.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   127.3 @@ -1,67 +0,0 @@
   127.4 -By Lennert Buytenhek <buytenh@wantstofly.org>
   127.5 -Adds support for arm*b-linux* big-endian ARM targets
   127.6 -
   127.7 -See http://gcc.gnu.org/PR16350
   127.8 -
   127.9 ---- gcc-4.1.0/gcc/config/arm/linux-elf.h
  127.10 -+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
  127.11 -@@ -28,19 +28,33 @@
  127.12 - #undef  TARGET_VERSION
  127.13 - #define TARGET_VERSION  fputs (" (ARM GNU/Linux with ELF)", stderr);
  127.14 - 
  127.15 -+/*
  127.16 -+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
  127.17 -+ * (big endian) configurations.
  127.18 -+ */
  127.19 -+#if TARGET_BIG_ENDIAN_DEFAULT
  127.20 -+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
  127.21 -+#define TARGET_ENDIAN_OPTION "mbig-endian"
  127.22 -+#define TARGET_LINKER_EMULATION "armelfb_linux"
  127.23 -+#else
  127.24 -+#define TARGET_ENDIAN_DEFAULT 0
  127.25 -+#define TARGET_ENDIAN_OPTION "mlittle-endian"
  127.26 -+#define TARGET_LINKER_EMULATION "armelf_linux"
  127.27 -+#endif
  127.28 -+
  127.29 - #undef  TARGET_DEFAULT_FLOAT_ABI
  127.30 - #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
  127.31 - 
  127.32 - #undef  TARGET_DEFAULT
  127.33 --#define TARGET_DEFAULT (0)
  127.34 -+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
  127.35 - 
  127.36 - #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
  127.37 - 
  127.38 --#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
  127.39 -+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
  127.40 - 
  127.41 - #undef  MULTILIB_DEFAULTS
  127.42 - #define MULTILIB_DEFAULTS \
  127.43 --	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
  127.44 -+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
  127.45 - 
  127.46 - /* Now we define the strings used to build the spec file.  */
  127.47 - #undef  LIB_SPEC
  127.48 -@@ -61,7 +75,7 @@
  127.49 -    %{rdynamic:-export-dynamic} \
  127.50 -    %{!dynamic-linker:-dynamic-linker " LINUX_TARGET_INTERPRETER "} \
  127.51 -    -X \
  127.52 --   %{mbig-endian:-EB}" \
  127.53 -+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
  127.54 -    SUBTARGET_EXTRA_LINK_SPEC
  127.55 - 
  127.56 - #undef  LINK_SPEC
  127.57 ---- gcc-4.1.0/gcc/config.gcc
  127.58 -+++ gcc-4.1.0/gcc/config.gcc
  127.59 -@@ -672,6 +672,11 @@
  127.60 - 	;;
  127.61 - arm*-*-linux*)			# ARM GNU/Linux with ELF
  127.62 - 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
  127.63 -+	case $target in
  127.64 -+	arm*b-*)
  127.65 -+		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
  127.66 -+		;;
  127.67 -+	esac
  127.68 - 	tmake_file="${tmake_file} t-linux arm/t-arm"
  127.69 - 	case ${target} in
  127.70 - 	arm*-*-linux-gnueabi)
   128.1 --- a/patches/gcc/4.1.1/200-softfloat-fix.patch	Wed Oct 28 12:03:38 2009 +0100
   128.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   128.3 @@ -1,58 +0,0 @@
   128.4 -This patch (C) 2007 Yann E. MORIN
   128.5 -Licensed under GPL v2.
   128.6 -
   128.7 -First hunk of this patch solves compiling uClibc-0.9.28{,.1} :
   128.8 -
   128.9 -make[1]: Entering directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
  128.10 -  LD libuClibc-0.9.29.so
  128.11 -libc/libc_so.a(difftime.os): In function `difftime':
  128.12 -difftime.c:(.text+0x8): undefined reference to `__floatsidf'
  128.13 -difftime.c:(.text+0x2c): undefined reference to `__subdf3'
  128.14 -libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
  128.15 -_fpmaxtostr.c:(.text+0xd4): undefined reference to `__nedf2'
  128.16 -_fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
  128.17 -_fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
  128.18 -_fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
  128.19 -_fpmaxtostr.c:(.text+0x1c4): undefined reference to `__muldf3'
  128.20 -_fpmaxtostr.c:(.text+0x388): undefined reference to `__gedf2'
  128.21 -_fpmaxtostr.c:(.text+0x430): undefined reference to `__adddf3'
  128.22 -libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
  128.23 -__psfs_do_numeric.c:(.text+0x520): undefined reference to `__truncdfsf2'
  128.24 -libc/libc_so.a(strtof.os): In function `strtof':
  128.25 -strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
  128.26 -/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/cc_core_prefix/lib/gcc/arm-linux-uclibc/4.1.1/libgcc.a(_fixunsdfsi.o):
  128.27 -In function `__fixunsdfsi':
  128.28 -libgcc2.c:(.text+0x34): undefined reference to `__fixdfsi'
  128.29 -make[2]: *** [lib/libc.so] Error 1
  128.30 -make[1]: *** [lib/libc.so.0] Error 2
  128.31 -make[1]: Leaving directory `/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc'
  128.32 -make: *** [/home/ymorin/x-tools/build/armeb-unknown-linux-uclibc/gcc-4.1.1-uClibc-0.9.28.1/build-libc/lib/libc.a]
  128.33 -Error 2
  128.34 -
  128.35 -The second hunk fixes building final gcc because soft-float implies using -lfloat (which we don't have).
  128.36 -
  128.37 -
  128.38 -diff -dur gcc-4.1.1.no-softfloat-fix/gcc/config.gcc gcc-4.1.1/gcc/config.gcc
  128.39 ---- gcc-4.1.1.no-softfloat-fix/gcc/config.gcc	2007-02-01 21:57:17.000000000 +0100
  128.40 -+++ gcc-4.1.1/gcc/config.gcc	2007-02-01 22:11:06.000000000 +0100
  128.41 -@@ -690,7 +690,7 @@
  128.42 - 	    default_use_cxa_atexit=yes
  128.43 - 	    ;;
  128.44 - 	*)
  128.45 --	    tmake_file="$tmake_file arm/t-linux"
  128.46 -+	    tmake_file="$tmake_file arm/t-linux arm/t-arm-elf"
  128.47 - 	    ;;
  128.48 - 	esac
  128.49 - 	tm_file="$tm_file arm/aout.h arm/arm.h"
  128.50 -diff -dur gcc-4.1.1.-lfloat/gcc/config/arm/linux-elf.h gcc-4.1.1/gcc/config/arm/linux-elf.h
  128.51 ---- gcc-4.1.1.-lfloat/gcc/config/arm/linux-elf.h	2007-02-01 21:57:17.000000000 +0100
  128.52 -+++ gcc-4.1.1/gcc/config/arm/linux-elf.h	2007-02-01 23:00:42.000000000 +0100
  128.53 -@@ -63,7 +63,7 @@
  128.54 -    %{shared:-lc} \
  128.55 -    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
  128.56 - 
  128.57 --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
  128.58 -+#define LIBGCC_SPEC "-lgcc"
  128.59 - 
  128.60 - #ifdef USE_UCLIBC
  128.61 - #define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
   129.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   129.2 +++ b/patches/gcc/4.4.2/100-alpha-mieee-default.patch	Thu Oct 29 00:10:06 2009 +0100
   129.3 @@ -0,0 +1,24 @@
   129.4 +diff -durN gcc-4.4.0.orig/gcc/config/alpha/alpha.h gcc-4.4.0/gcc/config/alpha/alpha.h
   129.5 +--- gcc-4.4.0.orig/gcc/config/alpha/alpha.h	2009-02-20 16:20:38.000000000 +0100
   129.6 ++++ gcc-4.4.0/gcc/config/alpha/alpha.h	2009-05-27 21:37:58.000000000 +0200
   129.7 +@@ -95,6 +95,8 @@
   129.8 +   while (0)
   129.9 + #endif
  129.10 + 
  129.11 ++#define CPP_SPEC "%{!no-ieee:-mieee}"
  129.12 ++
  129.13 + #define WORD_SWITCH_TAKES_ARG(STR)		\
  129.14 +  (!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR))
  129.15 + 
  129.16 +diff -durN gcc-4.4.0.orig/gcc/config/alpha/alpha.opt gcc-4.4.0/gcc/config/alpha/alpha.opt
  129.17 +--- gcc-4.4.0.orig/gcc/config/alpha/alpha.opt	2007-08-02 12:49:31.000000000 +0200
  129.18 ++++ gcc-4.4.0/gcc/config/alpha/alpha.opt	2009-05-27 21:37:58.000000000 +0200
  129.19 +@@ -39,7 +39,7 @@
  129.20 + Request IEEE-conformant math library routines (OSF/1)
  129.21 + 
  129.22 + mieee
  129.23 +-Target Report RejectNegative Mask(IEEE)
  129.24 ++Target Report Mask(IEEE)
  129.25 + Emit IEEE-conformant code, without inexact exceptions
  129.26 + 
  129.27 + mieee-with-inexact
   130.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   130.2 +++ b/patches/gcc/4.4.2/110-trampolinewarn.patch	Thu Oct 29 00:10:06 2009 +0100
   130.3 @@ -0,0 +1,27 @@
   130.4 +diff -durN gcc-4.4.0.orig/gcc/builtins.c gcc-4.4.0/gcc/builtins.c
   130.5 +--- gcc-4.4.0.orig/gcc/builtins.c	2009-03-30 19:42:27.000000000 +0200
   130.6 ++++ gcc-4.4.0/gcc/builtins.c	2009-05-27 21:38:01.000000000 +0200
   130.7 +@@ -5768,6 +5768,9 @@
   130.8 +   trampolines_created = 1;
   130.9 +   INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
  130.10 + 
  130.11 ++  if (warn_trampolines)
  130.12 ++    warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
  130.13 ++
  130.14 +   return const0_rtx;
  130.15 + }
  130.16 + 
  130.17 +diff -durN gcc-4.4.0.orig/gcc/common.opt gcc-4.4.0/gcc/common.opt
  130.18 +--- gcc-4.4.0.orig/gcc/common.opt	2009-03-28 18:28:45.000000000 +0100
  130.19 ++++ gcc-4.4.0/gcc/common.opt	2009-05-27 21:38:01.000000000 +0200
  130.20 +@@ -197,6 +197,10 @@
  130.21 + Common Var(warn_type_limits) Init(-1) Warning
  130.22 + Warn if a comparison is always true or always false due to the limited range of the data type
  130.23 + 
  130.24 ++Wtrampolines
  130.25 ++Common Var(warn_trampolines) Init(1)
  130.26 ++Warn whenever a trampoline is generated
  130.27 ++
  130.28 + Wuninitialized
  130.29 + Common Var(warn_uninitialized) Warning
  130.30 + Warn about uninitialized automatic variables
   131.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   131.2 +++ b/patches/gcc/4.4.2/120-java-nomulti.patch	Thu Oct 29 00:10:06 2009 +0100
   131.3 @@ -0,0 +1,46 @@
   131.4 +diff -durN gcc-4.4.0.orig/libjava/configure gcc-4.4.0/libjava/configure
   131.5 +--- gcc-4.4.0.orig/libjava/configure	2009-04-21 11:08:08.000000000 +0200
   131.6 ++++ gcc-4.4.0/libjava/configure	2009-05-27 21:38:03.000000000 +0200
   131.7 +@@ -1021,6 +1021,8 @@
   131.8 +                           default=yes
   131.9 +   --enable-java-maintainer-mode
  131.10 +                           allow rebuilding of .class and .h files
  131.11 ++  --enable-libjava-multilib
  131.12 ++                          build libjava as multilib
  131.13 +   --disable-dependency-tracking  speeds up one-time build
  131.14 +   --enable-dependency-tracking   do not reject slow dependency extractors
  131.15 +   --enable-maintainer-mode  enable make rules and dependencies not useful
  131.16 +@@ -1973,6 +1975,16 @@
  131.17 + fi
  131.18 + 
  131.19 + 
  131.20 ++# Check whether --enable-libjava-multilib was given.
  131.21 ++if test "${enable_libjava_multilib+set}" = set; then
  131.22 ++  enableval=$enable_libjava_multilib;
  131.23 ++fi
  131.24 ++
  131.25 ++if test "$enable_libjava_multilib" = no; then
  131.26 ++  multilib=no
  131.27 ++  ac_configure_args="$ac_configure_args --disable-multilib"
  131.28 ++fi
  131.29 ++
  131.30 + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
  131.31 + 
  131.32 + 
  131.33 +diff -durN gcc-4.4.0.orig/libjava/configure.ac gcc-4.4.0/libjava/configure.ac
  131.34 +--- gcc-4.4.0.orig/libjava/configure.ac	2009-04-09 23:54:28.000000000 +0200
  131.35 ++++ gcc-4.4.0/libjava/configure.ac	2009-05-27 21:38:03.000000000 +0200
  131.36 +@@ -139,6 +139,13 @@
  131.37 + 	[allow rebuilding of .class and .h files]))
  131.38 + AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
  131.39 + 
  131.40 ++AC_ARG_ENABLE(libjava-multilib,
  131.41 ++	AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
  131.42 ++if test "$enable_libjava_multilib" = no; then
  131.43 ++  multilib=no
  131.44 ++  ac_configure_args="$ac_configure_args --disable-multilib"
  131.45 ++fi
  131.46 ++
  131.47 + # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
  131.48 + GCC_NO_EXECUTABLES
  131.49 + 
   132.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   132.2 +++ b/patches/gcc/4.4.2/130-cross-compile.patch	Thu Oct 29 00:10:06 2009 +0100
   132.3 @@ -0,0 +1,39 @@
   132.4 +diff -durN gcc-4.4.0.orig/gcc/configure gcc-4.4.0/gcc/configure
   132.5 +--- gcc-4.4.0.orig/gcc/configure	2009-03-24 18:46:03.000000000 +0100
   132.6 ++++ gcc-4.4.0/gcc/configure	2009-05-27 21:38:06.000000000 +0200
   132.7 +@@ -13997,7 +13997,7 @@
   132.8 + 	    | powerpc*-*-*,powerpc64*-*-*)
   132.9 + 		CROSS="$CROSS -DNATIVE_CROSS" ;;
  132.10 + 	esac
  132.11 +-elif test "x$TARGET_SYSTEM_ROOT" != x; then
  132.12 ++elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
  132.13 +         SYSTEM_HEADER_DIR=$build_system_header_dir
  132.14 + fi
  132.15 + 
  132.16 +diff -durN gcc-4.4.0.orig/gcc/configure.ac gcc-4.4.0/gcc/configure.ac
  132.17 +--- gcc-4.4.0.orig/gcc/configure.ac	2009-03-24 18:46:03.000000000 +0100
  132.18 ++++ gcc-4.4.0/gcc/configure.ac	2009-05-27 21:38:06.000000000 +0200
  132.19 +@@ -1720,7 +1720,7 @@
  132.20 + 	    | powerpc*-*-*,powerpc64*-*-*)
  132.21 + 		CROSS="$CROSS -DNATIVE_CROSS" ;;
  132.22 + 	esac
  132.23 +-elif test "x$TARGET_SYSTEM_ROOT" != x; then
  132.24 ++elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
  132.25 +         SYSTEM_HEADER_DIR=$build_system_header_dir 
  132.26 + fi
  132.27 + 
  132.28 +diff -durN gcc-4.4.0.orig/gcc/unwind-dw2.c gcc-4.4.0/gcc/unwind-dw2.c
  132.29 +--- gcc-4.4.0.orig/gcc/unwind-dw2.c	2009-04-10 01:23:07.000000000 +0200
  132.30 ++++ gcc-4.4.0/gcc/unwind-dw2.c	2009-05-27 21:38:06.000000000 +0200
  132.31 +@@ -329,9 +329,11 @@
  132.32 + }
  132.33 + #endif
  132.34 + 
  132.35 ++#ifndef inhibit_libc
  132.36 + #ifdef MD_UNWIND_SUPPORT
  132.37 + #include MD_UNWIND_SUPPORT
  132.38 + #endif
  132.39 ++#endif
  132.40 + 
  132.41 + /* Extract any interesting information from the CIE for the translation
  132.42 +    unit F belongs to.  Return a pointer to the byte after the augmentation,
   133.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   133.2 +++ b/patches/gcc/4.4.2/140-default-format-security.patch	Thu Oct 29 00:10:06 2009 +0100
   133.3 @@ -0,0 +1,49 @@
   133.4 +diff -durN gcc-4.4.0.orig/gcc/c-common.c gcc-4.4.0/gcc/c-common.c
   133.5 +--- gcc-4.4.0.orig/gcc/c-common.c	2009-03-30 19:42:27.000000000 +0200
   133.6 ++++ gcc-4.4.0/gcc/c-common.c	2009-05-27 21:38:08.000000000 +0200
   133.7 +@@ -301,7 +301,7 @@
   133.8 + /* Warn about format/argument anomalies in calls to formatted I/O functions
   133.9 +    (*printf, *scanf, strftime, strfmon, etc.).  */
  133.10 + 
  133.11 +-int warn_format;
  133.12 ++int warn_format = 1;
  133.13 + 
  133.14 + /* Warn about using __null (as NULL in C++) as sentinel.  For code compiled
  133.15 +    with GCC this doesn't matter as __null is guaranteed to have the right
  133.16 +diff -durN gcc-4.4.0.orig/gcc/c.opt gcc-4.4.0/gcc/c.opt
  133.17 +--- gcc-4.4.0.orig/gcc/c.opt	2009-03-18 22:14:53.000000000 +0100
  133.18 ++++ gcc-4.4.0/gcc/c.opt	2009-05-27 21:38:08.000000000 +0200
  133.19 +@@ -236,7 +236,7 @@
  133.20 + Warn about format strings that contain NUL bytes
  133.21 + 
  133.22 + Wformat-security
  133.23 +-C ObjC C++ ObjC++ Var(warn_format_security) Warning
  133.24 ++C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning
  133.25 + Warn about possible security problems with format functions
  133.26 + 
  133.27 + Wformat-y2k
  133.28 +diff -durN gcc-4.4.0.orig/gcc/doc/invoke.texi gcc-4.4.0/gcc/doc/invoke.texi
  133.29 +--- gcc-4.4.0.orig/gcc/doc/invoke.texi	2009-04-01 09:18:47.000000000 +0200
  133.30 ++++ gcc-4.4.0/gcc/doc/invoke.texi	2009-05-27 21:38:08.000000000 +0200
  133.31 +@@ -2867,6 +2867,9 @@
  133.32 + @option{-Wformat-nonliteral}, @option{-Wformat-security}, and
  133.33 + @option{-Wformat=2} are available, but are not included in @option{-Wall}.
  133.34 + 
  133.35 ++NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
  133.36 ++To disable, use @option{-Wformat=0}.
  133.37 ++
  133.38 + @item -Wformat-y2k
  133.39 + @opindex Wformat-y2k
  133.40 + @opindex Wno-format-y2k
  133.41 +@@ -2920,6 +2923,11 @@
  133.42 + in future warnings may be added to @option{-Wformat-security} that are not
  133.43 + included in @option{-Wformat-nonliteral}.)
  133.44 + 
  133.45 ++NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
  133.46 ++To disable, use @option{-Wno-format-security}, or disable all format warnings
  133.47 ++with @option{-Wformat=0}.  To make format security warnings fatal, specify
  133.48 ++@option{-Werror=format-security}.
  133.49 ++
  133.50 + @item -Wformat=2
  133.51 + @opindex Wformat=2
  133.52 + @opindex Wno-format=2
   134.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   134.2 +++ b/patches/gcc/4.4.2/150-default-fortify-source.patch	Thu Oct 29 00:10:06 2009 +0100
   134.3 @@ -0,0 +1,26 @@
   134.4 +diff -durN gcc-4.4.0.orig/gcc/doc/invoke.texi gcc-4.4.0/gcc/doc/invoke.texi
   134.5 +--- gcc-4.4.0.orig/gcc/doc/invoke.texi	2009-05-27 21:38:11.000000000 +0200
   134.6 ++++ gcc-4.4.0/gcc/doc/invoke.texi	2009-05-27 21:38:11.000000000 +0200
   134.7 +@@ -5411,6 +5411,11 @@
   134.8 + Please note the warning under @option{-fgcse} about
   134.9 + invoking @option{-O2} on programs that use computed gotos.
  134.10 + 
  134.11 ++NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is
  134.12 ++activated when @option{-O} is set to 2 or higher.  This enables additional
  134.13 ++compile-time and run-time checks for several libc functions.  To disable,
  134.14 ++specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}.
  134.15 ++
  134.16 + @item -O3
  134.17 + @opindex O3
  134.18 + Optimize yet more.  @option{-O3} turns on all optimizations specified
  134.19 +diff -durN gcc-4.4.0.orig/gcc/gcc.c gcc-4.4.0/gcc/gcc.c
  134.20 +--- gcc-4.4.0.orig/gcc/gcc.c	2009-03-17 22:25:59.000000000 +0100
  134.21 ++++ gcc-4.4.0/gcc/gcc.c	2009-05-27 21:38:11.000000000 +0200
  134.22 +@@ -807,6 +807,7 @@
  134.23 +  %{H} %C %{D*&U*&A*} %{i*} %Z %i\
  134.24 +  %{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
  134.25 +  %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
  134.26 ++ %{!D_FORTIFY_SOURCE:%{!D_FORTIFY_SOURCE=*:%{!U_FORTIFY_SOURCE:-D_FORTIFY_SOURCE=2}}}\
  134.27 +  %{E|M|MM:%W{o*}}";
  134.28 + 
  134.29 + /* This contains cpp options which are common with cc1_options and are passed
   135.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   135.2 +++ b/patches/gcc/4.4.2/160-netbsd-symbolic.patch	Thu Oct 29 00:10:06 2009 +0100
   135.3 @@ -0,0 +1,11 @@
   135.4 +diff -durN gcc-4.4.0.orig/gcc/config/netbsd-elf.h gcc-4.4.0/gcc/config/netbsd-elf.h
   135.5 +--- gcc-4.4.0.orig/gcc/config/netbsd-elf.h	2007-09-03 18:14:04.000000000 +0200
   135.6 ++++ gcc-4.4.0/gcc/config/netbsd-elf.h	2009-05-27 21:38:14.000000000 +0200
   135.7 +@@ -82,6 +82,7 @@
   135.8 + #define NETBSD_LINK_SPEC_ELF \
   135.9 +   "%{assert*} %{R*} %{rpath*} \
  135.10 +    %{shared:-shared} \
  135.11 ++   %{symbolic:-Bsymbolic} \
  135.12 +    %{!shared: \
  135.13 +      -dc -dp \
  135.14 +      %{!nostdlib: \
   136.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   136.2 +++ b/patches/gcc/4.4.2/170-sparc64-bsd.patch	Thu Oct 29 00:10:06 2009 +0100
   136.3 @@ -0,0 +1,29 @@
   136.4 +diff -durN gcc-4.4.0.orig/gcc/config/sparc/freebsd.h gcc-4.4.0/gcc/config/sparc/freebsd.h
   136.5 +--- gcc-4.4.0.orig/gcc/config/sparc/freebsd.h	2007-08-02 12:49:31.000000000 +0200
   136.6 ++++ gcc-4.4.0/gcc/config/sparc/freebsd.h	2009-05-27 21:38:16.000000000 +0200
   136.7 +@@ -25,9 +25,22 @@
   136.8 + /* FreeBSD needs the platform name (sparc64) defined.
   136.9 +    Emacs needs to know if the arch is 64 or 32-bits.  */
  136.10 + 
  136.11 +-#undef  CPP_CPU64_DEFAULT_SPEC
  136.12 +-#define CPP_CPU64_DEFAULT_SPEC \
  136.13 +-  "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__"
  136.14 ++#undef  FBSD_TARGET_CPU_CPP_BUILTINS
  136.15 ++#define FBSD_TARGET_CPU_CPP_BUILTINS()                  \
  136.16 ++  do                                                    \
  136.17 ++    {                                                   \
  136.18 ++      if (TARGET_ARCH64)                                \
  136.19 ++        {                                               \
  136.20 ++          builtin_define ("__sparc64__");               \
  136.21 ++          builtin_define ("__sparc_v9__");              \
  136.22 ++          builtin_define ("__sparcv9");                 \
  136.23 ++        }                                               \
  136.24 ++      else                                              \
  136.25 ++        builtin_define ("__sparc");                     \
  136.26 ++      builtin_define ("__sparc__");                     \
  136.27 ++    }                                                   \
  136.28 ++  while (0)
  136.29 ++
  136.30 + 
  136.31 + #define LINK_SPEC "%(link_arch)						\
  136.32 +   %{!mno-relax:%{!r:-relax}}						\
   137.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   137.2 +++ b/patches/gcc/4.4.2/180-libgomp-no-werror.patch	Thu Oct 29 00:10:06 2009 +0100
   137.3 @@ -0,0 +1,12 @@
   137.4 +diff -durN gcc-4.4.0.orig/libgomp/configure gcc-4.4.0/libgomp/configure
   137.5 +--- gcc-4.4.0.orig/libgomp/configure	2009-04-21 11:08:08.000000000 +0200
   137.6 ++++ gcc-4.4.0/libgomp/configure	2009-05-27 21:38:19.000000000 +0200
   137.7 +@@ -3334,7 +3334,7 @@
   137.8 + 
   137.9 + # Add -Wall -Werror if we are using GCC.
  137.10 + if test "x$GCC" = "xyes"; then
  137.11 +-  XCFLAGS="$XCFLAGS -Wall -Werror"
  137.12 ++  XCFLAGS="$XCFLAGS -Wall"
  137.13 + fi
  137.14 + 
  137.15 + # Find other programs we need.
   138.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   138.2 +++ b/patches/gcc/4.4.2/190-flatten-switch-stmt-00.patch	Thu Oct 29 00:10:06 2009 +0100
   138.3 @@ -0,0 +1,24 @@
   138.4 +diff -durN gcc-4.4.0.orig/gcc/stmt.c gcc-4.4.0/gcc/stmt.c
   138.5 +--- gcc-4.4.0.orig/gcc/stmt.c	2009-02-27 20:49:42.000000000 +0100
   138.6 ++++ gcc-4.4.0/gcc/stmt.c	2009-05-27 21:38:21.000000000 +0200
   138.7 +@@ -2376,7 +2376,11 @@
   138.8 + 	  use_cost_table
   138.9 + 	    = (TREE_CODE (orig_type) != ENUMERAL_TYPE
  138.10 + 	       && estimate_case_costs (case_list));
  138.11 +-	  balance_case_nodes (&case_list, NULL);
  138.12 ++	  /* When optimizing for size, we want a straight list to avoid
  138.13 ++	     jumps as much as possible. This basically creates an if-else
  138.14 ++	     chain.  */
  138.15 ++	  if (!optimize_size)
  138.16 ++	    balance_case_nodes (&case_list, NULL);
  138.17 + 	  emit_case_nodes (index, case_list, default_label, index_type);
  138.18 + 	  if (default_label)
  138.19 + 	    emit_jump (default_label);
  138.20 +@@ -2942,6 +2946,7 @@
  138.21 + 	    {
  138.22 + 	      if (!node_has_low_bound (node, index_type))
  138.23 + 		{
  138.24 ++		  if (!optimize_size) /* don't jl to the .default_label. */
  138.25 + 		  emit_cmp_and_jump_insns (index,
  138.26 + 					   convert_modes
  138.27 + 					   (mode, imode,
   139.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   139.2 +++ b/patches/gcc/4.4.2/200-libiberty.h-asprintf.patch	Thu Oct 29 00:10:06 2009 +0100
   139.3 @@ -0,0 +1,15 @@
   139.4 +diff -durN gcc-4.4.0.orig/include/libiberty.h gcc-4.4.0/include/libiberty.h
   139.5 +--- gcc-4.4.0.orig/include/libiberty.h	2008-06-24 03:42:31.000000000 +0200
   139.6 ++++ gcc-4.4.0/include/libiberty.h	2009-05-27 21:38:24.000000000 +0200
   139.7 +@@ -595,8 +595,11 @@
   139.8 + /* Like sprintf but provides a pointer to malloc'd storage, which must
   139.9 +    be freed by the caller.  */
  139.10 + 
  139.11 ++/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL.  */
  139.12 ++#ifndef asprintf
  139.13 + extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
  139.14 + #endif
  139.15 ++#endif
  139.16 + 
  139.17 + #if !HAVE_DECL_VASPRINTF
  139.18 + /* Like vsprintf but provides a pointer to malloc'd storage, which
   140.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.2 +++ b/patches/gcc/4.4.2/210-arm-unbreak-armv4t.patch	Thu Oct 29 00:10:06 2009 +0100
   140.3 @@ -0,0 +1,12 @@
   140.4 +diff -durN gcc-4.4.0.orig/gcc/config/arm/linux-eabi.h gcc-4.4.0/gcc/config/arm/linux-eabi.h
   140.5 +--- gcc-4.4.0.orig/gcc/config/arm/linux-eabi.h	2007-11-08 14:44:09.000000000 +0100
   140.6 ++++ gcc-4.4.0/gcc/config/arm/linux-eabi.h	2009-05-27 21:38:26.000000000 +0200
   140.7 +@@ -44,7 +44,7 @@
   140.8 +    The ARM10TDMI core is the default for armv5t, so set
   140.9 +    SUBTARGET_CPU_DEFAULT to achieve this.  */
  140.10 + #undef  SUBTARGET_CPU_DEFAULT
  140.11 +-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
  140.12 ++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
  140.13 + 
  140.14 + /* TARGET_BIG_ENDIAN_DEFAULT is set in
  140.15 +    config.gcc for big endian configurations.  */
   141.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.2 +++ b/patches/gcc/4.4.2/220-libiberty-pic.patch	Thu Oct 29 00:10:06 2009 +0100
   141.3 @@ -0,0 +1,11 @@
   141.4 +diff -durN gcc-4.4.0.orig/libiberty/Makefile.in gcc-4.4.0/libiberty/Makefile.in
   141.5 +--- gcc-4.4.0.orig/libiberty/Makefile.in	2008-10-22 15:30:19.000000000 +0200
   141.6 ++++ gcc-4.4.0/libiberty/Makefile.in	2009-05-27 21:38:29.000000000 +0200
   141.7 +@@ -227,6 +227,7 @@
   141.8 + 	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
   141.9 + 	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
  141.10 + 	  $(RANLIB) $(TARGETLIB); \
  141.11 ++	  cp $(TARGETLIB) ../ ; \
  141.12 + 	  cd ..; \
  141.13 + 	else true; fi
  141.14 + 
   142.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   142.2 +++ b/patches/gcc/4.4.2/230-superh-default-multilib.patch	Thu Oct 29 00:10:06 2009 +0100
   142.3 @@ -0,0 +1,12 @@
   142.4 +diff -durN gcc-4.4.0.orig/gcc/config.gcc gcc-4.4.0/gcc/config.gcc
   142.5 +--- gcc-4.4.0.orig/gcc/config.gcc	2009-04-17 13:58:41.000000000 +0200
   142.6 ++++ gcc-4.4.0/gcc/config.gcc	2009-05-27 21:38:31.000000000 +0200
   142.7 +@@ -2121,7 +2121,7 @@
   142.8 + 	if test x${sh_multilibs} = x ; then
   142.9 + 		case ${target} in
  142.10 + 		sh64-superh-linux* | \
  142.11 +-		sh[1234]*)	sh_multilibs=${sh_cpu_target} ;;
  142.12 ++		sh[1234]*)	sh_multilibs=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;s: ::g'` ;;
  142.13 + 		sh64* | sh5*)	sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
  142.14 + 		sh-superh-*)	sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
  142.15 + 		sh*-*-linux*)	sh_multilibs=m1,m3e,m4 ;;
   143.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   143.2 +++ b/patches/gcc/4.4.2/240-libstdc++-pic.patch	Thu Oct 29 00:10:06 2009 +0100
   143.3 @@ -0,0 +1,53 @@
   143.4 +diff -durN gcc-4.4.0.orig/libstdc++-v3/src/Makefile.am gcc-4.4.0/libstdc++-v3/src/Makefile.am
   143.5 +--- gcc-4.4.0.orig/libstdc++-v3/src/Makefile.am	2009-04-10 01:23:07.000000000 +0200
   143.6 ++++ gcc-4.4.0/libstdc++-v3/src/Makefile.am	2009-05-27 21:38:34.000000000 +0200
   143.7 +@@ -351,6 +351,13 @@
   143.8 + 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
   143.9 + 
  143.10 + 
  143.11 ++install-exec-local:
  143.12 ++	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
  143.13 ++	if [ x"$$pic_objs" != x ]; then \
  143.14 ++		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
  143.15 ++		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
  143.16 ++	fi
  143.17 ++
  143.18 + # Added bits to build debug library.
  143.19 + if GLIBCXX_BUILD_DEBUG
  143.20 + all-local: build_debug
  143.21 +diff -durN gcc-4.4.0.orig/libstdc++-v3/src/Makefile.in gcc-4.4.0/libstdc++-v3/src/Makefile.in
  143.22 +--- gcc-4.4.0.orig/libstdc++-v3/src/Makefile.in	2009-01-17 03:03:25.000000000 +0100
  143.23 ++++ gcc-4.4.0/libstdc++-v3/src/Makefile.in	2009-05-27 21:38:34.000000000 +0200
  143.24 +@@ -726,7 +726,7 @@
  143.25 + 
  143.26 + install-data-am: install-data-local
  143.27 + 
  143.28 +-install-exec-am: install-toolexeclibLTLIBRARIES
  143.29 ++install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
  143.30 + 
  143.31 + install-info: install-info-am
  143.32 + 
  143.33 +@@ -765,7 +765,7 @@
  143.34 + 	maintainer-clean-generic mostlyclean mostlyclean-compile \
  143.35 + 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
  143.36 + 	tags uninstall uninstall-am uninstall-info-am \
  143.37 +-	uninstall-toolexeclibLTLIBRARIES
  143.38 ++	uninstall-toolexeclibLTLIBRARIES install-exec-local
  143.39 + 
  143.40 + 
  143.41 + # Symbol versioning for shared libraries.
  143.42 +@@ -942,6 +942,14 @@
  143.43 + install_debug:
  143.44 + 	(cd ${debugdir} && $(MAKE) \
  143.45 + 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
  143.46 ++
  143.47 ++install-exec-local:
  143.48 ++	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
  143.49 ++	if [ x"$$pic_objs" != x ]; then \
  143.50 ++		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
  143.51 ++		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
  143.52 ++	fi
  143.53 ++
  143.54 + # Tell versions [3.59,3.63) of GNU make to not export all variables.
  143.55 + # Otherwise a system limit (for SysV at least) may be exceeded.
  143.56 + .NOEXPORT:
   144.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.2 +++ b/patches/gcc/4.4.2/250-ia64-noteGNUstack.patch	Thu Oct 29 00:10:06 2009 +0100
   144.3 @@ -0,0 +1,79 @@
   144.4 +diff -durN gcc-4.4.0.orig/gcc/config/ia64/crtbegin.asm gcc-4.4.0/gcc/config/ia64/crtbegin.asm
   144.5 +--- gcc-4.4.0.orig/gcc/config/ia64/crtbegin.asm	2009-04-10 01:23:07.000000000 +0200
   144.6 ++++ gcc-4.4.0/gcc/config/ia64/crtbegin.asm	2009-05-27 21:38:37.000000000 +0200
   144.7 +@@ -252,3 +252,7 @@
   144.8 + .weak __cxa_finalize
   144.9 + #endif
  144.10 + .weak _Jv_RegisterClasses
  144.11 ++
  144.12 ++#ifdef __linux__
  144.13 ++.section .note.GNU-stack; .previous
  144.14 ++#endif
  144.15 +diff -durN gcc-4.4.0.orig/gcc/config/ia64/crtend.asm gcc-4.4.0/gcc/config/ia64/crtend.asm
  144.16 +--- gcc-4.4.0.orig/gcc/config/ia64/crtend.asm	2009-04-10 01:23:07.000000000 +0200
  144.17 ++++ gcc-4.4.0/gcc/config/ia64/crtend.asm	2009-05-27 21:38:37.000000000 +0200
  144.18 +@@ -119,3 +119,7 @@
  144.19 + 
  144.20 + 	br.ret.sptk.many rp
  144.21 + 	.endp __do_global_ctors_aux
  144.22 ++
  144.23 ++#ifdef __linux__
  144.24 ++.section .note.GNU-stack; .previous
  144.25 ++#endif
  144.26 +diff -durN gcc-4.4.0.orig/gcc/config/ia64/crti.asm gcc-4.4.0/gcc/config/ia64/crti.asm
  144.27 +--- gcc-4.4.0.orig/gcc/config/ia64/crti.asm	2009-04-10 01:23:07.000000000 +0200
  144.28 ++++ gcc-4.4.0/gcc/config/ia64/crti.asm	2009-05-27 21:38:37.000000000 +0200
  144.29 +@@ -51,3 +51,7 @@
  144.30 + 	.body
  144.31 + 
  144.32 + # end of crti.asm
  144.33 ++
  144.34 ++#ifdef __linux__
  144.35 ++.section .note.GNU-stack; .previous
  144.36 ++#endif
  144.37 +diff -durN gcc-4.4.0.orig/gcc/config/ia64/crtn.asm gcc-4.4.0/gcc/config/ia64/crtn.asm
  144.38 +--- gcc-4.4.0.orig/gcc/config/ia64/crtn.asm	2009-04-10 01:23:07.000000000 +0200
  144.39 ++++ gcc-4.4.0/gcc/config/ia64/crtn.asm	2009-05-27 21:38:37.000000000 +0200
  144.40 +@@ -41,3 +41,7 @@
  144.41 + 	br.ret.sptk.many b0
  144.42 + 
  144.43 + # end of crtn.asm
  144.44 ++
  144.45 ++#ifdef __linux__
  144.46 ++.section .note.GNU-stack; .previous
  144.47 ++#endif
  144.48 +diff -durN gcc-4.4.0.orig/gcc/config/ia64/lib1funcs.asm gcc-4.4.0/gcc/config/ia64/lib1funcs.asm
  144.49 +--- gcc-4.4.0.orig/gcc/config/ia64/lib1funcs.asm	2009-04-10 01:23:07.000000000 +0200
  144.50 ++++ gcc-4.4.0/gcc/config/ia64/lib1funcs.asm	2009-05-27 21:38:37.000000000 +0200
  144.51 +@@ -793,3 +793,7 @@
  144.52 + 	.endp __floattitf
  144.53 + #endif
  144.54 + #endif
  144.55 ++
  144.56 ++#ifdef __linux__
  144.57 ++.section .note.GNU-stack; .previous
  144.58 ++#endif
  144.59 +diff -durN gcc-4.4.0.orig/gcc/config/ia64/linux.h gcc-4.4.0/gcc/config/ia64/linux.h
  144.60 +--- gcc-4.4.0.orig/gcc/config/ia64/linux.h	2009-02-12 17:30:53.000000000 +0100
  144.61 ++++ gcc-4.4.0/gcc/config/ia64/linux.h	2009-05-27 21:38:37.000000000 +0200
  144.62 +@@ -5,6 +5,8 @@
  144.63 + 
  144.64 + #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
  144.65 + 
  144.66 ++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
  144.67 ++
  144.68 + /* This is for -profile to use -lc_p instead of -lc.  */
  144.69 + #undef CC1_SPEC
  144.70 + #define CC1_SPEC "%{profile:-p} %{G*}"
  144.71 +diff -durN gcc-4.4.0.orig/gcc/config/rs6000/ppc-asm.h gcc-4.4.0/gcc/config/rs6000/ppc-asm.h
  144.72 +--- gcc-4.4.0.orig/gcc/config/rs6000/ppc-asm.h	2008-10-13 17:44:26.000000000 +0200
  144.73 ++++ gcc-4.4.0/gcc/config/rs6000/ppc-asm.h	2009-05-27 21:38:37.000000000 +0200
  144.74 +@@ -172,7 +172,7 @@
  144.75 + 	.size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
  144.76 + #endif
  144.77 + 
  144.78 +-#if defined __linux__ && !defined __powerpc64__
  144.79 ++#if defined __linux__
  144.80 + 	.section .note.GNU-stack
  144.81 + 	.previous
  144.82 + #endif
   145.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.2 +++ b/patches/gcc/4.4.2/260-sh-libgcc-stacks.patch	Thu Oct 29 00:10:06 2009 +0100
   145.3 @@ -0,0 +1,25 @@
   145.4 +diff -durN gcc-4.4.0.orig/gcc/config/sh/lib1funcs.asm gcc-4.4.0/gcc/config/sh/lib1funcs.asm
   145.5 +--- gcc-4.4.0.orig/gcc/config/sh/lib1funcs.asm	2009-04-10 01:23:07.000000000 +0200
   145.6 ++++ gcc-4.4.0/gcc/config/sh/lib1funcs.asm	2009-05-27 21:38:39.000000000 +0200
   145.7 +@@ -30,6 +30,11 @@
   145.8 + !! recoded in assembly by Toshiyasu Morita
   145.9 + !! tm@netcom.com
  145.10 + 
  145.11 ++#if defined(__ELF__) && defined(__linux__)
  145.12 ++.section .note.GNU-stack,"",%progbits
  145.13 ++.previous
  145.14 ++#endif
  145.15 ++
  145.16 + /* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
  145.17 +    ELF local label prefixes by J"orn Rennecke
  145.18 +    amylaar@cygnus.com  */
  145.19 +diff -durN gcc-4.4.0.orig/gcc/config/sh/linux-atomic.asm gcc-4.4.0/gcc/config/sh/linux-atomic.asm
  145.20 +--- gcc-4.4.0.orig/gcc/config/sh/linux-atomic.asm	2009-04-10 01:23:07.000000000 +0200
  145.21 ++++ gcc-4.4.0/gcc/config/sh/linux-atomic.asm	2009-05-27 21:38:39.000000000 +0200
  145.22 +@@ -136,3 +136,6 @@
  145.23 + ATOMIC_FETCH_AND_COMBOP(nand,and,not,4,l,mov)
  145.24 + 
  145.25 + #endif /* ! __SH5__ */
  145.26 ++
  145.27 ++.section .note.GNU-stack,"",%progbits
  145.28 ++.previous
   146.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.2 +++ b/patches/gcc/4.4.2/270-sh-pr24836.patch	Thu Oct 29 00:10:06 2009 +0100
   146.3 @@ -0,0 +1,24 @@
   146.4 +diff -durN gcc-4.4.0.orig/gcc/configure gcc-4.4.0/gcc/configure
   146.5 +--- gcc-4.4.0.orig/gcc/configure	2009-05-27 21:38:08.000000000 +0200
   146.6 ++++ gcc-4.4.0/gcc/configure	2009-05-27 21:38:42.000000000 +0200
   146.7 +@@ -22205,7 +22205,7 @@
   146.8 + 	tls_first_minor=14
   146.9 + 	tls_as_opt="-m64 -Aesame --fatal-warnings"
  146.10 + 	;;
  146.11 +-  sh-*-* | sh[34]-*-*)
  146.12 ++  sh-*-* | sh[34]*-*-*)
  146.13 +     conftest_s='
  146.14 + 	.section ".tdata","awT",@progbits
  146.15 + foo:	.long	25
  146.16 +diff -durN gcc-4.4.0.orig/gcc/configure.ac gcc-4.4.0/gcc/configure.ac
  146.17 +--- gcc-4.4.0.orig/gcc/configure.ac	2009-05-27 21:38:08.000000000 +0200
  146.18 ++++ gcc-4.4.0/gcc/configure.ac	2009-05-27 21:38:42.000000000 +0200
  146.19 +@@ -2673,7 +2673,7 @@
  146.20 + 	tls_first_minor=14
  146.21 + 	tls_as_opt="-m64 -Aesame --fatal-warnings"
  146.22 + 	;;
  146.23 +-  sh-*-* | sh[34]-*-*)
  146.24 ++  sh-*-* | sh[34]*-*-*)
  146.25 +     conftest_s='
  146.26 + 	.section ".tdata","awT",@progbits
  146.27 + foo:	.long	25
   147.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   147.2 +++ b/patches/gcc/4.4.2/280-freebsd.patch	Thu Oct 29 00:10:06 2009 +0100
   147.3 @@ -0,0 +1,94 @@
   147.4 +diff -durN gcc-4.4.0.orig/gcc/config/freebsd-spec.h gcc-4.4.0/gcc/config/freebsd-spec.h
   147.5 +--- gcc-4.4.0.orig/gcc/config/freebsd-spec.h	2009-04-10 01:23:07.000000000 +0200
   147.6 ++++ gcc-4.4.0/gcc/config/freebsd-spec.h	2009-05-27 21:38:45.000000000 +0200
   147.7 +@@ -61,6 +61,8 @@
   147.8 + 	builtin_assert ("system=unix");					\
   147.9 + 	builtin_assert ("system=bsd");					\
  147.10 + 	builtin_assert ("system=FreeBSD");				\
  147.11 ++	if(!(flag_iso && (c_dialect_cxx () ? cxx_dialect == cxx98 : !flag_isoc99)))	\
  147.12 ++		builtin_define("_LONGLONG");				\
  147.13 + 	FBSD_TARGET_CPU_CPP_BUILTINS();					\
  147.14 +     }									\
  147.15 +   while (0)
  147.16 +diff -durN gcc-4.4.0.orig/gcc/config/t-freebsd-eh gcc-4.4.0/gcc/config/t-freebsd-eh
  147.17 +--- gcc-4.4.0.orig/gcc/config/t-freebsd-eh	1970-01-01 01:00:00.000000000 +0100
  147.18 ++++ gcc-4.4.0/gcc/config/t-freebsd-eh	2009-05-27 21:38:45.000000000 +0200
  147.19 +@@ -0,0 +1,4 @@
  147.20 ++# Use unwind-dw2-fde-glibc
  147.21 ++LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
  147.22 ++  $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
  147.23 ++LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
  147.24 +diff -durN gcc-4.4.0.orig/gcc/config.gcc gcc-4.4.0/gcc/config.gcc
  147.25 +--- gcc-4.4.0.orig/gcc/config.gcc	2009-05-27 21:38:34.000000000 +0200
  147.26 ++++ gcc-4.4.0/gcc/config.gcc	2009-05-27 21:38:45.000000000 +0200
  147.27 +@@ -456,7 +456,7 @@
  147.28 +   # pleases around the provided core setting.
  147.29 +   gas=yes
  147.30 +   gnu_ld=yes
  147.31 +-  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
  147.32 ++  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
  147.33 +   fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
  147.34 +   tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
  147.35 +   tmake_file="t-slibgcc-elf-ver t-freebsd"
  147.36 +@@ -1042,6 +1042,10 @@
  147.37 + 	;;
  147.38 + i[34567]86-*-freebsd*)
  147.39 + 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
  147.40 ++	fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
  147.41 ++	if test ${fbsd_major} -ge 7; then
  147.42 ++		tmake_file="${tmake_file} t-freebsd-eh"
  147.43 ++	fi
  147.44 + 	;;
  147.45 + x86_64-*-freebsd*)
  147.46 + 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
  147.47 +diff -durN gcc-4.4.0.orig/gcc/crtstuff.c gcc-4.4.0/gcc/crtstuff.c
  147.48 +--- gcc-4.4.0.orig/gcc/crtstuff.c	2009-04-10 01:23:07.000000000 +0200
  147.49 ++++ gcc-4.4.0/gcc/crtstuff.c	2009-05-27 21:38:45.000000000 +0200
  147.50 +@@ -85,13 +85,15 @@
  147.51 +     && !defined(OBJECT_FORMAT_FLAT) \
  147.52 +     && defined(HAVE_LD_EH_FRAME_HDR) \
  147.53 +     && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
  147.54 +-    && defined(__GLIBC__) && __GLIBC__ >= 2
  147.55 ++    && ((defined(__GLIBC__) && __GLIBC__ >= 2) \
  147.56 ++    || (defined(__FreeBSD_version) && __FreeBSD_version >= 700022))
  147.57 + #include <link.h>
  147.58 + /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
  147.59 +    But it doesn't use PT_GNU_EH_FRAME ELF segment currently.  */
  147.60 + # if !defined(__UCLIBC__) \
  147.61 +-     && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
  147.62 +-     || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
  147.63 ++     || (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
  147.64 ++     || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) \
  147.65 ++     || (__FreeBSD_version >= 700022)
  147.66 + #  define USE_PT_GNU_EH_FRAME
  147.67 + # endif
  147.68 + #endif
  147.69 +diff -durN gcc-4.4.0.orig/gcc/unwind-dw2-fde-glibc.c gcc-4.4.0/gcc/unwind-dw2-fde-glibc.c
  147.70 +--- gcc-4.4.0.orig/gcc/unwind-dw2-fde-glibc.c	2009-04-10 01:23:07.000000000 +0200
  147.71 ++++ gcc-4.4.0/gcc/unwind-dw2-fde-glibc.c	2009-05-27 21:38:45.000000000 +0200
  147.72 +@@ -46,8 +46,9 @@
  147.73 + #include "gthr.h"
  147.74 + 
  147.75 + #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \
  147.76 +-    && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
  147.77 +-	|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG)))
  147.78 ++    && ((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \
  147.79 ++	|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) \
  147.80 ++    || (__FreeBSD_version >= 700022 ))
  147.81 + 
  147.82 + #ifndef __RELOC_POINTER
  147.83 + # define __RELOC_POINTER(ptr, base) ((ptr) + (base))
  147.84 +@@ -63,6 +64,13 @@
  147.85 + #define PT_GNU_EH_FRAME (PT_LOOS + 0x474e550)
  147.86 + #endif
  147.87 + 
  147.88 ++/* Support FreeBSD */
  147.89 ++#ifndef ElfW
  147.90 ++# ifdef __ElfN
  147.91 ++#  define ElfW __ElfN
  147.92 ++# endif
  147.93 ++#endif
  147.94 ++
  147.95 + struct unw_eh_callback_data
  147.96 + {
  147.97 +   _Unwind_Ptr pc;
   148.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.2 +++ b/patches/gcc/4.4.2/290-freebsd.patch	Thu Oct 29 00:10:06 2009 +0100
   148.3 @@ -0,0 +1,64 @@
   148.4 +diff -durN gcc-4.4.0.orig/gcc/config/freebsd-spec.h gcc-4.4.0/gcc/config/freebsd-spec.h
   148.5 +--- gcc-4.4.0.orig/gcc/config/freebsd-spec.h	2009-05-27 21:38:47.000000000 +0200
   148.6 ++++ gcc-4.4.0/gcc/config/freebsd-spec.h	2009-05-27 21:38:47.000000000 +0200
   148.7 +@@ -86,9 +86,10 @@
   148.8 + #define FBSD_STARTFILE_SPEC \
   148.9 +   "%{!shared: \
  148.10 +      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
  148.11 +-		       %{!p:%{profile:gcrt1.o%s} \
  148.12 +-			 %{!profile:crt1.o%s}}}} \
  148.13 +-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
  148.14 ++	%{!p:%{profile:gcrt1.o%s} \
  148.15 ++	 %{!profile:crt1.o%s}}}} \
  148.16 ++   crti.o%s \
  148.17 ++   %{static:crtbeginT.o%s;shared:crtbeginS.o%s;:crtbegin.o%s}"
  148.18 + 
  148.19 + /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
  148.20 +    the magical crtend.o file (see crtstuff.c) which provides part of 
  148.21 +@@ -126,7 +127,8 @@
  148.22 +     %{pg:  -lc_p}							\
  148.23 +   }"
  148.24 + #else
  148.25 +-#if FBSD_MAJOR < 5
  148.26 ++#include <sys/param.h>
  148.27 ++#if __FreeBSD_version < 500016
  148.28 + #define FBSD_LIB_SPEC "							\
  148.29 +   %{!shared:								\
  148.30 +     %{!pg:								\
  148.31 +@@ -136,17 +138,34 @@
  148.32 +       %{!pthread:-lc_p}							\
  148.33 +       %{pthread:-lc_r_p}}						\
  148.34 +   }"
  148.35 +-#else
  148.36 ++#elif __FreeBSD_version < 700022
  148.37 + #define FBSD_LIB_SPEC "							\
  148.38 +   %{!shared:								\
  148.39 +     %{!pg: %{pthread:-lpthread} -lc}					\
  148.40 +     %{pg:  %{pthread:-lpthread_p} -lc_p}				\
  148.41 +   }"
  148.42 ++#else
  148.43 ++#define FBSD_LIB_SPEC "							\
  148.44 ++  %{!shared:								\
  148.45 ++    %{!pg: %{pthread:-lpthread} -lc}					\
  148.46 ++    %{pg:  %{pthread:-lpthread_p} -lc_p}}				\
  148.47 ++  %{shared:								\
  148.48 ++    %{pthread:-lpthread} -lc}						\
  148.49 ++  "
  148.50 + #endif
  148.51 + #endif
  148.52 + 
  148.53 +-#if FBSD_MAJOR < 6
  148.54 ++#if FBSD_MAJOR < 5
  148.55 + #define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
  148.56 + #else
  148.57 + #define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
  148.58 + #endif
  148.59 ++
  148.60 ++#if defined(HAVE_LD_EH_FRAME_HDR)
  148.61 ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
  148.62 ++#endif
  148.63 ++
  148.64 ++/* Use --as-needed -lgcc_s for eh support.  */
  148.65 ++#ifdef HAVE_LD_AS_NEEDED
  148.66 ++#define USE_LD_AS_NEEDED 1
  148.67 ++#endif
   149.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.2 +++ b/patches/gcc/4.4.2/300-uclibc-conf.patch	Thu Oct 29 00:10:06 2009 +0100
   149.3 @@ -0,0 +1,35 @@
   149.4 +diff -durN gcc-4.4.0.orig/contrib/regression/objs-gcc.sh gcc-4.4.0/contrib/regression/objs-gcc.sh
   149.5 +--- gcc-4.4.0.orig/contrib/regression/objs-gcc.sh	2009-04-10 01:23:07.000000000 +0200
   149.6 ++++ gcc-4.4.0/contrib/regression/objs-gcc.sh	2009-05-27 21:38:53.000000000 +0200
   149.7 +@@ -106,6 +106,10 @@
   149.8 +  then
   149.9 +   make all-gdb all-dejagnu all-ld || exit 1
  149.10 +   make install-gdb install-dejagnu install-ld || exit 1
  149.11 ++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
  149.12 ++ then
  149.13 ++  make all-gdb all-dejagnu all-ld || exit 1
  149.14 ++  make install-gdb install-dejagnu install-ld || exit 1
  149.15 + elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
  149.16 +   make bootstrap || exit 1
  149.17 +   make install || exit 1
  149.18 +diff -durN gcc-4.4.0.orig/libjava/classpath/ltconfig gcc-4.4.0/libjava/classpath/ltconfig
  149.19 +--- gcc-4.4.0.orig/libjava/classpath/ltconfig	2007-06-04 01:18:43.000000000 +0200
  149.20 ++++ gcc-4.4.0/libjava/classpath/ltconfig	2009-05-27 21:38:53.000000000 +0200
  149.21 +@@ -603,7 +603,7 @@
  149.22 + 
  149.23 + # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  149.24 + case $host_os in
  149.25 +-linux-gnu*) ;;
  149.26 ++linux-gnu*|linux-uclibc*) ;;
  149.27 + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  149.28 + esac
  149.29 + 
  149.30 +@@ -1251,7 +1251,7 @@
  149.31 +   ;;
  149.32 + 
  149.33 + # This must be Linux ELF.
  149.34 +-linux-gnu*)
  149.35 ++linux*)
  149.36 +   version_type=linux
  149.37 +   need_lib_prefix=no
  149.38 +   need_version=no
   150.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.2 +++ b/patches/gcc/4.4.2/310-missing-execinfo_h.patch	Thu Oct 29 00:10:06 2009 +0100
   150.3 @@ -0,0 +1,12 @@
   150.4 +diff -durN gcc-4.4.0.orig/boehm-gc/include/gc.h gcc-4.4.0/boehm-gc/include/gc.h
   150.5 +--- gcc-4.4.0.orig/boehm-gc/include/gc.h	2007-04-23 23:10:09.000000000 +0200
   150.6 ++++ gcc-4.4.0/boehm-gc/include/gc.h	2009-05-27 21:38:55.000000000 +0200
   150.7 +@@ -503,7 +503,7 @@
   150.8 + #if defined(__linux__) || defined(__GLIBC__)
   150.9 + # include <features.h>
  150.10 + # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
  150.11 +-     && !defined(__ia64__)
  150.12 ++     && !defined(__ia64__) && !defined(__UCLIBC__)
  150.13 + #   ifndef GC_HAVE_BUILTIN_BACKTRACE
  150.14 + #     define GC_HAVE_BUILTIN_BACKTRACE
  150.15 + #   endif
   151.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.2 +++ b/patches/gcc/4.4.2/320-c99-snprintf.patch	Thu Oct 29 00:10:06 2009 +0100
   151.3 @@ -0,0 +1,12 @@
   151.4 +diff -durN gcc-4.4.0.orig/libstdc++-v3/include/c_global/cstdio gcc-4.4.0/libstdc++-v3/include/c_global/cstdio
   151.5 +--- gcc-4.4.0.orig/libstdc++-v3/include/c_global/cstdio	2009-04-10 01:23:07.000000000 +0200
   151.6 ++++ gcc-4.4.0/libstdc++-v3/include/c_global/cstdio	2009-05-27 21:38:58.000000000 +0200
   151.7 +@@ -139,7 +139,7 @@
   151.8 + 
   151.9 + _GLIBCXX_END_NAMESPACE
  151.10 + 
  151.11 +-#if _GLIBCXX_USE_C99
  151.12 ++#if _GLIBCXX_USE_C99 || defined __UCLIBC__
  151.13 + 
  151.14 + #undef snprintf
  151.15 + #undef vfscanf
   152.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.2 +++ b/patches/gcc/4.4.2/330-libmudflap-susv3-legacy.patch	Thu Oct 29 00:10:06 2009 +0100
   152.3 @@ -0,0 +1,48 @@
   152.4 +diff -durN gcc-4.4.0.orig/libmudflap/mf-hooks2.c gcc-4.4.0/libmudflap/mf-hooks2.c
   152.5 +--- gcc-4.4.0.orig/libmudflap/mf-hooks2.c	2009-04-10 01:23:07.000000000 +0200
   152.6 ++++ gcc-4.4.0/libmudflap/mf-hooks2.c	2009-05-27 21:39:00.000000000 +0200
   152.7 +@@ -421,7 +421,7 @@
   152.8 + {
   152.9 +   TRACE ("%s\n", __PRETTY_FUNCTION__);
  152.10 +   MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
  152.11 +-  bzero (s, n);
  152.12 ++  memset (s, 0, n);
  152.13 + }
  152.14 + 
  152.15 + 
  152.16 +@@ -431,7 +431,7 @@
  152.17 +   TRACE ("%s\n", __PRETTY_FUNCTION__);
  152.18 +   MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
  152.19 +   MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
  152.20 +-  bcopy (src, dest, n);
  152.21 ++  memmove (dest, src, n);
  152.22 + }
  152.23 + 
  152.24 + 
  152.25 +@@ -441,7 +441,7 @@
  152.26 +   TRACE ("%s\n", __PRETTY_FUNCTION__);
  152.27 +   MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
  152.28 +   MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
  152.29 +-  return bcmp (s1, s2, n);
  152.30 ++  return n == 0 ? 0 : memcmp (s1, s2, n);
  152.31 + }
  152.32 + 
  152.33 + 
  152.34 +@@ -450,7 +450,7 @@
  152.35 +   size_t n = strlen (s);
  152.36 +   TRACE ("%s\n", __PRETTY_FUNCTION__);
  152.37 +   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
  152.38 +-  return index (s, c);
  152.39 ++  return strchr (s, c);
  152.40 + }
  152.41 + 
  152.42 + 
  152.43 +@@ -459,7 +459,7 @@
  152.44 +   size_t n = strlen (s);
  152.45 +   TRACE ("%s\n", __PRETTY_FUNCTION__);
  152.46 +   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
  152.47 +-  return rindex (s, c);
  152.48 ++  return strrchr (s, c);
  152.49 + }
  152.50 + 
  152.51 + /* XXX:  stpcpy, memccpy */
   153.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.2 +++ b/patches/gcc/4.4.2/340-ecjx-host-cc.patch	Thu Oct 29 00:10:06 2009 +0100
   153.3 @@ -0,0 +1,13 @@
   153.4 +diff -ur gcc-4.4.1-orig/libjava/Makefile.in gcc-4.4.1/libjava/Makefile.in
   153.5 +--- gcc-4.4.1-orig/libjava/Makefile.in	2009-08-04 04:12:27.000000000 -0700
   153.6 ++++ gcc-4.4.1/libjava/Makefile.in	2009-09-23 22:03:15.750951483 -0700
   153.7 +@@ -8874,6 +8874,9 @@
   153.8 + ecjx$(EXEEXT): $(ecjx_OBJECTS) $(ecjx_DEPENDENCIES) 
   153.9 + 	@rm -f ecjx$(EXEEXT)
  153.10 + 	$(ecjx_LINK) $(ecjx_LDFLAGS) $(ecjx_OBJECTS) $(ecjx_LDADD) $(LIBS)
  153.11 ++ecjx.$(OBJEXT): $(ecjx_SOURCES)
  153.12 ++	@rm -f ecjx.$(OBJEXT)
  153.13 ++	$(CC_FOR_BUILD) $(BUILD_CFLAGS) -c -o $@ $<
  153.14 + gappletviewer$(EXEEXT): $(gappletviewer_OBJECTS) $(gappletviewer_DEPENDENCIES) 
  153.15 + 	@rm -f gappletviewer$(EXEEXT)
  153.16 + 	$(gappletviewer_LINK) $(gappletviewer_LDFLAGS) $(gappletviewer_OBJECTS) $(gappletviewer_LDADD) $(LIBS)
   154.1 --- a/patches/gdb/6.4/100-uclibc-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   154.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.3 @@ -1,78 +0,0 @@
   154.4 ---- gdb-6.3/bfd/configure.orig	Fri Oct  8 16:53:56 2004
   154.5 -+++ gdb-6.3/bfd/configure	Sun Feb 27 18:32:58 2005
   154.6 -@@ -3583,6 +3583,11 @@
   154.7 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   154.8 -   ;;
   154.9 - 
  154.10 -+linux-uclibc*)
  154.11 -+  lt_cv_deplibs_check_method=pass_all
  154.12 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  154.13 -+  ;;
  154.14 -+
  154.15 - netbsd* | knetbsd*-gnu)
  154.16 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  154.17 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  154.18 ---- gdb-6.3/libtool.m4.orig	Wed Jul 21 21:21:41 2004
  154.19 -+++ gdb-6.3/libtool.m4	Mon Feb 28 00:08:11 2005
  154.20 -@@ -653,6 +653,11 @@
  154.21 -   fi
  154.22 -   ;;
  154.23 - 
  154.24 -+linux-uclibc*)
  154.25 -+  lt_cv_deplibs_check_method=pass_all
  154.26 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  154.27 -+  ;;
  154.28 -+
  154.29 - newsos6)
  154.30 -   [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
  154.31 -   lt_cv_file_magic_cmd=/usr/bin/file
  154.32 ---- gdb-6.3/ltconfig.orig	Tue Oct  5 15:34:42 2004
  154.33 -+++ gdb-6.3/ltconfig	Sun Feb 27 18:14:41 2005
  154.34 -@@ -602,7 +602,7 @@
  154.35 - 
  154.36 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  154.37 - case $host_os in
  154.38 --linux-gnu*) ;;
  154.39 -+linux-gnu*|linux-uclibc*) ;;
  154.40 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  154.41 - esac
  154.42 - 
  154.43 -@@ -1270,6 +1270,24 @@
  154.44 -   dynamic_linker='GNU/Linux ld.so'
  154.45 -   ;;
  154.46 - 
  154.47 -+linux-uclibc*)
  154.48 -+  version_type=linux
  154.49 -+  need_lib_prefix=no
  154.50 -+  need_version=no
  154.51 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  154.52 -+  soname_spec='${libname}${release}.so$major'
  154.53 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
  154.54 -+  shlibpath_var=LD_LIBRARY_PATH
  154.55 -+  shlibpath_overrides_runpath=no
  154.56 -+  # This implies no fast_install, which is unacceptable.
  154.57 -+  # Some rework will be needed to allow for fast_install
  154.58 -+  # before this can be enabled.
  154.59 -+  # Note: copied from linux-gnu, and may not be appropriate.
  154.60 -+  hardcode_into_libs=yes
  154.61 -+  # Assume using the uClibc dynamic linker.
  154.62 -+  dynamic_linker="uClibc ld.so"
  154.63 -+  ;;
  154.64 -+
  154.65 - netbsd*)
  154.66 -   need_lib_prefix=no
  154.67 -   need_version=no
  154.68 ---- gdb-6.3/opcodes/configure.orig	Fri Sep 17 08:13:38 2004
  154.69 -+++ gdb-6.3/opcodes/configure	Mon Feb 28 00:09:42 2005
  154.70 -@@ -3595,6 +3595,11 @@
  154.71 -   fi
  154.72 -   ;;
  154.73 - 
  154.74 -+linux-uclibc*)
  154.75 -+  lt_cv_deplibs_check_method=pass_all
  154.76 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  154.77 -+  ;;
  154.78 -+
  154.79 - newsos6)
  154.80 -   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
  154.81 -   lt_cv_file_magic_cmd=/usr/bin/file
   155.1 --- a/patches/gdb/6.4/110-uclibc-readline-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   155.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   155.3 @@ -1,15 +0,0 @@
   155.4 ---- gdb-6.1.1-dist/readline/configure	2003-05-27 18:29:47.000000000 -0500
   155.5 -+++ gdb-6.1.1/readline/configure	2004-08-09 14:20:23.000000000 -0500
   155.6 -@@ -6249,7 +6249,12 @@
   155.7 - 
   155.8 - 
   155.9 - echo "$as_me:$LINENO: checking for mbstate_t" >&5
  155.10 -+echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6
  155.11 - echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
  155.12 -+if test "${bash_cv_have_mbstate_t+set}" != set; then
  155.13 -+  bash_cv_have_mbstate_t=yes
  155.14 -+  echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6
  155.15 -+fi
  155.16 - if test "${bash_cv_have_mbstate_t+set}" = set; then
  155.17 -   echo $ECHO_N "(cached) $ECHO_C" >&6
  155.18 - else
   156.1 --- a/patches/gdb/6.4/120-thread-timeout.patch	Wed Oct 28 12:03:38 2009 +0100
   156.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   156.3 @@ -1,34 +0,0 @@
   156.4 ---- gdb-6.3.org/gdb/gdbserver/thread-db.c	2004-10-17 02:42:00.000000000 +0900
   156.5 -+++ gdb-6.3/gdb/gdbserver/thread-db.c	2005-01-27 12:19:29.000000000 +0900
   156.6 -@@ -21,6 +21,7 @@
   156.7 -    Foundation, Inc., 59 Temple Place - Suite 330,
   156.8 -    Boston, MA 02111-1307, USA.  */
   156.9 - 
  156.10 -+#include <unistd.h>
  156.11 - #include "server.h"
  156.12 - 
  156.13 - #include "linux-low.h"
  156.14 -@@ -142,6 +143,7 @@
  156.15 -   td_event_msg_t msg;
  156.16 -   td_err_e err;
  156.17 -   struct inferior_linux_data *tdata;
  156.18 -+  int timeout;
  156.19 - 
  156.20 -   if (debug_threads)
  156.21 -     fprintf (stderr, "Thread creation event.\n");
  156.22 -@@ -152,7 +154,13 @@
  156.23 -      In the LinuxThreads implementation, this is safe,
  156.24 -      because all events come from the manager thread
  156.25 -      (except for its own creation, of course).  */
  156.26 --  err = td_ta_event_getmsg (thread_agent, &msg);
  156.27 -+  for (timeout = 0; timeout < 50000; timeout++)
  156.28 -+    {
  156.29 -+      err = td_ta_event_getmsg (thread_agent, &msg);
  156.30 -+      if (err != TD_NOMSG)
  156.31 -+	break;
  156.32 -+      usleep(1000);
  156.33 -+    }
  156.34 -   if (err != TD_OK)
  156.35 -     fprintf (stderr, "thread getmsg err: %s\n",
  156.36 - 	     thread_db_err_str (err));
  156.37 -
   157.1 --- a/patches/gdb/6.4/130-fix-compile-flag-mismatch.patch	Wed Oct 28 12:03:38 2009 +0100
   157.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   157.3 @@ -1,87 +0,0 @@
   157.4 -diff -ur gdb-6.4/gdb/configure gdb-6.4-patched/gdb/configure
   157.5 ---- gdb-6.4/gdb/configure	2005-07-25 10:08:40.000000000 -0500
   157.6 -+++ gdb-6.4-patched/gdb/configure	2007-02-05 13:22:36.000000000 -0600
   157.7 -@@ -309,7 +309,7 @@
   157.8 - # include <unistd.h>
   157.9 - #endif"
  157.10 - 
  157.11 --ac_subdirs_all="$ac_subdirs_all doc testsuite"
  157.12 -+ac_subdirs_all="$ac_subdirs_all doc"
  157.13 - ac_subdirs_all="$ac_subdirs_all gdbtk"
  157.14 - ac_subdirs_all="$ac_subdirs_all multi-ice"
  157.15 - ac_subdirs_all="$ac_subdirs_all gdbserver"
  157.16 -@@ -5940,7 +5940,7 @@
  157.17 - 
  157.18 - 
  157.19 - 
  157.20 --subdirs="$subdirs doc testsuite"
  157.21 -+subdirs="$subdirs doc"
  157.22 - 
  157.23 - 
  157.24 - . $srcdir/configure.host
  157.25 -diff -ur gdb-6.4/gdb/gdbserver/configure gdb-6.4-patched/gdb/gdbserver/configure
  157.26 ---- gdb-6.4/gdb/gdbserver/configure	2005-09-17 18:14:37.000000000 -0500
  157.27 -+++ gdb-6.4-patched/gdb/gdbserver/configure	2007-02-05 13:22:58.000000000 -0600
  157.28 -@@ -1239,7 +1239,7 @@
  157.29 -       ac_cache_corrupted=: ;;
  157.30 -     ,);;
  157.31 -     *)
  157.32 --      if test "x$ac_old_val" != "x$ac_new_val"; then
  157.33 -+      if test "`echo $ac_old_val`" != "`echo $ac_new_val`"; then
  157.34 - 	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  157.35 - echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  157.36 - 	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
  157.37 -diff -ur gdb-6.4/gdb/testsuite/configure gdb-6.4-patched/gdb/testsuite/configure
  157.38 ---- gdb-6.4/gdb/testsuite/configure	2005-04-11 09:13:12.000000000 -0500
  157.39 -+++ gdb-6.4-patched/gdb/testsuite/configure	2007-02-05 13:22:36.000000000 -0600
  157.40 -@@ -1248,7 +1248,7 @@
  157.41 -       ac_cache_corrupted=: ;;
  157.42 -     ,);;
  157.43 -     *)
  157.44 --      if test "x$ac_old_val" != "x$ac_new_val"; then
  157.45 -+      if test "`echo $ac_old_val" != "`echo $ac_new_val"; then
  157.46 - 	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  157.47 - echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  157.48 - 	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
  157.49 -diff -ur gdb-6.4/Makefile.in gdb-6.4-patched/Makefile.in
  157.50 ---- gdb-6.4/Makefile.in	2005-12-01 23:29:54.000000000 -0600
  157.51 -+++ gdb-6.4-patched/Makefile.in	2007-02-05 13:22:36.000000000 -0600
  157.52 -@@ -383,7 +383,7 @@
  157.53 - # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  157.54 - # (which we know are built with gcc) are built with optimizations so
  157.55 - # prepend -O2 when setting CFLAGS_FOR_TARGET.
  157.56 --CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  157.57 -+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  157.58 - SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  157.59 - 
  157.60 - # If GCC_FOR_TARGET is not overriden on the command line, then this
  157.61 -@@ -423,7 +423,7 @@
  157.62 -     fi; \
  157.63 -   fi`
  157.64 - 
  157.65 --CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  157.66 -+CXXFLAGS_FOR_TARGET = $(strip $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  157.67 - LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
  157.68 - 
  157.69 - GCJ_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCJ_FOR_TARGET@ $(FLAGS_FOR_TARGET)
  157.70 -diff -ur gdb-6.4/Makefile.tpl gdb-6.4-patched/Makefile.tpl
  157.71 ---- gdb-6.4/Makefile.tpl	2005-10-22 05:37:55.000000000 -0500
  157.72 -+++ gdb-6.4-patched/Makefile.tpl	2007-02-05 13:22:36.000000000 -0600
  157.73 -@@ -386,7 +386,7 @@
  157.74 - # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  157.75 - # (which we know are built with gcc) are built with optimizations so
  157.76 - # prepend -O2 when setting CFLAGS_FOR_TARGET.
  157.77 --CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  157.78 -+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  157.79 - SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  157.80 - 
  157.81 - # If GCC_FOR_TARGET is not overriden on the command line, then this
  157.82 -@@ -426,7 +426,7 @@
  157.83 -     fi; \
  157.84 -   fi`
  157.85 - 
  157.86 --CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  157.87 -+CXXFLAGS_FOR_TARGET = $(strip $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  157.88 - LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
  157.89 - 
  157.90 - GCJ_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCJ_FOR_TARGET@ $(FLAGS_FOR_TARGET)
   158.1 --- a/patches/gdb/6.4/400-mips-coredump.patch-2.4.23-29	Wed Oct 28 12:03:38 2009 +0100
   158.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   158.3 @@ -1,28 +0,0 @@
   158.4 -Sometime around 2.4.22-23, the mips pt_regs.h fields were reordered, breaking
   158.5 -coredump handling by gdb for current kernels.  Update the hardcoded constants
   158.6 -to reflect the change.
   158.7 ---- gdb-6.2.1/gdb/mips-linux-tdep.c-orig	2004-10-29 14:23:55.000000000 -0500
   158.8 -+++ gdb-6.2.1/gdb/mips-linux-tdep.c	2004-10-29 14:26:44.000000000 -0500
   158.9 -@@ -53,12 +53,22 @@
  158.10 - 
  158.11 - #define EF_REG0			6
  158.12 - #define EF_REG31		37
  158.13 -+
  158.14 -+#if 0
  158.15 - #define EF_LO			38
  158.16 - #define EF_HI			39
  158.17 - #define EF_CP0_EPC		40
  158.18 - #define EF_CP0_BADVADDR		41
  158.19 - #define EF_CP0_STATUS		42
  158.20 - #define EF_CP0_CAUSE		43
  158.21 -+#else
  158.22 -+#define EF_CP0_STATUS		38
  158.23 -+#define EF_LO			39
  158.24 -+#define EF_HI			40
  158.25 -+#define EF_CP0_BADVADDR		41
  158.26 -+#define EF_CP0_CAUSE		42
  158.27 -+#define EF_CP0_EPC		43
  158.28 -+#endif
  158.29 - 
  158.30 - #define EF_SIZE			180
  158.31 - 
   159.1 --- a/patches/gdb/6.5/100-uclibc-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   159.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   159.3 @@ -1,78 +0,0 @@
   159.4 ---- gdb-6.3/bfd/configure.orig	Fri Oct  8 16:53:56 2004
   159.5 -+++ gdb-6.3/bfd/configure	Sun Feb 27 18:32:58 2005
   159.6 -@@ -3583,6 +3583,11 @@
   159.7 -   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
   159.8 -   ;;
   159.9 - 
  159.10 -+linux-uclibc*)
  159.11 -+  lt_cv_deplibs_check_method=pass_all
  159.12 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  159.13 -+  ;;
  159.14 -+
  159.15 - netbsd* | knetbsd*-gnu)
  159.16 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  159.17 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  159.18 ---- gdb-6.3/libtool.m4.orig	Wed Jul 21 21:21:41 2004
  159.19 -+++ gdb-6.3/libtool.m4	Mon Feb 28 00:08:11 2005
  159.20 -@@ -653,6 +653,11 @@
  159.21 -   fi
  159.22 -   ;;
  159.23 - 
  159.24 -+linux-uclibc*)
  159.25 -+  lt_cv_deplibs_check_method=pass_all
  159.26 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  159.27 -+  ;;
  159.28 -+
  159.29 - newsos6)
  159.30 -   [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
  159.31 -   lt_cv_file_magic_cmd=/usr/bin/file
  159.32 ---- gdb-6.3/ltconfig.orig	Tue Oct  5 15:34:42 2004
  159.33 -+++ gdb-6.3/ltconfig	Sun Feb 27 18:14:41 2005
  159.34 -@@ -602,7 +602,7 @@
  159.35 - 
  159.36 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  159.37 - case $host_os in
  159.38 --linux-gnu*) ;;
  159.39 -+linux-gnu*|linux-uclibc*) ;;
  159.40 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  159.41 - esac
  159.42 - 
  159.43 -@@ -1270,6 +1270,24 @@
  159.44 -   dynamic_linker='GNU/Linux ld.so'
  159.45 -   ;;
  159.46 - 
  159.47 -+linux-uclibc*)
  159.48 -+  version_type=linux
  159.49 -+  need_lib_prefix=no
  159.50 -+  need_version=no
  159.51 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  159.52 -+  soname_spec='${libname}${release}.so$major'
  159.53 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
  159.54 -+  shlibpath_var=LD_LIBRARY_PATH
  159.55 -+  shlibpath_overrides_runpath=no
  159.56 -+  # This implies no fast_install, which is unacceptable.
  159.57 -+  # Some rework will be needed to allow for fast_install
  159.58 -+  # before this can be enabled.
  159.59 -+  # Note: copied from linux-gnu, and may not be appropriate.
  159.60 -+  hardcode_into_libs=yes
  159.61 -+  # Assume using the uClibc dynamic linker.
  159.62 -+  dynamic_linker="uClibc ld.so"
  159.63 -+  ;;
  159.64 -+
  159.65 - netbsd*)
  159.66 -   need_lib_prefix=no
  159.67 -   need_version=no
  159.68 ---- gdb-6.3/opcodes/configure.orig	Fri Sep 17 08:13:38 2004
  159.69 -+++ gdb-6.3/opcodes/configure	Mon Feb 28 00:09:42 2005
  159.70 -@@ -3595,6 +3595,11 @@
  159.71 -   fi
  159.72 -   ;;
  159.73 - 
  159.74 -+linux-uclibc*)
  159.75 -+  lt_cv_deplibs_check_method=pass_all
  159.76 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  159.77 -+  ;;
  159.78 -+
  159.79 - newsos6)
  159.80 -   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
  159.81 -   lt_cv_file_magic_cmd=/usr/bin/file
   160.1 --- a/patches/gdb/6.5/110-uclibc-readline-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   160.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   160.3 @@ -1,15 +0,0 @@
   160.4 ---- gdb-6.1.1-dist/readline/configure	2003-05-27 18:29:47.000000000 -0500
   160.5 -+++ gdb-6.1.1/readline/configure	2004-08-09 14:20:23.000000000 -0500
   160.6 -@@ -6249,7 +6249,12 @@
   160.7 - 
   160.8 - 
   160.9 - echo "$as_me:$LINENO: checking for mbstate_t" >&5
  160.10 -+echo $ECHO_N "bash_cv_have_mbstate_t=$bash_cv_have_mbstate_t" >&6
  160.11 - echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
  160.12 -+if test "${bash_cv_have_mbstate_t+set}" != set; then
  160.13 -+  bash_cv_have_mbstate_t=yes
  160.14 -+  echo $ECHO_N "WARNING!! forcing to yes!!! $ECHO_C" >&6
  160.15 -+fi
  160.16 - if test "${bash_cv_have_mbstate_t+set}" = set; then
  160.17 -   echo $ECHO_N "(cached) $ECHO_C" >&6
  160.18 - else
   161.1 --- a/patches/gdb/6.5/120-thread-timeout.patch	Wed Oct 28 12:03:38 2009 +0100
   161.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   161.3 @@ -1,33 +0,0 @@
   161.4 ---- gdb-6.5/./gdb/gdbserver/thread-db.c.orig	2006-03-15 08:13:29.000000000 -0800
   161.5 -+++ gdb-6.5/./gdb/gdbserver/thread-db.c	2008-04-01 21:21:23.000000000 -0700
   161.6 -@@ -21,6 +21,7 @@
   161.7 -    Foundation, Inc., 51 Franklin Street, Fifth Floor,
   161.8 -    Boston, MA 02110-1301, USA.  */
   161.9 - 
  161.10 -+#include <unistd.h>
  161.11 - #include "server.h"
  161.12 - 
  161.13 - #include "linux-low.h"
  161.14 -@@ -134,6 +135,7 @@ thread_db_create_event (CORE_ADDR where)
  161.15 -   td_event_msg_t msg;
  161.16 -   td_err_e err;
  161.17 -   struct inferior_linux_data *tdata;
  161.18 -+  int timeout;
  161.19 - 
  161.20 -   if (debug_threads)
  161.21 -     fprintf (stderr, "Thread creation event.\n");
  161.22 -@@ -144,7 +146,13 @@ thread_db_create_event (CORE_ADDR where)
  161.23 -      In the LinuxThreads implementation, this is safe,
  161.24 -      because all events come from the manager thread
  161.25 -      (except for its own creation, of course).  */
  161.26 --  err = td_ta_event_getmsg (thread_agent, &msg);
  161.27 -+  for (timeout = 0; timeout < 50000; timeout++)
  161.28 -+    {
  161.29 -+      err = td_ta_event_getmsg (thread_agent, &msg);
  161.30 -+      if (err != TD_NOMSG)
  161.31 -+	break;
  161.32 -+      usleep(1000);
  161.33 -+    }
  161.34 -   if (err != TD_OK)
  161.35 -     fprintf (stderr, "thread getmsg err: %s\n",
  161.36 - 	     thread_db_err_str (err));
   162.1 --- a/patches/gdb/6.5/130-fix-compile-flag-mismatch.patch	Wed Oct 28 12:03:38 2009 +0100
   162.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   162.3 @@ -1,69 +0,0 @@
   162.4 -diff -ur gdb-6.4/gdb/configure gdb-6.4-patched/gdb/configure
   162.5 ---- gdb-6.4/gdb/configure	2005-07-25 10:08:40.000000000 -0500
   162.6 -+++ gdb-6.4-patched/gdb/configure	2007-02-05 13:22:36.000000000 -0600
   162.7 -@@ -309,7 +309,7 @@
   162.8 - # include <unistd.h>
   162.9 - #endif"
  162.10 - 
  162.11 --ac_subdirs_all="$ac_subdirs_all doc testsuite"
  162.12 -+ac_subdirs_all="$ac_subdirs_all doc"
  162.13 - ac_subdirs_all="$ac_subdirs_all gdbtk"
  162.14 - ac_subdirs_all="$ac_subdirs_all multi-ice"
  162.15 - ac_subdirs_all="$ac_subdirs_all gdbserver"
  162.16 -@@ -5940,7 +5940,7 @@
  162.17 - 
  162.18 - 
  162.19 - 
  162.20 --subdirs="$subdirs doc testsuite"
  162.21 -+subdirs="$subdirs doc"
  162.22 - 
  162.23 - 
  162.24 - . $srcdir/configure.host
  162.25 -diff -ur gdb-6.4/gdb/gdbserver/configure gdb-6.4-patched/gdb/gdbserver/configure
  162.26 ---- gdb-6.4/gdb/gdbserver/configure	2005-09-17 18:14:37.000000000 -0500
  162.27 -+++ gdb-6.4-patched/gdb/gdbserver/configure	2007-02-05 13:22:58.000000000 -0600
  162.28 -@@ -1239,7 +1239,7 @@
  162.29 -       ac_cache_corrupted=: ;;
  162.30 -     ,);;
  162.31 -     *)
  162.32 --      if test "x$ac_old_val" != "x$ac_new_val"; then
  162.33 -+      if test "`echo $ac_old_val`" != "`echo $ac_new_val`"; then
  162.34 - 	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  162.35 - echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  162.36 - 	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
  162.37 -diff -ur gdb-6.4/gdb/testsuite/configure gdb-6.4-patched/gdb/testsuite/configure
  162.38 ---- gdb-6.4/gdb/testsuite/configure	2005-04-11 09:13:12.000000000 -0500
  162.39 -+++ gdb-6.4-patched/gdb/testsuite/configure	2007-02-05 13:22:36.000000000 -0600
  162.40 -@@ -1248,7 +1248,7 @@
  162.41 -       ac_cache_corrupted=: ;;
  162.42 -     ,);;
  162.43 -     *)
  162.44 --      if test "x$ac_old_val" != "x$ac_new_val"; then
  162.45 -+      if test "`echo $ac_old_val" != "`echo $ac_new_val"; then
  162.46 - 	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  162.47 - echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  162.48 - 	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
  162.49 -diff -ur gdb-6.4/Makefile.in gdb-6.4-patched/Makefile.in
  162.50 ---- gdb-6.4/Makefile.in	2005-12-01 23:29:54.000000000 -0600
  162.51 -+++ gdb-6.4-patched/Makefile.in	2007-02-05 13:22:36.000000000 -0600
  162.52 -@@ -383,7 +383,7 @@
  162.53 - # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  162.54 - # (which we know are built with gcc) are built with optimizations so
  162.55 - # prepend -O2 when setting CFLAGS_FOR_TARGET.
  162.56 --CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  162.57 -+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  162.58 - SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  162.59 - 
  162.60 - # If GCC_FOR_TARGET is not overriden on the command line, then this
  162.61 -diff -ur gdb-6.4/Makefile.tpl gdb-6.4-patched/Makefile.tpl
  162.62 ---- gdb-6.4/Makefile.tpl	2005-10-22 05:37:55.000000000 -0500
  162.63 -+++ gdb-6.4-patched/Makefile.tpl	2007-02-05 13:22:36.000000000 -0600
  162.64 -@@ -386,7 +386,7 @@
  162.65 - # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  162.66 - # (which we know are built with gcc) are built with optimizations so
  162.67 - # prepend -O2 when setting CFLAGS_FOR_TARGET.
  162.68 --CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  162.69 -+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  162.70 - SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  162.71 - 
  162.72 - # If GCC_FOR_TARGET is not overriden on the command line, then this
   163.1 --- a/patches/gdb/6.5/400-mips-coredump.patch-2.4.23-29	Wed Oct 28 12:03:38 2009 +0100
   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.6/100-uclibc-conf.patch	Wed Oct 28 12:03:38 2009 +0100
   164.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.3 @@ -1,82 +0,0 @@
   164.4 -diff -rNdup gdb-6.6.orig/bfd/configure gdb-6.6/bfd/configure
   164.5 ---- gdb-6.6.orig/bfd/configure	2006-10-25 08:49:20.000000000 +0200
   164.6 -+++ gdb-6.6/bfd/configure	2007-05-14 10:35:50.000000000 +0200
   164.7 -@@ -3579,6 +3579,11 @@ linux-gnu*)
   164.8 -   lt_cv_deplibs_check_method=pass_all
   164.9 -   ;;
  164.10 - 
  164.11 -+linux-uclibc*)
  164.12 -+  lt_cv_deplibs_check_method=pass_all
  164.13 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  164.14 -+  ;;
  164.15 -+
  164.16 - netbsd* | knetbsd*-gnu)
  164.17 -   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
  164.18 -     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
  164.19 -diff -rNdup gdb-6.6.orig/libtool.m4 gdb-6.6/libtool.m4
  164.20 ---- gdb-6.6.orig/libtool.m4	2005-12-27 17:37:57.000000000 +0100
  164.21 -+++ gdb-6.6/libtool.m4	2007-05-14 10:35:50.000000000 +0200
  164.22 -@@ -751,6 +751,11 @@ netbsd* | knetbsd*-gnu)
  164.23 -   fi
  164.24 -   ;;
  164.25 - 
  164.26 -+linux-uclibc*)
  164.27 -+  lt_cv_deplibs_check_method=pass_all
  164.28 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  164.29 -+  ;;
  164.30 -+
  164.31 - newsos6)
  164.32 -   [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
  164.33 -   lt_cv_file_magic_cmd=/usr/bin/file
  164.34 -diff -rNdup gdb-6.6.orig/ltconfig gdb-6.6/ltconfig
  164.35 ---- gdb-6.6.orig/ltconfig	2006-07-04 22:31:03.000000000 +0200
  164.36 -+++ gdb-6.6/ltconfig	2007-05-14 10:35:50.000000000 +0200
  164.37 -@@ -602,7 +602,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
  164.38 - 
  164.39 - # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
  164.40 - case $host_os in
  164.41 --linux-gnu*) ;;
  164.42 -+linux-gnu*|linux-uclibc*) ;;
  164.43 - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
  164.44 - esac
  164.45 - 
  164.46 -@@ -1270,6 +1270,24 @@ linux-gnu*)
  164.47 -   dynamic_linker='GNU/Linux ld.so'
  164.48 -   ;;
  164.49 - 
  164.50 -+linux-uclibc*)
  164.51 -+  version_type=linux
  164.52 -+  need_lib_prefix=no
  164.53 -+  need_version=no
  164.54 -+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
  164.55 -+  soname_spec='${libname}${release}.so$major'
  164.56 -+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
  164.57 -+  shlibpath_var=LD_LIBRARY_PATH
  164.58 -+  shlibpath_overrides_runpath=no
  164.59 -+  # This implies no fast_install, which is unacceptable.
  164.60 -+  # Some rework will be needed to allow for fast_install
  164.61 -+  # before this can be enabled.
  164.62 -+  # Note: copied from linux-gnu, and may not be appropriate.
  164.63 -+  hardcode_into_libs=yes
  164.64 -+  # Assume using the uClibc dynamic linker.
  164.65 -+  dynamic_linker="uClibc ld.so"
  164.66 -+  ;;
  164.67 -+
  164.68 - netbsd*)
  164.69 -   need_lib_prefix=no
  164.70 -   need_version=no
  164.71 -diff -rNdup gdb-6.6.orig/opcodes/configure gdb-6.6/opcodes/configure
  164.72 ---- gdb-6.6.orig/opcodes/configure	2006-10-25 08:49:20.000000000 +0200
  164.73 -+++ gdb-6.6/opcodes/configure	2007-05-14 10:35:50.000000000 +0200
  164.74 -@@ -3590,6 +3590,11 @@ netbsd* | knetbsd*-gnu)
  164.75 -   fi
  164.76 -   ;;
  164.77 - 
  164.78 -+linux-uclibc*)
  164.79 -+  lt_cv_deplibs_check_method=pass_all
  164.80 -+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
  164.81 -+  ;;
  164.82 -+
  164.83 - newsos6)
  164.84 -   lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
  164.85 -   lt_cv_file_magic_cmd=/usr/bin/file
   165.1 --- a/patches/gdb/6.6/110-fix-compile-flag-mismatch.patch	Wed Oct 28 12:03:38 2009 +0100
   165.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   165.3 @@ -1,69 +0,0 @@
   165.4 -diff -rduNp gdb-6.6-100/Makefile.in gdb-6.6/Makefile.in
   165.5 ---- gdb-6.6-100/Makefile.in	2006-12-18 08:21:19.000000000 +0100
   165.6 -+++ gdb-6.6/Makefile.in	2007-05-14 10:54:29.000000000 +0200
   165.7 -@@ -331,7 +331,7 @@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_
   165.8 - # CFLAGS will be just -g.  We want to ensure that TARGET libraries
   165.9 - # (which we know are built with gcc) are built with optimizations so
  165.10 - # prepend -O2 when setting CFLAGS_FOR_TARGET.
  165.11 --CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  165.12 -+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  165.13 - SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  165.14 - CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  165.15 - LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
  165.16 -diff -rduNp gdb-6.6-100/Makefile.tpl gdb-6.6/Makefile.tpl
  165.17 ---- gdb-6.6-100/Makefile.tpl	2006-11-15 00:26:39.000000000 +0100
  165.18 -+++ gdb-6.6/Makefile.tpl	2007-05-14 10:54:29.000000000 +0200
  165.19 -@@ -334,7 +334,7 @@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_
  165.20 - # CFLAGS will be just -g.  We want to ensure that TARGET libraries
  165.21 - # (which we know are built with gcc) are built with optimizations so
  165.22 - # prepend -O2 when setting CFLAGS_FOR_TARGET.
  165.23 --CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  165.24 -+CFLAGS_FOR_TARGET = $(strip $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
  165.25 - SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
  165.26 - CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
  165.27 - LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
  165.28 -diff -rduNp gdb-6.6-100/gdb/configure gdb-6.6/gdb/configure
  165.29 ---- gdb-6.6-100/gdb/configure	2006-12-17 16:38:59.000000000 +0100
  165.30 -+++ gdb-6.6/gdb/configure	2007-05-14 10:55:41.000000000 +0200
  165.31 -@@ -272,7 +272,7 @@ PACKAGE_STRING=
  165.32 - PACKAGE_BUGREPORT=
  165.33 - 
  165.34 - ac_unique_file="main.c"
  165.35 --ac_subdirs_all="$ac_subdirs_all doc testsuite"
  165.36 -+ac_subdirs_all="$ac_subdirs_all doc"
  165.37 - # Factoring default headers for most tests.
  165.38 - ac_includes_default="\
  165.39 - #include <stdio.h>
  165.40 -@@ -3055,7 +3055,7 @@ _ACEOF
  165.41 - 
  165.42 - 
  165.43 - 
  165.44 --subdirs="$subdirs doc testsuite"
  165.45 -+subdirs="$subdirs doc"
  165.46 - 
  165.47 - 
  165.48 - # Provide defaults for some variables set by the per-host and per-target
  165.49 -diff -rduNp gdb-6.6-100/gdb/gdbserver/configure gdb-6.6/gdb/gdbserver/configure
  165.50 ---- gdb-6.6-100/gdb/gdbserver/configure	2006-11-22 01:10:19.000000000 +0100
  165.51 -+++ gdb-6.6/gdb/gdbserver/configure	2007-05-14 10:54:29.000000000 +0200
  165.52 -@@ -1239,7 +1239,7 @@ echo "$as_me: error: \`$ac_var' was not 
  165.53 -       ac_cache_corrupted=: ;;
  165.54 -     ,);;
  165.55 -     *)
  165.56 --      if test "x$ac_old_val" != "x$ac_new_val"; then
  165.57 -+      if test "`echo $ac_old_val`" != "`echo $ac_new_val`"; then
  165.58 - 	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  165.59 - echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  165.60 - 	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
  165.61 -diff -rduNp gdb-6.6-100/gdb/testsuite/configure gdb-6.6/gdb/testsuite/configure
  165.62 ---- gdb-6.6-100/gdb/testsuite/configure	2006-06-21 15:57:21.000000000 +0200
  165.63 -+++ gdb-6.6/gdb/testsuite/configure	2007-05-14 10:54:29.000000000 +0200
  165.64 -@@ -1248,7 +1248,7 @@ echo "$as_me: error: \`$ac_var' was not 
  165.65 -       ac_cache_corrupted=: ;;
  165.66 -     ,);;
  165.67 -     *)
  165.68 --      if test "x$ac_old_val" != "x$ac_new_val"; then
  165.69 -+      if test "`echo $ac_old_val" != "`echo $ac_new_val"; then
  165.70 - 	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
  165.71 - echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
  165.72 - 	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
   166.1 --- a/patches/gdb/6.7.1/100-security-errata-20050610.patch	Wed Oct 28 12:03:38 2009 +0100
   166.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   166.3 @@ -1,205 +0,0 @@
   166.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7.1/35_all_gdb-6.3-security-errata-20050610.patch
   166.5 --= BEGIN original header =-
   166.6 -2005-06-09  Jeff Johnston  <jjohnstn@redhat.com>
   166.7 -
   166.8 -        * gdb.base/gdbinit.exp: New testcase.
   166.9 -        * gdb.base/gdbinit.sample: Sample .gdbinit for gdbinit.exp.
  166.10 -
  166.11 -2005-06-08  Daniel Jacobowitz  <dan@codesourcery.com>
  166.12 -            Jeff Johnston  <jjohnstn@redhat.com>
  166.13 -
  166.14 -        * Makefile.in (cli-cmds.o): Update.
  166.15 -        * configure.in: Add check for getuid.
  166.16 -        * configure: Regenerated.
  166.17 -        * config.in: Ditto.
  166.18 -        * main.c (captured_main): Pass -1 to source_command when loading
  166.19 -        gdbinit files.
  166.20 -        * cli/cli-cmds.c: Include "gdb_stat.h" and <fcntl.h>.
  166.21 -        (source_command): Update documentation.  Check permissions if
  166.22 -        FROM_TTY is -1.
  166.23 -
  166.24 --= END original header =-
  166.25 -diff -durN gdb-6.7.1.orig/gdb/cli/cli-cmds.c gdb-6.7.1/gdb/cli/cli-cmds.c
  166.26 ---- gdb-6.7.1.orig/gdb/cli/cli-cmds.c	2007-08-23 20:08:47.000000000 +0200
  166.27 -+++ gdb-6.7.1/gdb/cli/cli-cmds.c	2008-06-17 23:27:44.000000000 +0200
  166.28 -@@ -36,6 +36,7 @@
  166.29 - #include "objfiles.h"
  166.30 - #include "source.h"
  166.31 - #include "disasm.h"
  166.32 -+#include "gdb_stat.h"
  166.33 - 
  166.34 - #include "ui-out.h"
  166.35 - 
  166.36 -@@ -459,12 +460,31 @@
  166.37 - 
  166.38 -   if (fd == -1)
  166.39 -     {
  166.40 --      if (from_tty)
  166.41 -+      if (from_tty > 0)
  166.42 - 	perror_with_name (file);
  166.43 -       else
  166.44 - 	return;
  166.45 -     }
  166.46 - 
  166.47 -+#ifdef HAVE_GETUID
  166.48 -+  if (from_tty == -1)
  166.49 -+    {
  166.50 -+      struct stat statbuf;
  166.51 -+      if (fstat (fd, &statbuf) < 0)
  166.52 -+	{
  166.53 -+	  perror_with_name (file);
  166.54 -+	  close (fd);
  166.55 -+	  return;
  166.56 -+	}
  166.57 -+      if (statbuf.st_uid != getuid () || (statbuf.st_mode & S_IWOTH))
  166.58 -+	{
  166.59 -+          warning (_("not using untrusted file \"%s\""), file);
  166.60 -+	  close (fd);
  166.61 -+	  return;
  166.62 -+	}
  166.63 -+    }
  166.64 -+#endif
  166.65 -+
  166.66 -   stream = fdopen (fd, FOPEN_RT);
  166.67 -   script_from_file (stream, file);
  166.68 - 
  166.69 -diff -durN gdb-6.7.1.orig/gdb/main.c gdb-6.7.1/gdb/main.c
  166.70 ---- gdb-6.7.1.orig/gdb/main.c	2007-08-23 20:08:36.000000000 +0200
  166.71 -+++ gdb-6.7.1/gdb/main.c	2008-06-17 23:27:44.000000000 +0200
  166.72 -@@ -688,7 +688,7 @@
  166.73 - 
  166.74 -       if (!inhibit_gdbinit)
  166.75 - 	{
  166.76 --	  catch_command_errors (source_script, homeinit, 0, RETURN_MASK_ALL);
  166.77 -+	  catch_command_errors (source_script, homeinit, -1, RETURN_MASK_ALL);
  166.78 - 	}
  166.79 - 
  166.80 -       /* Do stats; no need to do them elsewhere since we'll only
  166.81 -@@ -766,7 +766,7 @@
  166.82 -       || memcmp ((char *) &homebuf, (char *) &cwdbuf, sizeof (struct stat)))
  166.83 -     if (!inhibit_gdbinit)
  166.84 -       {
  166.85 --	catch_command_errors (source_script, gdbinit, 0, RETURN_MASK_ALL);
  166.86 -+	catch_command_errors (source_script, gdbinit, -1, RETURN_MASK_ALL);
  166.87 -       }
  166.88 - 
  166.89 -   for (i = 0; i < ncmd; i++)
  166.90 -diff -durN gdb-6.7.1.orig/gdb/Makefile.in gdb-6.7.1/gdb/Makefile.in
  166.91 ---- gdb-6.7.1.orig/gdb/Makefile.in	2008-06-17 23:27:44.000000000 +0200
  166.92 -+++ gdb-6.7.1/gdb/Makefile.in	2008-06-17 23:27:44.000000000 +0200
  166.93 -@@ -2885,7 +2885,7 @@
  166.94 - 	$(expression_h) $(frame_h) $(value_h) $(language_h) $(filenames_h) \
  166.95 - 	$(objfiles_h) $(source_h) $(disasm_h) $(ui_out_h) $(top_h) \
  166.96 - 	$(cli_decode_h) $(cli_script_h) $(cli_setshow_h) $(cli_cmds_h) \
  166.97 --	$(tui_h)
  166.98 -+	$(tui_h) $(gdb_stat_h)
  166.99 - 	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-cmds.c
 166.100 - cli-decode.o: $(srcdir)/cli/cli-decode.c $(defs_h) $(symtab_h) \
 166.101 - 	$(gdb_regex_h) $(gdb_string_h) $(completer_h) $(ui_out_h) \
 166.102 -diff -durN gdb-6.7.1.orig/gdb/testsuite/gdb.base/gdbinit.exp gdb-6.7.1/gdb/testsuite/gdb.base/gdbinit.exp
 166.103 ---- gdb-6.7.1.orig/gdb/testsuite/gdb.base/gdbinit.exp	1970-01-01 01:00:00.000000000 +0100
 166.104 -+++ gdb-6.7.1/gdb/testsuite/gdb.base/gdbinit.exp	2008-06-17 23:27:44.000000000 +0200
 166.105 -@@ -0,0 +1,98 @@
 166.106 -+#   Copyright 2005
 166.107 -+#   Free Software Foundation, Inc.
 166.108 -+
 166.109 -+# This program is free software; you can redistribute it and/or modify
 166.110 -+# it under the terms of the GNU General Public License as published by
 166.111 -+# the Free Software Foundation; either version 2 of the License, or
 166.112 -+# (at your option) any later version.
 166.113 -+# 
 166.114 -+# This program is distributed in the hope that it will be useful,
 166.115 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
 166.116 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 166.117 -+# GNU General Public License for more details.
 166.118 -+# 
 166.119 -+# You should have received a copy of the GNU General Public License
 166.120 -+# along with this program; if not, write to the Free Software
 166.121 -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
 166.122 -+
 166.123 -+# Please email any bugs, comments, and/or additions to this file to:
 166.124 -+# bug-gdb@prep.ai.mit.edu
 166.125 -+
 166.126 -+# This file was written by Jeff Johnston <jjohnstn@redhat.com>.
 166.127 -+
 166.128 -+if $tracelevel then {
 166.129 -+    strace $tracelevel
 166.130 -+}
 166.131 -+
 166.132 -+set prms_id 0
 166.133 -+set bug_id 0
 166.134 -+
 166.135 -+# are we on a target board
 166.136 -+if [is_remote target] {
 166.137 -+    return
 166.138 -+}
 166.139 -+
 166.140 -+
 166.141 -+global verbose
 166.142 -+global GDB
 166.143 -+global GDBFLAGS
 166.144 -+global gdb_prompt
 166.145 -+global timeout
 166.146 -+global gdb_spawn_id;
 166.147 -+                                                                                
 166.148 -+gdb_stop_suppressing_tests;
 166.149 -+                                                                                
 166.150 -+verbose "Spawning $GDB -nw"
 166.151 -+                                                                                
 166.152 -+if [info exists gdb_spawn_id] {
 166.153 -+    return 0;
 166.154 -+}
 166.155 -+                                                                                
 166.156 -+if ![is_remote host] {
 166.157 -+   if { [which $GDB] == 0 } then {
 166.158 -+        perror "$GDB does not exist."
 166.159 -+        exit 1
 166.160 -+    }
 166.161 -+}
 166.162 -+
 166.163 -+set env(HOME) [pwd]
 166.164 -+remote_exec build "rm .gdbinit"
 166.165 -+remote_exec build "cp ${srcdir}/${subdir}/gdbinit.sample .gdbinit"
 166.166 -+remote_exec build "chmod 646 .gdbinit"
 166.167 -+
 166.168 -+set res [remote_spawn host "$GDB -nw [host_info gdb_opts]"];
 166.169 -+if { $res < 0 || $res == "" } {
 166.170 -+    perror "Spawning $GDB failed."
 166.171 -+    return 1;
 166.172 -+}
 166.173 -+gdb_expect 360 {
 166.174 -+    -re "warning: not using untrusted file.*\.gdbinit.*\[\r\n\]$gdb_prompt $" {
 166.175 -+        pass "untrusted .gdbinit caught."
 166.176 -+    }
 166.177 -+    -re "$gdb_prompt $"     {
 166.178 -+        fail "untrusted .gdbinit caught."
 166.179 -+    }
 166.180 -+    timeout {
 166.181 -+        fail "(timeout) untrusted .gdbinit caught."
 166.182 -+    }
 166.183 -+}
 166.184 -+
 166.185 -+remote_exec build "chmod 644 .gdbinit"
 166.186 -+set res [remote_spawn host "$GDB -nw [host_info gdb_opts]"];
 166.187 -+if { $res < 0 || $res == "" } {
 166.188 -+    perror "Spawning $GDB failed."
 166.189 -+    return 1;
 166.190 -+}
 166.191 -+gdb_expect 360 {
 166.192 -+    -re "warning: not using untrusted file.*\.gdbinit.*\[\r\n\]$gdb_prompt $" {
 166.193 -+        fail "trusted .gdbinit allowed."
 166.194 -+    }
 166.195 -+    -re "in gdbinit.*$gdb_prompt $"     {
 166.196 -+        pass "trusted .gdbinit allowed."
 166.197 -+    }
 166.198 -+    timeout {
 166.199 -+        fail "(timeout) trusted .gdbinit allowed."
 166.200 -+    }
 166.201 -+}
 166.202 -+
 166.203 -+remote_exec build "rm .gdbinit"
 166.204 -diff -durN gdb-6.7.1.orig/gdb/testsuite/gdb.base/gdbinit.sample gdb-6.7.1/gdb/testsuite/gdb.base/gdbinit.sample
 166.205 ---- gdb-6.7.1.orig/gdb/testsuite/gdb.base/gdbinit.sample	1970-01-01 01:00:00.000000000 +0100
 166.206 -+++ gdb-6.7.1/gdb/testsuite/gdb.base/gdbinit.sample	2008-06-17 23:27:44.000000000 +0200
 166.207 -@@ -0,0 +1 @@
 166.208 -+echo "\nin gdbinit"
   167.1 --- a/patches/gdb/6.7.1/110-hppa-offsets.patch	Wed Oct 28 12:03:38 2009 +0100
   167.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   167.3 @@ -1,272 +0,0 @@
   167.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7.1/45_all_gdb-hppa-offsets.patch
   167.5 --= BEGIN original header =-
   167.6 -sanitized headers dont include asm/offsets.h, so cache a local copy 
   167.7 -
   167.8 -http://bugs.gentoo.org/180476
   167.9 -http://lists.parisc-linux.org/pipermail/parisc-linux/2007-February/031162.html
  167.10 -
  167.11 --= END original header =-
  167.12 -diff -durN gdb-6.7.1.orig/gdb/hppa-linux-nat.c gdb-6.7.1/gdb/hppa-linux-nat.c
  167.13 ---- gdb-6.7.1.orig/gdb/hppa-linux-nat.c	2007-08-23 20:08:33.000000000 +0200
  167.14 -+++ gdb-6.7.1/gdb/hppa-linux-nat.c	2008-06-17 23:27:45.000000000 +0200
  167.15 -@@ -32,7 +32,7 @@
  167.16 - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,43)
  167.17 - #include <asm/offset.h>
  167.18 - #else
  167.19 --#include <asm/offsets.h>
  167.20 -+#include <hppa-offsets.h>
  167.21 - #endif
  167.22 - 
  167.23 - #include "hppa-tdep.h"
  167.24 -diff -durN gdb-6.7.1.orig/gdb/hppa-offsets.h gdb-6.7.1/gdb/hppa-offsets.h
  167.25 ---- gdb-6.7.1.orig/gdb/hppa-offsets.h	1970-01-01 01:00:00.000000000 +0100
  167.26 -+++ gdb-6.7.1/gdb/hppa-offsets.h	2008-06-17 23:27:45.000000000 +0200
  167.27 -@@ -0,0 +1,248 @@
  167.28 -+#ifndef __ASM_OFFSETS_H__
  167.29 -+#define __ASM_OFFSETS_H__
  167.30 -+/*
  167.31 -+ * DO NOT MODIFY.
  167.32 -+ *
  167.33 -+ * This file was generated by arch/parisc/Makefile
  167.34 -+ *
  167.35 -+ */
  167.36 -+
  167.37 -+#define TASK_THREAD_INFO 4 /* offsetof(struct task_struct, thread_info) */
  167.38 -+#define TASK_STATE 0 /* offsetof(struct task_struct, state) */
  167.39 -+#define TASK_FLAGS 12 /* offsetof(struct task_struct, flags) */
  167.40 -+#define TASK_SIGPENDING 1188 /* offsetof(struct task_struct, pending) */
  167.41 -+#define TASK_PTRACE 16 /* offsetof(struct task_struct, ptrace) */
  167.42 -+#define TASK_MM 108 /* offsetof(struct task_struct, mm) */
  167.43 -+#define TASK_PERSONALITY 132 /* offsetof(struct task_struct, personality) */
  167.44 -+#define TASK_PID 140 /* offsetof(struct task_struct, pid) */
  167.45 -+
  167.46 -+#define TASK_REGS 664 /* offsetof(struct task_struct, thread.regs) */
  167.47 -+#define TASK_PT_PSW 664 /* offsetof(struct task_struct, thread.regs.gr[ 0]) */
  167.48 -+#define TASK_PT_GR1 668 /* offsetof(struct task_struct, thread.regs.gr[ 1]) */
  167.49 -+#define TASK_PT_GR2 672 /* offsetof(struct task_struct, thread.regs.gr[ 2]) */
  167.50 -+#define TASK_PT_GR3 676 /* offsetof(struct task_struct, thread.regs.gr[ 3]) */
  167.51 -+#define TASK_PT_GR4 680 /* offsetof(struct task_struct, thread.regs.gr[ 4]) */
  167.52 -+#define TASK_PT_GR5 684 /* offsetof(struct task_struct, thread.regs.gr[ 5]) */
  167.53 -+#define TASK_PT_GR6 688 /* offsetof(struct task_struct, thread.regs.gr[ 6]) */
  167.54 -+#define TASK_PT_GR7 692 /* offsetof(struct task_struct, thread.regs.gr[ 7]) */
  167.55 -+#define TASK_PT_GR8 696 /* offsetof(struct task_struct, thread.regs.gr[ 8]) */
  167.56 -+#define TASK_PT_GR9 700 /* offsetof(struct task_struct, thread.regs.gr[ 9]) */
  167.57 -+#define TASK_PT_GR10 704 /* offsetof(struct task_struct, thread.regs.gr[10]) */
  167.58 -+#define TASK_PT_GR11 708 /* offsetof(struct task_struct, thread.regs.gr[11]) */
  167.59 -+#define TASK_PT_GR12 712 /* offsetof(struct task_struct, thread.regs.gr[12]) */
  167.60 -+#define TASK_PT_GR13 716 /* offsetof(struct task_struct, thread.regs.gr[13]) */
  167.61 -+#define TASK_PT_GR14 720 /* offsetof(struct task_struct, thread.regs.gr[14]) */
  167.62 -+#define TASK_PT_GR15 724 /* offsetof(struct task_struct, thread.regs.gr[15]) */
  167.63 -+#define TASK_PT_GR16 728 /* offsetof(struct task_struct, thread.regs.gr[16]) */
  167.64 -+#define TASK_PT_GR17 732 /* offsetof(struct task_struct, thread.regs.gr[17]) */
  167.65 -+#define TASK_PT_GR18 736 /* offsetof(struct task_struct, thread.regs.gr[18]) */
  167.66 -+#define TASK_PT_GR19 740 /* offsetof(struct task_struct, thread.regs.gr[19]) */
  167.67 -+#define TASK_PT_GR20 744 /* offsetof(struct task_struct, thread.regs.gr[20]) */
  167.68 -+#define TASK_PT_GR21 748 /* offsetof(struct task_struct, thread.regs.gr[21]) */
  167.69 -+#define TASK_PT_GR22 752 /* offsetof(struct task_struct, thread.regs.gr[22]) */
  167.70 -+#define TASK_PT_GR23 756 /* offsetof(struct task_struct, thread.regs.gr[23]) */
  167.71 -+#define TASK_PT_GR24 760 /* offsetof(struct task_struct, thread.regs.gr[24]) */
  167.72 -+#define TASK_PT_GR25 764 /* offsetof(struct task_struct, thread.regs.gr[25]) */
  167.73 -+#define TASK_PT_GR26 768 /* offsetof(struct task_struct, thread.regs.gr[26]) */
  167.74 -+#define TASK_PT_GR27 772 /* offsetof(struct task_struct, thread.regs.gr[27]) */
  167.75 -+#define TASK_PT_GR28 776 /* offsetof(struct task_struct, thread.regs.gr[28]) */
  167.76 -+#define TASK_PT_GR29 780 /* offsetof(struct task_struct, thread.regs.gr[29]) */
  167.77 -+#define TASK_PT_GR30 784 /* offsetof(struct task_struct, thread.regs.gr[30]) */
  167.78 -+#define TASK_PT_GR31 788 /* offsetof(struct task_struct, thread.regs.gr[31]) */
  167.79 -+#define TASK_PT_FR0 792 /* offsetof(struct task_struct, thread.regs.fr[ 0]) */
  167.80 -+#define TASK_PT_FR1 800 /* offsetof(struct task_struct, thread.regs.fr[ 1]) */
  167.81 -+#define TASK_PT_FR2 808 /* offsetof(struct task_struct, thread.regs.fr[ 2]) */
  167.82 -+#define TASK_PT_FR3 816 /* offsetof(struct task_struct, thread.regs.fr[ 3]) */
  167.83 -+#define TASK_PT_FR4 824 /* offsetof(struct task_struct, thread.regs.fr[ 4]) */
  167.84 -+#define TASK_PT_FR5 832 /* offsetof(struct task_struct, thread.regs.fr[ 5]) */
  167.85 -+#define TASK_PT_FR6 840 /* offsetof(struct task_struct, thread.regs.fr[ 6]) */
  167.86 -+#define TASK_PT_FR7 848 /* offsetof(struct task_struct, thread.regs.fr[ 7]) */
  167.87 -+#define TASK_PT_FR8 856 /* offsetof(struct task_struct, thread.regs.fr[ 8]) */
  167.88 -+#define TASK_PT_FR9 864 /* offsetof(struct task_struct, thread.regs.fr[ 9]) */
  167.89 -+#define TASK_PT_FR10 872 /* offsetof(struct task_struct, thread.regs.fr[10]) */
  167.90 -+#define TASK_PT_FR11 880 /* offsetof(struct task_struct, thread.regs.fr[11]) */
  167.91 -+#define TASK_PT_FR12 888 /* offsetof(struct task_struct, thread.regs.fr[12]) */
  167.92 -+#define TASK_PT_FR13 896 /* offsetof(struct task_struct, thread.regs.fr[13]) */
  167.93 -+#define TASK_PT_FR14 904 /* offsetof(struct task_struct, thread.regs.fr[14]) */
  167.94 -+#define TASK_PT_FR15 912 /* offsetof(struct task_struct, thread.regs.fr[15]) */
  167.95 -+#define TASK_PT_FR16 920 /* offsetof(struct task_struct, thread.regs.fr[16]) */
  167.96 -+#define TASK_PT_FR17 928 /* offsetof(struct task_struct, thread.regs.fr[17]) */
  167.97 -+#define TASK_PT_FR18 936 /* offsetof(struct task_struct, thread.regs.fr[18]) */
  167.98 -+#define TASK_PT_FR19 944 /* offsetof(struct task_struct, thread.regs.fr[19]) */
  167.99 -+#define TASK_PT_FR20 952 /* offsetof(struct task_struct, thread.regs.fr[20]) */
 167.100 -+#define TASK_PT_FR21 960 /* offsetof(struct task_struct, thread.regs.fr[21]) */
 167.101 -+#define TASK_PT_FR22 968 /* offsetof(struct task_struct, thread.regs.fr[22]) */
 167.102 -+#define TASK_PT_FR23 976 /* offsetof(struct task_struct, thread.regs.fr[23]) */
 167.103 -+#define TASK_PT_FR24 984 /* offsetof(struct task_struct, thread.regs.fr[24]) */
 167.104 -+#define TASK_PT_FR25 992 /* offsetof(struct task_struct, thread.regs.fr[25]) */
 167.105 -+#define TASK_PT_FR26 1000 /* offsetof(struct task_struct, thread.regs.fr[26]) */
 167.106 -+#define TASK_PT_FR27 1008 /* offsetof(struct task_struct, thread.regs.fr[27]) */
 167.107 -+#define TASK_PT_FR28 1016 /* offsetof(struct task_struct, thread.regs.fr[28]) */
 167.108 -+#define TASK_PT_FR29 1024 /* offsetof(struct task_struct, thread.regs.fr[29]) */
 167.109 -+#define TASK_PT_FR30 1032 /* offsetof(struct task_struct, thread.regs.fr[30]) */
 167.110 -+#define TASK_PT_FR31 1040 /* offsetof(struct task_struct, thread.regs.fr[31]) */
 167.111 -+#define TASK_PT_SR0 1048 /* offsetof(struct task_struct, thread.regs.sr[ 0]) */
 167.112 -+#define TASK_PT_SR1 1052 /* offsetof(struct task_struct, thread.regs.sr[ 1]) */
 167.113 -+#define TASK_PT_SR2 1056 /* offsetof(struct task_struct, thread.regs.sr[ 2]) */
 167.114 -+#define TASK_PT_SR3 1060 /* offsetof(struct task_struct, thread.regs.sr[ 3]) */
 167.115 -+#define TASK_PT_SR4 1064 /* offsetof(struct task_struct, thread.regs.sr[ 4]) */
 167.116 -+#define TASK_PT_SR5 1068 /* offsetof(struct task_struct, thread.regs.sr[ 5]) */
 167.117 -+#define TASK_PT_SR6 1072 /* offsetof(struct task_struct, thread.regs.sr[ 6]) */
 167.118 -+#define TASK_PT_SR7 1076 /* offsetof(struct task_struct, thread.regs.sr[ 7]) */
 167.119 -+#define TASK_PT_IASQ0 1080 /* offsetof(struct task_struct, thread.regs.iasq[0]) */
 167.120 -+#define TASK_PT_IASQ1 1084 /* offsetof(struct task_struct, thread.regs.iasq[1]) */
 167.121 -+#define TASK_PT_IAOQ0 1088 /* offsetof(struct task_struct, thread.regs.iaoq[0]) */
 167.122 -+#define TASK_PT_IAOQ1 1092 /* offsetof(struct task_struct, thread.regs.iaoq[1]) */
 167.123 -+#define TASK_PT_CR27 1096 /* offsetof(struct task_struct, thread.regs.cr27) */
 167.124 -+#define TASK_PT_ORIG_R28 1104 /* offsetof(struct task_struct, thread.regs.orig_r28) */
 167.125 -+#define TASK_PT_KSP 1108 /* offsetof(struct task_struct, thread.regs.ksp) */
 167.126 -+#define TASK_PT_KPC 1112 /* offsetof(struct task_struct, thread.regs.kpc) */
 167.127 -+#define TASK_PT_SAR 1116 /* offsetof(struct task_struct, thread.regs.sar) */
 167.128 -+#define TASK_PT_IIR 1120 /* offsetof(struct task_struct, thread.regs.iir) */
 167.129 -+#define TASK_PT_ISR 1124 /* offsetof(struct task_struct, thread.regs.isr) */
 167.130 -+#define TASK_PT_IOR 1128 /* offsetof(struct task_struct, thread.regs.ior) */
 167.131 -+
 167.132 -+#define TASK_SZ 1272 /* sizeof(struct task_struct) */
 167.133 -+#define TASK_SZ_ALGN 1344 /* align(sizeof(struct task_struct), 64) */
 167.134 -+
 167.135 -+#define PT_PSW 0 /* offsetof(struct pt_regs, gr[ 0]) */
 167.136 -+#define PT_GR1 4 /* offsetof(struct pt_regs, gr[ 1]) */
 167.137 -+#define PT_GR2 8 /* offsetof(struct pt_regs, gr[ 2]) */
 167.138 -+#define PT_GR3 12 /* offsetof(struct pt_regs, gr[ 3]) */
 167.139 -+#define PT_GR4 16 /* offsetof(struct pt_regs, gr[ 4]) */
 167.140 -+#define PT_GR5 20 /* offsetof(struct pt_regs, gr[ 5]) */
 167.141 -+#define PT_GR6 24 /* offsetof(struct pt_regs, gr[ 6]) */
 167.142 -+#define PT_GR7 28 /* offsetof(struct pt_regs, gr[ 7]) */
 167.143 -+#define PT_GR8 32 /* offsetof(struct pt_regs, gr[ 8]) */
 167.144 -+#define PT_GR9 36 /* offsetof(struct pt_regs, gr[ 9]) */
 167.145 -+#define PT_GR10 40 /* offsetof(struct pt_regs, gr[10]) */
 167.146 -+#define PT_GR11 44 /* offsetof(struct pt_regs, gr[11]) */
 167.147 -+#define PT_GR12 48 /* offsetof(struct pt_regs, gr[12]) */
 167.148 -+#define PT_GR13 52 /* offsetof(struct pt_regs, gr[13]) */
 167.149 -+#define PT_GR14 56 /* offsetof(struct pt_regs, gr[14]) */
 167.150 -+#define PT_GR15 60 /* offsetof(struct pt_regs, gr[15]) */
 167.151 -+#define PT_GR16 64 /* offsetof(struct pt_regs, gr[16]) */
 167.152 -+#define PT_GR17 68 /* offsetof(struct pt_regs, gr[17]) */
 167.153 -+#define PT_GR18 72 /* offsetof(struct pt_regs, gr[18]) */
 167.154 -+#define PT_GR19 76 /* offsetof(struct pt_regs, gr[19]) */
 167.155 -+#define PT_GR20 80 /* offsetof(struct pt_regs, gr[20]) */
 167.156 -+#define PT_GR21 84 /* offsetof(struct pt_regs, gr[21]) */
 167.157 -+#define PT_GR22 88 /* offsetof(struct pt_regs, gr[22]) */
 167.158 -+#define PT_GR23 92 /* offsetof(struct pt_regs, gr[23]) */
 167.159 -+#define PT_GR24 96 /* offsetof(struct pt_regs, gr[24]) */
 167.160 -+#define PT_GR25 100 /* offsetof(struct pt_regs, gr[25]) */
 167.161 -+#define PT_GR26 104 /* offsetof(struct pt_regs, gr[26]) */
 167.162 -+#define PT_GR27 108 /* offsetof(struct pt_regs, gr[27]) */
 167.163 -+#define PT_GR28 112 /* offsetof(struct pt_regs, gr[28]) */
 167.164 -+#define PT_GR29 116 /* offsetof(struct pt_regs, gr[29]) */
 167.165 -+#define PT_GR30 120 /* offsetof(struct pt_regs, gr[30]) */
 167.166 -+#define PT_GR31 124 /* offsetof(struct pt_regs, gr[31]) */
 167.167 -+#define PT_FR0 128 /* offsetof(struct pt_regs, fr[ 0]) */
 167.168 -+#define PT_FR1 136 /* offsetof(struct pt_regs, fr[ 1]) */
 167.169 -+#define PT_FR2 144 /* offsetof(struct pt_regs, fr[ 2]) */
 167.170 -+#define PT_FR3 152 /* offsetof(struct pt_regs, fr[ 3]) */
 167.171 -+#define PT_FR4 160 /* offsetof(struct pt_regs, fr[ 4]) */
 167.172 -+#define PT_FR5 168 /* offsetof(struct pt_regs, fr[ 5]) */
 167.173 -+#define PT_FR6 176 /* offsetof(struct pt_regs, fr[ 6]) */
 167.174 -+#define PT_FR7 184 /* offsetof(struct pt_regs, fr[ 7]) */
 167.175 -+#define PT_FR8 192 /* offsetof(struct pt_regs, fr[ 8]) */
 167.176 -+#define PT_FR9 200 /* offsetof(struct pt_regs, fr[ 9]) */
 167.177 -+#define PT_FR10 208 /* offsetof(struct pt_regs, fr[10]) */
 167.178 -+#define PT_FR11 216 /* offsetof(struct pt_regs, fr[11]) */
 167.179 -+#define PT_FR12 224 /* offsetof(struct pt_regs, fr[12]) */
 167.180 -+#define PT_FR13 232 /* offsetof(struct pt_regs, fr[13]) */
 167.181 -+#define PT_FR14 240 /* offsetof(struct pt_regs, fr[14]) */
 167.182 -+#define PT_FR15 248 /* offsetof(struct pt_regs, fr[15]) */
 167.183 -+#define PT_FR16 256 /* offsetof(struct pt_regs, fr[16]) */
 167.184 -+#define PT_FR17 264 /* offsetof(struct pt_regs, fr[17]) */
 167.185 -+#define PT_FR18 272 /* offsetof(struct pt_regs, fr[18]) */
 167.186 -+#define PT_FR19 280 /* offsetof(struct pt_regs, fr[19]) */
 167.187 -+#define PT_FR20 288 /* offsetof(struct pt_regs, fr[20]) */
 167.188 -+#define PT_FR21 296 /* offsetof(struct pt_regs, fr[21]) */
 167.189 -+#define PT_FR22 304 /* offsetof(struct pt_regs, fr[22]) */
 167.190 -+#define PT_FR23 312 /* offsetof(struct pt_regs, fr[23]) */
 167.191 -+#define PT_FR24 320 /* offsetof(struct pt_regs, fr[24]) */
 167.192 -+#define PT_FR25 328 /* offsetof(struct pt_regs, fr[25]) */
 167.193 -+#define PT_FR26 336 /* offsetof(struct pt_regs, fr[26]) */
 167.194 -+#define PT_FR27 344 /* offsetof(struct pt_regs, fr[27]) */
 167.195 -+#define PT_FR28 352 /* offsetof(struct pt_regs, fr[28]) */
 167.196 -+#define PT_FR29 360 /* offsetof(struct pt_regs, fr[29]) */
 167.197 -+#define PT_FR30 368 /* offsetof(struct pt_regs, fr[30]) */
 167.198 -+#define PT_FR31 376 /* offsetof(struct pt_regs, fr[31]) */
 167.199 -+#define PT_SR0 384 /* offsetof(struct pt_regs, sr[ 0]) */
 167.200 -+#define PT_SR1 388 /* offsetof(struct pt_regs, sr[ 1]) */
 167.201 -+#define PT_SR2 392 /* offsetof(struct pt_regs, sr[ 2]) */
 167.202 -+#define PT_SR3 396 /* offsetof(struct pt_regs, sr[ 3]) */
 167.203 -+#define PT_SR4 400 /* offsetof(struct pt_regs, sr[ 4]) */
 167.204 -+#define PT_SR5 404 /* offsetof(struct pt_regs, sr[ 5]) */
 167.205 -+#define PT_SR6 408 /* offsetof(struct pt_regs, sr[ 6]) */
 167.206 -+#define PT_SR7 412 /* offsetof(struct pt_regs, sr[ 7]) */
 167.207 -+#define PT_IASQ0 416 /* offsetof(struct pt_regs, iasq[0]) */
 167.208 -+#define PT_IASQ1 420 /* offsetof(struct pt_regs, iasq[1]) */
 167.209 -+#define PT_IAOQ0 424 /* offsetof(struct pt_regs, iaoq[0]) */
 167.210 -+#define PT_IAOQ1 428 /* offsetof(struct pt_regs, iaoq[1]) */
 167.211 -+#define PT_CR27 432 /* offsetof(struct pt_regs, cr27) */
 167.212 -+#define PT_ORIG_R28 440 /* offsetof(struct pt_regs, orig_r28) */
 167.213 -+#define PT_KSP 444 /* offsetof(struct pt_regs, ksp) */
 167.214 -+#define PT_KPC 448 /* offsetof(struct pt_regs, kpc) */
 167.215 -+#define PT_SAR 452 /* offsetof(struct pt_regs, sar) */
 167.216 -+#define PT_IIR 456 /* offsetof(struct pt_regs, iir) */
 167.217 -+#define PT_ISR 460 /* offsetof(struct pt_regs, isr) */
 167.218 -+#define PT_IOR 464 /* offsetof(struct pt_regs, ior) */
 167.219 -+#define PT_SIZE 472 /* sizeof(struct pt_regs) */
 167.220 -+#define PT_SZ_ALGN 576 /* align(sizeof(struct pt_regs), 64) */
 167.221 -+
 167.222 -+#define TI_TASK 0 /* offsetof(struct thread_info, task) */
 167.223 -+#define TI_EXEC_DOMAIN 4 /* offsetof(struct thread_info, exec_domain) */
 167.224 -+#define TI_FLAGS 8 /* offsetof(struct thread_info, flags) */
 167.225 -+#define TI_CPU 16 /* offsetof(struct thread_info, cpu) */
 167.226 -+#define TI_SEGMENT 12 /* offsetof(struct thread_info, addr_limit) */
 167.227 -+#define TI_PRE_COUNT 20 /* offsetof(struct thread_info, preempt_count) */
 167.228 -+#define THREAD_SZ 44 /* sizeof(struct thread_info) */
 167.229 -+#define THREAD_SZ_ALGN 128 /* align(sizeof(struct thread_info), 64) */
 167.230 -+
 167.231 -+#define IRQSTAT_SIRQ_PEND 0 /* offsetof(irq_cpustat_t, __softirq_pending) */
 167.232 -+#define IRQSTAT_SZ 64 /* sizeof(irq_cpustat_t) */
 167.233 -+
 167.234 -+#define ICACHE_BASE 8 /* offsetof(struct pdc_cache_info, ic_base) */
 167.235 -+#define ICACHE_STRIDE 12 /* offsetof(struct pdc_cache_info, ic_stride) */
 167.236 -+#define ICACHE_COUNT 16 /* offsetof(struct pdc_cache_info, ic_count) */
 167.237 -+#define ICACHE_LOOP 20 /* offsetof(struct pdc_cache_info, ic_loop) */
 167.238 -+#define DCACHE_BASE 32 /* offsetof(struct pdc_cache_info, dc_base) */
 167.239 -+#define DCACHE_STRIDE 36 /* offsetof(struct pdc_cache_info, dc_stride) */
 167.240 -+#define DCACHE_COUNT 40 /* offsetof(struct pdc_cache_info, dc_count) */
 167.241 -+#define DCACHE_LOOP 44 /* offsetof(struct pdc_cache_info, dc_loop) */
 167.242 -+#define ITLB_SID_BASE 56 /* offsetof(struct pdc_cache_info, it_sp_base) */
 167.243 -+#define ITLB_SID_STRIDE 60 /* offsetof(struct pdc_cache_info, it_sp_stride) */
 167.244 -+#define ITLB_SID_COUNT 64 /* offsetof(struct pdc_cache_info, it_sp_count) */
 167.245 -+#define ITLB_OFF_BASE 68 /* offsetof(struct pdc_cache_info, it_off_base) */
 167.246 -+#define ITLB_OFF_STRIDE 72 /* offsetof(struct pdc_cache_info, it_off_stride) */
 167.247 -+#define ITLB_OFF_COUNT 76 /* offsetof(struct pdc_cache_info, it_off_count) */
 167.248 -+#define ITLB_LOOP 80 /* offsetof(struct pdc_cache_info, it_loop) */
 167.249 -+#define DTLB_SID_BASE 92 /* offsetof(struct pdc_cache_info, dt_sp_base) */
 167.250 -+#define DTLB_SID_STRIDE 96 /* offsetof(struct pdc_cache_info, dt_sp_stride) */
 167.251 -+#define DTLB_SID_COUNT 100 /* offsetof(struct pdc_cache_info, dt_sp_count) */
 167.252 -+#define DTLB_OFF_BASE 104 /* offsetof(struct pdc_cache_info, dt_off_base) */
 167.253 -+#define DTLB_OFF_STRIDE 108 /* offsetof(struct pdc_cache_info, dt_off_stride) */
 167.254 -+#define DTLB_OFF_COUNT 112 /* offsetof(struct pdc_cache_info, dt_off_count) */
 167.255 -+#define DTLB_LOOP 116 /* offsetof(struct pdc_cache_info, dt_loop) */
 167.256 -+
 167.257 -+#define PA_BLOCKSTEP_BIT 1 /* 31-PT_BLOCKSTEP_BIT */
 167.258 -+#define PA_SINGLESTEP_BIT 0 /* 31-PT_SINGLESTEP_BIT */
 167.259 -+
 167.260 -+#define ASM_PMD_SHIFT 21 /* PMD_SHIFT */
 167.261 -+#define ASM_PGDIR_SHIFT 21 /* PGDIR_SHIFT */
 167.262 -+#define ASM_BITS_PER_PGD 11 /* BITS_PER_PGD */
 167.263 -+#define ASM_BITS_PER_PMD 0 /* BITS_PER_PMD */
 167.264 -+#define ASM_BITS_PER_PTE 9 /* BITS_PER_PTE */
 167.265 -+#define ASM_PGD_PMD_OFFSET -8192 /* -(PAGE_SIZE << PGD_ORDER) */
 167.266 -+#define ASM_PMD_ENTRY 128 /* ((PAGE_OFFSET & PMD_MASK) >> PMD_SHIFT) */
 167.267 -+#define ASM_PGD_ENTRY 128 /* PAGE_OFFSET >> PGDIR_SHIFT */
 167.268 -+#define ASM_PGD_ENTRY_SIZE 4 /* PGD_ENTRY_SIZE */
 167.269 -+#define ASM_PMD_ENTRY_SIZE 4 /* PMD_ENTRY_SIZE */
 167.270 -+#define ASM_PTE_ENTRY_SIZE 8 /* PTE_ENTRY_SIZE */
 167.271 -+#define ASM_PT_INITIAL 4 /* PT_INITIAL */
 167.272 -+#define ASM_PAGE_SIZE 4096 /* PAGE_SIZE */
 167.273 -+
 167.274 -+
 167.275 -+#endif
   168.1 --- a/patches/gdb/6.7.1/120-deleted-children.patch	Wed Oct 28 12:03:38 2009 +0100
   168.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.3 @@ -1,26 +0,0 @@
   168.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7.1/50_all_gdb-deleted-children.patch
   168.5 --= BEGIN original header =-
   168.6 -http://bugs.gentoo.org/210636
   168.7 -http://sourceware.org/ml/gdb-patches/2007-11/msg00136.html
   168.8 -
   168.9 -2007-11-07  Vladimir Prus  <vladimir@codesourcery.com>
  168.10 -
  168.11 -	Fix crash when a variable object being deleted
  168.12 -	has any of its children deleted previously.
  168.13 -	
  168.14 -	* varobj.c (delete_variable_1): Don't recurse
  168.15 -	into deleted children.
  168.16 -
  168.17 --= END original header =-
  168.18 -diff -durN gdb-6.7.1.orig/gdb/varobj.c gdb-6.7.1/gdb/varobj.c
  168.19 ---- gdb-6.7.1.orig/gdb/varobj.c	2007-08-31 21:01:17.000000000 +0200
  168.20 -+++ gdb-6.7.1/gdb/varobj.c	2008-06-17 23:27:45.000000000 +0200
  168.21 -@@ -1295,6 +1295,8 @@
  168.22 -   for (i = 0; i < VEC_length (varobj_p, var->children); ++i)
  168.23 -     {   
  168.24 -       varobj_p child = VEC_index (varobj_p, var->children, i);
  168.25 -+      if (!child)
  168.26 -+	continue;
  168.27 -       if (!remove_from_parent_p)
  168.28 - 	child->parent = NULL;
  168.29 -       delete_variable_1 (resultp, delcountp, child, 0, only_children_p);
   169.1 --- a/patches/gdb/6.7.1/130-dwarf-stack-overflow.patch	Wed Oct 28 12:03:38 2009 +0100
   169.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.3 @@ -1,52 +0,0 @@
   169.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7.1/80_all_gdb-6.5-dwarf-stack-overflow.patch
   169.5 --= BEGIN original header =-
   169.6 -http://bugs.gentoo.org/144833
   169.7 -
   169.8 -for gdb/ChangeLog:
   169.9 -2006-08-22  Will Drewry <wad@google.com>
  169.10 -	    Tavis Ormandy <taviso@google.com>
  169.11 -
  169.12 -	* dwarf2read.c (decode_locdesc): Enforce location description stack
  169.13 -	boundaries.
  169.14 -	* dwarfread.c (locval): Likewise.
  169.15 -
  169.16 --= END original header =-
  169.17 -diff -durN gdb-6.7.1.orig/gdb/dwarf2read.c gdb-6.7.1/gdb/dwarf2read.c
  169.18 ---- gdb-6.7.1.orig/gdb/dwarf2read.c	2007-09-05 02:51:48.000000000 +0200
  169.19 -+++ gdb-6.7.1/gdb/dwarf2read.c	2008-06-17 23:27:46.000000000 +0200
  169.20 -@@ -9061,8 +9061,7 @@
  169.21 -    callers will only want a very basic result and this can become a
  169.22 -    complaint.
  169.23 - 
  169.24 --   Note that stack[0] is unused except as a default error return.
  169.25 --   Note that stack overflow is not yet handled.  */
  169.26 -+   Note that stack[0] is unused except as a default error return. */
  169.27 - 
  169.28 - static CORE_ADDR
  169.29 - decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
  169.30 -@@ -9079,7 +9078,7 @@
  169.31 - 
  169.32 -   i = 0;
  169.33 -   stacki = 0;
  169.34 --  stack[stacki] = 0;
  169.35 -+  stack[++stacki] = 0;
  169.36 - 
  169.37 -   while (i < size)
  169.38 -     {
  169.39 -@@ -9261,6 +9260,16 @@
  169.40 - 		     dwarf_stack_op_name (op));
  169.41 - 	  return (stack[stacki]);
  169.42 - 	}
  169.43 -+      /* Enforce maximum stack depth of size-1 to avoid ++stacki writing
  169.44 -+         outside of the allocated space. Also enforce minimum > 0.
  169.45 -+         -- wad@google.com 14 Aug 2006 */
  169.46 -+      if (stacki >= sizeof (stack) / sizeof (*stack) - 1)
  169.47 -+	internal_error (__FILE__, __LINE__,
  169.48 -+	                _("location description stack too deep: %d"),
  169.49 -+	                stacki);
  169.50 -+      if (stacki <= 0)
  169.51 -+	internal_error (__FILE__, __LINE__,
  169.52 -+	                _("location description stack too shallow"));
  169.53 -     }
  169.54 -   return (stack[stacki]);
  169.55 - }
   170.1 --- a/patches/gdb/6.7/100-security-errata-20050610.patch	Wed Oct 28 12:03:38 2009 +0100
   170.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.3 @@ -1,205 +0,0 @@
   170.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7/35_all_gdb-6.3-security-errata-20050610.patch
   170.5 --= BEGIN original header =-
   170.6 -2005-06-09  Jeff Johnston  <jjohnstn@redhat.com>
   170.7 -
   170.8 -        * gdb.base/gdbinit.exp: New testcase.
   170.9 -        * gdb.base/gdbinit.sample: Sample .gdbinit for gdbinit.exp.
  170.10 -
  170.11 -2005-06-08  Daniel Jacobowitz  <dan@codesourcery.com>
  170.12 -            Jeff Johnston  <jjohnstn@redhat.com>
  170.13 -
  170.14 -        * Makefile.in (cli-cmds.o): Update.
  170.15 -        * configure.in: Add check for getuid.
  170.16 -        * configure: Regenerated.
  170.17 -        * config.in: Ditto.
  170.18 -        * main.c (captured_main): Pass -1 to source_command when loading
  170.19 -        gdbinit files.
  170.20 -        * cli/cli-cmds.c: Include "gdb_stat.h" and <fcntl.h>.
  170.21 -        (source_command): Update documentation.  Check permissions if
  170.22 -        FROM_TTY is -1.
  170.23 -
  170.24 --= END original header =-
  170.25 -diff -durN gdb-6.7.orig/gdb/cli/cli-cmds.c gdb-6.7/gdb/cli/cli-cmds.c
  170.26 ---- gdb-6.7.orig/gdb/cli/cli-cmds.c	2007-08-23 20:08:47.000000000 +0200
  170.27 -+++ gdb-6.7/gdb/cli/cli-cmds.c	2008-06-17 23:25:23.000000000 +0200
  170.28 -@@ -36,6 +36,7 @@
  170.29 - #include "objfiles.h"
  170.30 - #include "source.h"
  170.31 - #include "disasm.h"
  170.32 -+#include "gdb_stat.h"
  170.33 - 
  170.34 - #include "ui-out.h"
  170.35 - 
  170.36 -@@ -459,12 +460,31 @@
  170.37 - 
  170.38 -   if (fd == -1)
  170.39 -     {
  170.40 --      if (from_tty)
  170.41 -+      if (from_tty > 0)
  170.42 - 	perror_with_name (file);
  170.43 -       else
  170.44 - 	return;
  170.45 -     }
  170.46 - 
  170.47 -+#ifdef HAVE_GETUID
  170.48 -+  if (from_tty == -1)
  170.49 -+    {
  170.50 -+      struct stat statbuf;
  170.51 -+      if (fstat (fd, &statbuf) < 0)
  170.52 -+	{
  170.53 -+	  perror_with_name (file);
  170.54 -+	  close (fd);
  170.55 -+	  return;
  170.56 -+	}
  170.57 -+      if (statbuf.st_uid != getuid () || (statbuf.st_mode & S_IWOTH))
  170.58 -+	{
  170.59 -+          warning (_("not using untrusted file \"%s\""), file);
  170.60 -+	  close (fd);
  170.61 -+	  return;
  170.62 -+	}
  170.63 -+    }
  170.64 -+#endif
  170.65 -+
  170.66 -   stream = fdopen (fd, FOPEN_RT);
  170.67 -   script_from_file (stream, file);
  170.68 - 
  170.69 -diff -durN gdb-6.7.orig/gdb/main.c gdb-6.7/gdb/main.c
  170.70 ---- gdb-6.7.orig/gdb/main.c	2007-08-23 20:08:36.000000000 +0200
  170.71 -+++ gdb-6.7/gdb/main.c	2008-06-17 23:25:23.000000000 +0200
  170.72 -@@ -688,7 +688,7 @@
  170.73 - 
  170.74 -       if (!inhibit_gdbinit)
  170.75 - 	{
  170.76 --	  catch_command_errors (source_script, homeinit, 0, RETURN_MASK_ALL);
  170.77 -+	  catch_command_errors (source_script, homeinit, -1, RETURN_MASK_ALL);
  170.78 - 	}
  170.79 - 
  170.80 -       /* Do stats; no need to do them elsewhere since we'll only
  170.81 -@@ -766,7 +766,7 @@
  170.82 -       || memcmp ((char *) &homebuf, (char *) &cwdbuf, sizeof (struct stat)))
  170.83 -     if (!inhibit_gdbinit)
  170.84 -       {
  170.85 --	catch_command_errors (source_script, gdbinit, 0, RETURN_MASK_ALL);
  170.86 -+	catch_command_errors (source_script, gdbinit, -1, RETURN_MASK_ALL);
  170.87 -       }
  170.88 - 
  170.89 -   for (i = 0; i < ncmd; i++)
  170.90 -diff -durN gdb-6.7.orig/gdb/Makefile.in gdb-6.7/gdb/Makefile.in
  170.91 ---- gdb-6.7.orig/gdb/Makefile.in	2007-09-05 02:14:02.000000000 +0200
  170.92 -+++ gdb-6.7/gdb/Makefile.in	2008-06-17 23:25:23.000000000 +0200
  170.93 -@@ -2882,7 +2882,7 @@
  170.94 - 	$(expression_h) $(frame_h) $(value_h) $(language_h) $(filenames_h) \
  170.95 - 	$(objfiles_h) $(source_h) $(disasm_h) $(ui_out_h) $(top_h) \
  170.96 - 	$(cli_decode_h) $(cli_script_h) $(cli_setshow_h) $(cli_cmds_h) \
  170.97 --	$(tui_h)
  170.98 -+	$(tui_h) $(gdb_stat_h)
  170.99 - 	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/cli/cli-cmds.c
 170.100 - cli-decode.o: $(srcdir)/cli/cli-decode.c $(defs_h) $(symtab_h) \
 170.101 - 	$(gdb_regex_h) $(gdb_string_h) $(completer_h) $(ui_out_h) \
 170.102 -diff -durN gdb-6.7.orig/gdb/testsuite/gdb.base/gdbinit.exp gdb-6.7/gdb/testsuite/gdb.base/gdbinit.exp
 170.103 ---- gdb-6.7.orig/gdb/testsuite/gdb.base/gdbinit.exp	1970-01-01 01:00:00.000000000 +0100
 170.104 -+++ gdb-6.7/gdb/testsuite/gdb.base/gdbinit.exp	2008-06-17 23:25:23.000000000 +0200
 170.105 -@@ -0,0 +1,98 @@
 170.106 -+#   Copyright 2005
 170.107 -+#   Free Software Foundation, Inc.
 170.108 -+
 170.109 -+# This program is free software; you can redistribute it and/or modify
 170.110 -+# it under the terms of the GNU General Public License as published by
 170.111 -+# the Free Software Foundation; either version 2 of the License, or
 170.112 -+# (at your option) any later version.
 170.113 -+# 
 170.114 -+# This program is distributed in the hope that it will be useful,
 170.115 -+# but WITHOUT ANY WARRANTY; without even the implied warranty of
 170.116 -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 170.117 -+# GNU General Public License for more details.
 170.118 -+# 
 170.119 -+# You should have received a copy of the GNU General Public License
 170.120 -+# along with this program; if not, write to the Free Software
 170.121 -+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
 170.122 -+
 170.123 -+# Please email any bugs, comments, and/or additions to this file to:
 170.124 -+# bug-gdb@prep.ai.mit.edu
 170.125 -+
 170.126 -+# This file was written by Jeff Johnston <jjohnstn@redhat.com>.
 170.127 -+
 170.128 -+if $tracelevel then {
 170.129 -+    strace $tracelevel
 170.130 -+}
 170.131 -+
 170.132 -+set prms_id 0
 170.133 -+set bug_id 0
 170.134 -+
 170.135 -+# are we on a target board
 170.136 -+if [is_remote target] {
 170.137 -+    return
 170.138 -+}
 170.139 -+
 170.140 -+
 170.141 -+global verbose
 170.142 -+global GDB
 170.143 -+global GDBFLAGS
 170.144 -+global gdb_prompt
 170.145 -+global timeout
 170.146 -+global gdb_spawn_id;
 170.147 -+                                                                                
 170.148 -+gdb_stop_suppressing_tests;
 170.149 -+                                                                                
 170.150 -+verbose "Spawning $GDB -nw"
 170.151 -+                                                                                
 170.152 -+if [info exists gdb_spawn_id] {
 170.153 -+    return 0;
 170.154 -+}
 170.155 -+                                                                                
 170.156 -+if ![is_remote host] {
 170.157 -+   if { [which $GDB] == 0 } then {
 170.158 -+        perror "$GDB does not exist."
 170.159 -+        exit 1
 170.160 -+    }
 170.161 -+}
 170.162 -+
 170.163 -+set env(HOME) [pwd]
 170.164 -+remote_exec build "rm .gdbinit"
 170.165 -+remote_exec build "cp ${srcdir}/${subdir}/gdbinit.sample .gdbinit"
 170.166 -+remote_exec build "chmod 646 .gdbinit"
 170.167 -+
 170.168 -+set res [remote_spawn host "$GDB -nw [host_info gdb_opts]"];
 170.169 -+if { $res < 0 || $res == "" } {
 170.170 -+    perror "Spawning $GDB failed."
 170.171 -+    return 1;
 170.172 -+}
 170.173 -+gdb_expect 360 {
 170.174 -+    -re "warning: not using untrusted file.*\.gdbinit.*\[\r\n\]$gdb_prompt $" {
 170.175 -+        pass "untrusted .gdbinit caught."
 170.176 -+    }
 170.177 -+    -re "$gdb_prompt $"     {
 170.178 -+        fail "untrusted .gdbinit caught."
 170.179 -+    }
 170.180 -+    timeout {
 170.181 -+        fail "(timeout) untrusted .gdbinit caught."
 170.182 -+    }
 170.183 -+}
 170.184 -+
 170.185 -+remote_exec build "chmod 644 .gdbinit"
 170.186 -+set res [remote_spawn host "$GDB -nw [host_info gdb_opts]"];
 170.187 -+if { $res < 0 || $res == "" } {
 170.188 -+    perror "Spawning $GDB failed."
 170.189 -+    return 1;
 170.190 -+}
 170.191 -+gdb_expect 360 {
 170.192 -+    -re "warning: not using untrusted file.*\.gdbinit.*\[\r\n\]$gdb_prompt $" {
 170.193 -+        fail "trusted .gdbinit allowed."
 170.194 -+    }
 170.195 -+    -re "in gdbinit.*$gdb_prompt $"     {
 170.196 -+        pass "trusted .gdbinit allowed."
 170.197 -+    }
 170.198 -+    timeout {
 170.199 -+        fail "(timeout) trusted .gdbinit allowed."
 170.200 -+    }
 170.201 -+}
 170.202 -+
 170.203 -+remote_exec build "rm .gdbinit"
 170.204 -diff -durN gdb-6.7.orig/gdb/testsuite/gdb.base/gdbinit.sample gdb-6.7/gdb/testsuite/gdb.base/gdbinit.sample
 170.205 ---- gdb-6.7.orig/gdb/testsuite/gdb.base/gdbinit.sample	1970-01-01 01:00:00.000000000 +0100
 170.206 -+++ gdb-6.7/gdb/testsuite/gdb.base/gdbinit.sample	2008-06-17 23:25:23.000000000 +0200
 170.207 -@@ -0,0 +1 @@
 170.208 -+echo "\nin gdbinit"
   171.1 --- a/patches/gdb/6.7/110-hppa-offsets.patch	Wed Oct 28 12:03:38 2009 +0100
   171.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.3 @@ -1,272 +0,0 @@
   171.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7/45_all_gdb-hppa-offsets.patch
   171.5 --= BEGIN original header =-
   171.6 -sanitized headers dont include asm/offsets.h, so cache a local copy 
   171.7 -
   171.8 -http://bugs.gentoo.org/180476
   171.9 -http://lists.parisc-linux.org/pipermail/parisc-linux/2007-February/031162.html
  171.10 -
  171.11 --= END original header =-
  171.12 -diff -durN gdb-6.7.orig/gdb/hppa-linux-nat.c gdb-6.7/gdb/hppa-linux-nat.c
  171.13 ---- gdb-6.7.orig/gdb/hppa-linux-nat.c	2007-08-23 20:08:33.000000000 +0200
  171.14 -+++ gdb-6.7/gdb/hppa-linux-nat.c	2008-06-17 23:25:28.000000000 +0200
  171.15 -@@ -32,7 +32,7 @@
  171.16 - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,43)
  171.17 - #include <asm/offset.h>
  171.18 - #else
  171.19 --#include <asm/offsets.h>
  171.20 -+#include <hppa-offsets.h>
  171.21 - #endif
  171.22 - 
  171.23 - #include "hppa-tdep.h"
  171.24 -diff -durN gdb-6.7.orig/gdb/hppa-offsets.h gdb-6.7/gdb/hppa-offsets.h
  171.25 ---- gdb-6.7.orig/gdb/hppa-offsets.h	1970-01-01 01:00:00.000000000 +0100
  171.26 -+++ gdb-6.7/gdb/hppa-offsets.h	2008-06-17 23:25:28.000000000 +0200
  171.27 -@@ -0,0 +1,248 @@
  171.28 -+#ifndef __ASM_OFFSETS_H__
  171.29 -+#define __ASM_OFFSETS_H__
  171.30 -+/*
  171.31 -+ * DO NOT MODIFY.
  171.32 -+ *
  171.33 -+ * This file was generated by arch/parisc/Makefile
  171.34 -+ *
  171.35 -+ */
  171.36 -+
  171.37 -+#define TASK_THREAD_INFO 4 /* offsetof(struct task_struct, thread_info) */
  171.38 -+#define TASK_STATE 0 /* offsetof(struct task_struct, state) */
  171.39 -+#define TASK_FLAGS 12 /* offsetof(struct task_struct, flags) */
  171.40 -+#define TASK_SIGPENDING 1188 /* offsetof(struct task_struct, pending) */
  171.41 -+#define TASK_PTRACE 16 /* offsetof(struct task_struct, ptrace) */
  171.42 -+#define TASK_MM 108 /* offsetof(struct task_struct, mm) */
  171.43 -+#define TASK_PERSONALITY 132 /* offsetof(struct task_struct, personality) */
  171.44 -+#define TASK_PID 140 /* offsetof(struct task_struct, pid) */
  171.45 -+
  171.46 -+#define TASK_REGS 664 /* offsetof(struct task_struct, thread.regs) */
  171.47 -+#define TASK_PT_PSW 664 /* offsetof(struct task_struct, thread.regs.gr[ 0]) */
  171.48 -+#define TASK_PT_GR1 668 /* offsetof(struct task_struct, thread.regs.gr[ 1]) */
  171.49 -+#define TASK_PT_GR2 672 /* offsetof(struct task_struct, thread.regs.gr[ 2]) */
  171.50 -+#define TASK_PT_GR3 676 /* offsetof(struct task_struct, thread.regs.gr[ 3]) */
  171.51 -+#define TASK_PT_GR4 680 /* offsetof(struct task_struct, thread.regs.gr[ 4]) */
  171.52 -+#define TASK_PT_GR5 684 /* offsetof(struct task_struct, thread.regs.gr[ 5]) */
  171.53 -+#define TASK_PT_GR6 688 /* offsetof(struct task_struct, thread.regs.gr[ 6]) */
  171.54 -+#define TASK_PT_GR7 692 /* offsetof(struct task_struct, thread.regs.gr[ 7]) */
  171.55 -+#define TASK_PT_GR8 696 /* offsetof(struct task_struct, thread.regs.gr[ 8]) */
  171.56 -+#define TASK_PT_GR9 700 /* offsetof(struct task_struct, thread.regs.gr[ 9]) */
  171.57 -+#define TASK_PT_GR10 704 /* offsetof(struct task_struct, thread.regs.gr[10]) */
  171.58 -+#define TASK_PT_GR11 708 /* offsetof(struct task_struct, thread.regs.gr[11]) */
  171.59 -+#define TASK_PT_GR12 712 /* offsetof(struct task_struct, thread.regs.gr[12]) */
  171.60 -+#define TASK_PT_GR13 716 /* offsetof(struct task_struct, thread.regs.gr[13]) */
  171.61 -+#define TASK_PT_GR14 720 /* offsetof(struct task_struct, thread.regs.gr[14]) */
  171.62 -+#define TASK_PT_GR15 724 /* offsetof(struct task_struct, thread.regs.gr[15]) */
  171.63 -+#define TASK_PT_GR16 728 /* offsetof(struct task_struct, thread.regs.gr[16]) */
  171.64 -+#define TASK_PT_GR17 732 /* offsetof(struct task_struct, thread.regs.gr[17]) */
  171.65 -+#define TASK_PT_GR18 736 /* offsetof(struct task_struct, thread.regs.gr[18]) */
  171.66 -+#define TASK_PT_GR19 740 /* offsetof(struct task_struct, thread.regs.gr[19]) */
  171.67 -+#define TASK_PT_GR20 744 /* offsetof(struct task_struct, thread.regs.gr[20]) */
  171.68 -+#define TASK_PT_GR21 748 /* offsetof(struct task_struct, thread.regs.gr[21]) */
  171.69 -+#define TASK_PT_GR22 752 /* offsetof(struct task_struct, thread.regs.gr[22]) */
  171.70 -+#define TASK_PT_GR23 756 /* offsetof(struct task_struct, thread.regs.gr[23]) */
  171.71 -+#define TASK_PT_GR24 760 /* offsetof(struct task_struct, thread.regs.gr[24]) */
  171.72 -+#define TASK_PT_GR25 764 /* offsetof(struct task_struct, thread.regs.gr[25]) */
  171.73 -+#define TASK_PT_GR26 768 /* offsetof(struct task_struct, thread.regs.gr[26]) */
  171.74 -+#define TASK_PT_GR27 772 /* offsetof(struct task_struct, thread.regs.gr[27]) */
  171.75 -+#define TASK_PT_GR28 776 /* offsetof(struct task_struct, thread.regs.gr[28]) */
  171.76 -+#define TASK_PT_GR29 780 /* offsetof(struct task_struct, thread.regs.gr[29]) */
  171.77 -+#define TASK_PT_GR30 784 /* offsetof(struct task_struct, thread.regs.gr[30]) */
  171.78 -+#define TASK_PT_GR31 788 /* offsetof(struct task_struct, thread.regs.gr[31]) */
  171.79 -+#define TASK_PT_FR0 792 /* offsetof(struct task_struct, thread.regs.fr[ 0]) */
  171.80 -+#define TASK_PT_FR1 800 /* offsetof(struct task_struct, thread.regs.fr[ 1]) */
  171.81 -+#define TASK_PT_FR2 808 /* offsetof(struct task_struct, thread.regs.fr[ 2]) */
  171.82 -+#define TASK_PT_FR3 816 /* offsetof(struct task_struct, thread.regs.fr[ 3]) */
  171.83 -+#define TASK_PT_FR4 824 /* offsetof(struct task_struct, thread.regs.fr[ 4]) */
  171.84 -+#define TASK_PT_FR5 832 /* offsetof(struct task_struct, thread.regs.fr[ 5]) */
  171.85 -+#define TASK_PT_FR6 840 /* offsetof(struct task_struct, thread.regs.fr[ 6]) */
  171.86 -+#define TASK_PT_FR7 848 /* offsetof(struct task_struct, thread.regs.fr[ 7]) */
  171.87 -+#define TASK_PT_FR8 856 /* offsetof(struct task_struct, thread.regs.fr[ 8]) */
  171.88 -+#define TASK_PT_FR9 864 /* offsetof(struct task_struct, thread.regs.fr[ 9]) */
  171.89 -+#define TASK_PT_FR10 872 /* offsetof(struct task_struct, thread.regs.fr[10]) */
  171.90 -+#define TASK_PT_FR11 880 /* offsetof(struct task_struct, thread.regs.fr[11]) */
  171.91 -+#define TASK_PT_FR12 888 /* offsetof(struct task_struct, thread.regs.fr[12]) */
  171.92 -+#define TASK_PT_FR13 896 /* offsetof(struct task_struct, thread.regs.fr[13]) */
  171.93 -+#define TASK_PT_FR14 904 /* offsetof(struct task_struct, thread.regs.fr[14]) */
  171.94 -+#define TASK_PT_FR15 912 /* offsetof(struct task_struct, thread.regs.fr[15]) */
  171.95 -+#define TASK_PT_FR16 920 /* offsetof(struct task_struct, thread.regs.fr[16]) */
  171.96 -+#define TASK_PT_FR17 928 /* offsetof(struct task_struct, thread.regs.fr[17]) */
  171.97 -+#define TASK_PT_FR18 936 /* offsetof(struct task_struct, thread.regs.fr[18]) */
  171.98 -+#define TASK_PT_FR19 944 /* offsetof(struct task_struct, thread.regs.fr[19]) */
  171.99 -+#define TASK_PT_FR20 952 /* offsetof(struct task_struct, thread.regs.fr[20]) */
 171.100 -+#define TASK_PT_FR21 960 /* offsetof(struct task_struct, thread.regs.fr[21]) */
 171.101 -+#define TASK_PT_FR22 968 /* offsetof(struct task_struct, thread.regs.fr[22]) */
 171.102 -+#define TASK_PT_FR23 976 /* offsetof(struct task_struct, thread.regs.fr[23]) */
 171.103 -+#define TASK_PT_FR24 984 /* offsetof(struct task_struct, thread.regs.fr[24]) */
 171.104 -+#define TASK_PT_FR25 992 /* offsetof(struct task_struct, thread.regs.fr[25]) */
 171.105 -+#define TASK_PT_FR26 1000 /* offsetof(struct task_struct, thread.regs.fr[26]) */
 171.106 -+#define TASK_PT_FR27 1008 /* offsetof(struct task_struct, thread.regs.fr[27]) */
 171.107 -+#define TASK_PT_FR28 1016 /* offsetof(struct task_struct, thread.regs.fr[28]) */
 171.108 -+#define TASK_PT_FR29 1024 /* offsetof(struct task_struct, thread.regs.fr[29]) */
 171.109 -+#define TASK_PT_FR30 1032 /* offsetof(struct task_struct, thread.regs.fr[30]) */
 171.110 -+#define TASK_PT_FR31 1040 /* offsetof(struct task_struct, thread.regs.fr[31]) */
 171.111 -+#define TASK_PT_SR0 1048 /* offsetof(struct task_struct, thread.regs.sr[ 0]) */
 171.112 -+#define TASK_PT_SR1 1052 /* offsetof(struct task_struct, thread.regs.sr[ 1]) */
 171.113 -+#define TASK_PT_SR2 1056 /* offsetof(struct task_struct, thread.regs.sr[ 2]) */
 171.114 -+#define TASK_PT_SR3 1060 /* offsetof(struct task_struct, thread.regs.sr[ 3]) */
 171.115 -+#define TASK_PT_SR4 1064 /* offsetof(struct task_struct, thread.regs.sr[ 4]) */
 171.116 -+#define TASK_PT_SR5 1068 /* offsetof(struct task_struct, thread.regs.sr[ 5]) */
 171.117 -+#define TASK_PT_SR6 1072 /* offsetof(struct task_struct, thread.regs.sr[ 6]) */
 171.118 -+#define TASK_PT_SR7 1076 /* offsetof(struct task_struct, thread.regs.sr[ 7]) */
 171.119 -+#define TASK_PT_IASQ0 1080 /* offsetof(struct task_struct, thread.regs.iasq[0]) */
 171.120 -+#define TASK_PT_IASQ1 1084 /* offsetof(struct task_struct, thread.regs.iasq[1]) */
 171.121 -+#define TASK_PT_IAOQ0 1088 /* offsetof(struct task_struct, thread.regs.iaoq[0]) */
 171.122 -+#define TASK_PT_IAOQ1 1092 /* offsetof(struct task_struct, thread.regs.iaoq[1]) */
 171.123 -+#define TASK_PT_CR27 1096 /* offsetof(struct task_struct, thread.regs.cr27) */
 171.124 -+#define TASK_PT_ORIG_R28 1104 /* offsetof(struct task_struct, thread.regs.orig_r28) */
 171.125 -+#define TASK_PT_KSP 1108 /* offsetof(struct task_struct, thread.regs.ksp) */
 171.126 -+#define TASK_PT_KPC 1112 /* offsetof(struct task_struct, thread.regs.kpc) */
 171.127 -+#define TASK_PT_SAR 1116 /* offsetof(struct task_struct, thread.regs.sar) */
 171.128 -+#define TASK_PT_IIR 1120 /* offsetof(struct task_struct, thread.regs.iir) */
 171.129 -+#define TASK_PT_ISR 1124 /* offsetof(struct task_struct, thread.regs.isr) */
 171.130 -+#define TASK_PT_IOR 1128 /* offsetof(struct task_struct, thread.regs.ior) */
 171.131 -+
 171.132 -+#define TASK_SZ 1272 /* sizeof(struct task_struct) */
 171.133 -+#define TASK_SZ_ALGN 1344 /* align(sizeof(struct task_struct), 64) */
 171.134 -+
 171.135 -+#define PT_PSW 0 /* offsetof(struct pt_regs, gr[ 0]) */
 171.136 -+#define PT_GR1 4 /* offsetof(struct pt_regs, gr[ 1]) */
 171.137 -+#define PT_GR2 8 /* offsetof(struct pt_regs, gr[ 2]) */
 171.138 -+#define PT_GR3 12 /* offsetof(struct pt_regs, gr[ 3]) */
 171.139 -+#define PT_GR4 16 /* offsetof(struct pt_regs, gr[ 4]) */
 171.140 -+#define PT_GR5 20 /* offsetof(struct pt_regs, gr[ 5]) */
 171.141 -+#define PT_GR6 24 /* offsetof(struct pt_regs, gr[ 6]) */
 171.142 -+#define PT_GR7 28 /* offsetof(struct pt_regs, gr[ 7]) */
 171.143 -+#define PT_GR8 32 /* offsetof(struct pt_regs, gr[ 8]) */
 171.144 -+#define PT_GR9 36 /* offsetof(struct pt_regs, gr[ 9]) */
 171.145 -+#define PT_GR10 40 /* offsetof(struct pt_regs, gr[10]) */
 171.146 -+#define PT_GR11 44 /* offsetof(struct pt_regs, gr[11]) */
 171.147 -+#define PT_GR12 48 /* offsetof(struct pt_regs, gr[12]) */
 171.148 -+#define PT_GR13 52 /* offsetof(struct pt_regs, gr[13]) */
 171.149 -+#define PT_GR14 56 /* offsetof(struct pt_regs, gr[14]) */
 171.150 -+#define PT_GR15 60 /* offsetof(struct pt_regs, gr[15]) */
 171.151 -+#define PT_GR16 64 /* offsetof(struct pt_regs, gr[16]) */
 171.152 -+#define PT_GR17 68 /* offsetof(struct pt_regs, gr[17]) */
 171.153 -+#define PT_GR18 72 /* offsetof(struct pt_regs, gr[18]) */
 171.154 -+#define PT_GR19 76 /* offsetof(struct pt_regs, gr[19]) */
 171.155 -+#define PT_GR20 80 /* offsetof(struct pt_regs, gr[20]) */
 171.156 -+#define PT_GR21 84 /* offsetof(struct pt_regs, gr[21]) */
 171.157 -+#define PT_GR22 88 /* offsetof(struct pt_regs, gr[22]) */
 171.158 -+#define PT_GR23 92 /* offsetof(struct pt_regs, gr[23]) */
 171.159 -+#define PT_GR24 96 /* offsetof(struct pt_regs, gr[24]) */
 171.160 -+#define PT_GR25 100 /* offsetof(struct pt_regs, gr[25]) */
 171.161 -+#define PT_GR26 104 /* offsetof(struct pt_regs, gr[26]) */
 171.162 -+#define PT_GR27 108 /* offsetof(struct pt_regs, gr[27]) */
 171.163 -+#define PT_GR28 112 /* offsetof(struct pt_regs, gr[28]) */
 171.164 -+#define PT_GR29 116 /* offsetof(struct pt_regs, gr[29]) */
 171.165 -+#define PT_GR30 120 /* offsetof(struct pt_regs, gr[30]) */
 171.166 -+#define PT_GR31 124 /* offsetof(struct pt_regs, gr[31]) */
 171.167 -+#define PT_FR0 128 /* offsetof(struct pt_regs, fr[ 0]) */
 171.168 -+#define PT_FR1 136 /* offsetof(struct pt_regs, fr[ 1]) */
 171.169 -+#define PT_FR2 144 /* offsetof(struct pt_regs, fr[ 2]) */
 171.170 -+#define PT_FR3 152 /* offsetof(struct pt_regs, fr[ 3]) */
 171.171 -+#define PT_FR4 160 /* offsetof(struct pt_regs, fr[ 4]) */
 171.172 -+#define PT_FR5 168 /* offsetof(struct pt_regs, fr[ 5]) */
 171.173 -+#define PT_FR6 176 /* offsetof(struct pt_regs, fr[ 6]) */
 171.174 -+#define PT_FR7 184 /* offsetof(struct pt_regs, fr[ 7]) */
 171.175 -+#define PT_FR8 192 /* offsetof(struct pt_regs, fr[ 8]) */
 171.176 -+#define PT_FR9 200 /* offsetof(struct pt_regs, fr[ 9]) */
 171.177 -+#define PT_FR10 208 /* offsetof(struct pt_regs, fr[10]) */
 171.178 -+#define PT_FR11 216 /* offsetof(struct pt_regs, fr[11]) */
 171.179 -+#define PT_FR12 224 /* offsetof(struct pt_regs, fr[12]) */
 171.180 -+#define PT_FR13 232 /* offsetof(struct pt_regs, fr[13]) */
 171.181 -+#define PT_FR14 240 /* offsetof(struct pt_regs, fr[14]) */
 171.182 -+#define PT_FR15 248 /* offsetof(struct pt_regs, fr[15]) */
 171.183 -+#define PT_FR16 256 /* offsetof(struct pt_regs, fr[16]) */
 171.184 -+#define PT_FR17 264 /* offsetof(struct pt_regs, fr[17]) */
 171.185 -+#define PT_FR18 272 /* offsetof(struct pt_regs, fr[18]) */
 171.186 -+#define PT_FR19 280 /* offsetof(struct pt_regs, fr[19]) */
 171.187 -+#define PT_FR20 288 /* offsetof(struct pt_regs, fr[20]) */
 171.188 -+#define PT_FR21 296 /* offsetof(struct pt_regs, fr[21]) */
 171.189 -+#define PT_FR22 304 /* offsetof(struct pt_regs, fr[22]) */
 171.190 -+#define PT_FR23 312 /* offsetof(struct pt_regs, fr[23]) */
 171.191 -+#define PT_FR24 320 /* offsetof(struct pt_regs, fr[24]) */
 171.192 -+#define PT_FR25 328 /* offsetof(struct pt_regs, fr[25]) */
 171.193 -+#define PT_FR26 336 /* offsetof(struct pt_regs, fr[26]) */
 171.194 -+#define PT_FR27 344 /* offsetof(struct pt_regs, fr[27]) */
 171.195 -+#define PT_FR28 352 /* offsetof(struct pt_regs, fr[28]) */
 171.196 -+#define PT_FR29 360 /* offsetof(struct pt_regs, fr[29]) */
 171.197 -+#define PT_FR30 368 /* offsetof(struct pt_regs, fr[30]) */
 171.198 -+#define PT_FR31 376 /* offsetof(struct pt_regs, fr[31]) */
 171.199 -+#define PT_SR0 384 /* offsetof(struct pt_regs, sr[ 0]) */
 171.200 -+#define PT_SR1 388 /* offsetof(struct pt_regs, sr[ 1]) */
 171.201 -+#define PT_SR2 392 /* offsetof(struct pt_regs, sr[ 2]) */
 171.202 -+#define PT_SR3 396 /* offsetof(struct pt_regs, sr[ 3]) */
 171.203 -+#define PT_SR4 400 /* offsetof(struct pt_regs, sr[ 4]) */
 171.204 -+#define PT_SR5 404 /* offsetof(struct pt_regs, sr[ 5]) */
 171.205 -+#define PT_SR6 408 /* offsetof(struct pt_regs, sr[ 6]) */
 171.206 -+#define PT_SR7 412 /* offsetof(struct pt_regs, sr[ 7]) */
 171.207 -+#define PT_IASQ0 416 /* offsetof(struct pt_regs, iasq[0]) */
 171.208 -+#define PT_IASQ1 420 /* offsetof(struct pt_regs, iasq[1]) */
 171.209 -+#define PT_IAOQ0 424 /* offsetof(struct pt_regs, iaoq[0]) */
 171.210 -+#define PT_IAOQ1 428 /* offsetof(struct pt_regs, iaoq[1]) */
 171.211 -+#define PT_CR27 432 /* offsetof(struct pt_regs, cr27) */
 171.212 -+#define PT_ORIG_R28 440 /* offsetof(struct pt_regs, orig_r28) */
 171.213 -+#define PT_KSP 444 /* offsetof(struct pt_regs, ksp) */
 171.214 -+#define PT_KPC 448 /* offsetof(struct pt_regs, kpc) */
 171.215 -+#define PT_SAR 452 /* offsetof(struct pt_regs, sar) */
 171.216 -+#define PT_IIR 456 /* offsetof(struct pt_regs, iir) */
 171.217 -+#define PT_ISR 460 /* offsetof(struct pt_regs, isr) */
 171.218 -+#define PT_IOR 464 /* offsetof(struct pt_regs, ior) */
 171.219 -+#define PT_SIZE 472 /* sizeof(struct pt_regs) */
 171.220 -+#define PT_SZ_ALGN 576 /* align(sizeof(struct pt_regs), 64) */
 171.221 -+
 171.222 -+#define TI_TASK 0 /* offsetof(struct thread_info, task) */
 171.223 -+#define TI_EXEC_DOMAIN 4 /* offsetof(struct thread_info, exec_domain) */
 171.224 -+#define TI_FLAGS 8 /* offsetof(struct thread_info, flags) */
 171.225 -+#define TI_CPU 16 /* offsetof(struct thread_info, cpu) */
 171.226 -+#define TI_SEGMENT 12 /* offsetof(struct thread_info, addr_limit) */
 171.227 -+#define TI_PRE_COUNT 20 /* offsetof(struct thread_info, preempt_count) */
 171.228 -+#define THREAD_SZ 44 /* sizeof(struct thread_info) */
 171.229 -+#define THREAD_SZ_ALGN 128 /* align(sizeof(struct thread_info), 64) */
 171.230 -+
 171.231 -+#define IRQSTAT_SIRQ_PEND 0 /* offsetof(irq_cpustat_t, __softirq_pending) */
 171.232 -+#define IRQSTAT_SZ 64 /* sizeof(irq_cpustat_t) */
 171.233 -+
 171.234 -+#define ICACHE_BASE 8 /* offsetof(struct pdc_cache_info, ic_base) */
 171.235 -+#define ICACHE_STRIDE 12 /* offsetof(struct pdc_cache_info, ic_stride) */
 171.236 -+#define ICACHE_COUNT 16 /* offsetof(struct pdc_cache_info, ic_count) */
 171.237 -+#define ICACHE_LOOP 20 /* offsetof(struct pdc_cache_info, ic_loop) */
 171.238 -+#define DCACHE_BASE 32 /* offsetof(struct pdc_cache_info, dc_base) */
 171.239 -+#define DCACHE_STRIDE 36 /* offsetof(struct pdc_cache_info, dc_stride) */
 171.240 -+#define DCACHE_COUNT 40 /* offsetof(struct pdc_cache_info, dc_count) */
 171.241 -+#define DCACHE_LOOP 44 /* offsetof(struct pdc_cache_info, dc_loop) */
 171.242 -+#define ITLB_SID_BASE 56 /* offsetof(struct pdc_cache_info, it_sp_base) */
 171.243 -+#define ITLB_SID_STRIDE 60 /* offsetof(struct pdc_cache_info, it_sp_stride) */
 171.244 -+#define ITLB_SID_COUNT 64 /* offsetof(struct pdc_cache_info, it_sp_count) */
 171.245 -+#define ITLB_OFF_BASE 68 /* offsetof(struct pdc_cache_info, it_off_base) */
 171.246 -+#define ITLB_OFF_STRIDE 72 /* offsetof(struct pdc_cache_info, it_off_stride) */
 171.247 -+#define ITLB_OFF_COUNT 76 /* offsetof(struct pdc_cache_info, it_off_count) */
 171.248 -+#define ITLB_LOOP 80 /* offsetof(struct pdc_cache_info, it_loop) */
 171.249 -+#define DTLB_SID_BASE 92 /* offsetof(struct pdc_cache_info, dt_sp_base) */
 171.250 -+#define DTLB_SID_STRIDE 96 /* offsetof(struct pdc_cache_info, dt_sp_stride) */
 171.251 -+#define DTLB_SID_COUNT 100 /* offsetof(struct pdc_cache_info, dt_sp_count) */
 171.252 -+#define DTLB_OFF_BASE 104 /* offsetof(struct pdc_cache_info, dt_off_base) */
 171.253 -+#define DTLB_OFF_STRIDE 108 /* offsetof(struct pdc_cache_info, dt_off_stride) */
 171.254 -+#define DTLB_OFF_COUNT 112 /* offsetof(struct pdc_cache_info, dt_off_count) */
 171.255 -+#define DTLB_LOOP 116 /* offsetof(struct pdc_cache_info, dt_loop) */
 171.256 -+
 171.257 -+#define PA_BLOCKSTEP_BIT 1 /* 31-PT_BLOCKSTEP_BIT */
 171.258 -+#define PA_SINGLESTEP_BIT 0 /* 31-PT_SINGLESTEP_BIT */
 171.259 -+
 171.260 -+#define ASM_PMD_SHIFT 21 /* PMD_SHIFT */
 171.261 -+#define ASM_PGDIR_SHIFT 21 /* PGDIR_SHIFT */
 171.262 -+#define ASM_BITS_PER_PGD 11 /* BITS_PER_PGD */
 171.263 -+#define ASM_BITS_PER_PMD 0 /* BITS_PER_PMD */
 171.264 -+#define ASM_BITS_PER_PTE 9 /* BITS_PER_PTE */
 171.265 -+#define ASM_PGD_PMD_OFFSET -8192 /* -(PAGE_SIZE << PGD_ORDER) */
 171.266 -+#define ASM_PMD_ENTRY 128 /* ((PAGE_OFFSET & PMD_MASK) >> PMD_SHIFT) */
 171.267 -+#define ASM_PGD_ENTRY 128 /* PAGE_OFFSET >> PGDIR_SHIFT */
 171.268 -+#define ASM_PGD_ENTRY_SIZE 4 /* PGD_ENTRY_SIZE */
 171.269 -+#define ASM_PMD_ENTRY_SIZE 4 /* PMD_ENTRY_SIZE */
 171.270 -+#define ASM_PTE_ENTRY_SIZE 8 /* PTE_ENTRY_SIZE */
 171.271 -+#define ASM_PT_INITIAL 4 /* PT_INITIAL */
 171.272 -+#define ASM_PAGE_SIZE 4096 /* PAGE_SIZE */
 171.273 -+
 171.274 -+
 171.275 -+#endif
   172.1 --- a/patches/gdb/6.7/120-dwarf-stack-overflow.patch	Wed Oct 28 12:03:38 2009 +0100
   172.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   172.3 @@ -1,52 +0,0 @@
   172.4 -Original patch from gentoo: gentoo/src/patchsets/gdb/6.7/80_all_gdb-6.5-dwarf-stack-overflow.patch
   172.5 --= BEGIN original header =-
   172.6 -http://bugs.gentoo.org/144833
   172.7 -
   172.8 -for gdb/ChangeLog:
   172.9 -2006-08-22  Will Drewry <wad@google.com>
  172.10 -	    Tavis Ormandy <taviso@google.com>
  172.11 -
  172.12 -	* dwarf2read.c (decode_locdesc): Enforce location description stack
  172.13 -	boundaries.
  172.14 -	* dwarfread.c (locval): Likewise.
  172.15 -
  172.16 --= END original header =-
  172.17 -diff -durN gdb-6.7.orig/gdb/dwarf2read.c gdb-6.7/gdb/dwarf2read.c
  172.18 ---- gdb-6.7.orig/gdb/dwarf2read.c	2007-09-05 02:51:48.000000000 +0200
  172.19 -+++ gdb-6.7/gdb/dwarf2read.c	2008-06-17 23:25:38.000000000 +0200
  172.20 -@@ -9061,8 +9061,7 @@
  172.21 -    callers will only want a very basic result and this can become a
  172.22 -    complaint.
  172.23 - 
  172.24 --   Note that stack[0] is unused except as a default error return.
  172.25 --   Note that stack overflow is not yet handled.  */
  172.26 -+   Note that stack[0] is unused except as a default error return. */
  172.27 - 
  172.28 - static CORE_ADDR
  172.29 - decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu)
  172.30 -@@ -9079,7 +9078,7 @@
  172.31 - 
  172.32 -   i = 0;
  172.33 -   stacki = 0;
  172.34 --  stack[stacki] = 0;
  172.35 -+  stack[++stacki] = 0;
  172.36 - 
  172.37 -   while (i < size)
  172.38 -     {
  172.39 -@@ -9261,6 +9260,16 @@
  172.40 - 		     dwarf_stack_op_name (op));
  172.41 - 	  return (stack[stacki]);
  172.42 - 	}
  172.43 -+      /* Enforce maximum stack depth of size-1 to avoid ++stacki writing
  172.44 -+         outside of the allocated space. Also enforce minimum > 0.
  172.45 -+         -- wad@google.com 14 Aug 2006 */
  172.46 -+      if (stacki >= sizeof (stack) / sizeof (*stack) - 1)
  172.47 -+	internal_error (__FILE__, __LINE__,
  172.48 -+	                _("location description stack too deep: %d"),
  172.49 -+	                stacki);
  172.50 -+      if (stacki <= 0)
  172.51 -+	internal_error (__FILE__, __LINE__,
  172.52 -+	                _("location description stack too shallow"));
  172.53 -     }
  172.54 -   return (stack[stacki]);
  172.55 - }
   173.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   173.2 +++ b/patches/strace/4.5.19/100-autoreconf.patch	Thu Oct 29 00:10:06 2009 +0100
   173.3 @@ -0,0 +1,77 @@
   173.4 +diff -durN strace-4.5.19.orig/configure strace-4.5.19/configure
   173.5 +--- strace-4.5.19.orig/configure	2009-10-21 19:41:11.000000000 +0200
   173.6 ++++ strace-4.5.19/configure	2009-10-28 18:47:18.000000000 +0100
   173.7 +@@ -5773,6 +5773,73 @@
   173.8 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
   173.9 + /* end confdefs.h.  */
  173.10 + 
  173.11 ++echo "$as_me:$LINENO: checking for statfs64 in sys/(statfs|vfs).h" >&5
  173.12 ++echo $ECHO_N "checking for statfs64 in sys/(statfs|vfs).h... $ECHO_C" >&6
  173.13 ++if test "${ac_cv_type_statfs64+set}" = set; then
  173.14 ++  echo $ECHO_N "(cached) $ECHO_C" >&6
  173.15 ++else
  173.16 ++  cat >conftest.$ac_ext <<_ACEOF
  173.17 ++/* confdefs.h.  */
  173.18 ++_ACEOF
  173.19 ++cat confdefs.h >>conftest.$ac_ext
  173.20 ++cat >>conftest.$ac_ext <<_ACEOF
  173.21 ++/* end confdefs.h.  */
  173.22 ++#ifdef LINUX
  173.23 ++#include <linux/types.h>
  173.24 ++#include <sys/statfs.h>
  173.25 ++#else
  173.26 ++#include <sys/vfs.h>
  173.27 ++#endif
  173.28 ++int
  173.29 ++main ()
  173.30 ++{
  173.31 ++struct statfs64 st;
  173.32 ++  ;
  173.33 ++  return 0;
  173.34 ++}
  173.35 ++_ACEOF
  173.36 ++rm -f conftest.$ac_objext
  173.37 ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
  173.38 ++  (eval $ac_compile) 2>conftest.er1
  173.39 ++  ac_status=$?
  173.40 ++  grep -v '^ *+' conftest.er1 >conftest.err
  173.41 ++  rm -f conftest.er1
  173.42 ++  cat conftest.err >&5
  173.43 ++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  173.44 ++  (exit $ac_status); } &&
  173.45 ++	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
  173.46 ++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  173.47 ++  (eval $ac_try) 2>&5
  173.48 ++  ac_status=$?
  173.49 ++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  173.50 ++  (exit $ac_status); }; } &&
  173.51 ++	 { ac_try='test -s conftest.$ac_objext'
  173.52 ++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
  173.53 ++  (eval $ac_try) 2>&5
  173.54 ++  ac_status=$?
  173.55 ++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
  173.56 ++  (exit $ac_status); }; }; then
  173.57 ++  ac_cv_type_statfs64=yes
  173.58 ++else
  173.59 ++  echo "$as_me: failed program was:" >&5
  173.60 ++sed 's/^/| /' conftest.$ac_ext >&5
  173.61 ++
  173.62 ++ac_cv_type_statfs64=no
  173.63 ++fi
  173.64 ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
  173.65 ++fi
  173.66 ++
  173.67 ++echo "$as_me:$LINENO: result: $ac_cv_type_statfs64" >&5
  173.68 ++echo "${ECHO_T}$ac_cv_type_statfs64" >&6
  173.69 ++if test "$ac_cv_type_statfs64" = yes
  173.70 ++then
  173.71 ++
  173.72 ++cat >>confdefs.h <<\_ACEOF
  173.73 ++#define HAVE_STATFS64 1
  173.74 ++_ACEOF
  173.75 ++
  173.76 ++fi
  173.77 ++
  173.78 + 
  173.79 + int
  173.80 + main ()
   174.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   174.2 +++ b/patches/strace/4.5.19/110-fix-arm-bad-syscall.patch	Thu Oct 29 00:10:06 2009 +0100
   174.3 @@ -0,0 +1,19 @@
   174.4 +diff -durN strace-4.5.19.orig/syscall.c strace-4.5.19/syscall.c
   174.5 +--- strace-4.5.19.orig/syscall.c	2009-10-12 21:54:21.000000000 +0200
   174.6 ++++ strace-4.5.19/syscall.c	2009-10-28 18:47:18.000000000 +0100
   174.7 +@@ -1022,6 +1022,15 @@
   174.8 + 		/*
   174.9 + 		 * Note: we only deal with only 32-bit CPUs here.
  174.10 + 		 */
  174.11 ++
  174.12 ++		if (!(tcp->flags & TCB_INSYSCALL) &&
  174.13 ++		    (tcp->flags & TCB_WAITEXECVE)) {
  174.14 ++			/* caught a fake syscall from the execve's exit */
  174.15 ++			tcp->flags &= ~TCB_WAITEXECVE;
  174.16 ++			return 0;
  174.17 ++		}
  174.18 ++
  174.19 ++
  174.20 + 		if (regs.ARM_cpsr & 0x20) {
  174.21 + 			/*
  174.22 + 			 * Get the Thumb-mode system call number
   175.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.2 +++ b/patches/strace/4.5.19/120-fix-disabled-largefile-syscalls.patch	Thu Oct 29 00:10:06 2009 +0100
   175.3 @@ -0,0 +1,22 @@
   175.4 +diff -durN strace-4.5.19.orig/syscall.c strace-4.5.19/syscall.c
   175.5 +--- strace-4.5.19.orig/syscall.c	2009-10-28 18:47:18.000000000 +0100
   175.6 ++++ strace-4.5.19/syscall.c	2009-10-28 18:47:18.000000000 +0100
   175.7 +@@ -110,6 +110,18 @@
   175.8 + #define TP TRACE_PROCESS
   175.9 + #define TS TRACE_SIGNAL
  175.10 + 
  175.11 ++#ifndef HAVE_STATFS64
  175.12 ++/*
  175.13 ++ * Ugly hacks for systems that do not have LFS
  175.14 ++ */
  175.15 ++
  175.16 ++#define sys_truncate64  sys_truncate
  175.17 ++#define sys_ftruncate64 sys_ftruncate
  175.18 ++#define sys_getdents64  sys_getdents
  175.19 ++#define sys_statfs64    sys_statfs
  175.20 ++#define sys_fstatfs64   sys_fstatfs
  175.21 ++#endif
  175.22 ++
  175.23 + static const struct sysent sysent0[] = {
  175.24 + #include "syscallent.h"
  175.25 + };
   176.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.2 +++ b/patches/strace/4.5.19/130-statfs64-check.patch	Thu Oct 29 00:10:06 2009 +0100
   176.3 @@ -0,0 +1,53 @@
   176.4 +diff -durN strace-4.5.19.orig/acinclude.m4 strace-4.5.19/acinclude.m4
   176.5 +--- strace-4.5.19.orig/acinclude.m4	2004-04-14 04:45:53.000000000 +0200
   176.6 ++++ strace-4.5.19/acinclude.m4	2009-10-28 18:47:18.000000000 +0100
   176.7 +@@ -210,6 +210,26 @@
   176.8 + fi
   176.9 + ])
  176.10 + 
  176.11 ++dnl ### A macro to determine whether statfs64 is defined.
  176.12 ++AC_DEFUN([AC_STATFS64],
  176.13 ++[AC_MSG_CHECKING(for statfs64 in sys/(statfs|vfs).h)
  176.14 ++AC_CACHE_VAL(ac_cv_type_statfs64,
  176.15 ++[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef LINUX
  176.16 ++#include <linux/types.h>
  176.17 ++#include <sys/statfs.h>
  176.18 ++#else
  176.19 ++#include <sys/vfs.h>
  176.20 ++#endif]], [[struct statfs64 st;]])],[ac_cv_type_statfs64=yes],[ac_cv_type_statfs64=no])])
  176.21 ++AC_MSG_RESULT($ac_cv_type_statfs64)
  176.22 ++if test "$ac_cv_type_statfs64" = yes
  176.23 ++then
  176.24 ++	AC_DEFINE([HAVE_STATFS64], 1,
  176.25 ++[Define if statfs64 is available in sys/statfs.h or sys/vfs.h.])
  176.26 ++fi
  176.27 ++])
  176.28 ++
  176.29 ++
  176.30 ++
  176.31 + dnl ### A macro to determine if off_t is a long long
  176.32 + AC_DEFUN([AC_OFF_T_IS_LONG_LONG],
  176.33 + [AC_MSG_CHECKING(for long long off_t)
  176.34 +diff -durN strace-4.5.19.orig/configure.ac strace-4.5.19/configure.ac
  176.35 +--- strace-4.5.19.orig/configure.ac	2009-10-12 21:54:43.000000000 +0200
  176.36 ++++ strace-4.5.19/configure.ac	2009-10-28 18:47:18.000000000 +0100
  176.37 +@@ -187,6 +187,7 @@
  176.38 + 		  struct stat.st_level,
  176.39 + 		  struct stat.st_rdev])
  176.40 + AC_STAT64
  176.41 ++AC_STATFS64
  176.42 + 
  176.43 + AC_TYPE_SIGNAL
  176.44 + AC_TYPE_UID_T
  176.45 +diff -durN strace-4.5.19.orig/file.c strace-4.5.19/file.c
  176.46 +--- strace-4.5.19.orig/file.c	2009-10-21 15:44:04.000000000 +0200
  176.47 ++++ strace-4.5.19/file.c	2009-10-28 18:47:18.000000000 +0100
  176.48 +@@ -1688,7 +1688,7 @@
  176.49 + 	return 0;
  176.50 + }
  176.51 + 
  176.52 +-#ifdef LINUX
  176.53 ++#ifdef HAVE_STATFS64
  176.54 + static void
  176.55 + printstatfs64(struct tcb *tcp, long addr)
  176.56 + {
   177.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   177.2 +++ b/patches/strace/4.5.19/140-undef-CTL_PROC.patch	Thu Oct 29 00:10:06 2009 +0100
   177.3 @@ -0,0 +1,13 @@
   177.4 +diff -durN strace-4.5.19.orig/system.c strace-4.5.19/system.c
   177.5 +--- strace-4.5.19.orig/system.c	2009-06-01 11:59:11.000000000 +0200
   177.6 ++++ strace-4.5.19/system.c	2009-10-28 18:47:18.000000000 +0100
   177.7 +@@ -1654,7 +1654,9 @@
   177.8 + 	{ CTL_KERN, "CTL_KERN" },
   177.9 + 	{ CTL_VM, "CTL_VM" },
  177.10 + 	{ CTL_NET, "CTL_NET" },
  177.11 ++#ifdef CTL_PROC
  177.12 + 	{ CTL_PROC, "CTL_PROC" },
  177.13 ++#endif
  177.14 + 	{ CTL_FS, "CTL_FS" },
  177.15 + 	{ CTL_DEBUG, "CTL_DEBUG" },
  177.16 + 	{ CTL_DEV, "CTL_DEV" },
   178.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.2 +++ b/patches/strace/4.5.19/150-undef-syscall.patch	Thu Oct 29 00:10:06 2009 +0100
   178.3 @@ -0,0 +1,42 @@
   178.4 +diff -durN strace-4.5.19.orig/linux/syscallent.h strace-4.5.19/linux/syscallent.h
   178.5 +--- strace-4.5.19.orig/linux/syscallent.h	2009-09-01 21:53:29.000000000 +0200
   178.6 ++++ strace-4.5.19/linux/syscallent.h	2009-10-28 18:47:18.000000000 +0100
   178.7 +@@ -130,7 +130,11 @@
   178.8 + 	{ 2,	TF,	sys_statfs,		"statfs"	}, /* 99 */
   178.9 + 	{ 2,	TD,	sys_fstatfs,		"fstatfs"	}, /* 100 */
  178.10 + 	{ 3,	0,	sys_ioperm,		"ioperm"	}, /* 101 */
  178.11 +-	{ 2,	TD,	sys_socketcall,		"socketcall", SYS_socketcall }, /* 102 */
  178.12 ++	{ 2,	TD,	sys_socketcall,		"socketcall"
  178.13 ++#ifdef __NR_socketcall
  178.14 ++	    , SYS_socketcall
  178.15 ++#endif
  178.16 ++								}, /* 102 */
  178.17 + 	{ 3,	0,	sys_syslog,		"syslog"	}, /* 103 */
  178.18 + 	{ 3,	0,	sys_setitimer,		"setitimer"	}, /* 104 */
  178.19 + 	{ 2,	0,	sys_getitimer,		"getitimer"	}, /* 105 */
  178.20 +@@ -145,7 +149,11 @@
  178.21 + 	{ 4,	TP,	sys_wait4,		"wait4", SYS_wait4 }, /* 114 */
  178.22 + 	{ 1,	0,	sys_swapoff,		"swapoff"	}, /* 115 */
  178.23 + 	{ 1,	0,	sys_sysinfo,		"sysinfo"	}, /* 116 */
  178.24 +-	{ 6,	0,	sys_ipc,		"ipc", SYS_ipc }, /* 117 */
  178.25 ++	{ 6,	0,	sys_ipc,		"ipc"
  178.26 ++#ifdef __NR_ipc
  178.27 ++	    , SYS_ipc
  178.28 ++#endif
  178.29 ++								}, /* 117 */
  178.30 + 	{ 1,	TD,	sys_fsync,		"fsync"		}, /* 118 */
  178.31 + 	{ 1,	TS,	sys_sigreturn,		"sigreturn"	}, /* 119 */
  178.32 + 	{ 5,	TP,	sys_clone,		"clone", SYS_clone }, /* 120 */
  178.33 +@@ -282,7 +290,11 @@
  178.34 + 	{ 3,	0,	sys_io_cancel,		"io_cancel"	}, /* 249 */
  178.35 + 	{ 5,	0,	sys_fadvise64,		"fadvise64"	}, /* 250 */
  178.36 + 	{ 5,	0,	printargs,		"SYS_251"	}, /* 251 */
  178.37 +-	{ 1,	TP,	sys_exit,		"exit_group", __NR_exit_group }, /* 252 */
  178.38 ++	{ 1,	TP,	sys_exit,		"exit_group"
  178.39 ++#ifdef __NR_exit_group
  178.40 ++	    , __NR_exit_group
  178.41 ++#endif
  178.42 ++								}, /* 252 */
  178.43 + 	{ 4,	0,	printargs,		"lookup_dcookie"}, /* 253 */
  178.44 + 	{ 1,	0,	sys_epoll_create,	"epoll_create"	}, /* 254 */
  178.45 + 	{ 4,	TD,	sys_epoll_ctl,		"epoll_ctl"	}, /* 255 */
   179.1 --- a/patches/uClibc/0.9.28.1/100-string-functions.patch	Wed Oct 28 12:03:38 2009 +0100
   179.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   179.3 @@ -1,14 +0,0 @@
   179.4 -Give preference to target-optimised functions over glibc's ones,
   179.5 -which in turn ahave precedence over generic ones.
   179.6 -
   179.7 ---- uClibc.orig/libc/Makefile	2005-07-20 08:10:44.000000000 +0200
   179.8 -+++ uclibc/libc/Makefile	2005-07-28 13:33:40.000000000 +0200
   179.9 -@@ -59,7 +59,7 @@
  179.10 - 	$(AR) dN 2 $(LIBNAME) $$objs && \
  179.11 - 	$(AR) dN 2 $(LIBNAME) $$objs
  179.12 - 	@for objfile in obj.signal \
  179.13 --	                obj.string.generic obj.string.$(TARGET_ARCH) obj.string \
  179.14 -+	                obj.string obj.string.generic obj.string.$(TARGET_ARCH) \
  179.15 - 	                obj.sysdeps.common obj.sysdeps.$(TARGET_ARCH) ; do \
  179.16 - 		if [ -e $$objfile ] ; then \
  179.17 - 			echo $(AR) $(ARFLAGS) $(LIBNAME) $$objfile ; \
   180.1 --- a/patches/uClibc/0.9.28.1/110-install_dev.patch	Wed Oct 28 12:03:38 2009 +0100
   180.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   180.3 @@ -1,22 +0,0 @@
   180.4 -We know that the kernel headers are in place. Don't try to install them.
   180.5 -
   180.6 -diff -dur uClibc-0.9.28.1.orig/Makefile uClibc-0.9.28.1/Makefile
   180.7 ---- uClibc-0.9.28.1.orig/Makefile	2007-01-28 06:38:00.000000000 +0100
   180.8 -+++ uClibc-0.9.28.1/Makefile	2007-01-28 18:55:46.000000000 +0100
   180.9 -@@ -158,12 +158,10 @@
  180.10 - 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
  180.11 - 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
  180.12 - 	-$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
  180.13 --	if [ "$(KERNEL_SOURCE)" = "$(DEVEL_PREFIX)" ] ; then \
  180.14 --		extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
  180.15 --	else \
  180.16 --		extra_exclude="" ; \
  180.17 --	fi ; \
  180.18 --	tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
  180.19 -+	extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
  180.20 -+	tar -chf - include --exclude .svn --exclude CVS \
  180.21 -+	                   --exclude include/linux      \
  180.22 -+	                   --exclude include/asm'*'     \
  180.23 - 		| tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
  180.24 - ifneq ($(strip $(UCLIBC_HAS_FLOATS)),y)
  180.25 - 	# Remove floating point related headers since float support is disabled.
   181.1 --- a/patches/uClibc/0.9.28.1/120-no_LFS-no_readahead.patch	Wed Oct 28 12:03:38 2009 +0100
   181.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.3 @@ -1,14 +0,0 @@
   181.4 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile
   181.5 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile	2007-01-26 00:54:19.000000000 +0100
   181.6 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile	2007-02-01 08:44:37.000000000 +0100
   181.7 -@@ -25,6 +25,10 @@
   181.8 - SRCS := $(filter-out sbrk.c,$(SRCS))
   181.9 - endif
  181.10 - 
  181.11 -+ifneq ($(strip $(UCLIBC_HAS_LFS)),y)
  181.12 -+SRCS := $(filter-out readahead.c,$(SRCS))
  181.13 -+endif
  181.14 -+
  181.15 - ifneq ($(strip $(UCLIBC_HAS_SSP)),y)
  181.16 - SRCS := $(filter-out ssp.c,$(SRCS))
  181.17 - endif
   182.1 --- a/patches/uClibc/0.9.28.1/130-time-locale.patch	Wed Oct 28 12:03:38 2009 +0100
   182.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   182.3 @@ -1,15 +0,0 @@
   182.4 -Index: libc/misc/time/time.c
   182.5 -===================================================================
   182.6 ---- a/libc/misc/time/time.c	(revision 17534)
   182.7 -+++ b/libc/misc/time/time.c	(revision 17647)
   182.8 -@@ -158,7 +158,9 @@
   182.9 - #endif
  182.10 - 
  182.11 - #if defined (L_tzset) || defined (L_localtime_r) || defined(L_strftime) || \
  182.12 --    defined(L__time_mktime) || defined(L__time_mktime_tzi)
  182.13 -+	 defined(L__time_mktime) || defined(L__time_mktime_tzi) || \
  182.14 -+	 ((defined(L_strftime) || defined(L_strftime_l)) && \
  182.15 -+	  defined(__UCLIBC_HAS_XLOCALE__))
  182.16 - 
  182.17 - void _time_tzset (int);
  182.18 - 
   183.1 --- a/patches/uClibc/0.9.28.1/140-ctype.patch	Wed Oct 28 12:03:38 2009 +0100
   183.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   183.3 @@ -1,17 +0,0 @@
   183.4 -diff -urN uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h
   183.5 ---- uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h   Fri Jun  3 13:30:25 2005
   183.6 -+++ uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h   Fri Jun  3 13:30:39 2005
   183.7 -@@ -34,11 +34,11 @@
   183.8 -
   183.9 - /* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
  183.10 -
  183.11 --typedef __uint16_t __ctype_mask_t;
  183.12 -+typedef __uint32_t __ctype_mask_t;
  183.13 -
  183.14 - #ifdef __UCLIBC_HAS_CTYPE_SIGNED__
  183.15 -
  183.16 --typedef __int16_t __ctype_touplow_t;
  183.17 -+typedef __int32_t __ctype_touplow_t;
  183.18 - #define __UCLIBC_CTYPE_B_TBL_OFFSET       128
  183.19 - #define __UCLIBC_CTYPE_TO_TBL_OFFSET      128
  183.20 -
   184.1 --- a/patches/uClibc/0.9.28.1/150-custom-ISA.patch	Wed Oct 28 12:03:38 2009 +0100
   184.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   184.3 @@ -1,31 +0,0 @@
   184.4 -diff -dur uClibc-0.9.28.orig/Rules.mak uClibc-0.9.28/Rules.mak
   184.5 ---- uClibc-0.9.28.orig/Rules.mak	2005-08-18 00:49:49.000000000 +0200
   184.6 -+++ uClibc-0.9.28/Rules.mak	2007-01-30 10:53:34.000000000 +0100
   184.7 -@@ -168,6 +168,7 @@
   184.8 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4
   184.9 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
  184.10 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
  184.11 -+	CPU_CFLAGS-$(CONFIG_MIPS_ISA_CUSTOM)+=-march=$(CONFIG_MIPS_CPU_CFLAGS_CUSTOM)
  184.12 - endif
  184.13 - 
  184.14 - ifeq ($(strip $(TARGET_ARCH)),sh)
  184.15 -diff -dur uClibc-0.9.28.orig/extra/Configs/Config.mips uClibc-0.9.28/extra/Configs/Config.mips
  184.16 ---- uClibc-0.9.28.orig/extra/Configs/Config.mips	2005-08-18 00:49:41.000000000 +0200
  184.17 -+++ uClibc-0.9.28/extra/Configs/Config.mips	2007-01-30 10:52:12.000000000 +0100
  184.18 -@@ -63,4 +63,16 @@
  184.19 - config CONFIG_MIPS_ISA_MIPS64
  184.20 - 	bool "MIPS64"
  184.21 - 
  184.22 -+config CONFIG_MIPS_ISA_CUSTOM
  184.23 -+	bool "Custom"
  184.24 -+
  184.25 - endchoice
  184.26 -+
  184.27 -+config CONFIG_MIPS_CPU_CFLAGS_CUSTOM
  184.28 -+	string
  184.29 -+	prompt "Custon ISA"
  184.30 -+	depends on CONFIG_MIPS_ISA_CUSTOM
  184.31 -+	default ""
  184.32 -+	help
  184.33 -+	  Enter your custom ISA here (eg: lx4189!).
  184.34 -+
   185.1 --- a/patches/uClibc/0.9.28.1/160-mips-asm.h.patch	Wed Oct 28 12:03:38 2009 +0100
   185.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   185.3 @@ -1,41 +0,0 @@
   185.4 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S
   185.5 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S	2007-02-07 11:18:12.000000000 +0100
   185.6 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S	2007-02-07 10:41:34.000000000 +0100
   185.7 -@@ -24,7 +24,7 @@
   185.8 - #include <sys/regdef.h>
   185.9 - #define _ERRNO_H	1
  185.10 - #include <bits/errno.h>
  185.11 --#include <asm/asm.h>
  185.12 -+#include <sys/asm.h>
  185.13 - 
  185.14 - /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */
  185.15 - 
  185.16 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S
  185.17 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S	2007-02-07 11:18:12.000000000 +0100
  185.18 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S	2007-02-07 11:16:52.000000000 +0100
  185.19 -@@ -3,9 +3,9 @@
  185.20 - /*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */
  185.21 - 
  185.22 - #include <features.h>
  185.23 --#include <asm/asm.h>
  185.24 -+#include <sys/asm.h>
  185.25 - #include <asm/unistd.h>
  185.26 --#include <asm/regdef.h>
  185.27 -+#include <sys/regdef.h>
  185.28 - 
  185.29 -         .globl  pipe
  185.30 -         .ent    pipe, 0
  185.31 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S
  185.32 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S	2007-02-07 11:18:12.000000000 +0100
  185.33 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S	2007-02-07 11:17:03.000000000 +0100
  185.34 -@@ -17,8 +17,8 @@
  185.35 -    02111-1307 USA.  */
  185.36 - 
  185.37 - #include <features.h>
  185.38 --#include <asm/asm.h>
  185.39 --#include <asm/regdef.h>
  185.40 -+#include <sys/asm.h>
  185.41 -+#include <sys/regdef.h>
  185.42 - 
  185.43 - #ifdef __PIC__
  185.44 - 	.option pic2
   186.1 --- a/patches/uClibc/0.9.28.2/100-string-functions.patch	Wed Oct 28 12:03:38 2009 +0100
   186.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   186.3 @@ -1,14 +0,0 @@
   186.4 -Give preference to target-optimised functions over glibc's ones,
   186.5 -which in turn ahave precedence over generic ones.
   186.6 -
   186.7 ---- uClibc.orig/libc/Makefile	2005-07-20 08:10:44.000000000 +0200
   186.8 -+++ uclibc/libc/Makefile	2005-07-28 13:33:40.000000000 +0200
   186.9 -@@ -59,7 +59,7 @@
  186.10 - 	$(AR) dN 2 $(LIBNAME) $$objs && \
  186.11 - 	$(AR) dN 2 $(LIBNAME) $$objs
  186.12 - 	@for objfile in obj.signal \
  186.13 --	                obj.string.generic obj.string.$(TARGET_ARCH) obj.string \
  186.14 -+	                obj.string obj.string.generic obj.string.$(TARGET_ARCH) \
  186.15 - 	                obj.sysdeps.common obj.sysdeps.$(TARGET_ARCH) ; do \
  186.16 - 		if [ -e $$objfile ] ; then \
  186.17 - 			echo $(AR) $(ARFLAGS) $(LIBNAME) $$objfile ; \
   187.1 --- a/patches/uClibc/0.9.28.2/110-install_dev.patch	Wed Oct 28 12:03:38 2009 +0100
   187.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   187.3 @@ -1,22 +0,0 @@
   187.4 -We know that the kernel headers are in place. Don't try to install them.
   187.5 -
   187.6 -diff -dur uClibc-0.9.28.1.orig/Makefile uClibc-0.9.28.1/Makefile
   187.7 ---- uClibc-0.9.28.1.orig/Makefile	2007-01-28 06:38:00.000000000 +0100
   187.8 -+++ uClibc-0.9.28.1/Makefile	2007-01-28 18:55:46.000000000 +0100
   187.9 -@@ -158,12 +158,10 @@
  187.10 - 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
  187.11 - 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
  187.12 - 	-$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
  187.13 --	if [ "$(KERNEL_SOURCE)" = "$(DEVEL_PREFIX)" ] ; then \
  187.14 --		extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
  187.15 --	else \
  187.16 --		extra_exclude="" ; \
  187.17 --	fi ; \
  187.18 --	tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
  187.19 -+	extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
  187.20 -+	tar -chf - include --exclude .svn --exclude CVS \
  187.21 -+	                   --exclude include/linux      \
  187.22 -+	                   --exclude include/asm'*'     \
  187.23 - 		| tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
  187.24 - 	echo '/* Dont use _syscall#() macros; use the syscall() function */' > \
  187.25 - 		$(PREFIX)$(DEVEL_PREFIX)include/bits/syscalls.h
   188.1 --- a/patches/uClibc/0.9.28.2/120-no_LFS-no_readahead.patch	Wed Oct 28 12:03:38 2009 +0100
   188.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   188.3 @@ -1,14 +0,0 @@
   188.4 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile
   188.5 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile	2007-01-26 00:54:19.000000000 +0100
   188.6 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile	2007-02-01 08:44:37.000000000 +0100
   188.7 -@@ -25,6 +25,10 @@
   188.8 - SRCS := $(filter-out sbrk.c,$(SRCS))
   188.9 - endif
  188.10 - 
  188.11 -+ifneq ($(strip $(UCLIBC_HAS_LFS)),y)
  188.12 -+SRCS := $(filter-out readahead.c,$(SRCS))
  188.13 -+endif
  188.14 -+
  188.15 - ifneq ($(strip $(UCLIBC_HAS_SSP)),y)
  188.16 - SRCS := $(filter-out ssp.c,$(SRCS))
  188.17 - endif
   189.1 --- a/patches/uClibc/0.9.28.2/130-ctype.patch	Wed Oct 28 12:03:38 2009 +0100
   189.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   189.3 @@ -1,17 +0,0 @@
   189.4 -diff -urN uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h
   189.5 ---- uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h   Fri Jun  3 13:30:25 2005
   189.6 -+++ uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h   Fri Jun  3 13:30:39 2005
   189.7 -@@ -34,11 +34,11 @@
   189.8 -
   189.9 - /* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
  189.10 -
  189.11 --typedef __uint16_t __ctype_mask_t;
  189.12 -+typedef __uint32_t __ctype_mask_t;
  189.13 -
  189.14 - #ifdef __UCLIBC_HAS_CTYPE_SIGNED__
  189.15 -
  189.16 --typedef __int16_t __ctype_touplow_t;
  189.17 -+typedef __int32_t __ctype_touplow_t;
  189.18 - #define __UCLIBC_CTYPE_B_TBL_OFFSET       128
  189.19 - #define __UCLIBC_CTYPE_TO_TBL_OFFSET      128
  189.20 -
   190.1 --- a/patches/uClibc/0.9.28.2/140-custom-ISA.patch	Wed Oct 28 12:03:38 2009 +0100
   190.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   190.3 @@ -1,31 +0,0 @@
   190.4 -diff -dur uClibc-0.9.28.orig/Rules.mak uClibc-0.9.28/Rules.mak
   190.5 ---- uClibc-0.9.28.orig/Rules.mak	2005-08-18 00:49:49.000000000 +0200
   190.6 -+++ uClibc-0.9.28/Rules.mak	2007-01-30 10:53:34.000000000 +0100
   190.7 -@@ -168,6 +168,7 @@
   190.8 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4
   190.9 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
  190.10 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
  190.11 -+	CPU_CFLAGS-$(CONFIG_MIPS_ISA_CUSTOM)+=-march=$(CONFIG_MIPS_CPU_CFLAGS_CUSTOM)
  190.12 - endif
  190.13 - 
  190.14 - ifeq ($(strip $(TARGET_ARCH)),sh)
  190.15 -diff -dur uClibc-0.9.28.orig/extra/Configs/Config.mips uClibc-0.9.28/extra/Configs/Config.mips
  190.16 ---- uClibc-0.9.28.orig/extra/Configs/Config.mips	2005-08-18 00:49:41.000000000 +0200
  190.17 -+++ uClibc-0.9.28/extra/Configs/Config.mips	2007-01-30 10:52:12.000000000 +0100
  190.18 -@@ -63,4 +63,16 @@
  190.19 - config CONFIG_MIPS_ISA_MIPS64
  190.20 - 	bool "MIPS64"
  190.21 - 
  190.22 -+config CONFIG_MIPS_ISA_CUSTOM
  190.23 -+	bool "Custom"
  190.24 -+
  190.25 - endchoice
  190.26 -+
  190.27 -+config CONFIG_MIPS_CPU_CFLAGS_CUSTOM
  190.28 -+	string
  190.29 -+	prompt "Custon ISA"
  190.30 -+	depends on CONFIG_MIPS_ISA_CUSTOM
  190.31 -+	default ""
  190.32 -+	help
  190.33 -+	  Enter your custom ISA here (eg: lx4189!).
  190.34 -+
   191.1 --- a/patches/uClibc/0.9.28.2/150-mips-asm.h.patch	Wed Oct 28 12:03:38 2009 +0100
   191.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   191.3 @@ -1,41 +0,0 @@
   191.4 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S
   191.5 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S	2007-02-07 11:18:12.000000000 +0100
   191.6 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S	2007-02-07 10:41:34.000000000 +0100
   191.7 -@@ -24,7 +24,7 @@
   191.8 - #include <sys/regdef.h>
   191.9 - #define _ERRNO_H	1
  191.10 - #include <bits/errno.h>
  191.11 --#include <asm/asm.h>
  191.12 -+#include <sys/asm.h>
  191.13 - 
  191.14 - /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */
  191.15 - 
  191.16 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S
  191.17 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S	2007-02-07 11:18:12.000000000 +0100
  191.18 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S	2007-02-07 11:16:52.000000000 +0100
  191.19 -@@ -3,9 +3,9 @@
  191.20 - /*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */
  191.21 - 
  191.22 - #include <features.h>
  191.23 --#include <asm/asm.h>
  191.24 -+#include <sys/asm.h>
  191.25 - #include <asm/unistd.h>
  191.26 --#include <asm/regdef.h>
  191.27 -+#include <sys/regdef.h>
  191.28 - 
  191.29 -         .globl  pipe
  191.30 -         .ent    pipe, 0
  191.31 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S
  191.32 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S	2007-02-07 11:18:12.000000000 +0100
  191.33 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S	2007-02-07 11:17:03.000000000 +0100
  191.34 -@@ -17,8 +17,8 @@
  191.35 -    02111-1307 USA.  */
  191.36 - 
  191.37 - #include <features.h>
  191.38 --#include <asm/asm.h>
  191.39 --#include <asm/regdef.h>
  191.40 -+#include <sys/asm.h>
  191.41 -+#include <sys/regdef.h>
  191.42 - 
  191.43 - #ifdef __PIC__
  191.44 - 	.option pic2
   192.1 --- a/patches/uClibc/0.9.28/100-string-functions.patch	Wed Oct 28 12:03:38 2009 +0100
   192.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   192.3 @@ -1,11 +0,0 @@
   192.4 ---- uClibc.orig/libc/Makefile	2005-07-20 08:10:44.000000000 +0200
   192.5 -+++ uclibc/libc/Makefile	2005-07-28 13:33:40.000000000 +0200
   192.6 -@@ -59,7 +59,7 @@
   192.7 - 	$(AR) dN 2 $(LIBNAME) $$objs && \
   192.8 - 	$(AR) dN 2 $(LIBNAME) $$objs
   192.9 - 	@for objfile in obj.signal \
  192.10 --	                obj.string.generic obj.string.$(TARGET_ARCH) obj.string \
  192.11 -+	                obj.string obj.string.generic obj.string.$(TARGET_ARCH) \
  192.12 - 	                obj.sysdeps.common obj.sysdeps.$(TARGET_ARCH) ; do \
  192.13 - 		if [ -e $$objfile ] ; then \
  192.14 - 			echo $(AR) $(ARFLAGS) $(LIBNAME) $$objfile ; \
   193.1 --- a/patches/uClibc/0.9.28/110-install_dev.patch	Wed Oct 28 12:03:38 2009 +0100
   193.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   193.3 @@ -1,39 +0,0 @@
   193.4 -There are at least three weird glitches in the Makefile:
   193.5 - - the test operator is a dual-equal sign (==) when it should be a single one (=);
   193.6 - - the exclude options are not accepted as is by GNU tar;
   193.7 - - how on earth could KERNEL_SOURCE possibly be equal to DEVEL_PREFIX ???
   193.8 -
   193.9 -We (Cedric DUVAL and I, Yann E. MORIN) are not quite sure why it is that way.
  193.10 -We're not quite sure either on how to solve this.
  193.11 -
  193.12 -What we need is to built a toolchain; in no way we need to install the linux headers.
  193.13 -  ==> systematically exclude them from the [s]tar command.
  193.14 -
  193.15 -This patch is inspired by the svn repository of uClibc as of 20060209.
  193.16 -diff -dur /home/ymorin/dev/uClibc-0.9.28/Makefile uClibc-0.9.28/Makefile
  193.17 ---- /home/ymorin/dev/uClibc-0.9.28/Makefile	2005-08-18 00:49:49.000000000 +0200
  193.18 -+++ uClibc-0.9.28/Makefile	2006-02-09 17:06:58.000000000 +0100
  193.19 -@@ -158,12 +158,17 @@
  193.20 - 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
  193.21 - 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
  193.22 - 	-$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
  193.23 --	if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \
  193.24 --		extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
  193.25 --	else \
  193.26 --		extra_exclude="" ; \
  193.27 --	fi ; \
  193.28 --	tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
  193.29 -+#	if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \
  193.30 -+#		extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
  193.31 -+#	else \
  193.32 -+#		extra_exclude="" ; \
  193.33 -+#	fi ; \
  193.34 -+#	tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
  193.35 -+#		| tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
  193.36 -+	printf ".svn\n.cvsignore\nCVS\n" > tar_exclude ; \
  193.37 -+	ls -1d include/linux include/asm* >> tar_exclude ; \
  193.38 -+	tar -chf - -X tar_exclude include \
  193.39 - 		| tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
  193.40 -+	rm -f tar_exclude
  193.41 - ifneq ($(strip $(UCLIBC_HAS_FLOATS)),y)
  193.42 - 	# Remove floating point related headers since float support is disabled.
   194.1 --- a/patches/uClibc/0.9.28/120-no_LFS-no_readahead.patch	Wed Oct 28 12:03:38 2009 +0100
   194.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   194.3 @@ -1,14 +0,0 @@
   194.4 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile
   194.5 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile	2007-01-26 00:54:19.000000000 +0100
   194.6 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile	2007-02-01 08:44:37.000000000 +0100
   194.7 -@@ -25,6 +25,10 @@
   194.8 - SRCS := $(filter-out sbrk.c,$(SRCS))
   194.9 - endif
  194.10 - 
  194.11 -+ifneq ($(strip $(UCLIBC_HAS_LFS)),y)
  194.12 -+SRCS := $(filter-out readahead.c,$(SRCS))
  194.13 -+endif
  194.14 -+
  194.15 - ifneq ($(strip $(UCLIBC_HAS_SSP)),y)
  194.16 - SRCS := $(filter-out ssp.c,$(SRCS))
  194.17 - endif
   195.1 --- a/patches/uClibc/0.9.28/130-ctype.patch	Wed Oct 28 12:03:38 2009 +0100
   195.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   195.3 @@ -1,17 +0,0 @@
   195.4 -diff -urN uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h
   195.5 ---- uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h   Fri Jun  3 13:30:25 2005
   195.6 -+++ uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h   Fri Jun  3 13:30:39 2005
   195.7 -@@ -34,11 +34,11 @@
   195.8 -
   195.9 - /* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
  195.10 -
  195.11 --typedef __uint16_t __ctype_mask_t;
  195.12 -+typedef __uint32_t __ctype_mask_t;
  195.13 -
  195.14 - #ifdef __UCLIBC_HAS_CTYPE_SIGNED__
  195.15 -
  195.16 --typedef __int16_t __ctype_touplow_t;
  195.17 -+typedef __int32_t __ctype_touplow_t;
  195.18 - #define __UCLIBC_CTYPE_B_TBL_OFFSET       128
  195.19 - #define __UCLIBC_CTYPE_TO_TBL_OFFSET      128
  195.20 -
   196.1 --- a/patches/uClibc/0.9.28/140-fix_includes.sh.patch	Wed Oct 28 12:03:38 2009 +0100
   196.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   196.3 @@ -1,316 +0,0 @@
   196.4 ---- uClibc-0.9.28/extra/scripts/fix_includes.sh.orig	2006-12-13 05:44:21.000000000 -0700
   196.5 -+++ uClibc-0.9.28/extra/scripts/fix_includes.sh	2006-12-13 05:44:35.000000000 -0700
   196.6 -@@ -1,183 +1,155 @@
   196.7 - #!/bin/sh
   196.8 --# Copyright (C) 2003 Erik Andersen <andersen@uclibc.org>
   196.9 - #
  196.10 --# This program is free software; you can redistribute it and/or
  196.11 --# modify it under the terms of the GNU Library General Public
  196.12 --# License as published by the Free Software Foundation; either
  196.13 --# version 2 of the License, or (at your option) any later
  196.14 --# version.
  196.15 --#
  196.16 --# This program is distributed in the hope that it will be useful,
  196.17 --# but WITHOUT ANY WARRANTY; without even the implied warranty of
  196.18 --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  196.19 --# GNU Library General Public License for more details.
  196.20 --#
  196.21 --# You should have received a copy of the GNU Library General
  196.22 --# Public License along with this program; if not, write to the
  196.23 --# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  196.24 --# Boston, MA 02111-1307 USA
  196.25 --
  196.26 --usage () {
  196.27 --    echo ""
  196.28 --    echo "usage: "`basename $0`" -k KERNEL_SOURCE_DIRECTORY -t TARGET_ARCH"
  196.29 --    echo ""
  196.30 --    echo "This utility scans the KERNEL_SOURCE_DIRECTORY directory and"
  196.31 --    echo "checks that it contains well formed kernel headers suitable"
  196.32 --    echo "for inclusion as the include/linux/ directory provided by"
  196.33 --    echo "uClibc."
  196.34 --    echo ""
  196.35 --    echo "If the specified kernel headers are present and already"
  196.36 --    echo "configured for the architecture specified by TARGET_ARCH,"
  196.37 --    echo "they will be used as-is."
  196.38 --    echo ""
  196.39 --    echo "If the specified kernel headers are missing entirely, this"
  196.40 --    echo "script will return an error."
  196.41 --    echo ""
  196.42 --    echo "If the specified kernel headers are present, but are either"
  196.43 --    echo "not yet configured or are configured for an architecture"
  196.44 --    echo "different than that specified by TARGET_ARCH, this script"
  196.45 --    echo "will attempt to 'fix' the kernel headers and make them"
  196.46 --    echo "suitable for use by uClibc.  This fixing process may fail."
  196.47 --    echo "It is therefore best to always provide kernel headers that"
  196.48 --    echo "are already configured for the selected architecture."
  196.49 --    echo ""
  196.50 --    echo "Most Linux distributions provide 'kernel-headers' packages"
  196.51 --    echo "that are suitable for use by uClibc."
  196.52 --    echo ""
  196.53 --    echo ""
  196.54 --    exit 1;
  196.55 -+# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  196.56 -+#
  196.57 -+# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  196.58 -+#
  196.59 -+
  196.60 -+usage() {
  196.61 -+	echo ""
  196.62 -+	echo "usage: "`basename $0`" -k KERNEL_SOURCE_DIRECTORY -t TARGET_ARCH"
  196.63 -+	echo ""
  196.64 -+	echo "This utility scans the KERNEL_SOURCE_DIRECTORY directory and"
  196.65 -+	echo "checks that it contains well formed kernel headers suitable"
  196.66 -+	echo "for inclusion as the include/linux/ directory provided by"
  196.67 -+	echo "uClibc."
  196.68 -+	echo ""
  196.69 -+	echo "If the specified kernel headers are present and already"
  196.70 -+	echo "configured for the architecture specified by TARGET_ARCH,"
  196.71 -+	echo "they will be used as-is."
  196.72 -+	echo ""
  196.73 -+	echo "If the specified kernel headers are missing entirely, this"
  196.74 -+	echo "script will return an error."
  196.75 -+	echo ""
  196.76 -+	echo "If the specified kernel headers are present, but are either"
  196.77 -+	echo "not yet configured or are configured for an architecture"
  196.78 -+	echo "different than that specified by TARGET_ARCH, this script"
  196.79 -+	echo "will attempt to 'fix' the kernel headers and make them"
  196.80 -+	echo "suitable for use by uClibc.  This fixing process may fail."
  196.81 -+	echo "It is therefore best to always provide kernel headers that"
  196.82 -+	echo "are already configured for the selected architecture."
  196.83 -+	echo ""
  196.84 -+	echo "Most Linux distributions provide 'kernel-headers' packages"
  196.85 -+	echo "that are suitable for use by uClibc."
  196.86 -+	echo ""
  196.87 -+	echo ""
  196.88 -+	exit 1
  196.89 - }
  196.90 - 
  196.91 --HAS_MMU="y";
  196.92 -+
  196.93 -+#
  196.94 -+# Parse our arguments
  196.95 -+#
  196.96 -+HAS_MMU="y"
  196.97 - while [ -n "$1" ]; do
  196.98 --    case $1 in
  196.99 --	-k ) shift; if [ -n "$1" ]; then KERNEL_SOURCE=$1; shift; else usage; fi; ;;
 196.100 --	-t ) shift; if [ -n "$1" ]; then TARGET_ARCH=$1; shift; else usage; fi; ;;
 196.101 --	-n ) shift; HAS_MMU="n"; ;;
 196.102 --	-* ) usage; ;;
 196.103 --	* ) usage; ;;
 196.104 --    esac;
 196.105 --done;
 196.106 -+	case $1 in
 196.107 -+		-k ) shift; if [ -n "$1" ]; then KERNEL_SOURCE=$1; shift; else usage; fi; ;;
 196.108 -+		-t ) shift; if [ -n "$1" ]; then TARGET_ARCH=$1; shift; else usage; fi; ;;
 196.109 -+		-n ) shift; HAS_MMU="n"; ;;
 196.110 -+		-* ) usage; ;;
 196.111 -+		* ) usage; ;;
 196.112 -+	esac
 196.113 -+done
 196.114 - 
 196.115 --if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
 196.116 --    echo "";
 196.117 --    echo "";
 196.118 --    echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!";
 196.119 --    echo "Perhaps your kernel source is broken?"
 196.120 --    echo "";
 196.121 --    echo "";
 196.122 --    exit 1;
 196.123 --fi;
 196.124 - 
 196.125 --if [ ! -d "$KERNEL_SOURCE" ]; then
 196.126 --    echo "";
 196.127 --    echo "";
 196.128 --    echo "$KERNEL_SOURCE is not a directory";
 196.129 --    echo "";
 196.130 --    echo "";
 196.131 --    exit 1;
 196.132 --fi;
 196.133 --
 196.134 --if [ -f "$KERNEL_SOURCE/Makefile" ] ; then
 196.135 --# set current VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION
 196.136 --eval `sed -n -e 's/^\([A-Z]*\) = \([0-9]*\)$/\1=\2/p' -e 's/^\([A-Z]*\) = \(-[-a-z0-9]*\)$/\1=\2/p' $KERNEL_SOURCE/Makefile`
 196.137 --else
 196.138 --ver=`grep UTS_RELEASE $KERNEL_SOURCE/include/linux/version.h | cut -d '"' -f 2`
 196.139 --VERSION=`echo "$ver" | cut -d '.' -f 1`
 196.140 --PATCHLEVEL=`echo "$ver" | cut -d '.' -f 2`
 196.141 --if echo "$ver" | grep -q '-' ; then
 196.142 --SUBLEVEL=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.//" | cut -d '-' -f 1`
 196.143 --EXTRAVERSION=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-//"`
 196.144 --else
 196.145 --SUBLEVEL=`echo "$ver" | cut -d '.' -f 3`
 196.146 --#EXTRAVERSION=
 196.147 --fi
 196.148 -+#
 196.149 -+# Perform some sanity checks on our kernel sources
 196.150 -+#
 196.151 -+if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
 196.152 -+	echo ""
 196.153 -+	echo ""
 196.154 -+	echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!"
 196.155 -+	echo "Perhaps your kernel source is broken?"
 196.156 -+	echo ""
 196.157 -+	echo ""
 196.158 -+	exit 1
 196.159 - fi
 196.160 --if [ -z "$VERSION" -o -z "$PATCHLEVEL" -o -z "$SUBLEVEL" ]
 196.161 --then
 196.162 --    echo "Unable to determine version for kernel headers"
 196.163 --    echo -e "\tprovided in directory $KERNEL_SOURCE"
 196.164 --    exit 1
 196.165 -+if [ ! -d "$KERNEL_SOURCE" ]; then
 196.166 -+	echo ""
 196.167 -+	echo ""
 196.168 -+	echo "$KERNEL_SOURCE is not a directory"
 196.169 -+	echo ""
 196.170 -+	echo ""
 196.171 -+	exit 1
 196.172 - fi
 196.173 - 
 196.174 --if [ "$MAKE_IS_SILENT" != "y" ]; then
 196.175 --echo "Current kernel version is $VERSION.$PATCHLEVEL.$SUBLEVEL${EXTRAVERSION}"
 196.176 --echo -e "\n"
 196.177 --echo "Using kernel headers from $VERSION.$PATCHLEVEL.$SUBLEVEL${EXTRAVERSION} for architecture '$TARGET_ARCH'"
 196.178 --echo -e "\tprovided in directory $KERNEL_SOURCE"
 196.179 --echo -e "\n"
 196.180 --fi
 196.181 - 
 196.182 -+#
 196.183 - # Create a symlink to include/asm
 196.184 --
 196.185 -+#
 196.186 - rm -f include/asm*
 196.187 - if [ ! -d "$KERNEL_SOURCE/include/asm" ]; then
 196.188 --    echo "";
 196.189 --    echo "";
 196.190 --    echo "The symlink $KERNEL_SOURCE/include/asm is missing\!";
 196.191 --    echo "Perhaps you forgot to configure your kernel source?";
 196.192 --    echo "You really should configure your kernel source tree so I";
 196.193 --    echo "do not have to try and guess about this sort of thing.";
 196.194 --    echo ""
 196.195 --    echo "Attempting to guess a usable value....";
 196.196 --    echo ""
 196.197 --    echo "";
 196.198 --    sleep 1;
 196.199 --
 196.200 --    if [ "$TARGET_ARCH" = "powerpc" ];then
 196.201 --	set -x;
 196.202 --	ln -fs $KERNEL_SOURCE/include/asm-ppc include/asm;
 196.203 --	set +x;
 196.204 --    elif [ "$TARGET_ARCH" = "mips" ];then
 196.205 --	set -x;
 196.206 --	ln -fs $KERNEL_SOURCE/include/asm-mips include/asm;
 196.207 --	set +x;
 196.208 --    elif [ "$TARGET_ARCH" = "arm" ];then
 196.209 --	set -x;
 196.210 --	ln -fs $KERNEL_SOURCE/include/asm-arm include/asm;
 196.211 --	set +x;
 196.212 --	if [ ! -L $KERNEL_SOURCE/include/asm-arm/proc ] ; then
 196.213 --	    if [ ! -L proc ] ; then
 196.214 --		(cd include/asm;
 196.215 --		ln -fs proc-armv proc;
 196.216 --		ln -fs arch-ebsa285 arch);
 196.217 --	    fi
 196.218 -+	echo ""
 196.219 -+	echo ""
 196.220 -+	echo "The symlink $KERNEL_SOURCE/include/asm is missing\!"
 196.221 -+	echo "Perhaps you forgot to configure your kernel source?"
 196.222 -+	echo "You really should configure your kernel source tree so I"
 196.223 -+	echo "do not have to try and guess about this sort of thing."
 196.224 -+	echo ""
 196.225 -+	echo "Attempting to guess a usable value...."
 196.226 -+	echo ""
 196.227 -+	echo ""
 196.228 -+	sleep 1
 196.229 -+
 196.230 -+	if [ "$TARGET_ARCH" = "powerpc" ]; then
 196.231 -+		set -x
 196.232 -+		ln -fs $KERNEL_SOURCE/include/asm-ppc include/asm
 196.233 -+		set +x
 196.234 -+	elif [ "$TARGET_ARCH" = "mips" ]; then
 196.235 -+		set -x
 196.236 -+		ln -fs $KERNEL_SOURCE/include/asm-mips include/asm
 196.237 -+		set +x
 196.238 -+	elif [ "$TARGET_ARCH" = "arm" ]; then
 196.239 -+		set -x
 196.240 -+		ln -fs $KERNEL_SOURCE/include/asm-arm include/asm
 196.241 -+		set +x
 196.242 -+	if [ ! -L $KERNEL_SOURCE/include/asm-arm/proc ]; then
 196.243 -+		if [ ! -L proc ]; then
 196.244 -+			(
 196.245 -+				cd include/asm
 196.246 -+				ln -fs proc-armv proc
 196.247 -+				ln -fs arch-ebsa285 arch
 196.248 -+			)
 196.249 -+		fi
 196.250 -+	fi
 196.251 -+	elif [ "$TARGET_ARCH" = "cris" ]; then
 196.252 -+		set -x
 196.253 -+		ln -fs $KERNEL_SOURCE/include/asm-cris include/asm
 196.254 -+		set +x
 196.255 -+	elif [ "$HAS_MMU" != "y" ]; then
 196.256 -+		if [ -d $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu ]; then
 196.257 -+			set -x
 196.258 -+			ln -fs $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu include/asm
 196.259 -+			set +x
 196.260 -+		else
 196.261 -+			set -x
 196.262 -+			ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm
 196.263 -+			set +x
 196.264 -+		fi
 196.265 -+	else
 196.266 -+		set -x
 196.267 -+		ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm
 196.268 -+		set +x
 196.269 - 	fi;
 196.270 --    elif [ "$TARGET_ARCH" = "cris" ]; then
 196.271 --	set -x;
 196.272 --	ln -fs $KERNEL_SOURCE/include/asm-cris include/asm;
 196.273 --	set +x;
 196.274 --    elif [ "$HAS_MMU" != "y" ]; then
 196.275 --	    if [ -d $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu ] ; then
 196.276 --		set -x;
 196.277 --		ln -fs $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu include/asm;
 196.278 --		set +x;
 196.279 --	    else
 196.280 --		set -x;
 196.281 --		ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm;
 196.282 --		set +x;
 196.283 --	    fi;
 196.284 --    else
 196.285 --	set -x;
 196.286 --	ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm;
 196.287 --	set +x;
 196.288 --    fi;
 196.289 - else
 196.290 --# No guessing required.....
 196.291 --ln -fs $KERNEL_SOURCE/include/asm include/asm
 196.292 --if [ -e $KERNEL_SOURCE/include/asm-$TARGET_ARCH ] ; then
 196.293 --ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm-$TARGET_ARCH
 196.294 -+	# No guessing required.....
 196.295 -+	for x in $KERNEL_SOURCE/include/asm* ; do
 196.296 -+		ln -fs ${x} include/
 196.297 -+	done
 196.298 - fi
 196.299 --fi;
 196.300 - 
 196.301 - 
 196.302 -+#
 196.303 - # Annoyingly, 2.6.x kernel headers also need an include/asm-generic/ directory
 196.304 --if [ $VERSION -eq 2 ] && [ $PATCHLEVEL -ge 6 ] ; then
 196.305 --    ln -fs $KERNEL_SOURCE/include/asm-generic include/asm-generic
 196.306 --fi;
 196.307 -+#
 196.308 -+if [ -e $KERNEL_SOURCE/include/asm-generic ]; then
 196.309 -+	rm -f include/asm-generic
 196.310 -+	ln -fs $KERNEL_SOURCE/include/asm-generic include/asm-generic
 196.311 -+fi
 196.312 - 
 196.313 - 
 196.314 -+#
 196.315 - # Create the include/linux symlink.
 196.316 -+#
 196.317 - rm -f include/linux
 196.318 - ln -fs $KERNEL_SOURCE/include/linux include/linux
 196.319 --
   197.1 --- a/patches/uClibc/0.9.28/150-custom-ISA.patch	Wed Oct 28 12:03:38 2009 +0100
   197.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   197.3 @@ -1,31 +0,0 @@
   197.4 -diff -dur uClibc-0.9.28.orig/Rules.mak uClibc-0.9.28/Rules.mak
   197.5 ---- uClibc-0.9.28.orig/Rules.mak	2005-08-18 00:49:49.000000000 +0200
   197.6 -+++ uClibc-0.9.28/Rules.mak	2007-01-30 10:53:34.000000000 +0100
   197.7 -@@ -168,6 +168,7 @@
   197.8 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4
   197.9 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
  197.10 - 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
  197.11 -+	CPU_CFLAGS-$(CONFIG_MIPS_ISA_CUSTOM)+=-march=$(CONFIG_MIPS_CPU_CFLAGS_CUSTOM)
  197.12 - endif
  197.13 - 
  197.14 - ifeq ($(strip $(TARGET_ARCH)),sh)
  197.15 -diff -dur uClibc-0.9.28.orig/extra/Configs/Config.mips uClibc-0.9.28/extra/Configs/Config.mips
  197.16 ---- uClibc-0.9.28.orig/extra/Configs/Config.mips	2005-08-18 00:49:41.000000000 +0200
  197.17 -+++ uClibc-0.9.28/extra/Configs/Config.mips	2007-01-30 10:52:12.000000000 +0100
  197.18 -@@ -63,4 +63,16 @@
  197.19 - config CONFIG_MIPS_ISA_MIPS64
  197.20 - 	bool "MIPS64"
  197.21 - 
  197.22 -+config CONFIG_MIPS_ISA_CUSTOM
  197.23 -+	bool "Custom"
  197.24 -+
  197.25 - endchoice
  197.26 -+
  197.27 -+config CONFIG_MIPS_CPU_CFLAGS_CUSTOM
  197.28 -+	string
  197.29 -+	prompt "Custon ISA"
  197.30 -+	depends on CONFIG_MIPS_ISA_CUSTOM
  197.31 -+	default ""
  197.32 -+	help
  197.33 -+	  Enter your custom ISA here (eg: lx4189!).
  197.34 -+
   198.1 --- a/patches/uClibc/0.9.28/160-mips-asm.h.patch	Wed Oct 28 12:03:38 2009 +0100
   198.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   198.3 @@ -1,41 +0,0 @@
   198.4 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S
   198.5 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S	2007-02-07 11:18:12.000000000 +0100
   198.6 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S	2007-02-07 10:41:34.000000000 +0100
   198.7 -@@ -24,7 +24,7 @@
   198.8 - #include <sys/regdef.h>
   198.9 - #define _ERRNO_H	1
  198.10 - #include <bits/errno.h>
  198.11 --#include <asm/asm.h>
  198.12 -+#include <sys/asm.h>
  198.13 - 
  198.14 - /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */
  198.15 - 
  198.16 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S
  198.17 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S	2007-02-07 11:18:12.000000000 +0100
  198.18 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S	2007-02-07 11:16:52.000000000 +0100
  198.19 -@@ -3,9 +3,9 @@
  198.20 - /*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */
  198.21 - 
  198.22 - #include <features.h>
  198.23 --#include <asm/asm.h>
  198.24 -+#include <sys/asm.h>
  198.25 - #include <asm/unistd.h>
  198.26 --#include <asm/regdef.h>
  198.27 -+#include <sys/regdef.h>
  198.28 - 
  198.29 -         .globl  pipe
  198.30 -         .ent    pipe, 0
  198.31 -diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S
  198.32 ---- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S	2007-02-07 11:18:12.000000000 +0100
  198.33 -+++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S	2007-02-07 11:17:03.000000000 +0100
  198.34 -@@ -17,8 +17,8 @@
  198.35 -    02111-1307 USA.  */
  198.36 - 
  198.37 - #include <features.h>
  198.38 --#include <asm/asm.h>
  198.39 --#include <asm/regdef.h>
  198.40 -+#include <sys/asm.h>
  198.41 -+#include <sys/regdef.h>
  198.42 - 
  198.43 - #ifdef __PIC__
  198.44 - 	.option pic2
   199.1 --- a/patches/uClibc/20080801/100-ifaddrs.patch	Wed Oct 28 12:03:38 2009 +0100
   199.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   199.3 @@ -1,190 +0,0 @@
   199.4 -Copyright 2008 Yann E. MORIN.
   199.5 -
   199.6 -This patch is needed to make gcc-4.3.1 able to build the Java frontend.
   199.7 -
   199.8 -Index: uClibc/libc/inet/ifaddrs.c
   199.9 -===================================================================
  199.10 ---- uClibc/libc/inet/ifaddrs.c	(revision 23002)
  199.11 -+++ uClibc/libc/inet/ifaddrs.c	(working copy)
  199.12 -@@ -22,7 +22,7 @@
  199.13 - #include <alloca.h>
  199.14 - #include <assert.h>
  199.15 - #include <errno.h>
  199.16 --#include "ifaddrs.h"
  199.17 -+#include <ifaddrs.h>
  199.18 - #include <net/if.h>
  199.19 - #include <netinet/in.h>
  199.20 - #include <netpacket/packet.h>
  199.21 -Index: uClibc/libc/inet/ifaddrs.h
  199.22 -===================================================================
  199.23 ---- uClibc/libc/inet/ifaddrs.h	(revision 23002)
  199.24 -+++ uClibc/libc/inet/ifaddrs.h	(working copy)
  199.25 -@@ -1,76 +0,0 @@
  199.26 --/* ifaddrs.h -- declarations for getting network interface addresses
  199.27 --   Copyright (C) 2002 Free Software Foundation, Inc.
  199.28 --   This file is part of the GNU C Library.
  199.29 --
  199.30 --   The GNU C Library is free software; you can redistribute it and/or
  199.31 --   modify it under the terms of the GNU Lesser General Public
  199.32 --   License as published by the Free Software Foundation; either
  199.33 --   version 2.1 of the License, or (at your option) any later version.
  199.34 --
  199.35 --   The GNU C Library is distributed in the hope that it will be useful,
  199.36 --   but WITHOUT ANY WARRANTY; without even the implied warranty of
  199.37 --   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  199.38 --   Lesser General Public License for more details.
  199.39 --
  199.40 --   You should have received a copy of the GNU Lesser General Public
  199.41 --   License along with the GNU C Library; if not, write to the Free
  199.42 --   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  199.43 --   02111-1307 USA.  */
  199.44 --
  199.45 --#ifndef _IFADDRS_H
  199.46 --#define _IFADDRS_H	1
  199.47 --
  199.48 --#include <features.h>
  199.49 --#include <sys/socket.h>
  199.50 --#include <stdbool.h>
  199.51 --#include <stdint.h>
  199.52 --
  199.53 --__BEGIN_DECLS
  199.54 --
  199.55 --/* The `getifaddrs' function generates a linked list of these structures.
  199.56 --   Each element of the list describes one network interface.  */
  199.57 --struct ifaddrs
  199.58 --{
  199.59 --  struct ifaddrs *ifa_next;	/* Pointer to the next structure.  */
  199.60 --
  199.61 --  char *ifa_name;		/* Name of this network interface.  */
  199.62 --  unsigned int ifa_flags;	/* Flags as from SIOCGIFFLAGS ioctl.  */
  199.63 --
  199.64 --  struct sockaddr *ifa_addr;	/* Network address of this interface.  */
  199.65 --  struct sockaddr *ifa_netmask; /* Netmask of this interface.  */
  199.66 --  union
  199.67 --  {
  199.68 --    /* At most one of the following two is valid.  If the IFF_BROADCAST
  199.69 --       bit is set in `ifa_flags', then `ifa_broadaddr' is valid.  If the
  199.70 --       IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
  199.71 --       It is never the case that both these bits are set at once.  */
  199.72 --    struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
  199.73 --    struct sockaddr *ifu_dstaddr; /* Point-to-point destination address.  */
  199.74 --  } ifa_ifu;
  199.75 --  /* These very same macros are defined by <net/if.h> for `struct ifaddr'.
  199.76 --     So if they are defined already, the existing definitions will be fine.  */
  199.77 --# ifndef ifa_broadaddr
  199.78 --#  define ifa_broadaddr	ifa_ifu.ifu_broadaddr
  199.79 --# endif
  199.80 --# ifndef ifa_dstaddr
  199.81 --#  define ifa_dstaddr	ifa_ifu.ifu_dstaddr
  199.82 --# endif
  199.83 --
  199.84 --  void *ifa_data;		/* Address-specific data (may be unused).  */
  199.85 --};
  199.86 --
  199.87 --
  199.88 --/* Create a linked list of `struct ifaddrs' structures, one for each
  199.89 --   network interface on the host machine.  If successful, store the
  199.90 --   list in *IFAP and return 0.  On errors, return -1 and set `errno'.
  199.91 --
  199.92 --   The storage returned in *IFAP is allocated dynamically and can
  199.93 --   only be properly freed by passing it to `freeifaddrs'.  */
  199.94 --extern int getifaddrs (struct ifaddrs **__ifap) __THROW;
  199.95 --
  199.96 --/* Reclaim the storage allocated by a previous `getifaddrs' call.  */
  199.97 --extern void freeifaddrs (struct ifaddrs *__ifa)  __THROW;
  199.98 --
  199.99 --__END_DECLS
 199.100 --
 199.101 --#endif /* ifaddrs.h */
 199.102 -Index: uClibc/libc/inet/getaddrinfo.c
 199.103 -===================================================================
 199.104 ---- uClibc/libc/inet/getaddrinfo.c	(revision 23002)
 199.105 -+++ uClibc/libc/inet/getaddrinfo.c	(working copy)
 199.106 -@@ -68,7 +68,7 @@
 199.107 - #include <sys/un.h>
 199.108 - #include <sys/utsname.h>
 199.109 - #include <net/if.h>
 199.110 --#include "ifaddrs.h"
 199.111 -+#include <ifaddrs.h>
 199.112 - 
 199.113 - /* Experimentally off - libc_hidden_proto(memcpy) */
 199.114 - /* Experimentally off - libc_hidden_proto(memset) */
 199.115 ---- /dev/null	2008-08-04 09:44:45.624322752 +0200
 199.116 -+++ uClibc/include/ifaddrs.h	2008-08-05 09:31:20.000000000 +0200
 199.117 -@@ -0,0 +1,76 @@
 199.118 -+/* ifaddrs.h -- declarations for getting network interface addresses
 199.119 -+   Copyright (C) 2002 Free Software Foundation, Inc.
 199.120 -+   This file is part of the GNU C Library.
 199.121 -+
 199.122 -+   The GNU C Library is free software; you can redistribute it and/or
 199.123 -+   modify it under the terms of the GNU Lesser General Public
 199.124 -+   License as published by the Free Software Foundation; either
 199.125 -+   version 2.1 of the License, or (at your option) any later version.
 199.126 -+
 199.127 -+   The GNU C Library is distributed in the hope that it will be useful,
 199.128 -+   but WITHOUT ANY WARRANTY; without even the implied warranty of
 199.129 -+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 199.130 -+   Lesser General Public License for more details.
 199.131 -+
 199.132 -+   You should have received a copy of the GNU Lesser General Public
 199.133 -+   License along with the GNU C Library; if not, write to the Free
 199.134 -+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 199.135 -+   02111-1307 USA.  */
 199.136 -+
 199.137 -+#ifndef _IFADDRS_H
 199.138 -+#define _IFADDRS_H	1
 199.139 -+
 199.140 -+#include <features.h>
 199.141 -+#include <sys/socket.h>
 199.142 -+#include <stdbool.h>
 199.143 -+#include <stdint.h>
 199.144 -+
 199.145 -+__BEGIN_DECLS
 199.146 -+
 199.147 -+/* The `getifaddrs' function generates a linked list of these structures.
 199.148 -+   Each element of the list describes one network interface.  */
 199.149 -+struct ifaddrs
 199.150 -+{
 199.151 -+  struct ifaddrs *ifa_next;	/* Pointer to the next structure.  */
 199.152 -+
 199.153 -+  char *ifa_name;		/* Name of this network interface.  */
 199.154 -+  unsigned int ifa_flags;	/* Flags as from SIOCGIFFLAGS ioctl.  */
 199.155 -+
 199.156 -+  struct sockaddr *ifa_addr;	/* Network address of this interface.  */
 199.157 -+  struct sockaddr *ifa_netmask; /* Netmask of this interface.  */
 199.158 -+  union
 199.159 -+  {
 199.160 -+    /* At most one of the following two is valid.  If the IFF_BROADCAST
 199.161 -+       bit is set in `ifa_flags', then `ifa_broadaddr' is valid.  If the
 199.162 -+       IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
 199.163 -+       It is never the case that both these bits are set at once.  */
 199.164 -+    struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
 199.165 -+    struct sockaddr *ifu_dstaddr; /* Point-to-point destination address.  */
 199.166 -+  } ifa_ifu;
 199.167 -+  /* These very same macros are defined by <net/if.h> for `struct ifaddr'.
 199.168 -+     So if they are defined already, the existing definitions will be fine.  */
 199.169 -+# ifndef ifa_broadaddr
 199.170 -+#  define ifa_broadaddr	ifa_ifu.ifu_broadaddr
 199.171 -+# endif
 199.172 -+# ifndef ifa_dstaddr
 199.173 -+#  define ifa_dstaddr	ifa_ifu.ifu_dstaddr
 199.174 -+# endif
 199.175 -+
 199.176 -+  void *ifa_data;		/* Address-specific data (may be unused).  */
 199.177 -+};
 199.178 -+
 199.179 -+
 199.180 -+/* Create a linked list of `struct ifaddrs' structures, one for each
 199.181 -+   network interface on the host machine.  If successful, store the
 199.182 -+   list in *IFAP and return 0.  On errors, return -1 and set `errno'.
 199.183 -+
 199.184 -+   The storage returned in *IFAP is allocated dynamically and can
 199.185 -+   only be properly freed by passing it to `freeifaddrs'.  */
 199.186 -+extern int getifaddrs (struct ifaddrs **__ifap) __THROW;
 199.187 -+
 199.188 -+/* Reclaim the storage allocated by a previous `getifaddrs' call.  */
 199.189 -+extern void freeifaddrs (struct ifaddrs *__ifa)  __THROW;
 199.190 -+
 199.191 -+__END_DECLS
 199.192 -+
 199.193 -+#endif /* ifaddrs.h */
   200.1 --- a/patches/uClibc/20080801/200-mips-typeof.patch	Wed Oct 28 12:03:38 2009 +0100
   200.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   200.3 @@ -1,112 +0,0 @@
   200.4 -Index: uClibc/libc/sysdeps/linux/mips/bits/atomic.h
   200.5 -===================================================================
   200.6 ---- uClibc/libc/sysdeps/linux/mips/bits/atomic.h	(revision 23002)
   200.7 -+++ uClibc/libc/sysdeps/linux/mips/bits/atomic.h	(working copy)
   200.8 -@@ -110,22 +110,22 @@
   200.9 - /* For all "bool" routines, we return FALSE if exchange succesful.  */
  200.10 - 
  200.11 - #define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq)	\
  200.12 --({ typeof (*mem) __prev; int __cmp;					\
  200.13 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.14 -    __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
  200.15 -    !__cmp; })
  200.16 - 
  200.17 - #define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
  200.18 --({ typeof (*mem) __prev; int __cmp;					\
  200.19 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.20 -    __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
  200.21 -    !__cmp; })
  200.22 - 
  200.23 - #define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
  200.24 --({ typeof (*mem) __prev; int __cmp;					\
  200.25 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.26 -    __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
  200.27 -    !__cmp; })
  200.28 - 
  200.29 - #define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
  200.30 --({ typeof (*mem) __prev; int __cmp;					\
  200.31 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.32 -    __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
  200.33 -    !__cmp; })
  200.34 - 
  200.35 -@@ -133,24 +133,24 @@
  200.36 -    successful or not.  */
  200.37 - 
  200.38 - #define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq)	\
  200.39 --({ typeof (*mem) __prev; int __cmp;					\
  200.40 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.41 -    __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
  200.42 --   (typeof (*mem))__prev; })
  200.43 -+   (__typeof (*mem))__prev; })
  200.44 - 
  200.45 - #define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
  200.46 --({ typeof (*mem) __prev; int __cmp;					\
  200.47 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.48 -    __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
  200.49 --   (typeof (*mem))__prev; })
  200.50 -+   (__typeof (*mem))__prev; })
  200.51 - 
  200.52 - #define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
  200.53 --({ typeof (*mem) __prev; int __cmp;					\
  200.54 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.55 -    __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
  200.56 --   (typeof (*mem))__prev; })
  200.57 -+   (__typeof (*mem))__prev; })
  200.58 - 
  200.59 - #define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
  200.60 --({ typeof (*mem) __prev; int __cmp;					\
  200.61 -+({ __typeof (*mem) __prev; int __cmp;					\
  200.62 -    __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
  200.63 --   (typeof (*mem))__prev; })
  200.64 -+   (__typeof (*mem))__prev; })
  200.65 - 
  200.66 - /* Compare and exchange with "acquire" semantics, ie barrier after.  */
  200.67 - 
  200.68 -@@ -183,7 +183,7 @@
  200.69 -   (abort (), 0)
  200.70 - 
  200.71 - #define __arch_exchange_xxx_32_int(mem, newval, rel, acq) \
  200.72 --({ typeof (*mem) __prev; int __cmp;					      \
  200.73 -+({ __typeof (*mem) __prev; int __cmp;					      \
  200.74 -      __asm__ __volatile__ ("\n"						      \
  200.75 -      ".set	push\n\t"						      \
  200.76 -      MIPS_PUSH_MIPS2							      \
  200.77 -@@ -207,7 +207,7 @@
  200.78 -   (abort (), 0)
  200.79 - #else
  200.80 - #define __arch_exchange_xxx_64_int(mem, newval, rel, acq) \
  200.81 --({ typeof (*mem) __prev; int __cmp;					      \
  200.82 -+({ __typeof (*mem) __prev; int __cmp;					      \
  200.83 -      __asm__ __volatile__ ("\n"						      \
  200.84 -      ".set	push\n\t"						      \
  200.85 -      MIPS_PUSH_MIPS2							      \
  200.86 -@@ -236,13 +236,13 @@
  200.87 - /* Atomically add value and return the previous (unincremented) value.  */
  200.88 - 
  200.89 - #define __arch_exchange_and_add_8_int(mem, newval, rel, acq) \
  200.90 --  (abort (), (typeof(*mem)) 0)
  200.91 -+  (abort (), (__typeof(*mem)) 0)
  200.92 - 
  200.93 - #define __arch_exchange_and_add_16_int(mem, newval, rel, acq) \
  200.94 --  (abort (), (typeof(*mem)) 0)
  200.95 -+  (abort (), (__typeof(*mem)) 0)
  200.96 - 
  200.97 - #define __arch_exchange_and_add_32_int(mem, value, rel, acq) \
  200.98 --({ typeof (*mem) __prev; int __cmp;					      \
  200.99 -+({ __typeof (*mem) __prev; int __cmp;					      \
 200.100 -      __asm__ __volatile__ ("\n"						      \
 200.101 -      ".set	push\n\t"						      \
 200.102 -      MIPS_PUSH_MIPS2							      \
 200.103 -@@ -263,10 +263,10 @@
 200.104 - #if _MIPS_SIM == _ABIO32
 200.105 - /* We can't do an atomic 64-bit operation in O32.  */
 200.106 - #define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
 200.107 --  (abort (), (typeof(*mem)) 0)
 200.108 -+  (abort (), (__typeof(*mem)) 0)
 200.109 - #else
 200.110 - #define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
 200.111 --({ typeof (*mem) __prev; int __cmp;					      \
 200.112 -+({ __typeof (*mem) __prev; int __cmp;					      \
 200.113 -      __asm__ __volatile__ (						      \
 200.114 -      ".set	push\n\t"						      \
 200.115 -      MIPS_PUSH_MIPS2							      \
   201.1 --- a/patches/uClibc/20080801/300-fix-asm.patch	Wed Oct 28 12:03:38 2009 +0100
   201.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   201.3 @@ -1,175 +0,0 @@
   201.4 -Index: uClibc/ldso/ldso/sparc/dl-sysdep.h
   201.5 -===================================================================
   201.6 ---- uClibc/ldso/ldso/sparc/dl-sysdep.h	(revision 23055)
   201.7 -+++ uClibc/ldso/ldso/sparc/dl-sysdep.h	(working copy)
   201.8 -@@ -141,7 +141,7 @@
   201.9 - static __inline__ Elf32_Addr
  201.10 - elf_machine_load_address (void)
  201.11 - {
  201.12 --	register Elf32_Addr *pc __asm__ ("%o7"), *got __asm ("%l7");
  201.13 -+	register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7");
  201.14 - 
  201.15 - 	__asm__ ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t"
  201.16 - 	       "call 1f\n\t"
  201.17 -Index: uClibc/libc/sysdeps/linux/i386/bits/mathinline.h
  201.18 -===================================================================
  201.19 ---- uClibc/libc/sysdeps/linux/i386/bits/mathinline.h	(revision 23055)
  201.20 -+++ uClibc/libc/sysdeps/linux/i386/bits/mathinline.h	(working copy)
  201.21 -@@ -299,12 +299,12 @@
  201.22 -   __extension__ long long int __p = (long long int) __x;		      \
  201.23 -   if (__x == (long double) __p)						      \
  201.24 -     {									      \
  201.25 --      __asm __volatile__						      \
  201.26 -+      __asm__ __volatile__						      \
  201.27 - 	("fscale"							      \
  201.28 - 	 : "=t" (__value) : "0" (1.0), "u" (__x));			      \
  201.29 -       return __value;							      \
  201.30 -     }									      \
  201.31 --  __asm __volatile__							      \
  201.32 -+  __asm__ __volatile__							      \
  201.33 -     ("fld	%%st(0)\n\t"						      \
  201.34 -      "frndint			# int(x)\n\t"				      \
  201.35 -      "fxch\n\t"								      \
  201.36 -@@ -312,7 +312,7 @@
  201.37 -      "f2xm1			# 2^(fract(x)) - 1\n\t"			      \
  201.38 -      : "=t" (__value), "=u" (__exponent) : "0" (__x));			      \
  201.39 -   __value += 1.0;							      \
  201.40 --  __asm __volatile__							      \
  201.41 -+  __asm__ __volatile__							      \
  201.42 -     ("fscale"								      \
  201.43 -      : "=t" (__value) : "0" (__value), "u" (__exponent));		      \
  201.44 -   return __value)
  201.45 -@@ -321,7 +321,7 @@
  201.46 - #  define __sincos_code \
  201.47 -   register long double __cosr;						      \
  201.48 -   register long double __sinr;						      \
  201.49 --  __asm __volatile__							      \
  201.50 -+  __asm__ __volatile__							      \
  201.51 -     ("fsincos\n\t"							      \
  201.52 -      "fnstsw	%%ax\n\t"						      \
  201.53 -      "testl	$0x400, %%eax\n\t"					      \
  201.54 -@@ -373,7 +373,7 @@
  201.55 -   register long double __value;						      \
  201.56 -   register long double __exponent;					      \
  201.57 -   register long double __temp;						      \
  201.58 --  __asm __volatile__							      \
  201.59 -+  __asm__ __volatile__							      \
  201.60 -     ("fldl2e			# e^x - 1 = 2^(x * log2(e)) - 1\n\t"	      \
  201.61 -      "fmul	%%st(1)		# x * log2(e)\n\t"			      \
  201.62 -      "fst	%%st(1)\n\t"						      \
  201.63 -@@ -383,7 +383,7 @@
  201.64 -      "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t"	      \
  201.65 -      "fscale			# 2^(x * log2(e)) - 2^(int(x * log2(e)))\n\t" \
  201.66 -      : "=t" (__value), "=u" (__exponent) : "0" (__x));			      \
  201.67 --  __asm __volatile__							      \
  201.68 -+  __asm__ __volatile__							      \
  201.69 -     ("fscale			# 2^int(x * log2(e))\n\t"		      \
  201.70 -      : "=t" (__temp) : "0" (1.0), "u" (__exponent));			      \
  201.71 -   __temp -= 1.0;							      \
  201.72 -@@ -398,7 +398,7 @@
  201.73 - #  define __exp_code \
  201.74 -   register long double __value;						      \
  201.75 -   register long double __exponent;					      \
  201.76 --  __asm __volatile__							      \
  201.77 -+  __asm__ __volatile__							      \
  201.78 -     ("fldl2e			# e^x = 2^(x * log2(e))\n\t"		      \
  201.79 -      "fmul	%%st(1)		# x * log2(e)\n\t"			      \
  201.80 -      "fst	%%st(1)\n\t"						      \
  201.81 -@@ -408,7 +408,7 @@
  201.82 -      "f2xm1			# 2^(fract(x * log2(e))) - 1\n\t"	      \
  201.83 -      : "=t" (__value), "=u" (__exponent) : "0" (__x));			      \
  201.84 -   __value += 1.0;							      \
  201.85 --  __asm __volatile__							      \
  201.86 -+  __asm__ __volatile__							      \
  201.87 -     ("fscale"								      \
  201.88 -      : "=t" (__value) : "0" (__value), "u" (__exponent));		      \
  201.89 -   return __value
  201.90 -@@ -421,7 +421,7 @@
  201.91 - __inline_mathcodeNP (tan, __x, \
  201.92 -   register long double __value;						      \
  201.93 -   register long double __value2 __attribute__ ((__unused__));		      \
  201.94 --  __asm __volatile__							      \
  201.95 -+  __asm__ __volatile__							      \
  201.96 -     ("fptan"								      \
  201.97 -      : "=t" (__value2), "=u" (__value) : "0" (__x));			      \
  201.98 -   return __value)
  201.99 -@@ -435,7 +435,7 @@
 201.100 - #else
 201.101 - # define __atan2_code \
 201.102 -   register long double __value;						      \
 201.103 --  __asm __volatile__							      \
 201.104 -+  __asm__ __volatile__							      \
 201.105 -     ("fpatan"								      \
 201.106 -      : "=t" (__value) : "0" (__x), "u" (__y) : "st(1)");		      \
 201.107 -   return __value
 201.108 -@@ -449,7 +449,7 @@
 201.109 - #if defined __FAST_MATH__ && !__GNUC_PREREQ (3, 5)
 201.110 - __inline_mathcodeNP2 (fmod, __x, __y, \
 201.111 -   register long double __value;						      \
 201.112 --  __asm __volatile__							      \
 201.113 -+  __asm__ __volatile__							      \
 201.114 -     ("1:	fprem\n\t"						      \
 201.115 -      "fnstsw	%%ax\n\t"						      \
 201.116 -      "sahf\n\t"								      \
 201.117 -@@ -552,7 +552,7 @@
 201.118 - #ifdef __FAST_MATH__
 201.119 - # define __ldexp_code \
 201.120 -   register long double __value;						      \
 201.121 --  __asm __volatile__							      \
 201.122 -+  __asm__ __volatile__							      \
 201.123 -     ("fscale"								      \
 201.124 -      : "=t" (__value) : "0" (__x), "u" ((long double) __y));		      \
 201.125 -   return __value
 201.126 -@@ -581,7 +581,7 @@
 201.127 -   if (__fabsl (__x) >= 1.0 - 0.5 * __M_SQRT2)				      \
 201.128 -     __value = logl (1.0 + __x);						      \
 201.129 -   else									      \
 201.130 --    __asm __volatile__							      \
 201.131 -+    __asm__ __volatile__							      \
 201.132 -       ("fldln2\n\t"							      \
 201.133 -        "fxch\n\t"							      \
 201.134 -        "fyl2xp1"							      \
 201.135 -@@ -611,7 +611,7 @@
 201.136 - __inline_mathcodeNP(logb, __x, \
 201.137 -   register long double __value;						      \
 201.138 -   register long double __junk;						      \
 201.139 --  __asm __volatile__							      \
 201.140 -+  __asm__ __volatile__							      \
 201.141 -     ("fxtract\n\t"							      \
 201.142 -      : "=t" (__junk), "=u" (__value) : "0" (__x));			      \
 201.143 -   return __value)
 201.144 -@@ -699,7 +699,7 @@
 201.145 - __inline_mathcodeNP2 (drem, __x, __y, \
 201.146 -   register double __value;						      \
 201.147 -   register int __clobbered;						      \
 201.148 --  __asm __volatile__							      \
 201.149 -+  __asm__ __volatile__							      \
 201.150 -     ("1:	fprem1\n\t"						      \
 201.151 -      "fstsw	%%ax\n\t"						      \
 201.152 -      "sahf\n\t"								      \
 201.153 -Index: uClibc/libc/sysdeps/linux/x86_64/sigaction.c
 201.154 -===================================================================
 201.155 ---- uClibc/libc/sysdeps/linux/x86_64/sigaction.c	(revision 23055)
 201.156 -+++ uClibc/libc/sysdeps/linux/x86_64/sigaction.c	(working copy)
 201.157 -@@ -135,7 +135,7 @@
 201.158 - 
 201.159 - #define RESTORE(name, syscall) RESTORE2 (name, syscall)
 201.160 - # define RESTORE2(name, syscall) \
 201.161 --asm						\
 201.162 -+__asm__						\
 201.163 -   (						\
 201.164 -    ".text\n" \
 201.165 -    "__" #name ":\n"				\
 201.166 -Index: uClibc/libc/sysdeps/linux/mips/sigaction.c
 201.167 -===================================================================
 201.168 ---- uClibc/libc/sysdeps/linux/mips/sigaction.c	(revision 23055)
 201.169 -+++ uClibc/libc/sysdeps/linux/mips/sigaction.c	(working copy)
 201.170 -@@ -140,7 +140,7 @@
 201.171 - 
 201.172 - #define RESTORE(name, syscall) RESTORE2 (name, syscall)
 201.173 - #define RESTORE2(name, syscall) \
 201.174 --asm						\
 201.175 -+__asm__						\
 201.176 -   (						\
 201.177 -    ".align 4\n"					\
 201.178 -    "__" #name ":\n"				\
   202.1 --- a/samples/alphaev56-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   202.2 +++ b/samples/alphaev56-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   202.3 @@ -1,7 +1,7 @@
   202.4  #
   202.5  # Automatically generated make config: don't edit
   202.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   202.7 -# Sun Oct  4 12:43:42 2009
   202.8 +# crosstool-NG version: hg_default@1596_241387704817
   202.9 +# Wed Oct 28 19:17:42 2009
  202.10  #
  202.11  
  202.12  #
  202.13 @@ -173,8 +173,13 @@
  202.14  CT_KERNEL_linux=y
  202.15  CT_KERNEL_LINUX_INSTALL=y
  202.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  202.17 +# CT_KERNEL_V_2_6_31_5 is not set
  202.18 +# CT_KERNEL_V_2_6_31_4 is not set
  202.19 +# CT_KERNEL_V_2_6_31_3 is not set
  202.20 +# CT_KERNEL_V_2_6_31_2 is not set
  202.21  CT_KERNEL_V_2_6_31_1=y
  202.22  # CT_KERNEL_V_2_6_31 is not set
  202.23 +# CT_KERNEL_V_3_6_30_9 is not set
  202.24  # CT_KERNEL_V_3_6_30_8 is not set
  202.25  # CT_KERNEL_V_3_6_30_7 is not set
  202.26  # CT_KERNEL_V_2_6_30_6 is not set
  202.27 @@ -186,17 +191,7 @@
  202.28  # CT_KERNEL_V_2_6_30 is not set
  202.29  # CT_KERNEL_V_2_6_29_6 is not set
  202.30  # CT_KERNEL_V_2_6_28_10 is not set
  202.31 -# CT_KERNEL_V_2_6_27_35 is not set
  202.32 -# CT_KERNEL_V_2_6_26_8 is not set
  202.33 -# CT_KERNEL_V_2_6_25_20 is not set
  202.34 -# CT_KERNEL_V_2_6_24_7 is not set
  202.35 -# CT_KERNEL_V_2_6_23_17 is not set
  202.36 -# CT_KERNEL_V_2_6_22_19 is not set
  202.37 -# CT_KERNEL_V_2_6_21_7 is not set
  202.38 -# CT_KERNEL_V_2_6_20_21 is not set
  202.39 -# CT_KERNEL_V_2_6_19_7 is not set
  202.40 -# CT_KERNEL_V_2_6_18_8 is not set
  202.41 -# CT_KERNEL_V_select is not set
  202.42 +# CT_KERNEL_V_2_6_27_38 is not set
  202.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  202.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  202.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  202.46 @@ -217,26 +212,13 @@
  202.47  #
  202.48  # GNU binutils
  202.49  #
  202.50 -CT_BINUTILS_VERSION="2.19.1"
  202.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  202.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  202.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  202.54 +# CT_BINUTILS_V_2_20 is not set
  202.55  CT_BINUTILS_V_2_19_1=y
  202.56  # CT_BINUTILS_V_2_19 is not set
  202.57 -# CT_BINUTILS_V_2_18_93 is not set
  202.58 -# CT_BINUTILS_V_2_18_92 is not set
  202.59 -# CT_BINUTILS_V_2_18_91 is not set
  202.60 -# CT_BINUTILS_V_2_18_90 is not set
  202.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  202.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  202.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  202.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  202.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  202.66  # CT_BINUTILS_V_2_18 is not set
  202.67  # CT_BINUTILS_V_2_17 is not set
  202.68  # CT_BINUTILS_V_2_16_1 is not set
  202.69 -# CT_BINUTILS_V_2_15 is not set
  202.70 -# CT_BINUTILS_V_2_14 is not set
  202.71 +CT_BINUTILS_VERSION="2.19.1"
  202.72  CT_BINUTILS_EXTRA_CONFIG=""
  202.73  CT_BINUTILS_FOR_TARGET=y
  202.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  202.75 @@ -248,6 +230,7 @@
  202.76  CT_CC="gcc"
  202.77  CT_CC_VERSION="4.3.3"
  202.78  CT_CC_gcc=y
  202.79 +# CT_CC_V_4_4_2 is not set
  202.80  # CT_CC_V_4_4_1 is not set
  202.81  # CT_CC_V_4_4_0 is not set
  202.82  # CT_CC_V_4_3_4 is not set
  202.83 @@ -261,16 +244,8 @@
  202.84  # CT_CC_V_4_2_1 is not set
  202.85  # CT_CC_V_4_2_0 is not set
  202.86  # CT_CC_V_4_1_2 is not set
  202.87 -# CT_CC_V_4_1_1 is not set
  202.88 -# CT_CC_V_4_1_0 is not set
  202.89  # CT_CC_V_4_0_4 is not set
  202.90 -# CT_CC_V_4_0_3 is not set
  202.91 -# CT_CC_V_4_0_2 is not set
  202.92 -# CT_CC_V_4_0_1 is not set
  202.93 -# CT_CC_V_4_0_0 is not set
  202.94  # CT_CC_V_3_4_6 is not set
  202.95 -# CT_CC_V_3_3_6 is not set
  202.96 -# CT_CC_V_3_2_3 is not set
  202.97  CT_CC_GCC_4_3_or_later=y
  202.98  # CT_CC_GCC_4_4_or_later is not set
  202.99  CT_CC_CXA_ATEXIT=y
 202.100 @@ -361,12 +336,8 @@
 202.101  # CT_GDB_NATIVE_STATIC is not set
 202.102  # CT_GDB_NATIVE_USE_GMP_MPFR is not set
 202.103  # CT_GDB_GDBSERVER is not set
 202.104 +# CT_GDB_V_7_0 is not set
 202.105  CT_GDB_V_6_8=y
 202.106 -# CT_GDB_V_6_7_1 is not set
 202.107 -# CT_GDB_V_6_7 is not set
 202.108 -# CT_GDB_V_6_6 is not set
 202.109 -# CT_GDB_V_6_5 is not set
 202.110 -# CT_GDB_V_6_4 is not set
 202.111  # CT_GDB_V_snapshot is not set
 202.112  CT_GDB_VERSION="6.8"
 202.113  
 202.114 @@ -383,13 +354,12 @@
 202.115  # CT_LTRACE_V_0_4 is not set
 202.116  CT_LTRACE_VERSION="0.5.2"
 202.117  CT_DEBUG_strace=y
 202.118 -# CT_STRACE_V_4_5_18 is not set
 202.119 -CT_STRACE_V_4_5_17=y
 202.120 +# CT_STRACE_V_4_5_19 is not set
 202.121 +CT_STRACE_V_4_5_18=y
 202.122 +# CT_STRACE_V_4_5_17 is not set
 202.123  # CT_STRACE_V_4_5_16 is not set
 202.124  # CT_STRACE_V_4_5_15 is not set
 202.125 -# CT_STRACE_V_4_5_14 is not set
 202.126 -# CT_STRACE_V_4_5 is not set
 202.127 -CT_STRACE_VERSION="4.5.17"
 202.128 +CT_STRACE_VERSION="4.5.18"
 202.129  
 202.130  #
 202.131  # Tools facilities
   203.1 --- a/samples/arm-cortex_a8-linux-gnueabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   203.2 +++ b/samples/arm-cortex_a8-linux-gnueabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   203.3 @@ -1,7 +1,7 @@
   203.4  #
   203.5  # Automatically generated make config: don't edit
   203.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   203.7 -# Sun Oct  4 12:44:11 2009
   203.8 +# crosstool-NG version: hg_default@1596_241387704817
   203.9 +# Wed Oct 28 19:18:33 2009
  203.10  #
  203.11  
  203.12  #
  203.13 @@ -169,8 +169,13 @@
  203.14  CT_KERNEL_linux=y
  203.15  CT_KERNEL_LINUX_INSTALL=y
  203.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  203.17 +# CT_KERNEL_V_2_6_31_5 is not set
  203.18 +# CT_KERNEL_V_2_6_31_4 is not set
  203.19 +# CT_KERNEL_V_2_6_31_3 is not set
  203.20 +# CT_KERNEL_V_2_6_31_2 is not set
  203.21  CT_KERNEL_V_2_6_31_1=y
  203.22  # CT_KERNEL_V_2_6_31 is not set
  203.23 +# CT_KERNEL_V_3_6_30_9 is not set
  203.24  # CT_KERNEL_V_3_6_30_8 is not set
  203.25  # CT_KERNEL_V_3_6_30_7 is not set
  203.26  # CT_KERNEL_V_2_6_30_6 is not set
  203.27 @@ -182,17 +187,7 @@
  203.28  # CT_KERNEL_V_2_6_30 is not set
  203.29  # CT_KERNEL_V_2_6_29_6 is not set
  203.30  # CT_KERNEL_V_2_6_28_10 is not set
  203.31 -# CT_KERNEL_V_2_6_27_35 is not set
  203.32 -# CT_KERNEL_V_2_6_26_8 is not set
  203.33 -# CT_KERNEL_V_2_6_25_20 is not set
  203.34 -# CT_KERNEL_V_2_6_24_7 is not set
  203.35 -# CT_KERNEL_V_2_6_23_17 is not set
  203.36 -# CT_KERNEL_V_2_6_22_19 is not set
  203.37 -# CT_KERNEL_V_2_6_21_7 is not set
  203.38 -# CT_KERNEL_V_2_6_20_21 is not set
  203.39 -# CT_KERNEL_V_2_6_19_7 is not set
  203.40 -# CT_KERNEL_V_2_6_18_8 is not set
  203.41 -# CT_KERNEL_V_select is not set
  203.42 +# CT_KERNEL_V_2_6_27_38 is not set
  203.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  203.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  203.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  203.46 @@ -213,26 +208,13 @@
  203.47  #
  203.48  # GNU binutils
  203.49  #
  203.50 -CT_BINUTILS_VERSION="2.19.1"
  203.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  203.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  203.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  203.54 +# CT_BINUTILS_V_2_20 is not set
  203.55  CT_BINUTILS_V_2_19_1=y
  203.56  # CT_BINUTILS_V_2_19 is not set
  203.57 -# CT_BINUTILS_V_2_18_93 is not set
  203.58 -# CT_BINUTILS_V_2_18_92 is not set
  203.59 -# CT_BINUTILS_V_2_18_91 is not set
  203.60 -# CT_BINUTILS_V_2_18_90 is not set
  203.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  203.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  203.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  203.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  203.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  203.66  # CT_BINUTILS_V_2_18 is not set
  203.67  # CT_BINUTILS_V_2_17 is not set
  203.68  # CT_BINUTILS_V_2_16_1 is not set
  203.69 -# CT_BINUTILS_V_2_15 is not set
  203.70 -# CT_BINUTILS_V_2_14 is not set
  203.71 +CT_BINUTILS_VERSION="2.19.1"
  203.72  CT_BINUTILS_EXTRA_CONFIG=""
  203.73  CT_BINUTILS_FOR_TARGET=y
  203.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  203.75 @@ -244,6 +226,7 @@
  203.76  CT_CC="gcc"
  203.77  CT_CC_VERSION="4.4.0"
  203.78  CT_CC_gcc=y
  203.79 +# CT_CC_V_4_4_2 is not set
  203.80  # CT_CC_V_4_4_1 is not set
  203.81  CT_CC_V_4_4_0=y
  203.82  # CT_CC_V_4_3_4 is not set
  203.83 @@ -257,16 +240,8 @@
  203.84  # CT_CC_V_4_2_1 is not set
  203.85  # CT_CC_V_4_2_0 is not set
  203.86  # CT_CC_V_4_1_2 is not set
  203.87 -# CT_CC_V_4_1_1 is not set
  203.88 -# CT_CC_V_4_1_0 is not set
  203.89  # CT_CC_V_4_0_4 is not set
  203.90 -# CT_CC_V_4_0_3 is not set
  203.91 -# CT_CC_V_4_0_2 is not set
  203.92 -# CT_CC_V_4_0_1 is not set
  203.93 -# CT_CC_V_4_0_0 is not set
  203.94  # CT_CC_V_3_4_6 is not set
  203.95 -# CT_CC_V_3_3_6 is not set
  203.96 -# CT_CC_V_3_2_3 is not set
  203.97  CT_CC_GCC_4_3_or_later=y
  203.98  CT_CC_GCC_4_4_or_later=y
  203.99  CT_CC_CXA_ATEXIT=y
 203.100 @@ -359,7 +334,6 @@
 203.101  #
 203.102  CT_DEBUG_dmalloc=y
 203.103  CT_DMALLOC_V_5_5_2=y
 203.104 -# CT_DMALLOC_V_5_4_3 is not set
 203.105  CT_DMALLOC_VERSION="5.5.2"
 203.106  CT_DEBUG_duma=y
 203.107  CT_DUMA_A=y
 203.108 @@ -379,12 +353,8 @@
 203.109  CT_GDB_NATIVE_USE_GMP_MPFR=y
 203.110  CT_GDB_GDBSERVER=y
 203.111  CT_GDB_GDBSERVER_STATIC=y
 203.112 +# CT_GDB_V_7_0 is not set
 203.113  CT_GDB_V_6_8=y
 203.114 -# CT_GDB_V_6_7_1 is not set
 203.115 -# CT_GDB_V_6_7 is not set
 203.116 -# CT_GDB_V_6_6 is not set
 203.117 -# CT_GDB_V_6_5 is not set
 203.118 -# CT_GDB_V_6_4 is not set
 203.119  # CT_GDB_V_snapshot is not set
 203.120  CT_GDB_VERSION="6.8"
 203.121  
 203.122 @@ -401,12 +371,11 @@
 203.123  # CT_LTRACE_V_0_4 is not set
 203.124  CT_LTRACE_VERSION="0.5.2"
 203.125  CT_DEBUG_strace=y
 203.126 +# CT_STRACE_V_4_5_19 is not set
 203.127  CT_STRACE_V_4_5_18=y
 203.128  # CT_STRACE_V_4_5_17 is not set
 203.129  # CT_STRACE_V_4_5_16 is not set
 203.130  # CT_STRACE_V_4_5_15 is not set
 203.131 -# CT_STRACE_V_4_5_14 is not set
 203.132 -# CT_STRACE_V_4_5 is not set
 203.133  CT_STRACE_VERSION="4.5.18"
 203.134  
 203.135  #
   204.1 --- a/samples/arm-iphone-linux-gnueabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   204.2 +++ b/samples/arm-iphone-linux-gnueabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   204.3 @@ -1,7 +1,7 @@
   204.4  #
   204.5  # Automatically generated make config: don't edit
   204.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   204.7 -# Sun Oct  4 12:44:24 2009
   204.8 +# crosstool-NG version: hg_default@1596_241387704817
   204.9 +# Wed Oct 28 19:18:59 2009
  204.10  #
  204.11  
  204.12  #
  204.13 @@ -169,8 +169,13 @@
  204.14  CT_KERNEL_linux=y
  204.15  CT_KERNEL_LINUX_INSTALL=y
  204.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  204.17 +# CT_KERNEL_V_2_6_31_5 is not set
  204.18 +# CT_KERNEL_V_2_6_31_4 is not set
  204.19 +# CT_KERNEL_V_2_6_31_3 is not set
  204.20 +# CT_KERNEL_V_2_6_31_2 is not set
  204.21  # CT_KERNEL_V_2_6_31_1 is not set
  204.22  # CT_KERNEL_V_2_6_31 is not set
  204.23 +# CT_KERNEL_V_3_6_30_9 is not set
  204.24  # CT_KERNEL_V_3_6_30_8 is not set
  204.25  # CT_KERNEL_V_3_6_30_7 is not set
  204.26  # CT_KERNEL_V_2_6_30_6 is not set
  204.27 @@ -182,17 +187,7 @@
  204.28  # CT_KERNEL_V_2_6_30 is not set
  204.29  # CT_KERNEL_V_2_6_29_6 is not set
  204.30  # CT_KERNEL_V_2_6_28_10 is not set
  204.31 -# CT_KERNEL_V_2_6_27_35 is not set
  204.32 -# CT_KERNEL_V_2_6_26_8 is not set
  204.33 -# CT_KERNEL_V_2_6_25_20 is not set
  204.34 -# CT_KERNEL_V_2_6_24_7 is not set
  204.35 -# CT_KERNEL_V_2_6_23_17 is not set
  204.36 -# CT_KERNEL_V_2_6_22_19 is not set
  204.37 -# CT_KERNEL_V_2_6_21_7 is not set
  204.38 -# CT_KERNEL_V_2_6_20_21 is not set
  204.39 -# CT_KERNEL_V_2_6_19_7 is not set
  204.40 -# CT_KERNEL_V_2_6_18_8 is not set
  204.41 -# CT_KERNEL_V_select is not set
  204.42 +# CT_KERNEL_V_2_6_27_38 is not set
  204.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  204.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  204.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  204.46 @@ -213,26 +208,13 @@
  204.47  #
  204.48  # GNU binutils
  204.49  #
  204.50 -CT_BINUTILS_VERSION="2.19.1"
  204.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  204.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  204.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  204.54 +# CT_BINUTILS_V_2_20 is not set
  204.55  CT_BINUTILS_V_2_19_1=y
  204.56  # CT_BINUTILS_V_2_19 is not set
  204.57 -# CT_BINUTILS_V_2_18_93 is not set
  204.58 -# CT_BINUTILS_V_2_18_92 is not set
  204.59 -# CT_BINUTILS_V_2_18_91 is not set
  204.60 -# CT_BINUTILS_V_2_18_90 is not set
  204.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  204.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  204.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  204.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  204.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  204.66  # CT_BINUTILS_V_2_18 is not set
  204.67  # CT_BINUTILS_V_2_17 is not set
  204.68  # CT_BINUTILS_V_2_16_1 is not set
  204.69 -# CT_BINUTILS_V_2_15 is not set
  204.70 -# CT_BINUTILS_V_2_14 is not set
  204.71 +CT_BINUTILS_VERSION="2.19.1"
  204.72  CT_BINUTILS_EXTRA_CONFIG=""
  204.73  # CT_BINUTILS_FOR_TARGET is not set
  204.74  
  204.75 @@ -242,6 +224,7 @@
  204.76  CT_CC="gcc"
  204.77  CT_CC_VERSION="4.3.4"
  204.78  CT_CC_gcc=y
  204.79 +# CT_CC_V_4_4_2 is not set
  204.80  # CT_CC_V_4_4_1 is not set
  204.81  # CT_CC_V_4_4_0 is not set
  204.82  CT_CC_V_4_3_4=y
  204.83 @@ -255,16 +238,8 @@
  204.84  # CT_CC_V_4_2_1 is not set
  204.85  # CT_CC_V_4_2_0 is not set
  204.86  # CT_CC_V_4_1_2 is not set
  204.87 -# CT_CC_V_4_1_1 is not set
  204.88 -# CT_CC_V_4_1_0 is not set
  204.89  # CT_CC_V_4_0_4 is not set
  204.90 -# CT_CC_V_4_0_3 is not set
  204.91 -# CT_CC_V_4_0_2 is not set
  204.92 -# CT_CC_V_4_0_1 is not set
  204.93 -# CT_CC_V_4_0_0 is not set
  204.94  # CT_CC_V_3_4_6 is not set
  204.95 -# CT_CC_V_3_3_6 is not set
  204.96 -# CT_CC_V_3_2_3 is not set
  204.97  CT_CC_GCC_4_3_or_later=y
  204.98  # CT_CC_GCC_4_4_or_later is not set
  204.99  CT_CC_CXA_ATEXIT=y
   205.1 --- a/samples/arm-unknown-eabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   205.2 +++ b/samples/arm-unknown-eabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   205.3 @@ -1,7 +1,7 @@
   205.4  #
   205.5  # Automatically generated make config: don't edit
   205.6 -# crosstool-NG version: hg_default@1519_9c7bc87be52d
   205.7 -# Tue Sep  8 18:27:19 2009
   205.8 +# crosstool-NG version: hg_default@1596_241387704817
   205.9 +# Wed Oct 28 19:19:27 2009
  205.10  #
  205.11  
  205.12  #
  205.13 @@ -182,26 +182,13 @@
  205.14  #
  205.15  # GNU binutils
  205.16  #
  205.17 +# CT_BINUTILS_V_2_20 is not set
  205.18 +CT_BINUTILS_V_2_19_1=y
  205.19 +# CT_BINUTILS_V_2_19 is not set
  205.20 +# CT_BINUTILS_V_2_18 is not set
  205.21 +# CT_BINUTILS_V_2_17 is not set
  205.22 +# CT_BINUTILS_V_2_16_1 is not set
  205.23  CT_BINUTILS_VERSION="2.19.1"
  205.24 -# CT_BINUTILS_V_2_14 is not set
  205.25 -# CT_BINUTILS_V_2_15 is not set
  205.26 -# CT_BINUTILS_V_2_16_1 is not set
  205.27 -# CT_BINUTILS_V_2_17 is not set
  205.28 -# CT_BINUTILS_V_2_18 is not set
  205.29 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  205.30 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  205.31 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  205.32 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  205.33 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  205.34 -# CT_BINUTILS_V_2_18_90 is not set
  205.35 -# CT_BINUTILS_V_2_18_91 is not set
  205.36 -# CT_BINUTILS_V_2_18_92 is not set
  205.37 -# CT_BINUTILS_V_2_18_93 is not set
  205.38 -# CT_BINUTILS_V_2_19 is not set
  205.39 -CT_BINUTILS_V_2_19_1=y
  205.40 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  205.41 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  205.42 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  205.43  CT_BINUTILS_EXTRA_CONFIG=""
  205.44  
  205.45  #
  205.46 @@ -210,29 +197,22 @@
  205.47  CT_CC="gcc"
  205.48  CT_CC_VERSION="4.3.4"
  205.49  CT_CC_gcc=y
  205.50 -# CT_CC_V_3_2_3 is not set
  205.51 -# CT_CC_V_3_3_6 is not set
  205.52 +# CT_CC_V_4_4_2 is not set
  205.53 +# CT_CC_V_4_4_1 is not set
  205.54 +# CT_CC_V_4_4_0 is not set
  205.55 +CT_CC_V_4_3_4=y
  205.56 +# CT_CC_V_4_3_3 is not set
  205.57 +# CT_CC_V_4_3_2 is not set
  205.58 +# CT_CC_V_4_3_1 is not set
  205.59 +# CT_CC_V_4_3_0 is not set
  205.60 +# CT_CC_V_4_2_4 is not set
  205.61 +# CT_CC_V_4_2_3 is not set
  205.62 +# CT_CC_V_4_2_2 is not set
  205.63 +# CT_CC_V_4_2_1 is not set
  205.64 +# CT_CC_V_4_2_0 is not set
  205.65 +# CT_CC_V_4_1_2 is not set
  205.66 +# CT_CC_V_4_0_4 is not set
  205.67  # CT_CC_V_3_4_6 is not set
  205.68 -# CT_CC_V_4_0_0 is not set
  205.69 -# CT_CC_V_4_0_1 is not set
  205.70 -# CT_CC_V_4_0_2 is not set
  205.71 -# CT_CC_V_4_0_3 is not set
  205.72 -# CT_CC_V_4_0_4 is not set
  205.73 -# CT_CC_V_4_1_0 is not set
  205.74 -# CT_CC_V_4_1_1 is not set
  205.75 -# CT_CC_V_4_1_2 is not set
  205.76 -# CT_CC_V_4_2_0 is not set
  205.77 -# CT_CC_V_4_2_1 is not set
  205.78 -# CT_CC_V_4_2_2 is not set
  205.79 -# CT_CC_V_4_2_3 is not set
  205.80 -# CT_CC_V_4_2_4 is not set
  205.81 -# CT_CC_V_4_3_0 is not set
  205.82 -# CT_CC_V_4_3_1 is not set
  205.83 -# CT_CC_V_4_3_2 is not set
  205.84 -# CT_CC_V_4_3_3 is not set
  205.85 -CT_CC_V_4_3_4=y
  205.86 -# CT_CC_V_4_4_0 is not set
  205.87 -# CT_CC_V_4_4_1 is not set
  205.88  CT_CC_GCC_4_3_or_later=y
  205.89  # CT_CC_GCC_4_4_or_later is not set
  205.90  CT_CC_ENABLE_CXX_FLAGS=""
  205.91 @@ -286,11 +266,7 @@
  205.92  #
  205.93  # provide your own gdbserver stub.
  205.94  #
  205.95 -# CT_GDB_V_6_4 is not set
  205.96 -# CT_GDB_V_6_5 is not set
  205.97 -# CT_GDB_V_6_6 is not set
  205.98 -# CT_GDB_V_6_7 is not set
  205.99 -# CT_GDB_V_6_7_1 is not set
 205.100 +# CT_GDB_V_7_0 is not set
 205.101  CT_GDB_V_6_8=y
 205.102  # CT_GDB_V_snapshot is not set
 205.103  CT_GDB_VERSION="6.8"
 205.104 @@ -308,15 +284,15 @@
 205.105  #
 205.106  CT_WRAPPER_NEEDED=y
 205.107  CT_GMP_MPFR=y
 205.108 +CT_GMP_V_4_3_1=y
 205.109 +# CT_GMP_V_4_3_0 is not set
 205.110 +# CT_GMP_V_4_2_4 is not set
 205.111  # CT_GMP_V_4_2_2 is not set
 205.112 -# CT_GMP_V_4_2_4 is not set
 205.113 -# CT_GMP_V_4_3_0 is not set
 205.114 -CT_GMP_V_4_3_1=y
 205.115  CT_GMP_VERSION="4.3.1"
 205.116 +CT_MPFR_V_2_4_1=y
 205.117 +# CT_MPFR_V_2_4_0 is not set
 205.118 +# CT_MPFR_V_2_3_2 is not set
 205.119  # CT_MPFR_V_2_3_1 is not set
 205.120 -# CT_MPFR_V_2_3_2 is not set
 205.121 -# CT_MPFR_V_2_4_0 is not set
 205.122 -CT_MPFR_V_2_4_1=y
 205.123  CT_MPFR_VERSION="2.4.1"
 205.124  # CT_PPL_CLOOG_MPC is not set
 205.125  
   206.1 --- a/samples/arm-unknown-elf/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   206.2 +++ b/samples/arm-unknown-elf/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   206.3 @@ -1,7 +1,7 @@
   206.4  #
   206.5  # Automatically generated make config: don't edit
   206.6 -# crosstool-NG version: hg_default@1519_b9c114a70021
   206.7 -# Tue Sep  8 18:35:25 2009
   206.8 +# crosstool-NG version: hg_default@1596_241387704817
   206.9 +# Wed Oct 28 19:19:51 2009
  206.10  #
  206.11  
  206.12  #
  206.13 @@ -184,26 +184,13 @@
  206.14  #
  206.15  # GNU binutils
  206.16  #
  206.17 +# CT_BINUTILS_V_2_20 is not set
  206.18 +CT_BINUTILS_V_2_19_1=y
  206.19 +# CT_BINUTILS_V_2_19 is not set
  206.20 +# CT_BINUTILS_V_2_18 is not set
  206.21 +# CT_BINUTILS_V_2_17 is not set
  206.22 +# CT_BINUTILS_V_2_16_1 is not set
  206.23  CT_BINUTILS_VERSION="2.19.1"
  206.24 -# CT_BINUTILS_V_2_14 is not set
  206.25 -# CT_BINUTILS_V_2_15 is not set
  206.26 -# CT_BINUTILS_V_2_16_1 is not set
  206.27 -# CT_BINUTILS_V_2_17 is not set
  206.28 -# CT_BINUTILS_V_2_18 is not set
  206.29 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  206.30 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  206.31 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  206.32 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  206.33 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  206.34 -# CT_BINUTILS_V_2_18_90 is not set
  206.35 -# CT_BINUTILS_V_2_18_91 is not set
  206.36 -# CT_BINUTILS_V_2_18_92 is not set
  206.37 -# CT_BINUTILS_V_2_18_93 is not set
  206.38 -# CT_BINUTILS_V_2_19 is not set
  206.39 -CT_BINUTILS_V_2_19_1=y
  206.40 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  206.41 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  206.42 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  206.43  CT_BINUTILS_EXTRA_CONFIG=""
  206.44  
  206.45  #
  206.46 @@ -212,29 +199,22 @@
  206.47  CT_CC="gcc"
  206.48  CT_CC_VERSION="4.3.4"
  206.49  CT_CC_gcc=y
  206.50 -# CT_CC_V_3_2_3 is not set
  206.51 -# CT_CC_V_3_3_6 is not set
  206.52 +# CT_CC_V_4_4_2 is not set
  206.53 +# CT_CC_V_4_4_1 is not set
  206.54 +# CT_CC_V_4_4_0 is not set
  206.55 +CT_CC_V_4_3_4=y
  206.56 +# CT_CC_V_4_3_3 is not set
  206.57 +# CT_CC_V_4_3_2 is not set
  206.58 +# CT_CC_V_4_3_1 is not set
  206.59 +# CT_CC_V_4_3_0 is not set
  206.60 +# CT_CC_V_4_2_4 is not set
  206.61 +# CT_CC_V_4_2_3 is not set
  206.62 +# CT_CC_V_4_2_2 is not set
  206.63 +# CT_CC_V_4_2_1 is not set
  206.64 +# CT_CC_V_4_2_0 is not set
  206.65 +# CT_CC_V_4_1_2 is not set
  206.66 +# CT_CC_V_4_0_4 is not set
  206.67  # CT_CC_V_3_4_6 is not set
  206.68 -# CT_CC_V_4_0_0 is not set
  206.69 -# CT_CC_V_4_0_1 is not set
  206.70 -# CT_CC_V_4_0_2 is not set
  206.71 -# CT_CC_V_4_0_3 is not set
  206.72 -# CT_CC_V_4_0_4 is not set
  206.73 -# CT_CC_V_4_1_0 is not set
  206.74 -# CT_CC_V_4_1_1 is not set
  206.75 -# CT_CC_V_4_1_2 is not set
  206.76 -# CT_CC_V_4_2_0 is not set
  206.77 -# CT_CC_V_4_2_1 is not set
  206.78 -# CT_CC_V_4_2_2 is not set
  206.79 -# CT_CC_V_4_2_3 is not set
  206.80 -# CT_CC_V_4_2_4 is not set
  206.81 -# CT_CC_V_4_3_0 is not set
  206.82 -# CT_CC_V_4_3_1 is not set
  206.83 -# CT_CC_V_4_3_2 is not set
  206.84 -# CT_CC_V_4_3_3 is not set
  206.85 -CT_CC_V_4_3_4=y
  206.86 -# CT_CC_V_4_4_0 is not set
  206.87 -# CT_CC_V_4_4_1 is not set
  206.88  CT_CC_GCC_4_3_or_later=y
  206.89  # CT_CC_GCC_4_4_or_later is not set
  206.90  CT_CC_ENABLE_CXX_FLAGS=""
  206.91 @@ -288,11 +268,7 @@
  206.92  #
  206.93  # provide your own gdbserver stub.
  206.94  #
  206.95 -# CT_GDB_V_6_4 is not set
  206.96 -# CT_GDB_V_6_5 is not set
  206.97 -# CT_GDB_V_6_6 is not set
  206.98 -# CT_GDB_V_6_7 is not set
  206.99 -# CT_GDB_V_6_7_1 is not set
 206.100 +# CT_GDB_V_7_0 is not set
 206.101  CT_GDB_V_6_8=y
 206.102  # CT_GDB_V_snapshot is not set
 206.103  CT_GDB_VERSION="6.8"
 206.104 @@ -310,15 +286,15 @@
 206.105  #
 206.106  CT_WRAPPER_NEEDED=y
 206.107  CT_GMP_MPFR=y
 206.108 +CT_GMP_V_4_3_1=y
 206.109 +# CT_GMP_V_4_3_0 is not set
 206.110 +# CT_GMP_V_4_2_4 is not set
 206.111  # CT_GMP_V_4_2_2 is not set
 206.112 -# CT_GMP_V_4_2_4 is not set
 206.113 -# CT_GMP_V_4_3_0 is not set
 206.114 -CT_GMP_V_4_3_1=y
 206.115  CT_GMP_VERSION="4.3.1"
 206.116 +CT_MPFR_V_2_4_1=y
 206.117 +# CT_MPFR_V_2_4_0 is not set
 206.118 +# CT_MPFR_V_2_3_2 is not set
 206.119  # CT_MPFR_V_2_3_1 is not set
 206.120 -# CT_MPFR_V_2_3_2 is not set
 206.121 -# CT_MPFR_V_2_4_0 is not set
 206.122 -CT_MPFR_V_2_4_1=y
 206.123  CT_MPFR_VERSION="2.4.1"
 206.124  # CT_PPL_CLOOG_MPC is not set
 206.125  
   207.1 --- a/samples/arm-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   207.2 +++ b/samples/arm-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   207.3 @@ -1,7 +1,7 @@
   207.4  #
   207.5  # Automatically generated make config: don't edit
   207.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   207.7 -# Sun Oct  4 12:45:08 2009
   207.8 +# crosstool-NG version: hg_default@1596_241387704817
   207.9 +# Wed Oct 28 19:20:11 2009
  207.10  #
  207.11  
  207.12  #
  207.13 @@ -173,8 +173,13 @@
  207.14  CT_KERNEL_linux=y
  207.15  CT_KERNEL_LINUX_INSTALL=y
  207.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  207.17 +# CT_KERNEL_V_2_6_31_5 is not set
  207.18 +# CT_KERNEL_V_2_6_31_4 is not set
  207.19 +# CT_KERNEL_V_2_6_31_3 is not set
  207.20 +# CT_KERNEL_V_2_6_31_2 is not set
  207.21  CT_KERNEL_V_2_6_31_1=y
  207.22  # CT_KERNEL_V_2_6_31 is not set
  207.23 +# CT_KERNEL_V_3_6_30_9 is not set
  207.24  # CT_KERNEL_V_3_6_30_8 is not set
  207.25  # CT_KERNEL_V_3_6_30_7 is not set
  207.26  # CT_KERNEL_V_2_6_30_6 is not set
  207.27 @@ -186,17 +191,7 @@
  207.28  # CT_KERNEL_V_2_6_30 is not set
  207.29  # CT_KERNEL_V_2_6_29_6 is not set
  207.30  # CT_KERNEL_V_2_6_28_10 is not set
  207.31 -# CT_KERNEL_V_2_6_27_35 is not set
  207.32 -# CT_KERNEL_V_2_6_26_8 is not set
  207.33 -# CT_KERNEL_V_2_6_25_20 is not set
  207.34 -# CT_KERNEL_V_2_6_24_7 is not set
  207.35 -# CT_KERNEL_V_2_6_23_17 is not set
  207.36 -# CT_KERNEL_V_2_6_22_19 is not set
  207.37 -# CT_KERNEL_V_2_6_21_7 is not set
  207.38 -# CT_KERNEL_V_2_6_20_21 is not set
  207.39 -# CT_KERNEL_V_2_6_19_7 is not set
  207.40 -# CT_KERNEL_V_2_6_18_8 is not set
  207.41 -# CT_KERNEL_V_select is not set
  207.42 +# CT_KERNEL_V_2_6_27_38 is not set
  207.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  207.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  207.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  207.46 @@ -217,26 +212,13 @@
  207.47  #
  207.48  # GNU binutils
  207.49  #
  207.50 -CT_BINUTILS_VERSION="2.19.1"
  207.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  207.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  207.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  207.54 +# CT_BINUTILS_V_2_20 is not set
  207.55  CT_BINUTILS_V_2_19_1=y
  207.56  # CT_BINUTILS_V_2_19 is not set
  207.57 -# CT_BINUTILS_V_2_18_93 is not set
  207.58 -# CT_BINUTILS_V_2_18_92 is not set
  207.59 -# CT_BINUTILS_V_2_18_91 is not set
  207.60 -# CT_BINUTILS_V_2_18_90 is not set
  207.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  207.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  207.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  207.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  207.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  207.66  # CT_BINUTILS_V_2_18 is not set
  207.67  # CT_BINUTILS_V_2_17 is not set
  207.68  # CT_BINUTILS_V_2_16_1 is not set
  207.69 -# CT_BINUTILS_V_2_15 is not set
  207.70 -# CT_BINUTILS_V_2_14 is not set
  207.71 +CT_BINUTILS_VERSION="2.19.1"
  207.72  CT_BINUTILS_EXTRA_CONFIG=""
  207.73  CT_BINUTILS_FOR_TARGET=y
  207.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  207.75 @@ -248,6 +230,7 @@
  207.76  CT_CC="gcc"
  207.77  CT_CC_VERSION="4.3.2"
  207.78  CT_CC_gcc=y
  207.79 +# CT_CC_V_4_4_2 is not set
  207.80  # CT_CC_V_4_4_1 is not set
  207.81  # CT_CC_V_4_4_0 is not set
  207.82  # CT_CC_V_4_3_4 is not set
  207.83 @@ -261,16 +244,8 @@
  207.84  # CT_CC_V_4_2_1 is not set
  207.85  # CT_CC_V_4_2_0 is not set
  207.86  # CT_CC_V_4_1_2 is not set
  207.87 -# CT_CC_V_4_1_1 is not set
  207.88 -# CT_CC_V_4_1_0 is not set
  207.89  # CT_CC_V_4_0_4 is not set
  207.90 -# CT_CC_V_4_0_3 is not set
  207.91 -# CT_CC_V_4_0_2 is not set
  207.92 -# CT_CC_V_4_0_1 is not set
  207.93 -# CT_CC_V_4_0_0 is not set
  207.94  # CT_CC_V_3_4_6 is not set
  207.95 -# CT_CC_V_3_3_6 is not set
  207.96 -# CT_CC_V_3_2_3 is not set
  207.97  CT_CC_GCC_4_3_or_later=y
  207.98  # CT_CC_GCC_4_4_or_later is not set
  207.99  CT_CC_CXA_ATEXIT=y
 207.100 @@ -360,17 +335,16 @@
 207.101  #
 207.102  CT_DEBUG_dmalloc=y
 207.103  CT_DMALLOC_V_5_5_2=y
 207.104 -# CT_DMALLOC_V_5_4_3 is not set
 207.105  CT_DMALLOC_VERSION="5.5.2"
 207.106  CT_DEBUG_duma=y
 207.107  CT_DUMA_A=y
 207.108  CT_DUMA_SO=y
 207.109 -# CT_DUMA_V_2_5_15 is not set
 207.110 -CT_DUMA_V_2_5_14=y
 207.111 +CT_DUMA_V_2_5_15=y
 207.112 +# CT_DUMA_V_2_5_14 is not set
 207.113  # CT_DUMA_V_2_5_12 is not set
 207.114  # CT_DUMA_V_2_5_8 is not set
 207.115  # CT_DUMA_V_2_5_1 is not set
 207.116 -CT_DUMA_VERSION="2_5_14"
 207.117 +CT_DUMA_VERSION="2_5_15"
 207.118  CT_DEBUG_gdb=y
 207.119  CT_GDB_CROSS=y
 207.120  # CT_GDB_CROSS_STATIC is not set
 207.121 @@ -379,12 +353,8 @@
 207.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 207.123  CT_GDB_GDBSERVER=y
 207.124  CT_GDB_GDBSERVER_STATIC=y
 207.125 +# CT_GDB_V_7_0 is not set
 207.126  CT_GDB_V_6_8=y
 207.127 -# CT_GDB_V_6_7_1 is not set
 207.128 -# CT_GDB_V_6_7 is not set
 207.129 -# CT_GDB_V_6_6 is not set
 207.130 -# CT_GDB_V_6_5 is not set
 207.131 -# CT_GDB_V_6_4 is not set
 207.132  # CT_GDB_V_snapshot is not set
 207.133  CT_GDB_VERSION="6.8"
 207.134  
 207.135 @@ -395,19 +365,18 @@
 207.136  # CT_NCURSES_V_5_6 is not set
 207.137  CT_NCURSES_VERSION="5.7"
 207.138  CT_DEBUG_ltrace=y
 207.139 -# CT_LTRACE_V_0_5_2 is not set
 207.140 +CT_LTRACE_V_0_5_2=y
 207.141  # CT_LTRACE_V_0_5_1 is not set
 207.142 -CT_LTRACE_V_0_5=y
 207.143 +# CT_LTRACE_V_0_5 is not set
 207.144  # CT_LTRACE_V_0_4 is not set
 207.145 -CT_LTRACE_VERSION="0.5"
 207.146 +CT_LTRACE_VERSION="0.5.2"
 207.147  CT_DEBUG_strace=y
 207.148 -# CT_STRACE_V_4_5_18 is not set
 207.149 -CT_STRACE_V_4_5_17=y
 207.150 +# CT_STRACE_V_4_5_19 is not set
 207.151 +CT_STRACE_V_4_5_18=y
 207.152 +# CT_STRACE_V_4_5_17 is not set
 207.153  # CT_STRACE_V_4_5_16 is not set
 207.154  # CT_STRACE_V_4_5_15 is not set
 207.155 -# CT_STRACE_V_4_5_14 is not set
 207.156 -# CT_STRACE_V_4_5 is not set
 207.157 -CT_STRACE_VERSION="4.5.17"
 207.158 +CT_STRACE_VERSION="4.5.18"
 207.159  
 207.160  #
 207.161  # Tools facilities
 207.162 @@ -427,11 +396,11 @@
 207.163  #
 207.164  CT_WRAPPER_NEEDED=y
 207.165  CT_GMP_MPFR=y
 207.166 -# CT_GMP_V_4_3_1 is not set
 207.167 +CT_GMP_V_4_3_1=y
 207.168  # CT_GMP_V_4_3_0 is not set
 207.169 -CT_GMP_V_4_2_4=y
 207.170 +# CT_GMP_V_4_2_4 is not set
 207.171  # CT_GMP_V_4_2_2 is not set
 207.172 -CT_GMP_VERSION="4.2.4"
 207.173 +CT_GMP_VERSION="4.3.1"
 207.174  CT_MPFR_V_2_4_1=y
 207.175  # CT_MPFR_V_2_4_0 is not set
 207.176  # CT_MPFR_V_2_3_2 is not set
   208.1 --- a/samples/arm-unknown-linux-gnueabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   208.2 +++ b/samples/arm-unknown-linux-gnueabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   208.3 @@ -1,7 +1,7 @@
   208.4  #
   208.5  # Automatically generated make config: don't edit
   208.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   208.7 -# Sun Oct  4 12:45:20 2009
   208.8 +# crosstool-NG version: hg_default@1596_241387704817
   208.9 +# Wed Oct 28 19:20:29 2009
  208.10  #
  208.11  
  208.12  #
  208.13 @@ -171,8 +171,13 @@
  208.14  CT_KERNEL_linux=y
  208.15  CT_KERNEL_LINUX_INSTALL=y
  208.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  208.17 +# CT_KERNEL_V_2_6_31_5 is not set
  208.18 +# CT_KERNEL_V_2_6_31_4 is not set
  208.19 +# CT_KERNEL_V_2_6_31_3 is not set
  208.20 +# CT_KERNEL_V_2_6_31_2 is not set
  208.21  CT_KERNEL_V_2_6_31_1=y
  208.22  # CT_KERNEL_V_2_6_31 is not set
  208.23 +# CT_KERNEL_V_3_6_30_9 is not set
  208.24  # CT_KERNEL_V_3_6_30_8 is not set
  208.25  # CT_KERNEL_V_3_6_30_7 is not set
  208.26  # CT_KERNEL_V_2_6_30_6 is not set
  208.27 @@ -184,17 +189,7 @@
  208.28  # CT_KERNEL_V_2_6_30 is not set
  208.29  # CT_KERNEL_V_2_6_29_6 is not set
  208.30  # CT_KERNEL_V_2_6_28_10 is not set
  208.31 -# CT_KERNEL_V_2_6_27_35 is not set
  208.32 -# CT_KERNEL_V_2_6_26_8 is not set
  208.33 -# CT_KERNEL_V_2_6_25_20 is not set
  208.34 -# CT_KERNEL_V_2_6_24_7 is not set
  208.35 -# CT_KERNEL_V_2_6_23_17 is not set
  208.36 -# CT_KERNEL_V_2_6_22_19 is not set
  208.37 -# CT_KERNEL_V_2_6_21_7 is not set
  208.38 -# CT_KERNEL_V_2_6_20_21 is not set
  208.39 -# CT_KERNEL_V_2_6_19_7 is not set
  208.40 -# CT_KERNEL_V_2_6_18_8 is not set
  208.41 -# CT_KERNEL_V_select is not set
  208.42 +# CT_KERNEL_V_2_6_27_38 is not set
  208.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  208.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  208.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  208.46 @@ -215,26 +210,13 @@
  208.47  #
  208.48  # GNU binutils
  208.49  #
  208.50 -CT_BINUTILS_VERSION="2.19.1"
  208.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  208.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  208.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  208.54 +# CT_BINUTILS_V_2_20 is not set
  208.55  CT_BINUTILS_V_2_19_1=y
  208.56  # CT_BINUTILS_V_2_19 is not set
  208.57 -# CT_BINUTILS_V_2_18_93 is not set
  208.58 -# CT_BINUTILS_V_2_18_92 is not set
  208.59 -# CT_BINUTILS_V_2_18_91 is not set
  208.60 -# CT_BINUTILS_V_2_18_90 is not set
  208.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  208.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  208.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  208.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  208.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  208.66  # CT_BINUTILS_V_2_18 is not set
  208.67  # CT_BINUTILS_V_2_17 is not set
  208.68  # CT_BINUTILS_V_2_16_1 is not set
  208.69 -# CT_BINUTILS_V_2_15 is not set
  208.70 -# CT_BINUTILS_V_2_14 is not set
  208.71 +CT_BINUTILS_VERSION="2.19.1"
  208.72  CT_BINUTILS_EXTRA_CONFIG=""
  208.73  CT_BINUTILS_FOR_TARGET=y
  208.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  208.75 @@ -246,6 +228,7 @@
  208.76  CT_CC="gcc"
  208.77  CT_CC_VERSION="4.3.2"
  208.78  CT_CC_gcc=y
  208.79 +# CT_CC_V_4_4_2 is not set
  208.80  # CT_CC_V_4_4_1 is not set
  208.81  # CT_CC_V_4_4_0 is not set
  208.82  # CT_CC_V_4_3_4 is not set
  208.83 @@ -259,16 +242,8 @@
  208.84  # CT_CC_V_4_2_1 is not set
  208.85  # CT_CC_V_4_2_0 is not set
  208.86  # CT_CC_V_4_1_2 is not set
  208.87 -# CT_CC_V_4_1_1 is not set
  208.88 -# CT_CC_V_4_1_0 is not set
  208.89  # CT_CC_V_4_0_4 is not set
  208.90 -# CT_CC_V_4_0_3 is not set
  208.91 -# CT_CC_V_4_0_2 is not set
  208.92 -# CT_CC_V_4_0_1 is not set
  208.93 -# CT_CC_V_4_0_0 is not set
  208.94  # CT_CC_V_3_4_6 is not set
  208.95 -# CT_CC_V_3_3_6 is not set
  208.96 -# CT_CC_V_3_2_3 is not set
  208.97  CT_CC_GCC_4_3_or_later=y
  208.98  # CT_CC_GCC_4_4_or_later is not set
  208.99  CT_CC_CXA_ATEXIT=y
 208.100 @@ -358,17 +333,16 @@
 208.101  #
 208.102  CT_DEBUG_dmalloc=y
 208.103  CT_DMALLOC_V_5_5_2=y
 208.104 -# CT_DMALLOC_V_5_4_3 is not set
 208.105  CT_DMALLOC_VERSION="5.5.2"
 208.106  CT_DEBUG_duma=y
 208.107  CT_DUMA_A=y
 208.108  CT_DUMA_SO=y
 208.109 -# CT_DUMA_V_2_5_15 is not set
 208.110 -CT_DUMA_V_2_5_14=y
 208.111 +CT_DUMA_V_2_5_15=y
 208.112 +# CT_DUMA_V_2_5_14 is not set
 208.113  # CT_DUMA_V_2_5_12 is not set
 208.114  # CT_DUMA_V_2_5_8 is not set
 208.115  # CT_DUMA_V_2_5_1 is not set
 208.116 -CT_DUMA_VERSION="2_5_14"
 208.117 +CT_DUMA_VERSION="2_5_15"
 208.118  CT_DEBUG_gdb=y
 208.119  CT_GDB_CROSS=y
 208.120  # CT_GDB_CROSS_STATIC is not set
 208.121 @@ -377,12 +351,8 @@
 208.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 208.123  CT_GDB_GDBSERVER=y
 208.124  CT_GDB_GDBSERVER_STATIC=y
 208.125 +# CT_GDB_V_7_0 is not set
 208.126  CT_GDB_V_6_8=y
 208.127 -# CT_GDB_V_6_7_1 is not set
 208.128 -# CT_GDB_V_6_7 is not set
 208.129 -# CT_GDB_V_6_6 is not set
 208.130 -# CT_GDB_V_6_5 is not set
 208.131 -# CT_GDB_V_6_4 is not set
 208.132  # CT_GDB_V_snapshot is not set
 208.133  CT_GDB_VERSION="6.8"
 208.134  
 208.135 @@ -393,19 +363,18 @@
 208.136  # CT_NCURSES_V_5_6 is not set
 208.137  CT_NCURSES_VERSION="5.7"
 208.138  CT_DEBUG_ltrace=y
 208.139 -# CT_LTRACE_V_0_5_2 is not set
 208.140 +CT_LTRACE_V_0_5_2=y
 208.141  # CT_LTRACE_V_0_5_1 is not set
 208.142 -CT_LTRACE_V_0_5=y
 208.143 +# CT_LTRACE_V_0_5 is not set
 208.144  # CT_LTRACE_V_0_4 is not set
 208.145 -CT_LTRACE_VERSION="0.5"
 208.146 +CT_LTRACE_VERSION="0.5.2"
 208.147  CT_DEBUG_strace=y
 208.148 -# CT_STRACE_V_4_5_18 is not set
 208.149 -CT_STRACE_V_4_5_17=y
 208.150 +# CT_STRACE_V_4_5_19 is not set
 208.151 +CT_STRACE_V_4_5_18=y
 208.152 +# CT_STRACE_V_4_5_17 is not set
 208.153  # CT_STRACE_V_4_5_16 is not set
 208.154  # CT_STRACE_V_4_5_15 is not set
 208.155 -# CT_STRACE_V_4_5_14 is not set
 208.156 -# CT_STRACE_V_4_5 is not set
 208.157 -CT_STRACE_VERSION="4.5.17"
 208.158 +CT_STRACE_VERSION="4.5.18"
 208.159  
 208.160  #
 208.161  # Tools facilities
 208.162 @@ -425,11 +394,11 @@
 208.163  #
 208.164  CT_WRAPPER_NEEDED=y
 208.165  CT_GMP_MPFR=y
 208.166 -# CT_GMP_V_4_3_1 is not set
 208.167 +CT_GMP_V_4_3_1=y
 208.168  # CT_GMP_V_4_3_0 is not set
 208.169 -CT_GMP_V_4_2_4=y
 208.170 +# CT_GMP_V_4_2_4 is not set
 208.171  # CT_GMP_V_4_2_2 is not set
 208.172 -CT_GMP_VERSION="4.2.4"
 208.173 +CT_GMP_VERSION="4.3.1"
 208.174  CT_MPFR_V_2_4_1=y
 208.175  # CT_MPFR_V_2_4_0 is not set
 208.176  # CT_MPFR_V_2_3_2 is not set
   209.1 --- a/samples/arm-unknown-linux-uclibc/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   209.2 +++ b/samples/arm-unknown-linux-uclibc/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   209.3 @@ -1,7 +1,7 @@
   209.4  #
   209.5  # Automatically generated make config: don't edit
   209.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   209.7 -# Sun Oct  4 12:45:31 2009
   209.8 +# crosstool-NG version: hg_default@1596_241387704817
   209.9 +# Wed Oct 28 19:20:46 2009
  209.10  #
  209.11  
  209.12  #
  209.13 @@ -173,8 +173,13 @@
  209.14  CT_KERNEL_linux=y
  209.15  CT_KERNEL_LINUX_INSTALL=y
  209.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  209.17 +# CT_KERNEL_V_2_6_31_5 is not set
  209.18 +# CT_KERNEL_V_2_6_31_4 is not set
  209.19 +# CT_KERNEL_V_2_6_31_3 is not set
  209.20 +# CT_KERNEL_V_2_6_31_2 is not set
  209.21  CT_KERNEL_V_2_6_31_1=y
  209.22  # CT_KERNEL_V_2_6_31 is not set
  209.23 +# CT_KERNEL_V_3_6_30_9 is not set
  209.24  # CT_KERNEL_V_3_6_30_8 is not set
  209.25  # CT_KERNEL_V_3_6_30_7 is not set
  209.26  # CT_KERNEL_V_2_6_30_6 is not set
  209.27 @@ -186,17 +191,7 @@
  209.28  # CT_KERNEL_V_2_6_30 is not set
  209.29  # CT_KERNEL_V_2_6_29_6 is not set
  209.30  # CT_KERNEL_V_2_6_28_10 is not set
  209.31 -# CT_KERNEL_V_2_6_27_35 is not set
  209.32 -# CT_KERNEL_V_2_6_26_8 is not set
  209.33 -# CT_KERNEL_V_2_6_25_20 is not set
  209.34 -# CT_KERNEL_V_2_6_24_7 is not set
  209.35 -# CT_KERNEL_V_2_6_23_17 is not set
  209.36 -# CT_KERNEL_V_2_6_22_19 is not set
  209.37 -# CT_KERNEL_V_2_6_21_7 is not set
  209.38 -# CT_KERNEL_V_2_6_20_21 is not set
  209.39 -# CT_KERNEL_V_2_6_19_7 is not set
  209.40 -# CT_KERNEL_V_2_6_18_8 is not set
  209.41 -# CT_KERNEL_V_select is not set
  209.42 +# CT_KERNEL_V_2_6_27_38 is not set
  209.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  209.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  209.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  209.46 @@ -217,26 +212,13 @@
  209.47  #
  209.48  # GNU binutils
  209.49  #
  209.50 -CT_BINUTILS_VERSION="2.19.1"
  209.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  209.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  209.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  209.54 +# CT_BINUTILS_V_2_20 is not set
  209.55  CT_BINUTILS_V_2_19_1=y
  209.56  # CT_BINUTILS_V_2_19 is not set
  209.57 -# CT_BINUTILS_V_2_18_93 is not set
  209.58 -# CT_BINUTILS_V_2_18_92 is not set
  209.59 -# CT_BINUTILS_V_2_18_91 is not set
  209.60 -# CT_BINUTILS_V_2_18_90 is not set
  209.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  209.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  209.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  209.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  209.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  209.66  # CT_BINUTILS_V_2_18 is not set
  209.67  # CT_BINUTILS_V_2_17 is not set
  209.68  # CT_BINUTILS_V_2_16_1 is not set
  209.69 -# CT_BINUTILS_V_2_15 is not set
  209.70 -# CT_BINUTILS_V_2_14 is not set
  209.71 +CT_BINUTILS_VERSION="2.19.1"
  209.72  CT_BINUTILS_EXTRA_CONFIG=""
  209.73  CT_BINUTILS_FOR_TARGET=y
  209.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  209.75 @@ -248,6 +230,7 @@
  209.76  CT_CC="gcc"
  209.77  CT_CC_VERSION="4.3.2"
  209.78  CT_CC_gcc=y
  209.79 +# CT_CC_V_4_4_2 is not set
  209.80  # CT_CC_V_4_4_1 is not set
  209.81  # CT_CC_V_4_4_0 is not set
  209.82  # CT_CC_V_4_3_4 is not set
  209.83 @@ -261,16 +244,8 @@
  209.84  # CT_CC_V_4_2_1 is not set
  209.85  # CT_CC_V_4_2_0 is not set
  209.86  # CT_CC_V_4_1_2 is not set
  209.87 -# CT_CC_V_4_1_1 is not set
  209.88 -# CT_CC_V_4_1_0 is not set
  209.89  # CT_CC_V_4_0_4 is not set
  209.90 -# CT_CC_V_4_0_3 is not set
  209.91 -# CT_CC_V_4_0_2 is not set
  209.92 -# CT_CC_V_4_0_1 is not set
  209.93 -# CT_CC_V_4_0_0 is not set
  209.94  # CT_CC_V_3_4_6 is not set
  209.95 -# CT_CC_V_3_3_6 is not set
  209.96 -# CT_CC_V_3_2_3 is not set
  209.97  CT_CC_GCC_4_3_or_later=y
  209.98  # CT_CC_GCC_4_4_or_later is not set
  209.99  CT_CC_CXA_ATEXIT=y
 209.100 @@ -310,9 +285,6 @@
 209.101  # CT_LIBC_V_0_9_30 is not set
 209.102  # CT_LIBC_V_0_9_29 is not set
 209.103  # CT_LIBC_V_0_9_28_3 is not set
 209.104 -# CT_LIBC_V_0_9_28_2 is not set
 209.105 -# CT_LIBC_V_0_9_28_1 is not set
 209.106 -# CT_LIBC_V_0_9_28 is not set
 209.107  # CT_LIBC_V_snapshot is not set
 209.108  # CT_LIBC_V_specific_date is not set
 209.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 209.110 @@ -343,17 +315,16 @@
 209.111  #
 209.112  CT_DEBUG_dmalloc=y
 209.113  CT_DMALLOC_V_5_5_2=y
 209.114 -# CT_DMALLOC_V_5_4_3 is not set
 209.115  CT_DMALLOC_VERSION="5.5.2"
 209.116  CT_DEBUG_duma=y
 209.117  CT_DUMA_A=y
 209.118  CT_DUMA_SO=y
 209.119 -# CT_DUMA_V_2_5_15 is not set
 209.120 -CT_DUMA_V_2_5_14=y
 209.121 +CT_DUMA_V_2_5_15=y
 209.122 +# CT_DUMA_V_2_5_14 is not set
 209.123  # CT_DUMA_V_2_5_12 is not set
 209.124  # CT_DUMA_V_2_5_8 is not set
 209.125  # CT_DUMA_V_2_5_1 is not set
 209.126 -CT_DUMA_VERSION="2_5_14"
 209.127 +CT_DUMA_VERSION="2_5_15"
 209.128  CT_DEBUG_gdb=y
 209.129  CT_GDB_CROSS=y
 209.130  # CT_GDB_CROSS_STATIC is not set
 209.131 @@ -362,12 +333,8 @@
 209.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 209.133  CT_GDB_GDBSERVER=y
 209.134  CT_GDB_GDBSERVER_STATIC=y
 209.135 +# CT_GDB_V_7_0 is not set
 209.136  CT_GDB_V_6_8=y
 209.137 -# CT_GDB_V_6_7_1 is not set
 209.138 -# CT_GDB_V_6_7 is not set
 209.139 -# CT_GDB_V_6_6 is not set
 209.140 -# CT_GDB_V_6_5 is not set
 209.141 -# CT_GDB_V_6_4 is not set
 209.142  # CT_GDB_V_snapshot is not set
 209.143  CT_GDB_VERSION="6.8"
 209.144  
 209.145 @@ -378,19 +345,18 @@
 209.146  # CT_NCURSES_V_5_6 is not set
 209.147  CT_NCURSES_VERSION="5.7"
 209.148  CT_DEBUG_ltrace=y
 209.149 -# CT_LTRACE_V_0_5_2 is not set
 209.150 +CT_LTRACE_V_0_5_2=y
 209.151  # CT_LTRACE_V_0_5_1 is not set
 209.152 -CT_LTRACE_V_0_5=y
 209.153 +# CT_LTRACE_V_0_5 is not set
 209.154  # CT_LTRACE_V_0_4 is not set
 209.155 -CT_LTRACE_VERSION="0.5"
 209.156 +CT_LTRACE_VERSION="0.5.2"
 209.157  CT_DEBUG_strace=y
 209.158 -# CT_STRACE_V_4_5_18 is not set
 209.159 -CT_STRACE_V_4_5_17=y
 209.160 +# CT_STRACE_V_4_5_19 is not set
 209.161 +CT_STRACE_V_4_5_18=y
 209.162 +# CT_STRACE_V_4_5_17 is not set
 209.163  # CT_STRACE_V_4_5_16 is not set
 209.164  # CT_STRACE_V_4_5_15 is not set
 209.165 -# CT_STRACE_V_4_5_14 is not set
 209.166 -# CT_STRACE_V_4_5 is not set
 209.167 -CT_STRACE_VERSION="4.5.17"
 209.168 +CT_STRACE_VERSION="4.5.18"
 209.169  
 209.170  #
 209.171  # Tools facilities
 209.172 @@ -410,11 +376,11 @@
 209.173  #
 209.174  CT_WRAPPER_NEEDED=y
 209.175  CT_GMP_MPFR=y
 209.176 -# CT_GMP_V_4_3_1 is not set
 209.177 +CT_GMP_V_4_3_1=y
 209.178  # CT_GMP_V_4_3_0 is not set
 209.179 -CT_GMP_V_4_2_4=y
 209.180 +# CT_GMP_V_4_2_4 is not set
 209.181  # CT_GMP_V_4_2_2 is not set
 209.182 -CT_GMP_VERSION="4.2.4"
 209.183 +CT_GMP_VERSION="4.3.1"
 209.184  CT_MPFR_V_2_4_1=y
 209.185  # CT_MPFR_V_2_4_0 is not set
 209.186  # CT_MPFR_V_2_3_2 is not set
   210.1 --- a/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   210.2 +++ b/samples/arm-unknown-linux-uclibcgnueabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   210.3 @@ -1,7 +1,7 @@
   210.4  #
   210.5  # Automatically generated make config: don't edit
   210.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   210.7 -# Sun Oct  4 12:45:43 2009
   210.8 +# crosstool-NG version: hg_default@1596_241387704817
   210.9 +# Wed Oct 28 19:21:10 2009
  210.10  #
  210.11  
  210.12  #
  210.13 @@ -172,8 +172,13 @@
  210.14  CT_KERNEL_linux=y
  210.15  CT_KERNEL_LINUX_INSTALL=y
  210.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  210.17 +# CT_KERNEL_V_2_6_31_5 is not set
  210.18 +# CT_KERNEL_V_2_6_31_4 is not set
  210.19 +# CT_KERNEL_V_2_6_31_3 is not set
  210.20 +# CT_KERNEL_V_2_6_31_2 is not set
  210.21  CT_KERNEL_V_2_6_31_1=y
  210.22  # CT_KERNEL_V_2_6_31 is not set
  210.23 +# CT_KERNEL_V_3_6_30_9 is not set
  210.24  # CT_KERNEL_V_3_6_30_8 is not set
  210.25  # CT_KERNEL_V_3_6_30_7 is not set
  210.26  # CT_KERNEL_V_2_6_30_6 is not set
  210.27 @@ -185,17 +190,7 @@
  210.28  # CT_KERNEL_V_2_6_30 is not set
  210.29  # CT_KERNEL_V_2_6_29_6 is not set
  210.30  # CT_KERNEL_V_2_6_28_10 is not set
  210.31 -# CT_KERNEL_V_2_6_27_35 is not set
  210.32 -# CT_KERNEL_V_2_6_26_8 is not set
  210.33 -# CT_KERNEL_V_2_6_25_20 is not set
  210.34 -# CT_KERNEL_V_2_6_24_7 is not set
  210.35 -# CT_KERNEL_V_2_6_23_17 is not set
  210.36 -# CT_KERNEL_V_2_6_22_19 is not set
  210.37 -# CT_KERNEL_V_2_6_21_7 is not set
  210.38 -# CT_KERNEL_V_2_6_20_21 is not set
  210.39 -# CT_KERNEL_V_2_6_19_7 is not set
  210.40 -# CT_KERNEL_V_2_6_18_8 is not set
  210.41 -# CT_KERNEL_V_select is not set
  210.42 +# CT_KERNEL_V_2_6_27_38 is not set
  210.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  210.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  210.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  210.46 @@ -216,26 +211,13 @@
  210.47  #
  210.48  # GNU binutils
  210.49  #
  210.50 -CT_BINUTILS_VERSION="2.19.1"
  210.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  210.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  210.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  210.54 +# CT_BINUTILS_V_2_20 is not set
  210.55  CT_BINUTILS_V_2_19_1=y
  210.56  # CT_BINUTILS_V_2_19 is not set
  210.57 -# CT_BINUTILS_V_2_18_93 is not set
  210.58 -# CT_BINUTILS_V_2_18_92 is not set
  210.59 -# CT_BINUTILS_V_2_18_91 is not set
  210.60 -# CT_BINUTILS_V_2_18_90 is not set
  210.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  210.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  210.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  210.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  210.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  210.66  # CT_BINUTILS_V_2_18 is not set
  210.67  # CT_BINUTILS_V_2_17 is not set
  210.68  # CT_BINUTILS_V_2_16_1 is not set
  210.69 -# CT_BINUTILS_V_2_15 is not set
  210.70 -# CT_BINUTILS_V_2_14 is not set
  210.71 +CT_BINUTILS_VERSION="2.19.1"
  210.72  CT_BINUTILS_EXTRA_CONFIG=""
  210.73  CT_BINUTILS_FOR_TARGET=y
  210.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  210.75 @@ -247,6 +229,7 @@
  210.76  CT_CC="gcc"
  210.77  CT_CC_VERSION="4.4.0"
  210.78  CT_CC_gcc=y
  210.79 +# CT_CC_V_4_4_2 is not set
  210.80  # CT_CC_V_4_4_1 is not set
  210.81  CT_CC_V_4_4_0=y
  210.82  # CT_CC_V_4_3_4 is not set
  210.83 @@ -260,16 +243,8 @@
  210.84  # CT_CC_V_4_2_1 is not set
  210.85  # CT_CC_V_4_2_0 is not set
  210.86  # CT_CC_V_4_1_2 is not set
  210.87 -# CT_CC_V_4_1_1 is not set
  210.88 -# CT_CC_V_4_1_0 is not set
  210.89  # CT_CC_V_4_0_4 is not set
  210.90 -# CT_CC_V_4_0_3 is not set
  210.91 -# CT_CC_V_4_0_2 is not set
  210.92 -# CT_CC_V_4_0_1 is not set
  210.93 -# CT_CC_V_4_0_0 is not set
  210.94  # CT_CC_V_3_4_6 is not set
  210.95 -# CT_CC_V_3_3_6 is not set
  210.96 -# CT_CC_V_3_2_3 is not set
  210.97  CT_CC_GCC_4_3_or_later=y
  210.98  CT_CC_GCC_4_4_or_later=y
  210.99  CT_CC_CXA_ATEXIT=y
 210.100 @@ -312,9 +287,6 @@
 210.101  # CT_LIBC_V_0_9_30 is not set
 210.102  # CT_LIBC_V_0_9_29 is not set
 210.103  # CT_LIBC_V_0_9_28_3 is not set
 210.104 -# CT_LIBC_V_0_9_28_2 is not set
 210.105 -# CT_LIBC_V_0_9_28_1 is not set
 210.106 -# CT_LIBC_V_0_9_28 is not set
 210.107  # CT_LIBC_V_snapshot is not set
 210.108  # CT_LIBC_V_specific_date is not set
 210.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 210.110 @@ -345,7 +317,6 @@
 210.111  #
 210.112  CT_DEBUG_dmalloc=y
 210.113  CT_DMALLOC_V_5_5_2=y
 210.114 -# CT_DMALLOC_V_5_4_3 is not set
 210.115  CT_DMALLOC_VERSION="5.5.2"
 210.116  CT_DEBUG_duma=y
 210.117  CT_DUMA_A=y
 210.118 @@ -365,12 +336,8 @@
 210.119  CT_GDB_NATIVE_USE_GMP_MPFR=y
 210.120  CT_GDB_GDBSERVER=y
 210.121  CT_GDB_GDBSERVER_STATIC=y
 210.122 +# CT_GDB_V_7_0 is not set
 210.123  CT_GDB_V_6_8=y
 210.124 -# CT_GDB_V_6_7_1 is not set
 210.125 -# CT_GDB_V_6_7 is not set
 210.126 -# CT_GDB_V_6_6 is not set
 210.127 -# CT_GDB_V_6_5 is not set
 210.128 -# CT_GDB_V_6_4 is not set
 210.129  # CT_GDB_V_snapshot is not set
 210.130  CT_GDB_VERSION="6.8"
 210.131  
 210.132 @@ -381,18 +348,17 @@
 210.133  # CT_NCURSES_V_5_6 is not set
 210.134  CT_NCURSES_VERSION="5.7"
 210.135  CT_DEBUG_ltrace=y
 210.136 -# CT_LTRACE_V_0_5_2 is not set
 210.137 +CT_LTRACE_V_0_5_2=y
 210.138  # CT_LTRACE_V_0_5_1 is not set
 210.139 -CT_LTRACE_V_0_5=y
 210.140 +# CT_LTRACE_V_0_5 is not set
 210.141  # CT_LTRACE_V_0_4 is not set
 210.142 -CT_LTRACE_VERSION="0.5"
 210.143 +CT_LTRACE_VERSION="0.5.2"
 210.144  CT_DEBUG_strace=y
 210.145 +# CT_STRACE_V_4_5_19 is not set
 210.146  CT_STRACE_V_4_5_18=y
 210.147  # CT_STRACE_V_4_5_17 is not set
 210.148  # CT_STRACE_V_4_5_16 is not set
 210.149  # CT_STRACE_V_4_5_15 is not set
 210.150 -# CT_STRACE_V_4_5_14 is not set
 210.151 -# CT_STRACE_V_4_5 is not set
 210.152  CT_STRACE_VERSION="4.5.18"
 210.153  
 210.154  #
   211.1 --- a/samples/armeb-unknown-eabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   211.2 +++ b/samples/armeb-unknown-eabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   211.3 @@ -1,7 +1,7 @@
   211.4  #
   211.5  # Automatically generated make config: don't edit
   211.6 -# crosstool-NG version: hg_default@1525_a2c6b6c74bfb
   211.7 -# Wed Sep  9 21:44:54 2009
   211.8 +# crosstool-NG version: hg_default@1596_241387704817
   211.9 +# Wed Oct 28 19:21:35 2009
  211.10  #
  211.11  
  211.12  #
  211.13 @@ -180,26 +180,13 @@
  211.14  #
  211.15  # GNU binutils
  211.16  #
  211.17 +# CT_BINUTILS_V_2_20 is not set
  211.18 +CT_BINUTILS_V_2_19_1=y
  211.19 +# CT_BINUTILS_V_2_19 is not set
  211.20 +# CT_BINUTILS_V_2_18 is not set
  211.21 +# CT_BINUTILS_V_2_17 is not set
  211.22 +# CT_BINUTILS_V_2_16_1 is not set
  211.23  CT_BINUTILS_VERSION="2.19.1"
  211.24 -# CT_BINUTILS_V_2_14 is not set
  211.25 -# CT_BINUTILS_V_2_15 is not set
  211.26 -# CT_BINUTILS_V_2_16_1 is not set
  211.27 -# CT_BINUTILS_V_2_17 is not set
  211.28 -# CT_BINUTILS_V_2_18 is not set
  211.29 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  211.30 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  211.31 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  211.32 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  211.33 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  211.34 -# CT_BINUTILS_V_2_18_90 is not set
  211.35 -# CT_BINUTILS_V_2_18_91 is not set
  211.36 -# CT_BINUTILS_V_2_18_92 is not set
  211.37 -# CT_BINUTILS_V_2_18_93 is not set
  211.38 -# CT_BINUTILS_V_2_19 is not set
  211.39 -CT_BINUTILS_V_2_19_1=y
  211.40 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  211.41 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  211.42 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  211.43  CT_BINUTILS_EXTRA_CONFIG=""
  211.44  
  211.45  #
  211.46 @@ -208,29 +195,22 @@
  211.47  CT_CC="gcc"
  211.48  CT_CC_VERSION="4.3.2"
  211.49  CT_CC_gcc=y
  211.50 -# CT_CC_V_3_2_3 is not set
  211.51 -# CT_CC_V_3_3_6 is not set
  211.52 +# CT_CC_V_4_4_2 is not set
  211.53 +# CT_CC_V_4_4_1 is not set
  211.54 +# CT_CC_V_4_4_0 is not set
  211.55 +# CT_CC_V_4_3_4 is not set
  211.56 +# CT_CC_V_4_3_3 is not set
  211.57 +CT_CC_V_4_3_2=y
  211.58 +# CT_CC_V_4_3_1 is not set
  211.59 +# CT_CC_V_4_3_0 is not set
  211.60 +# CT_CC_V_4_2_4 is not set
  211.61 +# CT_CC_V_4_2_3 is not set
  211.62 +# CT_CC_V_4_2_2 is not set
  211.63 +# CT_CC_V_4_2_1 is not set
  211.64 +# CT_CC_V_4_2_0 is not set
  211.65 +# CT_CC_V_4_1_2 is not set
  211.66 +# CT_CC_V_4_0_4 is not set
  211.67  # CT_CC_V_3_4_6 is not set
  211.68 -# CT_CC_V_4_0_0 is not set
  211.69 -# CT_CC_V_4_0_1 is not set
  211.70 -# CT_CC_V_4_0_2 is not set
  211.71 -# CT_CC_V_4_0_3 is not set
  211.72 -# CT_CC_V_4_0_4 is not set
  211.73 -# CT_CC_V_4_1_0 is not set
  211.74 -# CT_CC_V_4_1_1 is not set
  211.75 -# CT_CC_V_4_1_2 is not set
  211.76 -# CT_CC_V_4_2_0 is not set
  211.77 -# CT_CC_V_4_2_1 is not set
  211.78 -# CT_CC_V_4_2_2 is not set
  211.79 -# CT_CC_V_4_2_3 is not set
  211.80 -# CT_CC_V_4_2_4 is not set
  211.81 -# CT_CC_V_4_3_0 is not set
  211.82 -# CT_CC_V_4_3_1 is not set
  211.83 -CT_CC_V_4_3_2=y
  211.84 -# CT_CC_V_4_3_3 is not set
  211.85 -# CT_CC_V_4_3_4 is not set
  211.86 -# CT_CC_V_4_4_0 is not set
  211.87 -# CT_CC_V_4_4_1 is not set
  211.88  CT_CC_GCC_4_3_or_later=y
  211.89  # CT_CC_GCC_4_4_or_later is not set
  211.90  CT_CC_ENABLE_CXX_FLAGS=""
  211.91 @@ -284,11 +264,7 @@
  211.92  #
  211.93  # provide your own gdbserver stub.
  211.94  #
  211.95 -# CT_GDB_V_6_4 is not set
  211.96 -# CT_GDB_V_6_5 is not set
  211.97 -# CT_GDB_V_6_6 is not set
  211.98 -# CT_GDB_V_6_7 is not set
  211.99 -# CT_GDB_V_6_7_1 is not set
 211.100 +# CT_GDB_V_7_0 is not set
 211.101  CT_GDB_V_6_8=y
 211.102  # CT_GDB_V_snapshot is not set
 211.103  CT_GDB_VERSION="6.8"
 211.104 @@ -306,15 +282,15 @@
 211.105  #
 211.106  CT_WRAPPER_NEEDED=y
 211.107  CT_GMP_MPFR=y
 211.108 +CT_GMP_V_4_3_1=y
 211.109 +# CT_GMP_V_4_3_0 is not set
 211.110 +# CT_GMP_V_4_2_4 is not set
 211.111  # CT_GMP_V_4_2_2 is not set
 211.112 -CT_GMP_V_4_2_4=y
 211.113 -# CT_GMP_V_4_3_0 is not set
 211.114 -# CT_GMP_V_4_3_1 is not set
 211.115 -CT_GMP_VERSION="4.2.4"
 211.116 +CT_GMP_VERSION="4.3.1"
 211.117 +CT_MPFR_V_2_4_1=y
 211.118 +# CT_MPFR_V_2_4_0 is not set
 211.119 +# CT_MPFR_V_2_3_2 is not set
 211.120  # CT_MPFR_V_2_3_1 is not set
 211.121 -# CT_MPFR_V_2_3_2 is not set
 211.122 -# CT_MPFR_V_2_4_0 is not set
 211.123 -CT_MPFR_V_2_4_1=y
 211.124  CT_MPFR_VERSION="2.4.1"
 211.125  # CT_PPL_CLOOG_MPC is not set
 211.126  
   212.1 --- a/samples/armeb-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   212.2 +++ b/samples/armeb-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   212.3 @@ -1,7 +1,7 @@
   212.4  #
   212.5  # Automatically generated make config: don't edit
   212.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   212.7 -# Sun Oct  4 12:46:10 2009
   212.8 +# crosstool-NG version: hg_default@1596_241387704817
   212.9 +# Wed Oct 28 19:22:02 2009
  212.10  #
  212.11  
  212.12  #
  212.13 @@ -173,8 +173,13 @@
  212.14  CT_KERNEL_linux=y
  212.15  CT_KERNEL_LINUX_INSTALL=y
  212.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  212.17 +# CT_KERNEL_V_2_6_31_5 is not set
  212.18 +# CT_KERNEL_V_2_6_31_4 is not set
  212.19 +# CT_KERNEL_V_2_6_31_3 is not set
  212.20 +# CT_KERNEL_V_2_6_31_2 is not set
  212.21  CT_KERNEL_V_2_6_31_1=y
  212.22  # CT_KERNEL_V_2_6_31 is not set
  212.23 +# CT_KERNEL_V_3_6_30_9 is not set
  212.24  # CT_KERNEL_V_3_6_30_8 is not set
  212.25  # CT_KERNEL_V_3_6_30_7 is not set
  212.26  # CT_KERNEL_V_2_6_30_6 is not set
  212.27 @@ -186,17 +191,7 @@
  212.28  # CT_KERNEL_V_2_6_30 is not set
  212.29  # CT_KERNEL_V_2_6_29_6 is not set
  212.30  # CT_KERNEL_V_2_6_28_10 is not set
  212.31 -# CT_KERNEL_V_2_6_27_35 is not set
  212.32 -# CT_KERNEL_V_2_6_26_8 is not set
  212.33 -# CT_KERNEL_V_2_6_25_20 is not set
  212.34 -# CT_KERNEL_V_2_6_24_7 is not set
  212.35 -# CT_KERNEL_V_2_6_23_17 is not set
  212.36 -# CT_KERNEL_V_2_6_22_19 is not set
  212.37 -# CT_KERNEL_V_2_6_21_7 is not set
  212.38 -# CT_KERNEL_V_2_6_20_21 is not set
  212.39 -# CT_KERNEL_V_2_6_19_7 is not set
  212.40 -# CT_KERNEL_V_2_6_18_8 is not set
  212.41 -# CT_KERNEL_V_select is not set
  212.42 +# CT_KERNEL_V_2_6_27_38 is not set
  212.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  212.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  212.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  212.46 @@ -217,26 +212,13 @@
  212.47  #
  212.48  # GNU binutils
  212.49  #
  212.50 -CT_BINUTILS_VERSION="2.19.1"
  212.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  212.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  212.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  212.54 +# CT_BINUTILS_V_2_20 is not set
  212.55  CT_BINUTILS_V_2_19_1=y
  212.56  # CT_BINUTILS_V_2_19 is not set
  212.57 -# CT_BINUTILS_V_2_18_93 is not set
  212.58 -# CT_BINUTILS_V_2_18_92 is not set
  212.59 -# CT_BINUTILS_V_2_18_91 is not set
  212.60 -# CT_BINUTILS_V_2_18_90 is not set
  212.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  212.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  212.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  212.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  212.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  212.66  # CT_BINUTILS_V_2_18 is not set
  212.67  # CT_BINUTILS_V_2_17 is not set
  212.68  # CT_BINUTILS_V_2_16_1 is not set
  212.69 -# CT_BINUTILS_V_2_15 is not set
  212.70 -# CT_BINUTILS_V_2_14 is not set
  212.71 +CT_BINUTILS_VERSION="2.19.1"
  212.72  CT_BINUTILS_EXTRA_CONFIG=""
  212.73  CT_BINUTILS_FOR_TARGET=y
  212.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  212.75 @@ -248,6 +230,7 @@
  212.76  CT_CC="gcc"
  212.77  CT_CC_VERSION="4.3.2"
  212.78  CT_CC_gcc=y
  212.79 +# CT_CC_V_4_4_2 is not set
  212.80  # CT_CC_V_4_4_1 is not set
  212.81  # CT_CC_V_4_4_0 is not set
  212.82  # CT_CC_V_4_3_4 is not set
  212.83 @@ -261,16 +244,8 @@
  212.84  # CT_CC_V_4_2_1 is not set
  212.85  # CT_CC_V_4_2_0 is not set
  212.86  # CT_CC_V_4_1_2 is not set
  212.87 -# CT_CC_V_4_1_1 is not set
  212.88 -# CT_CC_V_4_1_0 is not set
  212.89  # CT_CC_V_4_0_4 is not set
  212.90 -# CT_CC_V_4_0_3 is not set
  212.91 -# CT_CC_V_4_0_2 is not set
  212.92 -# CT_CC_V_4_0_1 is not set
  212.93 -# CT_CC_V_4_0_0 is not set
  212.94  # CT_CC_V_3_4_6 is not set
  212.95 -# CT_CC_V_3_3_6 is not set
  212.96 -# CT_CC_V_3_2_3 is not set
  212.97  CT_CC_GCC_4_3_or_later=y
  212.98  # CT_CC_GCC_4_4_or_later is not set
  212.99  CT_CC_CXA_ATEXIT=y
 212.100 @@ -360,17 +335,16 @@
 212.101  #
 212.102  CT_DEBUG_dmalloc=y
 212.103  CT_DMALLOC_V_5_5_2=y
 212.104 -# CT_DMALLOC_V_5_4_3 is not set
 212.105  CT_DMALLOC_VERSION="5.5.2"
 212.106  CT_DEBUG_duma=y
 212.107  CT_DUMA_A=y
 212.108  CT_DUMA_SO=y
 212.109 -# CT_DUMA_V_2_5_15 is not set
 212.110 -CT_DUMA_V_2_5_14=y
 212.111 +CT_DUMA_V_2_5_15=y
 212.112 +# CT_DUMA_V_2_5_14 is not set
 212.113  # CT_DUMA_V_2_5_12 is not set
 212.114  # CT_DUMA_V_2_5_8 is not set
 212.115  # CT_DUMA_V_2_5_1 is not set
 212.116 -CT_DUMA_VERSION="2_5_14"
 212.117 +CT_DUMA_VERSION="2_5_15"
 212.118  CT_DEBUG_gdb=y
 212.119  CT_GDB_CROSS=y
 212.120  # CT_GDB_CROSS_STATIC is not set
 212.121 @@ -379,12 +353,8 @@
 212.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 212.123  CT_GDB_GDBSERVER=y
 212.124  CT_GDB_GDBSERVER_STATIC=y
 212.125 +# CT_GDB_V_7_0 is not set
 212.126  CT_GDB_V_6_8=y
 212.127 -# CT_GDB_V_6_7_1 is not set
 212.128 -# CT_GDB_V_6_7 is not set
 212.129 -# CT_GDB_V_6_6 is not set
 212.130 -# CT_GDB_V_6_5 is not set
 212.131 -# CT_GDB_V_6_4 is not set
 212.132  # CT_GDB_V_snapshot is not set
 212.133  CT_GDB_VERSION="6.8"
 212.134  
 212.135 @@ -395,19 +365,18 @@
 212.136  # CT_NCURSES_V_5_6 is not set
 212.137  CT_NCURSES_VERSION="5.7"
 212.138  CT_DEBUG_ltrace=y
 212.139 -# CT_LTRACE_V_0_5_2 is not set
 212.140 +CT_LTRACE_V_0_5_2=y
 212.141  # CT_LTRACE_V_0_5_1 is not set
 212.142 -CT_LTRACE_V_0_5=y
 212.143 +# CT_LTRACE_V_0_5 is not set
 212.144  # CT_LTRACE_V_0_4 is not set
 212.145 -CT_LTRACE_VERSION="0.5"
 212.146 +CT_LTRACE_VERSION="0.5.2"
 212.147  CT_DEBUG_strace=y
 212.148 -# CT_STRACE_V_4_5_18 is not set
 212.149 -CT_STRACE_V_4_5_17=y
 212.150 +# CT_STRACE_V_4_5_19 is not set
 212.151 +CT_STRACE_V_4_5_18=y
 212.152 +# CT_STRACE_V_4_5_17 is not set
 212.153  # CT_STRACE_V_4_5_16 is not set
 212.154  # CT_STRACE_V_4_5_15 is not set
 212.155 -# CT_STRACE_V_4_5_14 is not set
 212.156 -# CT_STRACE_V_4_5 is not set
 212.157 -CT_STRACE_VERSION="4.5.17"
 212.158 +CT_STRACE_VERSION="4.5.18"
 212.159  
 212.160  #
 212.161  # Tools facilities
 212.162 @@ -427,11 +396,11 @@
 212.163  #
 212.164  CT_WRAPPER_NEEDED=y
 212.165  CT_GMP_MPFR=y
 212.166 -# CT_GMP_V_4_3_1 is not set
 212.167 +CT_GMP_V_4_3_1=y
 212.168  # CT_GMP_V_4_3_0 is not set
 212.169 -CT_GMP_V_4_2_4=y
 212.170 +# CT_GMP_V_4_2_4 is not set
 212.171  # CT_GMP_V_4_2_2 is not set
 212.172 -CT_GMP_VERSION="4.2.4"
 212.173 +CT_GMP_VERSION="4.3.1"
 212.174  CT_MPFR_V_2_4_1=y
 212.175  # CT_MPFR_V_2_4_0 is not set
 212.176  # CT_MPFR_V_2_3_2 is not set
   213.1 --- a/samples/armeb-unknown-linux-gnueabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   213.2 +++ b/samples/armeb-unknown-linux-gnueabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   213.3 @@ -1,7 +1,7 @@
   213.4  #
   213.5  # Automatically generated make config: don't edit
   213.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   213.7 -# Sun Oct  4 12:46:19 2009
   213.8 +# crosstool-NG version: hg_default@1596_241387704817
   213.9 +# Wed Oct 28 19:22:15 2009
  213.10  #
  213.11  
  213.12  #
  213.13 @@ -171,8 +171,13 @@
  213.14  CT_KERNEL_linux=y
  213.15  CT_KERNEL_LINUX_INSTALL=y
  213.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  213.17 +# CT_KERNEL_V_2_6_31_5 is not set
  213.18 +# CT_KERNEL_V_2_6_31_4 is not set
  213.19 +# CT_KERNEL_V_2_6_31_3 is not set
  213.20 +# CT_KERNEL_V_2_6_31_2 is not set
  213.21  CT_KERNEL_V_2_6_31_1=y
  213.22  # CT_KERNEL_V_2_6_31 is not set
  213.23 +# CT_KERNEL_V_3_6_30_9 is not set
  213.24  # CT_KERNEL_V_3_6_30_8 is not set
  213.25  # CT_KERNEL_V_3_6_30_7 is not set
  213.26  # CT_KERNEL_V_2_6_30_6 is not set
  213.27 @@ -184,17 +189,7 @@
  213.28  # CT_KERNEL_V_2_6_30 is not set
  213.29  # CT_KERNEL_V_2_6_29_6 is not set
  213.30  # CT_KERNEL_V_2_6_28_10 is not set
  213.31 -# CT_KERNEL_V_2_6_27_35 is not set
  213.32 -# CT_KERNEL_V_2_6_26_8 is not set
  213.33 -# CT_KERNEL_V_2_6_25_20 is not set
  213.34 -# CT_KERNEL_V_2_6_24_7 is not set
  213.35 -# CT_KERNEL_V_2_6_23_17 is not set
  213.36 -# CT_KERNEL_V_2_6_22_19 is not set
  213.37 -# CT_KERNEL_V_2_6_21_7 is not set
  213.38 -# CT_KERNEL_V_2_6_20_21 is not set
  213.39 -# CT_KERNEL_V_2_6_19_7 is not set
  213.40 -# CT_KERNEL_V_2_6_18_8 is not set
  213.41 -# CT_KERNEL_V_select is not set
  213.42 +# CT_KERNEL_V_2_6_27_38 is not set
  213.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  213.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  213.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  213.46 @@ -215,26 +210,13 @@
  213.47  #
  213.48  # GNU binutils
  213.49  #
  213.50 -CT_BINUTILS_VERSION="2.19.1"
  213.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  213.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  213.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  213.54 +# CT_BINUTILS_V_2_20 is not set
  213.55  CT_BINUTILS_V_2_19_1=y
  213.56  # CT_BINUTILS_V_2_19 is not set
  213.57 -# CT_BINUTILS_V_2_18_93 is not set
  213.58 -# CT_BINUTILS_V_2_18_92 is not set
  213.59 -# CT_BINUTILS_V_2_18_91 is not set
  213.60 -# CT_BINUTILS_V_2_18_90 is not set
  213.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  213.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  213.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  213.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  213.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  213.66  # CT_BINUTILS_V_2_18 is not set
  213.67  # CT_BINUTILS_V_2_17 is not set
  213.68  # CT_BINUTILS_V_2_16_1 is not set
  213.69 -# CT_BINUTILS_V_2_15 is not set
  213.70 -# CT_BINUTILS_V_2_14 is not set
  213.71 +CT_BINUTILS_VERSION="2.19.1"
  213.72  CT_BINUTILS_EXTRA_CONFIG=""
  213.73  CT_BINUTILS_FOR_TARGET=y
  213.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  213.75 @@ -246,6 +228,7 @@
  213.76  CT_CC="gcc"
  213.77  CT_CC_VERSION="4.3.2"
  213.78  CT_CC_gcc=y
  213.79 +# CT_CC_V_4_4_2 is not set
  213.80  # CT_CC_V_4_4_1 is not set
  213.81  # CT_CC_V_4_4_0 is not set
  213.82  # CT_CC_V_4_3_4 is not set
  213.83 @@ -259,16 +242,8 @@
  213.84  # CT_CC_V_4_2_1 is not set
  213.85  # CT_CC_V_4_2_0 is not set
  213.86  # CT_CC_V_4_1_2 is not set
  213.87 -# CT_CC_V_4_1_1 is not set
  213.88 -# CT_CC_V_4_1_0 is not set
  213.89  # CT_CC_V_4_0_4 is not set
  213.90 -# CT_CC_V_4_0_3 is not set
  213.91 -# CT_CC_V_4_0_2 is not set
  213.92 -# CT_CC_V_4_0_1 is not set
  213.93 -# CT_CC_V_4_0_0 is not set
  213.94  # CT_CC_V_3_4_6 is not set
  213.95 -# CT_CC_V_3_3_6 is not set
  213.96 -# CT_CC_V_3_2_3 is not set
  213.97  CT_CC_GCC_4_3_or_later=y
  213.98  # CT_CC_GCC_4_4_or_later is not set
  213.99  CT_CC_CXA_ATEXIT=y
 213.100 @@ -358,17 +333,16 @@
 213.101  #
 213.102  CT_DEBUG_dmalloc=y
 213.103  CT_DMALLOC_V_5_5_2=y
 213.104 -# CT_DMALLOC_V_5_4_3 is not set
 213.105  CT_DMALLOC_VERSION="5.5.2"
 213.106  CT_DEBUG_duma=y
 213.107  CT_DUMA_A=y
 213.108  CT_DUMA_SO=y
 213.109 -# CT_DUMA_V_2_5_15 is not set
 213.110 -CT_DUMA_V_2_5_14=y
 213.111 +CT_DUMA_V_2_5_15=y
 213.112 +# CT_DUMA_V_2_5_14 is not set
 213.113  # CT_DUMA_V_2_5_12 is not set
 213.114  # CT_DUMA_V_2_5_8 is not set
 213.115  # CT_DUMA_V_2_5_1 is not set
 213.116 -CT_DUMA_VERSION="2_5_14"
 213.117 +CT_DUMA_VERSION="2_5_15"
 213.118  CT_DEBUG_gdb=y
 213.119  CT_GDB_CROSS=y
 213.120  # CT_GDB_CROSS_STATIC is not set
 213.121 @@ -377,12 +351,8 @@
 213.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 213.123  CT_GDB_GDBSERVER=y
 213.124  CT_GDB_GDBSERVER_STATIC=y
 213.125 +# CT_GDB_V_7_0 is not set
 213.126  CT_GDB_V_6_8=y
 213.127 -# CT_GDB_V_6_7_1 is not set
 213.128 -# CT_GDB_V_6_7 is not set
 213.129 -# CT_GDB_V_6_6 is not set
 213.130 -# CT_GDB_V_6_5 is not set
 213.131 -# CT_GDB_V_6_4 is not set
 213.132  # CT_GDB_V_snapshot is not set
 213.133  CT_GDB_VERSION="6.8"
 213.134  
 213.135 @@ -393,19 +363,18 @@
 213.136  # CT_NCURSES_V_5_6 is not set
 213.137  CT_NCURSES_VERSION="5.7"
 213.138  CT_DEBUG_ltrace=y
 213.139 -# CT_LTRACE_V_0_5_2 is not set
 213.140 +CT_LTRACE_V_0_5_2=y
 213.141  # CT_LTRACE_V_0_5_1 is not set
 213.142 -CT_LTRACE_V_0_5=y
 213.143 +# CT_LTRACE_V_0_5 is not set
 213.144  # CT_LTRACE_V_0_4 is not set
 213.145 -CT_LTRACE_VERSION="0.5"
 213.146 +CT_LTRACE_VERSION="0.5.2"
 213.147  CT_DEBUG_strace=y
 213.148 -# CT_STRACE_V_4_5_18 is not set
 213.149 -CT_STRACE_V_4_5_17=y
 213.150 +# CT_STRACE_V_4_5_19 is not set
 213.151 +CT_STRACE_V_4_5_18=y
 213.152 +# CT_STRACE_V_4_5_17 is not set
 213.153  # CT_STRACE_V_4_5_16 is not set
 213.154  # CT_STRACE_V_4_5_15 is not set
 213.155 -# CT_STRACE_V_4_5_14 is not set
 213.156 -# CT_STRACE_V_4_5 is not set
 213.157 -CT_STRACE_VERSION="4.5.17"
 213.158 +CT_STRACE_VERSION="4.5.18"
 213.159  
 213.160  #
 213.161  # Tools facilities
 213.162 @@ -425,11 +394,11 @@
 213.163  #
 213.164  CT_WRAPPER_NEEDED=y
 213.165  CT_GMP_MPFR=y
 213.166 -# CT_GMP_V_4_3_1 is not set
 213.167 +CT_GMP_V_4_3_1=y
 213.168  # CT_GMP_V_4_3_0 is not set
 213.169 -CT_GMP_V_4_2_4=y
 213.170 +# CT_GMP_V_4_2_4 is not set
 213.171  # CT_GMP_V_4_2_2 is not set
 213.172 -CT_GMP_VERSION="4.2.4"
 213.173 +CT_GMP_VERSION="4.3.1"
 213.174  CT_MPFR_V_2_4_1=y
 213.175  # CT_MPFR_V_2_4_0 is not set
 213.176  # CT_MPFR_V_2_3_2 is not set
   214.1 --- a/samples/armeb-unknown-linux-uclibc/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   214.2 +++ b/samples/armeb-unknown-linux-uclibc/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   214.3 @@ -1,7 +1,7 @@
   214.4  #
   214.5  # Automatically generated make config: don't edit
   214.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   214.7 -# Sun Oct  4 12:46:31 2009
   214.8 +# crosstool-NG version: hg_default@1596_241387704817
   214.9 +# Wed Oct 28 19:22:32 2009
  214.10  #
  214.11  
  214.12  #
  214.13 @@ -173,8 +173,13 @@
  214.14  CT_KERNEL_linux=y
  214.15  CT_KERNEL_LINUX_INSTALL=y
  214.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  214.17 +# CT_KERNEL_V_2_6_31_5 is not set
  214.18 +# CT_KERNEL_V_2_6_31_4 is not set
  214.19 +# CT_KERNEL_V_2_6_31_3 is not set
  214.20 +# CT_KERNEL_V_2_6_31_2 is not set
  214.21  CT_KERNEL_V_2_6_31_1=y
  214.22  # CT_KERNEL_V_2_6_31 is not set
  214.23 +# CT_KERNEL_V_3_6_30_9 is not set
  214.24  # CT_KERNEL_V_3_6_30_8 is not set
  214.25  # CT_KERNEL_V_3_6_30_7 is not set
  214.26  # CT_KERNEL_V_2_6_30_6 is not set
  214.27 @@ -186,17 +191,7 @@
  214.28  # CT_KERNEL_V_2_6_30 is not set
  214.29  # CT_KERNEL_V_2_6_29_6 is not set
  214.30  # CT_KERNEL_V_2_6_28_10 is not set
  214.31 -# CT_KERNEL_V_2_6_27_35 is not set
  214.32 -# CT_KERNEL_V_2_6_26_8 is not set
  214.33 -# CT_KERNEL_V_2_6_25_20 is not set
  214.34 -# CT_KERNEL_V_2_6_24_7 is not set
  214.35 -# CT_KERNEL_V_2_6_23_17 is not set
  214.36 -# CT_KERNEL_V_2_6_22_19 is not set
  214.37 -# CT_KERNEL_V_2_6_21_7 is not set
  214.38 -# CT_KERNEL_V_2_6_20_21 is not set
  214.39 -# CT_KERNEL_V_2_6_19_7 is not set
  214.40 -# CT_KERNEL_V_2_6_18_8 is not set
  214.41 -# CT_KERNEL_V_select is not set
  214.42 +# CT_KERNEL_V_2_6_27_38 is not set
  214.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  214.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  214.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  214.46 @@ -217,26 +212,13 @@
  214.47  #
  214.48  # GNU binutils
  214.49  #
  214.50 -CT_BINUTILS_VERSION="2.19.1"
  214.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  214.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  214.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  214.54 +# CT_BINUTILS_V_2_20 is not set
  214.55  CT_BINUTILS_V_2_19_1=y
  214.56  # CT_BINUTILS_V_2_19 is not set
  214.57 -# CT_BINUTILS_V_2_18_93 is not set
  214.58 -# CT_BINUTILS_V_2_18_92 is not set
  214.59 -# CT_BINUTILS_V_2_18_91 is not set
  214.60 -# CT_BINUTILS_V_2_18_90 is not set
  214.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  214.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  214.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  214.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  214.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  214.66  # CT_BINUTILS_V_2_18 is not set
  214.67  # CT_BINUTILS_V_2_17 is not set
  214.68  # CT_BINUTILS_V_2_16_1 is not set
  214.69 -# CT_BINUTILS_V_2_15 is not set
  214.70 -# CT_BINUTILS_V_2_14 is not set
  214.71 +CT_BINUTILS_VERSION="2.19.1"
  214.72  CT_BINUTILS_EXTRA_CONFIG=""
  214.73  CT_BINUTILS_FOR_TARGET=y
  214.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  214.75 @@ -248,6 +230,7 @@
  214.76  CT_CC="gcc"
  214.77  CT_CC_VERSION="4.3.2"
  214.78  CT_CC_gcc=y
  214.79 +# CT_CC_V_4_4_2 is not set
  214.80  # CT_CC_V_4_4_1 is not set
  214.81  # CT_CC_V_4_4_0 is not set
  214.82  # CT_CC_V_4_3_4 is not set
  214.83 @@ -261,16 +244,8 @@
  214.84  # CT_CC_V_4_2_1 is not set
  214.85  # CT_CC_V_4_2_0 is not set
  214.86  # CT_CC_V_4_1_2 is not set
  214.87 -# CT_CC_V_4_1_1 is not set
  214.88 -# CT_CC_V_4_1_0 is not set
  214.89  # CT_CC_V_4_0_4 is not set
  214.90 -# CT_CC_V_4_0_3 is not set
  214.91 -# CT_CC_V_4_0_2 is not set
  214.92 -# CT_CC_V_4_0_1 is not set
  214.93 -# CT_CC_V_4_0_0 is not set
  214.94  # CT_CC_V_3_4_6 is not set
  214.95 -# CT_CC_V_3_3_6 is not set
  214.96 -# CT_CC_V_3_2_3 is not set
  214.97  CT_CC_GCC_4_3_or_later=y
  214.98  # CT_CC_GCC_4_4_or_later is not set
  214.99  CT_CC_CXA_ATEXIT=y
 214.100 @@ -309,9 +284,6 @@
 214.101  # CT_LIBC_V_0_9_30 is not set
 214.102  # CT_LIBC_V_0_9_29 is not set
 214.103  # CT_LIBC_V_0_9_28_3 is not set
 214.104 -# CT_LIBC_V_0_9_28_2 is not set
 214.105 -# CT_LIBC_V_0_9_28_1 is not set
 214.106 -# CT_LIBC_V_0_9_28 is not set
 214.107  # CT_LIBC_V_snapshot is not set
 214.108  # CT_LIBC_V_specific_date is not set
 214.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 214.110 @@ -342,17 +314,16 @@
 214.111  #
 214.112  CT_DEBUG_dmalloc=y
 214.113  CT_DMALLOC_V_5_5_2=y
 214.114 -# CT_DMALLOC_V_5_4_3 is not set
 214.115  CT_DMALLOC_VERSION="5.5.2"
 214.116  CT_DEBUG_duma=y
 214.117  CT_DUMA_A=y
 214.118  CT_DUMA_SO=y
 214.119 -# CT_DUMA_V_2_5_15 is not set
 214.120 -CT_DUMA_V_2_5_14=y
 214.121 +CT_DUMA_V_2_5_15=y
 214.122 +# CT_DUMA_V_2_5_14 is not set
 214.123  # CT_DUMA_V_2_5_12 is not set
 214.124  # CT_DUMA_V_2_5_8 is not set
 214.125  # CT_DUMA_V_2_5_1 is not set
 214.126 -CT_DUMA_VERSION="2_5_14"
 214.127 +CT_DUMA_VERSION="2_5_15"
 214.128  CT_DEBUG_gdb=y
 214.129  CT_GDB_CROSS=y
 214.130  # CT_GDB_CROSS_STATIC is not set
 214.131 @@ -361,12 +332,8 @@
 214.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 214.133  CT_GDB_GDBSERVER=y
 214.134  CT_GDB_GDBSERVER_STATIC=y
 214.135 +# CT_GDB_V_7_0 is not set
 214.136  CT_GDB_V_6_8=y
 214.137 -# CT_GDB_V_6_7_1 is not set
 214.138 -# CT_GDB_V_6_7 is not set
 214.139 -# CT_GDB_V_6_6 is not set
 214.140 -# CT_GDB_V_6_5 is not set
 214.141 -# CT_GDB_V_6_4 is not set
 214.142  # CT_GDB_V_snapshot is not set
 214.143  CT_GDB_VERSION="6.8"
 214.144  
 214.145 @@ -377,19 +344,18 @@
 214.146  # CT_NCURSES_V_5_6 is not set
 214.147  CT_NCURSES_VERSION="5.7"
 214.148  CT_DEBUG_ltrace=y
 214.149 -# CT_LTRACE_V_0_5_2 is not set
 214.150 +CT_LTRACE_V_0_5_2=y
 214.151  # CT_LTRACE_V_0_5_1 is not set
 214.152 -CT_LTRACE_V_0_5=y
 214.153 +# CT_LTRACE_V_0_5 is not set
 214.154  # CT_LTRACE_V_0_4 is not set
 214.155 -CT_LTRACE_VERSION="0.5"
 214.156 +CT_LTRACE_VERSION="0.5.2"
 214.157  CT_DEBUG_strace=y
 214.158 -# CT_STRACE_V_4_5_18 is not set
 214.159 -CT_STRACE_V_4_5_17=y
 214.160 +# CT_STRACE_V_4_5_19 is not set
 214.161 +CT_STRACE_V_4_5_18=y
 214.162 +# CT_STRACE_V_4_5_17 is not set
 214.163  # CT_STRACE_V_4_5_16 is not set
 214.164  # CT_STRACE_V_4_5_15 is not set
 214.165 -# CT_STRACE_V_4_5_14 is not set
 214.166 -# CT_STRACE_V_4_5 is not set
 214.167 -CT_STRACE_VERSION="4.5.17"
 214.168 +CT_STRACE_VERSION="4.5.18"
 214.169  
 214.170  #
 214.171  # Tools facilities
 214.172 @@ -409,11 +375,11 @@
 214.173  #
 214.174  CT_WRAPPER_NEEDED=y
 214.175  CT_GMP_MPFR=y
 214.176 -# CT_GMP_V_4_3_1 is not set
 214.177 +CT_GMP_V_4_3_1=y
 214.178  # CT_GMP_V_4_3_0 is not set
 214.179 -CT_GMP_V_4_2_4=y
 214.180 +# CT_GMP_V_4_2_4 is not set
 214.181  # CT_GMP_V_4_2_2 is not set
 214.182 -CT_GMP_VERSION="4.2.4"
 214.183 +CT_GMP_VERSION="4.3.1"
 214.184  CT_MPFR_V_2_4_1=y
 214.185  # CT_MPFR_V_2_4_0 is not set
 214.186  # CT_MPFR_V_2_3_2 is not set
   215.1 --- a/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   215.2 +++ b/samples/armeb-unknown-linux-uclibcgnueabi/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   215.3 @@ -1,7 +1,7 @@
   215.4  #
   215.5  # Automatically generated make config: don't edit
   215.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   215.7 -# Sun Oct  4 12:46:38 2009
   215.8 +# crosstool-NG version: hg_default@1596_241387704817
   215.9 +# Wed Oct 28 19:22:45 2009
  215.10  #
  215.11  
  215.12  #
  215.13 @@ -171,8 +171,13 @@
  215.14  CT_KERNEL_linux=y
  215.15  CT_KERNEL_LINUX_INSTALL=y
  215.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  215.17 +# CT_KERNEL_V_2_6_31_5 is not set
  215.18 +# CT_KERNEL_V_2_6_31_4 is not set
  215.19 +# CT_KERNEL_V_2_6_31_3 is not set
  215.20 +# CT_KERNEL_V_2_6_31_2 is not set
  215.21  CT_KERNEL_V_2_6_31_1=y
  215.22  # CT_KERNEL_V_2_6_31 is not set
  215.23 +# CT_KERNEL_V_3_6_30_9 is not set
  215.24  # CT_KERNEL_V_3_6_30_8 is not set
  215.25  # CT_KERNEL_V_3_6_30_7 is not set
  215.26  # CT_KERNEL_V_2_6_30_6 is not set
  215.27 @@ -184,17 +189,7 @@
  215.28  # CT_KERNEL_V_2_6_30 is not set
  215.29  # CT_KERNEL_V_2_6_29_6 is not set
  215.30  # CT_KERNEL_V_2_6_28_10 is not set
  215.31 -# CT_KERNEL_V_2_6_27_35 is not set
  215.32 -# CT_KERNEL_V_2_6_26_8 is not set
  215.33 -# CT_KERNEL_V_2_6_25_20 is not set
  215.34 -# CT_KERNEL_V_2_6_24_7 is not set
  215.35 -# CT_KERNEL_V_2_6_23_17 is not set
  215.36 -# CT_KERNEL_V_2_6_22_19 is not set
  215.37 -# CT_KERNEL_V_2_6_21_7 is not set
  215.38 -# CT_KERNEL_V_2_6_20_21 is not set
  215.39 -# CT_KERNEL_V_2_6_19_7 is not set
  215.40 -# CT_KERNEL_V_2_6_18_8 is not set
  215.41 -# CT_KERNEL_V_select is not set
  215.42 +# CT_KERNEL_V_2_6_27_38 is not set
  215.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  215.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  215.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  215.46 @@ -215,26 +210,13 @@
  215.47  #
  215.48  # GNU binutils
  215.49  #
  215.50 -CT_BINUTILS_VERSION="2.19.1"
  215.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  215.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  215.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  215.54 +# CT_BINUTILS_V_2_20 is not set
  215.55  CT_BINUTILS_V_2_19_1=y
  215.56  # CT_BINUTILS_V_2_19 is not set
  215.57 -# CT_BINUTILS_V_2_18_93 is not set
  215.58 -# CT_BINUTILS_V_2_18_92 is not set
  215.59 -# CT_BINUTILS_V_2_18_91 is not set
  215.60 -# CT_BINUTILS_V_2_18_90 is not set
  215.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  215.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  215.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  215.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  215.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  215.66  # CT_BINUTILS_V_2_18 is not set
  215.67  # CT_BINUTILS_V_2_17 is not set
  215.68  # CT_BINUTILS_V_2_16_1 is not set
  215.69 -# CT_BINUTILS_V_2_15 is not set
  215.70 -# CT_BINUTILS_V_2_14 is not set
  215.71 +CT_BINUTILS_VERSION="2.19.1"
  215.72  CT_BINUTILS_EXTRA_CONFIG=""
  215.73  CT_BINUTILS_FOR_TARGET=y
  215.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  215.75 @@ -246,6 +228,7 @@
  215.76  CT_CC="gcc"
  215.77  CT_CC_VERSION="4.3.2"
  215.78  CT_CC_gcc=y
  215.79 +# CT_CC_V_4_4_2 is not set
  215.80  # CT_CC_V_4_4_1 is not set
  215.81  # CT_CC_V_4_4_0 is not set
  215.82  # CT_CC_V_4_3_4 is not set
  215.83 @@ -259,16 +242,8 @@
  215.84  # CT_CC_V_4_2_1 is not set
  215.85  # CT_CC_V_4_2_0 is not set
  215.86  # CT_CC_V_4_1_2 is not set
  215.87 -# CT_CC_V_4_1_1 is not set
  215.88 -# CT_CC_V_4_1_0 is not set
  215.89  # CT_CC_V_4_0_4 is not set
  215.90 -# CT_CC_V_4_0_3 is not set
  215.91 -# CT_CC_V_4_0_2 is not set
  215.92 -# CT_CC_V_4_0_1 is not set
  215.93 -# CT_CC_V_4_0_0 is not set
  215.94  # CT_CC_V_3_4_6 is not set
  215.95 -# CT_CC_V_3_3_6 is not set
  215.96 -# CT_CC_V_3_2_3 is not set
  215.97  CT_CC_GCC_4_3_or_later=y
  215.98  # CT_CC_GCC_4_4_or_later is not set
  215.99  CT_CC_CXA_ATEXIT=y
 215.100 @@ -308,9 +283,6 @@
 215.101  # CT_LIBC_V_0_9_30 is not set
 215.102  # CT_LIBC_V_0_9_29 is not set
 215.103  # CT_LIBC_V_0_9_28_3 is not set
 215.104 -# CT_LIBC_V_0_9_28_2 is not set
 215.105 -# CT_LIBC_V_0_9_28_1 is not set
 215.106 -# CT_LIBC_V_0_9_28 is not set
 215.107  # CT_LIBC_V_snapshot is not set
 215.108  # CT_LIBC_V_specific_date is not set
 215.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 215.110 @@ -341,17 +313,16 @@
 215.111  #
 215.112  CT_DEBUG_dmalloc=y
 215.113  CT_DMALLOC_V_5_5_2=y
 215.114 -# CT_DMALLOC_V_5_4_3 is not set
 215.115  CT_DMALLOC_VERSION="5.5.2"
 215.116  CT_DEBUG_duma=y
 215.117  CT_DUMA_A=y
 215.118  CT_DUMA_SO=y
 215.119 -# CT_DUMA_V_2_5_15 is not set
 215.120 -CT_DUMA_V_2_5_14=y
 215.121 +CT_DUMA_V_2_5_15=y
 215.122 +# CT_DUMA_V_2_5_14 is not set
 215.123  # CT_DUMA_V_2_5_12 is not set
 215.124  # CT_DUMA_V_2_5_8 is not set
 215.125  # CT_DUMA_V_2_5_1 is not set
 215.126 -CT_DUMA_VERSION="2_5_14"
 215.127 +CT_DUMA_VERSION="2_5_15"
 215.128  CT_DEBUG_gdb=y
 215.129  CT_GDB_CROSS=y
 215.130  # CT_GDB_CROSS_STATIC is not set
 215.131 @@ -360,12 +331,8 @@
 215.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 215.133  CT_GDB_GDBSERVER=y
 215.134  CT_GDB_GDBSERVER_STATIC=y
 215.135 +# CT_GDB_V_7_0 is not set
 215.136  CT_GDB_V_6_8=y
 215.137 -# CT_GDB_V_6_7_1 is not set
 215.138 -# CT_GDB_V_6_7 is not set
 215.139 -# CT_GDB_V_6_6 is not set
 215.140 -# CT_GDB_V_6_5 is not set
 215.141 -# CT_GDB_V_6_4 is not set
 215.142  # CT_GDB_V_snapshot is not set
 215.143  CT_GDB_VERSION="6.8"
 215.144  
 215.145 @@ -376,19 +343,18 @@
 215.146  # CT_NCURSES_V_5_6 is not set
 215.147  CT_NCURSES_VERSION="5.7"
 215.148  CT_DEBUG_ltrace=y
 215.149 -# CT_LTRACE_V_0_5_2 is not set
 215.150 +CT_LTRACE_V_0_5_2=y
 215.151  # CT_LTRACE_V_0_5_1 is not set
 215.152 -CT_LTRACE_V_0_5=y
 215.153 +# CT_LTRACE_V_0_5 is not set
 215.154  # CT_LTRACE_V_0_4 is not set
 215.155 -CT_LTRACE_VERSION="0.5"
 215.156 +CT_LTRACE_VERSION="0.5.2"
 215.157  CT_DEBUG_strace=y
 215.158 -# CT_STRACE_V_4_5_18 is not set
 215.159 -CT_STRACE_V_4_5_17=y
 215.160 +# CT_STRACE_V_4_5_19 is not set
 215.161 +CT_STRACE_V_4_5_18=y
 215.162 +# CT_STRACE_V_4_5_17 is not set
 215.163  # CT_STRACE_V_4_5_16 is not set
 215.164  # CT_STRACE_V_4_5_15 is not set
 215.165 -# CT_STRACE_V_4_5_14 is not set
 215.166 -# CT_STRACE_V_4_5 is not set
 215.167 -CT_STRACE_VERSION="4.5.17"
 215.168 +CT_STRACE_VERSION="4.5.18"
 215.169  
 215.170  #
 215.171  # Tools facilities
 215.172 @@ -408,11 +374,11 @@
 215.173  #
 215.174  CT_WRAPPER_NEEDED=y
 215.175  CT_GMP_MPFR=y
 215.176 -# CT_GMP_V_4_3_1 is not set
 215.177 +CT_GMP_V_4_3_1=y
 215.178  # CT_GMP_V_4_3_0 is not set
 215.179 -CT_GMP_V_4_2_4=y
 215.180 +# CT_GMP_V_4_2_4 is not set
 215.181  # CT_GMP_V_4_2_2 is not set
 215.182 -CT_GMP_VERSION="4.2.4"
 215.183 +CT_GMP_VERSION="4.3.1"
 215.184  CT_MPFR_V_2_4_1=y
 215.185  # CT_MPFR_V_2_4_0 is not set
 215.186  # CT_MPFR_V_2_3_2 is not set
   216.1 --- a/samples/avr32-unknown-none/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   216.2 +++ b/samples/avr32-unknown-none/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   216.3 @@ -1,7 +1,7 @@
   216.4  #
   216.5  # Automatically generated make config: don't edit
   216.6 -# crosstool-NG version: hg_default@1563_8d386988dcb1
   216.7 -# Thu Oct  8 23:23:29 2009
   216.8 +# crosstool-NG version: hg_default@1596_241387704817
   216.9 +# Wed Oct 28 19:23:07 2009
  216.10  #
  216.11  
  216.12  #
  216.13 @@ -177,26 +177,13 @@
  216.14  #
  216.15  # GNU binutils
  216.16  #
  216.17 -CT_BINUTILS_VERSION="2.18"
  216.18 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  216.19 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  216.20 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  216.21 +# CT_BINUTILS_V_2_20 is not set
  216.22  # CT_BINUTILS_V_2_19_1 is not set
  216.23  # CT_BINUTILS_V_2_19 is not set
  216.24 -# CT_BINUTILS_V_2_18_93 is not set
  216.25 -# CT_BINUTILS_V_2_18_92 is not set
  216.26 -# CT_BINUTILS_V_2_18_91 is not set
  216.27 -# CT_BINUTILS_V_2_18_90 is not set
  216.28 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  216.29 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  216.30 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  216.31 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  216.32 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  216.33  CT_BINUTILS_V_2_18=y
  216.34  # CT_BINUTILS_V_2_17 is not set
  216.35  # CT_BINUTILS_V_2_16_1 is not set
  216.36 -# CT_BINUTILS_V_2_15 is not set
  216.37 -# CT_BINUTILS_V_2_14 is not set
  216.38 +CT_BINUTILS_VERSION="2.18"
  216.39  CT_BINUTILS_EXTRA_CONFIG=""
  216.40  
  216.41  #
  216.42 @@ -205,6 +192,7 @@
  216.43  CT_CC="gcc"
  216.44  CT_CC_VERSION="4.2.2"
  216.45  CT_CC_gcc=y
  216.46 +# CT_CC_V_4_4_2 is not set
  216.47  # CT_CC_V_4_4_1 is not set
  216.48  # CT_CC_V_4_4_0 is not set
  216.49  # CT_CC_V_4_3_4 is not set
  216.50 @@ -218,16 +206,8 @@
  216.51  # CT_CC_V_4_2_1 is not set
  216.52  # CT_CC_V_4_2_0 is not set
  216.53  # CT_CC_V_4_1_2 is not set
  216.54 -# CT_CC_V_4_1_1 is not set
  216.55 -# CT_CC_V_4_1_0 is not set
  216.56  # CT_CC_V_4_0_4 is not set
  216.57 -# CT_CC_V_4_0_3 is not set
  216.58 -# CT_CC_V_4_0_2 is not set
  216.59 -# CT_CC_V_4_0_1 is not set
  216.60 -# CT_CC_V_4_0_0 is not set
  216.61  # CT_CC_V_3_4_6 is not set
  216.62 -# CT_CC_V_3_3_6 is not set
  216.63 -# CT_CC_V_3_2_3 is not set
  216.64  # CT_CC_GCC_4_3_or_later is not set
  216.65  # CT_CC_GCC_4_4_or_later is not set
  216.66  CT_CC_ENABLE_CXX_FLAGS=""
   217.1 --- a/samples/i586-geode-linux-uclibc/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   217.2 +++ b/samples/i586-geode-linux-uclibc/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   217.3 @@ -1,7 +1,7 @@
   217.4  #
   217.5  # Automatically generated make config: don't edit
   217.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   217.7 -# Sun Oct  4 12:47:22 2009
   217.8 +# crosstool-NG version: hg_default@1596_241387704817
   217.9 +# Wed Oct 28 19:23:31 2009
  217.10  #
  217.11  
  217.12  #
  217.13 @@ -167,8 +167,13 @@
  217.14  CT_KERNEL_linux=y
  217.15  CT_KERNEL_LINUX_INSTALL=y
  217.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  217.17 +# CT_KERNEL_V_2_6_31_5 is not set
  217.18 +# CT_KERNEL_V_2_6_31_4 is not set
  217.19 +# CT_KERNEL_V_2_6_31_3 is not set
  217.20 +# CT_KERNEL_V_2_6_31_2 is not set
  217.21  CT_KERNEL_V_2_6_31_1=y
  217.22  # CT_KERNEL_V_2_6_31 is not set
  217.23 +# CT_KERNEL_V_3_6_30_9 is not set
  217.24  # CT_KERNEL_V_3_6_30_8 is not set
  217.25  # CT_KERNEL_V_3_6_30_7 is not set
  217.26  # CT_KERNEL_V_2_6_30_6 is not set
  217.27 @@ -180,17 +185,7 @@
  217.28  # CT_KERNEL_V_2_6_30 is not set
  217.29  # CT_KERNEL_V_2_6_29_6 is not set
  217.30  # CT_KERNEL_V_2_6_28_10 is not set
  217.31 -# CT_KERNEL_V_2_6_27_35 is not set
  217.32 -# CT_KERNEL_V_2_6_26_8 is not set
  217.33 -# CT_KERNEL_V_2_6_25_20 is not set
  217.34 -# CT_KERNEL_V_2_6_24_7 is not set
  217.35 -# CT_KERNEL_V_2_6_23_17 is not set
  217.36 -# CT_KERNEL_V_2_6_22_19 is not set
  217.37 -# CT_KERNEL_V_2_6_21_7 is not set
  217.38 -# CT_KERNEL_V_2_6_20_21 is not set
  217.39 -# CT_KERNEL_V_2_6_19_7 is not set
  217.40 -# CT_KERNEL_V_2_6_18_8 is not set
  217.41 -# CT_KERNEL_V_select is not set
  217.42 +# CT_KERNEL_V_2_6_27_38 is not set
  217.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  217.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  217.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  217.46 @@ -211,26 +206,13 @@
  217.47  #
  217.48  # GNU binutils
  217.49  #
  217.50 -CT_BINUTILS_VERSION="2.19.1"
  217.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  217.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  217.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  217.54 +# CT_BINUTILS_V_2_20 is not set
  217.55  CT_BINUTILS_V_2_19_1=y
  217.56  # CT_BINUTILS_V_2_19 is not set
  217.57 -# CT_BINUTILS_V_2_18_93 is not set
  217.58 -# CT_BINUTILS_V_2_18_92 is not set
  217.59 -# CT_BINUTILS_V_2_18_91 is not set
  217.60 -# CT_BINUTILS_V_2_18_90 is not set
  217.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  217.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  217.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  217.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  217.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  217.66  # CT_BINUTILS_V_2_18 is not set
  217.67  # CT_BINUTILS_V_2_17 is not set
  217.68  # CT_BINUTILS_V_2_16_1 is not set
  217.69 -# CT_BINUTILS_V_2_15 is not set
  217.70 -# CT_BINUTILS_V_2_14 is not set
  217.71 +CT_BINUTILS_VERSION="2.19.1"
  217.72  CT_BINUTILS_EXTRA_CONFIG=""
  217.73  CT_BINUTILS_FOR_TARGET=y
  217.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  217.75 @@ -242,6 +224,7 @@
  217.76  CT_CC="gcc"
  217.77  CT_CC_VERSION="4.3.2"
  217.78  CT_CC_gcc=y
  217.79 +# CT_CC_V_4_4_2 is not set
  217.80  # CT_CC_V_4_4_1 is not set
  217.81  # CT_CC_V_4_4_0 is not set
  217.82  # CT_CC_V_4_3_4 is not set
  217.83 @@ -255,16 +238,8 @@
  217.84  # CT_CC_V_4_2_1 is not set
  217.85  # CT_CC_V_4_2_0 is not set
  217.86  # CT_CC_V_4_1_2 is not set
  217.87 -# CT_CC_V_4_1_1 is not set
  217.88 -# CT_CC_V_4_1_0 is not set
  217.89  # CT_CC_V_4_0_4 is not set
  217.90 -# CT_CC_V_4_0_3 is not set
  217.91 -# CT_CC_V_4_0_2 is not set
  217.92 -# CT_CC_V_4_0_1 is not set
  217.93 -# CT_CC_V_4_0_0 is not set
  217.94  # CT_CC_V_3_4_6 is not set
  217.95 -# CT_CC_V_3_3_6 is not set
  217.96 -# CT_CC_V_3_2_3 is not set
  217.97  CT_CC_GCC_4_3_or_later=y
  217.98  # CT_CC_GCC_4_4_or_later is not set
  217.99  CT_CC_CXA_ATEXIT=y
 217.100 @@ -304,9 +279,6 @@
 217.101  # CT_LIBC_V_0_9_30 is not set
 217.102  # CT_LIBC_V_0_9_29 is not set
 217.103  # CT_LIBC_V_0_9_28_3 is not set
 217.104 -# CT_LIBC_V_0_9_28_2 is not set
 217.105 -# CT_LIBC_V_0_9_28_1 is not set
 217.106 -# CT_LIBC_V_0_9_28 is not set
 217.107  # CT_LIBC_V_snapshot is not set
 217.108  # CT_LIBC_V_specific_date is not set
 217.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 217.110 @@ -337,17 +309,16 @@
 217.111  #
 217.112  CT_DEBUG_dmalloc=y
 217.113  CT_DMALLOC_V_5_5_2=y
 217.114 -# CT_DMALLOC_V_5_4_3 is not set
 217.115  CT_DMALLOC_VERSION="5.5.2"
 217.116  CT_DEBUG_duma=y
 217.117  CT_DUMA_A=y
 217.118  CT_DUMA_SO=y
 217.119 -# CT_DUMA_V_2_5_15 is not set
 217.120 -CT_DUMA_V_2_5_14=y
 217.121 +CT_DUMA_V_2_5_15=y
 217.122 +# CT_DUMA_V_2_5_14 is not set
 217.123  # CT_DUMA_V_2_5_12 is not set
 217.124  # CT_DUMA_V_2_5_8 is not set
 217.125  # CT_DUMA_V_2_5_1 is not set
 217.126 -CT_DUMA_VERSION="2_5_14"
 217.127 +CT_DUMA_VERSION="2_5_15"
 217.128  CT_DEBUG_gdb=y
 217.129  CT_GDB_CROSS=y
 217.130  # CT_GDB_CROSS_STATIC is not set
 217.131 @@ -356,12 +327,8 @@
 217.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 217.133  CT_GDB_GDBSERVER=y
 217.134  CT_GDB_GDBSERVER_STATIC=y
 217.135 +# CT_GDB_V_7_0 is not set
 217.136  CT_GDB_V_6_8=y
 217.137 -# CT_GDB_V_6_7_1 is not set
 217.138 -# CT_GDB_V_6_7 is not set
 217.139 -# CT_GDB_V_6_6 is not set
 217.140 -# CT_GDB_V_6_5 is not set
 217.141 -# CT_GDB_V_6_4 is not set
 217.142  # CT_GDB_V_snapshot is not set
 217.143  CT_GDB_VERSION="6.8"
 217.144  
 217.145 @@ -372,19 +339,18 @@
 217.146  # CT_NCURSES_V_5_6 is not set
 217.147  CT_NCURSES_VERSION="5.7"
 217.148  CT_DEBUG_ltrace=y
 217.149 -# CT_LTRACE_V_0_5_2 is not set
 217.150 +CT_LTRACE_V_0_5_2=y
 217.151  # CT_LTRACE_V_0_5_1 is not set
 217.152 -CT_LTRACE_V_0_5=y
 217.153 +# CT_LTRACE_V_0_5 is not set
 217.154  # CT_LTRACE_V_0_4 is not set
 217.155 -CT_LTRACE_VERSION="0.5"
 217.156 +CT_LTRACE_VERSION="0.5.2"
 217.157  CT_DEBUG_strace=y
 217.158 -# CT_STRACE_V_4_5_18 is not set
 217.159 -CT_STRACE_V_4_5_17=y
 217.160 +# CT_STRACE_V_4_5_19 is not set
 217.161 +CT_STRACE_V_4_5_18=y
 217.162 +# CT_STRACE_V_4_5_17 is not set
 217.163  # CT_STRACE_V_4_5_16 is not set
 217.164  # CT_STRACE_V_4_5_15 is not set
 217.165 -# CT_STRACE_V_4_5_14 is not set
 217.166 -# CT_STRACE_V_4_5 is not set
 217.167 -CT_STRACE_VERSION="4.5.17"
 217.168 +CT_STRACE_VERSION="4.5.18"
 217.169  
 217.170  #
 217.171  # Tools facilities
 217.172 @@ -404,11 +370,11 @@
 217.173  #
 217.174  CT_WRAPPER_NEEDED=y
 217.175  CT_GMP_MPFR=y
 217.176 -# CT_GMP_V_4_3_1 is not set
 217.177 +CT_GMP_V_4_3_1=y
 217.178  # CT_GMP_V_4_3_0 is not set
 217.179 -CT_GMP_V_4_2_4=y
 217.180 +# CT_GMP_V_4_2_4 is not set
 217.181  # CT_GMP_V_4_2_2 is not set
 217.182 -CT_GMP_VERSION="4.2.4"
 217.183 +CT_GMP_VERSION="4.3.1"
 217.184  CT_MPFR_V_2_4_1=y
 217.185  # CT_MPFR_V_2_4_0 is not set
 217.186  # CT_MPFR_V_2_3_2 is not set
   218.1 --- a/samples/i686-nptl-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   218.2 +++ b/samples/i686-nptl-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   218.3 @@ -1,7 +1,7 @@
   218.4  #
   218.5  # Automatically generated make config: don't edit
   218.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   218.7 -# Sun Oct  4 12:47:38 2009
   218.8 +# crosstool-NG version: hg_default@1596_241387704817
   218.9 +# Wed Oct 28 19:23:53 2009
  218.10  #
  218.11  
  218.12  #
  218.13 @@ -167,8 +167,13 @@
  218.14  CT_KERNEL_linux=y
  218.15  CT_KERNEL_LINUX_INSTALL=y
  218.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  218.17 +# CT_KERNEL_V_2_6_31_5 is not set
  218.18 +# CT_KERNEL_V_2_6_31_4 is not set
  218.19 +# CT_KERNEL_V_2_6_31_3 is not set
  218.20 +# CT_KERNEL_V_2_6_31_2 is not set
  218.21  CT_KERNEL_V_2_6_31_1=y
  218.22  # CT_KERNEL_V_2_6_31 is not set
  218.23 +# CT_KERNEL_V_3_6_30_9 is not set
  218.24  # CT_KERNEL_V_3_6_30_8 is not set
  218.25  # CT_KERNEL_V_3_6_30_7 is not set
  218.26  # CT_KERNEL_V_2_6_30_6 is not set
  218.27 @@ -180,17 +185,7 @@
  218.28  # CT_KERNEL_V_2_6_30 is not set
  218.29  # CT_KERNEL_V_2_6_29_6 is not set
  218.30  # CT_KERNEL_V_2_6_28_10 is not set
  218.31 -# CT_KERNEL_V_2_6_27_35 is not set
  218.32 -# CT_KERNEL_V_2_6_26_8 is not set
  218.33 -# CT_KERNEL_V_2_6_25_20 is not set
  218.34 -# CT_KERNEL_V_2_6_24_7 is not set
  218.35 -# CT_KERNEL_V_2_6_23_17 is not set
  218.36 -# CT_KERNEL_V_2_6_22_19 is not set
  218.37 -# CT_KERNEL_V_2_6_21_7 is not set
  218.38 -# CT_KERNEL_V_2_6_20_21 is not set
  218.39 -# CT_KERNEL_V_2_6_19_7 is not set
  218.40 -# CT_KERNEL_V_2_6_18_8 is not set
  218.41 -# CT_KERNEL_V_select is not set
  218.42 +# CT_KERNEL_V_2_6_27_38 is not set
  218.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  218.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  218.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  218.46 @@ -211,26 +206,13 @@
  218.47  #
  218.48  # GNU binutils
  218.49  #
  218.50 -CT_BINUTILS_VERSION="2.19.1"
  218.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  218.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  218.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  218.54 +# CT_BINUTILS_V_2_20 is not set
  218.55  CT_BINUTILS_V_2_19_1=y
  218.56  # CT_BINUTILS_V_2_19 is not set
  218.57 -# CT_BINUTILS_V_2_18_93 is not set
  218.58 -# CT_BINUTILS_V_2_18_92 is not set
  218.59 -# CT_BINUTILS_V_2_18_91 is not set
  218.60 -# CT_BINUTILS_V_2_18_90 is not set
  218.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  218.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  218.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  218.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  218.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  218.66  # CT_BINUTILS_V_2_18 is not set
  218.67  # CT_BINUTILS_V_2_17 is not set
  218.68  # CT_BINUTILS_V_2_16_1 is not set
  218.69 -# CT_BINUTILS_V_2_15 is not set
  218.70 -# CT_BINUTILS_V_2_14 is not set
  218.71 +CT_BINUTILS_VERSION="2.19.1"
  218.72  CT_BINUTILS_EXTRA_CONFIG=""
  218.73  CT_BINUTILS_FOR_TARGET=y
  218.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  218.75 @@ -242,6 +224,7 @@
  218.76  CT_CC="gcc"
  218.77  CT_CC_VERSION="4.3.2"
  218.78  CT_CC_gcc=y
  218.79 +# CT_CC_V_4_4_2 is not set
  218.80  # CT_CC_V_4_4_1 is not set
  218.81  # CT_CC_V_4_4_0 is not set
  218.82  # CT_CC_V_4_3_4 is not set
  218.83 @@ -255,16 +238,8 @@
  218.84  # CT_CC_V_4_2_1 is not set
  218.85  # CT_CC_V_4_2_0 is not set
  218.86  # CT_CC_V_4_1_2 is not set
  218.87 -# CT_CC_V_4_1_1 is not set
  218.88 -# CT_CC_V_4_1_0 is not set
  218.89  # CT_CC_V_4_0_4 is not set
  218.90 -# CT_CC_V_4_0_3 is not set
  218.91 -# CT_CC_V_4_0_2 is not set
  218.92 -# CT_CC_V_4_0_1 is not set
  218.93 -# CT_CC_V_4_0_0 is not set
  218.94  # CT_CC_V_3_4_6 is not set
  218.95 -# CT_CC_V_3_3_6 is not set
  218.96 -# CT_CC_V_3_2_3 is not set
  218.97  CT_CC_GCC_4_3_or_later=y
  218.98  # CT_CC_GCC_4_4_or_later is not set
  218.99  CT_CC_CXA_ATEXIT=y
 218.100 @@ -341,17 +316,16 @@
 218.101  #
 218.102  CT_DEBUG_dmalloc=y
 218.103  CT_DMALLOC_V_5_5_2=y
 218.104 -# CT_DMALLOC_V_5_4_3 is not set
 218.105  CT_DMALLOC_VERSION="5.5.2"
 218.106  CT_DEBUG_duma=y
 218.107  CT_DUMA_A=y
 218.108  CT_DUMA_SO=y
 218.109 -# CT_DUMA_V_2_5_15 is not set
 218.110 -CT_DUMA_V_2_5_14=y
 218.111 +CT_DUMA_V_2_5_15=y
 218.112 +# CT_DUMA_V_2_5_14 is not set
 218.113  # CT_DUMA_V_2_5_12 is not set
 218.114  # CT_DUMA_V_2_5_8 is not set
 218.115  # CT_DUMA_V_2_5_1 is not set
 218.116 -CT_DUMA_VERSION="2_5_14"
 218.117 +CT_DUMA_VERSION="2_5_15"
 218.118  CT_DEBUG_gdb=y
 218.119  CT_GDB_CROSS=y
 218.120  # CT_GDB_CROSS_STATIC is not set
 218.121 @@ -360,12 +334,8 @@
 218.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 218.123  CT_GDB_GDBSERVER=y
 218.124  CT_GDB_GDBSERVER_STATIC=y
 218.125 +# CT_GDB_V_7_0 is not set
 218.126  CT_GDB_V_6_8=y
 218.127 -# CT_GDB_V_6_7_1 is not set
 218.128 -# CT_GDB_V_6_7 is not set
 218.129 -# CT_GDB_V_6_6 is not set
 218.130 -# CT_GDB_V_6_5 is not set
 218.131 -# CT_GDB_V_6_4 is not set
 218.132  # CT_GDB_V_snapshot is not set
 218.133  CT_GDB_VERSION="6.8"
 218.134  
 218.135 @@ -376,19 +346,18 @@
 218.136  # CT_NCURSES_V_5_6 is not set
 218.137  CT_NCURSES_VERSION="5.7"
 218.138  CT_DEBUG_ltrace=y
 218.139 -# CT_LTRACE_V_0_5_2 is not set
 218.140 +CT_LTRACE_V_0_5_2=y
 218.141  # CT_LTRACE_V_0_5_1 is not set
 218.142 -CT_LTRACE_V_0_5=y
 218.143 +# CT_LTRACE_V_0_5 is not set
 218.144  # CT_LTRACE_V_0_4 is not set
 218.145 -CT_LTRACE_VERSION="0.5"
 218.146 +CT_LTRACE_VERSION="0.5.2"
 218.147  CT_DEBUG_strace=y
 218.148 -# CT_STRACE_V_4_5_18 is not set
 218.149 -CT_STRACE_V_4_5_17=y
 218.150 +# CT_STRACE_V_4_5_19 is not set
 218.151 +CT_STRACE_V_4_5_18=y
 218.152 +# CT_STRACE_V_4_5_17 is not set
 218.153  # CT_STRACE_V_4_5_16 is not set
 218.154  # CT_STRACE_V_4_5_15 is not set
 218.155 -# CT_STRACE_V_4_5_14 is not set
 218.156 -# CT_STRACE_V_4_5 is not set
 218.157 -CT_STRACE_VERSION="4.5.17"
 218.158 +CT_STRACE_VERSION="4.5.18"
 218.159  
 218.160  #
 218.161  # Tools facilities
 218.162 @@ -408,11 +377,11 @@
 218.163  #
 218.164  CT_WRAPPER_NEEDED=y
 218.165  CT_GMP_MPFR=y
 218.166 -# CT_GMP_V_4_3_1 is not set
 218.167 +CT_GMP_V_4_3_1=y
 218.168  # CT_GMP_V_4_3_0 is not set
 218.169 -CT_GMP_V_4_2_4=y
 218.170 +# CT_GMP_V_4_2_4 is not set
 218.171  # CT_GMP_V_4_2_2 is not set
 218.172 -CT_GMP_VERSION="4.2.4"
 218.173 +CT_GMP_VERSION="4.3.1"
 218.174  CT_MPFR_V_2_4_1=y
 218.175  # CT_MPFR_V_2_4_0 is not set
 218.176  # CT_MPFR_V_2_3_2 is not set
   219.1 --- a/samples/ia64-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   219.2 +++ b/samples/ia64-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   219.3 @@ -1,7 +1,7 @@
   219.4  #
   219.5  # Automatically generated make config: don't edit
   219.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   219.7 -# Sun Oct  4 12:47:50 2009
   219.8 +# crosstool-NG version: hg_default@1596_241387704817
   219.9 +# Wed Oct 28 19:45:25 2009
  219.10  #
  219.11  
  219.12  #
  219.13 @@ -162,13 +162,18 @@
  219.14  # CT_BARE_METAL is not set
  219.15  CT_KERNEL_SUPPORTS_SHARED_LIBS=y
  219.16  CT_KERNEL="linux"
  219.17 -CT_KERNEL_VERSION="2.6.26.8"
  219.18 +CT_KERNEL_VERSION="2.6.27.38"
  219.19  # CT_KERNEL_bare_metal is not set
  219.20  CT_KERNEL_linux=y
  219.21  CT_KERNEL_LINUX_INSTALL=y
  219.22  CT_KERNEL_LINUX_INSTALL_CHECK=y
  219.23 +# CT_KERNEL_V_2_6_31_5 is not set
  219.24 +# CT_KERNEL_V_2_6_31_4 is not set
  219.25 +# CT_KERNEL_V_2_6_31_3 is not set
  219.26 +# CT_KERNEL_V_2_6_31_2 is not set
  219.27  # CT_KERNEL_V_2_6_31_1 is not set
  219.28  # CT_KERNEL_V_2_6_31 is not set
  219.29 +# CT_KERNEL_V_3_6_30_9 is not set
  219.30  # CT_KERNEL_V_3_6_30_8 is not set
  219.31  # CT_KERNEL_V_3_6_30_7 is not set
  219.32  # CT_KERNEL_V_2_6_30_6 is not set
  219.33 @@ -180,17 +185,7 @@
  219.34  # CT_KERNEL_V_2_6_30 is not set
  219.35  # CT_KERNEL_V_2_6_29_6 is not set
  219.36  # CT_KERNEL_V_2_6_28_10 is not set
  219.37 -# CT_KERNEL_V_2_6_27_35 is not set
  219.38 -CT_KERNEL_V_2_6_26_8=y
  219.39 -# CT_KERNEL_V_2_6_25_20 is not set
  219.40 -# CT_KERNEL_V_2_6_24_7 is not set
  219.41 -# CT_KERNEL_V_2_6_23_17 is not set
  219.42 -# CT_KERNEL_V_2_6_22_19 is not set
  219.43 -# CT_KERNEL_V_2_6_21_7 is not set
  219.44 -# CT_KERNEL_V_2_6_20_21 is not set
  219.45 -# CT_KERNEL_V_2_6_19_7 is not set
  219.46 -# CT_KERNEL_V_2_6_18_8 is not set
  219.47 -# CT_KERNEL_V_select is not set
  219.48 +CT_KERNEL_V_2_6_27_38=y
  219.49  CT_KERNEL_LINUX_VERBOSITY_0=y
  219.50  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  219.51  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  219.52 @@ -211,26 +206,13 @@
  219.53  #
  219.54  # GNU binutils
  219.55  #
  219.56 -CT_BINUTILS_VERSION="2.19.1"
  219.57 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  219.58 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  219.59 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  219.60 +# CT_BINUTILS_V_2_20 is not set
  219.61  CT_BINUTILS_V_2_19_1=y
  219.62  # CT_BINUTILS_V_2_19 is not set
  219.63 -# CT_BINUTILS_V_2_18_93 is not set
  219.64 -# CT_BINUTILS_V_2_18_92 is not set
  219.65 -# CT_BINUTILS_V_2_18_91 is not set
  219.66 -# CT_BINUTILS_V_2_18_90 is not set
  219.67 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  219.68 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  219.69 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  219.70 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  219.71 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  219.72  # CT_BINUTILS_V_2_18 is not set
  219.73  # CT_BINUTILS_V_2_17 is not set
  219.74  # CT_BINUTILS_V_2_16_1 is not set
  219.75 -# CT_BINUTILS_V_2_15 is not set
  219.76 -# CT_BINUTILS_V_2_14 is not set
  219.77 +CT_BINUTILS_VERSION="2.19.1"
  219.78  CT_BINUTILS_EXTRA_CONFIG=""
  219.79  CT_BINUTILS_FOR_TARGET=y
  219.80  CT_BINUTILS_FOR_TARGET_IBERTY=y
  219.81 @@ -242,6 +224,7 @@
  219.82  CT_CC="gcc"
  219.83  CT_CC_VERSION="3.4.6"
  219.84  CT_CC_gcc=y
  219.85 +# CT_CC_V_4_4_2 is not set
  219.86  # CT_CC_V_4_4_1 is not set
  219.87  # CT_CC_V_4_4_0 is not set
  219.88  # CT_CC_V_4_3_4 is not set
  219.89 @@ -255,16 +238,8 @@
  219.90  # CT_CC_V_4_2_1 is not set
  219.91  # CT_CC_V_4_2_0 is not set
  219.92  # CT_CC_V_4_1_2 is not set
  219.93 -# CT_CC_V_4_1_1 is not set
  219.94 -# CT_CC_V_4_1_0 is not set
  219.95  # CT_CC_V_4_0_4 is not set
  219.96 -# CT_CC_V_4_0_3 is not set
  219.97 -# CT_CC_V_4_0_2 is not set
  219.98 -# CT_CC_V_4_0_1 is not set
  219.99 -# CT_CC_V_4_0_0 is not set
 219.100  CT_CC_V_3_4_6=y
 219.101 -# CT_CC_V_3_3_6 is not set
 219.102 -# CT_CC_V_3_2_3 is not set
 219.103  # CT_CC_GCC_4_3_or_later is not set
 219.104  # CT_CC_GCC_4_4_or_later is not set
 219.105  CT_CC_CXA_ATEXIT=y
 219.106 @@ -325,7 +300,7 @@
 219.107  # CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
 219.108  CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
 219.109  # CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
 219.110 -CT_LIBC_GLIBC_MIN_KERNEL="2.6.26.8"
 219.111 +CT_LIBC_GLIBC_MIN_KERNEL="2.6.27.38"
 219.112  
 219.113  #
 219.114  # Common C library options
 219.115 @@ -359,12 +334,8 @@
 219.116  CT_GDB_NATIVE_USE_GMP_MPFR=y
 219.117  CT_GDB_GDBSERVER=y
 219.118  CT_GDB_GDBSERVER_STATIC=y
 219.119 +# CT_GDB_V_7_0 is not set
 219.120  CT_GDB_V_6_8=y
 219.121 -# CT_GDB_V_6_7_1 is not set
 219.122 -# CT_GDB_V_6_7 is not set
 219.123 -# CT_GDB_V_6_6 is not set
 219.124 -# CT_GDB_V_6_5 is not set
 219.125 -# CT_GDB_V_6_4 is not set
 219.126  # CT_GDB_V_snapshot is not set
 219.127  CT_GDB_VERSION="6.8"
 219.128  
 219.129 @@ -376,13 +347,12 @@
 219.130  CT_NCURSES_VERSION="5.7"
 219.131  # CT_DEBUG_ltrace is not set
 219.132  CT_DEBUG_strace=y
 219.133 -# CT_STRACE_V_4_5_18 is not set
 219.134 +# CT_STRACE_V_4_5_19 is not set
 219.135 +CT_STRACE_V_4_5_18=y
 219.136  # CT_STRACE_V_4_5_17 is not set
 219.137 -CT_STRACE_V_4_5_16=y
 219.138 +# CT_STRACE_V_4_5_16 is not set
 219.139  # CT_STRACE_V_4_5_15 is not set
 219.140 -# CT_STRACE_V_4_5_14 is not set
 219.141 -# CT_STRACE_V_4_5 is not set
 219.142 -CT_STRACE_VERSION="4.5.16"
 219.143 +CT_STRACE_VERSION="4.5.18"
 219.144  
 219.145  #
 219.146  # Tools facilities
   220.1 --- a/samples/mingw32,i686-none-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   220.2 +++ b/samples/mingw32,i686-none-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   220.3 @@ -1,7 +1,7 @@
   220.4  #
   220.5  # Automatically generated make config: don't edit
   220.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   220.7 -# Sun Oct  4 12:48:41 2009
   220.8 +# crosstool-NG version: hg_default@1596_241387704817
   220.9 +# Wed Oct 28 23:13:51 2009
  220.10  #
  220.11  
  220.12  #
  220.13 @@ -178,8 +178,13 @@
  220.14  CT_KERNEL_linux=y
  220.15  CT_KERNEL_LINUX_INSTALL=y
  220.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  220.17 +# CT_KERNEL_V_2_6_31_5 is not set
  220.18 +# CT_KERNEL_V_2_6_31_4 is not set
  220.19 +# CT_KERNEL_V_2_6_31_3 is not set
  220.20 +# CT_KERNEL_V_2_6_31_2 is not set
  220.21  CT_KERNEL_V_2_6_31_1=y
  220.22  # CT_KERNEL_V_2_6_31 is not set
  220.23 +# CT_KERNEL_V_3_6_30_9 is not set
  220.24  # CT_KERNEL_V_3_6_30_8 is not set
  220.25  # CT_KERNEL_V_3_6_30_7 is not set
  220.26  # CT_KERNEL_V_2_6_30_6 is not set
  220.27 @@ -191,17 +196,7 @@
  220.28  # CT_KERNEL_V_2_6_30 is not set
  220.29  # CT_KERNEL_V_2_6_29_6 is not set
  220.30  # CT_KERNEL_V_2_6_28_10 is not set
  220.31 -# CT_KERNEL_V_2_6_27_35 is not set
  220.32 -# CT_KERNEL_V_2_6_26_8 is not set
  220.33 -# CT_KERNEL_V_2_6_25_20 is not set
  220.34 -# CT_KERNEL_V_2_6_24_7 is not set
  220.35 -# CT_KERNEL_V_2_6_23_17 is not set
  220.36 -# CT_KERNEL_V_2_6_22_19 is not set
  220.37 -# CT_KERNEL_V_2_6_21_7 is not set
  220.38 -# CT_KERNEL_V_2_6_20_21 is not set
  220.39 -# CT_KERNEL_V_2_6_19_7 is not set
  220.40 -# CT_KERNEL_V_2_6_18_8 is not set
  220.41 -# CT_KERNEL_V_select is not set
  220.42 +# CT_KERNEL_V_2_6_27_38 is not set
  220.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  220.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  220.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  220.46 @@ -222,26 +217,13 @@
  220.47  #
  220.48  # GNU binutils
  220.49  #
  220.50 -CT_BINUTILS_VERSION="2.19.1"
  220.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  220.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  220.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  220.54 +# CT_BINUTILS_V_2_20 is not set
  220.55  CT_BINUTILS_V_2_19_1=y
  220.56  # CT_BINUTILS_V_2_19 is not set
  220.57 -# CT_BINUTILS_V_2_18_93 is not set
  220.58 -# CT_BINUTILS_V_2_18_92 is not set
  220.59 -# CT_BINUTILS_V_2_18_91 is not set
  220.60 -# CT_BINUTILS_V_2_18_90 is not set
  220.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  220.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  220.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  220.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  220.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  220.66  # CT_BINUTILS_V_2_18 is not set
  220.67  # CT_BINUTILS_V_2_17 is not set
  220.68  # CT_BINUTILS_V_2_16_1 is not set
  220.69 -# CT_BINUTILS_V_2_15 is not set
  220.70 -# CT_BINUTILS_V_2_14 is not set
  220.71 +CT_BINUTILS_VERSION="2.19.1"
  220.72  CT_BINUTILS_EXTRA_CONFIG="--enable-targets=i686-none-linux-gnu"
  220.73  # CT_BINUTILS_FOR_TARGET is not set
  220.74  
  220.75 @@ -251,6 +233,7 @@
  220.76  CT_CC="gcc"
  220.77  CT_CC_VERSION="4.3.2"
  220.78  CT_CC_gcc=y
  220.79 +# CT_CC_V_4_4_2 is not set
  220.80  # CT_CC_V_4_4_1 is not set
  220.81  # CT_CC_V_4_4_0 is not set
  220.82  # CT_CC_V_4_3_4 is not set
  220.83 @@ -264,16 +247,8 @@
  220.84  # CT_CC_V_4_2_1 is not set
  220.85  # CT_CC_V_4_2_0 is not set
  220.86  # CT_CC_V_4_1_2 is not set
  220.87 -# CT_CC_V_4_1_1 is not set
  220.88 -# CT_CC_V_4_1_0 is not set
  220.89  # CT_CC_V_4_0_4 is not set
  220.90 -# CT_CC_V_4_0_3 is not set
  220.91 -# CT_CC_V_4_0_2 is not set
  220.92 -# CT_CC_V_4_0_1 is not set
  220.93 -# CT_CC_V_4_0_0 is not set
  220.94  # CT_CC_V_3_4_6 is not set
  220.95 -# CT_CC_V_3_3_6 is not set
  220.96 -# CT_CC_V_3_2_3 is not set
  220.97  CT_CC_GCC_4_3_or_later=y
  220.98  # CT_CC_GCC_4_4_or_later is not set
  220.99  CT_CC_CXA_ATEXIT=y
   221.1 --- a/samples/mips-ar2315-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   221.2 +++ b/samples/mips-ar2315-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   221.3 @@ -1,7 +1,7 @@
   221.4  #
   221.5  # Automatically generated make config: don't edit
   221.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   221.7 -# Sun Oct  4 12:49:15 2009
   221.8 +# crosstool-NG version: hg_default@1596_241387704817
   221.9 +# Wed Oct 28 23:14:38 2009
  221.10  #
  221.11  
  221.12  #
  221.13 @@ -171,8 +171,13 @@
  221.14  CT_KERNEL_linux=y
  221.15  CT_KERNEL_LINUX_INSTALL=y
  221.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  221.17 +# CT_KERNEL_V_2_6_31_5 is not set
  221.18 +# CT_KERNEL_V_2_6_31_4 is not set
  221.19 +# CT_KERNEL_V_2_6_31_3 is not set
  221.20 +# CT_KERNEL_V_2_6_31_2 is not set
  221.21  CT_KERNEL_V_2_6_31_1=y
  221.22  # CT_KERNEL_V_2_6_31 is not set
  221.23 +# CT_KERNEL_V_3_6_30_9 is not set
  221.24  # CT_KERNEL_V_3_6_30_8 is not set
  221.25  # CT_KERNEL_V_3_6_30_7 is not set
  221.26  # CT_KERNEL_V_2_6_30_6 is not set
  221.27 @@ -184,17 +189,7 @@
  221.28  # CT_KERNEL_V_2_6_30 is not set
  221.29  # CT_KERNEL_V_2_6_29_6 is not set
  221.30  # CT_KERNEL_V_2_6_28_10 is not set
  221.31 -# CT_KERNEL_V_2_6_27_35 is not set
  221.32 -# CT_KERNEL_V_2_6_26_8 is not set
  221.33 -# CT_KERNEL_V_2_6_25_20 is not set
  221.34 -# CT_KERNEL_V_2_6_24_7 is not set
  221.35 -# CT_KERNEL_V_2_6_23_17 is not set
  221.36 -# CT_KERNEL_V_2_6_22_19 is not set
  221.37 -# CT_KERNEL_V_2_6_21_7 is not set
  221.38 -# CT_KERNEL_V_2_6_20_21 is not set
  221.39 -# CT_KERNEL_V_2_6_19_7 is not set
  221.40 -# CT_KERNEL_V_2_6_18_8 is not set
  221.41 -# CT_KERNEL_V_select is not set
  221.42 +# CT_KERNEL_V_2_6_27_38 is not set
  221.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  221.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  221.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  221.46 @@ -215,26 +210,13 @@
  221.47  #
  221.48  # GNU binutils
  221.49  #
  221.50 -CT_BINUTILS_VERSION="2.19.1"
  221.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  221.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  221.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  221.54 +# CT_BINUTILS_V_2_20 is not set
  221.55  CT_BINUTILS_V_2_19_1=y
  221.56  # CT_BINUTILS_V_2_19 is not set
  221.57 -# CT_BINUTILS_V_2_18_93 is not set
  221.58 -# CT_BINUTILS_V_2_18_92 is not set
  221.59 -# CT_BINUTILS_V_2_18_91 is not set
  221.60 -# CT_BINUTILS_V_2_18_90 is not set
  221.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  221.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  221.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  221.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  221.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  221.66  # CT_BINUTILS_V_2_18 is not set
  221.67  # CT_BINUTILS_V_2_17 is not set
  221.68  # CT_BINUTILS_V_2_16_1 is not set
  221.69 -# CT_BINUTILS_V_2_15 is not set
  221.70 -# CT_BINUTILS_V_2_14 is not set
  221.71 +CT_BINUTILS_VERSION="2.19.1"
  221.72  CT_BINUTILS_EXTRA_CONFIG=""
  221.73  # CT_BINUTILS_FOR_TARGET is not set
  221.74  
  221.75 @@ -244,6 +226,7 @@
  221.76  CT_CC="gcc"
  221.77  CT_CC_VERSION="4.3.2"
  221.78  CT_CC_gcc=y
  221.79 +# CT_CC_V_4_4_2 is not set
  221.80  # CT_CC_V_4_4_1 is not set
  221.81  # CT_CC_V_4_4_0 is not set
  221.82  # CT_CC_V_4_3_4 is not set
  221.83 @@ -257,16 +240,8 @@
  221.84  # CT_CC_V_4_2_1 is not set
  221.85  # CT_CC_V_4_2_0 is not set
  221.86  # CT_CC_V_4_1_2 is not set
  221.87 -# CT_CC_V_4_1_1 is not set
  221.88 -# CT_CC_V_4_1_0 is not set
  221.89  # CT_CC_V_4_0_4 is not set
  221.90 -# CT_CC_V_4_0_3 is not set
  221.91 -# CT_CC_V_4_0_2 is not set
  221.92 -# CT_CC_V_4_0_1 is not set
  221.93 -# CT_CC_V_4_0_0 is not set
  221.94  # CT_CC_V_3_4_6 is not set
  221.95 -# CT_CC_V_3_3_6 is not set
  221.96 -# CT_CC_V_3_2_3 is not set
  221.97  CT_CC_GCC_4_3_or_later=y
  221.98  # CT_CC_GCC_4_4_or_later is not set
  221.99  CT_CC_CXA_ATEXIT=y
 221.100 @@ -314,6 +289,7 @@
 221.101  # CT_EGLIBC_V_TRUNK is not set
 221.102  CT_EGLIBC_REVISION="HEAD"
 221.103  # CT_EGLIBC_CHECKOUT is not set
 221.104 +# CT_EGLIBC_CUSTOM_CONFIG is not set
 221.105  
 221.106  #
 221.107  # glibc/eglibc common options
 221.108 @@ -345,7 +321,6 @@
 221.109  #
 221.110  CT_DEBUG_dmalloc=y
 221.111  CT_DMALLOC_V_5_5_2=y
 221.112 -# CT_DMALLOC_V_5_4_3 is not set
 221.113  CT_DMALLOC_VERSION="5.5.2"
 221.114  # CT_DEBUG_duma is not set
 221.115  CT_DEBUG_gdb=y
 221.116 @@ -355,22 +330,17 @@
 221.117  # CT_GDB_NATIVE is not set
 221.118  CT_GDB_GDBSERVER=y
 221.119  CT_GDB_GDBSERVER_STATIC=y
 221.120 +# CT_GDB_V_7_0 is not set
 221.121  CT_GDB_V_6_8=y
 221.122 -# CT_GDB_V_6_7_1 is not set
 221.123 -# CT_GDB_V_6_7 is not set
 221.124 -# CT_GDB_V_6_6 is not set
 221.125 -# CT_GDB_V_6_5 is not set
 221.126 -# CT_GDB_V_6_4 is not set
 221.127  # CT_GDB_V_snapshot is not set
 221.128  CT_GDB_VERSION="6.8"
 221.129  # CT_DEBUG_ltrace is not set
 221.130  CT_DEBUG_strace=y
 221.131 +# CT_STRACE_V_4_5_19 is not set
 221.132  CT_STRACE_V_4_5_18=y
 221.133  # CT_STRACE_V_4_5_17 is not set
 221.134  # CT_STRACE_V_4_5_16 is not set
 221.135  # CT_STRACE_V_4_5_15 is not set
 221.136 -# CT_STRACE_V_4_5_14 is not set
 221.137 -# CT_STRACE_V_4_5 is not set
 221.138  CT_STRACE_VERSION="4.5.18"
 221.139  
 221.140  #
 221.141 @@ -391,16 +361,16 @@
 221.142  #
 221.143  CT_WRAPPER_NEEDED=y
 221.144  CT_GMP_MPFR=y
 221.145 -# CT_GMP_V_4_3_1 is not set
 221.146 +CT_GMP_V_4_3_1=y
 221.147  # CT_GMP_V_4_3_0 is not set
 221.148  # CT_GMP_V_4_2_4 is not set
 221.149 -CT_GMP_V_4_2_2=y
 221.150 -CT_GMP_VERSION="4.2.2"
 221.151 -# CT_MPFR_V_2_4_1 is not set
 221.152 +# CT_GMP_V_4_2_2 is not set
 221.153 +CT_GMP_VERSION="4.3.1"
 221.154 +CT_MPFR_V_2_4_1=y
 221.155  # CT_MPFR_V_2_4_0 is not set
 221.156  # CT_MPFR_V_2_3_2 is not set
 221.157 -CT_MPFR_V_2_3_1=y
 221.158 -CT_MPFR_VERSION="2.3.1"
 221.159 +# CT_MPFR_V_2_3_1 is not set
 221.160 +CT_MPFR_VERSION="2.4.1"
 221.161  # CT_PPL_CLOOG_MPC is not set
 221.162  
 221.163  #
   222.1 --- a/samples/mips-unknown-elf/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   222.2 +++ b/samples/mips-unknown-elf/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   222.3 @@ -1,7 +1,7 @@
   222.4  #
   222.5  # Automatically generated make config: don't edit
   222.6 -# crosstool-NG version: hg_default@1527_c86baf0af4eb
   222.7 -# Sat Sep 12 00:13:32 2009
   222.8 +# crosstool-NG version: hg_default@1596_241387704817
   222.9 +# Wed Oct 28 23:15:06 2009
  222.10  #
  222.11  
  222.12  #
  222.13 @@ -178,26 +178,13 @@
  222.14  #
  222.15  # GNU binutils
  222.16  #
  222.17 +# CT_BINUTILS_V_2_20 is not set
  222.18 +CT_BINUTILS_V_2_19_1=y
  222.19 +# CT_BINUTILS_V_2_19 is not set
  222.20 +# CT_BINUTILS_V_2_18 is not set
  222.21 +# CT_BINUTILS_V_2_17 is not set
  222.22 +# CT_BINUTILS_V_2_16_1 is not set
  222.23  CT_BINUTILS_VERSION="2.19.1"
  222.24 -# CT_BINUTILS_V_2_14 is not set
  222.25 -# CT_BINUTILS_V_2_15 is not set
  222.26 -# CT_BINUTILS_V_2_16_1 is not set
  222.27 -# CT_BINUTILS_V_2_17 is not set
  222.28 -# CT_BINUTILS_V_2_18 is not set
  222.29 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  222.30 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  222.31 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  222.32 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  222.33 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  222.34 -# CT_BINUTILS_V_2_18_90 is not set
  222.35 -# CT_BINUTILS_V_2_18_91 is not set
  222.36 -# CT_BINUTILS_V_2_18_92 is not set
  222.37 -# CT_BINUTILS_V_2_18_93 is not set
  222.38 -# CT_BINUTILS_V_2_19 is not set
  222.39 -CT_BINUTILS_V_2_19_1=y
  222.40 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  222.41 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  222.42 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  222.43  CT_BINUTILS_EXTRA_CONFIG=""
  222.44  
  222.45  #
  222.46 @@ -206,29 +193,22 @@
  222.47  CT_CC="gcc"
  222.48  CT_CC_VERSION="4.3.2"
  222.49  CT_CC_gcc=y
  222.50 -# CT_CC_V_3_2_3 is not set
  222.51 -# CT_CC_V_3_3_6 is not set
  222.52 +# CT_CC_V_4_4_2 is not set
  222.53 +# CT_CC_V_4_4_1 is not set
  222.54 +# CT_CC_V_4_4_0 is not set
  222.55 +# CT_CC_V_4_3_4 is not set
  222.56 +# CT_CC_V_4_3_3 is not set
  222.57 +CT_CC_V_4_3_2=y
  222.58 +# CT_CC_V_4_3_1 is not set
  222.59 +# CT_CC_V_4_3_0 is not set
  222.60 +# CT_CC_V_4_2_4 is not set
  222.61 +# CT_CC_V_4_2_3 is not set
  222.62 +# CT_CC_V_4_2_2 is not set
  222.63 +# CT_CC_V_4_2_1 is not set
  222.64 +# CT_CC_V_4_2_0 is not set
  222.65 +# CT_CC_V_4_1_2 is not set
  222.66 +# CT_CC_V_4_0_4 is not set
  222.67  # CT_CC_V_3_4_6 is not set
  222.68 -# CT_CC_V_4_0_0 is not set
  222.69 -# CT_CC_V_4_0_1 is not set
  222.70 -# CT_CC_V_4_0_2 is not set
  222.71 -# CT_CC_V_4_0_3 is not set
  222.72 -# CT_CC_V_4_0_4 is not set
  222.73 -# CT_CC_V_4_1_0 is not set
  222.74 -# CT_CC_V_4_1_1 is not set
  222.75 -# CT_CC_V_4_1_2 is not set
  222.76 -# CT_CC_V_4_2_0 is not set
  222.77 -# CT_CC_V_4_2_1 is not set
  222.78 -# CT_CC_V_4_2_2 is not set
  222.79 -# CT_CC_V_4_2_3 is not set
  222.80 -# CT_CC_V_4_2_4 is not set
  222.81 -# CT_CC_V_4_3_0 is not set
  222.82 -# CT_CC_V_4_3_1 is not set
  222.83 -CT_CC_V_4_3_2=y
  222.84 -# CT_CC_V_4_3_3 is not set
  222.85 -# CT_CC_V_4_3_4 is not set
  222.86 -# CT_CC_V_4_4_0 is not set
  222.87 -# CT_CC_V_4_4_1 is not set
  222.88  CT_CC_GCC_4_3_or_later=y
  222.89  # CT_CC_GCC_4_4_or_later is not set
  222.90  CT_CC_ENABLE_CXX_FLAGS=""
  222.91 @@ -282,11 +262,7 @@
  222.92  #
  222.93  # provide your own gdbserver stub.
  222.94  #
  222.95 -# CT_GDB_V_6_4 is not set
  222.96 -# CT_GDB_V_6_5 is not set
  222.97 -# CT_GDB_V_6_6 is not set
  222.98 -# CT_GDB_V_6_7 is not set
  222.99 -# CT_GDB_V_6_7_1 is not set
 222.100 +# CT_GDB_V_7_0 is not set
 222.101  CT_GDB_V_6_8=y
 222.102  # CT_GDB_V_snapshot is not set
 222.103  CT_GDB_VERSION="6.8"
 222.104 @@ -304,15 +280,15 @@
 222.105  #
 222.106  CT_WRAPPER_NEEDED=y
 222.107  CT_GMP_MPFR=y
 222.108 +CT_GMP_V_4_3_1=y
 222.109 +# CT_GMP_V_4_3_0 is not set
 222.110 +# CT_GMP_V_4_2_4 is not set
 222.111  # CT_GMP_V_4_2_2 is not set
 222.112 -CT_GMP_V_4_2_4=y
 222.113 -# CT_GMP_V_4_3_0 is not set
 222.114 -# CT_GMP_V_4_3_1 is not set
 222.115 -CT_GMP_VERSION="4.2.4"
 222.116 +CT_GMP_VERSION="4.3.1"
 222.117 +CT_MPFR_V_2_4_1=y
 222.118 +# CT_MPFR_V_2_4_0 is not set
 222.119 +# CT_MPFR_V_2_3_2 is not set
 222.120  # CT_MPFR_V_2_3_1 is not set
 222.121 -# CT_MPFR_V_2_3_2 is not set
 222.122 -# CT_MPFR_V_2_4_0 is not set
 222.123 -CT_MPFR_V_2_4_1=y
 222.124  CT_MPFR_VERSION="2.4.1"
 222.125  # CT_PPL_CLOOG_MPC is not set
 222.126  
   223.1 --- a/samples/mips-unknown-linux-uclibc/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   223.2 +++ b/samples/mips-unknown-linux-uclibc/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   223.3 @@ -1,7 +1,7 @@
   223.4  #
   223.5  # Automatically generated make config: don't edit
   223.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   223.7 -# Sun Oct  4 12:49:57 2009
   223.8 +# crosstool-NG version: hg_default@1596_241387704817
   223.9 +# Wed Oct 28 23:15:37 2009
  223.10  #
  223.11  
  223.12  #
  223.13 @@ -169,8 +169,13 @@
  223.14  CT_KERNEL_linux=y
  223.15  CT_KERNEL_LINUX_INSTALL=y
  223.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  223.17 +# CT_KERNEL_V_2_6_31_5 is not set
  223.18 +# CT_KERNEL_V_2_6_31_4 is not set
  223.19 +# CT_KERNEL_V_2_6_31_3 is not set
  223.20 +# CT_KERNEL_V_2_6_31_2 is not set
  223.21  CT_KERNEL_V_2_6_31_1=y
  223.22  # CT_KERNEL_V_2_6_31 is not set
  223.23 +# CT_KERNEL_V_3_6_30_9 is not set
  223.24  # CT_KERNEL_V_3_6_30_8 is not set
  223.25  # CT_KERNEL_V_3_6_30_7 is not set
  223.26  # CT_KERNEL_V_2_6_30_6 is not set
  223.27 @@ -182,17 +187,7 @@
  223.28  # CT_KERNEL_V_2_6_30 is not set
  223.29  # CT_KERNEL_V_2_6_29_6 is not set
  223.30  # CT_KERNEL_V_2_6_28_10 is not set
  223.31 -# CT_KERNEL_V_2_6_27_35 is not set
  223.32 -# CT_KERNEL_V_2_6_26_8 is not set
  223.33 -# CT_KERNEL_V_2_6_25_20 is not set
  223.34 -# CT_KERNEL_V_2_6_24_7 is not set
  223.35 -# CT_KERNEL_V_2_6_23_17 is not set
  223.36 -# CT_KERNEL_V_2_6_22_19 is not set
  223.37 -# CT_KERNEL_V_2_6_21_7 is not set
  223.38 -# CT_KERNEL_V_2_6_20_21 is not set
  223.39 -# CT_KERNEL_V_2_6_19_7 is not set
  223.40 -# CT_KERNEL_V_2_6_18_8 is not set
  223.41 -# CT_KERNEL_V_select is not set
  223.42 +# CT_KERNEL_V_2_6_27_38 is not set
  223.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  223.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  223.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  223.46 @@ -213,26 +208,13 @@
  223.47  #
  223.48  # GNU binutils
  223.49  #
  223.50 -CT_BINUTILS_VERSION="2.19.1"
  223.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  223.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  223.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  223.54 +# CT_BINUTILS_V_2_20 is not set
  223.55  CT_BINUTILS_V_2_19_1=y
  223.56  # CT_BINUTILS_V_2_19 is not set
  223.57 -# CT_BINUTILS_V_2_18_93 is not set
  223.58 -# CT_BINUTILS_V_2_18_92 is not set
  223.59 -# CT_BINUTILS_V_2_18_91 is not set
  223.60 -# CT_BINUTILS_V_2_18_90 is not set
  223.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  223.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  223.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  223.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  223.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  223.66  # CT_BINUTILS_V_2_18 is not set
  223.67  # CT_BINUTILS_V_2_17 is not set
  223.68  # CT_BINUTILS_V_2_16_1 is not set
  223.69 -# CT_BINUTILS_V_2_15 is not set
  223.70 -# CT_BINUTILS_V_2_14 is not set
  223.71 +CT_BINUTILS_VERSION="2.19.1"
  223.72  CT_BINUTILS_EXTRA_CONFIG=""
  223.73  CT_BINUTILS_FOR_TARGET=y
  223.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  223.75 @@ -244,6 +226,7 @@
  223.76  CT_CC="gcc"
  223.77  CT_CC_VERSION="4.3.2"
  223.78  CT_CC_gcc=y
  223.79 +# CT_CC_V_4_4_2 is not set
  223.80  # CT_CC_V_4_4_1 is not set
  223.81  # CT_CC_V_4_4_0 is not set
  223.82  # CT_CC_V_4_3_4 is not set
  223.83 @@ -257,16 +240,8 @@
  223.84  # CT_CC_V_4_2_1 is not set
  223.85  # CT_CC_V_4_2_0 is not set
  223.86  # CT_CC_V_4_1_2 is not set
  223.87 -# CT_CC_V_4_1_1 is not set
  223.88 -# CT_CC_V_4_1_0 is not set
  223.89  # CT_CC_V_4_0_4 is not set
  223.90 -# CT_CC_V_4_0_3 is not set
  223.91 -# CT_CC_V_4_0_2 is not set
  223.92 -# CT_CC_V_4_0_1 is not set
  223.93 -# CT_CC_V_4_0_0 is not set
  223.94  # CT_CC_V_3_4_6 is not set
  223.95 -# CT_CC_V_3_3_6 is not set
  223.96 -# CT_CC_V_3_2_3 is not set
  223.97  CT_CC_GCC_4_3_or_later=y
  223.98  # CT_CC_GCC_4_4_or_later is not set
  223.99  CT_CC_CXA_ATEXIT=y
 223.100 @@ -305,9 +280,6 @@
 223.101  # CT_LIBC_V_0_9_30 is not set
 223.102  # CT_LIBC_V_0_9_29 is not set
 223.103  # CT_LIBC_V_0_9_28_3 is not set
 223.104 -# CT_LIBC_V_0_9_28_2 is not set
 223.105 -# CT_LIBC_V_0_9_28_1 is not set
 223.106 -# CT_LIBC_V_0_9_28 is not set
 223.107  # CT_LIBC_V_snapshot is not set
 223.108  # CT_LIBC_V_specific_date is not set
 223.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 223.110 @@ -338,17 +310,16 @@
 223.111  #
 223.112  CT_DEBUG_dmalloc=y
 223.113  CT_DMALLOC_V_5_5_2=y
 223.114 -# CT_DMALLOC_V_5_4_3 is not set
 223.115  CT_DMALLOC_VERSION="5.5.2"
 223.116  CT_DEBUG_duma=y
 223.117  CT_DUMA_A=y
 223.118  CT_DUMA_SO=y
 223.119 -# CT_DUMA_V_2_5_15 is not set
 223.120 -CT_DUMA_V_2_5_14=y
 223.121 +CT_DUMA_V_2_5_15=y
 223.122 +# CT_DUMA_V_2_5_14 is not set
 223.123  # CT_DUMA_V_2_5_12 is not set
 223.124  # CT_DUMA_V_2_5_8 is not set
 223.125  # CT_DUMA_V_2_5_1 is not set
 223.126 -CT_DUMA_VERSION="2_5_14"
 223.127 +CT_DUMA_VERSION="2_5_15"
 223.128  CT_DEBUG_gdb=y
 223.129  CT_GDB_CROSS=y
 223.130  # CT_GDB_CROSS_STATIC is not set
 223.131 @@ -357,12 +328,8 @@
 223.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 223.133  CT_GDB_GDBSERVER=y
 223.134  CT_GDB_GDBSERVER_STATIC=y
 223.135 +# CT_GDB_V_7_0 is not set
 223.136  CT_GDB_V_6_8=y
 223.137 -# CT_GDB_V_6_7_1 is not set
 223.138 -# CT_GDB_V_6_7 is not set
 223.139 -# CT_GDB_V_6_6 is not set
 223.140 -# CT_GDB_V_6_5 is not set
 223.141 -# CT_GDB_V_6_4 is not set
 223.142  # CT_GDB_V_snapshot is not set
 223.143  CT_GDB_VERSION="6.8"
 223.144  
 223.145 @@ -374,13 +341,12 @@
 223.146  CT_NCURSES_VERSION="5.7"
 223.147  # CT_DEBUG_ltrace is not set
 223.148  CT_DEBUG_strace=y
 223.149 -# CT_STRACE_V_4_5_18 is not set
 223.150 -CT_STRACE_V_4_5_17=y
 223.151 +# CT_STRACE_V_4_5_19 is not set
 223.152 +CT_STRACE_V_4_5_18=y
 223.153 +# CT_STRACE_V_4_5_17 is not set
 223.154  # CT_STRACE_V_4_5_16 is not set
 223.155  # CT_STRACE_V_4_5_15 is not set
 223.156 -# CT_STRACE_V_4_5_14 is not set
 223.157 -# CT_STRACE_V_4_5 is not set
 223.158 -CT_STRACE_VERSION="4.5.17"
 223.159 +CT_STRACE_VERSION="4.5.18"
 223.160  
 223.161  #
 223.162  # Tools facilities
 223.163 @@ -396,11 +362,11 @@
 223.164  #
 223.165  CT_WRAPPER_NEEDED=y
 223.166  CT_GMP_MPFR=y
 223.167 -# CT_GMP_V_4_3_1 is not set
 223.168 +CT_GMP_V_4_3_1=y
 223.169  # CT_GMP_V_4_3_0 is not set
 223.170 -CT_GMP_V_4_2_4=y
 223.171 +# CT_GMP_V_4_2_4 is not set
 223.172  # CT_GMP_V_4_2_2 is not set
 223.173 -CT_GMP_VERSION="4.2.4"
 223.174 +CT_GMP_VERSION="4.3.1"
 223.175  CT_MPFR_V_2_4_1=y
 223.176  # CT_MPFR_V_2_4_0 is not set
 223.177  # CT_MPFR_V_2_3_2 is not set
   224.1 --- a/samples/mipsel-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   224.2 +++ b/samples/mipsel-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   224.3 @@ -1,7 +1,7 @@
   224.4  #
   224.5  # Automatically generated make config: don't edit
   224.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   224.7 -# Sun Oct  4 12:50:11 2009
   224.8 +# crosstool-NG version: hg_default@1596_241387704817
   224.9 +# Wed Oct 28 23:15:56 2009
  224.10  #
  224.11  
  224.12  #
  224.13 @@ -169,8 +169,13 @@
  224.14  CT_KERNEL_linux=y
  224.15  CT_KERNEL_LINUX_INSTALL=y
  224.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  224.17 +# CT_KERNEL_V_2_6_31_5 is not set
  224.18 +# CT_KERNEL_V_2_6_31_4 is not set
  224.19 +# CT_KERNEL_V_2_6_31_3 is not set
  224.20 +# CT_KERNEL_V_2_6_31_2 is not set
  224.21  CT_KERNEL_V_2_6_31_1=y
  224.22  # CT_KERNEL_V_2_6_31 is not set
  224.23 +# CT_KERNEL_V_3_6_30_9 is not set
  224.24  # CT_KERNEL_V_3_6_30_8 is not set
  224.25  # CT_KERNEL_V_3_6_30_7 is not set
  224.26  # CT_KERNEL_V_2_6_30_6 is not set
  224.27 @@ -182,17 +187,7 @@
  224.28  # CT_KERNEL_V_2_6_30 is not set
  224.29  # CT_KERNEL_V_2_6_29_6 is not set
  224.30  # CT_KERNEL_V_2_6_28_10 is not set
  224.31 -# CT_KERNEL_V_2_6_27_35 is not set
  224.32 -# CT_KERNEL_V_2_6_26_8 is not set
  224.33 -# CT_KERNEL_V_2_6_25_20 is not set
  224.34 -# CT_KERNEL_V_2_6_24_7 is not set
  224.35 -# CT_KERNEL_V_2_6_23_17 is not set
  224.36 -# CT_KERNEL_V_2_6_22_19 is not set
  224.37 -# CT_KERNEL_V_2_6_21_7 is not set
  224.38 -# CT_KERNEL_V_2_6_20_21 is not set
  224.39 -# CT_KERNEL_V_2_6_19_7 is not set
  224.40 -# CT_KERNEL_V_2_6_18_8 is not set
  224.41 -# CT_KERNEL_V_select is not set
  224.42 +# CT_KERNEL_V_2_6_27_38 is not set
  224.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  224.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  224.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  224.46 @@ -213,26 +208,13 @@
  224.47  #
  224.48  # GNU binutils
  224.49  #
  224.50 -CT_BINUTILS_VERSION="2.19.1"
  224.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  224.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  224.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  224.54 +# CT_BINUTILS_V_2_20 is not set
  224.55  CT_BINUTILS_V_2_19_1=y
  224.56  # CT_BINUTILS_V_2_19 is not set
  224.57 -# CT_BINUTILS_V_2_18_93 is not set
  224.58 -# CT_BINUTILS_V_2_18_92 is not set
  224.59 -# CT_BINUTILS_V_2_18_91 is not set
  224.60 -# CT_BINUTILS_V_2_18_90 is not set
  224.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  224.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  224.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  224.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  224.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  224.66  # CT_BINUTILS_V_2_18 is not set
  224.67  # CT_BINUTILS_V_2_17 is not set
  224.68  # CT_BINUTILS_V_2_16_1 is not set
  224.69 -# CT_BINUTILS_V_2_15 is not set
  224.70 -# CT_BINUTILS_V_2_14 is not set
  224.71 +CT_BINUTILS_VERSION="2.19.1"
  224.72  CT_BINUTILS_EXTRA_CONFIG=""
  224.73  CT_BINUTILS_FOR_TARGET=y
  224.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  224.75 @@ -244,6 +226,7 @@
  224.76  CT_CC="gcc"
  224.77  CT_CC_VERSION="4.3.2"
  224.78  CT_CC_gcc=y
  224.79 +# CT_CC_V_4_4_2 is not set
  224.80  # CT_CC_V_4_4_1 is not set
  224.81  # CT_CC_V_4_4_0 is not set
  224.82  # CT_CC_V_4_3_4 is not set
  224.83 @@ -257,16 +240,8 @@
  224.84  # CT_CC_V_4_2_1 is not set
  224.85  # CT_CC_V_4_2_0 is not set
  224.86  # CT_CC_V_4_1_2 is not set
  224.87 -# CT_CC_V_4_1_1 is not set
  224.88 -# CT_CC_V_4_1_0 is not set
  224.89  # CT_CC_V_4_0_4 is not set
  224.90 -# CT_CC_V_4_0_3 is not set
  224.91 -# CT_CC_V_4_0_2 is not set
  224.92 -# CT_CC_V_4_0_1 is not set
  224.93 -# CT_CC_V_4_0_0 is not set
  224.94  # CT_CC_V_3_4_6 is not set
  224.95 -# CT_CC_V_3_3_6 is not set
  224.96 -# CT_CC_V_3_2_3 is not set
  224.97  CT_CC_GCC_4_3_or_later=y
  224.98  # CT_CC_GCC_4_4_or_later is not set
  224.99  CT_CC_CXA_ATEXIT=y
 224.100 @@ -355,17 +330,16 @@
 224.101  #
 224.102  CT_DEBUG_dmalloc=y
 224.103  CT_DMALLOC_V_5_5_2=y
 224.104 -# CT_DMALLOC_V_5_4_3 is not set
 224.105  CT_DMALLOC_VERSION="5.5.2"
 224.106  CT_DEBUG_duma=y
 224.107  CT_DUMA_A=y
 224.108  CT_DUMA_SO=y
 224.109 -# CT_DUMA_V_2_5_15 is not set
 224.110 -CT_DUMA_V_2_5_14=y
 224.111 +CT_DUMA_V_2_5_15=y
 224.112 +# CT_DUMA_V_2_5_14 is not set
 224.113  # CT_DUMA_V_2_5_12 is not set
 224.114  # CT_DUMA_V_2_5_8 is not set
 224.115  # CT_DUMA_V_2_5_1 is not set
 224.116 -CT_DUMA_VERSION="2_5_14"
 224.117 +CT_DUMA_VERSION="2_5_15"
 224.118  CT_DEBUG_gdb=y
 224.119  CT_GDB_CROSS=y
 224.120  # CT_GDB_CROSS_STATIC is not set
 224.121 @@ -374,12 +348,8 @@
 224.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 224.123  CT_GDB_GDBSERVER=y
 224.124  CT_GDB_GDBSERVER_STATIC=y
 224.125 +# CT_GDB_V_7_0 is not set
 224.126  CT_GDB_V_6_8=y
 224.127 -# CT_GDB_V_6_7_1 is not set
 224.128 -# CT_GDB_V_6_7 is not set
 224.129 -# CT_GDB_V_6_6 is not set
 224.130 -# CT_GDB_V_6_5 is not set
 224.131 -# CT_GDB_V_6_4 is not set
 224.132  # CT_GDB_V_snapshot is not set
 224.133  CT_GDB_VERSION="6.8"
 224.134  
 224.135 @@ -391,13 +361,12 @@
 224.136  CT_NCURSES_VERSION="5.7"
 224.137  # CT_DEBUG_ltrace is not set
 224.138  CT_DEBUG_strace=y
 224.139 -# CT_STRACE_V_4_5_18 is not set
 224.140 -CT_STRACE_V_4_5_17=y
 224.141 +# CT_STRACE_V_4_5_19 is not set
 224.142 +CT_STRACE_V_4_5_18=y
 224.143 +# CT_STRACE_V_4_5_17 is not set
 224.144  # CT_STRACE_V_4_5_16 is not set
 224.145  # CT_STRACE_V_4_5_15 is not set
 224.146 -# CT_STRACE_V_4_5_14 is not set
 224.147 -# CT_STRACE_V_4_5 is not set
 224.148 -CT_STRACE_VERSION="4.5.17"
 224.149 +CT_STRACE_VERSION="4.5.18"
 224.150  
 224.151  #
 224.152  # Tools facilities
 224.153 @@ -413,11 +382,11 @@
 224.154  #
 224.155  CT_WRAPPER_NEEDED=y
 224.156  CT_GMP_MPFR=y
 224.157 -# CT_GMP_V_4_3_1 is not set
 224.158 +CT_GMP_V_4_3_1=y
 224.159  # CT_GMP_V_4_3_0 is not set
 224.160 -CT_GMP_V_4_2_4=y
 224.161 +# CT_GMP_V_4_2_4 is not set
 224.162  # CT_GMP_V_4_2_2 is not set
 224.163 -CT_GMP_VERSION="4.2.4"
 224.164 +CT_GMP_VERSION="4.3.1"
 224.165  CT_MPFR_V_2_4_1=y
 224.166  # CT_MPFR_V_2_4_0 is not set
 224.167  # CT_MPFR_V_2_3_2 is not set
   225.1 --- a/samples/powerpc-405-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   225.2 +++ b/samples/powerpc-405-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   225.3 @@ -1,7 +1,7 @@
   225.4  #
   225.5  # Automatically generated make config: don't edit
   225.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   225.7 -# Sun Oct  4 12:50:30 2009
   225.8 +# crosstool-NG version: hg_default@1596_241387704817
   225.9 +# Wed Oct 28 23:16:25 2009
  225.10  #
  225.11  
  225.12  #
  225.13 @@ -168,8 +168,13 @@
  225.14  CT_KERNEL_linux=y
  225.15  CT_KERNEL_LINUX_INSTALL=y
  225.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  225.17 +# CT_KERNEL_V_2_6_31_5 is not set
  225.18 +# CT_KERNEL_V_2_6_31_4 is not set
  225.19 +# CT_KERNEL_V_2_6_31_3 is not set
  225.20 +# CT_KERNEL_V_2_6_31_2 is not set
  225.21  CT_KERNEL_V_2_6_31_1=y
  225.22  # CT_KERNEL_V_2_6_31 is not set
  225.23 +# CT_KERNEL_V_3_6_30_9 is not set
  225.24  # CT_KERNEL_V_3_6_30_8 is not set
  225.25  # CT_KERNEL_V_3_6_30_7 is not set
  225.26  # CT_KERNEL_V_2_6_30_6 is not set
  225.27 @@ -181,17 +186,7 @@
  225.28  # CT_KERNEL_V_2_6_30 is not set
  225.29  # CT_KERNEL_V_2_6_29_6 is not set
  225.30  # CT_KERNEL_V_2_6_28_10 is not set
  225.31 -# CT_KERNEL_V_2_6_27_35 is not set
  225.32 -# CT_KERNEL_V_2_6_26_8 is not set
  225.33 -# CT_KERNEL_V_2_6_25_20 is not set
  225.34 -# CT_KERNEL_V_2_6_24_7 is not set
  225.35 -# CT_KERNEL_V_2_6_23_17 is not set
  225.36 -# CT_KERNEL_V_2_6_22_19 is not set
  225.37 -# CT_KERNEL_V_2_6_21_7 is not set
  225.38 -# CT_KERNEL_V_2_6_20_21 is not set
  225.39 -# CT_KERNEL_V_2_6_19_7 is not set
  225.40 -# CT_KERNEL_V_2_6_18_8 is not set
  225.41 -# CT_KERNEL_V_select is not set
  225.42 +# CT_KERNEL_V_2_6_27_38 is not set
  225.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  225.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  225.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  225.46 @@ -212,26 +207,13 @@
  225.47  #
  225.48  # GNU binutils
  225.49  #
  225.50 -CT_BINUTILS_VERSION="2.19.1"
  225.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  225.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  225.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  225.54 +# CT_BINUTILS_V_2_20 is not set
  225.55  CT_BINUTILS_V_2_19_1=y
  225.56  # CT_BINUTILS_V_2_19 is not set
  225.57 -# CT_BINUTILS_V_2_18_93 is not set
  225.58 -# CT_BINUTILS_V_2_18_92 is not set
  225.59 -# CT_BINUTILS_V_2_18_91 is not set
  225.60 -# CT_BINUTILS_V_2_18_90 is not set
  225.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  225.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  225.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  225.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  225.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  225.66  # CT_BINUTILS_V_2_18 is not set
  225.67  # CT_BINUTILS_V_2_17 is not set
  225.68  # CT_BINUTILS_V_2_16_1 is not set
  225.69 -# CT_BINUTILS_V_2_15 is not set
  225.70 -# CT_BINUTILS_V_2_14 is not set
  225.71 +CT_BINUTILS_VERSION="2.19.1"
  225.72  CT_BINUTILS_EXTRA_CONFIG=""
  225.73  CT_BINUTILS_FOR_TARGET=y
  225.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  225.75 @@ -243,6 +225,7 @@
  225.76  CT_CC="gcc"
  225.77  CT_CC_VERSION="4.3.2"
  225.78  CT_CC_gcc=y
  225.79 +# CT_CC_V_4_4_2 is not set
  225.80  # CT_CC_V_4_4_1 is not set
  225.81  # CT_CC_V_4_4_0 is not set
  225.82  # CT_CC_V_4_3_4 is not set
  225.83 @@ -256,16 +239,8 @@
  225.84  # CT_CC_V_4_2_1 is not set
  225.85  # CT_CC_V_4_2_0 is not set
  225.86  # CT_CC_V_4_1_2 is not set
  225.87 -# CT_CC_V_4_1_1 is not set
  225.88 -# CT_CC_V_4_1_0 is not set
  225.89  # CT_CC_V_4_0_4 is not set
  225.90 -# CT_CC_V_4_0_3 is not set
  225.91 -# CT_CC_V_4_0_2 is not set
  225.92 -# CT_CC_V_4_0_1 is not set
  225.93 -# CT_CC_V_4_0_0 is not set
  225.94  # CT_CC_V_3_4_6 is not set
  225.95 -# CT_CC_V_3_3_6 is not set
  225.96 -# CT_CC_V_3_2_3 is not set
  225.97  CT_CC_GCC_4_3_or_later=y
  225.98  # CT_CC_GCC_4_4_or_later is not set
  225.99  CT_CC_CXA_ATEXIT=y
 225.100 @@ -355,17 +330,16 @@
 225.101  #
 225.102  CT_DEBUG_dmalloc=y
 225.103  CT_DMALLOC_V_5_5_2=y
 225.104 -# CT_DMALLOC_V_5_4_3 is not set
 225.105  CT_DMALLOC_VERSION="5.5.2"
 225.106  CT_DEBUG_duma=y
 225.107  CT_DUMA_A=y
 225.108  CT_DUMA_SO=y
 225.109 -# CT_DUMA_V_2_5_15 is not set
 225.110 -CT_DUMA_V_2_5_14=y
 225.111 +CT_DUMA_V_2_5_15=y
 225.112 +# CT_DUMA_V_2_5_14 is not set
 225.113  # CT_DUMA_V_2_5_12 is not set
 225.114  # CT_DUMA_V_2_5_8 is not set
 225.115  # CT_DUMA_V_2_5_1 is not set
 225.116 -CT_DUMA_VERSION="2_5_14"
 225.117 +CT_DUMA_VERSION="2_5_15"
 225.118  CT_DEBUG_gdb=y
 225.119  CT_GDB_CROSS=y
 225.120  # CT_GDB_CROSS_STATIC is not set
 225.121 @@ -374,12 +348,8 @@
 225.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 225.123  CT_GDB_GDBSERVER=y
 225.124  CT_GDB_GDBSERVER_STATIC=y
 225.125 +# CT_GDB_V_7_0 is not set
 225.126  CT_GDB_V_6_8=y
 225.127 -# CT_GDB_V_6_7_1 is not set
 225.128 -# CT_GDB_V_6_7 is not set
 225.129 -# CT_GDB_V_6_6 is not set
 225.130 -# CT_GDB_V_6_5 is not set
 225.131 -# CT_GDB_V_6_4 is not set
 225.132  # CT_GDB_V_snapshot is not set
 225.133  CT_GDB_VERSION="6.8"
 225.134  
 225.135 @@ -406,11 +376,11 @@
 225.136  #
 225.137  CT_WRAPPER_NEEDED=y
 225.138  CT_GMP_MPFR=y
 225.139 -# CT_GMP_V_4_3_1 is not set
 225.140 +CT_GMP_V_4_3_1=y
 225.141  # CT_GMP_V_4_3_0 is not set
 225.142 -CT_GMP_V_4_2_4=y
 225.143 +# CT_GMP_V_4_2_4 is not set
 225.144  # CT_GMP_V_4_2_2 is not set
 225.145 -CT_GMP_VERSION="4.2.4"
 225.146 +CT_GMP_VERSION="4.3.1"
 225.147  CT_MPFR_V_2_4_1=y
 225.148  # CT_MPFR_V_2_4_0 is not set
 225.149  # CT_MPFR_V_2_3_2 is not set
   226.1 --- a/samples/powerpc-860-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   226.2 +++ b/samples/powerpc-860-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   226.3 @@ -1,7 +1,7 @@
   226.4  #
   226.5  # Automatically generated make config: don't edit
   226.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   226.7 -# Sun Oct  4 12:50:47 2009
   226.8 +# crosstool-NG version: hg_default@1596_241387704817
   226.9 +# Wed Oct 28 23:16:47 2009
  226.10  #
  226.11  
  226.12  #
  226.13 @@ -168,8 +168,13 @@
  226.14  CT_KERNEL_linux=y
  226.15  CT_KERNEL_LINUX_INSTALL=y
  226.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  226.17 +# CT_KERNEL_V_2_6_31_5 is not set
  226.18 +# CT_KERNEL_V_2_6_31_4 is not set
  226.19 +# CT_KERNEL_V_2_6_31_3 is not set
  226.20 +# CT_KERNEL_V_2_6_31_2 is not set
  226.21  CT_KERNEL_V_2_6_31_1=y
  226.22  # CT_KERNEL_V_2_6_31 is not set
  226.23 +# CT_KERNEL_V_3_6_30_9 is not set
  226.24  # CT_KERNEL_V_3_6_30_8 is not set
  226.25  # CT_KERNEL_V_3_6_30_7 is not set
  226.26  # CT_KERNEL_V_2_6_30_6 is not set
  226.27 @@ -181,17 +186,7 @@
  226.28  # CT_KERNEL_V_2_6_30 is not set
  226.29  # CT_KERNEL_V_2_6_29_6 is not set
  226.30  # CT_KERNEL_V_2_6_28_10 is not set
  226.31 -# CT_KERNEL_V_2_6_27_35 is not set
  226.32 -# CT_KERNEL_V_2_6_26_8 is not set
  226.33 -# CT_KERNEL_V_2_6_25_20 is not set
  226.34 -# CT_KERNEL_V_2_6_24_7 is not set
  226.35 -# CT_KERNEL_V_2_6_23_17 is not set
  226.36 -# CT_KERNEL_V_2_6_22_19 is not set
  226.37 -# CT_KERNEL_V_2_6_21_7 is not set
  226.38 -# CT_KERNEL_V_2_6_20_21 is not set
  226.39 -# CT_KERNEL_V_2_6_19_7 is not set
  226.40 -# CT_KERNEL_V_2_6_18_8 is not set
  226.41 -# CT_KERNEL_V_select is not set
  226.42 +# CT_KERNEL_V_2_6_27_38 is not set
  226.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  226.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  226.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  226.46 @@ -212,26 +207,13 @@
  226.47  #
  226.48  # GNU binutils
  226.49  #
  226.50 -CT_BINUTILS_VERSION="2.19.1"
  226.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  226.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  226.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  226.54 +# CT_BINUTILS_V_2_20 is not set
  226.55  CT_BINUTILS_V_2_19_1=y
  226.56  # CT_BINUTILS_V_2_19 is not set
  226.57 -# CT_BINUTILS_V_2_18_93 is not set
  226.58 -# CT_BINUTILS_V_2_18_92 is not set
  226.59 -# CT_BINUTILS_V_2_18_91 is not set
  226.60 -# CT_BINUTILS_V_2_18_90 is not set
  226.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  226.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  226.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  226.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  226.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  226.66  # CT_BINUTILS_V_2_18 is not set
  226.67  # CT_BINUTILS_V_2_17 is not set
  226.68  # CT_BINUTILS_V_2_16_1 is not set
  226.69 -# CT_BINUTILS_V_2_15 is not set
  226.70 -# CT_BINUTILS_V_2_14 is not set
  226.71 +CT_BINUTILS_VERSION="2.19.1"
  226.72  CT_BINUTILS_EXTRA_CONFIG=""
  226.73  CT_BINUTILS_FOR_TARGET=y
  226.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  226.75 @@ -243,6 +225,7 @@
  226.76  CT_CC="gcc"
  226.77  CT_CC_VERSION="4.3.2"
  226.78  CT_CC_gcc=y
  226.79 +# CT_CC_V_4_4_2 is not set
  226.80  # CT_CC_V_4_4_1 is not set
  226.81  # CT_CC_V_4_4_0 is not set
  226.82  # CT_CC_V_4_3_4 is not set
  226.83 @@ -256,16 +239,8 @@
  226.84  # CT_CC_V_4_2_1 is not set
  226.85  # CT_CC_V_4_2_0 is not set
  226.86  # CT_CC_V_4_1_2 is not set
  226.87 -# CT_CC_V_4_1_1 is not set
  226.88 -# CT_CC_V_4_1_0 is not set
  226.89  # CT_CC_V_4_0_4 is not set
  226.90 -# CT_CC_V_4_0_3 is not set
  226.91 -# CT_CC_V_4_0_2 is not set
  226.92 -# CT_CC_V_4_0_1 is not set
  226.93 -# CT_CC_V_4_0_0 is not set
  226.94  # CT_CC_V_3_4_6 is not set
  226.95 -# CT_CC_V_3_3_6 is not set
  226.96 -# CT_CC_V_3_2_3 is not set
  226.97  CT_CC_GCC_4_3_or_later=y
  226.98  # CT_CC_GCC_4_4_or_later is not set
  226.99  CT_CC_CXA_ATEXIT=y
 226.100 @@ -362,12 +337,8 @@
 226.101  CT_GDB_NATIVE_USE_GMP_MPFR=y
 226.102  CT_GDB_GDBSERVER=y
 226.103  # CT_GDB_GDBSERVER_STATIC is not set
 226.104 +# CT_GDB_V_7_0 is not set
 226.105  CT_GDB_V_6_8=y
 226.106 -# CT_GDB_V_6_7_1 is not set
 226.107 -# CT_GDB_V_6_7 is not set
 226.108 -# CT_GDB_V_6_6 is not set
 226.109 -# CT_GDB_V_6_5 is not set
 226.110 -# CT_GDB_V_6_4 is not set
 226.111  # CT_GDB_V_snapshot is not set
 226.112  CT_GDB_VERSION="6.8"
 226.113  
 226.114 @@ -379,13 +350,12 @@
 226.115  CT_NCURSES_VERSION="5.7"
 226.116  # CT_DEBUG_ltrace is not set
 226.117  CT_DEBUG_strace=y
 226.118 -# CT_STRACE_V_4_5_18 is not set
 226.119 -CT_STRACE_V_4_5_17=y
 226.120 +# CT_STRACE_V_4_5_19 is not set
 226.121 +CT_STRACE_V_4_5_18=y
 226.122 +# CT_STRACE_V_4_5_17 is not set
 226.123  # CT_STRACE_V_4_5_16 is not set
 226.124  # CT_STRACE_V_4_5_15 is not set
 226.125 -# CT_STRACE_V_4_5_14 is not set
 226.126 -# CT_STRACE_V_4_5 is not set
 226.127 -CT_STRACE_VERSION="4.5.17"
 226.128 +CT_STRACE_VERSION="4.5.18"
 226.129  
 226.130  #
 226.131  # Tools facilities
 226.132 @@ -398,11 +368,11 @@
 226.133  #
 226.134  CT_WRAPPER_NEEDED=y
 226.135  CT_GMP_MPFR=y
 226.136 -# CT_GMP_V_4_3_1 is not set
 226.137 +CT_GMP_V_4_3_1=y
 226.138  # CT_GMP_V_4_3_0 is not set
 226.139 -CT_GMP_V_4_2_4=y
 226.140 +# CT_GMP_V_4_2_4 is not set
 226.141  # CT_GMP_V_4_2_2 is not set
 226.142 -CT_GMP_VERSION="4.2.4"
 226.143 +CT_GMP_VERSION="4.3.1"
 226.144  CT_MPFR_V_2_4_1=y
 226.145  # CT_MPFR_V_2_4_0 is not set
 226.146  # CT_MPFR_V_2_3_2 is not set
   227.1 --- a/samples/powerpc-e500v2-linux-gnuspe/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   227.2 +++ b/samples/powerpc-e500v2-linux-gnuspe/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   227.3 @@ -1,7 +1,7 @@
   227.4  #
   227.5  # Automatically generated make config: don't edit
   227.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   227.7 -# Sun Oct  4 12:50:59 2009
   227.8 +# crosstool-NG version: hg_default@1596_241387704817
   227.9 +# Wed Oct 28 23:17:14 2009
  227.10  #
  227.11  
  227.12  #
  227.13 @@ -169,8 +169,13 @@
  227.14  CT_KERNEL_linux=y
  227.15  CT_KERNEL_LINUX_INSTALL=y
  227.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  227.17 +# CT_KERNEL_V_2_6_31_5 is not set
  227.18 +# CT_KERNEL_V_2_6_31_4 is not set
  227.19 +# CT_KERNEL_V_2_6_31_3 is not set
  227.20 +# CT_KERNEL_V_2_6_31_2 is not set
  227.21  CT_KERNEL_V_2_6_31_1=y
  227.22  # CT_KERNEL_V_2_6_31 is not set
  227.23 +# CT_KERNEL_V_3_6_30_9 is not set
  227.24  # CT_KERNEL_V_3_6_30_8 is not set
  227.25  # CT_KERNEL_V_3_6_30_7 is not set
  227.26  # CT_KERNEL_V_2_6_30_6 is not set
  227.27 @@ -182,17 +187,7 @@
  227.28  # CT_KERNEL_V_2_6_30 is not set
  227.29  # CT_KERNEL_V_2_6_29_6 is not set
  227.30  # CT_KERNEL_V_2_6_28_10 is not set
  227.31 -# CT_KERNEL_V_2_6_27_35 is not set
  227.32 -# CT_KERNEL_V_2_6_26_8 is not set
  227.33 -# CT_KERNEL_V_2_6_25_20 is not set
  227.34 -# CT_KERNEL_V_2_6_24_7 is not set
  227.35 -# CT_KERNEL_V_2_6_23_17 is not set
  227.36 -# CT_KERNEL_V_2_6_22_19 is not set
  227.37 -# CT_KERNEL_V_2_6_21_7 is not set
  227.38 -# CT_KERNEL_V_2_6_20_21 is not set
  227.39 -# CT_KERNEL_V_2_6_19_7 is not set
  227.40 -# CT_KERNEL_V_2_6_18_8 is not set
  227.41 -# CT_KERNEL_V_select is not set
  227.42 +# CT_KERNEL_V_2_6_27_38 is not set
  227.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  227.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  227.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  227.46 @@ -213,26 +208,13 @@
  227.47  #
  227.48  # GNU binutils
  227.49  #
  227.50 -CT_BINUTILS_VERSION="2.19.1"
  227.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  227.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  227.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  227.54 +# CT_BINUTILS_V_2_20 is not set
  227.55  CT_BINUTILS_V_2_19_1=y
  227.56  # CT_BINUTILS_V_2_19 is not set
  227.57 -# CT_BINUTILS_V_2_18_93 is not set
  227.58 -# CT_BINUTILS_V_2_18_92 is not set
  227.59 -# CT_BINUTILS_V_2_18_91 is not set
  227.60 -# CT_BINUTILS_V_2_18_90 is not set
  227.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  227.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  227.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  227.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  227.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  227.66  # CT_BINUTILS_V_2_18 is not set
  227.67  # CT_BINUTILS_V_2_17 is not set
  227.68  # CT_BINUTILS_V_2_16_1 is not set
  227.69 -# CT_BINUTILS_V_2_15 is not set
  227.70 -# CT_BINUTILS_V_2_14 is not set
  227.71 +CT_BINUTILS_VERSION="2.19.1"
  227.72  CT_BINUTILS_EXTRA_CONFIG="--enable-spe=yes --enable-e500x2 --with-e500x2"
  227.73  # CT_BINUTILS_FOR_TARGET is not set
  227.74  
  227.75 @@ -242,6 +224,7 @@
  227.76  CT_CC="gcc"
  227.77  CT_CC_VERSION="4.3.2"
  227.78  CT_CC_gcc=y
  227.79 +# CT_CC_V_4_4_2 is not set
  227.80  # CT_CC_V_4_4_1 is not set
  227.81  # CT_CC_V_4_4_0 is not set
  227.82  # CT_CC_V_4_3_4 is not set
  227.83 @@ -255,16 +238,8 @@
  227.84  # CT_CC_V_4_2_1 is not set
  227.85  # CT_CC_V_4_2_0 is not set
  227.86  # CT_CC_V_4_1_2 is not set
  227.87 -# CT_CC_V_4_1_1 is not set
  227.88 -# CT_CC_V_4_1_0 is not set
  227.89  # CT_CC_V_4_0_4 is not set
  227.90 -# CT_CC_V_4_0_3 is not set
  227.91 -# CT_CC_V_4_0_2 is not set
  227.92 -# CT_CC_V_4_0_1 is not set
  227.93 -# CT_CC_V_4_0_0 is not set
  227.94  # CT_CC_V_3_4_6 is not set
  227.95 -# CT_CC_V_3_3_6 is not set
  227.96 -# CT_CC_V_3_2_3 is not set
  227.97  CT_CC_GCC_4_3_or_later=y
  227.98  # CT_CC_GCC_4_4_or_later is not set
  227.99  CT_CC_CXA_ATEXIT=y
 227.100 @@ -313,6 +288,7 @@
 227.101  # CT_EGLIBC_V_TRUNK is not set
 227.102  CT_EGLIBC_REVISION="HEAD"
 227.103  CT_EGLIBC_CHECKOUT=y
 227.104 +# CT_EGLIBC_CUSTOM_CONFIG is not set
 227.105  
 227.106  #
 227.107  # glibc/eglibc common options
 227.108 @@ -358,11 +334,11 @@
 227.109  #
 227.110  CT_WRAPPER_NEEDED=y
 227.111  CT_GMP_MPFR=y
 227.112 -# CT_GMP_V_4_3_1 is not set
 227.113 +CT_GMP_V_4_3_1=y
 227.114  # CT_GMP_V_4_3_0 is not set
 227.115 -CT_GMP_V_4_2_4=y
 227.116 +# CT_GMP_V_4_2_4 is not set
 227.117  # CT_GMP_V_4_2_2 is not set
 227.118 -CT_GMP_VERSION="4.2.4"
 227.119 +CT_GMP_VERSION="4.3.1"
 227.120  CT_MPFR_V_2_4_1=y
 227.121  # CT_MPFR_V_2_4_0 is not set
 227.122  # CT_MPFR_V_2_3_2 is not set
   228.1 --- a/samples/powerpc-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   228.2 +++ b/samples/powerpc-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   228.3 @@ -1,7 +1,7 @@
   228.4  #
   228.5  # Automatically generated make config: don't edit
   228.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   228.7 -# Sun Oct  4 12:51:28 2009
   228.8 +# crosstool-NG version: hg_default@1596_241387704817
   228.9 +# Wed Oct 28 23:18:06 2009
  228.10  #
  228.11  
  228.12  #
  228.13 @@ -168,8 +168,13 @@
  228.14  CT_KERNEL_linux=y
  228.15  CT_KERNEL_LINUX_INSTALL=y
  228.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  228.17 +# CT_KERNEL_V_2_6_31_5 is not set
  228.18 +# CT_KERNEL_V_2_6_31_4 is not set
  228.19 +# CT_KERNEL_V_2_6_31_3 is not set
  228.20 +# CT_KERNEL_V_2_6_31_2 is not set
  228.21  CT_KERNEL_V_2_6_31_1=y
  228.22  # CT_KERNEL_V_2_6_31 is not set
  228.23 +# CT_KERNEL_V_3_6_30_9 is not set
  228.24  # CT_KERNEL_V_3_6_30_8 is not set
  228.25  # CT_KERNEL_V_3_6_30_7 is not set
  228.26  # CT_KERNEL_V_2_6_30_6 is not set
  228.27 @@ -181,17 +186,7 @@
  228.28  # CT_KERNEL_V_2_6_30 is not set
  228.29  # CT_KERNEL_V_2_6_29_6 is not set
  228.30  # CT_KERNEL_V_2_6_28_10 is not set
  228.31 -# CT_KERNEL_V_2_6_27_35 is not set
  228.32 -# CT_KERNEL_V_2_6_26_8 is not set
  228.33 -# CT_KERNEL_V_2_6_25_20 is not set
  228.34 -# CT_KERNEL_V_2_6_24_7 is not set
  228.35 -# CT_KERNEL_V_2_6_23_17 is not set
  228.36 -# CT_KERNEL_V_2_6_22_19 is not set
  228.37 -# CT_KERNEL_V_2_6_21_7 is not set
  228.38 -# CT_KERNEL_V_2_6_20_21 is not set
  228.39 -# CT_KERNEL_V_2_6_19_7 is not set
  228.40 -# CT_KERNEL_V_2_6_18_8 is not set
  228.41 -# CT_KERNEL_V_select is not set
  228.42 +# CT_KERNEL_V_2_6_27_38 is not set
  228.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  228.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  228.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  228.46 @@ -212,26 +207,13 @@
  228.47  #
  228.48  # GNU binutils
  228.49  #
  228.50 -CT_BINUTILS_VERSION="2.19.1"
  228.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  228.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  228.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  228.54 +# CT_BINUTILS_V_2_20 is not set
  228.55  CT_BINUTILS_V_2_19_1=y
  228.56  # CT_BINUTILS_V_2_19 is not set
  228.57 -# CT_BINUTILS_V_2_18_93 is not set
  228.58 -# CT_BINUTILS_V_2_18_92 is not set
  228.59 -# CT_BINUTILS_V_2_18_91 is not set
  228.60 -# CT_BINUTILS_V_2_18_90 is not set
  228.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  228.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  228.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  228.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  228.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  228.66  # CT_BINUTILS_V_2_18 is not set
  228.67  # CT_BINUTILS_V_2_17 is not set
  228.68  # CT_BINUTILS_V_2_16_1 is not set
  228.69 -# CT_BINUTILS_V_2_15 is not set
  228.70 -# CT_BINUTILS_V_2_14 is not set
  228.71 +CT_BINUTILS_VERSION="2.19.1"
  228.72  CT_BINUTILS_EXTRA_CONFIG=""
  228.73  CT_BINUTILS_FOR_TARGET=y
  228.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  228.75 @@ -243,6 +225,7 @@
  228.76  CT_CC="gcc"
  228.77  CT_CC_VERSION="4.3.2"
  228.78  CT_CC_gcc=y
  228.79 +# CT_CC_V_4_4_2 is not set
  228.80  # CT_CC_V_4_4_1 is not set
  228.81  # CT_CC_V_4_4_0 is not set
  228.82  # CT_CC_V_4_3_4 is not set
  228.83 @@ -256,16 +239,8 @@
  228.84  # CT_CC_V_4_2_1 is not set
  228.85  # CT_CC_V_4_2_0 is not set
  228.86  # CT_CC_V_4_1_2 is not set
  228.87 -# CT_CC_V_4_1_1 is not set
  228.88 -# CT_CC_V_4_1_0 is not set
  228.89  # CT_CC_V_4_0_4 is not set
  228.90 -# CT_CC_V_4_0_3 is not set
  228.91 -# CT_CC_V_4_0_2 is not set
  228.92 -# CT_CC_V_4_0_1 is not set
  228.93 -# CT_CC_V_4_0_0 is not set
  228.94  # CT_CC_V_3_4_6 is not set
  228.95 -# CT_CC_V_3_3_6 is not set
  228.96 -# CT_CC_V_3_2_3 is not set
  228.97  CT_CC_GCC_4_3_or_later=y
  228.98  # CT_CC_GCC_4_4_or_later is not set
  228.99  CT_CC_CXA_ATEXIT=y
 228.100 @@ -342,17 +317,16 @@
 228.101  #
 228.102  CT_DEBUG_dmalloc=y
 228.103  CT_DMALLOC_V_5_5_2=y
 228.104 -# CT_DMALLOC_V_5_4_3 is not set
 228.105  CT_DMALLOC_VERSION="5.5.2"
 228.106  CT_DEBUG_duma=y
 228.107  CT_DUMA_A=y
 228.108  CT_DUMA_SO=y
 228.109 -# CT_DUMA_V_2_5_15 is not set
 228.110 -CT_DUMA_V_2_5_14=y
 228.111 +CT_DUMA_V_2_5_15=y
 228.112 +# CT_DUMA_V_2_5_14 is not set
 228.113  # CT_DUMA_V_2_5_12 is not set
 228.114  # CT_DUMA_V_2_5_8 is not set
 228.115  # CT_DUMA_V_2_5_1 is not set
 228.116 -CT_DUMA_VERSION="2_5_14"
 228.117 +CT_DUMA_VERSION="2_5_15"
 228.118  CT_DEBUG_gdb=y
 228.119  CT_GDB_CROSS=y
 228.120  # CT_GDB_CROSS_STATIC is not set
 228.121 @@ -361,12 +335,8 @@
 228.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 228.123  CT_GDB_GDBSERVER=y
 228.124  CT_GDB_GDBSERVER_STATIC=y
 228.125 +# CT_GDB_V_7_0 is not set
 228.126  CT_GDB_V_6_8=y
 228.127 -# CT_GDB_V_6_7_1 is not set
 228.128 -# CT_GDB_V_6_7 is not set
 228.129 -# CT_GDB_V_6_6 is not set
 228.130 -# CT_GDB_V_6_5 is not set
 228.131 -# CT_GDB_V_6_4 is not set
 228.132  # CT_GDB_V_snapshot is not set
 228.133  CT_GDB_VERSION="6.8"
 228.134  
 228.135 @@ -378,13 +348,12 @@
 228.136  CT_NCURSES_VERSION="5.7"
 228.137  # CT_DEBUG_ltrace is not set
 228.138  CT_DEBUG_strace=y
 228.139 -# CT_STRACE_V_4_5_18 is not set
 228.140 -CT_STRACE_V_4_5_17=y
 228.141 +# CT_STRACE_V_4_5_19 is not set
 228.142 +CT_STRACE_V_4_5_18=y
 228.143 +# CT_STRACE_V_4_5_17 is not set
 228.144  # CT_STRACE_V_4_5_16 is not set
 228.145  # CT_STRACE_V_4_5_15 is not set
 228.146 -# CT_STRACE_V_4_5_14 is not set
 228.147 -# CT_STRACE_V_4_5 is not set
 228.148 -CT_STRACE_VERSION="4.5.17"
 228.149 +CT_STRACE_VERSION="4.5.18"
 228.150  
 228.151  #
 228.152  # Tools facilities
 228.153 @@ -400,11 +369,11 @@
 228.154  #
 228.155  CT_WRAPPER_NEEDED=y
 228.156  CT_GMP_MPFR=y
 228.157 -# CT_GMP_V_4_3_1 is not set
 228.158 +CT_GMP_V_4_3_1=y
 228.159  # CT_GMP_V_4_3_0 is not set
 228.160 -CT_GMP_V_4_2_4=y
 228.161 +# CT_GMP_V_4_2_4 is not set
 228.162  # CT_GMP_V_4_2_2 is not set
 228.163 -CT_GMP_VERSION="4.2.4"
 228.164 +CT_GMP_VERSION="4.3.1"
 228.165  CT_MPFR_V_2_4_1=y
 228.166  # CT_MPFR_V_2_4_0 is not set
 228.167  # CT_MPFR_V_2_3_2 is not set
   229.1 --- a/samples/powerpc-unknown-linux-uclibc/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   229.2 +++ b/samples/powerpc-unknown-linux-uclibc/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   229.3 @@ -1,7 +1,7 @@
   229.4  #
   229.5  # Automatically generated make config: don't edit
   229.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   229.7 -# Sun Oct  4 12:51:39 2009
   229.8 +# crosstool-NG version: hg_default@1596_241387704817
   229.9 +# Wed Oct 28 23:18:19 2009
  229.10  #
  229.11  
  229.12  #
  229.13 @@ -168,8 +168,13 @@
  229.14  CT_KERNEL_linux=y
  229.15  CT_KERNEL_LINUX_INSTALL=y
  229.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  229.17 +# CT_KERNEL_V_2_6_31_5 is not set
  229.18 +# CT_KERNEL_V_2_6_31_4 is not set
  229.19 +# CT_KERNEL_V_2_6_31_3 is not set
  229.20 +# CT_KERNEL_V_2_6_31_2 is not set
  229.21  CT_KERNEL_V_2_6_31_1=y
  229.22  # CT_KERNEL_V_2_6_31 is not set
  229.23 +# CT_KERNEL_V_3_6_30_9 is not set
  229.24  # CT_KERNEL_V_3_6_30_8 is not set
  229.25  # CT_KERNEL_V_3_6_30_7 is not set
  229.26  # CT_KERNEL_V_2_6_30_6 is not set
  229.27 @@ -181,17 +186,7 @@
  229.28  # CT_KERNEL_V_2_6_30 is not set
  229.29  # CT_KERNEL_V_2_6_29_6 is not set
  229.30  # CT_KERNEL_V_2_6_28_10 is not set
  229.31 -# CT_KERNEL_V_2_6_27_35 is not set
  229.32 -# CT_KERNEL_V_2_6_26_8 is not set
  229.33 -# CT_KERNEL_V_2_6_25_20 is not set
  229.34 -# CT_KERNEL_V_2_6_24_7 is not set
  229.35 -# CT_KERNEL_V_2_6_23_17 is not set
  229.36 -# CT_KERNEL_V_2_6_22_19 is not set
  229.37 -# CT_KERNEL_V_2_6_21_7 is not set
  229.38 -# CT_KERNEL_V_2_6_20_21 is not set
  229.39 -# CT_KERNEL_V_2_6_19_7 is not set
  229.40 -# CT_KERNEL_V_2_6_18_8 is not set
  229.41 -# CT_KERNEL_V_select is not set
  229.42 +# CT_KERNEL_V_2_6_27_38 is not set
  229.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  229.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  229.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  229.46 @@ -212,26 +207,13 @@
  229.47  #
  229.48  # GNU binutils
  229.49  #
  229.50 -CT_BINUTILS_VERSION="2.19.1"
  229.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  229.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  229.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  229.54 +# CT_BINUTILS_V_2_20 is not set
  229.55  CT_BINUTILS_V_2_19_1=y
  229.56  # CT_BINUTILS_V_2_19 is not set
  229.57 -# CT_BINUTILS_V_2_18_93 is not set
  229.58 -# CT_BINUTILS_V_2_18_92 is not set
  229.59 -# CT_BINUTILS_V_2_18_91 is not set
  229.60 -# CT_BINUTILS_V_2_18_90 is not set
  229.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  229.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  229.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  229.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  229.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  229.66  # CT_BINUTILS_V_2_18 is not set
  229.67  # CT_BINUTILS_V_2_17 is not set
  229.68  # CT_BINUTILS_V_2_16_1 is not set
  229.69 -# CT_BINUTILS_V_2_15 is not set
  229.70 -# CT_BINUTILS_V_2_14 is not set
  229.71 +CT_BINUTILS_VERSION="2.19.1"
  229.72  CT_BINUTILS_EXTRA_CONFIG=""
  229.73  CT_BINUTILS_FOR_TARGET=y
  229.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  229.75 @@ -243,6 +225,7 @@
  229.76  CT_CC="gcc"
  229.77  CT_CC_VERSION="4.2.4"
  229.78  CT_CC_gcc=y
  229.79 +# CT_CC_V_4_4_2 is not set
  229.80  # CT_CC_V_4_4_1 is not set
  229.81  # CT_CC_V_4_4_0 is not set
  229.82  # CT_CC_V_4_3_4 is not set
  229.83 @@ -256,16 +239,8 @@
  229.84  # CT_CC_V_4_2_1 is not set
  229.85  # CT_CC_V_4_2_0 is not set
  229.86  # CT_CC_V_4_1_2 is not set
  229.87 -# CT_CC_V_4_1_1 is not set
  229.88 -# CT_CC_V_4_1_0 is not set
  229.89  # CT_CC_V_4_0_4 is not set
  229.90 -# CT_CC_V_4_0_3 is not set
  229.91 -# CT_CC_V_4_0_2 is not set
  229.92 -# CT_CC_V_4_0_1 is not set
  229.93 -# CT_CC_V_4_0_0 is not set
  229.94  # CT_CC_V_3_4_6 is not set
  229.95 -# CT_CC_V_3_3_6 is not set
  229.96 -# CT_CC_V_3_2_3 is not set
  229.97  # CT_CC_GCC_4_3_or_later is not set
  229.98  # CT_CC_GCC_4_4_or_later is not set
  229.99  CT_CC_CXA_ATEXIT=y
 229.100 @@ -302,9 +277,6 @@
 229.101  # CT_LIBC_V_0_9_30 is not set
 229.102  # CT_LIBC_V_0_9_29 is not set
 229.103  # CT_LIBC_V_0_9_28_3 is not set
 229.104 -# CT_LIBC_V_0_9_28_2 is not set
 229.105 -# CT_LIBC_V_0_9_28_1 is not set
 229.106 -# CT_LIBC_V_0_9_28 is not set
 229.107  # CT_LIBC_V_snapshot is not set
 229.108  # CT_LIBC_V_specific_date is not set
 229.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 229.110 @@ -335,17 +307,16 @@
 229.111  #
 229.112  CT_DEBUG_dmalloc=y
 229.113  CT_DMALLOC_V_5_5_2=y
 229.114 -# CT_DMALLOC_V_5_4_3 is not set
 229.115  CT_DMALLOC_VERSION="5.5.2"
 229.116  CT_DEBUG_duma=y
 229.117  CT_DUMA_A=y
 229.118  CT_DUMA_SO=y
 229.119 -# CT_DUMA_V_2_5_15 is not set
 229.120 -CT_DUMA_V_2_5_14=y
 229.121 +CT_DUMA_V_2_5_15=y
 229.122 +# CT_DUMA_V_2_5_14 is not set
 229.123  # CT_DUMA_V_2_5_12 is not set
 229.124  # CT_DUMA_V_2_5_8 is not set
 229.125  # CT_DUMA_V_2_5_1 is not set
 229.126 -CT_DUMA_VERSION="2_5_14"
 229.127 +CT_DUMA_VERSION="2_5_15"
 229.128  CT_DEBUG_gdb=y
 229.129  CT_GDB_CROSS=y
 229.130  # CT_GDB_CROSS_STATIC is not set
 229.131 @@ -354,12 +325,8 @@
 229.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 229.133  CT_GDB_GDBSERVER=y
 229.134  CT_GDB_GDBSERVER_STATIC=y
 229.135 +# CT_GDB_V_7_0 is not set
 229.136  CT_GDB_V_6_8=y
 229.137 -# CT_GDB_V_6_7_1 is not set
 229.138 -# CT_GDB_V_6_7 is not set
 229.139 -# CT_GDB_V_6_6 is not set
 229.140 -# CT_GDB_V_6_5 is not set
 229.141 -# CT_GDB_V_6_4 is not set
 229.142  # CT_GDB_V_snapshot is not set
 229.143  CT_GDB_VERSION="6.8"
 229.144  
 229.145 @@ -371,13 +338,12 @@
 229.146  CT_NCURSES_VERSION="5.7"
 229.147  # CT_DEBUG_ltrace is not set
 229.148  CT_DEBUG_strace=y
 229.149 -# CT_STRACE_V_4_5_18 is not set
 229.150 -CT_STRACE_V_4_5_17=y
 229.151 +# CT_STRACE_V_4_5_19 is not set
 229.152 +CT_STRACE_V_4_5_18=y
 229.153 +# CT_STRACE_V_4_5_17 is not set
 229.154  # CT_STRACE_V_4_5_16 is not set
 229.155  # CT_STRACE_V_4_5_15 is not set
 229.156 -# CT_STRACE_V_4_5_14 is not set
 229.157 -# CT_STRACE_V_4_5 is not set
 229.158 -CT_STRACE_VERSION="4.5.17"
 229.159 +CT_STRACE_VERSION="4.5.18"
 229.160  
 229.161  #
 229.162  # Tools facilities
 229.163 @@ -393,11 +359,11 @@
 229.164  #
 229.165  CT_WRAPPER_NEEDED=y
 229.166  CT_GMP_MPFR=y
 229.167 -# CT_GMP_V_4_3_1 is not set
 229.168 +CT_GMP_V_4_3_1=y
 229.169  # CT_GMP_V_4_3_0 is not set
 229.170 -CT_GMP_V_4_2_4=y
 229.171 +# CT_GMP_V_4_2_4 is not set
 229.172  # CT_GMP_V_4_2_2 is not set
 229.173 -CT_GMP_VERSION="4.2.4"
 229.174 +CT_GMP_VERSION="4.3.1"
 229.175  CT_MPFR_V_2_4_1=y
 229.176  # CT_MPFR_V_2_4_0 is not set
 229.177  # CT_MPFR_V_2_3_2 is not set
   230.1 --- a/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   230.2 +++ b/samples/powerpc-unknown_nofpu-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   230.3 @@ -1,7 +1,7 @@
   230.4  #
   230.5  # Automatically generated make config: don't edit
   230.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   230.7 -# Sun Oct  4 12:51:50 2009
   230.8 +# crosstool-NG version: hg_default@1596_241387704817
   230.9 +# Wed Oct 28 23:18:40 2009
  230.10  #
  230.11  
  230.12  #
  230.13 @@ -168,8 +168,13 @@
  230.14  CT_KERNEL_linux=y
  230.15  CT_KERNEL_LINUX_INSTALL=y
  230.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  230.17 +# CT_KERNEL_V_2_6_31_5 is not set
  230.18 +# CT_KERNEL_V_2_6_31_4 is not set
  230.19 +# CT_KERNEL_V_2_6_31_3 is not set
  230.20 +# CT_KERNEL_V_2_6_31_2 is not set
  230.21  CT_KERNEL_V_2_6_31_1=y
  230.22  # CT_KERNEL_V_2_6_31 is not set
  230.23 +# CT_KERNEL_V_3_6_30_9 is not set
  230.24  # CT_KERNEL_V_3_6_30_8 is not set
  230.25  # CT_KERNEL_V_3_6_30_7 is not set
  230.26  # CT_KERNEL_V_2_6_30_6 is not set
  230.27 @@ -181,17 +186,7 @@
  230.28  # CT_KERNEL_V_2_6_30 is not set
  230.29  # CT_KERNEL_V_2_6_29_6 is not set
  230.30  # CT_KERNEL_V_2_6_28_10 is not set
  230.31 -# CT_KERNEL_V_2_6_27_35 is not set
  230.32 -# CT_KERNEL_V_2_6_26_8 is not set
  230.33 -# CT_KERNEL_V_2_6_25_20 is not set
  230.34 -# CT_KERNEL_V_2_6_24_7 is not set
  230.35 -# CT_KERNEL_V_2_6_23_17 is not set
  230.36 -# CT_KERNEL_V_2_6_22_19 is not set
  230.37 -# CT_KERNEL_V_2_6_21_7 is not set
  230.38 -# CT_KERNEL_V_2_6_20_21 is not set
  230.39 -# CT_KERNEL_V_2_6_19_7 is not set
  230.40 -# CT_KERNEL_V_2_6_18_8 is not set
  230.41 -# CT_KERNEL_V_select is not set
  230.42 +# CT_KERNEL_V_2_6_27_38 is not set
  230.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  230.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  230.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  230.46 @@ -212,26 +207,13 @@
  230.47  #
  230.48  # GNU binutils
  230.49  #
  230.50 -CT_BINUTILS_VERSION="2.19.1"
  230.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  230.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  230.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  230.54 +# CT_BINUTILS_V_2_20 is not set
  230.55  CT_BINUTILS_V_2_19_1=y
  230.56  # CT_BINUTILS_V_2_19 is not set
  230.57 -# CT_BINUTILS_V_2_18_93 is not set
  230.58 -# CT_BINUTILS_V_2_18_92 is not set
  230.59 -# CT_BINUTILS_V_2_18_91 is not set
  230.60 -# CT_BINUTILS_V_2_18_90 is not set
  230.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  230.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  230.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  230.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  230.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  230.66  # CT_BINUTILS_V_2_18 is not set
  230.67  # CT_BINUTILS_V_2_17 is not set
  230.68  # CT_BINUTILS_V_2_16_1 is not set
  230.69 -# CT_BINUTILS_V_2_15 is not set
  230.70 -# CT_BINUTILS_V_2_14 is not set
  230.71 +CT_BINUTILS_VERSION="2.19.1"
  230.72  CT_BINUTILS_EXTRA_CONFIG=""
  230.73  CT_BINUTILS_FOR_TARGET=y
  230.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  230.75 @@ -243,6 +225,7 @@
  230.76  CT_CC="gcc"
  230.77  CT_CC_VERSION="4.3.2"
  230.78  CT_CC_gcc=y
  230.79 +# CT_CC_V_4_4_2 is not set
  230.80  # CT_CC_V_4_4_1 is not set
  230.81  # CT_CC_V_4_4_0 is not set
  230.82  # CT_CC_V_4_3_4 is not set
  230.83 @@ -256,16 +239,8 @@
  230.84  # CT_CC_V_4_2_1 is not set
  230.85  # CT_CC_V_4_2_0 is not set
  230.86  # CT_CC_V_4_1_2 is not set
  230.87 -# CT_CC_V_4_1_1 is not set
  230.88 -# CT_CC_V_4_1_0 is not set
  230.89  # CT_CC_V_4_0_4 is not set
  230.90 -# CT_CC_V_4_0_3 is not set
  230.91 -# CT_CC_V_4_0_2 is not set
  230.92 -# CT_CC_V_4_0_1 is not set
  230.93 -# CT_CC_V_4_0_0 is not set
  230.94  # CT_CC_V_3_4_6 is not set
  230.95 -# CT_CC_V_3_3_6 is not set
  230.96 -# CT_CC_V_3_2_3 is not set
  230.97  CT_CC_GCC_4_3_or_later=y
  230.98  # CT_CC_GCC_4_4_or_later is not set
  230.99  CT_CC_CXA_ATEXIT=y
 230.100 @@ -355,17 +330,16 @@
 230.101  #
 230.102  CT_DEBUG_dmalloc=y
 230.103  CT_DMALLOC_V_5_5_2=y
 230.104 -# CT_DMALLOC_V_5_4_3 is not set
 230.105  CT_DMALLOC_VERSION="5.5.2"
 230.106  CT_DEBUG_duma=y
 230.107  CT_DUMA_A=y
 230.108  CT_DUMA_SO=y
 230.109 -# CT_DUMA_V_2_5_15 is not set
 230.110 -CT_DUMA_V_2_5_14=y
 230.111 +CT_DUMA_V_2_5_15=y
 230.112 +# CT_DUMA_V_2_5_14 is not set
 230.113  # CT_DUMA_V_2_5_12 is not set
 230.114  # CT_DUMA_V_2_5_8 is not set
 230.115  # CT_DUMA_V_2_5_1 is not set
 230.116 -CT_DUMA_VERSION="2_5_14"
 230.117 +CT_DUMA_VERSION="2_5_15"
 230.118  CT_DEBUG_gdb=y
 230.119  CT_GDB_CROSS=y
 230.120  # CT_GDB_CROSS_STATIC is not set
 230.121 @@ -374,12 +348,8 @@
 230.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 230.123  CT_GDB_GDBSERVER=y
 230.124  CT_GDB_GDBSERVER_STATIC=y
 230.125 +# CT_GDB_V_7_0 is not set
 230.126  CT_GDB_V_6_8=y
 230.127 -# CT_GDB_V_6_7_1 is not set
 230.128 -# CT_GDB_V_6_7 is not set
 230.129 -# CT_GDB_V_6_6 is not set
 230.130 -# CT_GDB_V_6_5 is not set
 230.131 -# CT_GDB_V_6_4 is not set
 230.132  # CT_GDB_V_snapshot is not set
 230.133  CT_GDB_VERSION="6.8"
 230.134  
 230.135 @@ -391,13 +361,12 @@
 230.136  CT_NCURSES_VERSION="5.7"
 230.137  # CT_DEBUG_ltrace is not set
 230.138  CT_DEBUG_strace=y
 230.139 -# CT_STRACE_V_4_5_18 is not set
 230.140 -CT_STRACE_V_4_5_17=y
 230.141 +# CT_STRACE_V_4_5_19 is not set
 230.142 +CT_STRACE_V_4_5_18=y
 230.143 +# CT_STRACE_V_4_5_17 is not set
 230.144  # CT_STRACE_V_4_5_16 is not set
 230.145  # CT_STRACE_V_4_5_15 is not set
 230.146 -# CT_STRACE_V_4_5_14 is not set
 230.147 -# CT_STRACE_V_4_5 is not set
 230.148 -CT_STRACE_VERSION="4.5.17"
 230.149 +CT_STRACE_VERSION="4.5.18"
 230.150  
 230.151  #
 230.152  # Tools facilities
 230.153 @@ -413,11 +382,11 @@
 230.154  #
 230.155  CT_WRAPPER_NEEDED=y
 230.156  CT_GMP_MPFR=y
 230.157 -# CT_GMP_V_4_3_1 is not set
 230.158 +CT_GMP_V_4_3_1=y
 230.159  # CT_GMP_V_4_3_0 is not set
 230.160 -CT_GMP_V_4_2_4=y
 230.161 +# CT_GMP_V_4_2_4 is not set
 230.162  # CT_GMP_V_4_2_2 is not set
 230.163 -CT_GMP_VERSION="4.2.4"
 230.164 +CT_GMP_VERSION="4.3.1"
 230.165  CT_MPFR_V_2_4_1=y
 230.166  # CT_MPFR_V_2_4_0 is not set
 230.167  # CT_MPFR_V_2_3_2 is not set
   231.1 --- a/samples/powerpc64-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   231.2 +++ b/samples/powerpc64-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   231.3 @@ -1,7 +1,7 @@
   231.4  #
   231.5  # Automatically generated make config: don't edit
   231.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   231.7 -# Sun Oct  4 12:52:00 2009
   231.8 +# crosstool-NG version: hg_default@1596_241387704817
   231.9 +# Wed Oct 28 23:19:09 2009
  231.10  #
  231.11  
  231.12  #
  231.13 @@ -169,8 +169,13 @@
  231.14  CT_KERNEL_linux=y
  231.15  CT_KERNEL_LINUX_INSTALL=y
  231.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  231.17 +# CT_KERNEL_V_2_6_31_5 is not set
  231.18 +# CT_KERNEL_V_2_6_31_4 is not set
  231.19 +# CT_KERNEL_V_2_6_31_3 is not set
  231.20 +# CT_KERNEL_V_2_6_31_2 is not set
  231.21  CT_KERNEL_V_2_6_31_1=y
  231.22  # CT_KERNEL_V_2_6_31 is not set
  231.23 +# CT_KERNEL_V_3_6_30_9 is not set
  231.24  # CT_KERNEL_V_3_6_30_8 is not set
  231.25  # CT_KERNEL_V_3_6_30_7 is not set
  231.26  # CT_KERNEL_V_2_6_30_6 is not set
  231.27 @@ -182,17 +187,7 @@
  231.28  # CT_KERNEL_V_2_6_30 is not set
  231.29  # CT_KERNEL_V_2_6_29_6 is not set
  231.30  # CT_KERNEL_V_2_6_28_10 is not set
  231.31 -# CT_KERNEL_V_2_6_27_35 is not set
  231.32 -# CT_KERNEL_V_2_6_26_8 is not set
  231.33 -# CT_KERNEL_V_2_6_25_20 is not set
  231.34 -# CT_KERNEL_V_2_6_24_7 is not set
  231.35 -# CT_KERNEL_V_2_6_23_17 is not set
  231.36 -# CT_KERNEL_V_2_6_22_19 is not set
  231.37 -# CT_KERNEL_V_2_6_21_7 is not set
  231.38 -# CT_KERNEL_V_2_6_20_21 is not set
  231.39 -# CT_KERNEL_V_2_6_19_7 is not set
  231.40 -# CT_KERNEL_V_2_6_18_8 is not set
  231.41 -# CT_KERNEL_V_select is not set
  231.42 +# CT_KERNEL_V_2_6_27_38 is not set
  231.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  231.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  231.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  231.46 @@ -213,26 +208,13 @@
  231.47  #
  231.48  # GNU binutils
  231.49  #
  231.50 -CT_BINUTILS_VERSION="2.19.1"
  231.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  231.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  231.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  231.54 +# CT_BINUTILS_V_2_20 is not set
  231.55  CT_BINUTILS_V_2_19_1=y
  231.56  # CT_BINUTILS_V_2_19 is not set
  231.57 -# CT_BINUTILS_V_2_18_93 is not set
  231.58 -# CT_BINUTILS_V_2_18_92 is not set
  231.59 -# CT_BINUTILS_V_2_18_91 is not set
  231.60 -# CT_BINUTILS_V_2_18_90 is not set
  231.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  231.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  231.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  231.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  231.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  231.66  # CT_BINUTILS_V_2_18 is not set
  231.67  # CT_BINUTILS_V_2_17 is not set
  231.68  # CT_BINUTILS_V_2_16_1 is not set
  231.69 -# CT_BINUTILS_V_2_15 is not set
  231.70 -# CT_BINUTILS_V_2_14 is not set
  231.71 +CT_BINUTILS_VERSION="2.19.1"
  231.72  CT_BINUTILS_EXTRA_CONFIG=""
  231.73  CT_BINUTILS_FOR_TARGET=y
  231.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  231.75 @@ -244,6 +226,7 @@
  231.76  CT_CC="gcc"
  231.77  CT_CC_VERSION="4.3.2"
  231.78  CT_CC_gcc=y
  231.79 +# CT_CC_V_4_4_2 is not set
  231.80  # CT_CC_V_4_4_1 is not set
  231.81  # CT_CC_V_4_4_0 is not set
  231.82  # CT_CC_V_4_3_4 is not set
  231.83 @@ -257,16 +240,8 @@
  231.84  # CT_CC_V_4_2_1 is not set
  231.85  # CT_CC_V_4_2_0 is not set
  231.86  # CT_CC_V_4_1_2 is not set
  231.87 -# CT_CC_V_4_1_1 is not set
  231.88 -# CT_CC_V_4_1_0 is not set
  231.89  # CT_CC_V_4_0_4 is not set
  231.90 -# CT_CC_V_4_0_3 is not set
  231.91 -# CT_CC_V_4_0_2 is not set
  231.92 -# CT_CC_V_4_0_1 is not set
  231.93 -# CT_CC_V_4_0_0 is not set
  231.94  # CT_CC_V_3_4_6 is not set
  231.95 -# CT_CC_V_3_3_6 is not set
  231.96 -# CT_CC_V_3_2_3 is not set
  231.97  CT_CC_GCC_4_3_or_later=y
  231.98  # CT_CC_GCC_4_4_or_later is not set
  231.99  CT_CC_CXA_ATEXIT=y
 231.100 @@ -347,17 +322,16 @@
 231.101  #
 231.102  CT_DEBUG_dmalloc=y
 231.103  CT_DMALLOC_V_5_5_2=y
 231.104 -# CT_DMALLOC_V_5_4_3 is not set
 231.105  CT_DMALLOC_VERSION="5.5.2"
 231.106  CT_DEBUG_duma=y
 231.107  CT_DUMA_A=y
 231.108  CT_DUMA_SO=y
 231.109 -# CT_DUMA_V_2_5_15 is not set
 231.110 -CT_DUMA_V_2_5_14=y
 231.111 +CT_DUMA_V_2_5_15=y
 231.112 +# CT_DUMA_V_2_5_14 is not set
 231.113  # CT_DUMA_V_2_5_12 is not set
 231.114  # CT_DUMA_V_2_5_8 is not set
 231.115  # CT_DUMA_V_2_5_1 is not set
 231.116 -CT_DUMA_VERSION="2_5_14"
 231.117 +CT_DUMA_VERSION="2_5_15"
 231.118  CT_DEBUG_gdb=y
 231.119  CT_GDB_CROSS=y
 231.120  # CT_GDB_CROSS_STATIC is not set
 231.121 @@ -367,12 +341,8 @@
 231.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 231.123  CT_GDB_GDBSERVER=y
 231.124  CT_GDB_GDBSERVER_STATIC=y
 231.125 +# CT_GDB_V_7_0 is not set
 231.126  CT_GDB_V_6_8=y
 231.127 -# CT_GDB_V_6_7_1 is not set
 231.128 -# CT_GDB_V_6_7 is not set
 231.129 -# CT_GDB_V_6_6 is not set
 231.130 -# CT_GDB_V_6_5 is not set
 231.131 -# CT_GDB_V_6_4 is not set
 231.132  # CT_GDB_V_snapshot is not set
 231.133  CT_GDB_VERSION="6.8"
 231.134  
 231.135 @@ -384,13 +354,12 @@
 231.136  CT_NCURSES_VERSION="5.7"
 231.137  # CT_DEBUG_ltrace is not set
 231.138  CT_DEBUG_strace=y
 231.139 -# CT_STRACE_V_4_5_18 is not set
 231.140 -CT_STRACE_V_4_5_17=y
 231.141 +# CT_STRACE_V_4_5_19 is not set
 231.142 +CT_STRACE_V_4_5_18=y
 231.143 +# CT_STRACE_V_4_5_17 is not set
 231.144  # CT_STRACE_V_4_5_16 is not set
 231.145  # CT_STRACE_V_4_5_15 is not set
 231.146 -# CT_STRACE_V_4_5_14 is not set
 231.147 -# CT_STRACE_V_4_5 is not set
 231.148 -CT_STRACE_VERSION="4.5.17"
 231.149 +CT_STRACE_VERSION="4.5.18"
 231.150  
 231.151  #
 231.152  # Tools facilities
 231.153 @@ -406,11 +375,11 @@
 231.154  #
 231.155  CT_WRAPPER_NEEDED=y
 231.156  CT_GMP_MPFR=y
 231.157 -# CT_GMP_V_4_3_1 is not set
 231.158 +CT_GMP_V_4_3_1=y
 231.159  # CT_GMP_V_4_3_0 is not set
 231.160 -CT_GMP_V_4_2_4=y
 231.161 +# CT_GMP_V_4_2_4 is not set
 231.162  # CT_GMP_V_4_2_2 is not set
 231.163 -CT_GMP_VERSION="4.2.4"
 231.164 +CT_GMP_VERSION="4.3.1"
 231.165  CT_MPFR_V_2_4_1=y
 231.166  # CT_MPFR_V_2_4_0 is not set
 231.167  # CT_MPFR_V_2_3_2 is not set
   232.1 --- a/samples/sh4-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   232.2 +++ b/samples/sh4-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   232.3 @@ -1,7 +1,7 @@
   232.4  #
   232.5  # Automatically generated make config: don't edit
   232.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   232.7 -# Sun Oct  4 12:52:14 2009
   232.8 +# crosstool-NG version: hg_default@1596_241387704817
   232.9 +# Wed Oct 28 23:19:40 2009
  232.10  #
  232.11  
  232.12  #
  232.13 @@ -171,8 +171,13 @@
  232.14  CT_KERNEL_linux=y
  232.15  CT_KERNEL_LINUX_INSTALL=y
  232.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  232.17 +# CT_KERNEL_V_2_6_31_5 is not set
  232.18 +# CT_KERNEL_V_2_6_31_4 is not set
  232.19 +# CT_KERNEL_V_2_6_31_3 is not set
  232.20 +# CT_KERNEL_V_2_6_31_2 is not set
  232.21  CT_KERNEL_V_2_6_31_1=y
  232.22  # CT_KERNEL_V_2_6_31 is not set
  232.23 +# CT_KERNEL_V_3_6_30_9 is not set
  232.24  # CT_KERNEL_V_3_6_30_8 is not set
  232.25  # CT_KERNEL_V_3_6_30_7 is not set
  232.26  # CT_KERNEL_V_2_6_30_6 is not set
  232.27 @@ -184,17 +189,7 @@
  232.28  # CT_KERNEL_V_2_6_30 is not set
  232.29  # CT_KERNEL_V_2_6_29_6 is not set
  232.30  # CT_KERNEL_V_2_6_28_10 is not set
  232.31 -# CT_KERNEL_V_2_6_27_35 is not set
  232.32 -# CT_KERNEL_V_2_6_26_8 is not set
  232.33 -# CT_KERNEL_V_2_6_25_20 is not set
  232.34 -# CT_KERNEL_V_2_6_24_7 is not set
  232.35 -# CT_KERNEL_V_2_6_23_17 is not set
  232.36 -# CT_KERNEL_V_2_6_22_19 is not set
  232.37 -# CT_KERNEL_V_2_6_21_7 is not set
  232.38 -# CT_KERNEL_V_2_6_20_21 is not set
  232.39 -# CT_KERNEL_V_2_6_19_7 is not set
  232.40 -# CT_KERNEL_V_2_6_18_8 is not set
  232.41 -# CT_KERNEL_V_select is not set
  232.42 +# CT_KERNEL_V_2_6_27_38 is not set
  232.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  232.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  232.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  232.46 @@ -215,26 +210,13 @@
  232.47  #
  232.48  # GNU binutils
  232.49  #
  232.50 -CT_BINUTILS_VERSION="2.19"
  232.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  232.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  232.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  232.54 +# CT_BINUTILS_V_2_20 is not set
  232.55  # CT_BINUTILS_V_2_19_1 is not set
  232.56  CT_BINUTILS_V_2_19=y
  232.57 -# CT_BINUTILS_V_2_18_93 is not set
  232.58 -# CT_BINUTILS_V_2_18_92 is not set
  232.59 -# CT_BINUTILS_V_2_18_91 is not set
  232.60 -# CT_BINUTILS_V_2_18_90 is not set
  232.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  232.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  232.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  232.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  232.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  232.66  # CT_BINUTILS_V_2_18 is not set
  232.67  # CT_BINUTILS_V_2_17 is not set
  232.68  # CT_BINUTILS_V_2_16_1 is not set
  232.69 -# CT_BINUTILS_V_2_15 is not set
  232.70 -# CT_BINUTILS_V_2_14 is not set
  232.71 +CT_BINUTILS_VERSION="2.19"
  232.72  CT_BINUTILS_EXTRA_CONFIG=""
  232.73  # CT_BINUTILS_FOR_TARGET is not set
  232.74  
  232.75 @@ -244,6 +226,7 @@
  232.76  CT_CC="gcc"
  232.77  CT_CC_VERSION="4.3.2"
  232.78  CT_CC_gcc=y
  232.79 +# CT_CC_V_4_4_2 is not set
  232.80  # CT_CC_V_4_4_1 is not set
  232.81  # CT_CC_V_4_4_0 is not set
  232.82  # CT_CC_V_4_3_4 is not set
  232.83 @@ -257,16 +240,8 @@
  232.84  # CT_CC_V_4_2_1 is not set
  232.85  # CT_CC_V_4_2_0 is not set
  232.86  # CT_CC_V_4_1_2 is not set
  232.87 -# CT_CC_V_4_1_1 is not set
  232.88 -# CT_CC_V_4_1_0 is not set
  232.89  # CT_CC_V_4_0_4 is not set
  232.90 -# CT_CC_V_4_0_3 is not set
  232.91 -# CT_CC_V_4_0_2 is not set
  232.92 -# CT_CC_V_4_0_1 is not set
  232.93 -# CT_CC_V_4_0_0 is not set
  232.94  # CT_CC_V_3_4_6 is not set
  232.95 -# CT_CC_V_3_3_6 is not set
  232.96 -# CT_CC_V_3_2_3 is not set
  232.97  CT_CC_GCC_4_3_or_later=y
  232.98  # CT_CC_GCC_4_4_or_later is not set
  232.99  CT_CC_CXA_ATEXIT=y
   233.1 --- a/samples/x86_64-unknown-linux-gnu/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   233.2 +++ b/samples/x86_64-unknown-linux-gnu/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   233.3 @@ -1,7 +1,7 @@
   233.4  #
   233.5  # Automatically generated make config: don't edit
   233.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   233.7 -# Sun Oct  4 12:52:36 2009
   233.8 +# crosstool-NG version: hg_default@1596_241387704817
   233.9 +# Wed Oct 28 23:20:03 2009
  233.10  #
  233.11  
  233.12  #
  233.13 @@ -167,8 +167,13 @@
  233.14  CT_KERNEL_linux=y
  233.15  CT_KERNEL_LINUX_INSTALL=y
  233.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  233.17 +# CT_KERNEL_V_2_6_31_5 is not set
  233.18 +# CT_KERNEL_V_2_6_31_4 is not set
  233.19 +# CT_KERNEL_V_2_6_31_3 is not set
  233.20 +# CT_KERNEL_V_2_6_31_2 is not set
  233.21  CT_KERNEL_V_2_6_31_1=y
  233.22  # CT_KERNEL_V_2_6_31 is not set
  233.23 +# CT_KERNEL_V_3_6_30_9 is not set
  233.24  # CT_KERNEL_V_3_6_30_8 is not set
  233.25  # CT_KERNEL_V_3_6_30_7 is not set
  233.26  # CT_KERNEL_V_2_6_30_6 is not set
  233.27 @@ -180,17 +185,7 @@
  233.28  # CT_KERNEL_V_2_6_30 is not set
  233.29  # CT_KERNEL_V_2_6_29_6 is not set
  233.30  # CT_KERNEL_V_2_6_28_10 is not set
  233.31 -# CT_KERNEL_V_2_6_27_35 is not set
  233.32 -# CT_KERNEL_V_2_6_26_8 is not set
  233.33 -# CT_KERNEL_V_2_6_25_20 is not set
  233.34 -# CT_KERNEL_V_2_6_24_7 is not set
  233.35 -# CT_KERNEL_V_2_6_23_17 is not set
  233.36 -# CT_KERNEL_V_2_6_22_19 is not set
  233.37 -# CT_KERNEL_V_2_6_21_7 is not set
  233.38 -# CT_KERNEL_V_2_6_20_21 is not set
  233.39 -# CT_KERNEL_V_2_6_19_7 is not set
  233.40 -# CT_KERNEL_V_2_6_18_8 is not set
  233.41 -# CT_KERNEL_V_select is not set
  233.42 +# CT_KERNEL_V_2_6_27_38 is not set
  233.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  233.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  233.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  233.46 @@ -211,26 +206,13 @@
  233.47  #
  233.48  # GNU binutils
  233.49  #
  233.50 -CT_BINUTILS_VERSION="2.19.1"
  233.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  233.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  233.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  233.54 +# CT_BINUTILS_V_2_20 is not set
  233.55  CT_BINUTILS_V_2_19_1=y
  233.56  # CT_BINUTILS_V_2_19 is not set
  233.57 -# CT_BINUTILS_V_2_18_93 is not set
  233.58 -# CT_BINUTILS_V_2_18_92 is not set
  233.59 -# CT_BINUTILS_V_2_18_91 is not set
  233.60 -# CT_BINUTILS_V_2_18_90 is not set
  233.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  233.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  233.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  233.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  233.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  233.66  # CT_BINUTILS_V_2_18 is not set
  233.67  # CT_BINUTILS_V_2_17 is not set
  233.68  # CT_BINUTILS_V_2_16_1 is not set
  233.69 -# CT_BINUTILS_V_2_15 is not set
  233.70 -# CT_BINUTILS_V_2_14 is not set
  233.71 +CT_BINUTILS_VERSION="2.19.1"
  233.72  CT_BINUTILS_EXTRA_CONFIG=""
  233.73  CT_BINUTILS_FOR_TARGET=y
  233.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  233.75 @@ -242,6 +224,7 @@
  233.76  CT_CC="gcc"
  233.77  CT_CC_VERSION="4.3.2"
  233.78  CT_CC_gcc=y
  233.79 +# CT_CC_V_4_4_2 is not set
  233.80  # CT_CC_V_4_4_1 is not set
  233.81  # CT_CC_V_4_4_0 is not set
  233.82  # CT_CC_V_4_3_4 is not set
  233.83 @@ -255,16 +238,8 @@
  233.84  # CT_CC_V_4_2_1 is not set
  233.85  # CT_CC_V_4_2_0 is not set
  233.86  # CT_CC_V_4_1_2 is not set
  233.87 -# CT_CC_V_4_1_1 is not set
  233.88 -# CT_CC_V_4_1_0 is not set
  233.89  # CT_CC_V_4_0_4 is not set
  233.90 -# CT_CC_V_4_0_3 is not set
  233.91 -# CT_CC_V_4_0_2 is not set
  233.92 -# CT_CC_V_4_0_1 is not set
  233.93 -# CT_CC_V_4_0_0 is not set
  233.94  # CT_CC_V_3_4_6 is not set
  233.95 -# CT_CC_V_3_3_6 is not set
  233.96 -# CT_CC_V_3_2_3 is not set
  233.97  CT_CC_GCC_4_3_or_later=y
  233.98  # CT_CC_GCC_4_4_or_later is not set
  233.99  CT_CC_CXA_ATEXIT=y
 233.100 @@ -341,17 +316,16 @@
 233.101  #
 233.102  CT_DEBUG_dmalloc=y
 233.103  CT_DMALLOC_V_5_5_2=y
 233.104 -# CT_DMALLOC_V_5_4_3 is not set
 233.105  CT_DMALLOC_VERSION="5.5.2"
 233.106  CT_DEBUG_duma=y
 233.107  CT_DUMA_A=y
 233.108  CT_DUMA_SO=y
 233.109 -# CT_DUMA_V_2_5_15 is not set
 233.110 -CT_DUMA_V_2_5_14=y
 233.111 +CT_DUMA_V_2_5_15=y
 233.112 +# CT_DUMA_V_2_5_14 is not set
 233.113  # CT_DUMA_V_2_5_12 is not set
 233.114  # CT_DUMA_V_2_5_8 is not set
 233.115  # CT_DUMA_V_2_5_1 is not set
 233.116 -CT_DUMA_VERSION="2_5_14"
 233.117 +CT_DUMA_VERSION="2_5_15"
 233.118  CT_DEBUG_gdb=y
 233.119  CT_GDB_CROSS=y
 233.120  # CT_GDB_CROSS_STATIC is not set
 233.121 @@ -360,12 +334,8 @@
 233.122  CT_GDB_NATIVE_USE_GMP_MPFR=y
 233.123  CT_GDB_GDBSERVER=y
 233.124  CT_GDB_GDBSERVER_STATIC=y
 233.125 +# CT_GDB_V_7_0 is not set
 233.126  CT_GDB_V_6_8=y
 233.127 -# CT_GDB_V_6_7_1 is not set
 233.128 -# CT_GDB_V_6_7 is not set
 233.129 -# CT_GDB_V_6_6 is not set
 233.130 -# CT_GDB_V_6_5 is not set
 233.131 -# CT_GDB_V_6_4 is not set
 233.132  # CT_GDB_V_snapshot is not set
 233.133  CT_GDB_VERSION="6.8"
 233.134  
 233.135 @@ -376,19 +346,18 @@
 233.136  # CT_NCURSES_V_5_6 is not set
 233.137  CT_NCURSES_VERSION="5.7"
 233.138  CT_DEBUG_ltrace=y
 233.139 -# CT_LTRACE_V_0_5_2 is not set
 233.140 +CT_LTRACE_V_0_5_2=y
 233.141  # CT_LTRACE_V_0_5_1 is not set
 233.142 -CT_LTRACE_V_0_5=y
 233.143 +# CT_LTRACE_V_0_5 is not set
 233.144  # CT_LTRACE_V_0_4 is not set
 233.145 -CT_LTRACE_VERSION="0.5"
 233.146 +CT_LTRACE_VERSION="0.5.2"
 233.147  CT_DEBUG_strace=y
 233.148 -# CT_STRACE_V_4_5_18 is not set
 233.149 -CT_STRACE_V_4_5_17=y
 233.150 +# CT_STRACE_V_4_5_19 is not set
 233.151 +CT_STRACE_V_4_5_18=y
 233.152 +# CT_STRACE_V_4_5_17 is not set
 233.153  # CT_STRACE_V_4_5_16 is not set
 233.154  # CT_STRACE_V_4_5_15 is not set
 233.155 -# CT_STRACE_V_4_5_14 is not set
 233.156 -# CT_STRACE_V_4_5 is not set
 233.157 -CT_STRACE_VERSION="4.5.17"
 233.158 +CT_STRACE_VERSION="4.5.18"
 233.159  
 233.160  #
 233.161  # Tools facilities
 233.162 @@ -408,11 +377,11 @@
 233.163  #
 233.164  CT_WRAPPER_NEEDED=y
 233.165  CT_GMP_MPFR=y
 233.166 -# CT_GMP_V_4_3_1 is not set
 233.167 +CT_GMP_V_4_3_1=y
 233.168  # CT_GMP_V_4_3_0 is not set
 233.169 -CT_GMP_V_4_2_4=y
 233.170 +# CT_GMP_V_4_2_4 is not set
 233.171  # CT_GMP_V_4_2_2 is not set
 233.172 -CT_GMP_VERSION="4.2.4"
 233.173 +CT_GMP_VERSION="4.3.1"
 233.174  CT_MPFR_V_2_4_1=y
 233.175  # CT_MPFR_V_2_4_0 is not set
 233.176  # CT_MPFR_V_2_3_2 is not set
   234.1 --- a/samples/x86_64-unknown-linux-uclibc/crosstool.config	Wed Oct 28 12:03:38 2009 +0100
   234.2 +++ b/samples/x86_64-unknown-linux-uclibc/crosstool.config	Thu Oct 29 00:10:06 2009 +0100
   234.3 @@ -1,7 +1,7 @@
   234.4  #
   234.5  # Automatically generated make config: don't edit
   234.6 -# crosstool-NG version: hg_default@1562_fdf936326ccd
   234.7 -# Sun Oct  4 12:52:44 2009
   234.8 +# crosstool-NG version: hg_default@1596_241387704817
   234.9 +# Wed Oct 28 23:20:18 2009
  234.10  #
  234.11  
  234.12  #
  234.13 @@ -167,8 +167,13 @@
  234.14  CT_KERNEL_linux=y
  234.15  CT_KERNEL_LINUX_INSTALL=y
  234.16  CT_KERNEL_LINUX_INSTALL_CHECK=y
  234.17 +# CT_KERNEL_V_2_6_31_5 is not set
  234.18 +# CT_KERNEL_V_2_6_31_4 is not set
  234.19 +# CT_KERNEL_V_2_6_31_3 is not set
  234.20 +# CT_KERNEL_V_2_6_31_2 is not set
  234.21  CT_KERNEL_V_2_6_31_1=y
  234.22  # CT_KERNEL_V_2_6_31 is not set
  234.23 +# CT_KERNEL_V_3_6_30_9 is not set
  234.24  # CT_KERNEL_V_3_6_30_8 is not set
  234.25  # CT_KERNEL_V_3_6_30_7 is not set
  234.26  # CT_KERNEL_V_2_6_30_6 is not set
  234.27 @@ -180,17 +185,7 @@
  234.28  # CT_KERNEL_V_2_6_30 is not set
  234.29  # CT_KERNEL_V_2_6_29_6 is not set
  234.30  # CT_KERNEL_V_2_6_28_10 is not set
  234.31 -# CT_KERNEL_V_2_6_27_35 is not set
  234.32 -# CT_KERNEL_V_2_6_26_8 is not set
  234.33 -# CT_KERNEL_V_2_6_25_20 is not set
  234.34 -# CT_KERNEL_V_2_6_24_7 is not set
  234.35 -# CT_KERNEL_V_2_6_23_17 is not set
  234.36 -# CT_KERNEL_V_2_6_22_19 is not set
  234.37 -# CT_KERNEL_V_2_6_21_7 is not set
  234.38 -# CT_KERNEL_V_2_6_20_21 is not set
  234.39 -# CT_KERNEL_V_2_6_19_7 is not set
  234.40 -# CT_KERNEL_V_2_6_18_8 is not set
  234.41 -# CT_KERNEL_V_select is not set
  234.42 +# CT_KERNEL_V_2_6_27_38 is not set
  234.43  CT_KERNEL_LINUX_VERBOSITY_0=y
  234.44  # CT_KERNEL_LINUX_VERBOSITY_1 is not set
  234.45  # CT_KERNEL_LINUX_VERBOSITY_2 is not set
  234.46 @@ -211,26 +206,13 @@
  234.47  #
  234.48  # GNU binutils
  234.49  #
  234.50 -CT_BINUTILS_VERSION="2.19.1"
  234.51 -# CT_BINUTILS_V_2_19_51_0_2 is not set
  234.52 -# CT_BINUTILS_V_2_19_51_0_1 is not set
  234.53 -# CT_BINUTILS_V_2_19_50_0_1 is not set
  234.54 +# CT_BINUTILS_V_2_20 is not set
  234.55  CT_BINUTILS_V_2_19_1=y
  234.56  # CT_BINUTILS_V_2_19 is not set
  234.57 -# CT_BINUTILS_V_2_18_93 is not set
  234.58 -# CT_BINUTILS_V_2_18_92 is not set
  234.59 -# CT_BINUTILS_V_2_18_91 is not set
  234.60 -# CT_BINUTILS_V_2_18_90 is not set
  234.61 -# CT_BINUTILS_V_2_18_50_0_9 is not set
  234.62 -# CT_BINUTILS_V_2_18_50_0_8 is not set
  234.63 -# CT_BINUTILS_V_2_18_50_0_7 is not set
  234.64 -# CT_BINUTILS_V_2_18_50_0_6 is not set
  234.65 -# CT_BINUTILS_V_2_18_50_0_4 is not set
  234.66  # CT_BINUTILS_V_2_18 is not set
  234.67  # CT_BINUTILS_V_2_17 is not set
  234.68  # CT_BINUTILS_V_2_16_1 is not set
  234.69 -# CT_BINUTILS_V_2_15 is not set
  234.70 -# CT_BINUTILS_V_2_14 is not set
  234.71 +CT_BINUTILS_VERSION="2.19.1"
  234.72  CT_BINUTILS_EXTRA_CONFIG=""
  234.73  CT_BINUTILS_FOR_TARGET=y
  234.74  CT_BINUTILS_FOR_TARGET_IBERTY=y
  234.75 @@ -242,6 +224,7 @@
  234.76  CT_CC="gcc"
  234.77  CT_CC_VERSION="4.3.2"
  234.78  CT_CC_gcc=y
  234.79 +# CT_CC_V_4_4_2 is not set
  234.80  # CT_CC_V_4_4_1 is not set
  234.81  # CT_CC_V_4_4_0 is not set
  234.82  # CT_CC_V_4_3_4 is not set
  234.83 @@ -255,16 +238,8 @@
  234.84  # CT_CC_V_4_2_1 is not set
  234.85  # CT_CC_V_4_2_0 is not set
  234.86  # CT_CC_V_4_1_2 is not set
  234.87 -# CT_CC_V_4_1_1 is not set
  234.88 -# CT_CC_V_4_1_0 is not set
  234.89  # CT_CC_V_4_0_4 is not set
  234.90 -# CT_CC_V_4_0_3 is not set
  234.91 -# CT_CC_V_4_0_2 is not set
  234.92 -# CT_CC_V_4_0_1 is not set
  234.93 -# CT_CC_V_4_0_0 is not set
  234.94  # CT_CC_V_3_4_6 is not set
  234.95 -# CT_CC_V_3_3_6 is not set
  234.96 -# CT_CC_V_3_2_3 is not set
  234.97  CT_CC_GCC_4_3_or_later=y
  234.98  # CT_CC_GCC_4_4_or_later is not set
  234.99  CT_CC_CXA_ATEXIT=y
 234.100 @@ -304,9 +279,6 @@
 234.101  # CT_LIBC_V_0_9_30 is not set
 234.102  # CT_LIBC_V_0_9_29 is not set
 234.103  # CT_LIBC_V_0_9_28_3 is not set
 234.104 -# CT_LIBC_V_0_9_28_2 is not set
 234.105 -# CT_LIBC_V_0_9_28_1 is not set
 234.106 -# CT_LIBC_V_0_9_28 is not set
 234.107  # CT_LIBC_V_snapshot is not set
 234.108  # CT_LIBC_V_specific_date is not set
 234.109  CT_LIBC_UCLIBC_0_9_30_or_later=y
 234.110 @@ -337,17 +309,16 @@
 234.111  #
 234.112  CT_DEBUG_dmalloc=y
 234.113  CT_DMALLOC_V_5_5_2=y
 234.114 -# CT_DMALLOC_V_5_4_3 is not set
 234.115  CT_DMALLOC_VERSION="5.5.2"
 234.116  CT_DEBUG_duma=y
 234.117  CT_DUMA_A=y
 234.118  CT_DUMA_SO=y
 234.119 -# CT_DUMA_V_2_5_15 is not set
 234.120 -CT_DUMA_V_2_5_14=y
 234.121 +CT_DUMA_V_2_5_15=y
 234.122 +# CT_DUMA_V_2_5_14 is not set
 234.123  # CT_DUMA_V_2_5_12 is not set
 234.124  # CT_DUMA_V_2_5_8 is not set
 234.125  # CT_DUMA_V_2_5_1 is not set
 234.126 -CT_DUMA_VERSION="2_5_14"
 234.127 +CT_DUMA_VERSION="2_5_15"
 234.128  CT_DEBUG_gdb=y
 234.129  CT_GDB_CROSS=y
 234.130  # CT_GDB_CROSS_STATIC is not set
 234.131 @@ -356,12 +327,8 @@
 234.132  CT_GDB_NATIVE_USE_GMP_MPFR=y
 234.133  CT_GDB_GDBSERVER=y
 234.134  CT_GDB_GDBSERVER_STATIC=y
 234.135 +# CT_GDB_V_7_0 is not set
 234.136  CT_GDB_V_6_8=y
 234.137 -# CT_GDB_V_6_7_1 is not set
 234.138 -# CT_GDB_V_6_7 is not set
 234.139 -# CT_GDB_V_6_6 is not set
 234.140 -# CT_GDB_V_6_5 is not set
 234.141 -# CT_GDB_V_6_4 is not set
 234.142  # CT_GDB_V_snapshot is not set
 234.143  CT_GDB_VERSION="6.8"
 234.144  
 234.145 @@ -372,19 +339,18 @@
 234.146  # CT_NCURSES_V_5_6 is not set
 234.147  CT_NCURSES_VERSION="5.7"
 234.148  CT_DEBUG_ltrace=y
 234.149 -# CT_LTRACE_V_0_5_2 is not set
 234.150 +CT_LTRACE_V_0_5_2=y
 234.151  # CT_LTRACE_V_0_5_1 is not set
 234.152 -CT_LTRACE_V_0_5=y
 234.153 +# CT_LTRACE_V_0_5 is not set
 234.154  # CT_LTRACE_V_0_4 is not set
 234.155 -CT_LTRACE_VERSION="0.5"
 234.156 +CT_LTRACE_VERSION="0.5.2"
 234.157  CT_DEBUG_strace=y
 234.158 -# CT_STRACE_V_4_5_18 is not set
 234.159 -CT_STRACE_V_4_5_17=y
 234.160 +# CT_STRACE_V_4_5_19 is not set
 234.161 +CT_STRACE_V_4_5_18=y
 234.162 +# CT_STRACE_V_4_5_17 is not set
 234.163  # CT_STRACE_V_4_5_16 is not set
 234.164  # CT_STRACE_V_4_5_15 is not set
 234.165 -# CT_STRACE_V_4_5_14 is not set
 234.166 -# CT_STRACE_V_4_5 is not set
 234.167 -CT_STRACE_VERSION="4.5.17"
 234.168 +CT_STRACE_VERSION="4.5.18"
 234.169  
 234.170  #
 234.171  # Tools facilities
 234.172 @@ -404,11 +370,11 @@
 234.173  #
 234.174  CT_WRAPPER_NEEDED=y
 234.175  CT_GMP_MPFR=y
 234.176 -# CT_GMP_V_4_3_1 is not set
 234.177 +CT_GMP_V_4_3_1=y
 234.178  # CT_GMP_V_4_3_0 is not set
 234.179 -CT_GMP_V_4_2_4=y
 234.180 +# CT_GMP_V_4_2_4 is not set
 234.181  # CT_GMP_V_4_2_2 is not set
 234.182 -CT_GMP_VERSION="4.2.4"
 234.183 +CT_GMP_VERSION="4.3.1"
 234.184  CT_MPFR_V_2_4_1=y
 234.185  # CT_MPFR_V_2_4_0 is not set
 234.186  # CT_MPFR_V_2_3_2 is not set
   235.1 --- a/scripts/addToolVersion.sh	Wed Oct 28 12:03:38 2009 +0100
   235.2 +++ b/scripts/addToolVersion.sh	Thu Oct 29 00:10:06 2009 +0100
   235.3 @@ -124,7 +124,7 @@
   235.4      case "$1" in
   235.5          # Tools:
   235.6          --gcc)      EXP=; OBS=; cat=CC;        tool=gcc;      tool_prefix=cc;;
   235.7 -        --binutils) EXP=; OBS=; cat=BINUTILS;  tool=binutils; tool_prefix=;;
   235.8 +        --binutils) EXP=; OBS=; cat=BINUTILS;  tool=binutils; tool_prefix=binutils;;
   235.9          --glibc)    EXP=; OBS=; cat=LIBC;      tool=glibc;    tool_prefix=libc;;
  235.10          --eglibc)   EXP=; OBS=; cat=LIBC;      tool=eglibc;   tool_prefix=libc;;
  235.11          --uClibc)   EXP=; OBS=; cat=LIBC;      tool=uClibc;   tool_prefix=libc;;
   236.1 --- a/scripts/patch-renumber.sh	Wed Oct 28 12:03:38 2009 +0100
   236.2 +++ b/scripts/patch-renumber.sh	Thu Oct 29 00:10:06 2009 +0100
   236.3 @@ -9,33 +9,45 @@
   236.4  
   236.5  doUsage() {
   236.6    cat <<_EOF_
   236.7 -Usage: ${myname} <dir> <base> <inc>
   236.8 -    Will renumber all patches found in <dir>, starting at <base>, and with
   236.9 -    an increment of <inc>
  236.10 -    Eg.: patch-renumber patches/gcc/4.3.1 100 10
  236.11 +Usage: ${myname} <dir> <base> <inc> [sed_re]
  236.12 +    Will renumber all patches found in 'dir', starting at 'base', and with
  236.13 +    an increment of 'inc'.
  236.14 +    If 'sed_re' is given, it is interpreted as a valid sed expression, and
  236.15 +    it will be applied to the patch name.
  236.16 +    If the environment variable FAKE is set to 'y', then the command will
  236.17 +    only be printed, and not executed (so you can check beforehand).
  236.18 +    Eg.:
  236.19 +      patch-renumber.sh patches/gcc/4.3.1 100 10
  236.20 +      patch-renumber.sh patches/gcc/4.2.4 100 10 's/(all[_-])*(gcc[-_])*//;'
  236.21  _EOF_
  236.22  }
  236.23  
  236.24 -[ $# -eq 3 ] || { doUsage; exit 1; }
  236.25 +[ $# -lt 3 -o $# -gt 4 ] && { doUsage; exit 1; }
  236.26  [ -d "${1}" ] || { doUsage; exit 1; }
  236.27  
  236.28  dir="${1}"
  236.29  cpt="${2}"
  236.30  inc="${3}"
  236.31 +sed_re="${4}"
  236.32  
  236.33  case "$(LC_ALL=C hg id "${dir}" 2>/dev/null)" in
  236.34 -    "") CMD="mv -v";;
  236.35 -    *)  CMD="hg mv";;
  236.36 +    "") CMD="";;
  236.37 +    *)  CMD="hg";;
  236.38  esac
  236.39  
  236.40 -for p in "${dir}"/*.patch; do
  236.41 +if [ "${FAKE}" = "y" ]; then
  236.42 +    CMD="echo ${CMD}"
  236.43 +fi
  236.44 +
  236.45 +for p in "${dir}"/*.patch*; do
  236.46      [ -e "${p}" ] || { echo "No such file '${p}'"; exit 1; }
  236.47 -    newname="$(printf "%03d-%s"                                 \
  236.48 -                      "${cpt}"                                  \
  236.49 -                      "$(basename "${p}"                        \
  236.50 -                        |"${sed}" -r -e 's/^[[:digit:]]+[-_]//' \
  236.51 -                       )"                                       \
  236.52 +    newname="$(printf "%03d-%s"                                     \
  236.53 +                      "${cpt}"                                      \
  236.54 +                      "$( basename "${p}"                           \
  236.55 +                          |"${sed}" -r -e 's/^[[:digit:]]+[-_]//'   \
  236.56 +                                       -e "${sed_re}"               \
  236.57 +                        )"                                          \
  236.58                )"
  236.59 -    [ "${p}" = "${dir}/${newname}" ] || ${CMD} "${p}" "${dir}/${newname}"
  236.60 +    [ "${p}" = "${dir}/${newname}" ] || ${CMD} mv -v "${p}" "${dir}/${newname}"
  236.61      cpt=$((cpt+inc))
  236.62  done