Initial revision
[openwrt.git] / toolchain / binutils / 2.14.90.0.6 / 100-uclibc-conf.patch
1 diff -urN binutils-2.14.90.0.6/bfd/config.bfd binutils-2.14.90.0.6-uClibc/bfd/config.bfd
2 --- binutils-2.14.90.0.6/bfd/config.bfd 2003-08-21 10:28:47.000000000 -0500
3 +++ binutils-2.14.90.0.6-uClibc/bfd/config.bfd  2004-01-06 23:20:32.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,8 @@
14    alpha*-*-*)
15      targ_defvec=ecoffalpha_little_vec
16      ;;
17 -  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*)
18 +  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | \
19 +  ia64*-*-linux-uclibc* | ia64*-*-elf*)
20      targ_defvec=bfd_elf64_ia64_little_vec
21      targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
22      ;;
23 @@ -214,7 +215,7 @@
24      targ_defvec=bfd_elf32_littlearm_vec
25      targ_selvecs=bfd_elf32_bigarm_vec
26      ;;
27 -  armeb-*-elf | arm*b-*-linux-gnu*)
28 +  armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*)
29      targ_defvec=bfd_elf32_bigarm_vec
30      targ_selvecs=bfd_elf32_littlearm_vec
31      ;;
32 @@ -222,7 +223,8 @@
33      targ_defvec=bfd_elf32_littlearm_vec
34      targ_selvecs=bfd_elf32_bigarm_vec
35      ;;
36 -  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*)
37 +  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \
38 +  arm*-*-conix* | arm*-*-uclinux*)
39      targ_defvec=bfd_elf32_littlearm_vec
40      targ_selvecs=bfd_elf32_bigarm_vec
41      ;;
42 @@ -355,7 +357,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 @@ -366,7 +368,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 @@ -488,7 +490,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 @@ -502,7 +504,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 @@ -662,7 +664,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 @@ -929,7 +931,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 @@ -961,8 +964,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 @@ -1110,7 +1113,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 @@ -1157,7 +1160,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.6/bfd/configure binutils-2.14.90.0.6-uClibc/bfd/configure
127 --- binutils-2.14.90.0.6/bfd/configure  2003-08-21 10:28:47.000000000 -0500
128 +++ binutils-2.14.90.0.6-uClibc/bfd/configure   2004-01-06 20:26:51.000000000 -0600
129 @@ -1698,6 +1698,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 @@ -5102,7 +5107,7 @@
142    alpha*-*-freebsd*)
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 @@ -5161,7 +5166,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 @@ -5211,7 +5216,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.6/bfd/configure.in binutils-2.14.90.0.6-uClibc/bfd/configure.in
169 --- binutils-2.14.90.0.6/bfd/configure.in       2003-08-21 10:28:47.000000000 -0500
170 +++ binutils-2.14.90.0.6-uClibc/bfd/configure.in        2004-01-06 20:33:02.000000000 -0600
171 @@ -153,7 +153,7 @@
172    alpha*-*-freebsd*)
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 @@ -233,7 +233,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 @@ -286,7 +286,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.6/config.sub binutils-2.14.90.0.6-uClibc/config.sub
199 --- binutils-2.14.90.0.6/config.sub     2003-08-21 10:28:47.000000000 -0500
200 +++ binutils-2.14.90.0.6-uClibc/config.sub      2004-01-06 22:56:56.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.6/configure binutils-2.14.90.0.6-uClibc/configure
221 --- binutils-2.14.90.0.6/configure      2003-08-21 10:29:32.000000000 -0500
222 +++ binutils-2.14.90.0.6-uClibc/configure       2004-01-07 05:43:40.000000000 -0600
223 @@ -1257,6 +1262,18 @@
224    i[3456789]86-*-freebsd*)
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.6/configure.in binutils-2.14.90.0.6-uClibc/configure.in
243 --- binutils-2.14.90.0.6/configure.in   2003-08-21 10:29:30.000000000 -0500
244 +++ binutils-2.14.90.0.6-uClibc/configure.in    2004-01-07 05:44:02.000000000 -0600
245 @@ -508,6 +513,19 @@
246    i[[3456789]]86-*-freebsd*)
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 +    build_modules=
257 +    # If we are not using a cross compiler, do configure newlib.
258 +    # Note however, that newlib will only be configured in this situation
259 +    # if the --with-newlib option has been given, because otherwise
260 +    # 'target-newlib' will appear in skipdirs.
261 +    ;;
262    i[[3456789]]86-*-linux*)
263      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
264      # not build java stuff by default.
265 diff -urN binutils-2.14.90.0.6/demangler/configure binutils-2.14.90.0.6-uClibc/demangler/configure
266 --- binutils-2.14.90.0.6/demangler/configure    2003-08-21 10:29:31.000000000 -0500
267 +++ binutils-2.14.90.0.6-uClibc/demangler/configure     2004-01-06 21:45:51.000000000 -0600
268 @@ -1363,6 +1363,11 @@
269    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
270    ;;
271  
272 +linux-uclibc*)
273 +  lt_cv_deplibs_check_method=pass_all
274 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
275 +  ;;
276 +
277  netbsd*)
278    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
279      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
280 diff -urN binutils-2.14.90.0.6/gas/configure binutils-2.14.90.0.6-uClibc/gas/configure
281 --- binutils-2.14.90.0.6/gas/configure  2003-07-23 10:08:10.000000000 -0500
282 +++ binutils-2.14.90.0.6-uClibc/gas/configure   2004-01-06 21:57:25.000000000 -0600
283 @@ -1576,6 +1576,11 @@
284    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
285    ;;
286  
287 +linux-uclibc*)
288 +  lt_cv_deplibs_check_method=pass_all
289 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
290 +  ;;
291 +
292  netbsd*)
293    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
294      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
295 @@ -2370,6 +2375,7 @@
296        alpha*-*-osf*)                   fmt=ecoff ;;
297        alpha*-*-linuxecoff*)            fmt=ecoff ;;
298        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
299 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
300        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
301        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
302  
303 @@ -2386,6 +2392,7 @@
304        arm*-*-conix*)                   fmt=elf ;;
305        arm-*-linux*aout*)               fmt=aout em=linux ;;
306        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
307 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
308        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
309        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
310        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
311 @@ -2400,6 +2407,7 @@
312        avr-*-*)                         fmt=elf ;;
313  
314        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
315 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
316        cris-*-*)                                fmt=multi bfd_gas=yes ;;
317  
318        d10v-*-*)                                fmt=elf ;;
319 @@ -2455,7 +2463,9 @@
320        i386-*-linux*oldld)              fmt=aout em=linux ;;
321        i386-*-linux*coff*)              fmt=coff em=linux ;;
322        i386-*-linux-gnu*)               fmt=elf em=linux ;;
323 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
324        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
325 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
326        i386-*-lynxos*)                  fmt=coff em=lynx ;;
327        i386-*-sysv[45]*)                        fmt=elf ;;
328        i386-*-solaris*)                 fmt=elf ;;
329 @@ -2512,6 +2522,7 @@
330        ia64-*-elf*)                     fmt=elf ;;
331        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
332        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
333 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
334        ia64-*-hpux*)                    fmt=elf em=hpux ;;
335        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
336  
337 @@ -2538,6 +2549,7 @@
338        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
339        m68k-*-linux*aout*)              fmt=aout em=linux ;;
340        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
341 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
342        m68k-*-gnu*)                     fmt=elf ;;
343        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
344        m68k-*-netbsdelf*)               fmt=elf em=nbsd ;;
345 @@ -2592,6 +2604,7 @@
346        ppc-*-beos*)                     fmt=coff ;;
347        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
348        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
349 +      ppc-*-linux-uclibc* | \
350        ppc-*-linux-gnu*)                        fmt=elf
351             case "$endian" in
352                 big)  ;;
353 @@ -2616,7 +2629,9 @@
354        ppc-*-kaos*)                     fmt=elf ;;
355  
356        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
357 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
358        s390-*-linux-gnu*)               fmt=elf em=linux ;;
359 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
360  
361        sh*-*-linux*)                    fmt=elf em=linux
362             case ${cpu} in
363 @@ -2649,6 +2664,7 @@
364        sparc-*-coff)                    fmt=coff ;;
365        sparc-*-linux*aout*)             fmt=aout em=linux ;;
366        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
367 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
368        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
369        sparc-fujitsu-none)              fmt=aout ;;
370        sparc-*-elf)                     fmt=elf ;;
371 diff -urN binutils-2.14.90.0.6/gas/configure.in binutils-2.14.90.0.6-uClibc/gas/configure.in
372 --- binutils-2.14.90.0.6/gas/configure.in       2003-07-23 10:08:10.000000000 -0500
373 +++ binutils-2.14.90.0.6-uClibc/gas/configure.in        2004-01-06 21:57:26.000000000 -0600
374 @@ -184,6 +184,7 @@
375        alpha*-*-osf*)                   fmt=ecoff ;;
376        alpha*-*-linuxecoff*)            fmt=ecoff ;;
377        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
378 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
379        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
380        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
381  
382 @@ -200,6 +201,7 @@
383        arm*-*-conix*)                   fmt=elf ;;
384        arm-*-linux*aout*)               fmt=aout em=linux ;;
385        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
386 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
387        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
388        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
389        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
390 @@ -214,6 +216,7 @@
391        avr-*-*)                         fmt=elf ;;
392  
393        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
394 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
395        cris-*-*)                                fmt=multi bfd_gas=yes ;;
396  
397        d10v-*-*)                                fmt=elf ;;
398 @@ -269,7 +272,9 @@
399        i386-*-linux*oldld)              fmt=aout em=linux ;;
400        i386-*-linux*coff*)              fmt=coff em=linux ;;
401        i386-*-linux-gnu*)               fmt=elf em=linux ;;
402 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
403        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
404 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
405        i386-*-lynxos*)                  fmt=coff em=lynx ;;
406  changequote(,)dnl
407        i386-*-sysv[45]*)                        fmt=elf ;;
408 @@ -322,6 +327,7 @@
409        ia64-*-elf*)                     fmt=elf ;;
410        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
411        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
412 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
413        ia64-*-hpux*)                    fmt=elf em=hpux ;;
414        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
415  
416 @@ -348,6 +354,7 @@
417        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
418        m68k-*-linux*aout*)              fmt=aout em=linux ;;
419        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
420 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
421        m68k-*-gnu*)                     fmt=elf ;;
422        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
423        m68k-*-netbsdelf*)               fmt=elf em=nbsd ;;
424 @@ -402,6 +409,7 @@
425        ppc-*-beos*)                     fmt=coff ;;
426        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
427        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
428 +      ppc-*-linux-uclibc* | \
429        ppc-*-linux-gnu*)                        fmt=elf
430             case "$endian" in
431                 big)  ;;
432 @@ -424,7 +432,9 @@
433        ppc-*-kaos*)                     fmt=elf ;;
434  
435        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
436 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
437        s390-*-linux-gnu*)               fmt=elf em=linux ;;
438 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
439  
440        sh*-*-linux*)                    fmt=elf em=linux
441             case ${cpu} in
442 @@ -457,6 +467,7 @@
443        sparc-*-coff)                    fmt=coff ;;
444        sparc-*-linux*aout*)             fmt=aout em=linux ;;
445        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
446 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
447        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
448        sparc-fujitsu-none)              fmt=aout ;;
449        sparc-*-elf)                     fmt=elf ;;
450 diff -urN binutils-2.14.90.0.6/ld/configure binutils-2.14.90.0.6-uClibc/ld/configure
451 --- binutils-2.14.90.0.6/ld/configure   2003-05-05 16:46:49.000000000 -0500
452 +++ binutils-2.14.90.0.6-uClibc/ld/configure    2004-01-06 21:59:31.000000000 -0600
453 @@ -1578,6 +1578,11 @@
454    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
455    ;;
456  
457 +linux-uclibc*)
458 +  lt_cv_deplibs_check_method=pass_all
459 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
460 +  ;;
461 +
462  netbsd*)
463    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
464      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
465 diff -urN binutils-2.14.90.0.6/ld/configure.tgt binutils-2.14.90.0.6-uClibc/ld/configure.tgt
466 --- binutils-2.14.90.0.6/ld/configure.tgt       2003-08-21 10:28:48.000000000 -0500
467 +++ binutils-2.14.90.0.6-uClibc/ld/configure.tgt        2004-01-06 22:09:40.000000000 -0600
468 @@ -30,6 +30,7 @@
469                         targ_extra_emuls="criself crislinux"
470                         targ_extra_libpath=$targ_extra_emuls ;;
471  cris-*-linux-gnu*)     targ_emul=crislinux ;;
472 +cris-*-linux-uclibc*)  targ_emul=crislinux ;;
473  cris-*-*)              targ_emul=criself
474                         targ_extra_emuls="crisaout crislinux"
475                         targ_extra_libpath=$targ_extra_emuls ;;
476 @@ -59,14 +60,16 @@
477                         tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
478                         tdir_sun4=sparc-sun-sunos4
479                         ;;
480 -sparc64-*-linux-gnu*)  targ_emul=elf64_sparc
481 +sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)         \
482 +                       targ_emul=elf64_sparc
483                         targ_extra_emuls="elf32_sparc sparclinux sun4"
484                         targ_extra_libpath=elf32_sparc
485                         tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
486                         tdir_sparclinux=${tdir_elf32_sparc}aout
487                         tdir_sun4=sparc-sun-sunos4
488                         ;;
489 -sparc*-*-linux-gnu*)   targ_emul=elf32_sparc
490 +sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \
491 +                       targ_emul=elf32_sparc
492                         targ_extra_emuls="sparclinux elf64_sparc sun4"
493                         targ_extra_libpath=elf64_sparc
494                         tdir_sparclinux=${targ_alias}aout
495 @@ -124,7 +127,7 @@
496  m68*-ericsson-ose)     targ_emul=sun3 ;;
497  m68*-apple-aux*)       targ_emul=m68kaux ;;
498  *-tandem-none)         targ_emul=st2000 ;;
499 -i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
500 +i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;;
501  i[3-7]86-*-nto-qnx*)   targ_emul=i386nto ;;
502  i[3-7]86-*-vsta)       targ_emul=vsta ;;
503  i[3-7]86-go32-rtems*)  targ_emul=i386go32 ;;
504 @@ -148,14 +151,16 @@
505                         tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
506                         ;;
507  i[3-7]86-*-linux*oldld)        targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
508 -i[3-7]86-*-linux-gnu*) targ_emul=elf_i386
509 +i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \
510 +                       targ_emul=elf_i386
511                         targ_extra_emuls=i386linux
512                         if test x${want64} = xtrue; then
513                           targ_extra_emuls="$targ_extra_emuls elf_x86_64"
514                         fi
515                         tdir_i386linux=${targ_alias}aout
516                         ;;
517 -x86_64-*-linux-gnu*)   targ_emul=elf_x86_64
518 +x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \
519 +                       targ_emul=elf_x86_64
520                         targ_extra_emuls="elf_i386 i386linux"
521                         targ_extra_libpath=elf_i386
522                         tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
523 @@ -250,10 +255,13 @@
524  arm9e-*-elf)           targ_emul=armelf ;;
525  arm-*-oabi)            targ_emul=armelf_oabi ;;
526  arm*b-*-linux-gnu*)    targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
527 +arm*b-*-linux-uclibc*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
528  arm*-*-linux-gnu*)     targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
529 +arm*-*-linux-uclibc*)  targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
530  arm*-*-uclinux*)       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
531  arm*-*-conix*)         targ_emul=armelf ;;
532 -thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
533 +thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \
534 +                       targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
535  strongarm-*-coff)      targ_emul=armcoff ;;
536  strongarm-*-elf)       targ_emul=armelf ;;
537  strongarm-*-kaos*)     targ_emul=armelf ;;
538 @@ -354,7 +362,8 @@
539                         targ_extra_emuls=m68kelf
540                         tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
541                         ;;
542 -m68k-*-linux-gnu*)     targ_emul=m68kelf
543 +m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \
544 +                       targ_emul=m68kelf
545                         targ_extra_emuls=m68klinux
546                         tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
547                         ;;
548 @@ -370,9 +379,9 @@
549  m68*-*-psos*)          targ_emul=m68kpsos ;;
550  m68*-*-rtemscoff*)     targ_emul=m68kcoff ;;
551  m68*-*-rtems*)         targ_emul=m68kelf ;;
552 -hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
553 +hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;;
554  hppa*64*-*)            targ_emul=elf64hppa ;;
555 -hppa*-*-linux-gnu*)    targ_emul=hppalinux ;;
556 +hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)    targ_emul=hppalinux ;;
557  hppa*-*-*elf*)         targ_emul=hppaelf ;;
558  hppa*-*-lites*)                targ_emul=hppaelf ;;
559  hppa*-*-netbsd*)       targ_emul=hppanbsd ;;
560 @@ -416,16 +425,20 @@
561  mips*-*-rtems*)                targ_emul=elf32ebmip ;;
562  mips*el-*-vxworks*)    targ_emul=elf32elmip ;;
563  mips*-*-vxworks*)      targ_emul=elf32ebmip ;;
564 -mips64*el-*-linux-gnu*)        targ_emul=elf32ltsmipn32
565 +mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*) \
566 +                       targ_emul=elf32ltsmipn32
567                         targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
568                         ;;
569 -mips64*-*-linux-gnu*)  targ_emul=elf32btsmipn32
570 +mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*) \
571 +                       targ_emul=elf32btsmipn32
572                         targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
573                         ;;
574 -mips*el-*-linux-gnu*)  targ_emul=elf32ltsmip
575 +mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*) \
576 +                       targ_emul=elf32ltsmip
577                         targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
578                         ;;
579 -mips*-*-linux-gnu*)    targ_emul=elf32btsmip
580 +mips*-*-linux-gnu* | mips*-*-linux-uclibc*) \
581 +                       targ_emul=elf32btsmip
582                         targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
583                         ;;
584  mips*-*-lnews*)                targ_emul=mipslnews ;;
585 @@ -447,6 +460,10 @@
586  alpha*-*-linux-gnu*)   targ_emul=elf64alpha targ_extra_emuls=alpha
587                         tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
588                         ;;
589 +alpha*-*-linux-uclibc*)        targ_emul=elf64alpha targ_extra_emuls=alpha
590 +                       # The following needs to be checked...
591 +                       tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
592 +                       ;;
593  alpha*-*-osf*)         targ_emul=alpha ;;
594  alpha*-*-gnu*)         targ_emul=elf64alpha ;;
595  alpha*-*-netware*)     targ_emul=alpha ;;
596 diff -urN binutils-2.14.90.0.6/libtool.m4 binutils-2.14.90.0.6-uClibc/libtool.m4
597 --- binutils-2.14.90.0.6/libtool.m4     2003-05-05 16:46:46.000000000 -0500
598 +++ binutils-2.14.90.0.6-uClibc/libtool.m4      2004-01-06 20:30:39.000000000 -0600
599 @@ -645,6 +645,11 @@
600    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
601    ;;
602  
603 +linux-uclibc*)
604 +  lt_cv_deplibs_check_method=pass_all
605 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
606 +  ;;
607 +
608  netbsd*)
609    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
610      [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
611 diff -urN binutils-2.14.90.0.6/ltconfig binutils-2.14.90.0.6-uClibc/ltconfig
612 --- binutils-2.14.90.0.6/ltconfig       2003-07-23 10:08:08.000000000 -0500
613 +++ binutils-2.14.90.0.6-uClibc/ltconfig        2004-01-06 21:05:11.000000000 -0600
614 @@ -603,6 +603,7 @@
615  # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
616  case $host_os in
617  linux-gnu*) ;;
618 +linux-uclibc*) ;;
619  linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
620  esac
621  
622 @@ -1259,6 +1260,24 @@
623    dynamic_linker='GNU/Linux ld.so'
624    ;;
625  
626 +linux-uclibc*)
627 +  version_type=linux
628 +  need_lib_prefix=no
629 +  need_version=no
630 +  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
631 +  soname_spec='${libname}${release}.so$major'
632 +  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
633 +  shlibpath_var=LD_LIBRARY_PATH
634 +  shlibpath_overrides_runpath=no
635 +  # This implies no fast_install, which is unacceptable.
636 +  # Some rework will be needed to allow for fast_install
637 +  # before this can be enabled.
638 +  # Note: copied from linux-gnu, and may not be appropriate.
639 +  hardcode_into_libs=yes
640 +  # Assume using the uClibc dynamic linker.
641 +  dynamic_linker="uClibc ld.so"
642 +  ;;
643 +
644  netbsd*)
645    need_lib_prefix=no
646    need_version=no