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]),
85 AC_HELP_STRING([--with-xcoff],
86 [if using the XCOFF object format]),
90 AC_HELP_STRING([--without-cvs],
91 [if CVS should not be used]),
94 if test "$with_cvs" = yes; then
95 if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
102 AC_ARG_WITH([headers],
103 AC_HELP_STRING([--with-headers=PATH],
104 [location of system headers to use
105 (for example /usr/src/linux/include)
106 @<:@default=compiler default@:>@]),
107 [sysheaders=$withval],
110 AC_ARG_ENABLE([sanity-checks],
111 AC_HELP_STRING([--disable-sanity-checks],
112 [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
113 [enable_sanity=$enableval],
116 AC_SUBST(enable_check_abi)
117 AC_ARG_ENABLE([check-abi],
118 AC_HELP_STRING([--enable-check-abi],
119 [do "make check-abi" in "make check" (no/warn/yes)
120 @<:@default=no@:>@]),
121 [enable_check_abi=$enableval],
122 [enable_check_abi=no])
124 dnl Arguments to enable or disable building the static, shared, profiled,
125 dnl and -fomit-frame-pointer libraries.
126 dnl I've disabled this for now since we cannot build glibc without static
127 dnl libraries built in the moment.
128 dnl AC_ARG_ENABLE([static],
129 dnl AC_HELP_STRING([--enable-static],
130 dnl [build static library @<:@default=yes@:>@]),
131 dnl [static=$enableval],
134 AC_ARG_ENABLE([shared],
135 AC_HELP_STRING([--enable-shared],
136 [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
139 AC_ARG_ENABLE([profile],
140 AC_HELP_STRING([--enable-profile],
141 [build profiled library @<:@default=yes@:>@]),
142 [profile=$enableval],
144 AC_ARG_ENABLE([omitfp],
145 AC_HELP_STRING([--enable-omitfp],
146 [build undebuggable optimized library @<:@default=no@:>@]),
149 AC_ARG_ENABLE([bounded],
150 AC_HELP_STRING([--enable-bounded],
151 [build with runtime bounds checking @<:@default=no@:>@]),
152 [bounded=$enableval],
154 AC_ARG_ENABLE([versioning],
155 AC_HELP_STRING([--disable-versioning],
156 [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
157 [enable_versioning=$enableval],
158 [enable_versioning=yes])
160 AC_ARG_ENABLE([oldest-abi],
161 AC_HELP_STRING([--enable-oldest-abi=ABI],
162 [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
163 [oldest_abi=$enableval],
165 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
168 AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
172 dnl Generic infrastructure for drop-in additions to libc.
173 AC_ARG_ENABLE([add-ons],
174 AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
175 [configure and build add-ons in DIR1,DIR2,... search for add-ons if no parameter given]),
176 [case "$enableval" in
177 yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
178 test "$add_ons" = "*" && add_ons= ;;
179 *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
183 dnl Let the user avoid using TLS. Don't know why but...
184 dnl XXX For now we disable support by default.
186 AC_HELP_STRING([--with-tls],
187 [enable support for TLS]),
191 AC_ARG_WITH([__thread],
192 AC_HELP_STRING([--without-__thread],
193 [do not use TLS features even when supporting them]),
194 [use__thread=$withval],
197 AC_ARG_ENABLE([hidden-plt],
198 AC_HELP_STRING([--disable-hidden-plt],
199 [do not hide internal function calls to avoid PLT]),
202 if test "x$hidden" = xno; then
206 AC_CONFIG_SUBDIRS([ ])dnl Bonehead new Autoconf whines if we do it cleanly.
208 if test x"$add_ons" != x; then
209 for f in $add_ons; do
211 if test "$f" = "crypt"; then
213 *** It seems that you're using an old \`crypt' add-on. crypt is now
214 *** part of glibc and using the old add-on will not work with this
215 *** release. Start again with fresh sources and without the old
216 *** \`crypt' add-on.])
218 if test "$f" = "localedata"; then
220 *** It seems that you're using an old \`localedata' add-on. localedata
221 *** is now part of glibc and using the old add-on will not work with
222 *** this release. Start again with fresh sources and without the old
223 *** \`localedata' add-on.])
225 # Test whether such a subdir really exists.
226 if test -d $srcdir/$f; then
227 add_ons_pfx="$add_ons_pfx $f/"
228 dnl This variable is what AC_CONFIG_SUBDIRS is supposed to set,
229 dnl but the new Autoconf maintainers don't care about compatibility
230 dnl so we cannot use it normally any more without complaints.
231 subdirs="$subdirs $f"
233 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
238 dnl On some platforms we cannot use dynamic loading. We must provide
239 dnl static NSS modules.
240 AC_ARG_ENABLE([static-nss],
241 AC_HELP_STRING([--enable-static-nss],
242 [build static NSS modules @<:@default=no@:>@]),
243 [static_nss=$enableval],
245 dnl Enable static NSS also if we build no shared objects.
246 if test x"$static_nss" = xyes || test x"$shared" = xno; then
248 AC_DEFINE(DO_STATIC_NSS)
251 AC_ARG_ENABLE([force-install],
252 AC_HELP_STRING([--disable-force-install],
253 [don't force installation of files from this package, even if they are older than the installed files]),
254 [force_install=$enableval],
256 AC_SUBST(force_install)
258 dnl On some platforms we allow dropping compatibility with all kernel
260 AC_ARG_ENABLE([kernel],
261 AC_HELP_STRING([--enable-kernel=VERSION],
262 [compile for compatibility with kernel not older than VERSION]),
263 [minimum_kernel=$enableval],
265 dnl Prevent unreasonable values.
266 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
267 # Better nothing than this.
270 if test "$minimum_kernel" = current; then
271 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
275 dnl For the development we sometimes want gcc to issue even more warnings.
276 dnl This is not the default since many of the extra warnings are not
278 AC_ARG_ENABLE([all-warnings],
279 AC_HELP_STRING([--enable-all-warnings],
280 [enable all useful warnings gcc can issue]),
281 [all_warnings=$enableval],
283 AC_SUBST(all_warnings)
287 # The way shlib-versions is used to generate soversions.mk uses a
288 # fairly simplistic model for name recognition that can't distinguish
289 # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
290 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
291 # tell. This doesn't get used much beyond that, so it's fairly safe.
296 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
300 # We keep the original values in `$config_*' and never modify them, so we
301 # can write them unchanged into config.make. Everything else uses
302 # $machine, $vendor, and $os, and changes them whenever convenient.
303 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
305 # Don't allow vendor == "unknown"
306 test "$config_vendor" = unknown && config_vendor=
307 config_os="`echo $config_os | sed 's/^unknown-//'`"
309 # Some configurations imply other options.
311 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
312 # These systems always use GNU tools.
313 gnu_ld=yes gnu_as=yes ;;
316 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
317 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
319 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
320 # These systems (almost) always use the ELF format.
324 # These systems are always xcoff
330 machine=$config_machine
331 vendor=$config_vendor
334 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
336 if test "$machine" = rs6000; then
340 # Braindead PowerPC box with absolutely no FPU.
341 case "$machine-$host_os" in
348 ### I put this here to prevent those annoying emails from people who cannot
349 ### read and try to compile glibc on unsupported platforms. --drepper
351 ### By using the undocumented --enable-hacker-mode option for configure
352 ### one can skip this test to make the configuration not fail for unsupported
355 if test -z "$enable_hacker_mode"; then
356 case "$machine-$host_os" in
357 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
360 echo "*** The GNU C library is currently not available for this platform."
361 echo "*** So far nobody cared to port it and if there is no volunteer it"
362 echo "*** might never happen. So, if you have interest to see glibc on"
363 echo "*** this platform visit"
364 echo "*** http://www.gnu.org/software/libc/porting.html"
365 echo "*** and join the group of porters"
371 dnl We need to use [ and ] for other purposes for a while now.
373 # Expand the configuration machine name into a subdirectory by architecture
374 # type and particular chip.
376 a29k | am29000) base_machine=a29k machine=a29k ;;
377 alpha*) base_machine=alpha machine=alpha/$machine ;;
378 arm*) base_machine=arm machine=arm/arm32/$machine ;;
379 c3[012]) base_machine=cx0 machine=cx0/c30 ;;
380 c4[04]) base_machine=cx0 machine=cx0/c40 ;;
381 hppa*64*) base_machine=hppa machine=hppa/hppa64 ;;
382 hppa*) base_machine=hppa machine=hppa/hppa1.1 ;;
383 i[3456]86) base_machine=i386 machine=i386/$machine ;;
384 ia64) base_machine=ia64 machine=ia64 ;;
385 m680?0) base_machine=m68k machine=m68k/$machine ;;
386 m68k) base_machine=m68k machine=m68k/m68020 ;;
387 m88???) base_machine=m88k machine=m88k/$machine ;;
388 m88k) base_machine=m88k machine=m88k/m88100 ;;
389 mips64*) base_machine=mips64
390 case "$CC $CPPFLAGS $CFLAGS " in
391 *" -mabi=n32 "*) mips_cc_abi=n32 ;;
392 *" -mabi=64 "*|*" -mabi=n64 "*) mips_cc_abi=64 ;;
393 *" -mabi=32 "*|*" -mabi=o32 "*) mips_cc_abi=32 ;;
394 *) mips_cc_abi=default ;;
397 *abin32*) mips_config_abi=n32 ;;
398 *abi64*|*abin64*) mips_config_abi=64 ;;
399 *abi32*|*abio32*) mips_config_abi=32 ;;
400 *) mips_config_abi=$mips_cc_abi ;;
402 case $mips_config_abi in
403 default) machine=mips/mips64/n32 mips_config_abi=n32 ;;
404 n32) machine=mips/mips64/n32 ;;
405 64) machine=mips/mips64/n64 ;;
406 32) machine=mips/mips32/kern64 ;;
408 machine=$machine/$config_machine
409 if test $mips_config_abi != $mips_cc_abi; then
410 # This won't make it to config.make, but we want to
411 # set this in case configure tests depend on it.
412 CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi"
415 mips*) base_machine=mips machine=mips/mips32/$machine ;;
416 powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
417 powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
418 s390) base_machine=s390 machine=s390/s390-32 ;;
419 s390x) base_machine=s390 machine=s390/s390-64 ;;
420 sh3*) base_machine=sh machine=sh/sh3 ;;
421 sh4*) base_machine=sh machine=sh/sh4 ;;
423 base_machine=sparc machine=sparc/sparc32 ;;
424 sparcv8 | supersparc | hypersparc)
425 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
426 sparcv8plus | sparcv8plusa | sparcv9)
427 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
428 sparcv8plusb | sparcv9b)
429 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
430 sparc64 | ultrasparc)
431 base_machine=sparc machine=sparc/sparc64 ;;
432 sparc64b | ultrasparc3)
433 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
434 thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
435 *) base_machine=$machine ;;
438 AC_SUBST(base_machine)
440 if test "$base_machine" = "i386"; then
441 AC_DEFINE(USE_REGPARMS)
444 # Compute the list of sysdep directories for this configuration.
445 # This can take a while to compute.
446 sysdep_dir=$srcdir/sysdeps
447 AC_MSG_CHECKING(sysdep dirs)
448 dnl We need to use [ and ] for other purposes for a while now.
450 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
451 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
456 netbsd* | 386bsd* | freebsd* | bsdi*)
457 base_os=unix/bsd/bsd4.4 ;;
458 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
460 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
463 base_os=unix/sysv/irix6/$os ;;
465 base_os=unix/sysv/sysv4 ;;
467 base_os=unix/sysv/hpux/$os ;;
469 base_os=unix/sysv/aix/aix4.3 ;;
471 base_os=standalone ;;
476 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
479 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
483 o=`echo $tail | sed 's/[0-9]*$//'`
484 if test $o != $tail; then
487 # For linux-gnu, try linux-gnu, then linux.
488 o=`echo $tail | sed 's/-.*$//'`
489 if test $o != $tail; then
493 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
496 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
502 # For sparc/sparc32, try sparc/sparc32 and then sparc.
505 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
507 # Prepend the machine's FPU directory unless --without-fp.
508 if test "$with_fp" = yes; then
511 mach="$mach /$1/nofpu"
517 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
520 # Find what sysdep directories exist.
522 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
523 for d in $add_ons_pfx ''; do
524 for b in $base ''; do
525 for m0 in $mach ''; do
526 for v in /$vendor ''; do
527 test "$v" = / && continue
528 for o in /$ostry ''; do
529 test "$o" = / && continue
530 for m in $mach ''; do
531 if test "$m0$b$v$o$m"; then
532 try="${d}sysdeps$m0$b$v$o$m"
533 test -n "$enable_debug_configure" &&
534 echo "$0 [DEBUG]: try $try" >&2
535 if test -d $srcdir/$try; then
536 sysnames="$sysnames $try"
537 { test -n "$o" || test -n "$b"; } && os_used=t
538 { test -n "$m" || test -n "$m0"; } && machine_used=t
549 if test -z "$os_used" && test "$os" != none; then
550 AC_MSG_ERROR(Operating system $os is not supported.)
552 if test -z "$machine_used" && test "$machine" != none; then
553 AC_MSG_ERROR(The $machine is not supported.)
556 # We have now validated the configuration.
559 # If using ELF, look for an `elf' subdirectory of each machine directory.
560 # We prepend these rather than inserting them whereever the machine appears
561 # because things specified by the machine's ELF ABI should override
562 # OS-specific things, and should always be the same for any OS on the
563 # machine (otherwise what's the point of an ABI?).
564 if test "$elf" = yes; then
566 for d in $add_ons_pfx ''; do
568 if test -d $srcdir/${d}sysdeps$m/elf; then
569 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
573 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
577 # Expand the list of system names into a full list of directories
578 # from each element's parent name and Implies file (if present).
581 while test $# -gt 0; do
585 case " $names " in *" $name "*)
586 # Already in the list.
590 # Report each name as we discover it, so there is no long pause in output.
591 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
593 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
597 *) xsrcdir=$srcdir/ ;;
599 test -n "$enable_debug_configure" &&
600 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
602 if test -f $xsrcdir$name/Implies; then
603 # Collect more names from the `Implies' file (removing comments).
604 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
606 for x in $implied_candidate; do
608 if test -d $xsrcdir$name_base/$x; then
609 implied="$implied $name_base/$x";
612 for d in $add_ons_pfx ''; do
616 *) try_srcdir=$srcdir/ ;;
618 test -n "$enable_debug_configure" &&
619 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
620 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
622 implied="$implied $try"
626 if test $found = no; then
627 AC_MSG_WARN($name/Implies specifies nonexistent $x)
634 # Add NAME to the list of names.
637 # Find the parent of NAME, using the empty string if it has none.
639 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
642 # Add the names implied by NAME, and NAME's parent (if it has one), to
643 # the list of names to be processed (the argument list). We prepend the
644 # implied names to the list and append the parent. We want implied
645 # directories to come before further directories inferred from the
646 # configuration components; this ensures that for sysv4, unix/common
647 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
649 sysnames="`echo $implied $* $parent`"
650 test -n "$sysnames" && set $sysnames
653 # Add the default directories.
654 default_sysnames=sysdeps/generic
655 if test "$elf" = yes; then
656 default_sysnames="sysdeps/generic/elf $default_sysnames"
658 sysnames="$names $default_sysnames"
660 # The other names were emitted during the scan.
661 AC_MSG_RESULT($default_sysnames)
667 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
668 # The makefiles need to use a different form to find it in $srcdir.
669 INSTALL='\$(..)./scripts/install-sh -c'
674 if test $host != $build; then
675 AC_CHECK_PROGS(BUILD_CC, gcc cc)
677 AC_SUBST(cross_compiling)
680 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
682 # Accept binutils 2.13 or newer.
683 AC_CHECK_PROG_VER(AS, $AS, --version,
684 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
685 [2.1[3-9]*], AS=: critic_missing=t)
686 AC_CHECK_PROG_VER(LD, $LD, --version,
687 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
688 [2.1[3-9]*], LD=: critic_missing=t)
690 # We need the physical current working directory. We cannot use the
691 # "pwd -P" shell builtin since that's not portable. Instead we try to
692 # find a pwd binary. Note that assigning to the PWD environment
693 # variable might have some interesting side effects, so we don't do
695 AC_PATH_PROG(PWD_P, pwd, no)
696 if test "$PWD_P" = no; then
697 AC_MSG_ERROR(*** A pwd binary could not be found.)
700 # These programs are version sensitive.
702 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
703 [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
704 critic_missing="$critic_missing gcc")
705 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
706 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
707 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
709 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
710 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
711 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
712 MSGFMT=: aux_missing="$aux_missing msgfmt")
713 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
714 [GNU texinfo.* \([0-9][0-9.]*\)],
716 MAKEINFO=: aux_missing="$aux_missing makeinfo")
717 AC_CHECK_PROG_VER(SED, sed, --version,
718 [GNU sed version \([0-9]*\.[0-9.]*\)],
719 [3.0[2-9]*|3.[1-9]*|[4-9]*],
720 SED=: aux_missing="$aux_missing sed")
722 if test "x$with_cvs" != xyes; then
723 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
725 xno|x|x:) AUTOCONF=no ;;
728 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
729 if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
730 libc_cv_autoconf_works=yes
732 libc_cv_autoconf_works=no
734 test $libc_cv_autoconf_works = yes || AUTOCONF=no
737 test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf"
740 test -n "$critic_missing" && AC_MSG_ERROR([
741 *** These critical programs are missing or too old:$critic_missing
742 *** Check the INSTALL file for required versions.])
744 test -n "$aux_missing" && AC_MSG_WARN([
745 *** These auxiliary programs are missing or incompatible versions:$aux_missing
746 *** some features will be disabled.
747 *** Check the INSTALL file for required versions.])
749 # glibcbug.in wants to know the compiler version.
750 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
753 # if using special system headers, find out the compiler's sekrit
754 # header directory and add that to the list. NOTE: Only does the right
755 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
756 if test -n "$sysheaders"; then
757 ccheaders=`$CC -print-file-name=include`
758 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
760 AC_SUBST(SYSINCLUDES)
762 # check if ranlib is necessary
763 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
764 cat > conftest.c <<EOF
769 $CC $CFLAGS -c conftest.c
770 $AR cr conftest.a conftest.o
771 cp conftest.a conftest2.a
773 if cmp -s conftest.a conftest2.a; then
774 libc_cv_ranlib_necessary=no
776 libc_cv_ranlib_necessary=yes
779 if test "$libc_cv_ranlib_necessary" = no; then
783 # Test if LD_LIBRARY_PATH contains the notation for the current directory
784 # since this would lead to problems installing/building glibc.
785 # LD_LIBRARY_PATH contains the current directory if one of the following
787 # - one of the terminals (":" and ";") is the first or last sign
788 # - two terminals occur directly after each other
789 # - the path contains an element with a dot in it
790 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
792 case ${LD_LIBRARY_PATH} in
793 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
794 ld_library_path_setting="contains current directory"
797 ld_library_path_setting="ok"
801 AC_MSG_RESULT($ld_library_path_setting)
802 if test "$ld_library_path_setting" != "ok"; then
804 *** LD_LIBRARY_PATH shouldn't contain the current directory when
805 *** building glibc. Please change the environment variable
806 *** and run configure again.])
809 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
810 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
811 libc_cv_gcc_static_libgcc=
813 libc_cv_gcc_static_libgcc=-static-libgcc
815 AC_SUBST(libc_cv_gcc_static_libgcc)
817 AC_PATH_PROG(BASH, bash, no)
818 if test "$BASH" != no &&
819 $BASH -c 'test "$BASH_VERSINFO" \
820 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
821 libc_cv_have_bash2=yes
823 libc_cv_have_bash2=no
825 AC_SUBST(libc_cv_have_bash2)
827 dnl We need a ksh compatible shell for tzselect.
828 if test "$BASH" = no; then
829 AC_PATH_PROG(KSH, ksh, no)
830 if test "$KSH" = no; then
840 AC_SUBST(libc_cv_have_ksh)
843 AC_PATH_PROG(PERL, perl, no)
844 if test "$PERL" != no &&
845 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
848 AC_PATH_PROG(INSTALL_INFO, install-info, no,
849 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
850 if test "$INSTALL_INFO" != "no"; then
851 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
853 # There is a hard ^_ on the next line. I am open to better ideas.
855 echo 'File: dir Node: Top This is the top of the INFO tree'
856 echo '* Menu:') >conftest.d/dir
857 (echo 'INFO-DIR-SECTION i-d-s works'
858 echo 'START-INFO-DIR-ENTRY'
859 echo '* Prog: (prog). Program.'
860 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
861 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AS_MESSAGE_LOG_FD 2>&1
863 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
864 then libc_cv_old_debian_install_info=no
865 else libc_cv_old_debian_install_info=yes
867 else libc_cv_old_debian_install_info=no testfailed=t
870 if test -n "$testfailed"
871 then AC_MSG_WARN([install-info errored out, check config.log])
873 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
875 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
877 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
879 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
880 echo '#include <stddef.h>
881 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
882 if eval "$ac_cpp conftest.c 2>/dev/null" \
883 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
884 libc_cv_signed_size_t=no
886 libc_cv_signed_size_t=yes
889 if test $libc_cv_signed_size_t = yes; then
890 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
891 cat >> confdefs.h <<\EOF
893 #define __SIZE_TYPE__ unsigned
897 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
899 [#define __need_size_t
900 #define __need_wchar_t
903 #include <stddef.h>], [size_t size; wchar_t wchar;
905 #error stddef.h ignored __need_*
907 if (&size == NULL || &wchar == NULL) abort ();],
908 libc_cv_friendly_stddef=yes,
909 libc_cv_friendly_stddef=no)])
910 if test $libc_cv_friendly_stddef = yes; then
911 config_vars="$config_vars
912 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
915 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
916 libc_cv_need_minus_P, [dnl
917 cat > conftest.S <<EOF
918 #include "confdefs.h"
919 /* Nothing whatsoever. */
921 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
922 libc_cv_need_minus_P=no
924 libc_cv_need_minus_P=yes
927 if test $libc_cv_need_minus_P = yes; then
928 config_vars="$config_vars
929 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
932 AC_MSG_CHECKING(whether .text pseudo-op must be used)
933 AC_CACHE_VAL(libc_cv_dot_text, [dnl
934 cat > conftest.s <<EOF
938 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
939 libc_cv_dot_text=.text
942 if test -z "$libc_cv_dot_text"; then
948 AC_CACHE_CHECK(for assembler global-symbol directive,
949 libc_cv_asm_global_directive, [dnl
950 libc_cv_asm_global_directive=UNKNOWN
951 for ac_globl in .globl .global .EXPORT; do
952 cat > conftest.s <<EOF
957 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
958 libc_cv_asm_global_directive=${ac_globl}
961 test $libc_cv_asm_global_directive != UNKNOWN && break
963 if test $libc_cv_asm_global_directive = UNKNOWN; then
964 AC_MSG_ERROR(cannot determine asm global directive)
966 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
969 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
970 cat > conftest.s <<EOF
973 .set glibc_conftest_frobozz,foo
974 $libc_cv_asm_global_directive glibc_conftest_frobozz
976 # The alpha-dec-osf1 assembler gives only a warning for `.set'
977 # (but it doesn't work), so we must do a linking check to be sure.
978 cat > conftest1.c <<\EOF
979 extern int glibc_conftest_frobozz;
980 main () { printf ("%d\n", glibc_conftest_frobozz); }
982 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
983 -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
984 libc_cv_asm_set_directive=yes
986 libc_cv_asm_set_directive=no
989 if test $libc_cv_asm_set_directive = yes; then
990 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
993 AC_CACHE_CHECK(for assembler .type directive prefix,
994 libc_cv_asm_type_prefix, [dnl
995 libc_cv_asm_type_prefix=no
996 for ac_try_prefix in '@' '%' '#'; do
997 cat > conftest.s <<EOF
999 ${libc_cv_asm_global_directive} foo
1000 .type foo, ${ac_try_prefix}object
1005 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1006 libc_cv_asm_type_prefix=${ac_try_prefix}
1009 test "x$libc_cv_asm_type_prefix" != xno && break
1011 if test "x$libc_cv_asm_type_prefix" != xno; then
1012 AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1015 # The Aix ld uses global .symbol_names instead of symbol_names.
1016 # Unfortunately also used in the PPC64 ELF ABI.
1017 case "${os}${machine}" in
1018 aix4.3* | linux*powerpc/powerpc64*)
1019 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
1022 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1023 [cat > conftest.s <<EOF
1026 .symver _sym,sym@VERS
1028 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1029 libc_cv_asm_symver_directive=yes
1031 libc_cv_asm_symver_directive=no
1034 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1035 if test $libc_cv_asm_symver_directive = yes; then
1036 cat > conftest.s <<EOF
1039 .symver _sym,sym@VERS
1041 cat > conftest.map <<EOF
1050 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1051 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
1052 -nostartfiles -nostdlib
1053 -Wl,--version-script,conftest.map
1054 1>&AS_MESSAGE_LOG_FD]);
1056 libc_cv_ld_version_script_option=yes
1058 libc_cv_ld_version_script_option=no
1061 libc_cv_ld_version_script_option=no
1064 libc_cv_ld_version_script_option=no
1067 if test $shared != no &&
1068 test $libc_cv_asm_symver_directive = yes &&
1069 test $libc_cv_ld_version_script_option = yes &&
1070 test $enable_versioning = yes; then
1072 AC_DEFINE(DO_VERSIONING)
1076 AC_SUBST(VERSIONING)
1078 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1080 *** WARNING: You should not compile GNU libc without versioning. Not using
1081 *** versioning will introduce incompatibilities so that old binaries
1082 *** will not run anymore.
1083 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1085 if test $elf = yes; then
1086 AC_CACHE_CHECK(for .previous assembler directive,
1087 libc_cv_asm_previous_directive, [dnl
1088 cat > conftest.s <<EOF
1089 .section foo_section
1092 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1093 libc_cv_asm_previous_directive=yes
1095 libc_cv_asm_previous_directive=no
1098 if test $libc_cv_asm_previous_directive = yes; then
1099 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1101 AC_CACHE_CHECK(for .popsection assembler directive,
1102 libc_cv_asm_popsection_directive, [dnl
1103 cat > conftest.s <<EOF
1104 .pushsection foo_section
1107 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1108 libc_cv_asm_popsection_directive=yes
1110 libc_cv_asm_popsection_directive=no
1113 if test $libc_cv_asm_popsection_directive = yes; then
1114 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1117 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1118 libc_cv_asm_protected_directive, [dnl
1119 cat > conftest.s <<EOF
1125 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1126 libc_cv_asm_protected_directive=yes
1128 libc_cv_asm_protected_directive=no
1131 AC_SUBST(libc_cv_asm_protected_directive)
1132 AC_DEFINE(HAVE_PROTECTED)
1133 AC_DEFINE(HAVE_HIDDEN)
1135 if test $libc_cv_asm_protected_directive = yes; then
1136 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1137 libc_cv_visibility_attribute,
1138 [cat > conftest.c <<EOF
1139 int foo __attribute__ ((visibility ("hidden"))) = 1;
1140 int bar __attribute__ ((visibility ("protected"))) = 1;
1142 libc_cv_visibility_attribute=no
1143 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1144 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1145 if grep '\.protected.*bar' conftest.s >/dev/null; then
1146 libc_cv_visibility_attribute=yes
1152 if test $libc_cv_visibility_attribute = yes; then
1153 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1157 if test $libc_cv_visibility_attribute = yes; then
1158 AC_CACHE_CHECK(for broken __attribute__((visibility())),
1159 libc_cv_broken_visibility_attribute,
1160 [cat > conftest.c <<EOF
1162 int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1163 int bar (int x) { return x; }
1165 libc_cv_broken_visibility_attribute=yes
1166 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1168 if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
1170 libc_cv_broken_visibility_attribute=no
1173 rm -f conftest.c conftest.s
1175 if test $libc_cv_broken_visibility_attribute = yes; then
1176 AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1180 AC_CACHE_CHECK(for broken __attribute__((alias())),
1181 libc_cv_broken_alias_attribute,
1182 [cat > conftest.c <<EOF
1183 extern int foo (int x) __asm ("xyzzy");
1184 int bar (int x) { return x; }
1185 extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1187 extern __typeof (dfoo) dfoo __asm ("abccb");
1190 libc_cv_broken_alias_attribute=yes
1191 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1192 if grep 'xyzzy' conftest.s >/dev/null &&
1193 grep 'abccb' conftest.s >/dev/null; then
1194 libc_cv_broken_alias_attribute=no
1197 rm -f conftest.c conftest.s
1199 if test $libc_cv_broken_alias_attribute = yes; then
1200 AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1203 if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1204 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1205 libc_cv_have_sdata_section,
1206 [echo "int i;" > conftest.c
1207 libc_cv_have_sdata_section=no
1208 if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1209 | grep '\.sdata' >/dev/null; then
1210 libc_cv_have_sdata_section=yes
1212 rm -f conftest.c conftest.so
1214 if test $libc_cv_have_sdata_section = yes; then
1215 AC_DEFINE(HAVE_SDATA_SECTION)
1219 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1220 libc_cv_initfinit_array, [dnl
1221 cat > conftest.c <<EOF
1222 int _start (void) { return 0; }
1223 int __start (void) { return 0; }
1224 int foo (void) { return 1; }
1225 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1227 if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1228 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1230 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1231 libc_cv_initfinit_array=yes
1233 libc_cv_initfinit_array=no
1236 libc_cv_initfinit_array=no
1239 AC_SUBST(libc_cv_initfinit_array)
1240 if test $libc_cv_initfinit_array = yes; then
1241 AC_DEFINE(HAVE_INITFINI_ARRAY)
1244 AC_CACHE_CHECK(for -z nodelete option,
1245 libc_cv_z_nodelete, [dnl
1246 cat > conftest.c <<EOF
1247 int _start (void) { return 42; }
1249 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1250 -nostartfiles -nostdlib
1251 -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1253 libc_cv_z_nodelete=yes
1255 libc_cv_z_nodelete=no
1258 AC_SUBST(libc_cv_z_nodelete)
1260 AC_CACHE_CHECK(for -z nodlopen option,
1261 libc_cv_z_nodlopen, [dnl
1262 cat > conftest.c <<EOF
1263 int _start (void) { return 42; }
1265 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1266 -nostartfiles -nostdlib
1267 -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1269 libc_cv_z_nodlopen=yes
1271 libc_cv_z_nodlopen=no
1274 AC_SUBST(libc_cv_z_nodlopen)
1276 AC_CACHE_CHECK(for -z initfirst option,
1277 libc_cv_z_initfirst, [dnl
1278 cat > conftest.c <<EOF
1279 int _start (void) { return 42; }
1281 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1282 -nostartfiles -nostdlib
1283 -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1285 libc_cv_z_initfirst=yes
1287 libc_cv_z_initfirst=no
1290 AC_SUBST(libc_cv_z_initfirst)
1292 AC_CACHE_CHECK(for -Bgroup option,
1293 libc_cv_Bgroup, [dnl
1294 cat > conftest.c <<EOF
1295 int _start (void) { return 42; }
1297 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1304 AC_SUBST(libc_cv_Bgroup)
1306 AC_CACHE_CHECK(for -z combreloc,
1307 libc_cv_z_combreloc, [dnl
1308 cat > conftest.c <<EOF
1309 extern int bar (int);
1311 int foo (void) { return bar (mumble); }
1313 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1314 -nostdlib -nostartfiles
1315 -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1317 dnl The following test is a bit weak. We must use a tool which can test
1318 dnl cross-platform since the gcc used can be a cross compiler. Without
1319 dnl introducing new options this is not easily doable. Instead use a tool
1320 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1321 dnl look for a section named .rel.dyn.
1322 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1323 libc_cv_z_combreloc=yes
1325 libc_cv_z_combreloc=no
1328 libc_cv_z_combreloc=no
1331 if test "$libc_cv_z_combreloc" = yes; then
1332 AC_DEFINE(HAVE_Z_COMBRELOC)
1335 AC_SUBST(libc_cv_z_combreloc)
1337 if test $elf != yes; then
1338 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1339 [AC_TRY_COMPILE(, [asm (".section .init");
1340 asm (".section .fini");
1341 asm ("${libc_cv_dot_text}");],
1342 libc_cv_have_initfini=yes,
1343 libc_cv_have_initfini=no)])
1344 AC_SUBST(libc_cv_have_initfini)dnl
1345 if test $libc_cv_have_initfini = yes; then
1346 AC_DEFINE(HAVE_INITFINI)
1350 if test $elf = yes -a $gnu_ld = yes; then
1351 AC_CACHE_CHECK(whether cc puts quotes around section names,
1352 libc_cv_have_section_quotes,
1353 [cat > conftest.c <<EOF
1354 static const int foo
1355 __attribute__ ((section ("bar"))) = 1;
1357 if ${CC-cc} -S conftest.c -o conftest.s; then
1358 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1359 libc_cv_have_section_quotes=yes
1361 libc_cv_have_section_quotes=no
1364 libc_cv_have_section_quotes=unknown
1368 if test $libc_cv_have_section_quotes = yes; then
1369 AC_DEFINE(HAVE_SECTION_QUOTES)
1373 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1374 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1375 [cat > conftest.$ac_ext <<EOF
1376 dnl This sometimes fails to find confdefs.h, for some reason.
1377 dnl [#]line __oline__ "[$]0"
1378 [#]line __oline__ "configure"
1379 #include "confdefs.h"
1380 void underscore_test(void) {
1383 if AC_TRY_EVAL(ac_compile); then
1384 if grep _underscore_test conftest* >/dev/null; then
1385 ifelse([$1], , :, [rm -f conftest*
1388 ifelse([$2], , , [rm -f conftest*
1392 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1393 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1394 ifelse([$2], , , [rm -f conftest*
1399 if test $elf = yes; then
1400 libc_cv_asm_underscores=no
1402 if test $ac_cv_prog_cc_works = yes; then
1403 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1404 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1405 libc_cv_asm_underscores=yes,
1406 libc_cv_asm_underscores=no)])
1408 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1409 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1410 libc_cv_asm_underscores=no)])
1413 if test $libc_cv_asm_underscores = no; then
1414 AC_DEFINE(NO_UNDERSCORES)
1417 if test $elf = yes; then
1418 libc_cv_weak_symbols=yes
1421 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1423 cat > conftest.s <<EOF
1425 ${libc_cv_asm_global_directive} foo
1428 .weak bar; bar = foo
1430 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1431 libc_cv_asm_weak_directive=yes
1433 libc_cv_asm_weak_directive=no
1437 if test $libc_cv_asm_weak_directive = no; then
1438 AC_CACHE_CHECK(for assembler .weakext directive,
1439 libc_cv_asm_weakext_directive,
1441 cat > conftest.s <<EOF
1443 ${libc_cv_asm_global_directive} foo
1447 ${libc_cv_asm_global_directive} baz
1450 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1451 libc_cv_asm_weakext_directive=yes
1453 libc_cv_asm_weakext_directive=no
1459 if test $libc_cv_asm_weak_directive = yes; then
1460 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1461 elif test $libc_cv_asm_weakext_directive = yes; then
1462 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1465 dnl The standard hppa assembler uses `;' to start comments and `!'
1466 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1468 case "${host_cpu}-${host_os}" in
1470 libc_cv_asm_line_sep='@'
1471 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1474 AC_CACHE_CHECK(for assembler line separator,
1475 libc_cv_asm_line_sep, [dnl
1476 cat > conftest.s <<EOF
1479 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1480 libc_cv_asm_line_sep='!'
1482 if test -z "$enable_hacker_mode"; then
1483 echo "*** You need a newer assembler to compile glibc"
1487 libc_cv_asm_line_sep=';'
1490 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1494 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1495 libc_cv_cpp_asm_debuginfo, [dnl
1496 cat > conftest.S <<EOF
1497 #include "confdefs.h"
1502 ${libc_cv_asm_global_directive} foo
1504 /* Unfortunately this test only works for a real instruction,
1505 not for any of the machine-independent pseudo-ops.
1506 So we just have to assume everybody has a "nop". */
1513 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1514 ac_pattern='conftest\.S'
1515 AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1516 grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1517 libc_cv_cpp_asm_debuginfo=yes
1519 libc_cv_cpp_asm_debuginfo=no
1521 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1522 if test $libc_cv_cpp_asm_debuginfo = yes; then
1523 AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1526 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1527 cat > conftest.c <<\EOF
1532 dnl No \ in command here because it ends up inside ''.
1533 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1534 -nostdlib -nostartfiles -Wl,--no-whole-archive
1535 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1536 libc_cv_ld_no_whole_archive=yes
1538 libc_cv_ld_no_whole_archive=no
1541 if test $libc_cv_ld_no_whole_archive = yes; then
1542 no_whole_archive=-Wl,--no-whole-archive
1544 AC_SUBST(no_whole_archive)dnl
1546 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1547 cat > conftest.c <<\EOF
1552 dnl No \ in command here because it ends up inside ''.
1553 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1554 -nostdlib -nostartfiles -fexceptions
1555 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1556 libc_cv_gcc_exceptions=yes
1558 libc_cv_gcc_exceptions=no
1561 if test $libc_cv_gcc_exceptions = yes; then
1562 exceptions=-fexceptions
1564 AC_SUBST(exceptions)dnl
1566 if test "$host_cpu" = powerpc ; then
1567 # Check for a bug present in at least versions 2.8.x of GCC
1568 # and versions 1.0.x of EGCS.
1569 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1570 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1571 libc_cv_c_asmcr0_bug='no',
1572 libc_cv_c_asmcr0_bug='yes')])
1573 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1574 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1578 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1579 [cat > conftest.c <<EOF
1580 #line __oline__ "configure"
1581 static char *__EH_FRAME_BEGIN__;
1584 #ifdef CHECK__register_frame
1585 __register_frame (__EH_FRAME_BEGIN__);
1586 __deregister_frame (__EH_FRAME_BEGIN__);
1588 #ifdef CHECK__register_frame_info
1589 __register_frame_info (__EH_FRAME_BEGIN__);
1590 __deregister_frame_info (__EH_FRAME_BEGIN__);
1595 /* FIXME: this is fragile. */
1604 dl_iterate_phdr () {}
1606 dnl No \ in command here because it ends up inside ''.
1607 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1608 -nostdlib -nostartfiles
1609 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1610 libc_cv_gcc_dwarf2_unwind_info=static
1612 libc_cv_gcc_dwarf2_unwind_info=no
1614 # Some platforms' specs put -lgcc first. The second one doesn't hurt.
1615 libc_unwind_check="${CC-cc} $CFLAGS -DCHECK__register_frame_info \
1616 -nostdlib -nostartfiles -o conftest conftest.c \
1617 -lgcc -lgcc_eh -lgcc"
1618 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]); then
1619 if $libc_unwind_check -v 2>&1 >/dev/null \
1620 | grep -q -- --eh-frame-hdr; then
1621 libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1623 libc_cv_gcc_dwarf2_unwind_info=static
1626 libc_cv_gcc_dwarf2_unwind_info=no
1628 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1629 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1630 -nostdlib -nostartfiles
1631 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1632 libc_cv_gcc_dwarf2_unwind_info=yes
1634 libc_cv_gcc_dwarf2_unwind_info=no
1638 case $libc_cv_gcc_dwarf2_unwind_info in
1640 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1643 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1644 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1648 dnl Check whether compiler understands __builtin_expect.
1649 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1650 [cat > conftest.c <<EOF
1651 #line __oline__ "configure"
1654 a = __builtin_expect (a, 10);
1655 return a == 10 ? 0 : 1;
1658 dnl No \ in command here because it ends up inside ''.
1659 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1660 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1661 libc_cv_gcc_builtin_expect=yes
1663 libc_cv_gcc_builtin_expect=no
1666 if test "$libc_cv_gcc_builtin_expect" = yes; then
1667 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1670 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1671 cat > conftest.c <<\EOF
1674 __builtin_memset (x, 0, 1000);
1678 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1680 libc_cv_gcc_builtin_memset=no
1682 libc_cv_gcc_builtin_memset=yes
1685 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1686 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1689 dnl Check whether the compiler supports subtraction of local labels.
1690 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1691 [cat > conftest.c <<EOF
1693 #line __oline__ "configure"
1696 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1697 void *p = &&l1 + ar[a];
1706 dnl No \ in command here because it ends up inside ''.
1707 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1708 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1709 libc_cv_gcc_subtract_local_labels=yes
1711 libc_cv_gcc_subtract_local_labels=no
1714 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1715 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1718 dnl Check whether the compiler supports the __thread keyword.
1719 if test "x$use__thread" != xno; then
1720 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1721 [cat > conftest.c <<\EOF
1722 __thread int a = 42;
1724 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1725 libc_cv_gcc___thread=yes
1727 libc_cv_gcc___thread=no
1730 if test "$libc_cv_gcc___thread" = yes; then
1731 AC_DEFINE(HAVE___THREAD)
1734 libc_cv_gcc___thread=no
1737 if test "$libc_cv_gcc___thread" = yes; then
1738 dnl Check whether the compiler supports the tls_model attribute.
1739 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1740 cat > conftest.c <<\EOF
1741 extern __thread int a __attribute__((tls_model ("initial-exec")));
1743 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1744 libc_cv_gcc_tls_model_attr=yes
1746 libc_cv_gcc_tls_model_attr=no
1749 if test "$libc_cv_gcc_tls_model_attr" = yes; then
1750 AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1754 dnl Check whether we have the gd library available.
1755 AC_MSG_CHECKING(for libgd)
1756 if test "$with_gd" != "no"; then
1757 old_CFLAGS="$CFLAGS"
1758 CFLAGS="$CFLAGS $libgd_include"
1759 old_LDFLAGS="$LDFLAGS"
1760 LDFLAGS="$LDFLAGS $libgd_ldflags"
1762 LIBS="$LIBS -lgd -lpng -lz -lm"
1763 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1764 CFLAGS="$old_CFLAGS"
1765 LDFLAGS="$old_LDFLAGS"
1770 AC_MSG_RESULT($LIBGD)
1773 dnl check for the size of 'long double'.
1774 AC_CHECK_SIZEOF(long double, 0)
1775 sizeof_long_double=$ac_cv_sizeof_long_double
1776 AC_SUBST(sizeof_long_double)
1778 ### End of automated tests.
1779 ### Now run sysdeps configure fragments.
1781 # They also can set these variables.
1783 ldd_rewrite_script=no
1784 libc_cv_sysconfdir=$sysconfdir
1785 libc_cv_gcc_unwind_find_fde=no
1787 # Iterate over all the sysdep directories we will use, running their
1788 # configure fragments, and looking for a uname implementation.
1790 for dir in $sysnames; do
1793 *) dest=$srcdir/$dir ;;
1795 if test -r $dest/configure; then
1796 AC_MSG_RESULT(running configure fragment for $dir)
1800 if test -z "$uname"; then
1801 if test -r $dest/uname.c ||
1802 test -r $dest/uname.S ||
1803 { test -r $dest/syscalls.list &&
1804 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1811 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1812 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1814 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1816 # If we will use the generic uname implementation, we must figure out what
1817 # it will say by examining the system, and write the results in config-name.h.
1818 if test "$uname" = "sysdeps/generic"; then
1821 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1823 if test $uname_sysname != $config_os; then
1824 config_release=`echo $config_os | sed s/$uname_sysname//`
1827 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1828 if test -r /vmunix; then
1829 kernel_id=`strings /vmunix | grep UNIX`
1830 elif test -r /dynix; then
1831 kernel_id=`strings /dynix | grep DYNIX`
1837 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1840 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1842 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1843 != x$config_release; then
1844 # The configuration release is a substring of the kernel release.
1845 libc_cv_uname_release=$kernel_release
1846 elif test x$config_release != x; then
1847 libc_cv_uname_release=$config_release
1848 elif test x$kernel_release != x; then
1849 libc_cv_uname_release=$kernel_release
1851 libc_cv_uname_release=unknown
1853 uname_release="$libc_cv_uname_release"
1855 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1858 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1860 if test -n "$kernel_version"; then
1861 libc_cv_uname_version="$kernel_version"
1863 libc_cv_uname_version=unknown
1865 uname_version="$libc_cv_uname_version"
1867 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1868 config_uname=config-name.h:config-name.in
1870 # For non-generic uname, we don't need to create config-name.h at all.
1874 dnl This is tested by existing code and it's simpler to avoid changing it.
1875 AC_DEFINE(USE_IN_LIBIO)
1877 # Test for old glibc 2.0.x headers so that they can be removed properly
1878 # Search only in includedir.
1879 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1880 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1882 old_glibc_headers=yes
1884 old_glibc_headers=no
1886 AC_MSG_RESULT($old_glibc_headers)
1887 if test ${old_glibc_headers} = yes; then
1888 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1889 AC_MSG_WARN(*** be removed.)
1891 AC_SUBST(old_glibc_headers)
1893 AC_SUBST(libc_cv_slibdir)
1894 AC_SUBST(libc_cv_localedir)
1895 AC_SUBST(libc_cv_sysconfdir)
1896 AC_SUBST(libc_cv_rootsbindir)
1898 AC_SUBST(use_ldconfig)
1899 AC_SUBST(ldd_rewrite_script)
1901 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1902 if test $gnu_ld = yes; then
1903 AC_DEFINE(HAVE_GNU_LD)
1905 if test $gnu_as = yes; then
1906 AC_DEFINE(HAVE_GNU_AS)
1908 if test $elf = yes; then
1911 if test $xcoff = yes; then
1912 AC_DEFINE(HAVE_XCOFF)
1917 if test $shared = default; then
1918 if test $gnu_ld = yes; then
1921 # For now we do not assume shared libs are available. In future more
1922 # tests might become available.
1927 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1929 cat > conftest.c <<EOF
1930 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1931 # error PIC is default.
1934 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
1938 AC_SUBST(pic_default)
1943 AC_SUBST(static_nss)
1944 AC_SUBST(nopic_initfini)
1949 *door*) linux_doors=yes ;;
1950 *) linux_doors=no ;;
1952 AC_SUBST(linux_doors)
1954 dnl See sysdeps/mach/configure.in for this variable.
1955 AC_SUBST(mach_interface_list)
1957 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1960 config_makefile=Makefile
1963 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1964 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1968 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
1969 AC_CONFIG_COMMANDS([default],[[
1970 case $CONFIG_FILES in *config.make*)
1971 echo "$config_vars" >> config.make;;
1973 test -d bits || mkdir bits]],[[config_vars='$config_vars']])