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