Initial revision
[openwrt.git] / toolchain / binutils / 2.14.90.0.7 / 100-uclibc-conf.patch
1 diff -urN binutils-2.14.90.0.7.orig/bfd/config.bfd binutils-2.14.90.0.7/bfd/config.bfd
2 --- binutils-2.14.90.0.7.orig/bfd/config.bfd    2003-10-29 10:37:47.000000000 -0700
3 +++ binutils-2.14.90.0.7/bfd/config.bfd 2004-04-20 01:37:12.000000000 -0600
4 @@ -121,7 +121,7 @@
5      targ_defvec=ecoffalpha_little_vec
6      targ_selvecs=bfd_elf64_alpha_vec
7      ;;
8 -  alpha*-*-linux-gnu* | alpha*-*-elf*)
9 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*)
10      targ_defvec=bfd_elf64_alpha_vec
11      targ_selvecs=ecoffalpha_little_vec
12      ;;
13 @@ -131,7 +131,7 @@
14    alpha*-*-*)
15      targ_defvec=ecoffalpha_little_vec
16      ;;
17 -  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
18 +  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-linux-uclibc* | 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 @@ -214,7 +214,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 @@ -222,7 +222,7 @@
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* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu)
36 +  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux* | arm*-*-linux-uclibc* | arm-*-kfreebsd*-gnu)
37      targ_defvec=bfd_elf32_littlearm_vec
38      targ_selvecs=bfd_elf32_bigarm_vec
39      ;;
40 @@ -355,7 +355,7 @@
41      ;;
42  
43  #ifdef BFD64
44 -  hppa*64*-*-linux-gnu*)
45 +  hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)
46      targ_defvec=bfd_elf64_hppa_linux_vec
47      targ_selvecs=bfd_elf64_hppa_vec
48      ;;
49 @@ -366,7 +366,7 @@
50      ;;
51  #endif
52  
53 -  hppa*-*-linux-gnu* | hppa*-*-netbsd*)
54 +  hppa*-*-linux-gnu* | hppa*-*-netbsd* | hppa*-*-linux-uclibc*)
55      targ_defvec=bfd_elf32_hppa_linux_vec
56      targ_selvecs=bfd_elf32_hppa_vec
57      ;;
58 @@ -488,7 +488,7 @@
59      targ_selvecs=bfd_elf32_i386_vec
60      targ_underscore=yes
61      ;;
62 -  i[3-7]86-*-linux-gnu*)
63 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
64      targ_defvec=bfd_elf32_i386_vec
65      targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec"
66      targ64_selvecs=bfd_elf64_x86_64_vec
67 @@ -502,7 +502,7 @@
68      targ_defvec=bfd_elf64_x86_64_vec
69      targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec"
70      ;;
71 -  x86_64-*-linux-gnu*)
72 +  x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*)
73      targ_defvec=bfd_elf64_x86_64_vec
74      targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec"
75      ;;
76 @@ -662,7 +662,7 @@
77      targ_selvecs=bfd_elf32_m68k_vec
78      targ_underscore=yes
79      ;;
80 -  m68*-*-linux-gnu*)
81 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
82      targ_defvec=bfd_elf32_m68k_vec
83      targ_selvecs=m68klinux_vec
84      ;;
85 @@ -929,7 +929,8 @@
86      ;;
87  #endif
88    powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
89 -  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \
90 +  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \
91 +  powerpc-*-rtems* | \
92    powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*)
93      targ_defvec=bfd_elf32_powerpc_vec
94      targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
95 @@ -961,8 +962,8 @@
96      targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
97      ;;
98    powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
99 -  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\
100 -  powerpcle-*-rtems*)
101 +  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\
102 +  powerpcle-*-vxworks* | powerpcle-*-rtems*)
103      targ_defvec=bfd_elf32_powerpcle_vec
104      targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec"
105      targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec"
106 @@ -1110,7 +1111,7 @@
107      targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec"
108      targ_underscore=yes
109      ;;
110 -  sparc-*-linux-gnu*)
111 +  sparc-*-linux-gnu* | sparc-*-linux-uclibc*)
112      targ_defvec=bfd_elf32_sparc_vec
113      targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec"
114      ;;
115 @@ -1157,7 +1158,7 @@
116      targ_defvec=sunos_big_vec
117      targ_underscore=yes
118      ;;
119 -  sparc64-*-linux-gnu*)
120 +  sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)
121      targ_defvec=bfd_elf64_sparc_vec
122      targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
123      ;;
124 diff -urN binutils-2.14.90.0.7.orig/bfd/configure binutils-2.14.90.0.7/bfd/configure
125 --- binutils-2.14.90.0.7.orig/bfd/configure     2003-10-29 10:37:47.000000000 -0700
126 +++ binutils-2.14.90.0.7/bfd/configure  2004-04-20 01:32:29.000000000 -0600
127 @@ -1699,6 +1699,11 @@
128    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
129    ;;
130  
131 +linux-uclibc*)
132 +  lt_cv_deplibs_check_method=pass_all
133 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
134 +  ;;
135 +
136  netbsd*)
137    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
138      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
139 @@ -5278,7 +5283,7 @@
140    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
141         COREFILE=''
142         ;;
143 -  alpha*-*-linux-gnu*)
144 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
145         COREFILE=trad-core.lo
146         TRAD_HEADER='"hosts/alphalinux.h"'
147         ;;
148 @@ -5338,7 +5343,7 @@
149         COREFILE=trad-core.lo
150         TRAD_HEADER='"hosts/i386mach3.h"'
151         ;;
152 -  i[3-7]86-*-linux-gnu*)
153 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
154         COREFILE=trad-core.lo
155         TRAD_HEADER='"hosts/i386linux.h"'
156         ;;
157 @@ -5388,7 +5393,7 @@
158         COREFILE=trad-core.lo
159         TRAD_HEADER='"hosts/hp300bsd.h"'
160         ;;
161 -  m68*-*-linux-gnu*)
162 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
163         COREFILE=trad-core.lo
164         TRAD_HEADER='"hosts/m68klinux.h"'
165         ;;
166 diff -urN binutils-2.14.90.0.7.orig/bfd/configure.in binutils-2.14.90.0.7/bfd/configure.in
167 --- binutils-2.14.90.0.7.orig/bfd/configure.in  2003-10-29 10:37:47.000000000 -0700
168 +++ binutils-2.14.90.0.7/bfd/configure.in       2004-04-20 01:32:29.000000000 -0600
169 @@ -178,7 +178,7 @@
170    alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
171         COREFILE=''
172         ;;
173 -  alpha*-*-linux-gnu*)
174 +  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*)
175         COREFILE=trad-core.lo
176         TRAD_HEADER='"hosts/alphalinux.h"'
177         ;;
178 @@ -259,7 +259,7 @@
179         TRAD_HEADER='"hosts/i386mach3.h"'
180         ;;
181  changequote(,)dnl
182 -  i[3-7]86-*-linux-gnu*)
183 +  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*)
184  changequote([,])dnl
185         COREFILE=trad-core.lo
186         TRAD_HEADER='"hosts/i386linux.h"'
187 @@ -312,7 +312,7 @@
188         COREFILE=trad-core.lo
189         TRAD_HEADER='"hosts/hp300bsd.h"'
190         ;;
191 -  m68*-*-linux-gnu*)
192 +  m68*-*-linux-gnu* | m68*-*-linux-uclibc*)
193         COREFILE=trad-core.lo
194         TRAD_HEADER='"hosts/m68klinux.h"'
195         ;;
196 diff -urN binutils-2.14.90.0.7.orig/config.sub binutils-2.14.90.0.7/config.sub
197 --- binutils-2.14.90.0.7.orig/config.sub        2003-08-21 09:28:47.000000000 -0600
198 +++ binutils-2.14.90.0.7/config.sub     2004-04-20 01:32:29.000000000 -0600
199 @@ -118,7 +118,7 @@
200  # Here we must recognize all the valid KERNEL-OS combinations.
201  maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
202  case $maybe_os in
203 -  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
204 +  nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
205      os=-$maybe_os
206      basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
207      ;;
208 @@ -1131,7 +1131,8 @@
209               | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
210               | -chorusos* | -chorusrdb* \
211               | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
212 -             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
213 +             | -mingw32* | -linux-gnu* | -linux-uclibc* \
214 +             | -uxpv* | -beos* | -mpeix* | -udk* \
215               | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
216               | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
217               | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
218 diff -urN binutils-2.14.90.0.7.orig/configure binutils-2.14.90.0.7/configure
219 --- binutils-2.14.90.0.7.orig/configure 2003-10-29 10:38:23.000000000 -0700
220 +++ binutils-2.14.90.0.7/configure      2004-04-20 01:32:29.000000000 -0600
221 @@ -1276,6 +1276,18 @@
222    i[3456789]86-*-freebsd* | i[3456789]86-*-kfreebsd*-gnu)
223      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
224      ;;
225 +  i[3456789]86-*-linux-uclibc)
226 +    # This section makes it possible to build newlib natively on linux.
227 +    # If we are using a cross compiler then don't configure newlib.
228 +    if test x${is_cross_compiler} != xno ; then
229 +      noconfigdirs="$noconfigdirs target-newlib"
230 +    fi
231 +    noconfigdirs="$noconfigdirs target-libgloss"
232 +    # If we are not using a cross compiler, do configure newlib.
233 +    # Note however, that newlib will only be configured in this situation
234 +    # if the --with-newlib option has been given, because otherwise
235 +    # 'target-newlib' will appear in skipdirs.
236 +    ;;
237    i[3456789]86-*-linux*)
238      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
239      # not build java stuff by default.
240 diff -urN binutils-2.14.90.0.7.orig/configure.in binutils-2.14.90.0.7/configure.in
241 --- binutils-2.14.90.0.7.orig/configure.in      2003-10-29 10:38:20.000000000 -0700
242 +++ binutils-2.14.90.0.7/configure.in   2004-04-20 01:32:29.000000000 -0600
243 @@ -515,6 +515,19 @@
244    i[[3456789]]86-*-freebsd* | i[[3456789]]86-*-kfreebsd*-gnu)
245      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
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 +    build_modules=
255 +    # If we are not using a cross compiler, do configure newlib.
256 +    # Note however, that newlib will only be configured in this situation
257 +    # if the --with-newlib option has been given, because otherwise
258 +    # 'target-newlib' will appear in skipdirs.
259 +    ;;
260    i[[3456789]]86-*-linux*)
261      # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
262      # not build java stuff by default.
263 diff -urN binutils-2.14.90.0.7.orig/demangler/configure binutils-2.14.90.0.7/demangler/configure
264 --- binutils-2.14.90.0.7.orig/demangler/configure       2003-10-29 10:38:20.000000000 -0700
265 +++ binutils-2.14.90.0.7/demangler/configure    2004-04-20 01:32:29.000000000 -0600
266 @@ -1380,6 +1380,11 @@
267    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
268    ;;
269  
270 +linux-uclibc*)
271 +  lt_cv_deplibs_check_method=pass_all
272 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
273 +  ;;
274 +
275  netbsd*)
276    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
277      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
278 diff -urN binutils-2.14.90.0.7.orig/gas/configure binutils-2.14.90.0.7/gas/configure
279 --- binutils-2.14.90.0.7.orig/gas/configure     2003-10-29 10:37:48.000000000 -0700
280 +++ binutils-2.14.90.0.7/gas/configure  2004-04-20 01:37:58.000000000 -0600
281 @@ -3215,6 +3215,11 @@
282    lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
283    ;;
284  
285 +linux-uclibc*)
286 +  lt_cv_deplibs_check_method=pass_all
287 +  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
288 +  ;;
289 +
290  netbsd*)
291    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
292      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
293 @@ -4028,6 +4033,7 @@
294        alpha*-*-osf*)                   fmt=ecoff ;;
295        alpha*-*-linuxecoff*)            fmt=ecoff ;;
296        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
297 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
298        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
299        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
300  
301 @@ -4044,6 +4050,7 @@
302        arm*-*-conix*)                   fmt=elf ;;
303        arm-*-linux*aout*)               fmt=aout em=linux ;;
304        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
305 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
306        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
307        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
308        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
309 @@ -4058,6 +4065,7 @@
310        avr-*-*)                         fmt=elf ;;
311  
312        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
313 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
314        cris-*-*)                                fmt=multi bfd_gas=yes ;;
315  
316        d10v-*-*)                                fmt=elf ;;
317 @@ -4114,7 +4122,9 @@
318        i386-*-linux*oldld)              fmt=aout em=linux ;;
319        i386-*-linux*coff*)              fmt=coff em=linux ;;
320        i386-*-linux-gnu*)               fmt=elf em=linux ;;
321 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
322        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
323 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
324        i386-*-lynxos*)                  fmt=coff em=lynx ;;
325        i386-*-sysv[45]*)                        fmt=elf ;;
326        i386-*-solaris*)                 fmt=elf ;;
327 @@ -4175,6 +4185,7 @@
328        ia64-*-elf*)                     fmt=elf ;;
329        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
330        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
331 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
332        ia64-*-hpux*)                    fmt=elf em=hpux ;;
333        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
334  
335 @@ -4201,6 +4212,7 @@
336        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
337        m68k-*-linux*aout*)              fmt=aout em=linux ;;
338        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
339 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
340        m68k-*-gnu*)                     fmt=elf ;;
341        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
342        m68k-*-netbsdelf*)               fmt=elf em=nbsd ;;
343 @@ -4257,7 +4269,7 @@
344        ppc-*-beos*)                     fmt=coff ;;
345        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
346        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
347 -      ppc-*-linux-gnu*)                        fmt=elf em=linux
348 +      ppc-*-linux-uclibc* | ppc-*-linux-gnu*)                  fmt=elf em=linux
349             case "$endian" in
350                 big)  ;;
351                 *)    { { echo "$as_me:$LINENO: error: GNU/Linux must be configured big endian" >&5
352 @@ -4286,7 +4298,9 @@
353        ppc-*-kaos*)                     fmt=elf ;;
354  
355        s390x-*-linux-gnu*)              fmt=elf em=linux ;;
356 +      s390x-*-linux-uclibc*)           fmt=elf em=linux ;;
357        s390-*-linux-gnu*)               fmt=elf em=linux ;;
358 +      s390-*-linux-uclibc*)            fmt=elf em=linux ;;
359  
360        sh*-*-linux*)                    fmt=elf em=linux
361             case ${cpu} in
362 @@ -4319,6 +4333,7 @@
363        sparc-*-coff)                    fmt=coff ;;
364        sparc-*-linux*aout*)             fmt=aout em=linux ;;
365        sparc-*-linux-gnu*)              fmt=elf em=linux ;;
366 +      sparc-*-linux-uclibc*)           fmt=elf em=linux ;;
367        sparc-*-lynxos*)                 fmt=coff em=lynx ;;
368        sparc-fujitsu-none)              fmt=aout ;;
369        sparc-*-elf)                     fmt=elf ;;
370 diff -urN binutils-2.14.90.0.7.orig/gas/configure.in binutils-2.14.90.0.7/gas/configure.in
371 --- binutils-2.14.90.0.7.orig/gas/configure.in  2003-10-29 10:37:48.000000000 -0700
372 +++ binutils-2.14.90.0.7/gas/configure.in       2004-04-20 01:38:23.000000000 -0600
373 @@ -192,6 +192,7 @@
374        alpha*-*-osf*)                   fmt=ecoff ;;
375        alpha*-*-linuxecoff*)            fmt=ecoff ;;
376        alpha*-*-linux-gnu*)             fmt=elf em=linux ;;
377 +      alpha*-*-linux-uclibc*)          fmt=elf em=linux ;;
378        alpha*-*-netbsd*)                        fmt=elf em=nbsd ;;
379        alpha*-*-openbsd*)               fmt=elf em=obsd ;;
380  
381 @@ -208,6 +209,7 @@
382        arm*-*-conix*)                   fmt=elf ;;
383        arm-*-linux*aout*)               fmt=aout em=linux ;;
384        arm*-*-linux-gnu*)               fmt=elf  em=linux ;;
385 +      arm*-*-linux-uclibc*)            fmt=elf  em=linux ;;
386        arm*-*-uclinux*)                 fmt=elf  em=linux ;;
387        arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;;
388        arm-*-*n*bsd*)                   fmt=aout em=nbsd ;;
389 @@ -222,6 +224,7 @@
390        avr-*-*)                         fmt=elf ;;
391  
392        cris-*-linux-gnu*)               fmt=multi bfd_gas=yes em=linux ;;
393 +      cris-*-linux-uclibc*)            fmt=multi bfd_gas=yes em=linux ;;
394        cris-*-*)                                fmt=multi bfd_gas=yes ;;
395  
396        d10v-*-*)                                fmt=elf ;;
397 @@ -278,7 +281,9 @@
398        i386-*-linux*oldld)              fmt=aout em=linux ;;
399        i386-*-linux*coff*)              fmt=coff em=linux ;;
400        i386-*-linux-gnu*)               fmt=elf em=linux ;;
401 +      i386-*-linux-uclibc*)            fmt=elf em=linux ;;
402        x86_64-*-linux-gnu*)             fmt=elf em=linux ;;
403 +      x86_64-*-linux-uclibc*)          fmt=elf em=linux ;;
404        i386-*-lynxos*)                  fmt=coff em=lynx ;;
405  changequote(,)dnl
406        i386-*-sysv[45]*)                        fmt=elf ;;
407 @@ -332,6 +337,7 @@
408        ia64-*-elf*)                     fmt=elf ;;
409        ia64-*-aix*)                     fmt=elf em=ia64aix ;;
410        ia64-*-linux-gnu*)               fmt=elf em=linux ;;
411 +      ia64-*-linux-uclibc*)            fmt=elf em=linux ;;
412        ia64-*-hpux*)                    fmt=elf em=hpux ;;
413        ia64-*-netbsd*)                  fmt=elf em=nbsd ;;
414  
415 @@ -358,6 +364,7 @@
416        m68k-*-hpux*)                    fmt=hp300 em=hp300 ;;
417        m68k-*-linux*aout*)              fmt=aout em=linux ;;
418        m68k-*-linux-gnu*)               fmt=elf em=linux ;;
419 +      m68k-*-linux-uclibc*)            fmt=elf em=linux ;;
420        m68k-*-gnu*)                     fmt=elf ;;
421        m68k-*-lynxos*)                  fmt=coff em=lynx ;;
422        m68k-*-netbsdelf*)               fmt=elf em=nbsd ;;
423 @@ -412,7 +419,7 @@
424        ppc-*-beos*)                     fmt=coff ;;
425        ppc-*-*n*bsd* | ppc-*-elf*)      fmt=elf ;;
426        ppc-*-eabi* | ppc-*-sysv4*)      fmt=elf ;;
427 -      ppc-*-linux-gnu*)                        fmt=elf em=linux
428 +      ppc-*-linux-uclibc* | ppc-*-linux-gnu*)                  fmt=elf em=linux
429             case "$endian" in
430                 big)  ;;
431                 *)    AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
432 @@ -434,7 +441,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 @@ -467,6 +476,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.7.orig/ld/configure binutils-2.14.90.0.7/ld/configure
451 --- binutils-2.14.90.0.7.orig/ld/configure      2003-05-05 15:46:49.000000000 -0600
452 +++ binutils-2.14.90.0.7/ld/configure   2004-04-20 01:32:29.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.7.orig/ld/configure.tgt binutils-2.14.90.0.7/ld/configure.tgt
466 --- binutils-2.14.90.0.7.orig/ld/configure.tgt  2003-10-29 10:37:48.000000000 -0700
467 +++ binutils-2.14.90.0.7/ld/configure.tgt       2004-04-20 01:32:29.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 @@ -125,7 +128,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 @@ -149,14 +152,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 @@ -256,10 +261,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 @@ -360,7 +368,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 @@ -376,9 +385,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 @@ -422,16 +431,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 @@ -454,6 +467,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.7.orig/libtool.m4 binutils-2.14.90.0.7/libtool.m4
597 --- binutils-2.14.90.0.7.orig/libtool.m4        2003-05-05 15:46:46.000000000 -0600
598 +++ binutils-2.14.90.0.7/libtool.m4     2004-04-20 01:32:29.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.7.orig/ltconfig binutils-2.14.90.0.7/ltconfig
612 --- binutils-2.14.90.0.7.orig/ltconfig  2003-10-29 10:37:47.000000000 -0700
613 +++ binutils-2.14.90.0.7/ltconfig       2004-04-20 01:32:29.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