1 dnl Process this file with autoconf to produce a configure script.
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.
16 # Check for a --with-gmp argument and set gmp-srcdir in config.make.
18 AC_HELP_STRING([--with-gmp=DIRECTORY],
19 [find GMP source code in DIRECTORY (not needed)]),
22 yes) AC_MSG_ERROR([--with-gmp requires an argument; use --with-gmp=DIRECTORY]) ;;
24 *) config_vars="$config_vars
25 gmp-srcdir = $withval" ;;
28 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
30 AC_HELP_STRING([--with-gd=DIR],
31 [find libgd include dir and library with prefix DIR]),
35 *) libgd_include="-I$withval/include"
36 libgd_ldflags="-L$withval/lib" ;;
39 AC_ARG_WITH([gd-include],
40 AC_HELP_STRING([--with-gd-include=DIR],
41 [find libgd include files in DIR]),
43 case "$with_gd_include" in
45 *) libgd_include="-I$withval" ;;
49 AC_HELP_STRING([--with-gd-lib=DIR],
50 [find libgd library files in DIR]),
52 case "$with_gd_lib" in
54 *) libgd_ldflags="-L$withval" ;;
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.
69 AC_HELP_STRING([--with-fp],
70 [if using floating-point hardware @<:@default=yes@:>@]),
74 AC_ARG_WITH([binutils],
75 AC_HELP_STRING([--with-binutils=PATH],
76 [specify location of binutils (as and ld)]),
77 [path_binutils=$withval],
80 AC_HELP_STRING([--with-elf],
81 [if using the ELF object format]),
84 AC_ARG_WITH([selinux],
85 AC_HELP_STRING([--with-selinux],
86 [if building with SELinux support]),
87 [with_selinux=$withval],
90 AC_HELP_STRING([--with-xcoff],
91 [if using the XCOFF object format]),
95 AC_HELP_STRING([--without-cvs],
96 [if CVS should not be used]),
99 if test "$with_cvs" = yes; then
100 if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
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],
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],
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],
139 AC_ARG_ENABLE([shared],
140 AC_HELP_STRING([--enable-shared],
141 [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
144 AC_ARG_ENABLE([profile],
145 AC_HELP_STRING([--enable-profile],
146 [build profiled library @<:@default=yes@:>@]),
147 [profile=$enableval],
149 AC_ARG_ENABLE([omitfp],
150 AC_HELP_STRING([--enable-omitfp],
151 [build undebuggable optimized library @<:@default=no@:>@]),
154 AC_ARG_ENABLE([bounded],
155 AC_HELP_STRING([--enable-bounded],
156 [build with runtime bounds checking @<:@default=no@:>@]),
157 [bounded=$enableval],
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],
170 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
173 AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$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 ;;
197 [add_ons= add_ons_automatic=no])
199 dnl Let the user avoid using TLS. Don't know why but...
201 AC_HELP_STRING([--with-tls],
202 [enable support for TLS]),
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],
212 AC_ARG_ENABLE([hidden-plt],
213 AC_HELP_STRING([--disable-hidden-plt],
214 [do not hide internal function calls to avoid PLT]),
217 if test "x$hidden" = xno; then
221 AC_ARG_ENABLE([bind-now],
222 AC_HELP_STRING([--enable-bind-now],
223 [disable lazy relocations in DSOs]),
224 [bindnow=$enableval],
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],
235 dnl Enable static NSS also if we build no shared objects.
236 if test x"$static_nss" = xyes || test x"$shared" = xno; then
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],
246 AC_SUBST(force_install)
248 dnl On some platforms we allow dropping compatibility with all kernel
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],
255 dnl Prevent unreasonable values.
256 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
257 # Better nothing than this.
260 if test "$minimum_kernel" = current; then
261 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
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
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],
273 AC_SUBST(all_warnings)
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.
286 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
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.
301 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
302 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
304 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
305 # These systems (almost) always use the ELF format.
309 # These systems are always xcoff
315 # The configure fragment of an add-on port can modify these to supplement
316 # or override the table in the case statement below. No fragment should
317 # ever change the config_* variables, however.
318 machine=$config_machine
319 vendor=$config_vendor
322 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
324 if test "$machine" = rs6000; then
328 # Braindead PowerPC box with absolutely no FPU.
329 case "$machine-$host_os" in
337 AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
340 yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
342 *) submachine="$withval" ;;
347 # An add-on can set this when it the tuple to disable the sanity check below.
350 dnl Having this here, though empty, makes sure that if add-ons' fragments
351 dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
352 dnl our AC_OUTPUT will actually use it.
357 if test x"$add_ons" != x; then
358 for f in $add_ons; do
363 *** It seems that you're using an old \`crypt' add-on. crypt is now
364 *** part of glibc and using the old add-on will not work with this
365 *** release. Start again with fresh sources and without the old
366 *** \`crypt' add-on.])
370 *** It seems that you're using an old \`localedata' add-on. localedata
371 *** is now part of glibc and using the old add-on will not work with
372 *** this release. Start again with fresh sources and without the old
373 *** \`localedata' add-on.])
377 # Test whether such a subdir really exists.
378 test -d $srcdir/$f || {
379 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
383 # Now source each add-on's configure fragment.
384 # The fragments can use $srcdir/$libc_add_on to find themselves,
385 # and test $add_ons_automatic to see if they were explicitly requested.
386 # A fragment can clear (or even change) $libc_add_on to affect
387 # whether it goes into the list to be actually used in the build.
389 for libc_add_on in $add_ons; do
390 libc_add_on_frag=$srcdir/$libc_add_on/configure
391 if test -r $libc_add_on_frag; then
392 AC_MSG_RESULT(running configure fragment for add-on $libc_add_on)
395 AC_MSG_WARN(add-on fragment $libc_add_on_frag missing)
397 if test -n "$libc_add_on"; then
398 use_add_ons="$use_add_ons $libc_add_on"
399 add_ons_pfx="$add_ons_pfx $libc_add_on/"
400 add_ons_sfx="$add_ons_sfx /$libc_add_on"
403 # Use echo to strip excess whitespace.
404 add_ons="`echo $use_add_ons`"
410 ### I put this here to prevent those annoying emails from people who cannot
411 ### read and try to compile glibc on unsupported platforms. --drepper
413 ### By using the undocumented --enable-hacker-mode option for configure
414 ### one can skip this test to make the configuration not fail for unsupported
417 if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
418 case "$machine-$host_os" in
419 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
422 echo "*** The GNU C library is currently not available for this platform."
423 echo "*** So far nobody cared to port it and if there is no volunteer it"
424 echo "*** might never happen. So, if you have interest to see glibc on"
425 echo "*** this platform visit"
426 echo "*** http://www.gnu.org/software/libc/porting.html"
427 echo "*** and join the group of porters"
433 dnl We need to use [ and ] for other purposes for a while now.
435 # Expand the configuration machine name into a subdirectory by architecture
436 # type and particular chip. If an add-on configure fragment already set
437 # base_machine, we don't change it.
438 test -n "$base_machine" || case "$machine" in
439 a29k | am29000) base_machine=a29k machine=a29k ;;
440 alpha*) base_machine=alpha machine=alpha/$machine ;;
441 c3[012]) base_machine=cx0 machine=cx0/c30 ;;
442 c4[04]) base_machine=cx0 machine=cx0/c40 ;;
443 hppa*64*) base_machine=hppa machine=hppa/hppa64 ;;
444 hppa*) base_machine=hppa machine=hppa/hppa1.1 ;;
445 i[34567]86) base_machine=i386 machine=i386/$machine ;;
446 ia64) base_machine=ia64 machine=ia64 ;;
447 m680?0) base_machine=m68k machine=m68k/$machine ;;
448 m68k) base_machine=m68k machine=m68k/m68020 ;;
449 m88???) base_machine=m88k machine=m88k/$machine ;;
450 m88k) base_machine=m88k machine=m88k/m88100 ;;
451 powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
452 powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
453 s390) base_machine=s390 machine=s390/s390-32 ;;
454 s390x) base_machine=s390 machine=s390/s390-64 ;;
455 sh3*) base_machine=sh machine=sh/sh3 ;;
456 sh4*) base_machine=sh machine=sh/sh4 ;;
458 base_machine=sparc machine=sparc/sparc32 ;;
459 sparcv8 | supersparc | hypersparc)
460 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
461 sparcv8plus | sparcv8plusa | sparcv9)
462 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
463 sparcv8plusb | sparcv9b)
464 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
466 base_machine=sparc machine=sparc/sparc64 ;;
468 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
469 *) base_machine=$machine ;;
472 AC_SUBST(base_machine)
474 if test "$base_machine" = "i386"; then
475 AC_DEFINE(USE_REGPARMS)
478 # Compute the list of sysdep directories for this configuration.
479 # This can take a while to compute.
480 sysdep_dir=$srcdir/sysdeps
481 AC_MSG_CHECKING(sysdep dirs)
482 dnl We need to use [ and ] for other purposes for a while now.
484 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
485 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
490 netbsd* | 386bsd* | freebsd* | bsdi*)
491 base_os=unix/bsd/bsd4.4 ;;
492 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
494 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
497 base_os=unix/sysv/irix6/$os ;;
499 base_os=unix/sysv/sysv4 ;;
501 base_os=unix/sysv/hpux/$os ;;
503 base_os=unix/sysv/aix/aix4.3 ;;
505 base_os=standalone ;;
510 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
513 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
517 o=`echo $tail | sed 's/[0-9]*$//'`
518 if test $o != $tail; then
521 # For linux-gnu, try linux-gnu, then linux.
522 o=`echo $tail | sed 's/-.*$//'`
523 if test $o != $tail; then
527 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
530 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
536 # For sparc/sparc32, try sparc/sparc32 and then sparc.
538 tail=$machine${submachine:+/$submachine}
539 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
541 # Prepend the machine's FPU directory unless --without-fp.
542 if test "$with_fp" = yes; then
545 mach="$mach /$1/nofpu"
551 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
554 # Find what sysdep directories exist.
556 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
557 for b in $base ''; do
558 for m0 in $mach ''; do
559 for v in /$vendor ''; do
560 test "$v" = / && continue
561 for o in /$ostry ''; do
562 test "$o" = / && continue
563 for m in $mach ''; do
564 for d in $add_ons_pfx ''; do
565 for a in $add_ons_sfx ''; do
566 if test "$m0$m0sub$b$v$o$m$msub"; then
567 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
568 test -n "$enable_debug_configure" &&
569 echo "$0 [DEBUG]: try $try" >&2
570 if test -d $srcdir/$try; then
571 sysnames="$sysnames $try"
572 { test -n "$o" || test -n "$b"; } && os_used=t
573 { test -n "$m" || test -n "$m0"; } && machine_used=t
575 x*/$submachine) submachine_used=t ;;
586 for d in $add_ons_pfx ''; do
587 for a in $add_ons_sfx ''; do
588 if test -n "$d" && test "$d" != "$a"; then
589 try="${d}sysdeps/generic${a}"
590 test -n "$enable_debug_configure" &&
591 echo "$0 DEBUG: try $try" >&2
592 if test -d $srcdir/$try; then
593 sysnames="$sysnames $try"
600 if test -z "$os_used" && test "$os" != none; then
601 AC_MSG_ERROR(Operating system $os is not supported.)
603 if test -z "$machine_used" && test "$machine" != none; then
604 AC_MSG_ERROR(The $machine is not supported.)
606 if test -z "$submachine_used" && test -n "$submachine"; then
607 AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
611 # We have now validated the configuration.
614 # If using ELF, look for an `elf' subdirectory of each machine directory.
615 # We prepend these rather than inserting them whereever the machine appears
616 # because things specified by the machine's ELF ABI should override
617 # OS-specific things, and should always be the same for any OS on the
618 # machine (otherwise what's the point of an ABI?).
619 if test "$elf" = yes; then
621 for d in $add_ons_pfx ''; do
623 if test -d $srcdir/${d}sysdeps$m/elf; then
624 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
628 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
632 # Expand the list of system names into a full list of directories
633 # from each element's parent name and Implies file (if present).
636 while test $# -gt 0; do
640 case " $names " in *" $name "*)
641 # Already in the list.
645 # Report each name as we discover it, so there is no long pause in output.
646 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
648 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
652 *) xsrcdir=$srcdir/ ;;
654 test -n "$enable_debug_configure" &&
655 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
657 if test -f $xsrcdir$name/Implies; then
658 # Collect more names from the `Implies' file (removing comments).
659 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
661 for x in $implied_candidate; do
663 if test -d $xsrcdir$name_base/$x; then
664 implied="$implied $name_base/$x";
667 for d in $add_ons_pfx ''; do
671 *) try_srcdir=$srcdir/ ;;
673 test -n "$enable_debug_configure" &&
674 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
675 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
677 implied="$implied $try"
681 if test $found = no; then
682 AC_MSG_WARN($name/Implies specifies nonexistent $x)
689 # Add NAME to the list of names.
692 # Find the parent of NAME, using the empty string if it has none.
694 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
697 # Add the names implied by NAME, and NAME's parent (if it has one), to
698 # the list of names to be processed (the argument list). We prepend the
699 # implied names to the list and append the parent. We want implied
700 # directories to come before further directories inferred from the
701 # configuration components; this ensures that for sysv4, unix/common
702 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
704 sysnames="`echo $implied $* $parent`"
705 test -n "$sysnames" && set $sysnames
708 # Add the default directories.
709 default_sysnames=sysdeps/generic
710 if test "$elf" = yes; then
711 default_sysnames="sysdeps/generic/elf $default_sysnames"
713 sysnames="$names $default_sysnames"
715 # The other names were emitted during the scan.
716 AC_MSG_RESULT($default_sysnames)
722 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
723 # The makefiles need to use a different form to find it in $srcdir.
724 INSTALL='\$(..)./scripts/install-sh -c'
729 if test $host != $build; then
730 AC_CHECK_PROGS(BUILD_CC, gcc cc)
732 AC_SUBST(cross_compiling)
734 # We need the C++ compiler only for testing.
737 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
739 # Accept binutils 2.13 or newer.
740 AC_CHECK_PROG_VER(AS, $AS, --version,
741 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
742 [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
743 AC_CHECK_PROG_VER(LD, $LD, --version,
744 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
745 [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
747 # We need the physical current working directory. We cannot use the
748 # "pwd -P" shell builtin since that's not portable. Instead we try to
749 # find a pwd binary. Note that assigning to the PWD environment
750 # variable might have some interesting side effects, so we don't do
752 AC_PATH_PROG(PWD_P, pwd, no)
753 if test "$PWD_P" = no; then
754 AC_MSG_ERROR(*** A pwd binary could not be found.)
757 # These programs are version sensitive.
759 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
760 [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
761 critic_missing="$critic_missing gcc")
762 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
763 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
764 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
766 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
767 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
768 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
769 MSGFMT=: aux_missing="$aux_missing msgfmt")
770 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
771 [GNU texinfo.* \([0-9][0-9.]*\)],
773 MAKEINFO=: aux_missing="$aux_missing makeinfo")
774 AC_CHECK_PROG_VER(SED, sed, --version,
775 [GNU sed version \([0-9]*\.[0-9.]*\)],
776 [3.0[2-9]*|3.[1-9]*|[4-9]*],
777 SED=: aux_missing="$aux_missing sed")
779 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
781 xno|x|x:) AUTOCONF=no ;;
784 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
785 if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
786 libc_cv_autoconf_works=yes
788 libc_cv_autoconf_works=no
790 test $libc_cv_autoconf_works = yes || AUTOCONF=no
793 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
794 # If --without-cvs they probably won't change configure.in, so no complaints.
795 aux_missing="$aux_missing autoconf"
798 test -n "$critic_missing" && AC_MSG_ERROR([
799 *** These critical programs are missing or too old:$critic_missing
800 *** Check the INSTALL file for required versions.])
802 test -n "$aux_missing" && AC_MSG_WARN([
803 *** These auxiliary programs are missing or incompatible versions:$aux_missing
804 *** some features will be disabled.
805 *** Check the INSTALL file for required versions.])
807 # if using special system headers, find out the compiler's sekrit
808 # header directory and add that to the list. NOTE: Only does the right
809 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
810 if test -n "$sysheaders"; then
811 ccheaders=`$CC -print-file-name=include`
812 SYSINCLUDES="-nostdinc -isystem $ccheaders \
813 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
814 if test -n "$CXX"; then
815 cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
816 cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
817 cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
818 CXX_SYSINCLUDES="-isystem $cxxheaders \
819 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
822 AC_SUBST(SYSINCLUDES)
823 AC_SUBST(CXX_SYSINCLUDES)
825 # check if ranlib is necessary
826 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
827 cat > conftest.c <<EOF
832 $CC $CFLAGS $CPPFLAGS -c conftest.c
833 $AR cr conftest.a conftest.o
834 cp conftest.a conftest2.a
836 if cmp -s conftest.a conftest2.a; then
837 libc_cv_ranlib_necessary=no
839 libc_cv_ranlib_necessary=yes
842 if test "$libc_cv_ranlib_necessary" = no; then
846 # Test if LD_LIBRARY_PATH contains the notation for the current directory
847 # since this would lead to problems installing/building glibc.
848 # LD_LIBRARY_PATH contains the current directory if one of the following
850 # - one of the terminals (":" and ";") is the first or last sign
851 # - two terminals occur directly after each other
852 # - the path contains an element with a dot in it
853 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
855 case ${LD_LIBRARY_PATH} in
856 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
857 ld_library_path_setting="contains current directory"
860 ld_library_path_setting="ok"
864 AC_MSG_RESULT($ld_library_path_setting)
865 if test "$ld_library_path_setting" != "ok"; then
867 *** LD_LIBRARY_PATH shouldn't contain the current directory when
868 *** building glibc. Please change the environment variable
869 *** and run configure again.])
872 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
873 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
874 libc_cv_gcc_static_libgcc=
876 libc_cv_gcc_static_libgcc=-static-libgcc
878 AC_SUBST(libc_cv_gcc_static_libgcc)
880 AC_PATH_PROG(BASH, bash, no)
881 if test "$BASH" != no &&
882 $BASH -c 'test "$BASH_VERSINFO" \
883 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
884 libc_cv_have_bash2=yes
886 libc_cv_have_bash2=no
888 AC_SUBST(libc_cv_have_bash2)
890 dnl We need a ksh compatible shell for tzselect.
891 if test "$BASH" = no; then
892 AC_PATH_PROG(KSH, ksh, no)
893 if test "$KSH" = no; then
903 AC_SUBST(libc_cv_have_ksh)
906 AC_PATH_PROG(PERL, perl, no)
907 if test "$PERL" != no &&
908 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
911 AC_PATH_PROG(INSTALL_INFO, install-info, no,
912 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
913 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
915 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
916 echo '#include <stddef.h>
917 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
918 if eval "$ac_cpp conftest.c 2>/dev/null" \
919 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
920 libc_cv_signed_size_t=no
922 libc_cv_signed_size_t=yes
925 if test $libc_cv_signed_size_t = yes; then
926 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
927 cat >> confdefs.h <<\EOF
929 #define __SIZE_TYPE__ unsigned
933 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
935 [#define __need_size_t
936 #define __need_wchar_t
939 #include <stddef.h>], [size_t size; wchar_t wchar;
941 #error stddef.h ignored __need_*
943 if (&size == NULL || &wchar == NULL) abort ();],
944 libc_cv_friendly_stddef=yes,
945 libc_cv_friendly_stddef=no)])
946 if test $libc_cv_friendly_stddef = yes; then
947 config_vars="$config_vars
948 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
951 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
952 libc_cv_need_minus_P, [dnl
953 cat > conftest.S <<EOF
954 #include "confdefs.h"
955 /* Nothing whatsoever. */
957 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
958 libc_cv_need_minus_P=no
960 libc_cv_need_minus_P=yes
963 if test $libc_cv_need_minus_P = yes; then
964 config_vars="$config_vars
965 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
968 AC_MSG_CHECKING(whether .text pseudo-op must be used)
969 AC_CACHE_VAL(libc_cv_dot_text, [dnl
970 cat > conftest.s <<EOF
974 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
975 libc_cv_dot_text=.text
978 if test -z "$libc_cv_dot_text"; then
984 AC_CACHE_CHECK(for assembler global-symbol directive,
985 libc_cv_asm_global_directive, [dnl
986 libc_cv_asm_global_directive=UNKNOWN
987 for ac_globl in .globl .global .EXPORT; do
988 cat > conftest.s <<EOF
993 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
994 libc_cv_asm_global_directive=${ac_globl}
997 test $libc_cv_asm_global_directive != UNKNOWN && break
999 if test $libc_cv_asm_global_directive = UNKNOWN; then
1000 AC_MSG_ERROR(cannot determine asm global directive)
1002 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
1005 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1006 cat > conftest.s <<EOF
1009 .set glibc_conftest_frobozz,foo
1010 $libc_cv_asm_global_directive glibc_conftest_frobozz
1012 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1013 # (but it doesn't work), so we must do a linking check to be sure.
1014 cat > conftest1.c <<\EOF
1015 extern int glibc_conftest_frobozz;
1016 void _start() { glibc_conftest_frobozz = 1; }
1018 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1019 -nostartfiles -nostdlib \
1020 -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1021 libc_cv_asm_set_directive=yes
1023 libc_cv_asm_set_directive=no
1026 if test $libc_cv_asm_set_directive = yes; then
1027 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1030 AC_CACHE_CHECK(for assembler .type directive prefix,
1031 libc_cv_asm_type_prefix, [dnl
1032 libc_cv_asm_type_prefix=no
1033 for ac_try_prefix in '@' '%' '#'; do
1034 cat > conftest.s <<EOF
1036 ${libc_cv_asm_global_directive} foo
1037 .type foo, ${ac_try_prefix}object
1042 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1043 libc_cv_asm_type_prefix=${ac_try_prefix}
1046 test "x$libc_cv_asm_type_prefix" != xno && break
1048 if test "x$libc_cv_asm_type_prefix" != xno; then
1049 AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1052 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1053 [cat > conftest.s <<EOF
1056 .symver _sym,sym@VERS
1058 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1059 libc_cv_asm_symver_directive=yes
1061 libc_cv_asm_symver_directive=no
1064 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1065 if test $libc_cv_asm_symver_directive = yes; then
1066 cat > conftest.s <<EOF
1069 .symver _sym,sym@VERS
1071 cat > conftest.map <<EOF
1080 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1081 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1082 -o conftest.so conftest.o
1083 -nostartfiles -nostdlib
1084 -Wl,--version-script,conftest.map
1085 1>&AS_MESSAGE_LOG_FD]);
1087 libc_cv_ld_version_script_option=yes
1089 libc_cv_ld_version_script_option=no
1092 libc_cv_ld_version_script_option=no
1095 libc_cv_ld_version_script_option=no
1098 if test $shared != no &&
1099 test $libc_cv_asm_symver_directive = yes &&
1100 test $libc_cv_ld_version_script_option = yes &&
1101 test $enable_versioning = yes; then
1103 AC_DEFINE(DO_VERSIONING)
1107 AC_SUBST(VERSIONING)
1109 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1111 *** WARNING: You should not compile GNU libc without versioning. Not using
1112 *** versioning will introduce incompatibilities so that old binaries
1113 *** will not run anymore.
1114 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1116 if test $elf = yes; then
1117 AC_CACHE_CHECK(for .previous assembler directive,
1118 libc_cv_asm_previous_directive, [dnl
1119 cat > conftest.s <<EOF
1120 .section foo_section
1123 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1124 libc_cv_asm_previous_directive=yes
1126 libc_cv_asm_previous_directive=no
1129 if test $libc_cv_asm_previous_directive = yes; then
1130 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1132 AC_CACHE_CHECK(for .popsection assembler directive,
1133 libc_cv_asm_popsection_directive, [dnl
1134 cat > conftest.s <<EOF
1135 .pushsection foo_section
1138 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1139 libc_cv_asm_popsection_directive=yes
1141 libc_cv_asm_popsection_directive=no
1144 if test $libc_cv_asm_popsection_directive = yes; then
1145 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1148 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1149 libc_cv_asm_protected_directive, [dnl
1150 cat > conftest.s <<EOF
1156 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1157 libc_cv_asm_protected_directive=yes
1159 libc_cv_asm_protected_directive=no
1162 AC_SUBST(libc_cv_asm_protected_directive)
1163 AC_DEFINE(HAVE_PROTECTED)
1164 AC_DEFINE(HAVE_HIDDEN)
1166 if test $libc_cv_asm_protected_directive = yes; then
1167 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1168 libc_cv_visibility_attribute,
1169 [cat > conftest.c <<EOF
1170 int foo __attribute__ ((visibility ("hidden"))) = 1;
1171 int bar __attribute__ ((visibility ("protected"))) = 1;
1173 libc_cv_visibility_attribute=no
1174 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1175 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1176 if grep '\.protected.*bar' conftest.s >/dev/null; then
1177 libc_cv_visibility_attribute=yes
1183 if test $libc_cv_visibility_attribute = yes; then
1184 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1188 if test $libc_cv_visibility_attribute = yes; then
1189 AC_CACHE_CHECK(for broken __attribute__((visibility())),
1190 libc_cv_broken_visibility_attribute,
1191 [cat > conftest.c <<EOF
1193 int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1194 int bar (int x) { return x; }
1196 libc_cv_broken_visibility_attribute=yes
1197 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1199 if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
1201 libc_cv_broken_visibility_attribute=no
1204 rm -f conftest.c conftest.s
1206 if test $libc_cv_broken_visibility_attribute = yes; then
1207 AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1211 AC_CACHE_CHECK(for broken __attribute__((alias())),
1212 libc_cv_broken_alias_attribute,
1213 [cat > conftest.c <<EOF
1214 extern int foo (int x) __asm ("xyzzy");
1215 int bar (int x) { return x; }
1216 extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1218 extern __typeof (dfoo) dfoo __asm ("abccb");
1221 libc_cv_broken_alias_attribute=yes
1222 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1223 if grep 'xyzzy' conftest.s >/dev/null &&
1224 grep 'abccb' conftest.s >/dev/null; then
1225 libc_cv_broken_alias_attribute=no
1228 rm -f conftest.c conftest.s
1230 if test $libc_cv_broken_alias_attribute = yes; then
1231 AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1234 if test $libc_cv_visibility_attribute = yes; then
1235 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1236 libc_cv_have_sdata_section,
1237 [echo "int i;" > conftest.c
1238 libc_cv_have_sdata_section=no
1239 if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1240 | grep '\.sdata' >/dev/null; then
1241 libc_cv_have_sdata_section=yes
1243 rm -f conftest.c conftest.so
1245 if test $libc_cv_have_sdata_section = yes; then
1246 AC_DEFINE(HAVE_SDATA_SECTION)
1250 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1251 libc_cv_initfini_array, [dnl
1252 cat > conftest.c <<EOF
1253 int _start (void) { return 0; }
1254 int __start (void) { return 0; }
1255 int foo (void) { return 1; }
1256 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1258 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1259 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1261 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1262 libc_cv_initfini_array=yes
1264 libc_cv_initfini_array=no
1267 libc_cv_initfini_array=no
1270 if test $libc_cv_initfini_array != yes; then
1271 AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1274 AC_CACHE_CHECK(for libunwind-support in compiler,
1275 libc_cv_cc_with_libunwind, [
1276 cat > conftest.c <<EOF
1277 int main (void) { return 0; }
1279 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1280 conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1281 libc_cv_cc_with_libunwind=yes
1283 libc_cv_cc_with_libunwind=no
1286 AC_SUBST(libc_cv_cc_with_libunwind)
1287 if test $libc_cv_cc_with_libunwind = yes; then
1288 AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1291 AC_CACHE_CHECK(for -z nodelete option,
1292 libc_cv_z_nodelete, [dnl
1293 cat > conftest.c <<EOF
1294 int _start (void) { return 42; }
1296 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1297 -fPIC -shared -o conftest.so conftest.c
1298 -nostartfiles -nostdlib
1299 -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1301 libc_cv_z_nodelete=yes
1303 libc_cv_z_nodelete=no
1306 AC_SUBST(libc_cv_z_nodelete)
1308 AC_CACHE_CHECK(for -z nodlopen option,
1309 libc_cv_z_nodlopen, [dnl
1310 cat > conftest.c <<EOF
1311 int _start (void) { return 42; }
1313 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1314 -fPIC -shared -o conftest.so conftest.c
1315 -nostartfiles -nostdlib
1316 -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1318 libc_cv_z_nodlopen=yes
1320 libc_cv_z_nodlopen=no
1323 AC_SUBST(libc_cv_z_nodlopen)
1325 AC_CACHE_CHECK(for -z initfirst option,
1326 libc_cv_z_initfirst, [dnl
1327 cat > conftest.c <<EOF
1328 int _start (void) { return 42; }
1330 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1331 -fPIC -shared -o conftest.so conftest.c
1332 -nostartfiles -nostdlib
1333 -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1335 libc_cv_z_initfirst=yes
1337 libc_cv_z_initfirst=no
1340 AC_SUBST(libc_cv_z_initfirst)
1342 AC_CACHE_CHECK(for -z relro option,
1343 libc_cv_z_relro, [dnl
1345 if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1347 if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1352 AC_SUBST(libc_cv_z_relro)
1353 if test $libc_cv_z_relro = yes; then
1354 AC_DEFINE(HAVE_Z_RELRO)
1357 AC_CACHE_CHECK(for -Bgroup option,
1358 libc_cv_Bgroup, [dnl
1359 cat > conftest.c <<EOF
1360 int _start (void) { return 42; }
1362 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1363 -fPIC -shared -o conftest.so conftest.c
1364 -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1371 AC_SUBST(libc_cv_Bgroup)
1373 AC_CACHE_CHECK(for libgcc_s suffix,
1374 libc_cv_libgcc_s_suffix, [dnl
1375 cat > conftest.c <<EOF
1376 int main (void) { return 0; }
1379 libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1380 -fPIC -shared -shared-libgcc -o conftest.so \
1381 conftest.c -v 2>&1 >/dev/null \
1382 | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1385 AC_SUBST(libc_cv_libgcc_s_suffix)
1387 AC_CACHE_CHECK(for --as-needed option,
1388 libc_cv_as_needed, [dnl
1389 cat > conftest.c <<EOF
1390 int main (void) { return 0; }
1392 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1393 -fPIC -shared -o conftest.so conftest.c
1394 -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1395 -nostdlib 1>&AS_MESSAGE_LOG_FD])
1397 libc_cv_as_needed=yes
1399 libc_cv_as_needed=no
1402 AC_SUBST(libc_cv_as_needed)
1405 AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1406 libc_cv_as_noexecstack, [dnl
1407 cat > conftest.c <<EOF
1410 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1411 -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1412 && grep -q .note.GNU-stack conftest.s \
1413 && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1414 -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1416 libc_cv_as_noexecstack=yes
1418 libc_cv_as_noexecstack=no
1421 if test $libc_cv_as_noexecstack = yes; then
1422 ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1424 AC_SUBST(ASFLAGS_config)
1426 AC_CACHE_CHECK(for -z combreloc,
1427 libc_cv_z_combreloc, [dnl
1428 cat > conftest.c <<EOF
1429 extern int bar (int);
1431 int foo (void) { return bar (mumble); }
1433 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1434 -fPIC -shared -o conftest.so conftest.c
1435 -nostdlib -nostartfiles
1436 -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1438 dnl The following test is a bit weak. We must use a tool which can test
1439 dnl cross-platform since the gcc used can be a cross compiler. Without
1440 dnl introducing new options this is not easily doable. Instead use a tool
1441 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1442 dnl look for a section named .rel.dyn.
1443 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1444 libc_cv_z_combreloc=yes
1446 libc_cv_z_combreloc=no
1449 libc_cv_z_combreloc=no
1452 if test "$libc_cv_z_combreloc" = yes; then
1453 AC_DEFINE(HAVE_Z_COMBRELOC)
1455 AC_SUBST(libc_cv_z_combreloc)
1457 AC_CACHE_CHECK(for -z execstack,
1458 libc_cv_z_execstack, [dnl
1459 cat > conftest.c <<EOF
1460 int _start (void) { return 42; }
1462 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1463 -fPIC -shared -o conftest.so conftest.c
1464 -Wl,-z,execstack -nostdlib
1465 1>&AS_MESSAGE_LOG_FD])
1467 libc_cv_z_execstack=yes
1469 libc_cv_z_execstack=no
1472 AC_SUBST(libc_cv_z_execstack)
1474 AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1475 cat > conftest.c <<EOF
1477 main () { return 0;}
1479 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1480 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1488 AC_SUBST(libc_cv_fpie)
1491 AC_CACHE_CHECK(for -fno-toplevel-reorder, libc_cv_fno_toplevel_reorder, [dnl
1492 cat > conftest.c <<EOF
1495 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder
1496 conftest.c 1>&AS_MESSAGE_LOG_FD])
1498 libc_cv_fno_toplevel_reorder=yes
1500 libc_cv_fno_toplevel_reorder=no
1503 if test $libc_cv_fno_toplevel_reorder = yes; then
1504 fno_unit_at_a_time=-fno-toplevel-reorder
1506 fno_unit_at_a_time=-fno-unit-at-a-time
1508 AC_SUBST(fno_unit_at_a_time)
1510 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1511 cat > conftest.c <<EOF
1513 main () { return 0;}
1515 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fstack-protector
1516 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1523 AC_SUBST(libc_cv_ssp)
1525 if test $elf != yes; then
1526 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1527 [AC_TRY_COMPILE(, [asm (".section .init");
1528 asm (".section .fini");
1529 asm ("${libc_cv_dot_text}");],
1530 libc_cv_have_initfini=yes,
1531 libc_cv_have_initfini=no)])
1532 AC_SUBST(libc_cv_have_initfini)dnl
1533 if test $libc_cv_have_initfini = yes; then
1534 AC_DEFINE(HAVE_INITFINI)
1538 if test $elf = yes; then
1539 AC_CACHE_CHECK(whether cc puts quotes around section names,
1540 libc_cv_have_section_quotes,
1541 [cat > conftest.c <<EOF
1542 static const int foo
1543 __attribute__ ((section ("bar"))) = 1;
1545 if ${CC-cc} -S conftest.c -o conftest.s; then
1546 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1547 libc_cv_have_section_quotes=yes
1549 libc_cv_have_section_quotes=no
1552 libc_cv_have_section_quotes=unknown
1556 if test $libc_cv_have_section_quotes = yes; then
1557 AC_DEFINE(HAVE_SECTION_QUOTES)
1561 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1562 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1563 [cat > conftest.$ac_ext <<EOF
1564 dnl This sometimes fails to find confdefs.h, for some reason.
1565 dnl [#]line $LINENO "[$]0"
1566 [#]line $LINENO "configure"
1567 #include "confdefs.h"
1568 void underscore_test(void) {
1571 if AC_TRY_EVAL(ac_compile); then
1572 if grep _underscore_test conftest* >/dev/null; then
1573 ifelse([$1], , :, [rm -f conftest*
1576 ifelse([$2], , , [rm -f conftest*
1580 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1581 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1582 ifelse([$2], , , [rm -f conftest*
1587 if test $elf = yes; then
1588 libc_cv_asm_underscores=no
1590 if test $ac_cv_prog_cc_works = yes; then
1591 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1592 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1593 libc_cv_asm_underscores=yes,
1594 libc_cv_asm_underscores=no)])
1596 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1597 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1598 libc_cv_asm_underscores=no)])
1601 if test $libc_cv_asm_underscores = no; then
1602 AC_DEFINE(NO_UNDERSCORES)
1605 if test $elf = yes; then
1606 libc_cv_weak_symbols=yes
1609 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1611 cat > conftest.s <<EOF
1613 ${libc_cv_asm_global_directive} foo
1616 .weak bar; bar = foo
1618 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1619 libc_cv_asm_weak_directive=yes
1621 libc_cv_asm_weak_directive=no
1625 if test $libc_cv_asm_weak_directive = no; then
1626 AC_CACHE_CHECK(for assembler .weakext directive,
1627 libc_cv_asm_weakext_directive,
1629 cat > conftest.s <<EOF
1631 ${libc_cv_asm_global_directive} foo
1635 ${libc_cv_asm_global_directive} baz
1638 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1639 libc_cv_asm_weakext_directive=yes
1641 libc_cv_asm_weakext_directive=no
1647 if test $libc_cv_asm_weak_directive = yes; then
1648 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1649 elif test $libc_cv_asm_weakext_directive = yes; then
1650 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1653 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1655 sparc/sparc64*) cfi_offset=2047;;
1658 cat > conftest.s <<EOF
1660 .type func,%function
1664 .cfi_rel_offset 1, $cfi_offset
1667 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1668 libc_cv_asm_cfi_directives=yes
1670 libc_cv_asm_cfi_directives=no
1673 if test $libc_cv_asm_cfi_directives = yes; then
1674 AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1677 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1678 cat > conftest.c <<\EOF
1683 dnl No \ in command here because it ends up inside ''.
1684 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1685 -nostdlib -nostartfiles -Wl,--no-whole-archive
1686 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1687 libc_cv_ld_no_whole_archive=yes
1689 libc_cv_ld_no_whole_archive=no
1692 if test $libc_cv_ld_no_whole_archive = yes; then
1693 no_whole_archive=-Wl,--no-whole-archive
1695 AC_SUBST(no_whole_archive)dnl
1697 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1698 cat > conftest.c <<\EOF
1703 dnl No \ in command here because it ends up inside ''.
1704 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1705 -nostdlib -nostartfiles -fexceptions
1706 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1707 libc_cv_gcc_exceptions=yes
1709 libc_cv_gcc_exceptions=no
1712 if test $libc_cv_gcc_exceptions = yes; then
1713 exceptions=-fexceptions
1715 AC_SUBST(exceptions)dnl
1717 if test "$host_cpu" = powerpc ; then
1718 # Check for a bug present in at least versions 2.8.x of GCC
1719 # and versions 1.0.x of EGCS.
1720 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1721 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1722 libc_cv_c_asmcr0_bug='no',
1723 libc_cv_c_asmcr0_bug='yes')])
1724 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1725 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1729 dnl Check whether compiler understands __builtin_expect.
1730 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1731 [cat > conftest.c <<EOF
1732 #line $LINENO "configure"
1735 a = __builtin_expect (a, 10);
1736 return a == 10 ? 0 : 1;
1739 dnl No \ in command here because it ends up inside ''.
1740 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1741 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1742 libc_cv_gcc_builtin_expect=yes
1744 libc_cv_gcc_builtin_expect=no
1747 if test "$libc_cv_gcc_builtin_expect" = yes; then
1748 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1751 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1752 cat > conftest.c <<\EOF
1755 __builtin_memset (x, 0, 1000);
1759 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1761 libc_cv_gcc_builtin_memset=no
1763 libc_cv_gcc_builtin_memset=yes
1766 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1767 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1770 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1771 cat > conftest.c <<\EOF
1772 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1773 char *foo (const char *a, const char *b)
1775 return __builtin_strstr (a, b);
1779 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1781 libc_cv_gcc_builtin_redirection=yes
1783 libc_cv_gcc_builtin_redirection=no
1786 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1787 AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1790 dnl Check whether the compiler supports the __thread keyword.
1791 if test "x$use__thread" != xno; then
1792 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1793 [cat > conftest.c <<\EOF
1794 __thread int a = 42;
1796 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1797 libc_cv_gcc___thread=yes
1799 libc_cv_gcc___thread=no
1802 if test "$libc_cv_gcc___thread" = yes; then
1803 AC_DEFINE(HAVE___THREAD)
1806 libc_cv_gcc___thread=no
1809 if test "$libc_cv_gcc___thread" = yes; then
1810 dnl Check whether the compiler supports the tls_model attribute.
1811 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1812 cat > conftest.c <<\EOF
1813 extern __thread int a __attribute__((tls_model ("initial-exec")));
1815 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1816 libc_cv_gcc_tls_model_attr=yes
1818 libc_cv_gcc_tls_model_attr=no
1821 if test "$libc_cv_gcc_tls_model_attr" = yes; then
1822 AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1826 dnl Check whether we have the gd library available.
1827 AC_MSG_CHECKING(for libgd)
1828 if test "$with_gd" != "no"; then
1829 old_CFLAGS="$CFLAGS"
1830 CFLAGS="$CFLAGS $libgd_include"
1831 old_LDFLAGS="$LDFLAGS"
1832 LDFLAGS="$LDFLAGS $libgd_ldflags"
1834 LIBS="$LIBS -lgd -lpng -lz -lm"
1835 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1836 CFLAGS="$old_CFLAGS"
1837 LDFLAGS="$old_LDFLAGS"
1842 AC_MSG_RESULT($LIBGD)
1846 if test x$with_selinux = xno ; then
1849 # See if we have the SELinux library
1850 AC_CHECK_LIB(selinux, is_selinux_enabled,
1851 have_selinux=yes, have_selinux=no)
1852 # See if we have the SELinux header with the NSCD permissions in it.
1853 if test x$have_selinux = xyes ; then
1854 AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
1855 AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
1856 [#ifdef NSCD__SHMEMHOST
1859 #error NSCD__SHMEMHOST not defined
1861 have_selinux=yes, have_selinux=no)
1862 AC_MSG_RESULT($have_selinux)
1865 if test x$with_selinux = xyes ; then
1866 if test x$have_selinux = xno ; then
1867 AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
1871 # Check if we're building with SELinux support.
1872 if test "x$have_selinux" = xyes; then
1873 AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
1875 # See if we have the libaudit library
1876 AC_CHECK_LIB(audit, audit_log_user_avc_message,
1877 have_libaudit=yes, have_libaudit=no)
1878 if test "x$have_libaudit" = xyes; then
1879 AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
1881 AC_SUBST(have_libaudit)
1883 AC_SUBST(have_selinux)
1885 dnl check for the size of 'long double'.
1886 AC_CHECK_SIZEOF(long double, 0)
1887 sizeof_long_double=$ac_cv_sizeof_long_double
1888 AC_SUBST(sizeof_long_double)
1890 ### End of automated tests.
1891 ### Now run sysdeps configure fragments.
1893 # They also can set these variables.
1895 ldd_rewrite_script=no
1896 libc_cv_sysconfdir=$sysconfdir
1897 libc_cv_gcc_unwind_find_fde=no
1900 # Iterate over all the sysdep directories we will use, running their
1901 # configure fragments, and looking for a uname implementation.
1903 for dir in $sysnames; do
1906 *) dest=$srcdir/$dir ;;
1908 if test -r $dest/configure; then
1909 AC_MSG_RESULT(running configure fragment for $dir)
1913 if test -z "$uname"; then
1914 if test -r $dest/uname.c ||
1915 test -r $dest/uname.S ||
1916 { test -r $dest/syscalls.list &&
1917 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1924 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1925 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1927 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1929 # If we will use the generic uname implementation, we must figure out what
1930 # it will say by examining the system, and write the results in config-name.h.
1931 if test "$uname" = "sysdeps/generic"; then
1934 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1936 if test $uname_sysname != $config_os; then
1937 config_release=`echo $config_os | sed s/$uname_sysname//`
1940 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1941 if test -r /vmunix; then
1942 kernel_id=`strings /vmunix | grep UNIX`
1943 elif test -r /dynix; then
1944 kernel_id=`strings /dynix | grep DYNIX`
1950 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1953 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1955 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1956 != x$config_release; then
1957 # The configuration release is a substring of the kernel release.
1958 libc_cv_uname_release=$kernel_release
1959 elif test x$config_release != x; then
1960 libc_cv_uname_release=$config_release
1961 elif test x$kernel_release != x; then
1962 libc_cv_uname_release=$kernel_release
1964 libc_cv_uname_release=unknown
1966 uname_release="$libc_cv_uname_release"
1968 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1971 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1973 if test -n "$kernel_version"; then
1974 libc_cv_uname_version="$kernel_version"
1976 libc_cv_uname_version=unknown
1978 uname_version="$libc_cv_uname_version"
1980 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1981 config_uname=config-name.h:config-name.in
1983 # For non-generic uname, we don't need to create config-name.h at all.
1987 dnl This is tested by existing code and it's simpler to avoid changing it.
1988 AC_DEFINE(USE_IN_LIBIO)
1990 # Test for old glibc 2.0.x headers so that they can be removed properly
1991 # Search only in includedir.
1992 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1993 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1995 old_glibc_headers=yes
1997 old_glibc_headers=no
1999 AC_MSG_RESULT($old_glibc_headers)
2000 if test ${old_glibc_headers} = yes; then
2001 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2002 AC_MSG_WARN(*** be removed.)
2004 AC_SUBST(old_glibc_headers)
2006 AC_SUBST(libc_cv_slibdir)
2007 AC_SUBST(libc_cv_localedir)
2008 AC_SUBST(libc_cv_sysconfdir)
2009 AC_SUBST(libc_cv_rootsbindir)
2010 AC_SUBST(libc_cv_forced_unwind)
2012 AC_SUBST(use_ldconfig)
2013 AC_SUBST(ldd_rewrite_script)
2015 AC_SUBST(elf) AC_SUBST(xcoff)
2016 if test $elf = yes; then
2019 if test $xcoff = yes; then
2020 AC_DEFINE(HAVE_XCOFF)
2025 if test $shared = default; then
2029 if test x"$libc_cv_idn" = xyes; then
2030 AC_DEFINE(HAVE_LIBIDN)
2033 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2035 cat > conftest.c <<EOF
2036 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2037 # error PIC is default.
2040 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2044 AC_SUBST(pic_default)
2049 AC_SUBST(static_nss)
2050 AC_SUBST(nopic_initfini)
2054 dnl See sysdeps/mach/configure.in for this variable.
2055 AC_SUBST(mach_interface_list)
2057 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2060 config_makefile=Makefile
2063 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2064 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2068 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2069 AC_CONFIG_COMMANDS([default],[[
2070 case $CONFIG_FILES in *config.make*)
2071 echo "$config_vars" >> config.make;;
2073 test -d bits || mkdir bits]],[[config_vars='$config_vars']])