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