Initial revision
[openwrt.git] / toolchain / binutils / 2.15.94.0.1 / 100-uclibc-conf.patch
1 diff -ur binutils-2.15.94.0.1.orig/bfd/config.bfd binutils-2.15.94.0.1/bfd/config.bfd
2 --- binutils-2.15.94.0.1.orig/bfd/config.bfd    2004-11-22 21:29:57.791886144 -0500
3 +++ binutils-2.15.94.0.1/bfd/config.bfd 2004-11-22 21:30:53.195463520 -0500
4 @@ -140,7 +140,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 @@ -150,7 +150,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 @@ -227,7 +227,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 @@ -235,8 +235,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    arm*-*-eabi* )
40      targ_defvec=bfd_elf32_littlearm_vec
41      targ_selvecs=bfd_elf32_bigarm_vec
42 @@ -381,7 +381,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 @@ -392,7 +392,7 @@
52      ;;
53  #endif
54  
55 -  hppa*-*-linux-gnu*)
56 +  hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)
57      targ_defvec=bfd_elf32_hppa_linux_vec
58      targ_selvecs=bfd_elf32_hppa_vec
59      ;;
60 @@ -525,7 +525,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 @@ -539,7 +539,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 @@ -715,7 +715,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 @@ -1001,7 +1001,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 @@ -1038,8 +1039,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 @@ -1206,7 +1207,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 @@ -1253,7 +1254,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 @@ -1322,7 +1323,7 @@
127      targ_underscore=yes
128      ;;
129  
130 -  vax-*-linux-gnu*)
131 +  vax-*-linux-gnu* | vax-*-linux-uclibc*)
132      targ_defvec=bfd_elf32_vax_vec
133      ;;
134  
135 diff -ur binutils-2.15.94.0.1.orig/bfd/configure binutils-2.15.94.0.1/bfd/configure
136 --- binutils-2.15.94.0.1.orig/bfd/configure     2004-11-22 21:29:57.794885688 -0500
137 +++ binutils-2.15.94.0.1/bfd/configure  2004-11-22 21:31:10.011907032 -0500
138 @@ -3583,6 +3583,11 @@
139    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
140    ;;
141  
142 +linux-uclibc*)
143 +  lt_cv_deplibs_check_method=pass_all
144 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
145 +  ;;
146 +
147  netbsd* | knetbsd*-gnu)
148    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
149      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
150 @@ -9914,7 +9919,7 @@
151    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
152         COREFILE=''
153         ;;
154 -  alpha*-*-linux-gnu*)
155 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
156         COREFILE=trad-core.lo
157         TRAD_HEADER='"hosts/alphalinux.h"'
158         ;;
159 @@ -9978,7 +9983,7 @@
160         COREFILE=trad-core.lo
161         TRAD_HEADER='"hosts/i386mach3.h"'
162         ;;
163 -  i[3-7]86-*-linux-gnu*)
164 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
165         COREFILE=trad-core.lo
166         TRAD_HEADER='"hosts/i386linux.h"'
167         ;;
168 @@ -10016,7 +10021,7 @@
169         COREFILE=trad-core.lo
170         TRAD_HEADER='"hosts/hp300bsd.h"'
171         ;;
172 -  m68*-*-linux-gnu*)
173 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
174         COREFILE=trad-core.lo
175         TRAD_HEADER='"hosts/m68klinux.h"'
176         ;;
177 @@ -10150,7 +10155,7 @@
178         COREFILE=trad-core.lo
179         TRAD_HEADER='"hosts/vaxult2.h"'
180         ;;
181 -  vax-*-linux-gnu*)
182 +  vax-*-linux-gnu* | vax-*-linux-uclibc*)
183         COREFILE=trad-core.lo
184         TRAD_HEADER='"hosts/vaxlinux.h"'
185         ;;
186 diff -ur binutils-2.15.94.0.1.orig/bfd/configure.in binutils-2.15.94.0.1/bfd/configure.in
187 --- binutils-2.15.94.0.1.orig/bfd/configure.in  2004-11-22 21:29:57.794885688 -0500
188 +++ binutils-2.15.94.0.1/bfd/configure.in       2004-11-22 21:31:23.225898200 -0500
189 @@ -163,7 +163,7 @@
190    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
191         COREFILE=''
192         ;;
193 -  alpha*-*-linux-gnu*)
194 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
195         COREFILE=trad-core.lo
196         TRAD_HEADER='"hosts/alphalinux.h"'
197         ;;
198 @@ -248,7 +248,7 @@
199         TRAD_HEADER='"hosts/i386mach3.h"'
200         ;;
201  changequote(,)dnl
202 -  i[3-7]86-*-linux-gnu*)
203 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
204  changequote([,])dnl
205         COREFILE=trad-core.lo
206         TRAD_HEADER='"hosts/i386linux.h"'
207 @@ -289,7 +289,7 @@
208         COREFILE=trad-core.lo
209         TRAD_HEADER='"hosts/hp300bsd.h"'
210         ;;
211 -  m68*-*-linux-gnu*)
212 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
213         COREFILE=trad-core.lo
214         TRAD_HEADER='"hosts/m68klinux.h"'
215         ;;
216 @@ -375,7 +375,7 @@
217         COREFILE=trad-core.lo
218         TRAD_HEADER='"hosts/vaxult2.h"'
219         ;;
220 -  vax-*-linux-gnu*)
221 +  vax-*-linux-gnu* | vax-*-linux-uclibc*)
222         COREFILE=trad-core.lo
223         TRAD_HEADER='"hosts/vaxlinux.h"'
224         ;;
225 diff -ur binutils-2.15.94.0.1.orig/binutils/configure binutils-2.15.94.0.1/binutils/configure
226 --- binutils-2.15.94.0.1.orig/binutils/configure        2004-11-22 21:29:57.923866080 -0500
227 +++ binutils-2.15.94.0.1/binutils/configure     2004-11-22 21:31:47.597193200 -0500
228 @@ -1575,6 +1575,11 @@
229    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
230    ;;
231  
232 +linux-uclibc*)
233 +  lt_cv_deplibs_check_method=pass_all
234 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
235 +  ;;
236 +
237  netbsd* | knetbsd*-gnu)
238    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
239      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
240 diff -ur binutils-2.15.94.0.1.orig/configure binutils-2.15.94.0.1/configure
241 --- binutils-2.15.94.0.1.orig/configure 2004-11-22 21:29:57.902869272 -0500
242 +++ binutils-2.15.94.0.1/configure      2004-11-22 21:31:47.601192592 -0500
243 @@ -1341,6 +1341,18 @@
244    i[3456789]86-*-coff | i[3456789]86-*-elf)
245      noconfigdirs="$noconfigdirs ${libgcj}"
246      ;;
247 +  i[3456789]86-*-linux-uclibc*)
248 +    # This section makes it possible to build newlib natively on linux.
249 +    # If we are using a cross compiler then don't configure newlib.
250 +    if test x${is_cross_compiler} != xno ; then
251 +      noconfigdirs="$noconfigdirs target-newlib"
252 +    fi
253 +    noconfigdirs="$noconfigdirs target-libgloss"
254 +    # If we are not using a cross compiler, do configure newlib.
255 +    # Note however, that newlib will only be configured in this situation
256 +    # if the --with-newlib option has been given, because otherwise
257 +    # 'target-newlib' will appear in skipdirs.
258 +    ;;
259    i[3456789]86-*-linux*)
260      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
261      # not build java stuff by default.
262 diff -ur binutils-2.15.94.0.1.orig/configure.in binutils-2.15.94.0.1/configure.in
263 --- binutils-2.15.94.0.1.orig/configure.in      2004-11-22 21:29:57.902869272 -0500
264 +++ binutils-2.15.94.0.1/configure.in   2004-11-22 21:31:47.606191832 -0500
265 @@ -563,6 +563,18 @@
266    i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
267      noconfigdirs="$noconfigdirs ${libgcj}"
268      ;;
269 +  i[[3456789]]86-*-linux-uclibc*)
270 +    # This section makes it possible to build newlib natively on linux.
271 +    # If we are using a cross compiler then don't configure newlib.
272 +    if test x${is_cross_compiler} != xno ; then
273 +      noconfigdirs="$noconfigdirs target-newlib"
274 +    fi
275 +    noconfigdirs="$noconfigdirs target-libgloss"
276 +    # If we are not using a cross compiler, do configure newlib.
277 +    # Note however, that newlib will only be configured in this situation
278 +    # if the --with-newlib option has been given, because otherwise
279 +    # 'target-newlib' will appear in skipdirs.
280 +    ;;
281    i[[3456789]]86-*-linux*)
282      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
283      # not build java stuff by default.
284 diff -ur binutils-2.15.94.0.1.orig/gas/configure binutils-2.15.94.0.1/gas/configure
285 --- binutils-2.15.94.0.1.orig/gas/configure     2004-11-22 21:29:58.078842520 -0500
286 +++ binutils-2.15.94.0.1/gas/configure  2004-11-22 21:34:12.759125232 -0500
287 @@ -3420,6 +3420,11 @@
288    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
289    ;;
290  
291 +linux-uclibc*)
292 +  lt_cv_deplibs_check_method=pass_all
293 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
294 +  ;;
295 +
296  netbsd* | knetbsd*-gnu)
297    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
298      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
299 @@ -4256,6 +4261,7 @@
300        alpha*-*-osf*)                   fmt=ecoff ;;
301        alpha*-*-linuxecoff*)            fmt=ecoff ;;
302        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
303 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
304        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
305        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
306  
307 @@ -4271,6 +4277,7 @@
308        arm*-*-conix*)                   fmt=elf ;;
309        arm-*-linux*aout*)               fmt=aout em=linux ;;
310        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
311 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
312        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
313        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
314        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
315 @@ -4284,6 +4291,7 @@
316  
317        cris-*-linux-gnu* | crisv32-*-linux-gnu*)
318                                         fmt=multi bfd_gas=yes em=linux ;;
319 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
320        cris-*-* | crisv32-*-*)          fmt=multi bfd_gas=yes ;;
321  
322        crx-*-elf*)                      fmt=elf ;;
323 @@ -4343,7 +4351,9 @@
324        i386-*-linux*oldld)              fmt=aout em=linux ;;
325        i386-*-linux*coff*)              fmt=coff em=linux ;;
326        i386-*-linux-gnu*)               fmt=elf em=linux ;;
327 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
328        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
329 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
330        i386-*-lynxos*)                  fmt=elf em=lynx bfd_gas=yes ;;
331        i386-*-sysv[45]*)                        fmt=elf ;;
332        i386-*-solaris*)                 fmt=elf ;;
333 @@ -4403,6 +4413,7 @@
334        ia64-*-elf*)                     fmt=elf ;;
335        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
336        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
337 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
338        ia64-*-hpux*)                    fmt=elf em=hpux ;;
339        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
340  
341 @@ -4430,6 +4441,7 @@
342        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
343        m68k-*-linux*aout*)              fmt=aout em=linux ;;
344        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
345 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
346        m68k-*-uclinux*)                 fmt=elf ;;
347        m68k-*-gnu*)                     fmt=elf ;;
348        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
349 @@ -4504,6 +4516,7 @@
350        ppc-*-beos*)                     fmt=coff ;;
351        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
352        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
353 +      ppc-*-linux-uclibc* | \
354        ppc-*-linux-gnu*)                        fmt=elf em=linux
355             case "$endian" in
356                 big)  ;;
357 @@ -4531,7 +4544,9 @@
358        ppc-*-lynxos*)                   fmt=elf em=lynx bfd_gas=yes ;;
359  
360        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
361 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
362        s390-*-linux-gnu*)               fmt=elf em=linux ;;
363 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
364  
365        sh*-*-linux*)                    fmt=elf em=linux
366             case ${cpu} in
367 @@ -4566,6 +4581,7 @@
368        sparc-*-coff)                    fmt=coff ;;
369        sparc-*-linux*aout*)             fmt=aout em=linux ;;
370        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
371 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
372        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
373        sparc-fujitsu-none)              fmt=aout ;;
374        sparc-*-elf)                     fmt=elf ;;
375 diff -ur binutils-2.15.94.0.1.orig/gas/configure.in binutils-2.15.94.0.1/gas/configure.in
376 --- binutils-2.15.94.0.1.orig/gas/configure.in  2004-11-22 21:29:58.079842368 -0500
377 +++ binutils-2.15.94.0.1/gas/configure.in       2004-11-22 21:34:12.763124624 -0500
378 @@ -202,6 +202,7 @@
379        alpha*-*-osf*)                   fmt=ecoff ;;
380        alpha*-*-linuxecoff*)            fmt=ecoff ;;
381        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
382 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
383        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
384        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
385  
386 @@ -217,6 +218,7 @@
387        arm*-*-conix*)                   fmt=elf ;;
388        arm-*-linux*aout*)               fmt=aout em=linux ;;
389        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
390 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
391        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
392        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
393        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
394 @@ -230,6 +232,7 @@
395  
396        cris-*-linux-gnu* | crisv32-*-linux-gnu*)
397                                         fmt=multi bfd_gas=yes em=linux ;;
398 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
399        cris-*-* | crisv32-*-*)          fmt=multi bfd_gas=yes ;;
400  
401        crx-*-elf*)                      fmt=elf ;;
402 @@ -289,7 +292,9 @@
403        i386-*-linux*oldld)              fmt=aout em=linux ;;
404        i386-*-linux*coff*)              fmt=coff em=linux ;;
405        i386-*-linux-gnu*)               fmt=elf em=linux ;;
406 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
407        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
408 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
409        i386-*-lynxos*)                  fmt=elf em=lynx bfd_gas=yes ;;
410  changequote(,)dnl
411        i386-*-sysv[45]*)                        fmt=elf ;;
412 @@ -342,6 +347,7 @@
413        ia64-*-elf*)                     fmt=elf ;;
414        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
415        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
416 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
417        ia64-*-hpux*)                    fmt=elf em=hpux ;;
418        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
419  
420 @@ -369,6 +375,7 @@
421        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
422        m68k-*-linux*aout*)              fmt=aout em=linux ;;
423        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
424 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
425        m68k-*-uclinux*)                 fmt=elf ;;
426        m68k-*-gnu*)                     fmt=elf ;;
427        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
428 @@ -440,6 +447,7 @@
429        ppc-*-beos*)                     fmt=coff ;;
430        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
431        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
432 +      ppc-*-linux-uclibc* | \
433        ppc-*-linux-gnu*)                        fmt=elf em=linux
434             case "$endian" in
435                 big)  ;;
436 @@ -460,7 +468,9 @@
437        ppc-*-lynxos*)                   fmt=elf em=lynx bfd_gas=yes ;;
438  
439        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
440 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
441        s390-*-linux-gnu*)               fmt=elf em=linux ;;
442 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
443  
444        sh*-*-linux*)                    fmt=elf em=linux
445             case ${cpu} in
446 @@ -491,6 +501,7 @@
447        sparc-*-coff)                    fmt=coff ;;
448        sparc-*-linux*aout*)             fmt=aout em=linux ;;
449        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
450 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
451        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
452        sparc-fujitsu-none)              fmt=aout ;;
453        sparc-*-elf)                     fmt=elf ;;
454 diff -ur binutils-2.15.94.0.1.orig/gprof/configure binutils-2.15.94.0.1/gprof/configure
455 --- binutils-2.15.94.0.1.orig/gprof/configure   2004-11-22 21:29:58.628758920 -0500
456 +++ binutils-2.15.94.0.1/gprof/configure        2004-11-22 21:34:12.777122496 -0500
457 @@ -3418,6 +3418,11 @@
458    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
459    ;;
460  
461 +linux-uclibc*)
462 +  lt_cv_deplibs_check_method=pass_all
463 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
464 +  ;;
465 +
466  netbsd* | knetbsd*-gnu)
467    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
468      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
469 diff -ur binutils-2.15.94.0.1.orig/ld/configure binutils-2.15.94.0.1/ld/configure
470 --- binutils-2.15.94.0.1.orig/ld/configure      2004-11-22 21:29:58.752740072 -0500
471 +++ binutils-2.15.94.0.1/ld/configure   2004-11-22 21:34:12.784121432 -0500
472 @@ -1579,6 +1579,11 @@
473    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
474    ;;
475  
476 +linux-uclibc*)
477 +  lt_cv_deplibs_check_method=pass_all
478 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
479 +  ;;
480 +
481  netbsd* | knetbsd*-gnu)
482    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
483      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
484 diff -ur binutils-2.15.94.0.1.orig/ld/configure.tgt binutils-2.15.94.0.1/ld/configure.tgt
485 --- binutils-2.15.94.0.1.orig/ld/configure.tgt  2004-11-22 21:29:58.753739920 -0500
486 +++ binutils-2.15.94.0.1/ld/configure.tgt       2004-11-22 21:38:50.336926992 -0500
487 @@ -32,6 +32,7 @@
488                         targ_extra_libpath=$targ_extra_emuls ;;
489  cris-*-linux-gnu* | cris-*-linux-gnu*)
490                         targ_emul=crislinux ;;
491 +cris-*-linux-uclibc*)  targ_emul=crislinux ;;
492  cris-*-* | crisv32-*-*)        targ_emul=criself
493                         targ_extra_emuls="crisaout crislinux"
494                         targ_extra_libpath=$targ_extra_emuls ;;
495 @@ -62,14 +63,16 @@
496                         tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
497                         tdir_sun4=sparc-sun-sunos4
498                         ;;
499 -sparc64-*-linux-gnu*)  targ_emul=elf64_sparc
500 +sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)         \
501 +                       targ_emul=elf64_sparc
502                         targ_extra_emuls="elf32_sparc sparclinux sun4"
503                         targ_extra_libpath=elf32_sparc
504                         tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
505                         tdir_sparclinux=${tdir_elf32_sparc}aout
506                         tdir_sun4=sparc-sun-sunos4
507                         ;;
508 -sparc*-*-linux-gnu*)   targ_emul=elf32_sparc
509 +sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \
510 +                       targ_emul=elf32_sparc
511                         targ_extra_emuls="sparclinux elf64_sparc sun4"
512                         targ_extra_libpath=elf64_sparc
513                         tdir_sparclinux=${targ_alias}aout
514 @@ -121,7 +124,9 @@
515  m32r*le-*-elf*)         targ_emul=m32rlelf ;;
516  m32r*-*-elf*)           targ_emul=m32relf ;;
517  m32r*le-*-linux-gnu*)   targ_emul=m32rlelf_linux ;;
518 +m32r*le-*-linux-uclibc*) targ_emul=m32rlelf_linux ;;
519  m32r*-*-linux-gnu*)     targ_emul=m32relf_linux ;;
520 +m32r*-*-linux-uclibc*)  targ_emul=m32relf_linux ;;
521  m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf 
522                         targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
523  m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf 
524 @@ -132,7 +137,7 @@
525  m68*-apple-aux*)       targ_emul=m68kaux ;;
526  maxq-*-coff)            targ_emul=maxqcoff;;
527  *-tandem-none)         targ_emul=st2000 ;;
528 -i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
529 +i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;;
530  i[3-7]86-*-nto-qnx*)   targ_emul=i386nto ;;
531  i[3-7]86-*-vsta)       targ_emul=vsta ;;
532  i[3-7]86-go32-rtems*)  targ_emul=i386go32 ;;
533 @@ -156,14 +161,16 @@
534                         tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
535                         ;;
536  i[3-7]86-*-linux*oldld)        targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
537 -i[3-7]86-*-linux-gnu*) targ_emul=elf_i386
538 +i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \
539 +                       targ_emul=elf_i386
540                         targ_extra_emuls=i386linux
541                         if test x${want64} = xtrue; then
542                           targ_extra_emuls="$targ_extra_emuls elf_x86_64"
543                         fi
544                         tdir_i386linux=${targ_alias}aout
545                         ;;
546 -x86_64-*-linux-gnu*)   targ_emul=elf_x86_64
547 +x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \
548 +                       targ_emul=elf_x86_64
549                         targ_extra_emuls="elf_i386 i386linux"
550                         targ_extra_libpath=elf_i386
551                         tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
552 @@ -263,11 +270,14 @@
553  arm-*-kaos*)           targ_emul=armelf ;;
554  arm9e-*-elf)           targ_emul=armelf ;;
555  arm*b-*-linux-gnu*)    targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
556 +arm*b-*-linux-uclibc*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
557  arm*-*-linux-gnueabi)  targ_emul=armelf_linux_eabi ;;
558  arm*-*-linux-gnu*)     targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
559 +arm*-*-linux-uclibc*)  targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
560  arm*-*-uclinux*)       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
561  arm*-*-conix*)         targ_emul=armelf ;;
562 -thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
563 +thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
564 +                       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
565  strongarm-*-coff)      targ_emul=armcoff ;;
566  strongarm-*-elf)       targ_emul=armelf ;;
567  strongarm-*-kaos*)     targ_emul=armelf ;;
568 @@ -371,7 +381,8 @@
569                         targ_extra_emuls=m68kelf
570                         tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
571                         ;;
572 -m68k-*-linux-gnu*)     targ_emul=m68kelf
573 +m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
574 +                       targ_emul=m68kelf
575                         targ_extra_emuls=m68klinux
576                         tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
577                         ;;
578 @@ -388,9 +399,9 @@
579  m68*-*-psos*)          targ_emul=m68kpsos ;;
580  m68*-*-rtemscoff*)     targ_emul=m68kcoff ;;
581  m68*-*-rtems*)         targ_emul=m68kelf ;;
582 -hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
583 +hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;;
584  hppa*64*-*)            targ_emul=elf64hppa ;;
585 -hppa*-*-linux-gnu*)    targ_emul=hppalinux ;;
586 +hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)    targ_emul=hppalinux ;;
587  hppa*-*-*elf*)         targ_emul=hppaelf ;;
588  hppa*-*-lites*)                targ_emul=hppaelf ;;
589  hppa*-*-netbsd*)       targ_emul=hppanbsd ;;
590 @@ -403,6 +414,7 @@
591                         targ_emul=vaxnbsd
592                         targ_extra_emuls=elf32vax ;;
593  vax-*-linux-gnu*)      targ_emul=elf32vax ;;
594 +vax-*-linux-uclibc*)   targ_emul=elf32vax ;;
595  mips*-*-pe)            targ_emul=mipspe ;
596                         targ_extra_ofiles="deffilep.o pe-dll.o" ;;
597  mips*-dec-ultrix*)     targ_emul=mipslit ;;
598 @@ -436,16 +448,16 @@
599  mips*-*-vxworks*)      targ_emul=elf32ebmip
600                         targ_extra_emuls="elf32elmip" ;;
601  mips*-*-windiss)       targ_emul=elf32mipswindiss ;;
602 -mips64*el-*-linux-gnu*)        targ_emul=elf32ltsmipn32
603 +mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*)    targ_emul=elf32ltsmipn32
604                         targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
605                         ;;
606 -mips64*-*-linux-gnu*)  targ_emul=elf32btsmipn32
607 +mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*)        targ_emul=elf32btsmipn32
608                         targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
609                         ;;
610 -mips*el-*-linux-gnu*)  targ_emul=elf32ltsmip
611 +mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*)        targ_emul=elf32ltsmip
612                         targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
613                         ;;
614 -mips*-*-linux-gnu*)    targ_emul=elf32btsmip
615 +mips*-*-linux-gnu* | mips*-*-linux-uclibc*)    targ_emul=elf32btsmip
616                         targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
617                         ;;
618  mips*-*-lnews*)                targ_emul=mipslnews ;;
619 @@ -468,6 +480,10 @@
620  alpha*-*-linux-gnu*)   targ_emul=elf64alpha targ_extra_emuls=alpha
621                         tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
622                         ;;
623 +alpha*-*-linux-uclibc*)        targ_emul=elf64alpha targ_extra_emuls=alpha
624 +                       # The following needs to be checked...
625 +                       tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
626 +                       ;;
627  alpha*-*-osf*)         targ_emul=alpha ;;
628  alpha*-*-gnu*)         targ_emul=elf64alpha ;;
629  alpha*-*-netware*)     targ_emul=alpha ;;
630 diff -ur binutils-2.15.94.0.1.orig/ld/emultempl/elf32.em binutils-2.15.94.0.1/ld/emultempl/elf32.em
631 --- binutils-2.15.94.0.1.orig/ld/emultempl/elf32.em     2004-11-22 21:29:58.763738400 -0500
632 +++ binutils-2.15.94.0.1/ld/emultempl/elf32.em  2004-11-22 21:38:50.338926688 -0500
633 @@ -65,7 +65,7 @@
634  
635  if [ "x${USE_LIBPATH}" = xyes ] ; then
636    case ${target} in
637 -    *-*-linux-gnu*)
638 +    *-*-linux-gnu* | *-*-linux-uclibc*)
639    cat >>e${EMULATION_NAME}.c <<EOF
640  #include <glob.h>
641  EOF
642 @@ -337,7 +337,7 @@
643  
644  EOF
645  case ${target} in
646 -  *-*-linux-gnu*)
647 +  *-*-linux-gnu* | *-*-linux-uclibc*)
648      cat >>e${EMULATION_NAME}.c <<EOF
649           {
650             struct bfd_link_needed_list *l;
651 @@ -510,7 +510,7 @@
652  
653  EOF
654    case ${target} in
655 -    *-*-linux-gnu*)
656 +    *-*-linux-gnu* | *-*-linux-uclibc*)
657        cat >>e${EMULATION_NAME}.c <<EOF
658  /* For a native linker, check the file /etc/ld.so.conf for directories
659     in which we may find shared libraries.  /etc/ld.so.conf is really
660 @@ -894,7 +894,7 @@
661  EOF
662  if [ "x${USE_LIBPATH}" = xyes ] ; then
663    case ${target} in
664 -    *-*-linux-gnu*)
665 +    *-*-linux-gnu* | *-*-linux-uclibc*)
666        cat >>e${EMULATION_NAME}.c <<EOF
667           if (gld${EMULATION_NAME}_check_ld_so_conf (l->name, force))
668             break;
669 diff -ur binutils-2.15.94.0.1.orig/libtool.m4 binutils-2.15.94.0.1/libtool.m4
670 --- binutils-2.15.94.0.1.orig/libtool.m4        2004-11-22 21:29:57.000000000 -0500
671 +++ binutils-2.15.94.0.1/libtool.m4     2004-11-22 21:38:50.339926536 -0500
672 @@ -645,6 +645,11 @@
673    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
674    ;;
675  
676 +linux-uclibc*)
677 +  lt_cv_deplibs_check_method=pass_all
678 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
679 +  ;;
680 +
681  netbsd* | knetbsd*-gnu)
682    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
683      [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
684 diff -ur binutils-2.15.94.0.1.orig/ltconfig binutils-2.15.94.0.1/ltconfig
685 --- binutils-2.15.94.0.1.orig/ltconfig  2004-11-22 21:29:57.000000000 -0500
686 +++ binutils-2.15.94.0.1/ltconfig       2004-11-22 21:38:50.341926232 -0500
687 @@ -603,6 +603,7 @@
688  # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
689  case $host_os in
690  linux-gnu*) ;;
691 +linux-uclibc*) ;;
692  linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
693  esac
694  
695 @@ -1270,6 +1271,24 @@
696    dynamic_linker='GNU/Linux ld.so'
697    ;;
698  
699 +linux-uclibc*)
700 +  version_type=linux
701 +  need_lib_prefix=no
702 +  need_version=no
703 +  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
704 +  soname_spec='${libname}${release}.so$major'
705 +  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
706 +  shlibpath_var=LD_LIBRARY_PATH
707 +  shlibpath_overrides_runpath=no
708 +  # This implies no fast_install, which is unacceptable.
709 +  # Some rework will be needed to allow for fast_install
710 +  # before this can be enabled.
711 +  # Note: copied from linux-gnu, and may not be appropriate.
712 +  hardcode_into_libs=yes
713 +  # Assume using the uClibc dynamic linker.
714 +  dynamic_linker="uClibc ld.so"
715 +  ;;
716 +
717  netbsd*)
718    need_lib_prefix=no
719    need_version=no
720 diff -ur binutils-2.15.94.0.1.orig/opcodes/configure binutils-2.15.94.0.1/opcodes/configure
721 --- binutils-2.15.94.0.1.orig/opcodes/configure 2004-11-22 21:29:59.114685048 -0500
722 +++ binutils-2.15.94.0.1/opcodes/configure      2004-11-22 21:38:50.354924256 -0500
723 @@ -3587,6 +3587,11 @@
724    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
725    ;;
726  
727 +linux-uclibc*)
728 +  lt_cv_deplibs_check_method=pass_all
729 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
730 +  ;;
731 +
732  netbsd* | knetbsd*-gnu)
733    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
734      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'