2004-07-12 Paul Eggert <eggert@cs.ucla.edu>
[glibc/history.git] / configure.in
blobbf60a50028e1b510eab19a3c1012ffbce71d8f83
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])
9 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
10   AC_MSG_ERROR([you must configure in a separate build directory])
13 # This will get text that should go into config.make.
14 config_vars=
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
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
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
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
58 if test -n "$libgd_include"; then
59   config_vars="$config_vars
60 CFLAGS-memusagestat.c = $libgd_include"
62 if test -n "$libgd_ldflags"; then
63   config_vars="$config_vars
64 libgd-LDFLAGS = $libgd_ldflags"
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
100 AC_SUBST(with_cvs)
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=''])
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])
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])
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])
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")
170 AC_SUBST(oldest_abi)
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=])
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])
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])
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)
206 AC_ARG_ENABLE([bind-now],
207               AC_HELP_STRING([--enable-bind-now],
208                              [disable lazy relocations in DSOs]),
209               [bindnow=$enableval],
210               [bindnow=no])
211 AC_SUBST(bindnow)
213 AC_CONFIG_SUBDIRS([ ])dnl Bonehead new Autoconf whines if we do it cleanly.
214 add_ons_pfx=
215 if test x"$add_ons" != x; then
216   for f in $add_ons; do
217     # Some sanity checks
218     if test "$f" = "crypt"; then
219       AC_MSG_ERROR([
220 *** It seems that you're using an old \`crypt' add-on.  crypt is now
221 *** part of glibc and using the old add-on will not work with this
222 *** release.  Start again with fresh sources and without the old
223 *** \`crypt' add-on.])
224     fi
225     if test "$f" = "localedata"; then
226       AC_MSG_ERROR([
227 *** It seems that you're using an old \`localedata' add-on.  localedata
228 *** is now part of glibc and using the old add-on will not work with
229 *** this release.  Start again with fresh sources and without the old
230 *** \`localedata' add-on.])
231     fi
232     # Test whether such a subdir really exists.
233     if test -d $srcdir/$f; then
234       add_ons_pfx="$add_ons_pfx $f/"
235       dnl This variable is what AC_CONFIG_SUBDIRS is supposed to set,
236       dnl but the new Autoconf maintainers don't care about compatibility
237       dnl so we cannot use it normally any more without complaints.
238       subdirs="$subdirs $f"
239     else
240       AC_MSG_ERROR(add-on directory \"$f\" does not exist)
241     fi
242   done
245 dnl On some platforms we cannot use dynamic loading.  We must provide
246 dnl static NSS modules.
247 AC_ARG_ENABLE([static-nss],
248               AC_HELP_STRING([--enable-static-nss],
249                              [build static NSS modules @<:@default=no@:>@]),
250               [static_nss=$enableval],
251               [static_nss=no])
252 dnl Enable static NSS also if we build no shared objects.
253 if test x"$static_nss" = xyes || test x"$shared" = xno; then
254   static_nss=yes
255   AC_DEFINE(DO_STATIC_NSS)
258 AC_ARG_ENABLE([force-install],
259               AC_HELP_STRING([--disable-force-install],
260                              [don't force installation of files from this package, even if they are older than the installed files]),
261               [force_install=$enableval],
262               [force_install=yes])
263 AC_SUBST(force_install)
265 dnl On some platforms we allow dropping compatibility with all kernel
266 dnl versions.
267 AC_ARG_ENABLE([kernel],
268               AC_HELP_STRING([--enable-kernel=VERSION],
269                              [compile for compatibility with kernel not older than VERSION]),
270               [minimum_kernel=$enableval],
271               [])
272 dnl Prevent unreasonable values.
273 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
274   # Better nothing than this.
275   minimum_kernel=""
276 else
277   if test "$minimum_kernel" = current; then
278     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
279   fi
282 dnl For the development we sometimes want gcc to issue even more warnings.
283 dnl This is not the default since many of the extra warnings are not
284 dnl appropriate.
285 AC_ARG_ENABLE([all-warnings],
286               AC_HELP_STRING([--enable-all-warnings],
287                              [enable all useful warnings gcc can issue]),
288               [all_warnings=$enableval],
289               [])
290 AC_SUBST(all_warnings)
292 AC_CANONICAL_HOST
294 # The way shlib-versions is used to generate soversions.mk uses a
295 # fairly simplistic model for name recognition that can't distinguish
296 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
297 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
298 # tell.  This doesn't get used much beyond that, so it's fairly safe.
299 case "$host_os" in
300 linux*)
301   ;;
302 gnu*)
303   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
304   ;;
305 esac
307 # We keep the original values in `$config_*' and never modify them, so we
308 # can write them unchanged into config.make.  Everything else uses
309 # $machine, $vendor, and $os, and changes them whenever convenient.
310 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
312 # Don't allow vendor == "unknown"
313 test "$config_vendor" = unknown && config_vendor=
314 config_os="`echo $config_os | sed 's/^unknown-//'`"
316 # Some configurations imply other options.
317 case "$host_os" in
318 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
319   # These systems always use GNU tools.
320   gnu_ld=yes gnu_as=yes ;;
321 esac
322 case "$host_os" in
323 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
324 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
325   ;;
326 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
327   # These systems (almost) always use the ELF format.
328   elf=yes
329   ;;
330 aix*)
331   # These systems are always xcoff
332   xcoff=yes
333   elf=no
334   ;;
335 esac
337 machine=$config_machine
338 vendor=$config_vendor
339 os=$config_os
341 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
342 # Unify this here.
343 if test "$machine" = rs6000; then
344   machine="powerpc"
347 # Braindead PowerPC box with absolutely no FPU.
348 case "$machine-$host_os" in
349   powerpc*-*soft)
350     with_fp=no
351     ;;
352 esac
355 ### I put this here to prevent those annoying emails from people who cannot
356 ### read and try to compile glibc on unsupported platforms.  --drepper
358 ### By using the undocumented --enable-hacker-mode option for configure
359 ### one can skip this test to make the configuration not fail for unsupported
360 ### platforms.
362 if test -z "$enable_hacker_mode"; then
363   case "$machine-$host_os" in
364   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
365     ;;
366   *)
367     echo "*** The GNU C library is currently not available for this platform."
368     echo "*** So far nobody cared to port it and if there is no volunteer it"
369     echo "*** might never happen.  So, if you have interest to see glibc on"
370     echo "*** this platform visit"
371     echo "***   http://www.gnu.org/software/libc/porting.html"
372     echo "*** and join the group of porters"
373     exit 1
374     ;;
375   esac
378 dnl We need to use [ and ] for other purposes for a while now.
379 changequote(,)dnl
380 # Expand the configuration machine name into a subdirectory by architecture
381 # type and particular chip.
382 case "$machine" in
383 a29k | am29000) base_machine=a29k machine=a29k ;;
384 alpha*)         base_machine=alpha machine=alpha/$machine ;;
385 arm*)           base_machine=arm machine=arm/arm32/$machine ;;
386 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
387 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
388 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
389 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
390 i[3456]86)      base_machine=i386 machine=i386/$machine ;;
391 ia64)           base_machine=ia64 machine=ia64 ;;
392 m680?0)         base_machine=m68k machine=m68k/$machine ;;
393 m68k)           base_machine=m68k machine=m68k/m68020 ;;
394 m88???)         base_machine=m88k machine=m88k/$machine ;;
395 m88k)           base_machine=m88k machine=m88k/m88100 ;;
396 mips64*)        base_machine=mips64
397                 case "$CC $CFLAGS $CPPFLAGS " in
398                 *" -mabi=n32 "*) mips_cc_abi=n32 ;;
399                 *" -mabi=64 "*|*" -mabi=n64 "*) mips_cc_abi=64 ;;
400                 *" -mabi=32 "*|*" -mabi=o32 "*) mips_cc_abi=32 ;;
401                 *) mips_cc_abi=default ;;
402                 esac
403                 case $config_os in
404                 *abin32*) mips_config_abi=n32 ;;
405                 *abi64*|*abin64*) mips_config_abi=64 ;;
406                 *abi32*|*abio32*) mips_config_abi=32 ;;
407                 *) mips_config_abi=$mips_cc_abi ;;
408                 esac
409                 case $mips_config_abi in
410                 default) machine=mips/mips64/n32 mips_config_abi=n32 ;;
411                 n32) machine=mips/mips64/n32 ;;
412                 64) machine=mips/mips64/n64 ;;
413                 32) machine=mips/mips32/kern64 ;;
414                 esac
415                 machine=$machine/$config_machine
416                 if test $mips_config_abi != $mips_cc_abi; then
417                   # This won't make it to config.make, but we want to
418                   # set this in case configure tests depend on it.
419                   CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi"
420                 fi
421                 ;;
422 mips*)          base_machine=mips machine=mips/mips32/$machine ;;
423 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
424 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
425 s390)           base_machine=s390 machine=s390/s390-32 ;;
426 s390x)          base_machine=s390 machine=s390/s390-64 ;;
427 sh3*)           base_machine=sh machine=sh/sh3 ;;
428 sh4*)           base_machine=sh machine=sh/sh4 ;;
429 sparc | sparcv[67])
430                 base_machine=sparc machine=sparc/sparc32 ;;
431 sparcv8 | supersparc | hypersparc)
432                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
433 sparcv8plus | sparcv8plusa | sparcv9)
434                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
435 sparcv8plusb | sparcv9b)
436                 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
437 sparc64 | ultrasparc)
438                 base_machine=sparc machine=sparc/sparc64 ;;
439 sparc64b | ultrasparc3)
440                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
441 thumb*)         base_machine=thumb machine=arm/thumb/$machine ;;
442 *)              base_machine=$machine ;;
443 esac
444 changequote([,])dnl
445 AC_SUBST(base_machine)
447 if test "$base_machine" = "i386"; then
448   AC_DEFINE(USE_REGPARMS)
451 # Compute the list of sysdep directories for this configuration.
452 # This can take a while to compute.
453 sysdep_dir=$srcdir/sysdeps
454 AC_MSG_CHECKING(sysdep dirs)
455 dnl We need to use [ and ] for other purposes for a while now.
456 changequote(,)dnl
457 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
458 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
460 case "$os" in
461 gnu*)
462   base_os=mach/hurd ;;
463 netbsd* | 386bsd* | freebsd* | bsdi*)
464   base_os=unix/bsd/bsd4.4 ;;
465 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
466   base_os=unix/bsd ;;
467 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
468   base_os=unix/sysv ;;
469 irix6*)
470   base_os=unix/sysv/irix6/$os ;;
471 solaris[2-9]*)
472   base_os=unix/sysv/sysv4 ;;
473 hpux*)
474   base_os=unix/sysv/hpux/$os ;;
475 aix4.3*)
476   base_os=unix/sysv/aix/aix4.3 ;;
477 none)
478   base_os=standalone ;;
480   base_os='' ;;
481 esac
483 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
484 tail=$os
485 ostry=$os
486 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
487   ostry="$ostry /$o"
488   tail=$o
489 done
490 o=`echo $tail | sed 's/[0-9]*$//'`
491 if test $o != $tail; then
492   ostry="$ostry /$o"
494 # For linux-gnu, try linux-gnu, then linux.
495 o=`echo $tail | sed 's/-.*$//'`
496 if test $o != $tail; then
497   ostry="$ostry /$o"
500 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
501 base=
502 tail=$base_os
503 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
504   set $b
505   base="$base /$1"
506   tail="$2"
507 done
509 # For sparc/sparc32, try sparc/sparc32 and then sparc.
510 mach=
511 tail=$machine
512 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
513   set $m
514   # Prepend the machine's FPU directory unless --without-fp.
515   if test "$with_fp" = yes; then
516     mach="$mach /$1/fpu"
517   else
518     mach="$mach /$1/nofpu"
519   fi
520   mach="$mach /$1"
521   tail="$2"
522 done
524 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
525 changequote([,])dnl
527 # Find what sysdep directories exist.
528 sysnames=
529 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
530 for d in $add_ons_pfx ''; do
531   for b in $base ''; do
532     for m0 in $mach ''; do
533       for v in /$vendor ''; do
534         test "$v" = / && continue
535         for o in /$ostry ''; do
536           test "$o" = / && continue
537           for m in $mach ''; do
538             if test "$m0$b$v$o$m"; then
539               try="${d}sysdeps$m0$b$v$o$m"
540               test -n "$enable_debug_configure" &&
541               echo "$0 [DEBUG]: try $try" >&2
542               if test -d $srcdir/$try; then
543                 sysnames="$sysnames $try"
544                 { test -n "$o" || test -n "$b"; } && os_used=t
545                 { test -n "$m" || test -n "$m0"; } && machine_used=t
546               fi
547             fi
548           done
549         done
550       done
551     done
552   done
553 done
554 IFS="$ac_save_ifs"
556 if test -z "$os_used" && test "$os" != none; then
557   AC_MSG_ERROR(Operating system $os is not supported.)
559 if test -z "$machine_used" && test "$machine" != none; then
560   AC_MSG_ERROR(The $machine is not supported.)
563 # We have now validated the configuration.
566 # If using ELF, look for an `elf' subdirectory of each machine directory.
567 # We prepend these rather than inserting them whereever the machine appears
568 # because things specified by the machine's ELF ABI should override
569 # OS-specific things, and should always be the same for any OS on the
570 # machine (otherwise what's the point of an ABI?).
571 if test "$elf" = yes; then
572   elf_dirs=
573   for d in $add_ons_pfx ''; do
574     for m in $mach; do
575       if test -d $srcdir/${d}sysdeps$m/elf; then
576         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
577       fi
578     done
579   done
580   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
584 # Expand the list of system names into a full list of directories
585 # from each element's parent name and Implies file (if present).
586 set $sysnames
587 names=
588 while test $# -gt 0; do
589   name=$1
590   shift
592   case " $names " in *" $name "*)
593     # Already in the list.
594     continue
595   esac
597   # Report each name as we discover it, so there is no long pause in output.
598   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
600   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
602   case $name in
603     /*) xsrcdir= ;;
604     *)  xsrcdir=$srcdir/ ;;
605   esac
606   test -n "$enable_debug_configure" &&
607   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
609   if test -f $xsrcdir$name/Implies; then
610     # Collect more names from the `Implies' file (removing comments).
611     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
612     implied=
613     for x in $implied_candidate; do
614       found=no
615       if test -d $xsrcdir$name_base/$x; then
616         implied="$implied $name_base/$x";
617         found=yes
618       fi
619       for d in $add_ons_pfx ''; do
620         try="${d}sysdeps/$x"
621         case $d in
622          /*) try_srcdir= ;;
623          *) try_srcdir=$srcdir/ ;;
624         esac
625         test -n "$enable_debug_configure" &&
626          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
627         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
628         then
629           implied="$implied $try"
630           found=yes
631         fi
632       done
633       if test $found = no; then
634         AC_MSG_WARN($name/Implies specifies nonexistent $x)
635       fi
636     done
637   else
638     implied=
639   fi
641   # Add NAME to the list of names.
642   names="$names $name"
644   # Find the parent of NAME, using the empty string if it has none.
645 changequote(,)dnl
646   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
647 changequote([,])dnl
649   # Add the names implied by NAME, and NAME's parent (if it has one), to
650   # the list of names to be processed (the argument list).  We prepend the
651   # implied names to the list and append the parent.  We want implied
652   # directories to come before further directories inferred from the
653   # configuration components; this ensures that for sysv4, unix/common
654   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
655   # after sysv4).
656   sysnames="`echo $implied $* $parent`"
657   test -n "$sysnames" && set $sysnames
658 done
660 # Add the default directories.
661 default_sysnames=sysdeps/generic
662 if test "$elf" = yes; then
663   default_sysnames="sysdeps/generic/elf $default_sysnames"
665 sysnames="$names $default_sysnames"
666 AC_SUBST(sysnames)
667 # The other names were emitted during the scan.
668 AC_MSG_RESULT($default_sysnames)
671 ### Locate tools.
673 AC_PROG_INSTALL
674 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
675   # The makefiles need to use a different form to find it in $srcdir.
676   INSTALL='\$(..)./scripts/install-sh -c'
678 AC_PROG_LN_S
680 AC_PROG_CC
681 if test $host != $build; then
682   AC_CHECK_PROGS(BUILD_CC, gcc cc)
684 AC_SUBST(cross_compiling)
685 AC_PROG_CPP
686 # We need the C++ compiler only for testing.
687 AC_PROG_CXX
688 LIBC_PROG_BINUTILS
689 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
691 # Accept binutils 2.13 or newer.
692 AC_CHECK_PROG_VER(AS, $AS, --version,
693                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
694                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
695 AC_CHECK_PROG_VER(LD, $LD, --version,
696                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
697                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
699 # We need the physical current working directory.  We cannot use the
700 # "pwd -P" shell builtin since that's not portable.  Instead we try to
701 # find a pwd binary.  Note that assigning to the PWD environment
702 # variable might have some interesting side effects, so we don't do
703 # that.
704 AC_PATH_PROG(PWD_P, pwd, no)
705 if test "$PWD_P" = no; then
706   AC_MSG_ERROR(*** A pwd binary could not be found.)
709 # These programs are version sensitive.
710 AC_CHECK_TOOL_PREFIX
711 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
712   [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
713   critic_missing="$critic_missing gcc")
714 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
715   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
716   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
718 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
719   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
720   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
721   MSGFMT=: aux_missing="$aux_missing msgfmt")
722 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
723   [GNU texinfo.* \([0-9][0-9.]*\)],
724   [4.*],
725   MAKEINFO=: aux_missing="$aux_missing makeinfo")
726 AC_CHECK_PROG_VER(SED, sed, --version,
727   [GNU sed version \([0-9]*\.[0-9.]*\)],
728   [3.0[2-9]*|3.[1-9]*|[4-9]*],
729   SED=: aux_missing="$aux_missing sed")
731 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
732 case "x$AUTOCONF" in
733 xno|x|x:) AUTOCONF=no ;;
735   AC_CACHE_CHECK(dnl
736 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
737   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
738     libc_cv_autoconf_works=yes
739   else
740     libc_cv_autoconf_works=no
741   fi])
742   test $libc_cv_autoconf_works = yes || AUTOCONF=no
743   ;;
744 esac
745 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
746   # If --without-cvs they probably won't change configure.in, so no complaints.
747   aux_missing="$aux_missing autoconf"
750 test -n "$critic_missing" && AC_MSG_ERROR([
751 *** These critical programs are missing or too old:$critic_missing
752 *** Check the INSTALL file for required versions.])
754 test -n "$aux_missing" && AC_MSG_WARN([
755 *** These auxiliary programs are missing or incompatible versions:$aux_missing
756 *** some features will be disabled.
757 *** Check the INSTALL file for required versions.])
759 # if using special system headers, find out the compiler's sekrit
760 # header directory and add that to the list.  NOTE: Only does the right
761 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
762 if test -n "$sysheaders"; then
763   ccheaders=`$CC -print-file-name=include`
764   SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
766 AC_SUBST(SYSINCLUDES)
768 # check if ranlib is necessary
769 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
770 cat > conftest.c <<EOF
771 int a;
772 char b;
773 void c(void) {}
775 $CC $CFLAGS $CPPFLAGS -c conftest.c
776 $AR cr conftest.a conftest.o
777 cp conftest.a conftest2.a
778 $RANLIB conftest.a
779 if cmp -s conftest.a conftest2.a; then
780   libc_cv_ranlib_necessary=no
781 else
782   libc_cv_ranlib_necessary=yes
784 rm -rf conftest*])
785 if test "$libc_cv_ranlib_necessary" = no; then
786  RANLIB=:
789 # Test if LD_LIBRARY_PATH contains the notation for the current directory
790 # since this would lead to problems installing/building glibc.
791 # LD_LIBRARY_PATH contains the current directory if one of the following
792 # is true:
793 # - one of the terminals (":" and ";") is the first or last sign
794 # - two terminals occur directly after each other
795 # - the path contains an element with a dot in it
796 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
797 changequote(,)dnl
798 case ${LD_LIBRARY_PATH} in
799   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
800     ld_library_path_setting="contains current directory"
801     ;;
802   *)
803     ld_library_path_setting="ok"
804     ;;
805 esac
806 changequote([,])dnl
807 AC_MSG_RESULT($ld_library_path_setting)
808 if test "$ld_library_path_setting" != "ok"; then
809 AC_MSG_ERROR([
810 *** LD_LIBRARY_PATH shouldn't contain the current directory when
811 *** building glibc. Please change the environment variable
812 *** and run configure again.])
815 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
816 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
817   libc_cv_gcc_static_libgcc=
818 else
819   libc_cv_gcc_static_libgcc=-static-libgcc
820 fi])
821 AC_SUBST(libc_cv_gcc_static_libgcc)
823 AC_PATH_PROG(BASH, bash, no)
824 if test "$BASH" != no &&
825    $BASH -c 'test "$BASH_VERSINFO" \
826              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
827   libc_cv_have_bash2=yes
828 else
829   libc_cv_have_bash2=no
831 AC_SUBST(libc_cv_have_bash2)
833 dnl We need a ksh compatible shell for tzselect.
834 if test "$BASH" = no; then
835   AC_PATH_PROG(KSH, ksh, no)
836   if test "$KSH" = no; then
837     libc_cv_have_ksh=no
838   else
839     libc_cv_have_ksh=yes
840   fi
841 else
842   KSH="$BASH"
843   AC_SUBST(KSH)
844   libc_cv_have_ksh=yes
846 AC_SUBST(libc_cv_have_ksh)
848 AC_PROG_AWK
849 AC_PATH_PROG(PERL, perl, no)
850 if test "$PERL" != no &&
851    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
852   PERL=no
854 AC_PATH_PROG(INSTALL_INFO, install-info, no,
855              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
856 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
858 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
859 echo '#include <stddef.h>
860 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
861 if eval "$ac_cpp conftest.c 2>/dev/null" \
862 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
863   libc_cv_signed_size_t=no
864 else
865   libc_cv_signed_size_t=yes
867 rm -f conftest*])
868 if test $libc_cv_signed_size_t = yes; then
869   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
870   cat >> confdefs.h <<\EOF
871 #undef __SIZE_TYPE__
872 #define __SIZE_TYPE__ unsigned
876 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
877 AC_TRY_COMPILE(dnl
878 [#define __need_size_t
879 #define __need_wchar_t
880 #include <stddef.h>
881 #define __need_NULL
882 #include <stddef.h>], [size_t size; wchar_t wchar;
883 #ifdef offsetof
884 #error stddef.h ignored __need_*
885 #endif
886 if (&size == NULL || &wchar == NULL) abort ();],
887                libc_cv_friendly_stddef=yes,
888                libc_cv_friendly_stddef=no)])
889 if test $libc_cv_friendly_stddef = yes; then
890   config_vars="$config_vars
891 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
894 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
895                libc_cv_need_minus_P, [dnl
896 cat > conftest.S <<EOF
897 #include "confdefs.h"
898 /* Nothing whatsoever.  */
900 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
901   libc_cv_need_minus_P=no
902 else
903   libc_cv_need_minus_P=yes
905 rm -f conftest*])
906 if test $libc_cv_need_minus_P = yes; then
907   config_vars="$config_vars
908 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
911 AC_MSG_CHECKING(whether .text pseudo-op must be used)
912 AC_CACHE_VAL(libc_cv_dot_text, [dnl
913 cat > conftest.s <<EOF
914 .text
916 libc_cv_dot_text=
917 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
918   libc_cv_dot_text=.text
920 rm -f conftest*])
921 if test -z "$libc_cv_dot_text"; then
922   AC_MSG_RESULT(no)
923 else
924   AC_MSG_RESULT(yes)
927 AC_CACHE_CHECK(for assembler global-symbol directive,
928                libc_cv_asm_global_directive, [dnl
929 libc_cv_asm_global_directive=UNKNOWN
930 for ac_globl in .globl .global .EXPORT; do
931   cat > conftest.s <<EOF
932         ${libc_cv_dot_text}
933         ${ac_globl} foo
934 foo:
936   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
937     libc_cv_asm_global_directive=${ac_globl}
938   fi
939   rm -f conftest*
940   test $libc_cv_asm_global_directive != UNKNOWN && break
941 done])
942 if test $libc_cv_asm_global_directive = UNKNOWN; then
943   AC_MSG_ERROR(cannot determine asm global directive)
944 else
945   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
948 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
949 cat > conftest.s <<EOF
950 ${libc_cv_dot_text}
951 foo:
952 .set glibc_conftest_frobozz,foo
953 $libc_cv_asm_global_directive glibc_conftest_frobozz
955 # The alpha-dec-osf1 assembler gives only a warning for `.set'
956 # (but it doesn't work), so we must do a linking check to be sure.
957 cat > conftest1.c <<\EOF
958 extern int glibc_conftest_frobozz;
959 void _start() { glibc_conftest_frobozz = 1; }
961 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
962             -nostartfiles -nostdlib \
963             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
964   libc_cv_asm_set_directive=yes
965 else
966   libc_cv_asm_set_directive=no
968 rm -f conftest*])
969 if test $libc_cv_asm_set_directive = yes; then
970   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
973 AC_CACHE_CHECK(for assembler .type directive prefix,
974                libc_cv_asm_type_prefix, [dnl
975 libc_cv_asm_type_prefix=no
976 for ac_try_prefix in '@' '%' '#'; do
977   cat > conftest.s <<EOF
978         ${libc_cv_dot_text}
979         ${libc_cv_asm_global_directive} foo
980         .type foo, ${ac_try_prefix}object
981         .size foo, 1
982 foo:
983         .byte 1
985   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
986     libc_cv_asm_type_prefix=${ac_try_prefix}
987   fi
988   rm -f conftest*
989   test "x$libc_cv_asm_type_prefix" != xno && break
990 done])
991 if test "x$libc_cv_asm_type_prefix" != xno; then
992   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
995 # The Aix ld uses global .symbol_names instead of symbol_names.
996 # Unfortunately also used in the PPC64 ELF ABI.
997 case "${os}${machine}" in
998 aix4.3* | linux*powerpc/powerpc64*)
999   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
1000 esac
1002 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1003 [cat > conftest.s <<EOF
1004 ${libc_cv_dot_text}
1005 _sym:
1006 .symver _sym,sym@VERS
1008 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1009   libc_cv_asm_symver_directive=yes
1010 else
1011   libc_cv_asm_symver_directive=no
1013 rm -f conftest*])
1014 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1015 if test $libc_cv_asm_symver_directive = yes; then
1016   cat > conftest.s <<EOF
1017 ${libc_cv_dot_text}
1018 _sym:
1019 .symver _sym,sym@VERS
1021   cat > conftest.map <<EOF
1022 VERS_1 {
1023         global: sym;
1026 VERS_2 {
1027         global: sym;
1028 } VERS_1;
1030   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1031     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1032                                 -o conftest.so conftest.o
1033                                 -nostartfiles -nostdlib
1034                                 -Wl,--version-script,conftest.map
1035                        1>&AS_MESSAGE_LOG_FD]);
1036     then
1037       libc_cv_ld_version_script_option=yes
1038     else
1039       libc_cv_ld_version_script_option=no
1040     fi
1041   else
1042     libc_cv_ld_version_script_option=no
1043   fi
1044 else
1045   libc_cv_ld_version_script_option=no
1047 rm -f conftest*])
1048 if test $shared != no &&
1049    test $libc_cv_asm_symver_directive = yes &&
1050    test $libc_cv_ld_version_script_option = yes &&
1051    test $enable_versioning = yes; then
1052   VERSIONING=yes
1053   AC_DEFINE(DO_VERSIONING)
1054 else
1055   VERSIONING=no
1057 AC_SUBST(VERSIONING)
1059 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1060   echo "\
1061 *** WARNING: You should not compile GNU libc without versioning. Not using
1062 *** versioning will introduce incompatibilities so that old binaries
1063 *** will not run anymore.
1064 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1066 if test $elf = yes; then
1067   AC_CACHE_CHECK(for .previous assembler directive,
1068                  libc_cv_asm_previous_directive, [dnl
1069   cat > conftest.s <<EOF
1070 .section foo_section
1071 .previous
1073   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1074     libc_cv_asm_previous_directive=yes
1075   else
1076     libc_cv_asm_previous_directive=no
1077   fi
1078   rm -f conftest*])
1079   if test $libc_cv_asm_previous_directive = yes; then
1080     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1081   else
1082     AC_CACHE_CHECK(for .popsection assembler directive,
1083                    libc_cv_asm_popsection_directive, [dnl
1084     cat > conftest.s <<EOF
1085 .pushsection foo_section
1086 .popsection
1088     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1089       libc_cv_asm_popsection_directive=yes
1090     else
1091       libc_cv_asm_popsection_directive=no
1092     fi
1093     rm -f conftest*])
1094     if test $libc_cv_asm_popsection_directive = yes; then
1095       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1096     fi
1097   fi
1098   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1099                  libc_cv_asm_protected_directive, [dnl
1100   cat > conftest.s <<EOF
1101 .protected foo
1102 foo:
1103 .hidden bar
1104 bar:
1106   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1107     libc_cv_asm_protected_directive=yes
1108   else
1109     libc_cv_asm_protected_directive=no
1110   fi
1111   rm -f conftest*])
1112   AC_SUBST(libc_cv_asm_protected_directive)
1113   AC_DEFINE(HAVE_PROTECTED)
1114   AC_DEFINE(HAVE_HIDDEN)
1116   if test $libc_cv_asm_protected_directive = yes; then
1117     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1118                  libc_cv_visibility_attribute,
1119                  [cat > conftest.c <<EOF
1120                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1121                   int bar __attribute__ ((visibility ("protected"))) = 1;
1123                   libc_cv_visibility_attribute=no
1124                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1125                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1126                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1127                         libc_cv_visibility_attribute=yes
1128                       fi
1129                     fi
1130                   fi
1131                   rm -f conftest.[cs]
1132                  ])
1133     if test $libc_cv_visibility_attribute = yes; then
1134       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1135     fi
1136   fi
1138   if test $libc_cv_visibility_attribute = yes; then
1139     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1140                  libc_cv_broken_visibility_attribute,
1141                  [cat > conftest.c <<EOF
1142                   int foo (int x);
1143                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1144                   int bar (int x) { return x; }
1146                   libc_cv_broken_visibility_attribute=yes
1147                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1148 changequote(,)dnl
1149                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1150 changequote([,])dnl
1151                       libc_cv_broken_visibility_attribute=no
1152                     fi
1153                   fi
1154                   rm -f conftest.c conftest.s
1155                  ])
1156     if test $libc_cv_broken_visibility_attribute = yes; then
1157       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1158     fi
1159   fi
1161   AC_CACHE_CHECK(for broken __attribute__((alias())),
1162                  libc_cv_broken_alias_attribute,
1163                  [cat > conftest.c <<EOF
1164                   extern int foo (int x) __asm ("xyzzy");
1165                   int bar (int x) { return x; }
1166                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1167                   extern int dfoo;
1168                   extern __typeof (dfoo) dfoo __asm ("abccb");
1169                   int dfoo = 1;
1171                   libc_cv_broken_alias_attribute=yes
1172                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1173                     if grep 'xyzzy' conftest.s >/dev/null &&
1174                        grep 'abccb' conftest.s >/dev/null; then
1175                       libc_cv_broken_alias_attribute=no
1176                     fi
1177                   fi
1178                   rm -f conftest.c conftest.s
1179                  ])
1180   if test $libc_cv_broken_alias_attribute = yes; then
1181     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1182   fi
1184   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1185     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1186                  libc_cv_have_sdata_section,
1187                  [echo "int i;" > conftest.c
1188                   libc_cv_have_sdata_section=no
1189                   if ${CC-cc} $LDFLAGS -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1190                      | grep '\.sdata' >/dev/null; then
1191                     libc_cv_have_sdata_section=yes
1192                   fi
1193                   rm -f conftest.c conftest.so
1194                  ])
1195     if test $libc_cv_have_sdata_section = yes; then
1196       AC_DEFINE(HAVE_SDATA_SECTION)
1197     fi
1198   fi
1200   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1201                  libc_cv_initfinit_array, [dnl
1202   cat > conftest.c <<EOF
1203 int _start (void) { return 0; }
1204 int __start (void) { return 0; }
1205 int foo (void) { return 1; }
1206 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1208   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1209                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1210   then
1211     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1212       libc_cv_initfinit_array=yes
1213     else
1214       libc_cv_initfinit_array=no
1215     fi
1216   else
1217     libc_cv_initfinit_array=no
1218   fi
1219   rm -f conftest*])
1220   AC_SUBST(libc_cv_initfinit_array)
1221   if test $libc_cv_initfinit_array = yes; then
1222     AC_DEFINE(HAVE_INITFINI_ARRAY)
1223   fi
1225   AC_CACHE_CHECK(for libunwind-support in compiler,
1226                  libc_cv_cc_with_libunwind, [dnl
1227     AC_TRY_LINK([#include <libunwind.h>], [
1228       unw_context_t uc;
1229       unw_cursor_t c;
1230       unw_getcontext (&uc);
1231       unw_init_local (&c, &uc)],
1232         libc_cv_cc_with_libunwind=yes, libc_cv_cc_with_libunwind=no)])
1233   AC_SUBST(libc_cv_cc_with_libunwind)
1234   if test $libc_cv_cc_with_libunwind = yes; then
1235     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1236   fi
1238   AC_CACHE_CHECK(for -z nodelete option,
1239                  libc_cv_z_nodelete, [dnl
1240   cat > conftest.c <<EOF
1241 int _start (void) { return 42; }
1243   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1244                      -shared -o conftest.so conftest.c
1245                      -nostartfiles -nostdlib
1246                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1247   then
1248     libc_cv_z_nodelete=yes
1249   else
1250     libc_cv_z_nodelete=no
1251   fi
1252   rm -f conftest*])
1253   AC_SUBST(libc_cv_z_nodelete)
1255   AC_CACHE_CHECK(for -z nodlopen option,
1256                  libc_cv_z_nodlopen, [dnl
1257   cat > conftest.c <<EOF
1258 int _start (void) { return 42; }
1260   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1261                         -shared -o conftest.so conftest.c
1262                         -nostartfiles -nostdlib
1263                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1264   then
1265     libc_cv_z_nodlopen=yes
1266   else
1267     libc_cv_z_nodlopen=no
1268   fi
1269   rm -f conftest*])
1270   AC_SUBST(libc_cv_z_nodlopen)
1272   AC_CACHE_CHECK(for -z initfirst option,
1273                  libc_cv_z_initfirst, [dnl
1274   cat > conftest.c <<EOF
1275 int _start (void) { return 42; }
1277   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1278                         -shared -o conftest.so conftest.c
1279                         -nostartfiles -nostdlib
1280                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1281   then
1282     libc_cv_z_initfirst=yes
1283   else
1284     libc_cv_z_initfirst=no
1285   fi
1286   rm -f conftest*])
1287   AC_SUBST(libc_cv_z_initfirst)
1289   AC_CACHE_CHECK(for -z relro option,
1290                  libc_cv_z_relro, [dnl
1291   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1292   then
1293     libc_cv_z_relro=yes
1294   else
1295     libc_cv_z_relro=no
1296   fi])
1297   AC_SUBST(libc_cv_z_relro)
1298   if test $libc_cv_z_relro = yes; then
1299     AC_DEFINE(HAVE_Z_RELRO)
1300   fi
1302   AC_CACHE_CHECK(for -Bgroup option,
1303                  libc_cv_Bgroup, [dnl
1304   cat > conftest.c <<EOF
1305 int _start (void) { return 42; }
1307   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1308                               -shared -o conftest.so conftest.c
1309                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1310   then
1311     libc_cv_Bgroup=yes
1312   else
1313     libc_cv_Bgroup=no
1314   fi
1315   rm -f conftest*])
1316   AC_SUBST(libc_cv_Bgroup)
1318   AC_CACHE_CHECK(for libgcc_s suffix,
1319                  libc_cv_libgcc_s_suffix, [dnl
1320   cat > conftest.c <<EOF
1321 int main (void) { return 0; }
1323 changequote(,)dnl
1324   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1325                            -shared -shared-libgcc -o conftest.so \
1326                            conftest.c -v 2>&1 >/dev/null \
1327                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1328 changequote([,])dnl
1329   rm -f conftest*])
1330   AC_SUBST(libc_cv_libgcc_s_suffix)
1332   AC_CACHE_CHECK(for --as-needed option,
1333                  libc_cv_as_needed, [dnl
1334   cat > conftest.c <<EOF
1335 int main (void) { return 0; }
1337   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1338                               -shared -o conftest.so conftest.c
1339                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1340                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1341   then
1342     libc_cv_as_needed=yes
1343   else
1344     libc_cv_as_needed=no
1345   fi
1346   rm -f conftest*])
1347   AC_SUBST(libc_cv_as_needed)
1349   ASFLAGS_config=
1350   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1351                  libc_cv_as_noexecstack, [dnl
1352   cat > conftest.c <<EOF
1353 void foo (void) { }
1355   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1356                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1357      && grep -q .note.GNU-stack conftest.s \
1358      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1359                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1360   then
1361     libc_cv_as_noexecstack=yes
1362   else
1363     libc_cv_as_noexecstack=no
1364   fi
1365   rm -f conftest*])
1366   if test $libc_cv_as_noexecstack = yes; then
1367     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1368   fi
1369   AC_SUBST(ASFLAGS_config)
1371   AC_CACHE_CHECK(for -z combreloc,
1372                  libc_cv_z_combreloc, [dnl
1373   cat > conftest.c <<EOF
1374 extern int bar (int);
1375 extern int mumble;
1376 int foo (void) { return bar (mumble); }
1378   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1379                         -shared -o conftest.so conftest.c
1380                         -nostdlib -nostartfiles
1381                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1382   then
1383 dnl The following test is a bit weak.  We must use a tool which can test
1384 dnl cross-platform since the gcc used can be a cross compiler.  Without
1385 dnl introducing new options this is not easily doable.  Instead use a tool
1386 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1387 dnl look for a section named .rel.dyn.
1388     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1389       libc_cv_z_combreloc=yes
1390     else
1391       libc_cv_z_combreloc=no
1392     fi
1393   else
1394     libc_cv_z_combreloc=no
1395   fi
1396   rm -f conftest*])
1397   if test "$libc_cv_z_combreloc" = yes; then
1398     AC_DEFINE(HAVE_Z_COMBRELOC)
1399   fi
1400   AC_SUBST(libc_cv_z_combreloc)
1402   AC_CACHE_CHECK(for -z execstack,
1403                  libc_cv_z_execstack, [dnl
1404   cat > conftest.c <<EOF
1405 int _start (void) { return 42; }
1407   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1408                               -shared -o conftest.so conftest.c
1409                               -Wl,-z,execstack -nostdlib
1410                               1>&AS_MESSAGE_LOG_FD])
1411   then
1412     libc_cv_z_execstack=yes
1413   else
1414     libc_cv_z_execstack=no
1415   fi
1416   rm -f conftest*])
1417   AC_SUBST(libc_cv_z_execstack)
1419   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1420   cat > conftest.c <<EOF
1421 int foo;
1422 main () { return 0;}
1424   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1425                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1426   then
1427     libc_cv_fpie=yes
1428   else
1429     libc_cv_fpie=no
1430   fi
1431   rm -f conftest*])
1433   AC_SUBST(libc_cv_fpie)
1436 AC_CACHE_CHECK(for -fno-unit-at-a-time, libc_cv_fno_unit_at_a_time, [dnl
1437 cat > conftest.c <<EOF
1438 int foo;
1440 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
1441                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1442 then
1443   libc_cv_fno_unit_at_a_time=yes
1444 else
1445   libc_cv_fno_unit_at_a_time=no
1447 rm -f conftest*])
1448 if test $libc_cv_fno_unit_at_a_time = yes; then
1449   fno_unit_at_a_time=-fno-unit-at-a-time
1451 AC_SUBST(fno_unit_at_a_time)
1453 if test $elf != yes; then
1454   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1455                  [AC_TRY_COMPILE(, [asm (".section .init");
1456                                     asm (".section .fini");
1457                                     asm ("${libc_cv_dot_text}");],
1458                                  libc_cv_have_initfini=yes,
1459                                  libc_cv_have_initfini=no)])
1460   AC_SUBST(libc_cv_have_initfini)dnl
1461   if test $libc_cv_have_initfini = yes; then
1462     AC_DEFINE(HAVE_INITFINI)
1463   fi
1466 if test $elf = yes -a $gnu_ld = yes; then
1467   AC_CACHE_CHECK(whether cc puts quotes around section names,
1468                  libc_cv_have_section_quotes,
1469                  [cat > conftest.c <<EOF
1470                   static const int foo
1471                   __attribute__ ((section ("bar"))) = 1;
1473                   if ${CC-cc} -S conftest.c -o conftest.s; then
1474                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1475                       libc_cv_have_section_quotes=yes
1476                     else
1477                       libc_cv_have_section_quotes=no
1478                     fi
1479                   else
1480                     libc_cv_have_section_quotes=unknown
1481                   fi
1482                   rm -f conftest.[cs]
1483                  ])
1484   if test $libc_cv_have_section_quotes = yes; then
1485     AC_DEFINE(HAVE_SECTION_QUOTES)
1486   fi
1489 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1490 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1491 [cat > conftest.$ac_ext <<EOF
1492 dnl This sometimes fails to find confdefs.h, for some reason.
1493 dnl [#]line $LINENO "[$]0"
1494 [#]line $LINENO "configure"
1495 #include "confdefs.h"
1496 void underscore_test(void) {
1497 return; }
1499 if AC_TRY_EVAL(ac_compile); then
1500   if grep _underscore_test conftest* >/dev/null; then
1501     ifelse([$1], , :, [rm -f conftest*
1502     $1])
1503   else
1504     ifelse([$2], , , [rm -f conftest*
1505     $2])
1506   fi
1507 else
1508   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1509   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1510   ifelse([$2], , , [rm -f conftest*
1511   $2])
1513 rm -f conftest*])
1515 if test $elf = yes; then
1516   libc_cv_asm_underscores=no
1517 else
1518   if test $ac_cv_prog_cc_works = yes; then
1519     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1520                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1521                                 libc_cv_asm_underscores=yes,
1522                                 libc_cv_asm_underscores=no)])
1523   else
1524     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1525                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1526                                             libc_cv_asm_underscores=no)])
1527   fi
1529 if test $libc_cv_asm_underscores = no; then
1530   AC_DEFINE(NO_UNDERSCORES)
1533 if test $elf = yes; then
1534   libc_cv_weak_symbols=yes
1537 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1538                [dnl
1539 cat > conftest.s <<EOF
1540 ${libc_cv_dot_text}
1541 ${libc_cv_asm_global_directive} foo
1542 foo:
1543 .weak foo
1544 .weak bar; bar = foo
1546 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1547   libc_cv_asm_weak_directive=yes
1548 else
1549   libc_cv_asm_weak_directive=no
1551 rm -f conftest*])
1553 if test $libc_cv_asm_weak_directive = no; then
1554   AC_CACHE_CHECK(for assembler .weakext directive,
1555                  libc_cv_asm_weakext_directive,
1556                  [dnl
1557 cat > conftest.s <<EOF
1558 ${libc_cv_dot_text}
1559 ${libc_cv_asm_global_directive} foo
1560 foo:
1561 .weakext bar foo
1562 .weakext baz
1563 ${libc_cv_asm_global_directive} baz
1564 baz:
1566   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1567     libc_cv_asm_weakext_directive=yes
1568   else
1569     libc_cv_asm_weakext_directive=no
1570   fi
1571   rm -f conftest*])
1573 fi # no .weak
1575 if test $libc_cv_asm_weak_directive = yes; then
1576   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1577 elif test $libc_cv_asm_weakext_directive = yes; then
1578   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1581 dnl The standard hppa assembler uses `;' to start comments and `!'
1582 dnl as a line separator.  CRIS uses `;' to start comments and `@' for
1583 dnl line separator.
1584 case "${host_cpu}-${host_os}" in
1585   cris*)
1586     libc_cv_asm_line_sep='@'
1587     AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1588     ;;
1589   hppa*linux*)
1590   AC_CACHE_CHECK(for assembler line separator,
1591                  libc_cv_asm_line_sep, [dnl
1592   cat > conftest.s <<EOF
1593  nop ; is_old_puffin
1595   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1596     libc_cv_asm_line_sep='!'
1597   else
1598     if test -z "$enable_hacker_mode"; then
1599       echo "*** You need a newer assembler to compile glibc"
1600       rm -f conftest*
1601       exit 1
1602     fi
1603     libc_cv_asm_line_sep=';'
1604   fi
1605   rm -f conftest*])
1606   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1607   ;;
1608 esac
1610 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1611 cat > conftest.s <<EOF
1612         .text
1613         .type   func,@function
1614 func:
1615         .cfi_startproc
1616         .cfi_remember_state
1617         .cfi_rel_offset 1, 0
1618         .cfi_endproc
1620 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1621   libc_cv_asm_cfi_directives=yes
1622 else
1623   libc_cv_asm_cfi_directives=no
1625 rm -f conftest*])
1626 if test $libc_cv_asm_cfi_directives = yes; then
1627   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1630 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1631                libc_cv_cpp_asm_debuginfo, [dnl
1632 cat > conftest.S <<EOF
1633 #include "confdefs.h"
1635 /* comment on
1636    two lines */
1637         ${libc_cv_dot_text}
1638         ${libc_cv_asm_global_directive} foo
1639 foo:
1640         /* Unfortunately this test only works for a real instruction,
1641            not for any of the machine-independent pseudo-ops.
1642            So we just have to assume everybody has a "nop".  */
1643         nop
1644         /* comment */
1645         nop
1646         /* comment */
1647         nop
1649 if AC_TRY_COMMAND([${CC-cc} $CPPFLAGS $ASFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1650    ac_pattern='conftest\.S'
1651    AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1652                    grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1653   libc_cv_cpp_asm_debuginfo=yes
1654 else
1655   libc_cv_cpp_asm_debuginfo=no
1657 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1658 if test $libc_cv_cpp_asm_debuginfo = yes; then
1659   AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1662 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1663 cat > conftest.c <<\EOF
1664 _start () {}
1665 int __eh_pc;
1666 __throw () {}
1668 dnl No \ in command here because it ends up inside ''.
1669 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1670                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1671                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1672   libc_cv_ld_no_whole_archive=yes
1673 else
1674   libc_cv_ld_no_whole_archive=no
1676 rm -f conftest*])
1677 if test $libc_cv_ld_no_whole_archive = yes; then
1678   no_whole_archive=-Wl,--no-whole-archive
1680 AC_SUBST(no_whole_archive)dnl
1682 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1683 cat > conftest.c <<\EOF
1684 _start () {}
1685 int __eh_pc;
1686 __throw () {}
1688 dnl No \ in command here because it ends up inside ''.
1689 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1690                             -nostdlib -nostartfiles -fexceptions
1691                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1692   libc_cv_gcc_exceptions=yes
1693 else
1694   libc_cv_gcc_exceptions=no
1696 rm -f conftest*])
1697 if test $libc_cv_gcc_exceptions = yes; then
1698   exceptions=-fexceptions
1700 AC_SUBST(exceptions)dnl
1702 if test "$host_cpu" = powerpc ; then
1703 # Check for a bug present in at least versions 2.8.x of GCC
1704 # and versions 1.0.x of EGCS.
1705 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1706 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1707                libc_cv_c_asmcr0_bug='no',
1708                libc_cv_c_asmcr0_bug='yes')])
1709 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1710   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1714 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1715 [cat > conftest.c <<EOF
1716 #line $LINENO "configure"
1717 static char *__EH_FRAME_BEGIN__;
1718 _start ()
1720 #ifdef CHECK__register_frame
1721   __register_frame (__EH_FRAME_BEGIN__);
1722   __deregister_frame (__EH_FRAME_BEGIN__);
1723 #endif
1724 #ifdef CHECK__register_frame_info
1725   __register_frame_info (__EH_FRAME_BEGIN__);
1726   __deregister_frame_info (__EH_FRAME_BEGIN__);
1727 #endif
1729 int __eh_pc;
1730 __throw () {}
1731 /* FIXME: this is fragile.  */
1732 malloc () {}
1733 strcmp () {}
1734 strlen () {}
1735 memcpy () {}
1736 memset () {}
1737 free () {}
1738 abort () {}
1739 __bzero () {}
1740 dl_iterate_phdr () {}
1742 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1743                             $LDFLAGS \
1744                             -nostdlib -nostartfiles -o conftest conftest.c \
1745                             -lgcc"
1746 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1747 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1748    AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1749 then
1750   if $libc_unwind_check -v 2>&1 >/dev/null \
1751      | grep -- --eh-frame-hdr 2>&1 >/dev/null; then
1752     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1753   else
1754     libc_cv_gcc_dwarf2_unwind_info=static
1755   fi
1756 else
1757   libc_cv_gcc_dwarf2_unwind_info=no
1759 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1760   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1761                               $LDFLAGS -nostdlib -nostartfiles
1762                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1763     libc_cv_gcc_dwarf2_unwind_info=yes
1764   else
1765     libc_cv_gcc_dwarf2_unwind_info=no
1766   fi
1768 rm -f conftest*])
1769 case $libc_cv_gcc_dwarf2_unwind_info in
1770 yes)
1771   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1772   ;;
1773 static)
1774   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1775   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1776   ;;
1777 esac
1779 dnl Check whether compiler understands __builtin_expect.
1780 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1781 [cat > conftest.c <<EOF
1782 #line $LINENO "configure"
1783 int foo (int a)
1785   a = __builtin_expect (a, 10);
1786   return a == 10 ? 0 : 1;
1789 dnl No \ in command here because it ends up inside ''.
1790 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1791                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1792   libc_cv_gcc_builtin_expect=yes
1793 else
1794   libc_cv_gcc_builtin_expect=no
1796 rm -f conftest*])
1797 if test "$libc_cv_gcc_builtin_expect" = yes; then
1798   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1801 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1802 cat > conftest.c <<\EOF
1803 void zero (void *x)
1805   __builtin_memset (x, 0, 1000);
1809 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1810 then
1811   libc_cv_gcc_builtin_memset=no
1812 else
1813   libc_cv_gcc_builtin_memset=yes
1815 rm -f conftest* ])
1816 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1817   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1820 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1821 cat > conftest.c <<\EOF
1822 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1823 char *foo (const char *a, const char *b)
1825   return __builtin_strstr (a, b);
1829 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1830 then
1831   libc_cv_gcc_builtin_redirection=yes
1832 else
1833   libc_cv_gcc_builtin_redirection=no
1835 rm -f conftest* ])
1836 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1837   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1840 dnl Check whether the compiler supports subtraction of local labels.
1841 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1842 [cat > conftest.c <<EOF
1843 changequote(,)dnl
1844 #line $LINENO "configure"
1845 int foo (int a)
1847   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1848   void *p = &&l1 + ar[a];
1849   goto *p;
1850  l1:
1851   return 1;
1852  l2:
1853   return 2;
1855 changequote([,])dnl
1857 dnl No \ in command here because it ends up inside ''.
1858 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1859                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1860   libc_cv_gcc_subtract_local_labels=yes
1861 else
1862   libc_cv_gcc_subtract_local_labels=no
1864 rm -f conftest*])
1865 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1866   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1869 dnl Check whether the compiler supports the __thread keyword.
1870 if test "x$use__thread" != xno; then
1871   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1872   [cat > conftest.c <<\EOF
1873 __thread int a = 42;
1875   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1876     libc_cv_gcc___thread=yes
1877   else
1878     libc_cv_gcc___thread=no
1879   fi
1880   rm -f conftest*])
1881   if test "$libc_cv_gcc___thread" = yes; then
1882     AC_DEFINE(HAVE___THREAD)
1883   fi
1884 else
1885   libc_cv_gcc___thread=no
1888 if test "$libc_cv_gcc___thread" = yes; then
1889   dnl Check whether the compiler supports the tls_model attribute.
1890   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1891   cat > conftest.c <<\EOF
1892 extern __thread int a __attribute__((tls_model ("initial-exec")));
1894   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1895     libc_cv_gcc_tls_model_attr=yes
1896   else
1897     libc_cv_gcc_tls_model_attr=no
1898   fi
1899   rm -f conftest*])
1900   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1901     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1902   fi
1905 dnl Check whether we have the gd library available.
1906 AC_MSG_CHECKING(for libgd)
1907 if test "$with_gd" != "no"; then
1908   old_CFLAGS="$CFLAGS"
1909   CFLAGS="$CFLAGS $libgd_include"
1910   old_LDFLAGS="$LDFLAGS"
1911   LDFLAGS="$LDFLAGS $libgd_ldflags"
1912   old_LIBS="$LIBS"
1913   LIBS="$LIBS -lgd -lpng -lz -lm"
1914   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1915   CFLAGS="$old_CFLAGS"
1916   LDFLAGS="$old_LDFLAGS"
1917   LIBS="$old_LIBS"
1918 else
1919   LIBGD=no
1921 AC_MSG_RESULT($LIBGD)
1922 AC_SUBST(LIBGD)
1924 dnl check for the size of 'long double'.
1925 AC_CHECK_SIZEOF(long double, 0)
1926 sizeof_long_double=$ac_cv_sizeof_long_double
1927 AC_SUBST(sizeof_long_double)
1929 ### End of automated tests.
1930 ### Now run sysdeps configure fragments.
1932 # They also can set these variables.
1933 use_ldconfig=no
1934 ldd_rewrite_script=no
1935 libc_cv_sysconfdir=$sysconfdir
1936 libc_cv_gcc_unwind_find_fde=no
1937 libc_cv_idn=no
1939 # Iterate over all the sysdep directories we will use, running their
1940 # configure fragments, and looking for a uname implementation.
1941 uname=
1942 for dir in $sysnames; do
1943   case $dir in
1944     /*) dest=$dir ;;
1945     *)  dest=$srcdir/$dir ;;
1946   esac
1947   if test -r $dest/configure; then
1948     AC_MSG_RESULT(running configure fragment for $dir)
1949     . $dest/configure
1950   fi
1952   if test -z "$uname"; then
1953     if test -r $dest/uname.c ||
1954        test -r $dest/uname.S ||
1955        { test -r $dest/syscalls.list &&
1956          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1957       uname=$dir
1958     fi
1959   fi
1960 ]dnl
1961 done
1963 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1964   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1966 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1968 # If we will use the generic uname implementation, we must figure out what
1969 # it will say by examining the system, and write the results in config-name.h.
1970 if test "$uname" = "sysdeps/generic"; then
1972 changequote(,)dnl
1973   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1974 changequote([,])dnl
1975   if test $uname_sysname != $config_os; then
1976     config_release=`echo $config_os | sed s/$uname_sysname//`
1977   fi
1979 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1980     if test -r /vmunix; then
1981       kernel_id=`strings /vmunix | grep UNIX`
1982     elif test -r /dynix; then
1983       kernel_id=`strings /dynix | grep DYNIX`
1984     else
1985       kernel_id=
1986     fi
1987 ])dnl
1989   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1990 LIBC_KERNEL_ID
1991 changequote(,)dnl
1992   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1993 changequote([,])dnl
1994   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1995          != x$config_release; then
1996     # The configuration release is a substring of the kernel release.
1997     libc_cv_uname_release=$kernel_release
1998   elif test x$config_release != x; then
1999     libc_cv_uname_release=$config_release
2000   elif test x$kernel_release != x; then
2001     libc_cv_uname_release=$kernel_release
2002   else
2003     libc_cv_uname_release=unknown
2004   fi])
2005   uname_release="$libc_cv_uname_release"
2007   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2008 LIBC_KERNEL_ID
2009 changequote(,)dnl
2010   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2011 changequote([,])dnl
2012   if test -n "$kernel_version"; then
2013     libc_cv_uname_version="$kernel_version"
2014   else
2015     libc_cv_uname_version=unknown
2016   fi])
2017   uname_version="$libc_cv_uname_version"
2019 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2020   config_uname=config-name.h:config-name.in
2021 else
2022   # For non-generic uname, we don't need to create config-name.h at all.
2023   config_uname=
2026 dnl This is tested by existing code and it's simpler to avoid changing it.
2027 AC_DEFINE(USE_IN_LIBIO)
2029 # Test for old glibc 2.0.x headers so that they can be removed properly
2030 # Search only in includedir.
2031 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2032 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2033 then
2034   old_glibc_headers=yes
2035 else
2036   old_glibc_headers=no
2038 AC_MSG_RESULT($old_glibc_headers)
2039 if test ${old_glibc_headers} = yes; then
2040   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2041   AC_MSG_WARN(*** be removed.)
2043 AC_SUBST(old_glibc_headers)
2045 AC_SUBST(libc_cv_slibdir)
2046 AC_SUBST(libc_cv_localedir)
2047 AC_SUBST(libc_cv_sysconfdir)
2048 AC_SUBST(libc_cv_rootsbindir)
2049 AC_SUBST(libc_cv_forced_unwind)
2051 AC_SUBST(use_ldconfig)
2052 AC_SUBST(ldd_rewrite_script)
2054 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
2055 if test $gnu_ld = yes; then
2056   AC_DEFINE(HAVE_GNU_LD)
2058 if test $gnu_as = yes; then
2059   AC_DEFINE(HAVE_GNU_AS)
2061 if test $elf = yes; then
2062   AC_DEFINE(HAVE_ELF)
2064 if test $xcoff = yes; then
2065   AC_DEFINE(HAVE_XCOFF)
2068 AC_SUBST(static)
2069 AC_SUBST(shared)
2070 if test $shared = default; then
2071   if test $gnu_ld = yes; then
2072     shared=$elf
2073   else
2074     # For now we do not assume shared libs are available.  In future more
2075     # tests might become available.
2076     shared=no
2077   fi
2080 if test x"$libc_cv_idn" = xyes; then
2081   AC_DEFINE(HAVE_LIBIDN)
2084 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2085 [pic_default=yes
2086 cat > conftest.c <<EOF
2087 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2088 # error PIC is default.
2089 #endif
2091 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2092   pic_default=no
2094 rm -f conftest.*])
2095 AC_SUBST(pic_default)
2097 AC_SUBST(profile)
2098 AC_SUBST(omitfp)
2099 AC_SUBST(bounded)
2100 AC_SUBST(static_nss)
2101 AC_SUBST(nopic_initfini)
2103 AC_SUBST(DEFINES)
2105 case "$add_ons" in
2106   *door*) linux_doors=yes ;;
2107   *) linux_doors=no ;;
2108 esac
2109 AC_SUBST(linux_doors)
2111 dnl See sysdeps/mach/configure.in for this variable.
2112 AC_SUBST(mach_interface_list)
2114 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2115   config_makefile=
2116 else
2117   config_makefile=Makefile
2120 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2121 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2122 AC_SUBST(VERSION)
2123 AC_SUBST(RELEASE)
2125 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2126 AC_CONFIG_COMMANDS([default],[[
2127 case $CONFIG_FILES in *config.make*)
2128 echo "$config_vars" >> config.make;;
2129 esac
2130 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2131 AC_OUTPUT