Updated to fedora-glibc-20050524T1606
[glibc.git] / configure.in
blob503611a6b9da90803760c9e6a58b3179ce2f74bc
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([selinux],
85             AC_HELP_STRING([--with-selinux],
86                            [if building with SELinux support]),
87             [with_selinux=$withval],
88             [with_selinux=auto])
89 AC_ARG_WITH([xcoff],
90             AC_HELP_STRING([--with-xcoff],
91                            [if using the XCOFF object format]),
92             [xcoff=$withval],
93             [xcoff=no])
94 AC_ARG_WITH([cvs],
95             AC_HELP_STRING([--without-cvs],
96                            [if CVS should not be used]),
97             [with_cvs=$withval],
98             [with_cvs=yes])
99 if test "$with_cvs" = yes; then
100   if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
101   then
102     with_cvs=no
103   fi
105 AC_SUBST(with_cvs)
107 AC_ARG_WITH([headers],
108             AC_HELP_STRING([--with-headers=PATH],
109                            [location of system headers to use
110                             (for example /usr/src/linux/include)
111                             @<:@default=compiler default@:>@]),
112             [sysheaders=$withval],
113             [sysheaders=''])
115 AC_ARG_ENABLE([sanity-checks],
116               AC_HELP_STRING([--disable-sanity-checks],
117                              [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
118               [enable_sanity=$enableval],
119               [enable_sanity=yes])
121 AC_SUBST(enable_check_abi)
122 AC_ARG_ENABLE([check-abi],
123               AC_HELP_STRING([--enable-check-abi],
124                              [do "make check-abi" in "make check" (no/warn/yes)
125                               @<:@default=no@:>@]),
126               [enable_check_abi=$enableval],
127               [enable_check_abi=no])
129 dnl Arguments to enable or disable building the static, shared, profiled,
130 dnl and -fomit-frame-pointer libraries.
131 dnl I've disabled this for now since we cannot build glibc without static
132 dnl libraries built in the moment.
133 dnl AC_ARG_ENABLE([static],
134 dnl               AC_HELP_STRING([--enable-static],
135 dnl                              [build static library @<:@default=yes@:>@]),
136 dnl               [static=$enableval],
137 dnl               [static=yes])
138 static=yes
139 AC_ARG_ENABLE([shared],
140               AC_HELP_STRING([--enable-shared],
141                              [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
142               [shared=$enableval],
143               [shared=default])
144 AC_ARG_ENABLE([profile],
145               AC_HELP_STRING([--enable-profile],
146                              [build profiled library @<:@default=yes@:>@]),
147               [profile=$enableval],
148               [profile=yes])
149 AC_ARG_ENABLE([omitfp],
150               AC_HELP_STRING([--enable-omitfp],
151                              [build undebuggable optimized library @<:@default=no@:>@]),
152               [omitfp=$enableval],
153               [omitfp=no])
154 AC_ARG_ENABLE([bounded],
155               AC_HELP_STRING([--enable-bounded],
156                              [build with runtime bounds checking @<:@default=no@:>@]),
157               [bounded=$enableval],
158               [bounded=no])
159 AC_ARG_ENABLE([versioning],
160               AC_HELP_STRING([--disable-versioning],
161                              [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
162               [enable_versioning=$enableval],
163               [enable_versioning=yes])
165 AC_ARG_ENABLE([oldest-abi],
166               AC_HELP_STRING([--enable-oldest-abi=ABI],
167                              [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
168               [oldest_abi=$enableval],
169               [oldest_abi=no])
170 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
171   oldest_abi=default
172 else
173   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
175 AC_SUBST(oldest_abi)
177 dnl Generic infrastructure for drop-in additions to libc.
178 AC_ARG_ENABLE([add-ons],
179               AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
180                              [configure and build add-ons in DIR1,DIR2,...  search for add-ons if no parameter given]),
181   [case "$enableval" in
182     yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
183          add_ons_automatic=yes
184          test "$add_ons" = "*" && add_ons= ;;
185     *) add_ons=`echo "$enableval" | sed 's/,/ /g'`
186        add_ons_automatic=no ;;
187    esac],
188   [add_ons= add_ons_automatic=no])
190 dnl Let the user avoid using TLS.  Don't know why but...
191 AC_ARG_WITH([tls],
192             AC_HELP_STRING([--with-tls],
193                            [enable support for TLS]),
194             [usetls=$withval],
195             [usetls=yes])
197 AC_ARG_WITH([__thread],
198             AC_HELP_STRING([--without-__thread],
199                            [do not use TLS features even when supporting them]),
200             [use__thread=$withval],
201             [use__thread=yes])
203 AC_ARG_ENABLE([hidden-plt],
204               AC_HELP_STRING([--disable-hidden-plt],
205                              [do not hide internal function calls to avoid PLT]),
206               [hidden=$enableval],
207               [hidden=yes])
208 if test "x$hidden" = xno; then
209   AC_DEFINE(NO_HIDDEN)
212 AC_ARG_ENABLE([bind-now],
213               AC_HELP_STRING([--enable-bind-now],
214                              [disable lazy relocations in DSOs]),
215               [bindnow=$enableval],
216               [bindnow=no])
217 AC_SUBST(bindnow)
219 dnl On some platforms we cannot use dynamic loading.  We must provide
220 dnl static NSS modules.
221 AC_ARG_ENABLE([static-nss],
222               AC_HELP_STRING([--enable-static-nss],
223                              [build static NSS modules @<:@default=no@:>@]),
224               [static_nss=$enableval],
225               [static_nss=no])
226 dnl Enable static NSS also if we build no shared objects.
227 if test x"$static_nss" = xyes || test x"$shared" = xno; then
228   static_nss=yes
229   AC_DEFINE(DO_STATIC_NSS)
232 AC_ARG_ENABLE([force-install],
233               AC_HELP_STRING([--disable-force-install],
234                              [don't force installation of files from this package, even if they are older than the installed files]),
235               [force_install=$enableval],
236               [force_install=yes])
237 AC_SUBST(force_install)
239 dnl On some platforms we allow dropping compatibility with all kernel
240 dnl versions.
241 AC_ARG_ENABLE([kernel],
242               AC_HELP_STRING([--enable-kernel=VERSION],
243                              [compile for compatibility with kernel not older than VERSION]),
244               [minimum_kernel=$enableval],
245               [])
246 dnl Prevent unreasonable values.
247 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
248   # Better nothing than this.
249   minimum_kernel=""
250 else
251   if test "$minimum_kernel" = current; then
252     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
253   fi
256 dnl For the development we sometimes want gcc to issue even more warnings.
257 dnl This is not the default since many of the extra warnings are not
258 dnl appropriate.
259 AC_ARG_ENABLE([all-warnings],
260               AC_HELP_STRING([--enable-all-warnings],
261                              [enable all useful warnings gcc can issue]),
262               [all_warnings=$enableval],
263               [])
264 AC_SUBST(all_warnings)
266 AC_CANONICAL_HOST
268 # The way shlib-versions is used to generate soversions.mk uses a
269 # fairly simplistic model for name recognition that can't distinguish
270 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
271 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
272 # tell.  This doesn't get used much beyond that, so it's fairly safe.
273 case "$host_os" in
274 linux*)
275   ;;
276 gnu*)
277   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
278   ;;
279 esac
281 # We keep the original values in `$config_*' and never modify them, so we
282 # can write them unchanged into config.make.  Everything else uses
283 # $machine, $vendor, and $os, and changes them whenever convenient.
284 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
286 # Don't allow vendor == "unknown"
287 test "$config_vendor" = unknown && config_vendor=
288 config_os="`echo $config_os | sed 's/^unknown-//'`"
290 # Some configurations imply other options.
291 case "$host_os" in
292 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
293   # These systems always use GNU tools.
294   gnu_ld=yes gnu_as=yes ;;
295 esac
296 case "$host_os" in
297 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
298 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
299   ;;
300 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
301   # These systems (almost) always use the ELF format.
302   elf=yes
303   ;;
304 aix*)
305   # These systems are always xcoff
306   xcoff=yes
307   elf=no
308   ;;
309 esac
311 # The configure fragment of an add-on port can modify these to supplement
312 # or override the table in the case statement below.  No fragment should
313 # ever change the config_* variables, however.
314 machine=$config_machine
315 vendor=$config_vendor
316 os=$config_os
318 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
319 # Unify this here.
320 if test "$machine" = rs6000; then
321   machine="powerpc"
324 # Braindead PowerPC box with absolutely no FPU.
325 case "$machine-$host_os" in
326   powerpc*-*soft)
327     with_fp=no
328     ;;
329 esac
332 # An add-on can set this when it the tuple to disable the sanity check below.
333 libc_config_ok=no
335 dnl Having this here, though empty, makes sure that if add-ons' fragments
336 dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
337 dnl our AC_OUTPUT will actually use it.
338 AC_CONFIG_SUBDIRS()
340 add_ons_sfx=
341 add_ons_pfx=
342 if test x"$add_ons" != x; then
343   for f in $add_ons; do
344     # Some sanity checks
345     case "$f" in
346     crypt)
347       AC_MSG_ERROR([
348 *** It seems that you're using an old \`crypt' add-on.  crypt is now
349 *** part of glibc and using the old add-on will not work with this
350 *** release.  Start again with fresh sources and without the old
351 *** \`crypt' add-on.])
352     ;;
353     localedata)
354       AC_MSG_ERROR([
355 *** It seems that you're using an old \`localedata' add-on.  localedata
356 *** is now part of glibc and using the old add-on will not work with
357 *** this release.  Start again with fresh sources and without the old
358 *** \`localedata' add-on.])
359     ;;
360     esac
362     # Test whether such a subdir really exists.
363     test -d $srcdir/$f || {
364       AC_MSG_ERROR(add-on directory \"$f\" does not exist)
365     }
366   done
368   # Now source each add-on's configure fragment.
369   # The fragments can use $srcdir/$libc_add_on to find themselves,
370   # and test $add_ons_automatic to see if they were explicitly requested.
371   # A fragment can clear (or even change) $libc_add_on to affect
372   # whether it goes into the list to be actually used in the build.
373   use_add_ons=
374   for libc_add_on in $add_ons; do
375     libc_add_on_frag=$srcdir/$libc_add_on/configure
376     if test -r $libc_add_on_frag; then
377       AC_MSG_RESULT(running configure fragment for add-on $libc_add_on)
378       . $libc_add_on_frag
379     else
380       AC_MSG_WARN(add-on fragment $libc_add_on_frag missing)
381     fi
382     if test -n "$libc_add_on"; then
383       use_add_ons="$use_add_ons $libc_add_on"
384       add_ons_pfx="$add_ons_pfx $libc_add_on/"
385       add_ons_sfx="$add_ons_sfx /$libc_add_on"
386     fi
387   done
388   # Use echo to strip excess whitespace.
389   add_ons="`echo $use_add_ons`"
391 AC_SUBST(add_ons)
395 ### I put this here to prevent those annoying emails from people who cannot
396 ### read and try to compile glibc on unsupported platforms.  --drepper
398 ### By using the undocumented --enable-hacker-mode option for configure
399 ### one can skip this test to make the configuration not fail for unsupported
400 ### platforms.
402 if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
403   case "$machine-$host_os" in
404   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
405     ;;
406   *)
407     echo "*** The GNU C library is currently not available for this platform."
408     echo "*** So far nobody cared to port it and if there is no volunteer it"
409     echo "*** might never happen.  So, if you have interest to see glibc on"
410     echo "*** this platform visit"
411     echo "***   http://www.gnu.org/software/libc/porting.html"
412     echo "*** and join the group of porters"
413     exit 1
414     ;;
415   esac
418 dnl We need to use [ and ] for other purposes for a while now.
419 changequote(,)dnl
420 # Expand the configuration machine name into a subdirectory by architecture
421 # type and particular chip.  If an add-on configure fragment already set
422 # base_machine, we don't change it.
423 test -n "$base_machine" || case "$machine" in
424 a29k | am29000) base_machine=a29k machine=a29k ;;
425 alpha*)         base_machine=alpha machine=alpha/$machine ;;
426 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
427 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
428 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
429 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
430 i[34567]86)     base_machine=i386 machine=i386/$machine ;;
431 ia64)           base_machine=ia64 machine=ia64 ;;
432 m680?0)         base_machine=m68k machine=m68k/$machine ;;
433 m68k)           base_machine=m68k machine=m68k/m68020 ;;
434 m88???)         base_machine=m88k machine=m88k/$machine ;;
435 m88k)           base_machine=m88k machine=m88k/m88100 ;;
436 mips64*)        base_machine=mips64
437                 case "$CC $CFLAGS $CPPFLAGS " in
438                 *" -mabi=n32 "*) mips_cc_abi=n32 ;;
439                 *" -mabi=64 "*|*" -mabi=n64 "*) mips_cc_abi=64 ;;
440                 *" -mabi=32 "*|*" -mabi=o32 "*) mips_cc_abi=32 ;;
441                 *) mips_cc_abi=default ;;
442                 esac
443                 case $config_os in
444                 *abin32*) mips_config_abi=n32 ;;
445                 *abi64*|*abin64*) mips_config_abi=64 ;;
446                 *abi32*|*abio32*) mips_config_abi=32 ;;
447                 *) mips_config_abi=$mips_cc_abi ;;
448                 esac
449                 case $mips_config_abi in
450                 default) machine=mips/mips64/n32 mips_config_abi=n32 ;;
451                 n32) machine=mips/mips64/n32 ;;
452                 64) machine=mips/mips64/n64 ;;
453                 32) machine=mips/mips32/kern64 ;;
454                 esac
455                 machine=$machine/$config_machine
456                 if test $mips_config_abi != $mips_cc_abi; then
457                   # This won't make it to config.make, but we want to
458                   # set this in case configure tests depend on it.
459                   CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi"
460                 fi
461                 ;;
462 mips*)          base_machine=mips machine=mips/mips32/$machine ;;
463 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
464 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
465 s390)           base_machine=s390 machine=s390/s390-32 ;;
466 s390x)          base_machine=s390 machine=s390/s390-64 ;;
467 sh3*)           base_machine=sh machine=sh/sh3 ;;
468 sh4*)           base_machine=sh machine=sh/sh4 ;;
469 sparc | sparcv[67])
470                 base_machine=sparc machine=sparc/sparc32 ;;
471 sparcv8 | supersparc | hypersparc)
472                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
473 sparcv8plus | sparcv8plusa | sparcv9)
474                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
475 sparcv8plusb | sparcv9b)
476                 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
477 sparc64)
478                 base_machine=sparc machine=sparc/sparc64 ;;
479 sparc64b)
480                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
481 *)              base_machine=$machine ;;
482 esac
483 changequote([,])dnl
484 AC_SUBST(base_machine)
486 if test "$base_machine" = "i386"; then
487   AC_DEFINE(USE_REGPARMS)
490 # Compute the list of sysdep directories for this configuration.
491 # This can take a while to compute.
492 sysdep_dir=$srcdir/sysdeps
493 AC_MSG_CHECKING(sysdep dirs)
494 dnl We need to use [ and ] for other purposes for a while now.
495 changequote(,)dnl
496 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
497 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
499 case "$os" in
500 gnu*)
501   base_os=mach/hurd ;;
502 netbsd* | 386bsd* | freebsd* | bsdi*)
503   base_os=unix/bsd/bsd4.4 ;;
504 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
505   base_os=unix/bsd ;;
506 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
507   base_os=unix/sysv ;;
508 irix6*)
509   base_os=unix/sysv/irix6/$os ;;
510 solaris[2-9]*)
511   base_os=unix/sysv/sysv4 ;;
512 hpux*)
513   base_os=unix/sysv/hpux/$os ;;
514 aix4.3*)
515   base_os=unix/sysv/aix/aix4.3 ;;
516 none)
517   base_os=standalone ;;
519   base_os='' ;;
520 esac
522 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
523 tail=$os
524 ostry=$os
525 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
526   ostry="$ostry /$o"
527   tail=$o
528 done
529 o=`echo $tail | sed 's/[0-9]*$//'`
530 if test $o != $tail; then
531   ostry="$ostry /$o"
533 # For linux-gnu, try linux-gnu, then linux.
534 o=`echo $tail | sed 's/-.*$//'`
535 if test $o != $tail; then
536   ostry="$ostry /$o"
539 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
540 base=
541 tail=$base_os
542 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
543   set $b
544   base="$base /$1"
545   tail="$2"
546 done
548 # For sparc/sparc32, try sparc/sparc32 and then sparc.
549 mach=
550 tail=$machine
551 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
552   set $m
553   # Prepend the machine's FPU directory unless --without-fp.
554   if test "$with_fp" = yes; then
555     mach="$mach /$1/fpu"
556   else
557     mach="$mach /$1/nofpu"
558   fi
559   mach="$mach /$1"
560   tail="$2"
561 done
563 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
564 changequote([,])dnl
566 # Find what sysdep directories exist.
567 sysnames=
568 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
569 for d in $add_ons_pfx ''; do
570   for b in $base ''; do
571     for m0 in $mach ''; do
572       for v in /$vendor ''; do
573         test "$v" = / && continue
574         for o in /$ostry ''; do
575           test "$o" = / && continue
576           for m in $mach ''; do
577             for a in $add_ons_sfx ''; do
578               if test "$m0$b$v$o$m"; then
579                 try="${d}sysdeps$m0$b$v$o$m$a"
580                 test -n "$enable_debug_configure" &&
581                 echo "$0 [DEBUG]: try $try" >&2
582                 if test -d $srcdir/$try; then
583                   sysnames="$sysnames $try"
584                   { test -n "$o" || test -n "$b"; } && os_used=t
585                   { test -n "$m" || test -n "$m0"; } && machine_used=t
586                 fi
587               fi
588             done
589           done
590         done
591       done
592     done
593   done
594   if test -n "$d"; then
595     try="${d}sysdeps/generic"
596     test -n "$enable_debug_configure" &&
597     echo "$0 DEBUG: try $try" >&2
598     if test -d $srcdir/$try; then
599       sysnames="$sysnames $try"
600     fi
601   fi
602 done
603 IFS="$ac_save_ifs"
605 if test -z "$os_used" && test "$os" != none; then
606   AC_MSG_ERROR(Operating system $os is not supported.)
608 if test -z "$machine_used" && test "$machine" != none; then
609   AC_MSG_ERROR(The $machine is not supported.)
612 # We have now validated the configuration.
615 # If using ELF, look for an `elf' subdirectory of each machine directory.
616 # We prepend these rather than inserting them whereever the machine appears
617 # because things specified by the machine's ELF ABI should override
618 # OS-specific things, and should always be the same for any OS on the
619 # machine (otherwise what's the point of an ABI?).
620 if test "$elf" = yes; then
621   elf_dirs=
622   for d in $add_ons_pfx ''; do
623     for m in $mach; do
624       if test -d $srcdir/${d}sysdeps$m/elf; then
625         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
626       fi
627     done
628   done
629   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
633 # Expand the list of system names into a full list of directories
634 # from each element's parent name and Implies file (if present).
635 set $sysnames
636 names=
637 while test $# -gt 0; do
638   name=$1
639   shift
641   case " $names " in *" $name "*)
642     # Already in the list.
643     continue
644   esac
646   # Report each name as we discover it, so there is no long pause in output.
647   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
649   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
651   case $name in
652     /*) xsrcdir= ;;
653     *)  xsrcdir=$srcdir/ ;;
654   esac
655   test -n "$enable_debug_configure" &&
656   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
658   if test -f $xsrcdir$name/Implies; then
659     # Collect more names from the `Implies' file (removing comments).
660     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
661     implied=
662     for x in $implied_candidate; do
663       found=no
664       if test -d $xsrcdir$name_base/$x; then
665         implied="$implied $name_base/$x";
666         found=yes
667       fi
668       for d in $add_ons_pfx ''; do
669         try="${d}sysdeps/$x"
670         case $d in
671          /*) try_srcdir= ;;
672          *) try_srcdir=$srcdir/ ;;
673         esac
674         test -n "$enable_debug_configure" &&
675          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
676         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
677         then
678           implied="$implied $try"
679           found=yes
680         fi
681       done
682       if test $found = no; then
683         AC_MSG_WARN($name/Implies specifies nonexistent $x)
684       fi
685     done
686   else
687     implied=
688   fi
690   # Add NAME to the list of names.
691   names="$names $name"
693   # Find the parent of NAME, using the empty string if it has none.
694 changequote(,)dnl
695   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
696 changequote([,])dnl
698   # Add the names implied by NAME, and NAME's parent (if it has one), to
699   # the list of names to be processed (the argument list).  We prepend the
700   # implied names to the list and append the parent.  We want implied
701   # directories to come before further directories inferred from the
702   # configuration components; this ensures that for sysv4, unix/common
703   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
704   # after sysv4).
705   sysnames="`echo $implied $* $parent`"
706   test -n "$sysnames" && set $sysnames
707 done
709 # Add the default directories.
710 default_sysnames=sysdeps/generic
711 if test "$elf" = yes; then
712   default_sysnames="sysdeps/generic/elf $default_sysnames"
714 sysnames="$names $default_sysnames"
715 AC_SUBST(sysnames)
716 # The other names were emitted during the scan.
717 AC_MSG_RESULT($default_sysnames)
720 ### Locate tools.
722 AC_PROG_INSTALL
723 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
724   # The makefiles need to use a different form to find it in $srcdir.
725   INSTALL='\$(..)./scripts/install-sh -c'
727 AC_PROG_LN_S
729 AC_PROG_CC
730 if test $host != $build; then
731   AC_CHECK_PROGS(BUILD_CC, gcc cc)
733 AC_SUBST(cross_compiling)
734 AC_PROG_CPP
735 # We need the C++ compiler only for testing.
736 AC_PROG_CXX
737 LIBC_PROG_BINUTILS
738 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
740 # Accept binutils 2.13 or newer.
741 AC_CHECK_PROG_VER(AS, $AS, --version,
742                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
743                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
744 AC_CHECK_PROG_VER(LD, $LD, --version,
745                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
746                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
748 # We need the physical current working directory.  We cannot use the
749 # "pwd -P" shell builtin since that's not portable.  Instead we try to
750 # find a pwd binary.  Note that assigning to the PWD environment
751 # variable might have some interesting side effects, so we don't do
752 # that.
753 AC_PATH_PROG(PWD_P, pwd, no)
754 if test "$PWD_P" = no; then
755   AC_MSG_ERROR(*** A pwd binary could not be found.)
758 # These programs are version sensitive.
759 AC_CHECK_TOOL_PREFIX
760 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
761   [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
762   critic_missing="$critic_missing gcc")
763 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
764   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
765   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
767 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
768   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
769   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
770   MSGFMT=: aux_missing="$aux_missing msgfmt")
771 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
772   [GNU texinfo.* \([0-9][0-9.]*\)],
773   [4.*],
774   MAKEINFO=: aux_missing="$aux_missing makeinfo")
775 AC_CHECK_PROG_VER(SED, sed, --version,
776   [GNU sed version \([0-9]*\.[0-9.]*\)],
777   [3.0[2-9]*|3.[1-9]*|[4-9]*],
778   SED=: aux_missing="$aux_missing sed")
780 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
781 case "x$AUTOCONF" in
782 xno|x|x:) AUTOCONF=no ;;
784   AC_CACHE_CHECK(dnl
785 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
786   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
787     libc_cv_autoconf_works=yes
788   else
789     libc_cv_autoconf_works=no
790   fi])
791   test $libc_cv_autoconf_works = yes || AUTOCONF=no
792   ;;
793 esac
794 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
795   # If --without-cvs they probably won't change configure.in, so no complaints.
796   aux_missing="$aux_missing autoconf"
799 test -n "$critic_missing" && AC_MSG_ERROR([
800 *** These critical programs are missing or too old:$critic_missing
801 *** Check the INSTALL file for required versions.])
803 test -n "$aux_missing" && AC_MSG_WARN([
804 *** These auxiliary programs are missing or incompatible versions:$aux_missing
805 *** some features will be disabled.
806 *** Check the INSTALL file for required versions.])
808 # if using special system headers, find out the compiler's sekrit
809 # header directory and add that to the list.  NOTE: Only does the right
810 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
811 if test -n "$sysheaders"; then
812   ccheaders=`$CC -print-file-name=include`
813   SYSINCLUDES="-nostdinc -isystem $ccheaders \
814 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
816 AC_SUBST(SYSINCLUDES)
818 # check if ranlib is necessary
819 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
820 cat > conftest.c <<EOF
821 int a;
822 char b;
823 void c(void) {}
825 $CC $CFLAGS $CPPFLAGS -c conftest.c
826 $AR cr conftest.a conftest.o
827 cp conftest.a conftest2.a
828 $RANLIB conftest.a
829 if cmp -s conftest.a conftest2.a; then
830   libc_cv_ranlib_necessary=no
831 else
832   libc_cv_ranlib_necessary=yes
834 rm -rf conftest*])
835 if test "$libc_cv_ranlib_necessary" = no; then
836  RANLIB=:
839 # Test if LD_LIBRARY_PATH contains the notation for the current directory
840 # since this would lead to problems installing/building glibc.
841 # LD_LIBRARY_PATH contains the current directory if one of the following
842 # is true:
843 # - one of the terminals (":" and ";") is the first or last sign
844 # - two terminals occur directly after each other
845 # - the path contains an element with a dot in it
846 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
847 changequote(,)dnl
848 case ${LD_LIBRARY_PATH} in
849   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
850     ld_library_path_setting="contains current directory"
851     ;;
852   *)
853     ld_library_path_setting="ok"
854     ;;
855 esac
856 changequote([,])dnl
857 AC_MSG_RESULT($ld_library_path_setting)
858 if test "$ld_library_path_setting" != "ok"; then
859 AC_MSG_ERROR([
860 *** LD_LIBRARY_PATH shouldn't contain the current directory when
861 *** building glibc. Please change the environment variable
862 *** and run configure again.])
865 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
866 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
867   libc_cv_gcc_static_libgcc=
868 else
869   libc_cv_gcc_static_libgcc=-static-libgcc
870 fi])
871 AC_SUBST(libc_cv_gcc_static_libgcc)
873 AC_PATH_PROG(BASH, bash, no)
874 if test "$BASH" != no &&
875    $BASH -c 'test "$BASH_VERSINFO" \
876              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
877   libc_cv_have_bash2=yes
878 else
879   libc_cv_have_bash2=no
881 AC_SUBST(libc_cv_have_bash2)
883 dnl We need a ksh compatible shell for tzselect.
884 if test "$BASH" = no; then
885   AC_PATH_PROG(KSH, ksh, no)
886   if test "$KSH" = no; then
887     libc_cv_have_ksh=no
888   else
889     libc_cv_have_ksh=yes
890   fi
891 else
892   KSH="$BASH"
893   AC_SUBST(KSH)
894   libc_cv_have_ksh=yes
896 AC_SUBST(libc_cv_have_ksh)
898 AC_PROG_AWK
899 AC_PATH_PROG(PERL, perl, no)
900 if test "$PERL" != no &&
901    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
902   PERL=no
904 AC_PATH_PROG(INSTALL_INFO, install-info, no,
905              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
906 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
908 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
909 echo '#include <stddef.h>
910 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
911 if eval "$ac_cpp conftest.c 2>/dev/null" \
912 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
913   libc_cv_signed_size_t=no
914 else
915   libc_cv_signed_size_t=yes
917 rm -f conftest*])
918 if test $libc_cv_signed_size_t = yes; then
919   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
920   cat >> confdefs.h <<\EOF
921 #undef __SIZE_TYPE__
922 #define __SIZE_TYPE__ unsigned
926 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
927 AC_TRY_COMPILE(dnl
928 [#define __need_size_t
929 #define __need_wchar_t
930 #include <stddef.h>
931 #define __need_NULL
932 #include <stddef.h>], [size_t size; wchar_t wchar;
933 #ifdef offsetof
934 #error stddef.h ignored __need_*
935 #endif
936 if (&size == NULL || &wchar == NULL) abort ();],
937                libc_cv_friendly_stddef=yes,
938                libc_cv_friendly_stddef=no)])
939 if test $libc_cv_friendly_stddef = yes; then
940   config_vars="$config_vars
941 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
944 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
945                libc_cv_need_minus_P, [dnl
946 cat > conftest.S <<EOF
947 #include "confdefs.h"
948 /* Nothing whatsoever.  */
950 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
951   libc_cv_need_minus_P=no
952 else
953   libc_cv_need_minus_P=yes
955 rm -f conftest*])
956 if test $libc_cv_need_minus_P = yes; then
957   config_vars="$config_vars
958 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
961 AC_MSG_CHECKING(whether .text pseudo-op must be used)
962 AC_CACHE_VAL(libc_cv_dot_text, [dnl
963 cat > conftest.s <<EOF
964 .text
966 libc_cv_dot_text=
967 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
968   libc_cv_dot_text=.text
970 rm -f conftest*])
971 if test -z "$libc_cv_dot_text"; then
972   AC_MSG_RESULT(no)
973 else
974   AC_MSG_RESULT(yes)
977 AC_CACHE_CHECK(for assembler global-symbol directive,
978                libc_cv_asm_global_directive, [dnl
979 libc_cv_asm_global_directive=UNKNOWN
980 for ac_globl in .globl .global .EXPORT; do
981   cat > conftest.s <<EOF
982         ${libc_cv_dot_text}
983         ${ac_globl} foo
984 foo:
986   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
987     libc_cv_asm_global_directive=${ac_globl}
988   fi
989   rm -f conftest*
990   test $libc_cv_asm_global_directive != UNKNOWN && break
991 done])
992 if test $libc_cv_asm_global_directive = UNKNOWN; then
993   AC_MSG_ERROR(cannot determine asm global directive)
994 else
995   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
998 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
999 cat > conftest.s <<EOF
1000 ${libc_cv_dot_text}
1001 foo:
1002 .set glibc_conftest_frobozz,foo
1003 $libc_cv_asm_global_directive glibc_conftest_frobozz
1005 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1006 # (but it doesn't work), so we must do a linking check to be sure.
1007 cat > conftest1.c <<\EOF
1008 extern int glibc_conftest_frobozz;
1009 void _start() { glibc_conftest_frobozz = 1; }
1011 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1012             -nostartfiles -nostdlib \
1013             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1014   libc_cv_asm_set_directive=yes
1015 else
1016   libc_cv_asm_set_directive=no
1018 rm -f conftest*])
1019 if test $libc_cv_asm_set_directive = yes; then
1020   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1023 AC_CACHE_CHECK(for assembler .type directive prefix,
1024                libc_cv_asm_type_prefix, [dnl
1025 libc_cv_asm_type_prefix=no
1026 for ac_try_prefix in '@' '%' '#'; do
1027   cat > conftest.s <<EOF
1028         ${libc_cv_dot_text}
1029         ${libc_cv_asm_global_directive} foo
1030         .type foo, ${ac_try_prefix}object
1031         .size foo, 1
1032 foo:
1033         .byte 1
1035   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1036     libc_cv_asm_type_prefix=${ac_try_prefix}
1037   fi
1038   rm -f conftest*
1039   test "x$libc_cv_asm_type_prefix" != xno && break
1040 done])
1041 if test "x$libc_cv_asm_type_prefix" != xno; then
1042   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1045 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1046 [cat > conftest.s <<EOF
1047 ${libc_cv_dot_text}
1048 _sym:
1049 .symver _sym,sym@VERS
1051 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1052   libc_cv_asm_symver_directive=yes
1053 else
1054   libc_cv_asm_symver_directive=no
1056 rm -f conftest*])
1057 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1058 if test $libc_cv_asm_symver_directive = yes; then
1059   cat > conftest.s <<EOF
1060 ${libc_cv_dot_text}
1061 _sym:
1062 .symver _sym,sym@VERS
1064   cat > conftest.map <<EOF
1065 VERS_1 {
1066         global: sym;
1069 VERS_2 {
1070         global: sym;
1071 } VERS_1;
1073   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1074     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1075                                 -o conftest.so conftest.o
1076                                 -nostartfiles -nostdlib
1077                                 -Wl,--version-script,conftest.map
1078                        1>&AS_MESSAGE_LOG_FD]);
1079     then
1080       libc_cv_ld_version_script_option=yes
1081     else
1082       libc_cv_ld_version_script_option=no
1083     fi
1084   else
1085     libc_cv_ld_version_script_option=no
1086   fi
1087 else
1088   libc_cv_ld_version_script_option=no
1090 rm -f conftest*])
1091 if test $shared != no &&
1092    test $libc_cv_asm_symver_directive = yes &&
1093    test $libc_cv_ld_version_script_option = yes &&
1094    test $enable_versioning = yes; then
1095   VERSIONING=yes
1096   AC_DEFINE(DO_VERSIONING)
1097 else
1098   VERSIONING=no
1100 AC_SUBST(VERSIONING)
1102 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1103   echo "\
1104 *** WARNING: You should not compile GNU libc without versioning. Not using
1105 *** versioning will introduce incompatibilities so that old binaries
1106 *** will not run anymore.
1107 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1109 if test $elf = yes; then
1110   AC_CACHE_CHECK(for .previous assembler directive,
1111                  libc_cv_asm_previous_directive, [dnl
1112   cat > conftest.s <<EOF
1113 .section foo_section
1114 .previous
1116   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1117     libc_cv_asm_previous_directive=yes
1118   else
1119     libc_cv_asm_previous_directive=no
1120   fi
1121   rm -f conftest*])
1122   if test $libc_cv_asm_previous_directive = yes; then
1123     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1124   else
1125     AC_CACHE_CHECK(for .popsection assembler directive,
1126                    libc_cv_asm_popsection_directive, [dnl
1127     cat > conftest.s <<EOF
1128 .pushsection foo_section
1129 .popsection
1131     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1132       libc_cv_asm_popsection_directive=yes
1133     else
1134       libc_cv_asm_popsection_directive=no
1135     fi
1136     rm -f conftest*])
1137     if test $libc_cv_asm_popsection_directive = yes; then
1138       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1139     fi
1140   fi
1141   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1142                  libc_cv_asm_protected_directive, [dnl
1143   cat > conftest.s <<EOF
1144 .protected foo
1145 foo:
1146 .hidden bar
1147 bar:
1149   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1150     libc_cv_asm_protected_directive=yes
1151   else
1152     libc_cv_asm_protected_directive=no
1153   fi
1154   rm -f conftest*])
1155   AC_SUBST(libc_cv_asm_protected_directive)
1156   AC_DEFINE(HAVE_PROTECTED)
1157   AC_DEFINE(HAVE_HIDDEN)
1159   if test $libc_cv_asm_protected_directive = yes; then
1160     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1161                  libc_cv_visibility_attribute,
1162                  [cat > conftest.c <<EOF
1163                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1164                   int bar __attribute__ ((visibility ("protected"))) = 1;
1166                   libc_cv_visibility_attribute=no
1167                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1168                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1169                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1170                         libc_cv_visibility_attribute=yes
1171                       fi
1172                     fi
1173                   fi
1174                   rm -f conftest.[cs]
1175                  ])
1176     if test $libc_cv_visibility_attribute = yes; then
1177       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1178     fi
1179   fi
1181   if test $libc_cv_visibility_attribute = yes; then
1182     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1183                  libc_cv_broken_visibility_attribute,
1184                  [cat > conftest.c <<EOF
1185                   int foo (int x);
1186                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1187                   int bar (int x) { return x; }
1189                   libc_cv_broken_visibility_attribute=yes
1190                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1191 changequote(,)dnl
1192                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1193 changequote([,])dnl
1194                       libc_cv_broken_visibility_attribute=no
1195                     fi
1196                   fi
1197                   rm -f conftest.c conftest.s
1198                  ])
1199     if test $libc_cv_broken_visibility_attribute = yes; then
1200       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1201     fi
1202   fi
1204   AC_CACHE_CHECK(for broken __attribute__((alias())),
1205                  libc_cv_broken_alias_attribute,
1206                  [cat > conftest.c <<EOF
1207                   extern int foo (int x) __asm ("xyzzy");
1208                   int bar (int x) { return x; }
1209                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1210                   extern int dfoo;
1211                   extern __typeof (dfoo) dfoo __asm ("abccb");
1212                   int dfoo = 1;
1214                   libc_cv_broken_alias_attribute=yes
1215                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1216                     if grep 'xyzzy' conftest.s >/dev/null &&
1217                        grep 'abccb' conftest.s >/dev/null; then
1218                       libc_cv_broken_alias_attribute=no
1219                     fi
1220                   fi
1221                   rm -f conftest.c conftest.s
1222                  ])
1223   if test $libc_cv_broken_alias_attribute = yes; then
1224     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1225   fi
1227   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1228     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1229                  libc_cv_have_sdata_section,
1230                  [echo "int i;" > conftest.c
1231                   libc_cv_have_sdata_section=no
1232                   if ${CC-cc} $LDFLAGS -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1233                      | grep '\.sdata' >/dev/null; then
1234                     libc_cv_have_sdata_section=yes
1235                   fi
1236                   rm -f conftest.c conftest.so
1237                  ])
1238     if test $libc_cv_have_sdata_section = yes; then
1239       AC_DEFINE(HAVE_SDATA_SECTION)
1240     fi
1241   fi
1243   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1244                  libc_cv_initfinit_array, [dnl
1245   cat > conftest.c <<EOF
1246 int _start (void) { return 0; }
1247 int __start (void) { return 0; }
1248 int foo (void) { return 1; }
1249 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1251   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1252                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1253   then
1254     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1255       libc_cv_initfinit_array=yes
1256     else
1257       libc_cv_initfinit_array=no
1258     fi
1259   else
1260     libc_cv_initfinit_array=no
1261   fi
1262   rm -f conftest*])
1263   AC_SUBST(libc_cv_initfinit_array)
1264   if test $libc_cv_initfinit_array = yes; then
1265     AC_DEFINE(HAVE_INITFINI_ARRAY)
1266   fi
1268   AC_CACHE_CHECK(for libunwind-support in compiler,
1269                  libc_cv_cc_with_libunwind, [
1270     cat > conftest.c <<EOF
1271 int main (void) { return 0; }
1273     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1274        conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1275       libc_cv_cc_with_libunwind=yes
1276     else
1277       libc_cv_cc_with_libunwind=no
1278     fi
1279     rm -f conftest*])
1280   AC_SUBST(libc_cv_cc_with_libunwind)
1281   if test $libc_cv_cc_with_libunwind = yes; then
1282     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1283   fi
1285   AC_CACHE_CHECK(for -z nodelete option,
1286                  libc_cv_z_nodelete, [dnl
1287   cat > conftest.c <<EOF
1288 int _start (void) { return 42; }
1290   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1291                      -shared -o conftest.so conftest.c
1292                      -nostartfiles -nostdlib
1293                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1294   then
1295     libc_cv_z_nodelete=yes
1296   else
1297     libc_cv_z_nodelete=no
1298   fi
1299   rm -f conftest*])
1300   AC_SUBST(libc_cv_z_nodelete)
1302   AC_CACHE_CHECK(for -z nodlopen option,
1303                  libc_cv_z_nodlopen, [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                         -nostartfiles -nostdlib
1310                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1311   then
1312     libc_cv_z_nodlopen=yes
1313   else
1314     libc_cv_z_nodlopen=no
1315   fi
1316   rm -f conftest*])
1317   AC_SUBST(libc_cv_z_nodlopen)
1319   AC_CACHE_CHECK(for -z initfirst option,
1320                  libc_cv_z_initfirst, [dnl
1321   cat > conftest.c <<EOF
1322 int _start (void) { return 42; }
1324   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1325                         -shared -o conftest.so conftest.c
1326                         -nostartfiles -nostdlib
1327                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1328   then
1329     libc_cv_z_initfirst=yes
1330   else
1331     libc_cv_z_initfirst=no
1332   fi
1333   rm -f conftest*])
1334   AC_SUBST(libc_cv_z_initfirst)
1336   AC_CACHE_CHECK(for -z relro option,
1337                  libc_cv_z_relro, [dnl
1338   libc_cv_z_relro=no
1339   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1340   then
1341     if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1342     then
1343       libc_cv_z_relro=yes
1344     fi
1345   fi])
1346   AC_SUBST(libc_cv_z_relro)
1347   if test $libc_cv_z_relro = yes; then
1348     AC_DEFINE(HAVE_Z_RELRO)
1349   fi
1351   AC_CACHE_CHECK(for -Bgroup option,
1352                  libc_cv_Bgroup, [dnl
1353   cat > conftest.c <<EOF
1354 int _start (void) { return 42; }
1356   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1357                               -shared -o conftest.so conftest.c
1358                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1359   then
1360     libc_cv_Bgroup=yes
1361   else
1362     libc_cv_Bgroup=no
1363   fi
1364   rm -f conftest*])
1365   AC_SUBST(libc_cv_Bgroup)
1367   AC_CACHE_CHECK(for libgcc_s suffix,
1368                  libc_cv_libgcc_s_suffix, [dnl
1369   cat > conftest.c <<EOF
1370 int main (void) { return 0; }
1372 changequote(,)dnl
1373   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1374                            -shared -shared-libgcc -o conftest.so \
1375                            conftest.c -v 2>&1 >/dev/null \
1376                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1377 changequote([,])dnl
1378   rm -f conftest*])
1379   AC_SUBST(libc_cv_libgcc_s_suffix)
1381   AC_CACHE_CHECK(for --as-needed option,
1382                  libc_cv_as_needed, [dnl
1383   cat > conftest.c <<EOF
1384 int main (void) { return 0; }
1386   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1387                               -shared -o conftest.so conftest.c
1388                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1389                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1390   then
1391     libc_cv_as_needed=yes
1392   else
1393     libc_cv_as_needed=no
1394   fi
1395   rm -f conftest*])
1396   AC_SUBST(libc_cv_as_needed)
1398   ASFLAGS_config=
1399   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1400                  libc_cv_as_noexecstack, [dnl
1401   cat > conftest.c <<EOF
1402 void foo (void) { }
1404   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1405                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1406      && grep -q .note.GNU-stack conftest.s \
1407      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1408                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1409   then
1410     libc_cv_as_noexecstack=yes
1411   else
1412     libc_cv_as_noexecstack=no
1413   fi
1414   rm -f conftest*])
1415   if test $libc_cv_as_noexecstack = yes; then
1416     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1417   fi
1418   AC_SUBST(ASFLAGS_config)
1420   AC_CACHE_CHECK(for -z combreloc,
1421                  libc_cv_z_combreloc, [dnl
1422   cat > conftest.c <<EOF
1423 extern int bar (int);
1424 extern int mumble;
1425 int foo (void) { return bar (mumble); }
1427   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1428                         -shared -o conftest.so conftest.c
1429                         -nostdlib -nostartfiles
1430                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1431   then
1432 dnl The following test is a bit weak.  We must use a tool which can test
1433 dnl cross-platform since the gcc used can be a cross compiler.  Without
1434 dnl introducing new options this is not easily doable.  Instead use a tool
1435 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1436 dnl look for a section named .rel.dyn.
1437     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1438       libc_cv_z_combreloc=yes
1439     else
1440       libc_cv_z_combreloc=no
1441     fi
1442   else
1443     libc_cv_z_combreloc=no
1444   fi
1445   rm -f conftest*])
1446   if test "$libc_cv_z_combreloc" = yes; then
1447     AC_DEFINE(HAVE_Z_COMBRELOC)
1448   fi
1449   AC_SUBST(libc_cv_z_combreloc)
1451   AC_CACHE_CHECK(for -z execstack,
1452                  libc_cv_z_execstack, [dnl
1453   cat > conftest.c <<EOF
1454 int _start (void) { return 42; }
1456   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1457                               -shared -o conftest.so conftest.c
1458                               -Wl,-z,execstack -nostdlib
1459                               1>&AS_MESSAGE_LOG_FD])
1460   then
1461     libc_cv_z_execstack=yes
1462   else
1463     libc_cv_z_execstack=no
1464   fi
1465   rm -f conftest*])
1466   AC_SUBST(libc_cv_z_execstack)
1468   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1469   cat > conftest.c <<EOF
1470 int foo;
1471 main () { return 0;}
1473   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1474                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1475   then
1476     libc_cv_fpie=yes
1477   else
1478     libc_cv_fpie=no
1479   fi
1480   rm -f conftest*])
1482   AC_SUBST(libc_cv_fpie)
1485 AC_CACHE_CHECK(for -fno-unit-at-a-time, libc_cv_fno_unit_at_a_time, [dnl
1486 cat > conftest.c <<EOF
1487 int foo;
1489 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
1490                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1491 then
1492   libc_cv_fno_unit_at_a_time=yes
1493 else
1494   libc_cv_fno_unit_at_a_time=no
1496 rm -f conftest*])
1497 if test $libc_cv_fno_unit_at_a_time = yes; then
1498   fno_unit_at_a_time=-fno-unit-at-a-time
1500 AC_SUBST(fno_unit_at_a_time)
1502 if test $elf != yes; then
1503   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1504                  [AC_TRY_COMPILE(, [asm (".section .init");
1505                                     asm (".section .fini");
1506                                     asm ("${libc_cv_dot_text}");],
1507                                  libc_cv_have_initfini=yes,
1508                                  libc_cv_have_initfini=no)])
1509   AC_SUBST(libc_cv_have_initfini)dnl
1510   if test $libc_cv_have_initfini = yes; then
1511     AC_DEFINE(HAVE_INITFINI)
1512   fi
1515 if test $elf = yes -a $gnu_ld = yes; then
1516   AC_CACHE_CHECK(whether cc puts quotes around section names,
1517                  libc_cv_have_section_quotes,
1518                  [cat > conftest.c <<EOF
1519                   static const int foo
1520                   __attribute__ ((section ("bar"))) = 1;
1522                   if ${CC-cc} -S conftest.c -o conftest.s; then
1523                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1524                       libc_cv_have_section_quotes=yes
1525                     else
1526                       libc_cv_have_section_quotes=no
1527                     fi
1528                   else
1529                     libc_cv_have_section_quotes=unknown
1530                   fi
1531                   rm -f conftest.[cs]
1532                  ])
1533   if test $libc_cv_have_section_quotes = yes; then
1534     AC_DEFINE(HAVE_SECTION_QUOTES)
1535   fi
1538 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1539 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1540 [cat > conftest.$ac_ext <<EOF
1541 dnl This sometimes fails to find confdefs.h, for some reason.
1542 dnl [#]line $LINENO "[$]0"
1543 [#]line $LINENO "configure"
1544 #include "confdefs.h"
1545 void underscore_test(void) {
1546 return; }
1548 if AC_TRY_EVAL(ac_compile); then
1549   if grep _underscore_test conftest* >/dev/null; then
1550     ifelse([$1], , :, [rm -f conftest*
1551     $1])
1552   else
1553     ifelse([$2], , , [rm -f conftest*
1554     $2])
1555   fi
1556 else
1557   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1558   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1559   ifelse([$2], , , [rm -f conftest*
1560   $2])
1562 rm -f conftest*])
1564 if test $elf = yes; then
1565   libc_cv_asm_underscores=no
1566 else
1567   if test $ac_cv_prog_cc_works = yes; then
1568     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1569                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1570                                 libc_cv_asm_underscores=yes,
1571                                 libc_cv_asm_underscores=no)])
1572   else
1573     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1574                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1575                                             libc_cv_asm_underscores=no)])
1576   fi
1578 if test $libc_cv_asm_underscores = no; then
1579   AC_DEFINE(NO_UNDERSCORES)
1582 if test $elf = yes; then
1583   libc_cv_weak_symbols=yes
1586 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1587                [dnl
1588 cat > conftest.s <<EOF
1589 ${libc_cv_dot_text}
1590 ${libc_cv_asm_global_directive} foo
1591 foo:
1592 .weak foo
1593 .weak bar; bar = foo
1595 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1596   libc_cv_asm_weak_directive=yes
1597 else
1598   libc_cv_asm_weak_directive=no
1600 rm -f conftest*])
1602 if test $libc_cv_asm_weak_directive = no; then
1603   AC_CACHE_CHECK(for assembler .weakext directive,
1604                  libc_cv_asm_weakext_directive,
1605                  [dnl
1606 cat > conftest.s <<EOF
1607 ${libc_cv_dot_text}
1608 ${libc_cv_asm_global_directive} foo
1609 foo:
1610 .weakext bar foo
1611 .weakext baz
1612 ${libc_cv_asm_global_directive} baz
1613 baz:
1615   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1616     libc_cv_asm_weakext_directive=yes
1617   else
1618     libc_cv_asm_weakext_directive=no
1619   fi
1620   rm -f conftest*])
1622 fi # no .weak
1624 if test $libc_cv_asm_weak_directive = yes; then
1625   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1626 elif test $libc_cv_asm_weakext_directive = yes; then
1627   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1630 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1631 cat > conftest.s <<EOF
1632         .text
1633         .type   func,%function
1634 func:
1635         .cfi_startproc
1636         .cfi_remember_state
1637         .cfi_rel_offset 1, 0
1638         .cfi_endproc
1640 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1641   libc_cv_asm_cfi_directives=yes
1642 else
1643   libc_cv_asm_cfi_directives=no
1645 rm -f conftest*])
1646 if test $libc_cv_asm_cfi_directives = yes; then
1647   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1650 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1651 cat > conftest.c <<\EOF
1652 _start () {}
1653 int __eh_pc;
1654 __throw () {}
1656 dnl No \ in command here because it ends up inside ''.
1657 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1658                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1659                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1660   libc_cv_ld_no_whole_archive=yes
1661 else
1662   libc_cv_ld_no_whole_archive=no
1664 rm -f conftest*])
1665 if test $libc_cv_ld_no_whole_archive = yes; then
1666   no_whole_archive=-Wl,--no-whole-archive
1668 AC_SUBST(no_whole_archive)dnl
1670 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1671 cat > conftest.c <<\EOF
1672 _start () {}
1673 int __eh_pc;
1674 __throw () {}
1676 dnl No \ in command here because it ends up inside ''.
1677 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1678                             -nostdlib -nostartfiles -fexceptions
1679                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1680   libc_cv_gcc_exceptions=yes
1681 else
1682   libc_cv_gcc_exceptions=no
1684 rm -f conftest*])
1685 if test $libc_cv_gcc_exceptions = yes; then
1686   exceptions=-fexceptions
1688 AC_SUBST(exceptions)dnl
1690 if test "$host_cpu" = powerpc ; then
1691 # Check for a bug present in at least versions 2.8.x of GCC
1692 # and versions 1.0.x of EGCS.
1693 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1694 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1695                libc_cv_c_asmcr0_bug='no',
1696                libc_cv_c_asmcr0_bug='yes')])
1697 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1698   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1702 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1703 [cat > conftest.c <<EOF
1704 #line $LINENO "configure"
1705 static char *__EH_FRAME_BEGIN__;
1706 _start ()
1708 #ifdef CHECK__register_frame
1709   __register_frame (__EH_FRAME_BEGIN__);
1710   __deregister_frame (__EH_FRAME_BEGIN__);
1711 #endif
1712 #ifdef CHECK__register_frame_info
1713   __register_frame_info (__EH_FRAME_BEGIN__);
1714   __deregister_frame_info (__EH_FRAME_BEGIN__);
1715 #endif
1717 int __eh_pc;
1718 __throw () {}
1719 /* FIXME: this is fragile.  */
1720 malloc () {}
1721 strcmp () {}
1722 strlen () {}
1723 memcpy () {}
1724 memset () {}
1725 free () {}
1726 abort () {}
1727 __bzero () {}
1728 dl_iterate_phdr () {}
1730 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1731                             $LDFLAGS \
1732                             -nostdlib -nostartfiles -o conftest conftest.c \
1733                             -lgcc"
1734 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1735 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1736    AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1737 then
1738   if $libc_unwind_check -v 2>&1 >/dev/null \
1739      | grep -- --eh-frame-hdr 2>&1 >/dev/null; then
1740     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1741   else
1742     libc_cv_gcc_dwarf2_unwind_info=static
1743   fi
1744 else
1745   libc_cv_gcc_dwarf2_unwind_info=no
1747 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1748   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1749                               $LDFLAGS -nostdlib -nostartfiles
1750                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1751     libc_cv_gcc_dwarf2_unwind_info=yes
1752   else
1753     libc_cv_gcc_dwarf2_unwind_info=no
1754   fi
1756 rm -f conftest*])
1757 case $libc_cv_gcc_dwarf2_unwind_info in
1758 yes)
1759   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1760   ;;
1761 static)
1762   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1763   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1764   ;;
1765 esac
1767 dnl Check whether compiler understands __builtin_expect.
1768 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1769 [cat > conftest.c <<EOF
1770 #line $LINENO "configure"
1771 int foo (int a)
1773   a = __builtin_expect (a, 10);
1774   return a == 10 ? 0 : 1;
1777 dnl No \ in command here because it ends up inside ''.
1778 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1779                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1780   libc_cv_gcc_builtin_expect=yes
1781 else
1782   libc_cv_gcc_builtin_expect=no
1784 rm -f conftest*])
1785 if test "$libc_cv_gcc_builtin_expect" = yes; then
1786   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1789 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1790 cat > conftest.c <<\EOF
1791 void zero (void *x)
1793   __builtin_memset (x, 0, 1000);
1797 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1798 then
1799   libc_cv_gcc_builtin_memset=no
1800 else
1801   libc_cv_gcc_builtin_memset=yes
1803 rm -f conftest* ])
1804 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1805   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1808 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1809 cat > conftest.c <<\EOF
1810 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1811 char *foo (const char *a, const char *b)
1813   return __builtin_strstr (a, b);
1817 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1818 then
1819   libc_cv_gcc_builtin_redirection=yes
1820 else
1821   libc_cv_gcc_builtin_redirection=no
1823 rm -f conftest* ])
1824 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1825   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1828 dnl Check whether the compiler supports subtraction of local labels.
1829 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1830 [cat > conftest.c <<EOF
1831 changequote(,)dnl
1832 #line $LINENO "configure"
1833 int foo (int a)
1835   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1836   void *p = &&l1 + ar[a];
1837   goto *p;
1838  l1:
1839   return 1;
1840  l2:
1841   return 2;
1843 changequote([,])dnl
1845 dnl No \ in command here because it ends up inside ''.
1846 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1847                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1848   libc_cv_gcc_subtract_local_labels=yes
1849 else
1850   libc_cv_gcc_subtract_local_labels=no
1852 rm -f conftest*])
1853 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1854   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1857 dnl Check whether the compiler supports the __thread keyword.
1858 if test "x$use__thread" != xno; then
1859   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1860   [cat > conftest.c <<\EOF
1861 __thread int a = 42;
1863   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1864     libc_cv_gcc___thread=yes
1865   else
1866     libc_cv_gcc___thread=no
1867   fi
1868   rm -f conftest*])
1869   if test "$libc_cv_gcc___thread" = yes; then
1870     AC_DEFINE(HAVE___THREAD)
1871   fi
1872 else
1873   libc_cv_gcc___thread=no
1876 if test "$libc_cv_gcc___thread" = yes; then
1877   dnl Check whether the compiler supports the tls_model attribute.
1878   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1879   cat > conftest.c <<\EOF
1880 extern __thread int a __attribute__((tls_model ("initial-exec")));
1882   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1883     libc_cv_gcc_tls_model_attr=yes
1884   else
1885     libc_cv_gcc_tls_model_attr=no
1886   fi
1887   rm -f conftest*])
1888   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1889     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1890   fi
1893 dnl Check whether we have the gd library available.
1894 AC_MSG_CHECKING(for libgd)
1895 if test "$with_gd" != "no"; then
1896   old_CFLAGS="$CFLAGS"
1897   CFLAGS="$CFLAGS $libgd_include"
1898   old_LDFLAGS="$LDFLAGS"
1899   LDFLAGS="$LDFLAGS $libgd_ldflags"
1900   old_LIBS="$LIBS"
1901   LIBS="$LIBS -lgd -lpng -lz -lm"
1902   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1903   CFLAGS="$old_CFLAGS"
1904   LDFLAGS="$old_LDFLAGS"
1905   LIBS="$old_LIBS"
1906 else
1907   LIBGD=no
1909 AC_MSG_RESULT($LIBGD)
1910 AC_SUBST(LIBGD)
1912 # SELinux detection
1913 if test x$with_selinux = xno ; then
1914   have_selinux=no;
1915 else
1916   # See if we have the SELinux library
1917   AC_CHECK_LIB(selinux, is_selinux_enabled,
1918                have_selinux=yes, have_selinux=no)
1919   # See if we have the SELinux header with the NSCD permissions in it.
1920   if test x$have_selinux = xyes ; then
1921     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
1922     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
1923                     [#ifdef NSCD__SHMEMHOST
1924                      return 0;
1925                      #else
1926                      #error NSCD__SHMEMHOST not defined
1927                      #endif],
1928                     have_selinux=yes, have_selinux=no)
1929     AC_MSG_RESULT($have_selinux)
1930   fi
1932   if test x$with_selinux = xyes ; then
1933     if test x$have_selinux = xno ; then
1934       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
1935     fi
1936   fi
1938 # Check if we're building with SELinux support.
1939 if test "x$have_selinux" = xyes; then
1940   AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
1942 AC_SUBST(have_selinux)
1944 dnl check for the size of 'long double'.
1945 AC_CHECK_SIZEOF(long double, 0)
1946 sizeof_long_double=$ac_cv_sizeof_long_double
1947 AC_SUBST(sizeof_long_double)
1949 ### End of automated tests.
1950 ### Now run sysdeps configure fragments.
1952 # They also can set these variables.
1953 use_ldconfig=no
1954 ldd_rewrite_script=no
1955 libc_cv_sysconfdir=$sysconfdir
1956 libc_cv_gcc_unwind_find_fde=no
1957 libc_cv_idn=no
1959 # Iterate over all the sysdep directories we will use, running their
1960 # configure fragments, and looking for a uname implementation.
1961 uname=
1962 for dir in $sysnames; do
1963   case $dir in
1964     /*) dest=$dir ;;
1965     *)  dest=$srcdir/$dir ;;
1966   esac
1967   if test -r $dest/configure; then
1968     AC_MSG_RESULT(running configure fragment for $dir)
1969     . $dest/configure
1970   fi
1972   if test -z "$uname"; then
1973     if test -r $dest/uname.c ||
1974        test -r $dest/uname.S ||
1975        { test -r $dest/syscalls.list &&
1976          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1977       uname=$dir
1978     fi
1979   fi
1980 ]dnl
1981 done
1983 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1984   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1986 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1988 # If we will use the generic uname implementation, we must figure out what
1989 # it will say by examining the system, and write the results in config-name.h.
1990 if test "$uname" = "sysdeps/generic"; then
1992 changequote(,)dnl
1993   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1994 changequote([,])dnl
1995   if test $uname_sysname != $config_os; then
1996     config_release=`echo $config_os | sed s/$uname_sysname//`
1997   fi
1999 AC_DEFUN(LIBC_KERNEL_ID, [dnl
2000     if test -r /vmunix; then
2001       kernel_id=`strings /vmunix | grep UNIX`
2002     elif test -r /dynix; then
2003       kernel_id=`strings /dynix | grep DYNIX`
2004     else
2005       kernel_id=
2006     fi
2007 ])dnl
2009   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
2010 LIBC_KERNEL_ID
2011 changequote(,)dnl
2012   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
2013 changequote([,])dnl
2014   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
2015          != x$config_release; then
2016     # The configuration release is a substring of the kernel release.
2017     libc_cv_uname_release=$kernel_release
2018   elif test x$config_release != x; then
2019     libc_cv_uname_release=$config_release
2020   elif test x$kernel_release != x; then
2021     libc_cv_uname_release=$kernel_release
2022   else
2023     libc_cv_uname_release=unknown
2024   fi])
2025   uname_release="$libc_cv_uname_release"
2027   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2028 LIBC_KERNEL_ID
2029 changequote(,)dnl
2030   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2031 changequote([,])dnl
2032   if test -n "$kernel_version"; then
2033     libc_cv_uname_version="$kernel_version"
2034   else
2035     libc_cv_uname_version=unknown
2036   fi])
2037   uname_version="$libc_cv_uname_version"
2039 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2040   config_uname=config-name.h:config-name.in
2041 else
2042   # For non-generic uname, we don't need to create config-name.h at all.
2043   config_uname=
2046 dnl This is tested by existing code and it's simpler to avoid changing it.
2047 AC_DEFINE(USE_IN_LIBIO)
2049 # Test for old glibc 2.0.x headers so that they can be removed properly
2050 # Search only in includedir.
2051 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2052 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2053 then
2054   old_glibc_headers=yes
2055 else
2056   old_glibc_headers=no
2058 AC_MSG_RESULT($old_glibc_headers)
2059 if test ${old_glibc_headers} = yes; then
2060   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2061   AC_MSG_WARN(*** be removed.)
2063 AC_SUBST(old_glibc_headers)
2065 AC_SUBST(libc_cv_slibdir)
2066 AC_SUBST(libc_cv_localedir)
2067 AC_SUBST(libc_cv_sysconfdir)
2068 AC_SUBST(libc_cv_rootsbindir)
2069 AC_SUBST(libc_cv_forced_unwind)
2071 AC_SUBST(use_ldconfig)
2072 AC_SUBST(ldd_rewrite_script)
2074 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
2075 if test $gnu_ld = yes; then
2076   AC_DEFINE(HAVE_GNU_LD)
2078 if test $gnu_as = yes; then
2079   AC_DEFINE(HAVE_GNU_AS)
2081 if test $elf = yes; then
2082   AC_DEFINE(HAVE_ELF)
2084 if test $xcoff = yes; then
2085   AC_DEFINE(HAVE_XCOFF)
2088 AC_SUBST(static)
2089 AC_SUBST(shared)
2090 if test $shared = default; then
2091   if test $gnu_ld = yes; then
2092     shared=$elf
2093   else
2094     # For now we do not assume shared libs are available.  In future more
2095     # tests might become available.
2096     shared=no
2097   fi
2100 if test x"$libc_cv_idn" = xyes; then
2101   AC_DEFINE(HAVE_LIBIDN)
2104 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2105 [pic_default=yes
2106 cat > conftest.c <<EOF
2107 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2108 # error PIC is default.
2109 #endif
2111 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2112   pic_default=no
2114 rm -f conftest.*])
2115 AC_SUBST(pic_default)
2117 AC_SUBST(profile)
2118 AC_SUBST(omitfp)
2119 AC_SUBST(bounded)
2120 AC_SUBST(static_nss)
2121 AC_SUBST(nopic_initfini)
2123 AC_SUBST(DEFINES)
2125 dnl See sysdeps/mach/configure.in for this variable.
2126 AC_SUBST(mach_interface_list)
2128 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2129   config_makefile=
2130 else
2131   config_makefile=Makefile
2134 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2135 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2136 AC_SUBST(VERSION)
2137 AC_SUBST(RELEASE)
2139 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2140 AC_CONFIG_COMMANDS([default],[[
2141 case $CONFIG_FILES in *config.make*)
2142 echo "$config_vars" >> config.make;;
2143 esac
2144 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2145 AC_OUTPUT