Initial revision
[openwrt.git] / toolchain / binutils / 2.15.92.0.2 / 100-uclibc-conf.patch
1 diff -urN binutils-2.15.92.0.2-dist/bfd/config.bfd binutils-2.15.92.0.2/bfd/config.bfd
2 --- binutils-2.15.92.0.2-dist/bfd/config.bfd    2004-09-15 14:05:02.000000000 -0500
3 +++ binutils-2.15.92.0.2/bfd/config.bfd 2004-09-28 14:11:57.000000000 -0500
4 @@ -129,7 +129,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 @@ -139,7 +139,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 @@ -216,7 +216,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 @@ -224,8 +224,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 @@ -378,7 +378,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 @@ -389,7 +389,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 @@ -516,7 +516,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 @@ -530,7 +530,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 @@ -705,7 +705,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 @@ -981,7 +981,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 @@ -1018,8 +1019,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 @@ -1186,7 +1187,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 @@ -1233,7 +1234,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 @@ -1302,7 +1303,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 -urN binutils-2.15.92.0.2-dist/bfd/configure binutils-2.15.92.0.2/bfd/configure
136 --- binutils-2.15.92.0.2-dist/bfd/configure     2004-09-27 15:46:06.000000000 -0500
137 +++ binutils-2.15.92.0.2/bfd/configure  2004-09-28 14:09:03.000000000 -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 -urN binutils-2.15.92.0.2-dist/bfd/configure.in binutils-2.15.92.0.2/bfd/configure.in
187 --- binutils-2.15.92.0.2-dist/bfd/configure.in  2004-09-27 15:46:06.000000000 -0500
188 +++ binutils-2.15.92.0.2/bfd/configure.in       2004-09-28 14:09:03.000000000 -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 -urN binutils-2.15.92.0.2-dist/binutils/configure binutils-2.15.92.0.2/binutils/configure
226 --- binutils-2.15.92.0.2-dist/binutils/configure        2004-09-15 14:05:03.000000000 -0500
227 +++ binutils-2.15.92.0.2/binutils/configure     2004-09-28 14:09:03.000000000 -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 -urN binutils-2.15.92.0.2-dist/configure binutils-2.15.92.0.2/configure
241 --- binutils-2.15.92.0.2-dist/configure 2004-09-27 15:46:06.000000000 -0500
242 +++ binutils-2.15.92.0.2/configure      2004-09-28 14:09:03.000000000 -0500
243 @@ -1334,6 +1334,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 -urN binutils-2.15.92.0.2-dist/configure.in binutils-2.15.92.0.2/configure.in
263 --- binutils-2.15.92.0.2-dist/configure.in      2004-09-27 15:46:06.000000000 -0500
264 +++ binutils-2.15.92.0.2/configure.in   2004-09-28 14:09:03.000000000 -0500
265 @@ -556,6 +556,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 -urN binutils-2.15.92.0.2-dist/gas/configure binutils-2.15.92.0.2/gas/configure
285 --- binutils-2.15.92.0.2-dist/gas/configure     2004-09-27 15:46:07.000000000 -0500
286 +++ binutils-2.15.92.0.2/gas/configure  2004-09-28 14:09:03.000000000 -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 @@ -4248,6 +4253,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 @@ -4263,6 +4269,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 @@ -4276,6 +4283,7 @@
316        avr-*-*)                         fmt=elf ;;
317  
318        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
319 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
320        cris-*-*)                                fmt=multi bfd_gas=yes ;;
321  
322        crx-*-elf*)                      fmt=elf ;;
323 @@ -4335,7 +4343,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 @@ -4395,6 +4405,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 @@ -4422,6 +4433,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 @@ -4494,6 +4506,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 @@ -4521,7 +4534,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 @@ -4556,6 +4571,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 -urN binutils-2.15.92.0.2-dist/gas/configure.in binutils-2.15.92.0.2/gas/configure.in
376 --- binutils-2.15.92.0.2-dist/gas/configure.in  2004-09-15 14:05:03.000000000 -0500
377 +++ binutils-2.15.92.0.2/gas/configure.in       2004-09-28 14:09:03.000000000 -0500
378 @@ -197,6 +197,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 @@ -212,6 +213,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 @@ -225,6 +227,7 @@
395        avr-*-*)                         fmt=elf ;;
396  
397        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
398 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
399        cris-*-*)                                fmt=multi bfd_gas=yes ;;
400  
401        crx-*-elf*)                      fmt=elf ;;
402 @@ -284,7 +287,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 @@ -337,6 +342,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 @@ -364,6 +370,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 @@ -433,6 +440,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 @@ -453,7 +461,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 @@ -484,6 +494,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 -urN binutils-2.15.92.0.2-dist/gprof/configure binutils-2.15.92.0.2/gprof/configure
455 --- binutils-2.15.92.0.2-dist/gprof/configure   2004-09-27 15:46:07.000000000 -0500
456 +++ binutils-2.15.92.0.2/gprof/configure        2004-09-28 14:09:03.000000000 -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 -urN binutils-2.15.92.0.2-dist/ld/configure binutils-2.15.92.0.2/ld/configure
470 --- binutils-2.15.92.0.2-dist/ld/configure      2004-09-27 15:46:07.000000000 -0500
471 +++ binutils-2.15.92.0.2/ld/configure   2004-09-28 14:09:03.000000000 -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 -urN binutils-2.15.92.0.2-dist/ld/configure.tgt binutils-2.15.92.0.2/ld/configure.tgt
485 --- binutils-2.15.92.0.2-dist/ld/configure.tgt  2004-09-15 14:05:04.000000000 -0500
486 +++ binutils-2.15.92.0.2/ld/configure.tgt       2004-09-28 14:09:03.000000000 -0500
487 @@ -31,6 +31,7 @@
488                         targ_extra_emuls="criself crislinux"
489                         targ_extra_libpath=$targ_extra_emuls ;;
490  cris-*-linux-gnu*)     targ_emul=crislinux ;;
491 +cris-*-linux-uclibc*)  targ_emul=crislinux ;;
492  cris-*-*)              targ_emul=criself
493                         targ_extra_emuls="crisaout crislinux"
494                         targ_extra_libpath=$targ_extra_emuls ;;
495 @@ -61,14 +62,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 @@ -120,7 +123,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 @@ -130,7 +135,7 @@
525  m68*-ericsson-ose)     targ_emul=sun3 ;;
526  m68*-apple-aux*)       targ_emul=m68kaux ;;
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 @@ -154,14 +159,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 @@ -262,10 +269,13 @@
553  arm9e-*-elf)           targ_emul=armelf ;;
554  arm-*-oabi)            targ_emul=armelf_oabi ;;
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-gnu*)     targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
558 +arm*-*-linux-uclibc*)  targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
559  arm*-*-uclinux*)       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
560  arm*-*-conix*)         targ_emul=armelf ;;
561 -thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
562 +thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
563 +                       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
564  strongarm-*-coff)      targ_emul=armcoff ;;
565  strongarm-*-elf)       targ_emul=armelf ;;
566  strongarm-*-kaos*)     targ_emul=armelf ;;
567 @@ -370,7 +380,8 @@
568                         targ_extra_emuls=m68kelf
569                         tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
570                         ;;
571 -m68k-*-linux-gnu*)     targ_emul=m68kelf
572 +m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
573 +                       targ_emul=m68kelf
574                         targ_extra_emuls=m68klinux
575                         tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
576                         ;;
577 @@ -387,9 +398,9 @@
578  m68*-*-psos*)          targ_emul=m68kpsos ;;
579  m68*-*-rtemscoff*)     targ_emul=m68kcoff ;;
580  m68*-*-rtems*)         targ_emul=m68kelf ;;
581 -hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
582 +hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;;
583  hppa*64*-*)            targ_emul=elf64hppa ;;
584 -hppa*-*-linux-gnu*)    targ_emul=hppalinux ;;
585 +hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)    targ_emul=hppalinux ;;
586  hppa*-*-*elf*)         targ_emul=hppaelf ;;
587  hppa*-*-lites*)                targ_emul=hppaelf ;;
588  hppa*-*-netbsd*)       targ_emul=hppanbsd ;;
589 @@ -402,6 +413,7 @@
590                         targ_emul=vaxnbsd
591                         targ_extra_emuls=elf32vax ;;
592  vax-*-linux-gnu*)      targ_emul=elf32vax ;;
593 +vax-*-linux-uclibc*)   targ_emul=elf32vax ;;
594  mips*-*-pe)            targ_emul=mipspe ;
595                         targ_extra_ofiles="deffilep.o pe-dll.o" ;;
596  mips*-dec-ultrix*)     targ_emul=mipslit ;;
597 @@ -435,16 +447,16 @@
598  mips*-*-vxworks*)      targ_emul=elf32ebmip
599                         targ_extra_emuls="elf32elmip" ;;
600  mips*-*-windiss)       targ_emul=elf32mipswindiss ;;
601 -mips64*el-*-linux-gnu*)        targ_emul=elf32ltsmipn32
602 +mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*)    targ_emul=elf32ltsmipn32
603                         targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
604                         ;;
605 -mips64*-*-linux-gnu*)  targ_emul=elf32btsmipn32
606 +mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*)        targ_emul=elf32btsmipn32
607                         targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
608                         ;;
609 -mips*el-*-linux-gnu*)  targ_emul=elf32ltsmip
610 +mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*)        targ_emul=elf32ltsmip
611                         targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
612                         ;;
613 -mips*-*-linux-gnu*)    targ_emul=elf32btsmip
614 +mips*-*-linux-gnu* | mips*-*-linux-uclibc*)    targ_emul=elf32btsmip
615                         targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
616                         ;;
617  mips*-*-lnews*)                targ_emul=mipslnews ;;
618 @@ -467,6 +479,10 @@
619  alpha*-*-linux-gnu*)   targ_emul=elf64alpha targ_extra_emuls=alpha
620                         tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
621                         ;;
622 +alpha*-*-linux-uclibc*)        targ_emul=elf64alpha targ_extra_emuls=alpha
623 +                       # The following needs to be checked...
624 +                       tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
625 +                       ;;
626  alpha*-*-osf*)         targ_emul=alpha ;;
627  alpha*-*-gnu*)         targ_emul=elf64alpha ;;
628  alpha*-*-netware*)     targ_emul=alpha ;;
629 diff -urN binutils-2.15.92.0.2-dist/ld/emultempl/elf32.em binutils-2.15.92.0.2/ld/emultempl/elf32.em
630 --- binutils-2.15.92.0.2-dist/ld/emultempl/elf32.em     2004-07-27 23:36:11.000000000 -0500
631 +++ binutils-2.15.92.0.2/ld/emultempl/elf32.em  2004-09-28 14:13:04.000000000 -0500
632 @@ -327,7 +327,7 @@
633  
634  EOF
635  case ${target} in
636 -  *-*-linux-gnu*)
637 +  *-*-linux-gnu* | *-*-linux-uclibc*)
638      cat >>e${EMULATION_NAME}.c <<EOF
639           {
640             struct bfd_link_needed_list *l;
641 @@ -500,7 +500,7 @@
642  
643  EOF
644    case ${target} in
645 -    *-*-linux-gnu*)
646 +    *-*-linux-gnu* | *-*-linux-uclibc*)
647        cat >>e${EMULATION_NAME}.c <<EOF
648  /* For a native linker, check the file /etc/ld.so.conf for directories
649     in which we may find shared libraries.  /etc/ld.so.conf is really
650 @@ -784,7 +784,7 @@
651  EOF
652  if [ "x${USE_LIBPATH}" = xyes ] ; then
653    case ${target} in
654 -    *-*-linux-gnu*)
655 +    *-*-linux-gnu* | *-*-linux-uclibc*)
656        cat >>e${EMULATION_NAME}.c <<EOF
657           if (gld${EMULATION_NAME}_check_ld_so_conf (l->name, force))
658             break;
659 diff -urN binutils-2.15.92.0.2-dist/libtool.m4 binutils-2.15.92.0.2/libtool.m4
660 --- binutils-2.15.92.0.2-dist/libtool.m4        2004-07-27 23:36:06.000000000 -0500
661 +++ binutils-2.15.92.0.2/libtool.m4     2004-09-28 14:09:03.000000000 -0500
662 @@ -645,6 +645,11 @@
663    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
664    ;;
665  
666 +linux-uclibc*)
667 +  lt_cv_deplibs_check_method=pass_all
668 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
669 +  ;;
670 +
671  netbsd* | knetbsd*-gnu)
672    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
673      [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
674 diff -urN binutils-2.15.92.0.2-dist/ltconfig binutils-2.15.92.0.2/ltconfig
675 --- binutils-2.15.92.0.2-dist/ltconfig  2004-07-27 23:36:06.000000000 -0500
676 +++ binutils-2.15.92.0.2/ltconfig       2004-09-28 14:09:03.000000000 -0500
677 @@ -603,6 +603,7 @@
678  # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
679  case $host_os in
680  linux-gnu*) ;;
681 +linux-uclibc*) ;;
682  linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
683  esac
684  
685 @@ -1270,6 +1271,24 @@
686    dynamic_linker='GNU/Linux ld.so'
687    ;;
688  
689 +linux-uclibc*)
690 +  version_type=linux
691 +  need_lib_prefix=no
692 +  need_version=no
693 +  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
694 +  soname_spec='${libname}${release}.so$major'
695 +  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
696 +  shlibpath_var=LD_LIBRARY_PATH
697 +  shlibpath_overrides_runpath=no
698 +  # This implies no fast_install, which is unacceptable.
699 +  # Some rework will be needed to allow for fast_install
700 +  # before this can be enabled.
701 +  # Note: copied from linux-gnu, and may not be appropriate.
702 +  hardcode_into_libs=yes
703 +  # Assume using the uClibc dynamic linker.
704 +  dynamic_linker="uClibc ld.so"
705 +  ;;
706 +
707  netbsd*)
708    need_lib_prefix=no
709    need_version=no
710 diff -urN binutils-2.15.92.0.2-dist/opcodes/configure binutils-2.15.92.0.2/opcodes/configure
711 --- binutils-2.15.92.0.2-dist/opcodes/configure 2004-09-27 15:46:08.000000000 -0500
712 +++ binutils-2.15.92.0.2/opcodes/configure      2004-09-28 14:09:03.000000000 -0500
713 @@ -3587,6 +3587,11 @@
714    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
715    ;;
716  
717 +linux-uclibc*)
718 +  lt_cv_deplibs_check_method=pass_all
719 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
720 +  ;;
721 +
722  netbsd* | knetbsd*-gnu)
723    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
724      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'