Initial revision
[openwrt.git] / toolchain / binutils / 2.14.90.0.8 / 100-uclibc-conf.patch
1 diff -urN binutils-2.14.90.0.8-001-debian/bfd/config.bfd binutils-2.14.90.0.8/bfd/config.bfd
2 --- binutils-2.14.90.0.8-001-debian/bfd/config.bfd      2004-01-14 15:07:43.000000000 -0600
3 +++ binutils-2.14.90.0.8/bfd/config.bfd 2004-02-12 14:18:14.000000000 -0600
4 @@ -121,7 +121,7 @@
5      targ_defvec=ecoffalpha_little_vec
6      targ_selvecs=bfd_elf64_alpha_vec
7      ;;
8 -  alpha*-*-linux-gnu* | alpha*-*-elf*)
9 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
10      targ_defvec=bfd_elf64_alpha_vec
11      targ_selvecs=ecoffalpha_little_vec
12      ;;
13 @@ -131,7 +131,7 @@
14    alpha*-*-*)
15      targ_defvec=ecoffalpha_little_vec
16      ;;
17 -  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
18 +  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-linux-uclibc* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
19      targ_defvec=bfd_elf64_ia64_little_vec
20      targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
21      ;;
22 @@ -208,7 +208,7 @@
23      targ_defvec=bfd_elf32_littlearm_vec
24      targ_selvecs=bfd_elf32_bigarm_vec
25      ;;
26 -  armeb-*-elf | arm*b-*-linux-gnu*)
27 +  armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
28      targ_defvec=bfd_elf32_bigarm_vec
29      targ_selvecs=bfd_elf32_littlearm_vec
30      ;;
31 @@ -216,8 +216,8 @@
32      targ_defvec=bfd_elf32_littlearm_vec
33      targ_selvecs=bfd_elf32_bigarm_vec
34      ;;
35 -  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
36 -  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks)
37 +  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \
38 +  arm*-*-conix* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks)
39      targ_defvec=bfd_elf32_littlearm_vec
40      targ_selvecs=bfd_elf32_bigarm_vec
41      ;;
42 @@ -350,7 +350,7 @@
43      ;;
44  
45  #ifdef BFD64
46 -  hppa*64*-*-linux-gnu*)
47 +  hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
48      targ_defvec=bfd_elf64_hppa_linux_vec
49      targ_selvecs=bfd_elf64_hppa_vec
50      ;;
51 @@ -361,7 +361,7 @@
52      ;;
53  #endif
54  
55 -  hppa*-*-linux-gnu* | hppa*-*-netbsd*)
56 +  hppa*-*-linux-gnu* | hppa*-*-linux-uclibc* | hppa*-*-netbsd*)
57      targ_defvec=bfd_elf32_hppa_linux_vec
58      targ_selvecs=bfd_elf32_hppa_vec
59      ;;
60 @@ -483,7 +483,7 @@
61      targ_selvecs=bfd_elf32_i386_vec
62      targ_underscore=yes
63      ;;
64 -  i[3-7]86-*-linux-gnu*)
65 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
66      targ_defvec=bfd_elf32_i386_vec
67      targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
68      targ64_selvecs=bfd_elf64_x86_64_vec
69 @@ -497,7 +497,7 @@
70      targ_defvec=bfd_elf64_x86_64_vec
71      targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
72      ;;
73 -  x86_64-*-linux-gnu*)
74 +  x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
75      targ_defvec=bfd_elf64_x86_64_vec
76      targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
77      ;;
78 @@ -672,7 +672,7 @@
79      targ_selvecs=bfd_elf32_m68k_vec
80      targ_underscore=yes
81      ;;
82 -  m68*-*-linux-gnu*)
83 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
84      targ_defvec=bfd_elf32_m68k_vec
85      targ_selvecs=m68klinux_vec
86      ;;
87 @@ -952,7 +952,8 @@
88      ;;
89  #endif
90    powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
91 -  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
92 +  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \
93 +  powerpc-*-rtems* | \
94    powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
95      targ_defvec=bfd_elf32_powerpc_vec
96      targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
97 @@ -984,8 +985,8 @@
98      targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
99      ;;
100    powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
101 -  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
102 -  powerpcle-*-rtems*)
103 +  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\
104 +  powerpcle-*-vxworks* | powerpcle-*-rtems*)
105      targ_defvec=bfd_elf32_powerpcle_vec
106      targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
107      targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
108 @@ -1141,7 +1142,7 @@
109      targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
110      targ_underscore=yes
111      ;;
112 -  sparc-*-linux-gnu*)
113 +  sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
114      targ_defvec=bfd_elf32_sparc_vec
115      targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
116      ;;
117 @@ -1188,7 +1189,7 @@
118      targ_defvec=sunos_big_vec
119      targ_underscore=yes
120      ;;
121 -  sparc64-*-linux-gnu*)
122 +  sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
123      targ_defvec=bfd_elf64_sparc_vec
124      targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
125      ;;
126 diff -urN binutils-2.14.90.0.8-001-debian/bfd/configure binutils-2.14.90.0.8/bfd/configure
127 --- binutils-2.14.90.0.8-001-debian/bfd/configure       2004-01-14 15:07:43.000000000 -0600
128 +++ binutils-2.14.90.0.8/bfd/configure  2004-02-12 14:09:10.000000000 -0600
129 @@ -1699,6 +1699,11 @@
130    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
131    ;;
132  
133 +linux-uclibc*)
134 +  lt_cv_deplibs_check_method=pass_all
135 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
136 +  ;;
137 +
138  netbsd*)
139    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
140      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
141 @@ -5278,7 +5283,7 @@
142    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
143         COREFILE=''
144         ;;
145 -  alpha*-*-linux-gnu*)
146 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
147         COREFILE=trad-core.lo
148         TRAD_HEADER='"hosts/alphalinux.h"'
149         ;;
150 @@ -5338,7 +5343,7 @@
151         COREFILE=trad-core.lo
152         TRAD_HEADER='"hosts/i386mach3.h"'
153         ;;
154 -  i[3-7]86-*-linux-gnu*)
155 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
156         COREFILE=trad-core.lo
157         TRAD_HEADER='"hosts/i386linux.h"'
158         ;;
159 @@ -5388,7 +5393,7 @@
160         COREFILE=trad-core.lo
161         TRAD_HEADER='"hosts/hp300bsd.h"'
162         ;;
163 -  m68*-*-linux-gnu*)
164 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
165         COREFILE=trad-core.lo
166         TRAD_HEADER='"hosts/m68klinux.h"'
167         ;;
168 diff -urN binutils-2.14.90.0.8-001-debian/bfd/configure.in binutils-2.14.90.0.8/bfd/configure.in
169 --- binutils-2.14.90.0.8-001-debian/bfd/configure.in    2004-01-14 15:07:43.000000000 -0600
170 +++ binutils-2.14.90.0.8/bfd/configure.in       2004-02-12 14:09:10.000000000 -0600
171 @@ -178,7 +178,7 @@
172    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
173         COREFILE=''
174         ;;
175 -  alpha*-*-linux-gnu*)
176 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
177         COREFILE=trad-core.lo
178         TRAD_HEADER='"hosts/alphalinux.h"'
179         ;;
180 @@ -259,7 +259,7 @@
181         TRAD_HEADER='"hosts/i386mach3.h"'
182         ;;
183  changequote(,)dnl
184 -  i[3-7]86-*-linux-gnu*)
185 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
186  changequote([,])dnl
187         COREFILE=trad-core.lo
188         TRAD_HEADER='"hosts/i386linux.h"'
189 @@ -312,7 +312,7 @@
190         COREFILE=trad-core.lo
191         TRAD_HEADER='"hosts/hp300bsd.h"'
192         ;;
193 -  m68*-*-linux-gnu*)
194 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
195         COREFILE=trad-core.lo
196         TRAD_HEADER='"hosts/m68klinux.h"'
197         ;;
198 diff -urN binutils-2.14.90.0.8-001-debian/config.sub binutils-2.14.90.0.8/config.sub
199 --- binutils-2.14.90.0.8-001-debian/config.sub  2004-01-14 15:07:42.000000000 -0600
200 +++ binutils-2.14.90.0.8/config.sub     2004-02-12 14:09:10.000000000 -0600
201 @@ -118,7 +118,7 @@
202  # Here we must recognize all the valid KERNEL-OS combinations.
203  maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
204  case $maybe_os in
205 -  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
206 +  nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
207      os=-$maybe_os
208      basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
209      ;;
210 @@ -1131,7 +1131,8 @@
211               | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
212               | -chorusos* | -chorusrdb* \
213               | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
214 -             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
215 +             | -mingw32* | -linux-gnu* | -linux-uclibc* \
216 +             | -uxpv* | -beos* | -mpeix* | -udk* \
217               | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
218               | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
219               | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
220 diff -urN binutils-2.14.90.0.8-001-debian/configure binutils-2.14.90.0.8/configure
221 --- binutils-2.14.90.0.8-001-debian/configure   2004-01-14 15:07:42.000000000 -0600
222 +++ binutils-2.14.90.0.8/configure      2004-02-12 14:09:10.000000000 -0600
223 @@ -1273,6 +1273,18 @@
224    i[3456789]86-*-freebsd* | i[3456789]86-*-kfreebsd*-gnu)
225      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
226      ;;
227 +  i[3456789]86-*-linux-uclibc)
228 +    # This section makes it possible to build newlib natively on linux.
229 +    # If we are using a cross compiler then don't configure newlib.
230 +    if test x${is_cross_compiler} != xno ; then
231 +      noconfigdirs="$noconfigdirs target-newlib"
232 +    fi
233 +    noconfigdirs="$noconfigdirs target-libgloss"
234 +    # If we are not using a cross compiler, do configure newlib.
235 +    # Note however, that newlib will only be configured in this situation
236 +    # if the --with-newlib option has been given, because otherwise
237 +    # 'target-newlib' will appear in skipdirs.
238 +    ;;
239    i[3456789]86-*-linux*)
240      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
241      # not build java stuff by default.
242 diff -urN binutils-2.14.90.0.8-001-debian/configure.in binutils-2.14.90.0.8/configure.in
243 --- binutils-2.14.90.0.8-001-debian/configure.in        2004-01-14 15:07:42.000000000 -0600
244 +++ binutils-2.14.90.0.8/configure.in   2004-02-12 14:50:56.000000000 -0600
245 @@ -512,6 +512,18 @@
246    i[[3456789]]86-*-freebsd* | i[[3456789]]86-*-kfreebsd*-gnu)
247      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
248      ;;
249 +  i[[3456789]]86-*-linux-uclibc)
250 +    # This section makes it possible to build newlib natively on linux.
251 +    # If we are using a cross compiler then don't configure newlib.
252 +    if test x${is_cross_compiler} != xno ; then
253 +      noconfigdirs="$noconfigdirs target-newlib"
254 +    fi
255 +    noconfigdirs="$noconfigdirs target-libgloss"
256 +    # If we are not using a cross compiler, do configure newlib.
257 +    # Note however, that newlib will only be configured in this situation
258 +    # if the --with-newlib option has been given, because otherwise
259 +    # 'target-newlib' will appear in skipdirs.
260 +    ;;
261    i[[3456789]]86-*-linux*)
262      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
263      # not build java stuff by default.
264 diff -urN binutils-2.14.90.0.8-001-debian/gas/configure binutils-2.14.90.0.8/gas/configure
265 --- binutils-2.14.90.0.8-001-debian/gas/configure       2004-01-14 15:07:45.000000000 -0600
266 +++ binutils-2.14.90.0.8/gas/configure  2004-02-12 14:57:43.000000000 -0600
267 @@ -3215,6 +3215,11 @@
268    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
269    ;;
270  
271 +linux-uclibc*)
272 +  lt_cv_deplibs_check_method=pass_all
273 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
274 +  ;;
275 +
276  netbsd*)
277    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
278      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
279 @@ -4030,6 +4035,7 @@
280        alpha*-*-osf*)                   fmt=ecoff ;;
281        alpha*-*-linuxecoff*)            fmt=ecoff ;;
282        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
283 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
284        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
285        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
286  
287 @@ -4046,6 +4052,7 @@
288        arm*-*-conix*)                   fmt=elf ;;
289        arm-*-linux*aout*)               fmt=aout em=linux ;;
290        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
291 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
292        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
293        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
294        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
295 @@ -4059,6 +4066,7 @@
296        avr-*-*)                         fmt=elf ;;
297  
298        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
299 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
300        cris-*-*)                                fmt=multi bfd_gas=yes ;;
301  
302        d10v-*-*)                                fmt=elf ;;
303 @@ -4115,7 +4123,9 @@
304        i386-*-linux*oldld)              fmt=aout em=linux ;;
305        i386-*-linux*coff*)              fmt=coff em=linux ;;
306        i386-*-linux-gnu*)               fmt=elf em=linux ;;
307 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
308        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
309 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
310        i386-*-lynxos*)                  fmt=coff em=lynx ;;
311        i386-*-sysv[45]*)                        fmt=elf ;;
312        i386-*-solaris*)                 fmt=elf ;;
313 @@ -4175,6 +4185,7 @@
314        ia64-*-elf*)                     fmt=elf ;;
315        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
316        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
317 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
318        ia64-*-hpux*)                    fmt=elf em=hpux ;;
319        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
320  
321 @@ -4202,6 +4213,7 @@
322        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
323        m68k-*-linux*aout*)              fmt=aout em=linux ;;
324        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
325 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
326        m68k-*-uclinux*)                 fmt=elf ;;
327        m68k-*-gnu*)                     fmt=elf ;;
328        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
329 @@ -4265,6 +4277,7 @@
330        ppc-*-beos*)                     fmt=coff ;;
331        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
332        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
333 +      ppc-*-linux-uclibc* | \
334        ppc-*-linux-gnu*)                        fmt=elf em=linux
335             case "$endian" in
336                 big)  ;;
337 @@ -4292,7 +4305,9 @@
338        ppc-*-kaos*)                     fmt=elf ;;
339  
340        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
341 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
342        s390-*-linux-gnu*)               fmt=elf em=linux ;;
343 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
344  
345        sh*-*-linux*)                    fmt=elf em=linux
346             case ${cpu} in
347 @@ -4325,6 +4340,7 @@
348        sparc-*-coff)                    fmt=coff ;;
349        sparc-*-linux*aout*)             fmt=aout em=linux ;;
350        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
351 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
352        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
353        sparc-fujitsu-none)              fmt=aout ;;
354        sparc-*-elf)                     fmt=elf ;;
355 diff -urN binutils-2.14.90.0.8-001-debian/gas/configure.in binutils-2.14.90.0.8/gas/configure.in
356 --- binutils-2.14.90.0.8-001-debian/gas/configure.in    2004-01-14 15:07:45.000000000 -0600
357 +++ binutils-2.14.90.0.8/gas/configure.in       2004-02-12 14:21:06.000000000 -0600
358 @@ -194,6 +194,7 @@
359        alpha*-*-osf*)                   fmt=ecoff ;;
360        alpha*-*-linuxecoff*)            fmt=ecoff ;;
361        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
362 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
363        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
364        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
365  
366 @@ -210,6 +211,7 @@
367        arm*-*-conix*)                   fmt=elf ;;
368        arm-*-linux*aout*)               fmt=aout em=linux ;;
369        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
370 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
371        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
372        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
373        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
374 @@ -223,6 +225,7 @@
375        avr-*-*)                         fmt=elf ;;
376  
377        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
378 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
379        cris-*-*)                                fmt=multi bfd_gas=yes ;;
380  
381        d10v-*-*)                                fmt=elf ;;
382 @@ -279,7 +282,9 @@
383        i386-*-linux*oldld)              fmt=aout em=linux ;;
384        i386-*-linux*coff*)              fmt=coff em=linux ;;
385        i386-*-linux-gnu*)               fmt=elf em=linux ;;
386 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
387        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
388 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
389        i386-*-lynxos*)                  fmt=coff em=lynx ;;
390  changequote(,)dnl
391        i386-*-sysv[45]*)                        fmt=elf ;;
392 @@ -332,6 +337,7 @@
393        ia64-*-elf*)                     fmt=elf ;;
394        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
395        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
396 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
397        ia64-*-hpux*)                    fmt=elf em=hpux ;;
398        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
399  
400 @@ -359,6 +365,7 @@
401        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
402        m68k-*-linux*aout*)              fmt=aout em=linux ;;
403        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
404 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
405        m68k-*-uclinux*)                 fmt=elf ;;
406        m68k-*-gnu*)                     fmt=elf ;;
407        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
408 @@ -419,6 +426,7 @@
409        ppc-*-beos*)                     fmt=coff ;;
410        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
411        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
412 +      ppc-*-linux-uclibc* | \
413        ppc-*-linux-gnu*)                        fmt=elf em=linux
414             case "$endian" in
415                 big)  ;;
416 @@ -439,7 +447,9 @@
417        ppc-*-kaos*)                     fmt=elf ;;
418  
419        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
420 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
421        s390-*-linux-gnu*)               fmt=elf em=linux ;;
422 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
423  
424        sh*-*-linux*)                    fmt=elf em=linux
425             case ${cpu} in
426 @@ -472,6 +482,7 @@
427        sparc-*-coff)                    fmt=coff ;;
428        sparc-*-linux*aout*)             fmt=aout em=linux ;;
429        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
430 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
431        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
432        sparc-fujitsu-none)              fmt=aout ;;
433        sparc-*-elf)                     fmt=elf ;;
434 diff -urN binutils-2.14.90.0.8-001-debian/ld/configure binutils-2.14.90.0.8/ld/configure
435 --- binutils-2.14.90.0.8-001-debian/ld/configure        2003-05-05 16:46:49.000000000 -0500
436 +++ binutils-2.14.90.0.8/ld/configure   2004-02-12 14:09:10.000000000 -0600
437 @@ -1578,6 +1578,11 @@
438    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
439    ;;
440  
441 +linux-uclibc*)
442 +  lt_cv_deplibs_check_method=pass_all
443 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
444 +  ;;
445 +
446  netbsd*)
447    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
448      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
449 diff -urN binutils-2.14.90.0.8-001-debian/ld/configure.tgt binutils-2.14.90.0.8/ld/configure.tgt
450 --- binutils-2.14.90.0.8-001-debian/ld/configure.tgt    2004-01-14 15:07:52.000000000 -0600
451 +++ binutils-2.14.90.0.8/ld/configure.tgt       2004-02-12 14:14:12.000000000 -0600
452 @@ -30,6 +30,7 @@
453                         targ_extra_emuls="criself crislinux"
454                         targ_extra_libpath=$targ_extra_emuls ;;
455  cris-*-linux-gnu*)     targ_emul=crislinux ;;
456 +cris-*-linux-uclibc*)  targ_emul=crislinux ;;
457  cris-*-*)              targ_emul=criself
458                         targ_extra_emuls="crisaout crislinux"
459                         targ_extra_libpath=$targ_extra_emuls ;;
460 @@ -59,14 +60,16 @@
461                         tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
462                         tdir_sun4=sparc-sun-sunos4
463                         ;;
464 -sparc64-*-linux-gnu*)  targ_emul=elf64_sparc
465 +sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)         \
466 +                       targ_emul=elf64_sparc
467                         targ_extra_emuls="elf32_sparc sparclinux sun4"
468                         targ_extra_libpath=elf32_sparc
469                         tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
470                         tdir_sparclinux=${tdir_elf32_sparc}aout
471                         tdir_sun4=sparc-sun-sunos4
472                         ;;
473 -sparc*-*-linux-gnu*)   targ_emul=elf32_sparc
474 +sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \
475 +                       targ_emul=elf32_sparc
476                         targ_extra_emuls="sparclinux elf64_sparc sun4"
477                         targ_extra_libpath=elf64_sparc
478                         tdir_sparclinux=${targ_alias}aout
479 @@ -128,7 +131,7 @@
480  m68*-ericsson-ose)     targ_emul=sun3 ;;
481  m68*-apple-aux*)       targ_emul=m68kaux ;;
482  *-tandem-none)         targ_emul=st2000 ;;
483 -i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
484 +i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;;
485  i[3-7]86-*-nto-qnx*)   targ_emul=i386nto ;;
486  i[3-7]86-*-vsta)       targ_emul=vsta ;;
487  i[3-7]86-go32-rtems*)  targ_emul=i386go32 ;;
488 @@ -152,14 +155,16 @@
489                         tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
490                         ;;
491  i[3-7]86-*-linux*oldld)        targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
492 -i[3-7]86-*-linux-gnu*) targ_emul=elf_i386
493 +i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \
494 +                       targ_emul=elf_i386
495                         targ_extra_emuls=i386linux
496                         if test x${want64} = xtrue; then
497                           targ_extra_emuls="$targ_extra_emuls elf_x86_64"
498                         fi
499                         tdir_i386linux=${targ_alias}aout
500                         ;;
501 -x86_64-*-linux-gnu*)   targ_emul=elf_x86_64
502 +x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \
503 +                       targ_emul=elf_x86_64
504                         targ_extra_emuls="elf_i386 i386linux"
505                         targ_extra_libpath=elf_i386
506                         tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
507 @@ -259,10 +264,13 @@
508  arm9e-*-elf)           targ_emul=armelf ;;
509  arm-*-oabi)            targ_emul=armelf_oabi ;;
510  arm*b-*-linux-gnu*)    targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
511 +arm*b-*-linux-uclibc*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
512  arm*-*-linux-gnu*)     targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
513 +arm*-*-linux-uclibc*)  targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
514  arm*-*-uclinux*)       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
515  arm*-*-conix*)         targ_emul=armelf ;;
516 -thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
517 +thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
518 +                       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
519  strongarm-*-coff)      targ_emul=armcoff ;;
520  strongarm-*-elf)       targ_emul=armelf ;;
521  strongarm-*-kaos*)     targ_emul=armelf ;;
522 @@ -363,7 +371,8 @@
523                         targ_extra_emuls=m68kelf
524                         tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
525                         ;;
526 -m68k-*-linux-gnu*)     targ_emul=m68kelf
527 +m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
528 +                       targ_emul=m68kelf
529                         targ_extra_emuls=m68klinux
530                         tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
531                         ;;
532 @@ -380,9 +389,9 @@
533  m68*-*-psos*)          targ_emul=m68kpsos ;;
534  m68*-*-rtemscoff*)     targ_emul=m68kcoff ;;
535  m68*-*-rtems*)         targ_emul=m68kelf ;;
536 -hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
537 +hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;;
538  hppa*64*-*)            targ_emul=elf64hppa ;;
539 -hppa*-*-linux-gnu*)    targ_emul=hppalinux ;;
540 +hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)    targ_emul=hppalinux ;;
541  hppa*-*-*elf*)         targ_emul=hppaelf ;;
542  hppa*-*-lites*)                targ_emul=hppaelf ;;
543  hppa*-*-netbsd*)       targ_emul=hppanbsd ;;
544 @@ -429,16 +438,20 @@
545  mips*-*-vxworks*)      targ_emul=elf32ebmip
546                         targ_extra_emuls="elf32elmip" ;;
547  mips*-*-windiss)       targ_emul=elf32mipswindiss ;;
548 -mips64*el-*-linux-gnu*)        targ_emul=elf32ltsmipn32
549 +mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*) \
550 +                       targ_emul=elf32ltsmipn32
551                         targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
552                         ;;
553 -mips64*-*-linux-gnu*)  targ_emul=elf32btsmipn32
554 +mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*) \
555 +                       targ_emul=elf32btsmipn32
556                         targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
557                         ;;
558 -mips*el-*-linux-gnu*)  targ_emul=elf32ltsmip
559 +mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*) \
560 +                       targ_emul=elf32ltsmip
561                         targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
562                         ;;
563 -mips*-*-linux-gnu*)    targ_emul=elf32btsmip
564 +mips*-*-linux-gnu* | mips*-*-linux-uclibc*) \
565 +                       targ_emul=elf32btsmip
566                         targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
567                         ;;
568  mips*-*-lnews*)                targ_emul=mipslnews ;;
569 @@ -461,6 +474,10 @@
570  alpha*-*-linux-gnu*)   targ_emul=elf64alpha targ_extra_emuls=alpha
571                         tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
572                         ;;
573 +alpha*-*-linux-uclibc*)        targ_emul=elf64alpha targ_extra_emuls=alpha
574 +                       # The following needs to be checked...
575 +                       tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
576 +                       ;;
577  alpha*-*-osf*)         targ_emul=alpha ;;
578  alpha*-*-gnu*)         targ_emul=elf64alpha ;;
579  alpha*-*-netware*)     targ_emul=alpha ;;
580 diff -urN binutils-2.14.90.0.8-001-debian/libtool.m4 binutils-2.14.90.0.8/libtool.m4
581 --- binutils-2.14.90.0.8-001-debian/libtool.m4  2003-05-05 16:46:46.000000000 -0500
582 +++ binutils-2.14.90.0.8/libtool.m4     2004-02-12 14:09:10.000000000 -0600
583 @@ -645,6 +645,11 @@
584    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
585    ;;
586  
587 +linux-uclibc*)
588 +  lt_cv_deplibs_check_method=pass_all
589 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
590 +  ;;
591 +
592  netbsd*)
593    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
594      [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
595 diff -urN binutils-2.14.90.0.8-001-debian/ltconfig binutils-2.14.90.0.8/ltconfig
596 --- binutils-2.14.90.0.8-001-debian/ltconfig    2004-01-14 15:07:42.000000000 -0600
597 +++ binutils-2.14.90.0.8/ltconfig       2004-02-12 14:09:10.000000000 -0600
598 @@ -603,6 +603,7 @@
599  # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
600  case $host_os in
601  linux-gnu*) ;;
602 +linux-uclibc*) ;;
603  linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
604  esac
605  
606 @@ -1259,6 +1260,24 @@
607    dynamic_linker='GNU/Linux ld.so'
608    ;;
609  
610 +linux-uclibc*)
611 +  version_type=linux
612 +  need_lib_prefix=no
613 +  need_version=no
614 +  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
615 +  soname_spec='${libname}${release}.so$major'
616 +  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
617 +  shlibpath_var=LD_LIBRARY_PATH
618 +  shlibpath_overrides_runpath=no
619 +  # This implies no fast_install, which is unacceptable.
620 +  # Some rework will be needed to allow for fast_install
621 +  # before this can be enabled.
622 +  # Note: copied from linux-gnu, and may not be appropriate.
623 +  hardcode_into_libs=yes
624 +  # Assume using the uClibc dynamic linker.
625 +  dynamic_linker="uClibc ld.so"
626 +  ;;
627 +
628  netbsd*)
629    need_lib_prefix=no
630    need_version=no