2003-03-27 Roland McGrath <roland@redhat.com>
[kopensolaris-gnu/glibc.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION([$CVSid$])
3 AC_PREREQ(2.53)dnl              dnl Minimum Autoconf version required.
4 AC_INIT([GNU C Library], [(see version.h)], [glibc])
5 AC_CONFIG_SRCDIR([include/features.h])
6 AC_CONFIG_HEADERS([config.h])
7 AC_CONFIG_AUX_DIR([scripts])
8
9 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
10   AC_MSG_ERROR([you must configure in a separate build directory])
11 fi
12
13 # This will get text that should go into config.make.
14 config_vars=
15
16 # Check for a --with-gmp argument and set gmp-srcdir in config.make.
17 AC_ARG_WITH([gmp],
18             AC_HELP_STRING([--with-gmp=DIRECTORY],
19                            [find GMP source code in DIRECTORY (not needed)]),
20             [
21 case "$with_gmp" in
22 yes) AC_MSG_ERROR([--with-gmp requires an argument; use --with-gmp=DIRECTORY]) ;;
23 ''|no) ;;
24 *) config_vars="$config_vars
25 gmp-srcdir = $withval" ;;
26 esac
27 ])
28 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
29 AC_ARG_WITH([gd],
30             AC_HELP_STRING([--with-gd=DIR],
31                            [find libgd include dir and library with prefix DIR]),
32             [dnl
33 case "$with_gd" in
34 yes|''|no) ;;
35 *) libgd_include="-I$withval/include"
36    libgd_ldflags="-L$withval/lib" ;;
37 esac
38 ])
39 AC_ARG_WITH([gd-include],
40             AC_HELP_STRING([--with-gd-include=DIR],
41                            [find libgd include files in DIR]),
42             [dnl
43 case "$with_gd_include" in
44 ''|no) ;;
45 *) libgd_include="-I$withval" ;;
46 esac
47 ])
48 AC_ARG_WITH([gd-lib],
49             AC_HELP_STRING([--with-gd-lib=DIR],
50                            [find libgd library files in DIR]),
51             [dnl
52 case "$with_gd_lib" in
53 ''|no) ;;
54 *) libgd_ldflags="-L$withval" ;;
55 esac
56 ])
57
58 if test -n "$libgd_include"; then
59   config_vars="$config_vars
60 CFLAGS-memusagestat.c = $libgd_include"
61 fi
62 if test -n "$libgd_ldflags"; then
63   config_vars="$config_vars
64 libgd-LDFLAGS = $libgd_ldflags"
65 fi
66
67 dnl Arguments to specify presence of other packages/features.
68 AC_ARG_WITH([fp],
69             AC_HELP_STRING([--with-fp],
70                            [if using floating-point hardware @<:@default=yes@:>@]),
71             [with_fp=$withval],
72             [with_fp=yes])
73 AC_SUBST(with_fp)
74 AC_ARG_WITH([binutils],
75             AC_HELP_STRING([--with-binutils=PATH],
76                            [specify location of binutils (as and ld)]),
77             [path_binutils=$withval],
78             [path_binutils=''])
79 AC_ARG_WITH([elf],
80             AC_HELP_STRING([--with-elf],
81                            [if using the ELF object format]),
82             [elf=$withval],
83             [elf=no])
84 AC_ARG_WITH([xcoff],
85             AC_HELP_STRING([--with-xcoff],
86                            [if using the XCOFF object format]),
87             [xcoff=$withval],
88             [xcoff=no])
89 AC_ARG_WITH([cvs],
90             AC_HELP_STRING([--without-cvs],
91                            [if CVS should not be used]),
92             [with_cvs=$withval],
93             [with_cvs=yes])
94 if test "$with_cvs" = yes; then
95   if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
96   then
97     with_cvs=no
98   fi
99 fi
100 AC_SUBST(with_cvs)
101
102 AC_ARG_WITH([headers],
103             AC_HELP_STRING([--with-headers=PATH],
104                            [location of system headers to use
105                             (for example /usr/src/linux/include)
106                             @<:@default=compiler default@:>@]),
107             [sysheaders=$withval],
108             [sysheaders=''])
109
110 AC_ARG_ENABLE([sanity-checks],
111               AC_HELP_STRING([--disable-sanity-checks],
112                              [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
113               [enable_sanity=$enableval],
114               [enable_sanity=yes])
115
116 AC_SUBST(enable_check_abi)
117 AC_ARG_ENABLE([check-abi],
118               AC_HELP_STRING([--enable-check-abi],
119                              [do "make check-abi" in "make check" (no/warn/yes)
120                               @<:@default=no@:>@]),
121               [enable_check_abi=$enableval],
122               [enable_check_abi=no])
123
124 dnl Arguments to enable or disable building the static, shared, profiled,
125 dnl and -fomit-frame-pointer libraries.
126 dnl I've disabled this for now since we cannot build glibc without static
127 dnl libraries built in the moment.
128 dnl AC_ARG_ENABLE([static],
129 dnl               AC_HELP_STRING([--enable-static],
130 dnl                              [build static library @<:@default=yes@:>@]),
131 dnl               [static=$enableval],
132 dnl               [static=yes])
133 static=yes
134 AC_ARG_ENABLE([shared],
135               AC_HELP_STRING([--enable-shared],
136                              [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
137               [shared=$enableval],
138               [shared=default])
139 AC_ARG_ENABLE([profile],
140               AC_HELP_STRING([--enable-profile],
141                              [build profiled library @<:@default=yes@:>@]),
142               [profile=$enableval],
143               [profile=yes])
144 AC_ARG_ENABLE([omitfp],
145               AC_HELP_STRING([--enable-omitfp],
146                              [build undebuggable optimized library @<:@default=no@:>@]),
147               [omitfp=$enableval],
148               [omitfp=no])
149 AC_ARG_ENABLE([bounded],
150               AC_HELP_STRING([--enable-bounded],
151                              [build with runtime bounds checking @<:@default=no@:>@]),
152               [bounded=$enableval],
153               [bounded=no])
154 AC_ARG_ENABLE([versioning],
155               AC_HELP_STRING([--disable-versioning],
156                              [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
157               [enable_versioning=$enableval],
158               [enable_versioning=yes])
159
160 AC_ARG_ENABLE([oldest-abi],
161               AC_HELP_STRING([--enable-oldest-abi=ABI],
162                              [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
163               [oldest_abi=$enableval],
164               [oldest_abi=no])
165 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
166   oldest_abi=default
167 else
168   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
169 fi
170 AC_SUBST(oldest_abi)
171
172 dnl Generic infrastructure for drop-in additions to libc.
173 AC_ARG_ENABLE([add-ons],
174               AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
175                              [configure and build add-ons in DIR1,DIR2,...  search for add-ons if no parameter given]),
176   [case "$enableval" in
177     yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
178          test "$add_ons" = "*" && add_ons= ;;
179     *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
180    esac],
181   [add_ons=])
182
183 dnl Let the user avoid using TLS.  Don't know why but...
184 dnl XXX For now we disable support by default.
185 AC_ARG_WITH([tls],
186             AC_HELP_STRING([--with-tls],
187                            [enable support for TLS]),
188             [usetls=$withval],
189             [usetls=no])
190
191 AC_ARG_WITH([__thread],
192             AC_HELP_STRING([--without-__thread],
193                            [do not use TLS features even when supporting them]),
194             [use__thread=$withval],
195             [use__thread=yes])
196
197 AC_ARG_ENABLE([hidden-plt],
198               AC_HELP_STRING([--disable-hidden-plt],
199                              [do not hide internal function calls to avoid PLT]),
200               [hidden=$enableval],
201               [hidden=yes])
202 if test "x$hidden" = xno; then
203   AC_DEFINE(NO_HIDDEN)
204 fi
205
206 AC_CONFIG_SUBDIRS([ ])dnl Bonehead new Autoconf whines if we do it cleanly.
207 add_ons_pfx=
208 if test x"$add_ons" != x; then
209   for f in $add_ons; do
210     # Some sanity checks
211     if test "$f" = "crypt"; then
212       AC_MSG_ERROR([
213 *** It seems that you're using an old \`crypt' add-on.  crypt is now
214 *** part of glibc and using the old add-on will not work with this
215 *** release.  Start again with fresh sources and without the old
216 *** \`crypt' add-on.])
217     fi
218     if test "$f" = "localedata"; then
219       AC_MSG_ERROR([
220 *** It seems that you're using an old \`localedata' add-on.  localedata
221 *** is now part of glibc and using the old add-on will not work with
222 *** this release.  Start again with fresh sources and without the old
223 *** \`localedata' add-on.])
224     fi
225     # Test whether such a subdir really exists.
226     if test -d $srcdir/$f; then
227       add_ons_pfx="$add_ons_pfx $f/"
228       dnl This variable is what AC_CONFIG_SUBDIRS is supposed to set,
229       dnl but the new Autoconf maintainers don't care about compatibility
230       dnl so we cannot use it normally any more without complaints.
231       subdirs="$subdirs $f"
232     else
233       AC_MSG_ERROR(add-on directory \"$f\" does not exist)
234     fi
235   done
236 fi
237
238 dnl On some platforms we cannot use dynamic loading.  We must provide
239 dnl static NSS modules.
240 AC_ARG_ENABLE([static-nss],
241               AC_HELP_STRING([--enable-static-nss],
242                              [build static NSS modules @<:@default=no@:>@]),
243               [static_nss=$enableval],
244               [static_nss=no])
245 dnl Enable static NSS also if we build no shared objects.
246 if test x"$static_nss" = xyes || test x"$shared" = xno; then
247   static_nss=yes
248   AC_DEFINE(DO_STATIC_NSS)
249 fi
250
251 AC_ARG_ENABLE([force-install],
252               AC_HELP_STRING([--disable-force-install],
253                              [don't force installation of files from this package, even if they are older than the installed files]),
254               [force_install=$enableval],
255               [force_install=yes])
256 AC_SUBST(force_install)
257
258 dnl On some platforms we allow dropping compatibility with all kernel
259 dnl versions.
260 AC_ARG_ENABLE([kernel],
261               AC_HELP_STRING([--enable-kernel=VERSION],
262                              [compile for compatibility with kernel not older than VERSION]),
263               [minimum_kernel=$enableval],
264               [])
265 dnl Prevent unreasonable values.
266 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
267   # Better nothing than this.
268   minimum_kernel=""
269 else
270   if test "$minimum_kernel" = current; then
271     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
272   fi
273 fi
274
275 dnl For the development we sometimes want gcc to issue even more warnings.
276 dnl This is not the default since many of the extra warnings are not
277 dnl appropriate.
278 AC_ARG_ENABLE([all-warnings],
279               AC_HELP_STRING([--enable-all-warnings],
280                              [enable all useful warnings gcc can issue]),
281               [all_warnings=$enableval],
282               [])
283 AC_SUBST(all_warnings)
284
285 AC_CANONICAL_HOST
286
287 # The way shlib-versions is used to generate soversions.mk uses a
288 # fairly simplistic model for name recognition that can't distinguish
289 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
290 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
291 # tell.  This doesn't get used much beyond that, so it's fairly safe.
292 case "$host_os" in
293 linux*)
294   ;;
295 gnu*)
296   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
297   ;;
298 esac
299
300 # We keep the original values in `$config_*' and never modify them, so we
301 # can write them unchanged into config.make.  Everything else uses
302 # $machine, $vendor, and $os, and changes them whenever convenient.
303 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
304
305 # Don't allow vendor == "unknown"
306 test "$config_vendor" = unknown && config_vendor=
307 config_os="`echo $config_os | sed 's/^unknown-//'`"
308
309 # Some configurations imply other options.
310 case "$host_os" in
311 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
312   # These systems always use GNU tools.
313   gnu_ld=yes gnu_as=yes ;;
314 esac
315 case "$host_os" in
316 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
317 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
318   ;;
319 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
320   # These systems (almost) always use the ELF format.
321   elf=yes
322   ;;
323 aix*)
324   # These systems are always xcoff
325   xcoff=yes
326   elf=no
327   ;;
328 esac
329
330 machine=$config_machine
331 vendor=$config_vendor
332 os=$config_os
333
334 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
335 # Unify this here.
336 if test "$machine" = rs6000; then
337   machine="powerpc"
338 fi
339
340 # Braindead PowerPC box with absolutely no FPU.
341 case "$machine-$host_os" in
342   powerpc*-*soft)
343     with_fp=no
344     ;;
345 esac
346
347 ###
348 ### I put this here to prevent those annoying emails from people who cannot
349 ### read and try to compile glibc on unsupported platforms.  --drepper
350 ###
351 ### By using the undocumented --enable-hacker-mode option for configure
352 ### one can skip this test to make the configuration not fail for unsupported
353 ### platforms.
354 ###
355 if test -z "$enable_hacker_mode"; then
356   case "$machine-$host_os" in
357   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
358     ;;
359   *)
360     echo "*** The GNU C library is currently not available for this platform."
361     echo "*** So far nobody cared to port it and if there is no volunteer it"
362     echo "*** might never happen.  So, if you have interest to see glibc on"
363     echo "*** this platform visit"
364     echo "***   http://www.gnu.org/software/libc/porting.html"
365     echo "*** and join the group of porters"
366     exit 1
367     ;;
368   esac
369 fi
370
371 dnl We need to use [ and ] for other purposes for a while now.
372 changequote(,)dnl
373 # Expand the configuration machine name into a subdirectory by architecture
374 # type and particular chip.
375 case "$machine" in
376 a29k | am29000) base_machine=a29k machine=a29k ;;
377 alpha*)         base_machine=alpha machine=alpha/$machine ;;
378 arm*)           base_machine=arm machine=arm/arm32/$machine ;;
379 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
380 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
381 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
382 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
383 i[3456]86)      base_machine=i386 machine=i386/$machine ;;
384 ia64)           base_machine=ia64 machine=ia64 ;;
385 m680?0)         base_machine=m68k machine=m68k/$machine ;;
386 m68k)           base_machine=m68k machine=m68k/m68020 ;;
387 m88???)         base_machine=m88k machine=m88k/$machine ;;
388 m88k)           base_machine=m88k machine=m88k/m88100 ;;
389 mips64*)        base_machine=mips64 machine=mips/mips64/$machine ;;
390 mips*)          base_machine=mips machine=mips/$machine ;;
391 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
392 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
393 s390)           base_machine=s390 machine=s390/s390-32 ;;
394 s390x)          base_machine=s390 machine=s390/s390-64 ;;
395 sh3*)           base_machine=sh machine=sh/sh3 ;;
396 sh4*)           base_machine=sh machine=sh/sh4 ;;
397 sparc | sparcv[67])
398                 base_machine=sparc machine=sparc/sparc32 ;;
399 sparcv8 | supersparc | hypersparc)
400                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
401 sparcv8plus | sparcv8plusa | sparcv9)
402                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
403 sparcv8plusb | sparcv9b)
404                 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
405 sparc64 | ultrasparc)
406                 base_machine=sparc machine=sparc/sparc64 ;;
407 sparc64b | ultrasparc3)
408                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
409 thumb*)         base_machine=thumb machine=arm/thumb/$machine ;;
410 *)              base_machine=$machine ;;
411 esac
412 changequote([,])dnl
413 AC_SUBST(base_machine)
414
415 if test "$base_machine" = "i386"; then
416   AC_DEFINE(USE_REGPARMS)
417 fi
418
419 # Compute the list of sysdep directories for this configuration.
420 # This can take a while to compute.
421 sysdep_dir=$srcdir/sysdeps
422 AC_MSG_CHECKING(sysdep dirs)
423 dnl We need to use [ and ] for other purposes for a while now.
424 changequote(,)dnl
425 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
426 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
427
428 case "$os" in
429 gnu*)
430   base_os=mach/hurd ;;
431 netbsd* | 386bsd* | freebsd* | bsdi*)
432   base_os=unix/bsd/bsd4.4 ;;
433 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
434   base_os=unix/bsd ;;
435 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
436   base_os=unix/sysv ;;
437 irix6*)
438   base_os=unix/sysv/irix6/$os ;;
439 solaris[2-9]*)
440   base_os=unix/sysv/sysv4 ;;
441 hpux*)
442   base_os=unix/sysv/hpux/$os ;;
443 aix4.3*)
444   base_os=unix/sysv/aix/aix4.3 ;;
445 none)
446   base_os=standalone ;;
447 *)
448   base_os='' ;;
449 esac
450
451 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
452 tail=$os
453 ostry=$os
454 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
455   ostry="$ostry /$o"
456   tail=$o
457 done
458 o=`echo $tail | sed 's/[0-9]*$//'`
459 if test $o != $tail; then
460   ostry="$ostry /$o"
461 fi
462 # For linux-gnu, try linux-gnu, then linux.
463 o=`echo $tail | sed 's/-.*$//'`
464 if test $o != $tail; then
465   ostry="$ostry /$o"
466 fi
467
468 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
469 base=
470 tail=$base_os
471 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
472   set $b
473   base="$base /$1"
474   tail="$2"
475 done
476
477 # For sparc/sparc32, try sparc/sparc32 and then sparc.
478 mach=
479 tail=$machine
480 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
481   set $m
482   # Prepend the machine's FPU directory unless --without-fp.
483   if test "$with_fp" = yes; then
484     mach="$mach /$1/fpu"
485   else
486     mach="$mach /$1/nofpu"
487   fi
488   mach="$mach /$1"
489   tail="$2"
490 done
491
492 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
493 changequote([,])dnl
494
495 # Find what sysdep directories exist.
496 sysnames=
497 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
498 for d in $add_ons_pfx ''; do
499   for b in $base ''; do
500     for m0 in $mach ''; do
501       for v in /$vendor ''; do
502         test "$v" = / && continue
503         for o in /$ostry ''; do
504           test "$o" = / && continue
505           for m in $mach ''; do
506             if test "$m0$b$v$o$m"; then
507               try="${d}sysdeps$m0$b$v$o$m"
508               test -n "$enable_debug_configure" &&
509               echo "$0 [DEBUG]: try $try" >&2
510               if test -d $srcdir/$try; then
511                 sysnames="$sysnames $try"
512                 { test -n "$o" || test -n "$b"; } && os_used=t
513                 { test -n "$m" || test -n "$m0"; } && machine_used=t
514               fi
515             fi
516           done
517         done
518       done
519     done
520   done
521 done
522 IFS="$ac_save_ifs"
523
524 if test -z "$os_used" && test "$os" != none; then
525   AC_MSG_ERROR(Operating system $os is not supported.)
526 fi
527 if test -z "$machine_used" && test "$machine" != none; then
528   AC_MSG_ERROR(The $machine is not supported.)
529 fi
530
531 # We have now validated the configuration.
532
533
534 # If using ELF, look for an `elf' subdirectory of each machine directory.
535 # We prepend these rather than inserting them whereever the machine appears
536 # because things specified by the machine's ELF ABI should override
537 # OS-specific things, and should always be the same for any OS on the
538 # machine (otherwise what's the point of an ABI?).
539 if test "$elf" = yes; then
540   elf_dirs=
541   for d in $add_ons_pfx ''; do
542     for m in $mach; do
543       if test -d $srcdir/${d}sysdeps$m/elf; then
544         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
545       fi
546     done
547   done
548   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
549 fi
550
551
552 # Expand the list of system names into a full list of directories
553 # from each element's parent name and Implies file (if present).
554 set $sysnames
555 names=
556 while test $# -gt 0; do
557   name=$1
558   shift
559
560   case " $names " in *" $name "*)
561     # Already in the list.
562     continue
563   esac
564
565   # Report each name as we discover it, so there is no long pause in output.
566   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
567
568   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
569
570   case $name in
571     /*) xsrcdir= ;;
572     *)  xsrcdir=$srcdir/ ;;
573   esac
574   test -n "$enable_debug_configure" &&
575   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
576
577   if test -f $xsrcdir$name/Implies; then
578     # Collect more names from the `Implies' file (removing comments).
579     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
580     implied=
581     for x in $implied_candidate; do
582       found=no
583       if test -d $xsrcdir$name_base/$x; then
584         implied="$implied $name_base/$x";
585         found=yes
586       fi
587       for d in $add_ons_pfx ''; do
588         try="${d}sysdeps/$x"
589         case $d in
590          /*) try_srcdir= ;;
591          *) try_srcdir=$srcdir/ ;;
592         esac
593         test -n "$enable_debug_configure" &&
594          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
595         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
596         then
597           implied="$implied $try"
598           found=yes
599         fi
600       done
601       if test $found = no; then
602         AC_MSG_WARN($name/Implies specifies nonexistent $x)
603       fi
604     done
605   else
606     implied=
607   fi
608
609   # Add NAME to the list of names.
610   names="$names $name"
611
612   # Find the parent of NAME, using the empty string if it has none.
613 changequote(,)dnl
614   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
615 changequote([,])dnl
616
617   # Add the names implied by NAME, and NAME's parent (if it has one), to
618   # the list of names to be processed (the argument list).  We prepend the
619   # implied names to the list and append the parent.  We want implied
620   # directories to come before further directories inferred from the
621   # configuration components; this ensures that for sysv4, unix/common
622   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
623   # after sysv4).
624   sysnames="`echo $implied $* $parent`"
625   test -n "$sysnames" && set $sysnames
626 done
627
628 # Add the default directories.
629 default_sysnames=sysdeps/generic
630 if test "$elf" = yes; then
631   default_sysnames="sysdeps/generic/elf $default_sysnames"
632 fi
633 sysnames="$names $default_sysnames"
634 AC_SUBST(sysnames)
635 # The other names were emitted during the scan.
636 AC_MSG_RESULT($default_sysnames)
637
638
639 ### Locate tools.
640
641 AC_PROG_INSTALL
642 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
643   # The makefiles need to use a different form to find it in $srcdir.
644   INSTALL='\$(..)./scripts/install-sh -c'
645 fi
646 AC_PROG_LN_S
647
648 AC_PROG_CC
649 if test $host != $build; then
650   AC_CHECK_PROGS(BUILD_CC, gcc cc)
651 fi
652 AC_SUBST(cross_compiling)
653 AC_PROG_CPP
654 LIBC_PROG_BINUTILS
655 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
656
657 # Accept binutils 2.13 or newer.
658 AC_CHECK_PROG_VER(AS, $AS, --version,
659                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
660                   [2.1[3-9]*], AS=: critic_missing=t)
661 AC_CHECK_PROG_VER(LD, $LD, --version,
662                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
663                   [2.1[3-9]*], LD=: critic_missing=t)
664
665 # We need the physical current working directory.  We cannot use the
666 # "pwd -P" shell builtin since that's not portable.  Instead we try to
667 # find a pwd binary.  Note that assigning to the PWD environment
668 # variable might have some interesting side effects, so we don't do
669 # that.
670 AC_PATH_PROG(PWD_P, pwd, no)
671 if test "$PWD_P" = no; then
672   AC_MSG_ERROR(*** A pwd binary could not be found.)
673 fi
674
675 # These programs are version sensitive.
676 AC_CHECK_TOOL_PREFIX
677 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
678   [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
679   critic_missing="$critic_missing gcc")
680 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
681   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
682   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
683
684 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
685   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
686   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
687   MSGFMT=: aux_missing="$aux_missing msgfmt")
688 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
689   [GNU texinfo.* \([0-9][0-9.]*\)],
690   [4.*],
691   MAKEINFO=: aux_missing="$aux_missing makeinfo")
692 AC_CHECK_PROG_VER(SED, sed, --version,
693   [GNU sed version \([0-9]*\.[0-9.]*\)],
694   [3.0[2-9]*|3.[1-9]*|[4-9]*],
695   SED=: aux_missing="$aux_missing sed")
696
697 if test "x$with_cvs" != xyes; then
698   AC_CHECK_PROGS(AUTOCONF, autoconf, no)
699   case "x$AUTOCONF" in
700   xno|x|x:) AUTOCONF=no ;;
701   *)
702     AC_CACHE_CHECK(dnl
703 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
704     if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
705       libc_cv_autoconf_works=yes
706     else
707       libc_cv_autoconf_works=no
708     fi])
709     test $libc_cv_autoconf_works = yes || AUTOCONF=no
710     ;;
711   esac
712   test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf"
713 fi
714
715 test -n "$critic_missing" && AC_MSG_ERROR([
716 *** These critical programs are missing or too old:$critic_missing
717 *** Check the INSTALL file for required versions.])
718
719 test -n "$aux_missing" && AC_MSG_WARN([
720 *** These auxiliary programs are missing or incompatible versions:$aux_missing
721 *** some features will be disabled.
722 *** Check the INSTALL file for required versions.])
723
724 # glibcbug.in wants to know the compiler version.
725 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
726 AC_SUBST(CCVERSION)
727
728 # if using special system headers, find out the compiler's sekrit
729 # header directory and add that to the list.  NOTE: Only does the right
730 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
731 if test -n "$sysheaders"; then
732   ccheaders=`$CC -print-file-name=include`
733   SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
734 fi
735 AC_SUBST(SYSINCLUDES)
736
737 # check if ranlib is necessary
738 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
739 cat > conftest.c <<EOF
740 int a;
741 char b;
742 void c(void) {}
743 EOF
744 $CC $CFLAGS -c conftest.c
745 $AR cr conftest.a conftest.o
746 cp conftest.a conftest2.a
747 $RANLIB conftest.a
748 if cmp -s conftest.a conftest2.a; then
749   libc_cv_ranlib_necessary=no
750 else
751   libc_cv_ranlib_necessary=yes
752 fi
753 rm -rf conftest*])
754 if test "$libc_cv_ranlib_necessary" = no; then
755  RANLIB=:
756 fi
757
758 # Test if LD_LIBRARY_PATH contains the notation for the current directory
759 # since this would lead to problems installing/building glibc.
760 # LD_LIBRARY_PATH contains the current directory if one of the following
761 # is true:
762 # - one of the terminals (":" and ";") is the first or last sign
763 # - two terminals occur directly after each other
764 # - the path contains an element with a dot in it
765 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
766 changequote(,)dnl
767 case ${LD_LIBRARY_PATH} in
768   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
769     ld_library_path_setting="contains current directory"
770     ;;
771   *)
772     ld_library_path_setting="ok"
773     ;;
774 esac
775 changequote([,])dnl
776 AC_MSG_RESULT($ld_library_path_setting)
777 if test "$ld_library_path_setting" != "ok"; then
778 AC_MSG_ERROR([
779 *** LD_LIBRARY_PATH shouldn't contain the current directory when
780 *** building glibc. Please change the environment variable
781 *** and run configure again.])
782 fi
783
784 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
785 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
786   libc_cv_gcc_static_libgcc=
787 else
788   libc_cv_gcc_static_libgcc=-static-libgcc
789 fi])
790 AC_SUBST(libc_cv_gcc_static_libgcc)
791
792 AC_PATH_PROG(BASH, bash, no)
793 if test "$BASH" != no &&
794    $BASH -c 'test "$BASH_VERSINFO" \
795              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
796   libc_cv_have_bash2=yes
797 else
798   libc_cv_have_bash2=no
799 fi
800 AC_SUBST(libc_cv_have_bash2)
801
802 dnl We need a ksh compatible shell for tzselect.
803 if test "$BASH" = no; then
804   AC_PATH_PROG(KSH, ksh, no)
805   if test "$KSH" = no; then
806     libc_cv_have_ksh=no
807   else
808     libc_cv_have_ksh=yes
809   fi
810 else
811   KSH="$BASH"
812   AC_SUBST(KSH)
813   libc_cv_have_ksh=yes
814 fi
815 AC_SUBST(libc_cv_have_ksh)
816
817 AC_PROG_AWK
818 AC_PATH_PROG(PERL, perl, no)
819 if test "$PERL" != no &&
820    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
821   PERL=no
822 fi
823 AC_PATH_PROG(INSTALL_INFO, install-info, no,
824              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
825 if test "$INSTALL_INFO" != "no"; then
826 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
827  [mkdir conftest.d
828   # There is a hard ^_ on the next line.  I am open to better ideas.
829   (echo '\1f'
830   echo 'File: dir       Node: Top       This is the top of the INFO tree'
831   echo '* Menu:') >conftest.d/dir
832   (echo 'INFO-DIR-SECTION i-d-s works'
833   echo 'START-INFO-DIR-ENTRY'
834   echo '* Prog: (prog).   Program.'
835   echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
836   if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AS_MESSAGE_LOG_FD 2>&1
837   then
838     if grep -s 'i-d-s works' conftest.d/dir >/dev/null
839     then libc_cv_old_debian_install_info=no
840     else libc_cv_old_debian_install_info=yes
841     fi
842   else libc_cv_old_debian_install_info=no testfailed=t
843   fi
844   rm -fr conftest.d])
845 if test -n "$testfailed"
846 then AC_MSG_WARN([install-info errored out, check config.log])
847 fi
848 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
849 fi
850 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
851
852 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
853
854 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
855 echo '#include <stddef.h>
856 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
857 if eval "$ac_cpp conftest.c 2>/dev/null" \
858 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
859   libc_cv_signed_size_t=no
860 else
861   libc_cv_signed_size_t=yes
862 fi
863 rm -f conftest*])
864 if test $libc_cv_signed_size_t = yes; then
865   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
866   cat >> confdefs.h <<\EOF
867 #undef __SIZE_TYPE__
868 #define __SIZE_TYPE__ unsigned
869 EOF
870 fi
871
872 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
873 AC_TRY_COMPILE(dnl
874 [#define __need_size_t
875 #define __need_wchar_t
876 #include <stddef.h>
877 #define __need_NULL
878 #include <stddef.h>], [size_t size; wchar_t wchar;
879 #ifdef offsetof
880 #error stddef.h ignored __need_*
881 #endif
882 if (&size == NULL || &wchar == NULL) abort ();],
883                libc_cv_friendly_stddef=yes,
884                libc_cv_friendly_stddef=no)])
885 if test $libc_cv_friendly_stddef = yes; then
886   config_vars="$config_vars
887 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
888 fi
889
890 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
891                libc_cv_need_minus_P, [dnl
892 cat > conftest.S <<EOF
893 #include "confdefs.h"
894 /* Nothing whatsoever.  */
895 EOF
896 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
897   libc_cv_need_minus_P=no
898 else
899   libc_cv_need_minus_P=yes
900 fi
901 rm -f conftest*])
902 if test $libc_cv_need_minus_P = yes; then
903   config_vars="$config_vars
904 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
905 fi
906
907 AC_MSG_CHECKING(whether .text pseudo-op must be used)
908 AC_CACHE_VAL(libc_cv_dot_text, [dnl
909 cat > conftest.s <<EOF
910 .text
911 EOF
912 libc_cv_dot_text=
913 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
914   libc_cv_dot_text=.text
915 fi
916 rm -f conftest*])
917 if test -z "$libc_cv_dot_text"; then
918   AC_MSG_RESULT(no)
919 else
920   AC_MSG_RESULT(yes)
921 fi
922
923 AC_CACHE_CHECK(for assembler global-symbol directive,
924                libc_cv_asm_global_directive, [dnl
925 libc_cv_asm_global_directive=UNKNOWN
926 for ac_globl in .globl .global .EXPORT; do
927   cat > conftest.s <<EOF
928         ${libc_cv_dot_text}
929         ${ac_globl} foo
930 foo:
931 EOF
932   if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
933     libc_cv_asm_global_directive=${ac_globl}
934   fi
935   rm -f conftest*
936   test $libc_cv_asm_global_directive != UNKNOWN && break
937 done])
938 if test $libc_cv_asm_global_directive = UNKNOWN; then
939   AC_MSG_ERROR(cannot determine asm global directive)
940 else
941   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
942 fi
943
944 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
945 cat > conftest.s <<EOF
946 ${libc_cv_dot_text}
947 foo:
948 .set glibc_conftest_frobozz,foo
949 $libc_cv_asm_global_directive glibc_conftest_frobozz
950 EOF
951 # The alpha-dec-osf1 assembler gives only a warning for `.set'
952 # (but it doesn't work), so we must do a linking check to be sure.
953 cat > conftest1.c <<\EOF
954 extern int glibc_conftest_frobozz;
955 main () { printf ("%d\n", glibc_conftest_frobozz); }
956 EOF
957 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
958             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
959   libc_cv_asm_set_directive=yes
960 else
961   libc_cv_asm_set_directive=no
962 fi
963 rm -f conftest*])
964 if test $libc_cv_asm_set_directive = yes; then
965   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
966 fi
967
968 AC_CACHE_CHECK(for assembler .type directive prefix,
969                libc_cv_asm_type_prefix, [dnl
970 libc_cv_asm_type_prefix=no
971 for ac_try_prefix in '@' '%' '#'; do
972   cat > conftest.s <<EOF
973         ${libc_cv_dot_text}
974         ${libc_cv_asm_global_directive} foo
975         .type foo, ${ac_try_prefix}object
976         .size foo, 1
977 foo:
978         .byte 1
979 EOF
980   if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
981     libc_cv_asm_type_prefix=${ac_try_prefix}
982   fi
983   rm -f conftest*
984   test "x$libc_cv_asm_type_prefix" != xno && break
985 done])
986 if test "x$libc_cv_asm_type_prefix" != xno; then
987   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
988 fi
989
990 # The Aix ld uses global .symbol_names instead of symbol_names.
991 # Unfortunately also used in the PPC64 ELF ABI.
992 case "${os}${machine}" in
993 aix4.3* | linux*powerpc/powerpc64*)
994   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
995 esac
996
997 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
998 [cat > conftest.s <<EOF
999 ${libc_cv_dot_text}
1000 _sym:
1001 .symver _sym,sym@VERS
1002 EOF
1003 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1004   libc_cv_asm_symver_directive=yes
1005 else
1006   libc_cv_asm_symver_directive=no
1007 fi
1008 rm -f conftest*])
1009 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1010 if test $libc_cv_asm_symver_directive = yes; then
1011   cat > conftest.s <<EOF
1012 ${libc_cv_dot_text}
1013 _sym:
1014 .symver _sym,sym@VERS
1015 EOF
1016   cat > conftest.map <<EOF
1017 VERS_1 {
1018         global: sym;
1019 };
1020
1021 VERS_2 {
1022         global: sym;
1023 } VERS_1;
1024 EOF
1025   if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1026     if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
1027                                         -nostartfiles -nostdlib
1028                                         -Wl,--version-script,conftest.map
1029                        1>&AS_MESSAGE_LOG_FD]);
1030     then
1031       libc_cv_ld_version_script_option=yes
1032     else
1033       libc_cv_ld_version_script_option=no
1034     fi
1035   else
1036     libc_cv_ld_version_script_option=no
1037   fi
1038 else
1039   libc_cv_ld_version_script_option=no
1040 fi
1041 rm -f conftest*])
1042 if test $shared != no &&
1043    test $libc_cv_asm_symver_directive = yes &&
1044    test $libc_cv_ld_version_script_option = yes &&
1045    test $enable_versioning = yes; then
1046   VERSIONING=yes
1047   AC_DEFINE(DO_VERSIONING)
1048 else
1049   VERSIONING=no
1050 fi
1051 AC_SUBST(VERSIONING)
1052
1053 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1054   echo "\
1055 *** WARNING: You should not compile GNU libc without versioning. Not using
1056 *** versioning will introduce incompatibilities so that old binaries
1057 *** will not run anymore.
1058 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1059 fi
1060 if test $elf = yes; then
1061   AC_CACHE_CHECK(for .previous assembler directive,
1062                  libc_cv_asm_previous_directive, [dnl
1063   cat > conftest.s <<EOF
1064 .section foo_section
1065 .previous
1066 EOF
1067   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1068     libc_cv_asm_previous_directive=yes
1069   else
1070     libc_cv_asm_previous_directive=no
1071   fi
1072   rm -f conftest*])
1073   if test $libc_cv_asm_previous_directive = yes; then
1074     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1075   else
1076     AC_CACHE_CHECK(for .popsection assembler directive,
1077                    libc_cv_asm_popsection_directive, [dnl
1078     cat > conftest.s <<EOF
1079 .pushsection foo_section
1080 .popsection
1081 EOF
1082     if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1083       libc_cv_asm_popsection_directive=yes
1084     else
1085       libc_cv_asm_popsection_directive=no
1086     fi
1087     rm -f conftest*])
1088     if test $libc_cv_asm_popsection_directive = yes; then
1089       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1090     fi
1091   fi
1092   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1093                  libc_cv_asm_protected_directive, [dnl
1094   cat > conftest.s <<EOF
1095 .protected foo
1096 foo:
1097 .hidden bar
1098 bar:
1099 EOF
1100   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1101     libc_cv_asm_protected_directive=yes
1102   else
1103     libc_cv_asm_protected_directive=no
1104   fi
1105   rm -f conftest*])
1106   AC_SUBST(libc_cv_asm_protected_directive)
1107   AC_DEFINE(HAVE_PROTECTED)
1108   AC_DEFINE(HAVE_HIDDEN)
1109
1110   if test $libc_cv_asm_protected_directive = yes; then
1111     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1112                  libc_cv_visibility_attribute,
1113                  [cat > conftest.c <<EOF
1114                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1115                   int bar __attribute__ ((visibility ("protected"))) = 1;
1116 EOF
1117                   libc_cv_visibility_attribute=no
1118                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1119                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1120                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1121                         libc_cv_visibility_attribute=yes
1122                       fi
1123                     fi
1124                   fi
1125                   rm -f conftest.[cs]
1126                  ])
1127     if test $libc_cv_visibility_attribute = yes; then
1128       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1129     fi
1130   fi
1131
1132   if test $libc_cv_visibility_attribute = yes; then
1133     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1134                  libc_cv_broken_visibility_attribute,
1135                  [cat > conftest.c <<EOF
1136                   int foo (int x);
1137                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1138                   int bar (int x) { return x; }
1139 EOF
1140                   libc_cv_broken_visibility_attribute=yes
1141                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1142 changequote(,)dnl
1143                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1144 changequote([,])dnl
1145                       libc_cv_broken_visibility_attribute=no
1146                     fi
1147                   fi
1148                   rm -f conftest.c conftest.s
1149                  ])
1150     if test $libc_cv_broken_visibility_attribute = yes; then
1151       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1152     fi
1153   fi
1154
1155   AC_CACHE_CHECK(for broken __attribute__((alias())),
1156                  libc_cv_broken_alias_attribute,
1157                  [cat > conftest.c <<EOF
1158                   extern int foo (int x) __asm ("xyzzy");
1159                   int bar (int x) { return x; }
1160                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1161                   extern int dfoo;
1162                   extern __typeof (dfoo) dfoo __asm ("abccb");
1163                   int dfoo = 1;
1164 EOF
1165                   libc_cv_broken_alias_attribute=yes
1166                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1167                     if grep 'xyzzy' conftest.s >/dev/null &&
1168                        grep 'abccb' conftest.s >/dev/null; then
1169                       libc_cv_broken_alias_attribute=no
1170                     fi
1171                   fi
1172                   rm -f conftest.c conftest.s
1173                  ])
1174   if test $libc_cv_broken_alias_attribute = yes; then
1175     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1176   fi
1177
1178   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1179     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1180                  libc_cv_have_sdata_section,
1181                  [echo "int i;" > conftest.c
1182                   libc_cv_have_sdata_section=no
1183                   if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1184                      | grep '\.sdata' >/dev/null; then
1185                     libc_cv_have_sdata_section=yes
1186                   fi
1187                   rm -f conftest.c conftest.so
1188                  ])
1189     if test $libc_cv_have_sdata_section = yes; then
1190       AC_DEFINE(HAVE_SDATA_SECTION)
1191     fi
1192   fi
1193
1194   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1195                  libc_cv_initfinit_array, [dnl
1196   cat > conftest.c <<EOF
1197 int _start (void) { return 0; }
1198 int __start (void) { return 0; }
1199 int foo (void) { return 1; }
1200 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1201 EOF
1202   if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1203                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1204   then
1205     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1206       libc_cv_initfinit_array=yes
1207     else
1208       libc_cv_initfinit_array=no
1209     fi
1210   else
1211     libc_cv_initfinit_array=no
1212   fi
1213   rm -f conftest*])
1214   AC_SUBST(libc_cv_initfinit_array)
1215   if test $libc_cv_initfinit_array = yes; then
1216     AC_DEFINE(HAVE_INITFINI_ARRAY)
1217   fi
1218
1219   AC_CACHE_CHECK(for -z nodelete option,
1220                  libc_cv_z_nodelete, [dnl
1221   cat > conftest.c <<EOF
1222 int _start (void) { return 42; }
1223 EOF
1224   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1225                      -nostartfiles -nostdlib
1226                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1227   then
1228     libc_cv_z_nodelete=yes
1229   else
1230     libc_cv_z_nodelete=no
1231   fi
1232   rm -f conftest*])
1233   AC_SUBST(libc_cv_z_nodelete)
1234
1235   AC_CACHE_CHECK(for -z nodlopen option,
1236                  libc_cv_z_nodlopen, [dnl
1237   cat > conftest.c <<EOF
1238 int _start (void) { return 42; }
1239 EOF
1240   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1241                         -nostartfiles -nostdlib
1242                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1243   then
1244     libc_cv_z_nodlopen=yes
1245   else
1246     libc_cv_z_nodlopen=no
1247   fi
1248   rm -f conftest*])
1249   AC_SUBST(libc_cv_z_nodlopen)
1250
1251   AC_CACHE_CHECK(for -z initfirst option,
1252                  libc_cv_z_initfirst, [dnl
1253   cat > conftest.c <<EOF
1254 int _start (void) { return 42; }
1255 EOF
1256   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1257                         -nostartfiles -nostdlib
1258                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1259   then
1260     libc_cv_z_initfirst=yes
1261   else
1262     libc_cv_z_initfirst=no
1263   fi
1264   rm -f conftest*])
1265   AC_SUBST(libc_cv_z_initfirst)
1266
1267   AC_CACHE_CHECK(for -Bgroup option,
1268                  libc_cv_Bgroup, [dnl
1269   cat > conftest.c <<EOF
1270 int _start (void) { return 42; }
1271 EOF
1272   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1273   then
1274     libc_cv_Bgroup=yes
1275   else
1276     libc_cv_Bgroup=no
1277   fi
1278   rm -f conftest*])
1279   AC_SUBST(libc_cv_Bgroup)
1280
1281   AC_CACHE_CHECK(for -z combreloc,
1282                  libc_cv_z_combreloc, [dnl
1283   cat > conftest.c <<EOF
1284 extern int bar (int);
1285 extern int mumble;
1286 int foo (void) { return bar (mumble); }
1287 EOF
1288   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1289                         -nostdlib -nostartfiles
1290                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1291   then
1292 dnl The following test is a bit weak.  We must use a tool which can test
1293 dnl cross-platform since the gcc used can be a cross compiler.  Without
1294 dnl introducing new options this is not easily doable.  Instead use a tool
1295 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1296 dnl look for a section named .rel.dyn.
1297     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1298       libc_cv_z_combreloc=yes
1299     else
1300       libc_cv_z_combreloc=no
1301     fi
1302   else
1303     libc_cv_z_combreloc=no
1304   fi
1305   rm -f conftest*])
1306   if test "$libc_cv_z_combreloc" = yes; then
1307     AC_DEFINE(HAVE_Z_COMBRELOC)
1308   fi
1309 fi
1310 AC_SUBST(libc_cv_z_combreloc)
1311
1312 if test $elf != yes; then
1313   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1314                  [AC_TRY_COMPILE(, [asm (".section .init");
1315                                     asm (".section .fini");
1316                                     asm ("${libc_cv_dot_text}");],
1317                                  libc_cv_have_initfini=yes,
1318                                  libc_cv_have_initfini=no)])
1319   AC_SUBST(libc_cv_have_initfini)dnl
1320   if test $libc_cv_have_initfini = yes; then
1321     AC_DEFINE(HAVE_INITFINI)
1322   fi
1323 fi
1324
1325 if test $elf = yes -a $gnu_ld = yes; then
1326   AC_CACHE_CHECK(whether cc puts quotes around section names,
1327                  libc_cv_have_section_quotes,
1328                  [cat > conftest.c <<EOF
1329                   static const int foo
1330                   __attribute__ ((section ("bar"))) = 1;
1331 EOF
1332                   if ${CC-cc} -S conftest.c -o conftest.s; then
1333                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1334                       libc_cv_have_section_quotes=yes
1335                     else
1336                       libc_cv_have_section_quotes=no
1337                     fi
1338                   else
1339                     libc_cv_have_section_quotes=unknown
1340                   fi
1341                   rm -f conftest.[cs]
1342                  ])
1343   if test $libc_cv_have_section_quotes = yes; then
1344     AC_DEFINE(HAVE_SECTION_QUOTES)
1345   fi
1346 fi
1347
1348 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1349 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1350 [cat > conftest.$ac_ext <<EOF
1351 dnl This sometimes fails to find confdefs.h, for some reason.
1352 dnl [#]line __oline__ "[$]0"
1353 [#]line __oline__ "configure"
1354 #include "confdefs.h"
1355 void underscore_test(void) {
1356 return; }
1357 EOF
1358 if AC_TRY_EVAL(ac_compile); then
1359   if grep _underscore_test conftest* >/dev/null; then
1360     ifelse([$1], , :, [rm -f conftest*
1361     $1])
1362   else
1363     ifelse([$2], , , [rm -f conftest*
1364     $2])
1365   fi
1366 else
1367   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1368   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1369   ifelse([$2], , , [rm -f conftest*
1370   $2])
1371 fi
1372 rm -f conftest*])
1373
1374 if test $elf = yes; then
1375   libc_cv_asm_underscores=no
1376 else
1377   if test $ac_cv_prog_cc_works = yes; then
1378     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1379                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1380                                 libc_cv_asm_underscores=yes,
1381                                 libc_cv_asm_underscores=no)])
1382   else
1383     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1384                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1385                                             libc_cv_asm_underscores=no)])
1386   fi
1387 fi
1388 if test $libc_cv_asm_underscores = no; then
1389   AC_DEFINE(NO_UNDERSCORES)
1390 fi
1391
1392 if test $elf = yes; then
1393   libc_cv_weak_symbols=yes
1394 fi
1395
1396 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1397                [dnl
1398 cat > conftest.s <<EOF
1399 ${libc_cv_dot_text}
1400 ${libc_cv_asm_global_directive} foo
1401 foo:
1402 .weak foo
1403 .weak bar; bar = foo
1404 EOF
1405 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1406   libc_cv_asm_weak_directive=yes
1407 else
1408   libc_cv_asm_weak_directive=no
1409 fi
1410 rm -f conftest*])
1411
1412 if test $libc_cv_asm_weak_directive = no; then
1413   AC_CACHE_CHECK(for assembler .weakext directive,
1414                  libc_cv_asm_weakext_directive,
1415                  [dnl
1416 cat > conftest.s <<EOF
1417 ${libc_cv_dot_text}
1418 ${libc_cv_asm_global_directive} foo
1419 foo:
1420 .weakext bar foo
1421 .weakext baz
1422 ${libc_cv_asm_global_directive} baz
1423 baz:
1424 EOF
1425   if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1426     libc_cv_asm_weakext_directive=yes
1427   else
1428     libc_cv_asm_weakext_directive=no
1429   fi
1430   rm -f conftest*])
1431
1432 fi # no .weak
1433
1434 if test $libc_cv_asm_weak_directive = yes; then
1435   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1436 elif test $libc_cv_asm_weakext_directive = yes; then
1437   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1438 fi
1439
1440 dnl The standard hppa assembler uses `;' to start comments and `!'
1441 dnl as a line separator.  CRIS uses `;' to start comments and `@' for
1442 dnl line separator.
1443 case "${host_cpu}-${host_os}" in
1444   cris*)
1445     libc_cv_asm_line_sep='@'
1446     AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1447     ;;
1448   hppa*linux*)
1449   AC_CACHE_CHECK(for assembler line separator,
1450                  libc_cv_asm_line_sep, [dnl
1451   cat > conftest.s <<EOF
1452  nop ; is_old_puffin
1453 EOF
1454   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1455     libc_cv_asm_line_sep='!'
1456   else
1457     if test -z "$enable_hacker_mode"; then
1458       echo "*** You need a newer assembler to compile glibc"
1459       rm -f conftest*
1460       exit 1
1461     fi
1462     libc_cv_asm_line_sep=';'
1463   fi
1464   rm -f conftest*])
1465   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1466   ;;
1467 esac
1468
1469 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1470                libc_cv_cpp_asm_debuginfo, [dnl
1471 cat > conftest.S <<EOF
1472 #include "confdefs.h"
1473
1474 /* comment on
1475    two lines */
1476         ${libc_cv_dot_text}
1477         ${libc_cv_asm_global_directive} foo
1478 foo:
1479         /* Unfortunately this test only works for a real instruction,
1480            not for any of the machine-independent pseudo-ops.
1481            So we just have to assume everybody has a "nop".  */
1482         nop
1483         /* comment */
1484         nop
1485         /* comment */
1486         nop
1487 EOF
1488 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1489    ac_pattern='conftest\.S'
1490    AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1491                    grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1492   libc_cv_cpp_asm_debuginfo=yes
1493 else
1494   libc_cv_cpp_asm_debuginfo=no
1495 fi
1496 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1497 if test $libc_cv_cpp_asm_debuginfo = yes; then
1498   AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1499 fi
1500
1501 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1502 cat > conftest.c <<\EOF
1503 _start () {}
1504 int __eh_pc;
1505 __throw () {}
1506 EOF
1507 dnl No \ in command here because it ends up inside ''.
1508 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1509                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1510                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1511   libc_cv_ld_no_whole_archive=yes
1512 else
1513   libc_cv_ld_no_whole_archive=no
1514 fi
1515 rm -f conftest*])
1516 if test $libc_cv_ld_no_whole_archive = yes; then
1517   no_whole_archive=-Wl,--no-whole-archive
1518 fi
1519 AC_SUBST(no_whole_archive)dnl
1520
1521 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1522 cat > conftest.c <<\EOF
1523 _start () {}
1524 int __eh_pc;
1525 __throw () {}
1526 EOF
1527 dnl No \ in command here because it ends up inside ''.
1528 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1529                             -nostdlib -nostartfiles -fexceptions
1530                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1531   libc_cv_gcc_exceptions=yes
1532 else
1533   libc_cv_gcc_exceptions=no
1534 fi
1535 rm -f conftest*])
1536 if test $libc_cv_gcc_exceptions = yes; then
1537   exceptions=-fexceptions
1538 fi
1539 AC_SUBST(exceptions)dnl
1540
1541 if test "$host_cpu" = powerpc ; then
1542 # Check for a bug present in at least versions 2.8.x of GCC
1543 # and versions 1.0.x of EGCS.
1544 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1545 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1546                libc_cv_c_asmcr0_bug='no',
1547                libc_cv_c_asmcr0_bug='yes')])
1548 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1549   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1550 fi
1551 fi
1552
1553 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1554 [cat > conftest.c <<EOF
1555 #line __oline__ "configure"
1556 static char *__EH_FRAME_BEGIN__;
1557 _start ()
1558 {
1559 #ifdef CHECK__register_frame
1560   __register_frame (__EH_FRAME_BEGIN__);
1561   __deregister_frame (__EH_FRAME_BEGIN__);
1562 #endif
1563 #ifdef CHECK__register_frame_info
1564   __register_frame_info (__EH_FRAME_BEGIN__);
1565   __deregister_frame_info (__EH_FRAME_BEGIN__);
1566 #endif
1567 }
1568 int __eh_pc;
1569 __throw () {}
1570 /* FIXME: this is fragile.  */
1571 malloc () {}
1572 strcmp () {}
1573 strlen () {}
1574 memcpy () {}
1575 memset () {}
1576 free () {}
1577 abort () {}
1578 __bzero () {}
1579 dl_iterate_phdr () {}
1580 EOF
1581 dnl No \ in command here because it ends up inside ''.
1582 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1583                             -nostdlib -nostartfiles
1584                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1585   libc_cv_gcc_dwarf2_unwind_info=static
1586 else
1587   libc_cv_gcc_dwarf2_unwind_info=no
1588 fi
1589 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1590 libc_unwind_check="${CC-cc} $CFLAGS -DCHECK__register_frame_info \
1591                             -nostdlib -nostartfiles -o conftest conftest.c \
1592                             -lgcc -lgcc_eh -lgcc"
1593 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]); then
1594   if $libc_unwind_check -v 2>&1 >/dev/null \
1595      | grep -q -- --eh-frame-hdr; then
1596     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1597   else
1598     libc_cv_gcc_dwarf2_unwind_info=static
1599   fi
1600 else
1601   libc_cv_gcc_dwarf2_unwind_info=no
1602 fi
1603 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1604   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1605                               -nostdlib -nostartfiles
1606                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1607     libc_cv_gcc_dwarf2_unwind_info=yes
1608   else
1609     libc_cv_gcc_dwarf2_unwind_info=no
1610   fi
1611 fi
1612 rm -f conftest*])
1613 case $libc_cv_gcc_dwarf2_unwind_info in
1614 yes)
1615   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1616   ;;
1617 static)
1618   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1619   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1620   ;;
1621 esac
1622
1623 dnl Check whether compiler understands __builtin_expect.
1624 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1625 [cat > conftest.c <<EOF
1626 #line __oline__ "configure"
1627 int foo (int a)
1628 {
1629   a = __builtin_expect (a, 10);
1630   return a == 10 ? 0 : 1;
1631 }
1632 EOF
1633 dnl No \ in command here because it ends up inside ''.
1634 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1635                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1636   libc_cv_gcc_builtin_expect=yes
1637 else
1638   libc_cv_gcc_builtin_expect=no
1639 fi
1640 rm -f conftest*])
1641 if test "$libc_cv_gcc_builtin_expect" = yes; then
1642   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1643 fi
1644
1645 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1646 cat > conftest.c <<\EOF
1647 void zero (void *x)
1648 {
1649   __builtin_memset (x, 0, 1000);
1650 }
1651 EOF
1652 dnl
1653 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1654 then
1655   libc_cv_gcc_builtin_memset=no
1656 else
1657   libc_cv_gcc_builtin_memset=yes
1658 fi
1659 rm -f conftest* ])
1660 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1661   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1662 fi
1663
1664 dnl Check whether the compiler supports subtraction of local labels.
1665 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1666 [cat > conftest.c <<EOF
1667 changequote(,)dnl
1668 #line __oline__ "configure"
1669 int foo (int a)
1670 {
1671   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1672   void *p = &&l1 + ar[a];
1673   goto *p;
1674  l1:
1675   return 1;
1676  l2:
1677   return 2;
1678 }
1679 changequote([,])dnl
1680 EOF
1681 dnl No \ in command here because it ends up inside ''.
1682 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1683                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1684   libc_cv_gcc_subtract_local_labels=yes
1685 else
1686   libc_cv_gcc_subtract_local_labels=no
1687 fi
1688 rm -f conftest*])
1689 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1690   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1691 fi
1692
1693 dnl Check whether the compiler supports the __thread keyword.
1694 if test "x$use__thread" != xno; then
1695   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1696   [cat > conftest.c <<\EOF
1697 __thread int a = 42;
1698 EOF
1699   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1700     libc_cv_gcc___thread=yes
1701   else
1702     libc_cv_gcc___thread=no
1703   fi
1704   rm -f conftest*])
1705   if test "$libc_cv_gcc___thread" = yes; then
1706     AC_DEFINE(HAVE___THREAD)
1707   fi
1708 else
1709   libc_cv_gcc___thread=no
1710 fi
1711
1712 if test "$libc_cv_gcc___thread" = yes; then
1713   dnl Check whether the compiler supports the tls_model attribute.
1714   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1715   cat > conftest.c <<\EOF
1716 extern __thread int a __attribute__((tls_model ("initial-exec")));
1717 EOF
1718   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1719     libc_cv_gcc_tls_model_attr=yes
1720   else
1721     libc_cv_gcc_tls_model_attr=no
1722   fi
1723   rm -f conftest*])
1724   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1725     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1726   fi
1727 fi
1728
1729 dnl Check whether we have the gd library available.
1730 AC_MSG_CHECKING(for libgd)
1731 if test "$with_gd" != "no"; then
1732   old_CFLAGS="$CFLAGS"
1733   CFLAGS="$CFLAGS $libgd_include"
1734   old_LDFLAGS="$LDFLAGS"
1735   LDFLAGS="$LDFLAGS $libgd_ldflags"
1736   old_LIBS="$LIBS"
1737   LIBS="$LIBS -lgd -lpng -lz -lm"
1738   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1739   CFLAGS="$old_CFLAGS"
1740   LDFLAGS="$old_LDFLAGS"
1741   LIBS="$old_LIBS"
1742 else
1743   LIBGD=no
1744 fi
1745 AC_MSG_RESULT($LIBGD)
1746 AC_SUBST(LIBGD)
1747
1748 dnl check for the size of 'long double'.
1749 AC_CHECK_SIZEOF(long double, 0)
1750 sizeof_long_double=$ac_cv_sizeof_long_double
1751 AC_SUBST(sizeof_long_double)
1752
1753 ### End of automated tests.
1754 ### Now run sysdeps configure fragments.
1755
1756 # They also can set these variables.
1757 use_ldconfig=no
1758 ldd_rewrite_script=no
1759 libc_cv_sysconfdir=$sysconfdir
1760 libc_cv_gcc_unwind_find_fde=no
1761
1762 # Iterate over all the sysdep directories we will use, running their
1763 # configure fragments, and looking for a uname implementation.
1764 uname=
1765 for dir in $sysnames; do
1766   case $dir in
1767     /*) dest=$dir ;;
1768     *)  dest=$srcdir/$dir ;;
1769   esac
1770   if test -r $dest/configure; then
1771     AC_MSG_RESULT(running configure fragment for $dir)
1772     . $dest/configure
1773   fi
1774 [
1775   if test -z "$uname"; then
1776     if test -r $dest/uname.c ||
1777        test -r $dest/uname.S ||
1778        { test -r $dest/syscalls.list &&
1779          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1780       uname=$dir
1781     fi
1782   fi
1783 ]dnl
1784 done
1785
1786 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1787   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1788 fi
1789 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1790
1791 # If we will use the generic uname implementation, we must figure out what
1792 # it will say by examining the system, and write the results in config-name.h.
1793 if test "$uname" = "sysdeps/generic"; then
1794
1795 changequote(,)dnl
1796   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1797 changequote([,])dnl
1798   if test $uname_sysname != $config_os; then
1799     config_release=`echo $config_os | sed s/$uname_sysname//`
1800   fi
1801 dnl
1802 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1803     if test -r /vmunix; then
1804       kernel_id=`strings /vmunix | grep UNIX`
1805     elif test -r /dynix; then
1806       kernel_id=`strings /dynix | grep DYNIX`
1807     else
1808       kernel_id=
1809     fi
1810 ])dnl
1811
1812   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1813 LIBC_KERNEL_ID
1814 changequote(,)dnl
1815   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1816 changequote([,])dnl
1817   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1818          != x$config_release; then
1819     # The configuration release is a substring of the kernel release.
1820     libc_cv_uname_release=$kernel_release
1821   elif test x$config_release != x; then
1822     libc_cv_uname_release=$config_release
1823   elif test x$kernel_release != x; then
1824     libc_cv_uname_release=$kernel_release
1825   else
1826     libc_cv_uname_release=unknown
1827   fi])
1828   uname_release="$libc_cv_uname_release"
1829
1830   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1831 LIBC_KERNEL_ID
1832 changequote(,)dnl
1833   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1834 changequote([,])dnl
1835   if test -n "$kernel_version"; then
1836     libc_cv_uname_version="$kernel_version"
1837   else
1838     libc_cv_uname_version=unknown
1839   fi])
1840   uname_version="$libc_cv_uname_version"
1841
1842 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1843   config_uname=config-name.h:config-name.in
1844 else
1845   # For non-generic uname, we don't need to create config-name.h at all.
1846   config_uname=
1847 fi
1848
1849 dnl This is tested by existing code and it's simpler to avoid changing it.
1850 AC_DEFINE(USE_IN_LIBIO)
1851
1852 # Test for old glibc 2.0.x headers so that they can be removed properly
1853 # Search only in includedir.
1854 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1855 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1856 then
1857   old_glibc_headers=yes
1858 else
1859   old_glibc_headers=no
1860 fi
1861 AC_MSG_RESULT($old_glibc_headers)
1862 if test ${old_glibc_headers} = yes; then
1863   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1864   AC_MSG_WARN(*** be removed.)
1865 fi
1866 AC_SUBST(old_glibc_headers)
1867
1868 AC_SUBST(libc_cv_slibdir)
1869 AC_SUBST(libc_cv_localedir)
1870 AC_SUBST(libc_cv_sysconfdir)
1871 AC_SUBST(libc_cv_rootsbindir)
1872
1873 AC_SUBST(use_ldconfig)
1874 AC_SUBST(ldd_rewrite_script)
1875
1876 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1877 if test $gnu_ld = yes; then
1878   AC_DEFINE(HAVE_GNU_LD)
1879 fi
1880 if test $gnu_as = yes; then
1881   AC_DEFINE(HAVE_GNU_AS)
1882 fi
1883 if test $elf = yes; then
1884   AC_DEFINE(HAVE_ELF)
1885 fi
1886 if test $xcoff = yes; then
1887   AC_DEFINE(HAVE_XCOFF)
1888 fi
1889
1890 AC_SUBST(static)
1891 AC_SUBST(shared)
1892 if test $shared = default; then
1893   if test $gnu_ld = yes; then
1894     shared=$elf
1895   else
1896     # For now we do not assume shared libs are available.  In future more
1897     # tests might become available.
1898     shared=no
1899   fi
1900 fi
1901
1902 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1903 [pic_default=yes
1904 cat > conftest.c <<EOF
1905 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1906 # error PIC is default.
1907 #endif
1908 EOF
1909 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
1910   pic_default=no
1911 fi
1912 rm -f conftest.*])
1913 AC_SUBST(pic_default)
1914
1915 AC_SUBST(profile)
1916 AC_SUBST(omitfp)
1917 AC_SUBST(bounded)
1918 AC_SUBST(static_nss)
1919 AC_SUBST(nopic_initfini)
1920
1921 AC_SUBST(DEFINES)
1922
1923 case "$add_ons" in
1924   *door*) linux_doors=yes ;;
1925   *) linux_doors=no ;;
1926 esac
1927 AC_SUBST(linux_doors)
1928
1929 dnl See sysdeps/mach/configure.in for this variable.
1930 AC_SUBST(mach_interface_list)
1931
1932 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1933   config_makefile=
1934 else
1935   config_makefile=Makefile
1936 fi
1937
1938 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1939 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1940 AC_SUBST(VERSION)
1941 AC_SUBST(RELEASE)
1942
1943 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
1944 AC_CONFIG_COMMANDS([default],[[
1945 case $CONFIG_FILES in *config.make*)
1946 echo "$config_vars" >> config.make;;
1947 esac
1948 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
1949 AC_OUTPUT