Patch mostly by Matthew Rickard <mjricka@epoch.ncsc.mil>.
[glibc.git] / configure.in
blob235b6d222c7286498cb2cc3554b1456dd7a97a6b
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 arm*)           base_machine=arm machine=arm/arm32/$machine ;;
427 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
428 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
429 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
430 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
431 i[34567]86)     base_machine=i386 machine=i386/$machine ;;
432 ia64)           base_machine=ia64 machine=ia64 ;;
433 m680?0)         base_machine=m68k machine=m68k/$machine ;;
434 m68k)           base_machine=m68k machine=m68k/m68020 ;;
435 m88???)         base_machine=m88k machine=m88k/$machine ;;
436 m88k)           base_machine=m88k machine=m88k/m88100 ;;
437 mips64*)        base_machine=mips64
438                 case "$CC $CFLAGS $CPPFLAGS " in
439                 *" -mabi=n32 "*) mips_cc_abi=n32 ;;
440                 *" -mabi=64 "*|*" -mabi=n64 "*) mips_cc_abi=64 ;;
441                 *" -mabi=32 "*|*" -mabi=o32 "*) mips_cc_abi=32 ;;
442                 *) mips_cc_abi=default ;;
443                 esac
444                 case $config_os in
445                 *abin32*) mips_config_abi=n32 ;;
446                 *abi64*|*abin64*) mips_config_abi=64 ;;
447                 *abi32*|*abio32*) mips_config_abi=32 ;;
448                 *) mips_config_abi=$mips_cc_abi ;;
449                 esac
450                 case $mips_config_abi in
451                 default) machine=mips/mips64/n32 mips_config_abi=n32 ;;
452                 n32) machine=mips/mips64/n32 ;;
453                 64) machine=mips/mips64/n64 ;;
454                 32) machine=mips/mips32/kern64 ;;
455                 esac
456                 machine=$machine/$config_machine
457                 if test $mips_config_abi != $mips_cc_abi; then
458                   # This won't make it to config.make, but we want to
459                   # set this in case configure tests depend on it.
460                   CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi"
461                 fi
462                 ;;
463 mips*)          base_machine=mips machine=mips/mips32/$machine ;;
464 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
465 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
466 s390)           base_machine=s390 machine=s390/s390-32 ;;
467 s390x)          base_machine=s390 machine=s390/s390-64 ;;
468 sh3*)           base_machine=sh machine=sh/sh3 ;;
469 sh4*)           base_machine=sh machine=sh/sh4 ;;
470 sparc | sparcv[67])
471                 base_machine=sparc machine=sparc/sparc32 ;;
472 sparcv8 | supersparc | hypersparc)
473                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
474 sparcv8plus | sparcv8plusa | sparcv9)
475                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
476 sparcv8plusb | sparcv9b)
477                 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
478 sparc64 | ultrasparc)
479                 base_machine=sparc machine=sparc/sparc64 ;;
480 sparc64b | ultrasparc3)
481                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
482 thumb*)         base_machine=thumb machine=arm/thumb/$machine ;;
483 *)              base_machine=$machine ;;
484 esac
485 changequote([,])dnl
486 AC_SUBST(base_machine)
488 if test "$base_machine" = "i386"; then
489   AC_DEFINE(USE_REGPARMS)
492 # Compute the list of sysdep directories for this configuration.
493 # This can take a while to compute.
494 sysdep_dir=$srcdir/sysdeps
495 AC_MSG_CHECKING(sysdep dirs)
496 dnl We need to use [ and ] for other purposes for a while now.
497 changequote(,)dnl
498 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
499 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
501 case "$os" in
502 gnu*)
503   base_os=mach/hurd ;;
504 netbsd* | 386bsd* | freebsd* | bsdi*)
505   base_os=unix/bsd/bsd4.4 ;;
506 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
507   base_os=unix/bsd ;;
508 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
509   base_os=unix/sysv ;;
510 irix6*)
511   base_os=unix/sysv/irix6/$os ;;
512 solaris[2-9]*)
513   base_os=unix/sysv/sysv4 ;;
514 hpux*)
515   base_os=unix/sysv/hpux/$os ;;
516 aix4.3*)
517   base_os=unix/sysv/aix/aix4.3 ;;
518 none)
519   base_os=standalone ;;
521   base_os='' ;;
522 esac
524 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
525 tail=$os
526 ostry=$os
527 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
528   ostry="$ostry /$o"
529   tail=$o
530 done
531 o=`echo $tail | sed 's/[0-9]*$//'`
532 if test $o != $tail; then
533   ostry="$ostry /$o"
535 # For linux-gnu, try linux-gnu, then linux.
536 o=`echo $tail | sed 's/-.*$//'`
537 if test $o != $tail; then
538   ostry="$ostry /$o"
541 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
542 base=
543 tail=$base_os
544 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
545   set $b
546   base="$base /$1"
547   tail="$2"
548 done
550 # For sparc/sparc32, try sparc/sparc32 and then sparc.
551 mach=
552 tail=$machine
553 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
554   set $m
555   # Prepend the machine's FPU directory unless --without-fp.
556   if test "$with_fp" = yes; then
557     mach="$mach /$1/fpu"
558   else
559     mach="$mach /$1/nofpu"
560   fi
561   mach="$mach /$1"
562   tail="$2"
563 done
565 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
566 changequote([,])dnl
568 # Find what sysdep directories exist.
569 sysnames=
570 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
571 for d in $add_ons_pfx ''; do
572   for b in $base ''; do
573     for m0 in $mach ''; do
574       for v in /$vendor ''; do
575         test "$v" = / && continue
576         for o in /$ostry ''; do
577           test "$o" = / && continue
578           for m in $mach ''; do
579             for a in $add_ons_sfx ''; do
580               if test "$m0$b$v$o$m"; then
581                 try="${d}sysdeps$m0$b$v$o$m$a"
582                 test -n "$enable_debug_configure" &&
583                 echo "$0 [DEBUG]: try $try" >&2
584                 if test -d $srcdir/$try; then
585                   sysnames="$sysnames $try"
586                   { test -n "$o" || test -n "$b"; } && os_used=t
587                   { test -n "$m" || test -n "$m0"; } && machine_used=t
588                 fi
589               fi
590             done
591           done
592         done
593       done
594     done
595   done
596 done
597 IFS="$ac_save_ifs"
599 if test -z "$os_used" && test "$os" != none; then
600   AC_MSG_ERROR(Operating system $os is not supported.)
602 if test -z "$machine_used" && test "$machine" != none; then
603   AC_MSG_ERROR(The $machine is not supported.)
606 # We have now validated the configuration.
609 # If using ELF, look for an `elf' subdirectory of each machine directory.
610 # We prepend these rather than inserting them whereever the machine appears
611 # because things specified by the machine's ELF ABI should override
612 # OS-specific things, and should always be the same for any OS on the
613 # machine (otherwise what's the point of an ABI?).
614 if test "$elf" = yes; then
615   elf_dirs=
616   for d in $add_ons_pfx ''; do
617     for m in $mach; do
618       if test -d $srcdir/${d}sysdeps$m/elf; then
619         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
620       fi
621     done
622   done
623   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
627 # Expand the list of system names into a full list of directories
628 # from each element's parent name and Implies file (if present).
629 set $sysnames
630 names=
631 while test $# -gt 0; do
632   name=$1
633   shift
635   case " $names " in *" $name "*)
636     # Already in the list.
637     continue
638   esac
640   # Report each name as we discover it, so there is no long pause in output.
641   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
643   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
645   case $name in
646     /*) xsrcdir= ;;
647     *)  xsrcdir=$srcdir/ ;;
648   esac
649   test -n "$enable_debug_configure" &&
650   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
652   if test -f $xsrcdir$name/Implies; then
653     # Collect more names from the `Implies' file (removing comments).
654     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
655     implied=
656     for x in $implied_candidate; do
657       found=no
658       if test -d $xsrcdir$name_base/$x; then
659         implied="$implied $name_base/$x";
660         found=yes
661       fi
662       for d in $add_ons_pfx ''; do
663         try="${d}sysdeps/$x"
664         case $d in
665          /*) try_srcdir= ;;
666          *) try_srcdir=$srcdir/ ;;
667         esac
668         test -n "$enable_debug_configure" &&
669          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
670         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
671         then
672           implied="$implied $try"
673           found=yes
674         fi
675       done
676       if test $found = no; then
677         AC_MSG_WARN($name/Implies specifies nonexistent $x)
678       fi
679     done
680   else
681     implied=
682   fi
684   # Add NAME to the list of names.
685   names="$names $name"
687   # Find the parent of NAME, using the empty string if it has none.
688 changequote(,)dnl
689   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
690 changequote([,])dnl
692   # Add the names implied by NAME, and NAME's parent (if it has one), to
693   # the list of names to be processed (the argument list).  We prepend the
694   # implied names to the list and append the parent.  We want implied
695   # directories to come before further directories inferred from the
696   # configuration components; this ensures that for sysv4, unix/common
697   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
698   # after sysv4).
699   sysnames="`echo $implied $* $parent`"
700   test -n "$sysnames" && set $sysnames
701 done
703 # Add the default directories.
704 default_sysnames=sysdeps/generic
705 if test "$elf" = yes; then
706   default_sysnames="sysdeps/generic/elf $default_sysnames"
708 sysnames="$names $default_sysnames"
709 AC_SUBST(sysnames)
710 # The other names were emitted during the scan.
711 AC_MSG_RESULT($default_sysnames)
714 ### Locate tools.
716 AC_PROG_INSTALL
717 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
718   # The makefiles need to use a different form to find it in $srcdir.
719   INSTALL='\$(..)./scripts/install-sh -c'
721 AC_PROG_LN_S
723 AC_PROG_CC
724 if test $host != $build; then
725   AC_CHECK_PROGS(BUILD_CC, gcc cc)
727 AC_SUBST(cross_compiling)
728 AC_PROG_CPP
729 # We need the C++ compiler only for testing.
730 AC_PROG_CXX
731 LIBC_PROG_BINUTILS
732 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
734 # Accept binutils 2.13 or newer.
735 AC_CHECK_PROG_VER(AS, $AS, --version,
736                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
737                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
738 AC_CHECK_PROG_VER(LD, $LD, --version,
739                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
740                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
742 # We need the physical current working directory.  We cannot use the
743 # "pwd -P" shell builtin since that's not portable.  Instead we try to
744 # find a pwd binary.  Note that assigning to the PWD environment
745 # variable might have some interesting side effects, so we don't do
746 # that.
747 AC_PATH_PROG(PWD_P, pwd, no)
748 if test "$PWD_P" = no; then
749   AC_MSG_ERROR(*** A pwd binary could not be found.)
752 # These programs are version sensitive.
753 AC_CHECK_TOOL_PREFIX
754 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
755   [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]* | 4.[0-9]* ],
756   critic_missing="$critic_missing gcc")
757 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
758   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
759   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
761 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
762   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
763   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
764   MSGFMT=: aux_missing="$aux_missing msgfmt")
765 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
766   [GNU texinfo.* \([0-9][0-9.]*\)],
767   [4.*],
768   MAKEINFO=: aux_missing="$aux_missing makeinfo")
769 AC_CHECK_PROG_VER(SED, sed, --version,
770   [GNU sed version \([0-9]*\.[0-9.]*\)],
771   [3.0[2-9]*|3.[1-9]*|[4-9]*],
772   SED=: aux_missing="$aux_missing sed")
774 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
775 case "x$AUTOCONF" in
776 xno|x|x:) AUTOCONF=no ;;
778   AC_CACHE_CHECK(dnl
779 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
780   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
781     libc_cv_autoconf_works=yes
782   else
783     libc_cv_autoconf_works=no
784   fi])
785   test $libc_cv_autoconf_works = yes || AUTOCONF=no
786   ;;
787 esac
788 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
789   # If --without-cvs they probably won't change configure.in, so no complaints.
790   aux_missing="$aux_missing autoconf"
793 test -n "$critic_missing" && AC_MSG_ERROR([
794 *** These critical programs are missing or too old:$critic_missing
795 *** Check the INSTALL file for required versions.])
797 test -n "$aux_missing" && AC_MSG_WARN([
798 *** These auxiliary programs are missing or incompatible versions:$aux_missing
799 *** some features will be disabled.
800 *** Check the INSTALL file for required versions.])
802 # if using special system headers, find out the compiler's sekrit
803 # header directory and add that to the list.  NOTE: Only does the right
804 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
805 if test -n "$sysheaders"; then
806   ccheaders=`$CC -print-file-name=include`
807   SYSINCLUDES="-nostdinc -isystem $ccheaders \
808 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
810 AC_SUBST(SYSINCLUDES)
812 # check if ranlib is necessary
813 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
814 cat > conftest.c <<EOF
815 int a;
816 char b;
817 void c(void) {}
819 $CC $CFLAGS $CPPFLAGS -c conftest.c
820 $AR cr conftest.a conftest.o
821 cp conftest.a conftest2.a
822 $RANLIB conftest.a
823 if cmp -s conftest.a conftest2.a; then
824   libc_cv_ranlib_necessary=no
825 else
826   libc_cv_ranlib_necessary=yes
828 rm -rf conftest*])
829 if test "$libc_cv_ranlib_necessary" = no; then
830  RANLIB=:
833 # Test if LD_LIBRARY_PATH contains the notation for the current directory
834 # since this would lead to problems installing/building glibc.
835 # LD_LIBRARY_PATH contains the current directory if one of the following
836 # is true:
837 # - one of the terminals (":" and ";") is the first or last sign
838 # - two terminals occur directly after each other
839 # - the path contains an element with a dot in it
840 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
841 changequote(,)dnl
842 case ${LD_LIBRARY_PATH} in
843   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
844     ld_library_path_setting="contains current directory"
845     ;;
846   *)
847     ld_library_path_setting="ok"
848     ;;
849 esac
850 changequote([,])dnl
851 AC_MSG_RESULT($ld_library_path_setting)
852 if test "$ld_library_path_setting" != "ok"; then
853 AC_MSG_ERROR([
854 *** LD_LIBRARY_PATH shouldn't contain the current directory when
855 *** building glibc. Please change the environment variable
856 *** and run configure again.])
859 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
860 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
861   libc_cv_gcc_static_libgcc=
862 else
863   libc_cv_gcc_static_libgcc=-static-libgcc
864 fi])
865 AC_SUBST(libc_cv_gcc_static_libgcc)
867 AC_PATH_PROG(BASH, bash, no)
868 if test "$BASH" != no &&
869    $BASH -c 'test "$BASH_VERSINFO" \
870              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
871   libc_cv_have_bash2=yes
872 else
873   libc_cv_have_bash2=no
875 AC_SUBST(libc_cv_have_bash2)
877 dnl We need a ksh compatible shell for tzselect.
878 if test "$BASH" = no; then
879   AC_PATH_PROG(KSH, ksh, no)
880   if test "$KSH" = no; then
881     libc_cv_have_ksh=no
882   else
883     libc_cv_have_ksh=yes
884   fi
885 else
886   KSH="$BASH"
887   AC_SUBST(KSH)
888   libc_cv_have_ksh=yes
890 AC_SUBST(libc_cv_have_ksh)
892 AC_PROG_AWK
893 AC_PATH_PROG(PERL, perl, no)
894 if test "$PERL" != no &&
895    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
896   PERL=no
898 AC_PATH_PROG(INSTALL_INFO, install-info, no,
899              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
900 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
902 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
903 echo '#include <stddef.h>
904 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
905 if eval "$ac_cpp conftest.c 2>/dev/null" \
906 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
907   libc_cv_signed_size_t=no
908 else
909   libc_cv_signed_size_t=yes
911 rm -f conftest*])
912 if test $libc_cv_signed_size_t = yes; then
913   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
914   cat >> confdefs.h <<\EOF
915 #undef __SIZE_TYPE__
916 #define __SIZE_TYPE__ unsigned
920 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
921 AC_TRY_COMPILE(dnl
922 [#define __need_size_t
923 #define __need_wchar_t
924 #include <stddef.h>
925 #define __need_NULL
926 #include <stddef.h>], [size_t size; wchar_t wchar;
927 #ifdef offsetof
928 #error stddef.h ignored __need_*
929 #endif
930 if (&size == NULL || &wchar == NULL) abort ();],
931                libc_cv_friendly_stddef=yes,
932                libc_cv_friendly_stddef=no)])
933 if test $libc_cv_friendly_stddef = yes; then
934   config_vars="$config_vars
935 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
938 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
939                libc_cv_need_minus_P, [dnl
940 cat > conftest.S <<EOF
941 #include "confdefs.h"
942 /* Nothing whatsoever.  */
944 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
945   libc_cv_need_minus_P=no
946 else
947   libc_cv_need_minus_P=yes
949 rm -f conftest*])
950 if test $libc_cv_need_minus_P = yes; then
951   config_vars="$config_vars
952 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
955 AC_MSG_CHECKING(whether .text pseudo-op must be used)
956 AC_CACHE_VAL(libc_cv_dot_text, [dnl
957 cat > conftest.s <<EOF
958 .text
960 libc_cv_dot_text=
961 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
962   libc_cv_dot_text=.text
964 rm -f conftest*])
965 if test -z "$libc_cv_dot_text"; then
966   AC_MSG_RESULT(no)
967 else
968   AC_MSG_RESULT(yes)
971 AC_CACHE_CHECK(for assembler global-symbol directive,
972                libc_cv_asm_global_directive, [dnl
973 libc_cv_asm_global_directive=UNKNOWN
974 for ac_globl in .globl .global .EXPORT; do
975   cat > conftest.s <<EOF
976         ${libc_cv_dot_text}
977         ${ac_globl} foo
978 foo:
980   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
981     libc_cv_asm_global_directive=${ac_globl}
982   fi
983   rm -f conftest*
984   test $libc_cv_asm_global_directive != UNKNOWN && break
985 done])
986 if test $libc_cv_asm_global_directive = UNKNOWN; then
987   AC_MSG_ERROR(cannot determine asm global directive)
988 else
989   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
992 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
993 cat > conftest.s <<EOF
994 ${libc_cv_dot_text}
995 foo:
996 .set glibc_conftest_frobozz,foo
997 $libc_cv_asm_global_directive glibc_conftest_frobozz
999 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1000 # (but it doesn't work), so we must do a linking check to be sure.
1001 cat > conftest1.c <<\EOF
1002 extern int glibc_conftest_frobozz;
1003 void _start() { glibc_conftest_frobozz = 1; }
1005 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1006             -nostartfiles -nostdlib \
1007             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1008   libc_cv_asm_set_directive=yes
1009 else
1010   libc_cv_asm_set_directive=no
1012 rm -f conftest*])
1013 if test $libc_cv_asm_set_directive = yes; then
1014   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1017 AC_CACHE_CHECK(for assembler .type directive prefix,
1018                libc_cv_asm_type_prefix, [dnl
1019 libc_cv_asm_type_prefix=no
1020 for ac_try_prefix in '@' '%' '#'; do
1021   cat > conftest.s <<EOF
1022         ${libc_cv_dot_text}
1023         ${libc_cv_asm_global_directive} foo
1024         .type foo, ${ac_try_prefix}object
1025         .size foo, 1
1026 foo:
1027         .byte 1
1029   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1030     libc_cv_asm_type_prefix=${ac_try_prefix}
1031   fi
1032   rm -f conftest*
1033   test "x$libc_cv_asm_type_prefix" != xno && break
1034 done])
1035 if test "x$libc_cv_asm_type_prefix" != xno; then
1036   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1039 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1040 [cat > conftest.s <<EOF
1041 ${libc_cv_dot_text}
1042 _sym:
1043 .symver _sym,sym@VERS
1045 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1046   libc_cv_asm_symver_directive=yes
1047 else
1048   libc_cv_asm_symver_directive=no
1050 rm -f conftest*])
1051 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1052 if test $libc_cv_asm_symver_directive = yes; then
1053   cat > conftest.s <<EOF
1054 ${libc_cv_dot_text}
1055 _sym:
1056 .symver _sym,sym@VERS
1058   cat > conftest.map <<EOF
1059 VERS_1 {
1060         global: sym;
1063 VERS_2 {
1064         global: sym;
1065 } VERS_1;
1067   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1068     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1069                                 -o conftest.so conftest.o
1070                                 -nostartfiles -nostdlib
1071                                 -Wl,--version-script,conftest.map
1072                        1>&AS_MESSAGE_LOG_FD]);
1073     then
1074       libc_cv_ld_version_script_option=yes
1075     else
1076       libc_cv_ld_version_script_option=no
1077     fi
1078   else
1079     libc_cv_ld_version_script_option=no
1080   fi
1081 else
1082   libc_cv_ld_version_script_option=no
1084 rm -f conftest*])
1085 if test $shared != no &&
1086    test $libc_cv_asm_symver_directive = yes &&
1087    test $libc_cv_ld_version_script_option = yes &&
1088    test $enable_versioning = yes; then
1089   VERSIONING=yes
1090   AC_DEFINE(DO_VERSIONING)
1091 else
1092   VERSIONING=no
1094 AC_SUBST(VERSIONING)
1096 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1097   echo "\
1098 *** WARNING: You should not compile GNU libc without versioning. Not using
1099 *** versioning will introduce incompatibilities so that old binaries
1100 *** will not run anymore.
1101 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1103 if test $elf = yes; then
1104   AC_CACHE_CHECK(for .previous assembler directive,
1105                  libc_cv_asm_previous_directive, [dnl
1106   cat > conftest.s <<EOF
1107 .section foo_section
1108 .previous
1110   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1111     libc_cv_asm_previous_directive=yes
1112   else
1113     libc_cv_asm_previous_directive=no
1114   fi
1115   rm -f conftest*])
1116   if test $libc_cv_asm_previous_directive = yes; then
1117     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1118   else
1119     AC_CACHE_CHECK(for .popsection assembler directive,
1120                    libc_cv_asm_popsection_directive, [dnl
1121     cat > conftest.s <<EOF
1122 .pushsection foo_section
1123 .popsection
1125     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1126       libc_cv_asm_popsection_directive=yes
1127     else
1128       libc_cv_asm_popsection_directive=no
1129     fi
1130     rm -f conftest*])
1131     if test $libc_cv_asm_popsection_directive = yes; then
1132       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1133     fi
1134   fi
1135   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1136                  libc_cv_asm_protected_directive, [dnl
1137   cat > conftest.s <<EOF
1138 .protected foo
1139 foo:
1140 .hidden bar
1141 bar:
1143   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1144     libc_cv_asm_protected_directive=yes
1145   else
1146     libc_cv_asm_protected_directive=no
1147   fi
1148   rm -f conftest*])
1149   AC_SUBST(libc_cv_asm_protected_directive)
1150   AC_DEFINE(HAVE_PROTECTED)
1151   AC_DEFINE(HAVE_HIDDEN)
1153   if test $libc_cv_asm_protected_directive = yes; then
1154     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1155                  libc_cv_visibility_attribute,
1156                  [cat > conftest.c <<EOF
1157                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1158                   int bar __attribute__ ((visibility ("protected"))) = 1;
1160                   libc_cv_visibility_attribute=no
1161                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1162                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1163                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1164                         libc_cv_visibility_attribute=yes
1165                       fi
1166                     fi
1167                   fi
1168                   rm -f conftest.[cs]
1169                  ])
1170     if test $libc_cv_visibility_attribute = yes; then
1171       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1172     fi
1173   fi
1175   if test $libc_cv_visibility_attribute = yes; then
1176     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1177                  libc_cv_broken_visibility_attribute,
1178                  [cat > conftest.c <<EOF
1179                   int foo (int x);
1180                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1181                   int bar (int x) { return x; }
1183                   libc_cv_broken_visibility_attribute=yes
1184                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1185 changequote(,)dnl
1186                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1187 changequote([,])dnl
1188                       libc_cv_broken_visibility_attribute=no
1189                     fi
1190                   fi
1191                   rm -f conftest.c conftest.s
1192                  ])
1193     if test $libc_cv_broken_visibility_attribute = yes; then
1194       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1195     fi
1196   fi
1198   AC_CACHE_CHECK(for broken __attribute__((alias())),
1199                  libc_cv_broken_alias_attribute,
1200                  [cat > conftest.c <<EOF
1201                   extern int foo (int x) __asm ("xyzzy");
1202                   int bar (int x) { return x; }
1203                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1204                   extern int dfoo;
1205                   extern __typeof (dfoo) dfoo __asm ("abccb");
1206                   int dfoo = 1;
1208                   libc_cv_broken_alias_attribute=yes
1209                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1210                     if grep 'xyzzy' conftest.s >/dev/null &&
1211                        grep 'abccb' conftest.s >/dev/null; then
1212                       libc_cv_broken_alias_attribute=no
1213                     fi
1214                   fi
1215                   rm -f conftest.c conftest.s
1216                  ])
1217   if test $libc_cv_broken_alias_attribute = yes; then
1218     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1219   fi
1221   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1222     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1223                  libc_cv_have_sdata_section,
1224                  [echo "int i;" > conftest.c
1225                   libc_cv_have_sdata_section=no
1226                   if ${CC-cc} $LDFLAGS -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1227                      | grep '\.sdata' >/dev/null; then
1228                     libc_cv_have_sdata_section=yes
1229                   fi
1230                   rm -f conftest.c conftest.so
1231                  ])
1232     if test $libc_cv_have_sdata_section = yes; then
1233       AC_DEFINE(HAVE_SDATA_SECTION)
1234     fi
1235   fi
1237   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1238                  libc_cv_initfinit_array, [dnl
1239   cat > conftest.c <<EOF
1240 int _start (void) { return 0; }
1241 int __start (void) { return 0; }
1242 int foo (void) { return 1; }
1243 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1245   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1246                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1247   then
1248     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1249       libc_cv_initfinit_array=yes
1250     else
1251       libc_cv_initfinit_array=no
1252     fi
1253   else
1254     libc_cv_initfinit_array=no
1255   fi
1256   rm -f conftest*])
1257   AC_SUBST(libc_cv_initfinit_array)
1258   if test $libc_cv_initfinit_array = yes; then
1259     AC_DEFINE(HAVE_INITFINI_ARRAY)
1260   fi
1262   AC_CACHE_CHECK(for libunwind-support in compiler,
1263                  libc_cv_cc_with_libunwind, [dnl
1264     AC_TRY_LINK([#include <libunwind.h>], [
1265       unw_context_t uc;
1266       unw_cursor_t c;
1267       unw_getcontext (&uc);
1268       unw_init_local (&c, &uc)],
1269         libc_cv_cc_with_libunwind=yes, libc_cv_cc_with_libunwind=no)])
1270   AC_SUBST(libc_cv_cc_with_libunwind)
1271   if test $libc_cv_cc_with_libunwind = yes; then
1272     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1273   fi
1275   AC_CACHE_CHECK(for -z nodelete option,
1276                  libc_cv_z_nodelete, [dnl
1277   cat > conftest.c <<EOF
1278 int _start (void) { return 42; }
1280   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1281                      -shared -o conftest.so conftest.c
1282                      -nostartfiles -nostdlib
1283                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1284   then
1285     libc_cv_z_nodelete=yes
1286   else
1287     libc_cv_z_nodelete=no
1288   fi
1289   rm -f conftest*])
1290   AC_SUBST(libc_cv_z_nodelete)
1292   AC_CACHE_CHECK(for -z nodlopen option,
1293                  libc_cv_z_nodlopen, [dnl
1294   cat > conftest.c <<EOF
1295 int _start (void) { return 42; }
1297   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1298                         -shared -o conftest.so conftest.c
1299                         -nostartfiles -nostdlib
1300                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1301   then
1302     libc_cv_z_nodlopen=yes
1303   else
1304     libc_cv_z_nodlopen=no
1305   fi
1306   rm -f conftest*])
1307   AC_SUBST(libc_cv_z_nodlopen)
1309   AC_CACHE_CHECK(for -z initfirst option,
1310                  libc_cv_z_initfirst, [dnl
1311   cat > conftest.c <<EOF
1312 int _start (void) { return 42; }
1314   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1315                         -shared -o conftest.so conftest.c
1316                         -nostartfiles -nostdlib
1317                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1318   then
1319     libc_cv_z_initfirst=yes
1320   else
1321     libc_cv_z_initfirst=no
1322   fi
1323   rm -f conftest*])
1324   AC_SUBST(libc_cv_z_initfirst)
1326   AC_CACHE_CHECK(for -z relro option,
1327                  libc_cv_z_relro, [dnl
1328   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1329   then
1330     libc_cv_z_relro=yes
1331   else
1332     libc_cv_z_relro=no
1333   fi])
1334   AC_SUBST(libc_cv_z_relro)
1335   if test $libc_cv_z_relro = yes; then
1336     AC_DEFINE(HAVE_Z_RELRO)
1337   fi
1339   AC_CACHE_CHECK(for -Bgroup option,
1340                  libc_cv_Bgroup, [dnl
1341   cat > conftest.c <<EOF
1342 int _start (void) { return 42; }
1344   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1345                               -shared -o conftest.so conftest.c
1346                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1347   then
1348     libc_cv_Bgroup=yes
1349   else
1350     libc_cv_Bgroup=no
1351   fi
1352   rm -f conftest*])
1353   AC_SUBST(libc_cv_Bgroup)
1355   AC_CACHE_CHECK(for libgcc_s suffix,
1356                  libc_cv_libgcc_s_suffix, [dnl
1357   cat > conftest.c <<EOF
1358 int main (void) { return 0; }
1360 changequote(,)dnl
1361   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1362                            -shared -shared-libgcc -o conftest.so \
1363                            conftest.c -v 2>&1 >/dev/null \
1364                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1365 changequote([,])dnl
1366   rm -f conftest*])
1367   AC_SUBST(libc_cv_libgcc_s_suffix)
1369   AC_CACHE_CHECK(for --as-needed option,
1370                  libc_cv_as_needed, [dnl
1371   cat > conftest.c <<EOF
1372 int main (void) { return 0; }
1374   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1375                               -shared -o conftest.so conftest.c
1376                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1377                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1378   then
1379     libc_cv_as_needed=yes
1380   else
1381     libc_cv_as_needed=no
1382   fi
1383   rm -f conftest*])
1384   AC_SUBST(libc_cv_as_needed)
1386   ASFLAGS_config=
1387   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1388                  libc_cv_as_noexecstack, [dnl
1389   cat > conftest.c <<EOF
1390 void foo (void) { }
1392   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1393                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1394      && grep -q .note.GNU-stack conftest.s \
1395      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1396                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1397   then
1398     libc_cv_as_noexecstack=yes
1399   else
1400     libc_cv_as_noexecstack=no
1401   fi
1402   rm -f conftest*])
1403   if test $libc_cv_as_noexecstack = yes; then
1404     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1405   fi
1406   AC_SUBST(ASFLAGS_config)
1408   AC_CACHE_CHECK(for -z combreloc,
1409                  libc_cv_z_combreloc, [dnl
1410   cat > conftest.c <<EOF
1411 extern int bar (int);
1412 extern int mumble;
1413 int foo (void) { return bar (mumble); }
1415   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1416                         -shared -o conftest.so conftest.c
1417                         -nostdlib -nostartfiles
1418                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1419   then
1420 dnl The following test is a bit weak.  We must use a tool which can test
1421 dnl cross-platform since the gcc used can be a cross compiler.  Without
1422 dnl introducing new options this is not easily doable.  Instead use a tool
1423 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1424 dnl look for a section named .rel.dyn.
1425     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1426       libc_cv_z_combreloc=yes
1427     else
1428       libc_cv_z_combreloc=no
1429     fi
1430   else
1431     libc_cv_z_combreloc=no
1432   fi
1433   rm -f conftest*])
1434   if test "$libc_cv_z_combreloc" = yes; then
1435     AC_DEFINE(HAVE_Z_COMBRELOC)
1436   fi
1437   AC_SUBST(libc_cv_z_combreloc)
1439   AC_CACHE_CHECK(for -z execstack,
1440                  libc_cv_z_execstack, [dnl
1441   cat > conftest.c <<EOF
1442 int _start (void) { return 42; }
1444   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1445                               -shared -o conftest.so conftest.c
1446                               -Wl,-z,execstack -nostdlib
1447                               1>&AS_MESSAGE_LOG_FD])
1448   then
1449     libc_cv_z_execstack=yes
1450   else
1451     libc_cv_z_execstack=no
1452   fi
1453   rm -f conftest*])
1454   AC_SUBST(libc_cv_z_execstack)
1456   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1457   cat > conftest.c <<EOF
1458 int foo;
1459 main () { return 0;}
1461   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1462                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1463   then
1464     libc_cv_fpie=yes
1465   else
1466     libc_cv_fpie=no
1467   fi
1468   rm -f conftest*])
1470   AC_SUBST(libc_cv_fpie)
1473 AC_CACHE_CHECK(for -fno-unit-at-a-time, libc_cv_fno_unit_at_a_time, [dnl
1474 cat > conftest.c <<EOF
1475 int foo;
1477 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
1478                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1479 then
1480   libc_cv_fno_unit_at_a_time=yes
1481 else
1482   libc_cv_fno_unit_at_a_time=no
1484 rm -f conftest*])
1485 if test $libc_cv_fno_unit_at_a_time = yes; then
1486   fno_unit_at_a_time=-fno-unit-at-a-time
1488 AC_SUBST(fno_unit_at_a_time)
1490 if test $elf != yes; then
1491   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1492                  [AC_TRY_COMPILE(, [asm (".section .init");
1493                                     asm (".section .fini");
1494                                     asm ("${libc_cv_dot_text}");],
1495                                  libc_cv_have_initfini=yes,
1496                                  libc_cv_have_initfini=no)])
1497   AC_SUBST(libc_cv_have_initfini)dnl
1498   if test $libc_cv_have_initfini = yes; then
1499     AC_DEFINE(HAVE_INITFINI)
1500   fi
1503 if test $elf = yes -a $gnu_ld = yes; then
1504   AC_CACHE_CHECK(whether cc puts quotes around section names,
1505                  libc_cv_have_section_quotes,
1506                  [cat > conftest.c <<EOF
1507                   static const int foo
1508                   __attribute__ ((section ("bar"))) = 1;
1510                   if ${CC-cc} -S conftest.c -o conftest.s; then
1511                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1512                       libc_cv_have_section_quotes=yes
1513                     else
1514                       libc_cv_have_section_quotes=no
1515                     fi
1516                   else
1517                     libc_cv_have_section_quotes=unknown
1518                   fi
1519                   rm -f conftest.[cs]
1520                  ])
1521   if test $libc_cv_have_section_quotes = yes; then
1522     AC_DEFINE(HAVE_SECTION_QUOTES)
1523   fi
1526 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1527 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1528 [cat > conftest.$ac_ext <<EOF
1529 dnl This sometimes fails to find confdefs.h, for some reason.
1530 dnl [#]line $LINENO "[$]0"
1531 [#]line $LINENO "configure"
1532 #include "confdefs.h"
1533 void underscore_test(void) {
1534 return; }
1536 if AC_TRY_EVAL(ac_compile); then
1537   if grep _underscore_test conftest* >/dev/null; then
1538     ifelse([$1], , :, [rm -f conftest*
1539     $1])
1540   else
1541     ifelse([$2], , , [rm -f conftest*
1542     $2])
1543   fi
1544 else
1545   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1546   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1547   ifelse([$2], , , [rm -f conftest*
1548   $2])
1550 rm -f conftest*])
1552 if test $elf = yes; then
1553   libc_cv_asm_underscores=no
1554 else
1555   if test $ac_cv_prog_cc_works = yes; then
1556     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1557                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1558                                 libc_cv_asm_underscores=yes,
1559                                 libc_cv_asm_underscores=no)])
1560   else
1561     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1562                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1563                                             libc_cv_asm_underscores=no)])
1564   fi
1566 if test $libc_cv_asm_underscores = no; then
1567   AC_DEFINE(NO_UNDERSCORES)
1570 if test $elf = yes; then
1571   libc_cv_weak_symbols=yes
1574 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1575                [dnl
1576 cat > conftest.s <<EOF
1577 ${libc_cv_dot_text}
1578 ${libc_cv_asm_global_directive} foo
1579 foo:
1580 .weak foo
1581 .weak bar; bar = foo
1583 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1584   libc_cv_asm_weak_directive=yes
1585 else
1586   libc_cv_asm_weak_directive=no
1588 rm -f conftest*])
1590 if test $libc_cv_asm_weak_directive = no; then
1591   AC_CACHE_CHECK(for assembler .weakext directive,
1592                  libc_cv_asm_weakext_directive,
1593                  [dnl
1594 cat > conftest.s <<EOF
1595 ${libc_cv_dot_text}
1596 ${libc_cv_asm_global_directive} foo
1597 foo:
1598 .weakext bar foo
1599 .weakext baz
1600 ${libc_cv_asm_global_directive} baz
1601 baz:
1603   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1604     libc_cv_asm_weakext_directive=yes
1605   else
1606     libc_cv_asm_weakext_directive=no
1607   fi
1608   rm -f conftest*])
1610 fi # no .weak
1612 if test $libc_cv_asm_weak_directive = yes; then
1613   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1614 elif test $libc_cv_asm_weakext_directive = yes; then
1615   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1618 dnl The standard hppa assembler uses `;' to start comments and `!'
1619 dnl as a line separator.  CRIS uses `;' to start comments and `@' for
1620 dnl line separator.
1621 case "${host_cpu}-${host_os}" in
1622   cris*)
1623     libc_cv_asm_line_sep='@'
1624     AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1625     ;;
1626   hppa*linux*)
1627   AC_CACHE_CHECK(for assembler line separator,
1628                  libc_cv_asm_line_sep, [dnl
1629   cat > conftest.s <<EOF
1630  nop ; is_old_puffin
1632   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1633     libc_cv_asm_line_sep='!'
1634   else
1635     if test -z "$enable_hacker_mode"; then
1636       echo "*** You need a newer assembler to compile glibc"
1637       rm -f conftest*
1638       exit 1
1639     fi
1640     libc_cv_asm_line_sep=';'
1641   fi
1642   rm -f conftest*])
1643   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1644   ;;
1645 esac
1647 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1648 cat > conftest.s <<EOF
1649         .text
1650         .type   func,@function
1651 func:
1652         .cfi_startproc
1653         .cfi_remember_state
1654         .cfi_rel_offset 1, 0
1655         .cfi_endproc
1657 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1658   libc_cv_asm_cfi_directives=yes
1659 else
1660   libc_cv_asm_cfi_directives=no
1662 rm -f conftest*])
1663 if test $libc_cv_asm_cfi_directives = yes; then
1664   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1667 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1668                libc_cv_cpp_asm_debuginfo, [dnl
1669 cat > conftest.S <<EOF
1670 #include "confdefs.h"
1672 /* comment on
1673    two lines */
1674         ${libc_cv_dot_text}
1675         ${libc_cv_asm_global_directive} foo
1676 foo:
1677         /* Unfortunately this test only works for a real instruction,
1678            not for any of the machine-independent pseudo-ops.
1679            So we just have to assume everybody has a "nop".  */
1680         nop
1681         /* comment */
1682         nop
1683         /* comment */
1684         nop
1686 if AC_TRY_COMMAND([${CC-cc} $CPPFLAGS $ASFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) && {
1687    ac_pattern='conftest\.S'
1688    AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1689                    grep $ac_pattern 1>&AS_MESSAGE_LOG_FD])
1690   }; then
1691   libc_cv_cpp_asm_debuginfo=yes
1692 else
1693   libc_cv_cpp_asm_debuginfo=no
1695 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1696 if test $libc_cv_cpp_asm_debuginfo = yes; then
1697   AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1700 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1701 cat > conftest.c <<\EOF
1702 _start () {}
1703 int __eh_pc;
1704 __throw () {}
1706 dnl No \ in command here because it ends up inside ''.
1707 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1708                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1709                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1710   libc_cv_ld_no_whole_archive=yes
1711 else
1712   libc_cv_ld_no_whole_archive=no
1714 rm -f conftest*])
1715 if test $libc_cv_ld_no_whole_archive = yes; then
1716   no_whole_archive=-Wl,--no-whole-archive
1718 AC_SUBST(no_whole_archive)dnl
1720 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1721 cat > conftest.c <<\EOF
1722 _start () {}
1723 int __eh_pc;
1724 __throw () {}
1726 dnl No \ in command here because it ends up inside ''.
1727 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1728                             -nostdlib -nostartfiles -fexceptions
1729                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1730   libc_cv_gcc_exceptions=yes
1731 else
1732   libc_cv_gcc_exceptions=no
1734 rm -f conftest*])
1735 if test $libc_cv_gcc_exceptions = yes; then
1736   exceptions=-fexceptions
1738 AC_SUBST(exceptions)dnl
1740 if test "$host_cpu" = powerpc ; then
1741 # Check for a bug present in at least versions 2.8.x of GCC
1742 # and versions 1.0.x of EGCS.
1743 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1744 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1745                libc_cv_c_asmcr0_bug='no',
1746                libc_cv_c_asmcr0_bug='yes')])
1747 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1748   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1752 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1753 [cat > conftest.c <<EOF
1754 #line $LINENO "configure"
1755 static char *__EH_FRAME_BEGIN__;
1756 _start ()
1758 #ifdef CHECK__register_frame
1759   __register_frame (__EH_FRAME_BEGIN__);
1760   __deregister_frame (__EH_FRAME_BEGIN__);
1761 #endif
1762 #ifdef CHECK__register_frame_info
1763   __register_frame_info (__EH_FRAME_BEGIN__);
1764   __deregister_frame_info (__EH_FRAME_BEGIN__);
1765 #endif
1767 int __eh_pc;
1768 __throw () {}
1769 /* FIXME: this is fragile.  */
1770 malloc () {}
1771 strcmp () {}
1772 strlen () {}
1773 memcpy () {}
1774 memset () {}
1775 free () {}
1776 abort () {}
1777 __bzero () {}
1778 dl_iterate_phdr () {}
1780 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1781                             $LDFLAGS \
1782                             -nostdlib -nostartfiles -o conftest conftest.c \
1783                             -lgcc"
1784 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1785 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1786    AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1787 then
1788   if $libc_unwind_check -v 2>&1 >/dev/null \
1789      | grep -- --eh-frame-hdr 2>&1 >/dev/null; then
1790     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1791   else
1792     libc_cv_gcc_dwarf2_unwind_info=static
1793   fi
1794 else
1795   libc_cv_gcc_dwarf2_unwind_info=no
1797 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1798   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1799                               $LDFLAGS -nostdlib -nostartfiles
1800                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1801     libc_cv_gcc_dwarf2_unwind_info=yes
1802   else
1803     libc_cv_gcc_dwarf2_unwind_info=no
1804   fi
1806 rm -f conftest*])
1807 case $libc_cv_gcc_dwarf2_unwind_info in
1808 yes)
1809   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1810   ;;
1811 static)
1812   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1813   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1814   ;;
1815 esac
1817 dnl Check whether compiler understands __builtin_expect.
1818 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1819 [cat > conftest.c <<EOF
1820 #line $LINENO "configure"
1821 int foo (int a)
1823   a = __builtin_expect (a, 10);
1824   return a == 10 ? 0 : 1;
1827 dnl No \ in command here because it ends up inside ''.
1828 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1829                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1830   libc_cv_gcc_builtin_expect=yes
1831 else
1832   libc_cv_gcc_builtin_expect=no
1834 rm -f conftest*])
1835 if test "$libc_cv_gcc_builtin_expect" = yes; then
1836   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1839 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1840 cat > conftest.c <<\EOF
1841 void zero (void *x)
1843   __builtin_memset (x, 0, 1000);
1847 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1848 then
1849   libc_cv_gcc_builtin_memset=no
1850 else
1851   libc_cv_gcc_builtin_memset=yes
1853 rm -f conftest* ])
1854 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1855   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1858 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1859 cat > conftest.c <<\EOF
1860 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1861 char *foo (const char *a, const char *b)
1863   return __builtin_strstr (a, b);
1867 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1868 then
1869   libc_cv_gcc_builtin_redirection=yes
1870 else
1871   libc_cv_gcc_builtin_redirection=no
1873 rm -f conftest* ])
1874 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1875   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1878 dnl Check whether the compiler supports subtraction of local labels.
1879 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1880 [cat > conftest.c <<EOF
1881 changequote(,)dnl
1882 #line $LINENO "configure"
1883 int foo (int a)
1885   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1886   void *p = &&l1 + ar[a];
1887   goto *p;
1888  l1:
1889   return 1;
1890  l2:
1891   return 2;
1893 changequote([,])dnl
1895 dnl No \ in command here because it ends up inside ''.
1896 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1897                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1898   libc_cv_gcc_subtract_local_labels=yes
1899 else
1900   libc_cv_gcc_subtract_local_labels=no
1902 rm -f conftest*])
1903 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1904   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1907 dnl Check whether the compiler supports the __thread keyword.
1908 if test "x$use__thread" != xno; then
1909   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1910   [cat > conftest.c <<\EOF
1911 __thread int a = 42;
1913   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1914     libc_cv_gcc___thread=yes
1915   else
1916     libc_cv_gcc___thread=no
1917   fi
1918   rm -f conftest*])
1919   if test "$libc_cv_gcc___thread" = yes; then
1920     AC_DEFINE(HAVE___THREAD)
1921   fi
1922 else
1923   libc_cv_gcc___thread=no
1926 if test "$libc_cv_gcc___thread" = yes; then
1927   dnl Check whether the compiler supports the tls_model attribute.
1928   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1929   cat > conftest.c <<\EOF
1930 extern __thread int a __attribute__((tls_model ("initial-exec")));
1932   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1933     libc_cv_gcc_tls_model_attr=yes
1934   else
1935     libc_cv_gcc_tls_model_attr=no
1936   fi
1937   rm -f conftest*])
1938   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1939     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1940   fi
1943 dnl Check whether we have the gd library available.
1944 AC_MSG_CHECKING(for libgd)
1945 if test "$with_gd" != "no"; then
1946   old_CFLAGS="$CFLAGS"
1947   CFLAGS="$CFLAGS $libgd_include"
1948   old_LDFLAGS="$LDFLAGS"
1949   LDFLAGS="$LDFLAGS $libgd_ldflags"
1950   old_LIBS="$LIBS"
1951   LIBS="$LIBS -lgd -lpng -lz -lm"
1952   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1953   CFLAGS="$old_CFLAGS"
1954   LDFLAGS="$old_LDFLAGS"
1955   LIBS="$old_LIBS"
1956 else
1957   LIBGD=no
1959 AC_MSG_RESULT($LIBGD)
1960 AC_SUBST(LIBGD)
1962 # SELinux detection
1963 if test x$with_selinux = xno ; then
1964   have_selinux=no;
1965 else
1966   # See if we have the SELinux library
1967   AC_CHECK_LIB(selinux, is_selinux_enabled,
1968                have_selinux=yes, have_selinux=no)
1969   # See if we have the SELinux header with the NSCD permissions in it.
1970   if test x$have_selinux = xyes ; then
1971     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
1972     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
1973                     [#ifdef NSCD__SHMEMHOST
1974                      return 0;
1975                      #else
1976                      #error NSCD__SHMEMHOST not defined
1977                      #endif],
1978                     have_selinux=yes, have_selinux=no)
1979     AC_MSG_RESULT($have_selinux)
1980   fi
1982   if test x$with_selinux = xauto ; then
1983     if test x$have_selinux = xno ; then
1984       AC_MSG_WARN([Sufficiently new SELinux library not found])
1985     fi
1986   else
1987     if test x$have_selinux = xno ; then
1988       AC_MSG_ERROR([SELinux explicitly required, and SELinux library not found])
1989     fi
1990   fi
1992 # Check if we're building with SELinux support.
1993 if test "x$have_selinux" = xyes; then
1994   AC_DEFINE(HAVE_SELINUX,1,[SELinux support])
1996 AC_SUBST(have_selinux)
1998 dnl check for the size of 'long double'.
1999 AC_CHECK_SIZEOF(long double, 0)
2000 sizeof_long_double=$ac_cv_sizeof_long_double
2001 AC_SUBST(sizeof_long_double)
2003 ### End of automated tests.
2004 ### Now run sysdeps configure fragments.
2006 # They also can set these variables.
2007 use_ldconfig=no
2008 ldd_rewrite_script=no
2009 libc_cv_sysconfdir=$sysconfdir
2010 libc_cv_gcc_unwind_find_fde=no
2011 libc_cv_idn=no
2013 # Iterate over all the sysdep directories we will use, running their
2014 # configure fragments, and looking for a uname implementation.
2015 uname=
2016 for dir in $sysnames; do
2017   case $dir in
2018     /*) dest=$dir ;;
2019     *)  dest=$srcdir/$dir ;;
2020   esac
2021   if test -r $dest/configure; then
2022     AC_MSG_RESULT(running configure fragment for $dir)
2023     . $dest/configure
2024   fi
2026   if test -z "$uname"; then
2027     if test -r $dest/uname.c ||
2028        test -r $dest/uname.S ||
2029        { test -r $dest/syscalls.list &&
2030          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
2031       uname=$dir
2032     fi
2033   fi
2034 ]dnl
2035 done
2037 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2038   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2040 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2042 # If we will use the generic uname implementation, we must figure out what
2043 # it will say by examining the system, and write the results in config-name.h.
2044 if test "$uname" = "sysdeps/generic"; then
2046 changequote(,)dnl
2047   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
2048 changequote([,])dnl
2049   if test $uname_sysname != $config_os; then
2050     config_release=`echo $config_os | sed s/$uname_sysname//`
2051   fi
2053 AC_DEFUN(LIBC_KERNEL_ID, [dnl
2054     if test -r /vmunix; then
2055       kernel_id=`strings /vmunix | grep UNIX`
2056     elif test -r /dynix; then
2057       kernel_id=`strings /dynix | grep DYNIX`
2058     else
2059       kernel_id=
2060     fi
2061 ])dnl
2063   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
2064 LIBC_KERNEL_ID
2065 changequote(,)dnl
2066   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
2067 changequote([,])dnl
2068   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
2069          != x$config_release; then
2070     # The configuration release is a substring of the kernel release.
2071     libc_cv_uname_release=$kernel_release
2072   elif test x$config_release != x; then
2073     libc_cv_uname_release=$config_release
2074   elif test x$kernel_release != x; then
2075     libc_cv_uname_release=$kernel_release
2076   else
2077     libc_cv_uname_release=unknown
2078   fi])
2079   uname_release="$libc_cv_uname_release"
2081   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2082 LIBC_KERNEL_ID
2083 changequote(,)dnl
2084   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2085 changequote([,])dnl
2086   if test -n "$kernel_version"; then
2087     libc_cv_uname_version="$kernel_version"
2088   else
2089     libc_cv_uname_version=unknown
2090   fi])
2091   uname_version="$libc_cv_uname_version"
2093 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2094   config_uname=config-name.h:config-name.in
2095 else
2096   # For non-generic uname, we don't need to create config-name.h at all.
2097   config_uname=
2100 dnl This is tested by existing code and it's simpler to avoid changing it.
2101 AC_DEFINE(USE_IN_LIBIO)
2103 # Test for old glibc 2.0.x headers so that they can be removed properly
2104 # Search only in includedir.
2105 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2106 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2107 then
2108   old_glibc_headers=yes
2109 else
2110   old_glibc_headers=no
2112 AC_MSG_RESULT($old_glibc_headers)
2113 if test ${old_glibc_headers} = yes; then
2114   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2115   AC_MSG_WARN(*** be removed.)
2117 AC_SUBST(old_glibc_headers)
2119 AC_SUBST(libc_cv_slibdir)
2120 AC_SUBST(libc_cv_localedir)
2121 AC_SUBST(libc_cv_sysconfdir)
2122 AC_SUBST(libc_cv_rootsbindir)
2123 AC_SUBST(libc_cv_forced_unwind)
2125 AC_SUBST(use_ldconfig)
2126 AC_SUBST(ldd_rewrite_script)
2128 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
2129 if test $gnu_ld = yes; then
2130   AC_DEFINE(HAVE_GNU_LD)
2132 if test $gnu_as = yes; then
2133   AC_DEFINE(HAVE_GNU_AS)
2135 if test $elf = yes; then
2136   AC_DEFINE(HAVE_ELF)
2138 if test $xcoff = yes; then
2139   AC_DEFINE(HAVE_XCOFF)
2142 AC_SUBST(static)
2143 AC_SUBST(shared)
2144 if test $shared = default; then
2145   if test $gnu_ld = yes; then
2146     shared=$elf
2147   else
2148     # For now we do not assume shared libs are available.  In future more
2149     # tests might become available.
2150     shared=no
2151   fi
2154 if test x"$libc_cv_idn" = xyes; then
2155   AC_DEFINE(HAVE_LIBIDN)
2158 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2159 [pic_default=yes
2160 cat > conftest.c <<EOF
2161 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2162 # error PIC is default.
2163 #endif
2165 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2166   pic_default=no
2168 rm -f conftest.*])
2169 AC_SUBST(pic_default)
2171 AC_SUBST(profile)
2172 AC_SUBST(omitfp)
2173 AC_SUBST(bounded)
2174 AC_SUBST(static_nss)
2175 AC_SUBST(nopic_initfini)
2177 AC_SUBST(DEFINES)
2179 case "$add_ons" in
2180   *door*) linux_doors=yes ;;
2181   *) linux_doors=no ;;
2182 esac
2183 AC_SUBST(linux_doors)
2185 dnl See sysdeps/mach/configure.in for this variable.
2186 AC_SUBST(mach_interface_list)
2188 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2189   config_makefile=
2190 else
2191   config_makefile=Makefile
2194 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2195 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2196 AC_SUBST(VERSION)
2197 AC_SUBST(RELEASE)
2199 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2200 AC_CONFIG_COMMANDS([default],[[
2201 case $CONFIG_FILES in *config.make*)
2202 echo "$config_vars" >> config.make;;
2203 esac
2204 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2205 AC_OUTPUT