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 $CFLAGS $CPPFLAGS " 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)
679 # We need the C++ compiler only for testing.
682 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
684 # Accept binutils 2.13 or newer.
685 AC_CHECK_PROG_VER(AS, $AS, --version,
686 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
687 [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
688 AC_CHECK_PROG_VER(LD, $LD, --version,
689 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
690 [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
692 # We need the physical current working directory. We cannot use the
693 # "pwd -P" shell builtin since that's not portable. Instead we try to
694 # find a pwd binary. Note that assigning to the PWD environment
695 # variable might have some interesting side effects, so we don't do
697 AC_PATH_PROG(PWD_P, pwd, no)
698 if test "$PWD_P" = no; then
699 AC_MSG_ERROR(*** A pwd binary could not be found.)
702 # These programs are version sensitive.
704 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
705 [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
706 critic_missing="$critic_missing gcc")
707 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
708 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
709 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
711 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
712 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
713 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
714 MSGFMT=: aux_missing="$aux_missing msgfmt")
715 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
716 [GNU texinfo.* \([0-9][0-9.]*\)],
718 MAKEINFO=: aux_missing="$aux_missing makeinfo")
719 AC_CHECK_PROG_VER(SED, sed, --version,
720 [GNU sed version \([0-9]*\.[0-9.]*\)],
721 [3.0[2-9]*|3.[1-9]*|[4-9]*],
722 SED=: aux_missing="$aux_missing sed")
724 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
726 xno|x|x:) AUTOCONF=no ;;
729 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
730 if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
731 libc_cv_autoconf_works=yes
733 libc_cv_autoconf_works=no
735 test $libc_cv_autoconf_works = yes || AUTOCONF=no
738 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
739 # If --without-cvs they probably won't change configure.in, so no complaints.
740 aux_missing="$aux_missing autoconf"
743 test -n "$critic_missing" && AC_MSG_ERROR([
744 *** These critical programs are missing or too old:$critic_missing
745 *** Check the INSTALL file for required versions.])
747 test -n "$aux_missing" && AC_MSG_WARN([
748 *** These auxiliary programs are missing or incompatible versions:$aux_missing
749 *** some features will be disabled.
750 *** Check the INSTALL file for required versions.])
752 # glibcbug.in wants to know the compiler version.
753 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
756 # if using special system headers, find out the compiler's sekrit
757 # header directory and add that to the list. NOTE: Only does the right
758 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
759 if test -n "$sysheaders"; then
760 ccheaders=`$CC -print-file-name=include`
761 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
763 AC_SUBST(SYSINCLUDES)
765 # check if ranlib is necessary
766 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
767 cat > conftest.c <<EOF
772 $CC $CFLAGS $CPPFLAGS -c conftest.c
773 $AR cr conftest.a conftest.o
774 cp conftest.a conftest2.a
776 if cmp -s conftest.a conftest2.a; then
777 libc_cv_ranlib_necessary=no
779 libc_cv_ranlib_necessary=yes
782 if test "$libc_cv_ranlib_necessary" = no; then
786 # Test if LD_LIBRARY_PATH contains the notation for the current directory
787 # since this would lead to problems installing/building glibc.
788 # LD_LIBRARY_PATH contains the current directory if one of the following
790 # - one of the terminals (":" and ";") is the first or last sign
791 # - two terminals occur directly after each other
792 # - the path contains an element with a dot in it
793 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
795 case ${LD_LIBRARY_PATH} in
796 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
797 ld_library_path_setting="contains current directory"
800 ld_library_path_setting="ok"
804 AC_MSG_RESULT($ld_library_path_setting)
805 if test "$ld_library_path_setting" != "ok"; then
807 *** LD_LIBRARY_PATH shouldn't contain the current directory when
808 *** building glibc. Please change the environment variable
809 *** and run configure again.])
812 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
813 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
814 libc_cv_gcc_static_libgcc=
816 libc_cv_gcc_static_libgcc=-static-libgcc
818 AC_SUBST(libc_cv_gcc_static_libgcc)
820 AC_PATH_PROG(BASH, bash, no)
821 if test "$BASH" != no &&
822 $BASH -c 'test "$BASH_VERSINFO" \
823 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
824 libc_cv_have_bash2=yes
826 libc_cv_have_bash2=no
828 AC_SUBST(libc_cv_have_bash2)
830 dnl We need a ksh compatible shell for tzselect.
831 if test "$BASH" = no; then
832 AC_PATH_PROG(KSH, ksh, no)
833 if test "$KSH" = no; then
843 AC_SUBST(libc_cv_have_ksh)
846 AC_PATH_PROG(PERL, perl, no)
847 if test "$PERL" != no &&
848 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
851 AC_PATH_PROG(INSTALL_INFO, install-info, no,
852 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
853 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
855 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
856 echo '#include <stddef.h>
857 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
858 if eval "$ac_cpp conftest.c 2>/dev/null" \
859 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
860 libc_cv_signed_size_t=no
862 libc_cv_signed_size_t=yes
865 if test $libc_cv_signed_size_t = yes; then
866 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
867 cat >> confdefs.h <<\EOF
869 #define __SIZE_TYPE__ unsigned
873 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
875 [#define __need_size_t
876 #define __need_wchar_t
879 #include <stddef.h>], [size_t size; wchar_t wchar;
881 #error stddef.h ignored __need_*
883 if (&size == NULL || &wchar == NULL) abort ();],
884 libc_cv_friendly_stddef=yes,
885 libc_cv_friendly_stddef=no)])
886 if test $libc_cv_friendly_stddef = yes; then
887 config_vars="$config_vars
888 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
891 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
892 libc_cv_need_minus_P, [dnl
893 cat > conftest.S <<EOF
894 #include "confdefs.h"
895 /* Nothing whatsoever. */
897 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
898 libc_cv_need_minus_P=no
900 libc_cv_need_minus_P=yes
903 if test $libc_cv_need_minus_P = yes; then
904 config_vars="$config_vars
905 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
908 AC_MSG_CHECKING(whether .text pseudo-op must be used)
909 AC_CACHE_VAL(libc_cv_dot_text, [dnl
910 cat > conftest.s <<EOF
914 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
915 libc_cv_dot_text=.text
918 if test -z "$libc_cv_dot_text"; then
924 AC_CACHE_CHECK(for assembler global-symbol directive,
925 libc_cv_asm_global_directive, [dnl
926 libc_cv_asm_global_directive=UNKNOWN
927 for ac_globl in .globl .global .EXPORT; do
928 cat > conftest.s <<EOF
933 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
934 libc_cv_asm_global_directive=${ac_globl}
937 test $libc_cv_asm_global_directive != UNKNOWN && break
939 if test $libc_cv_asm_global_directive = UNKNOWN; then
940 AC_MSG_ERROR(cannot determine asm global directive)
942 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
945 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
946 cat > conftest.s <<EOF
949 .set glibc_conftest_frobozz,foo
950 $libc_cv_asm_global_directive glibc_conftest_frobozz
952 # The alpha-dec-osf1 assembler gives only a warning for `.set'
953 # (but it doesn't work), so we must do a linking check to be sure.
954 cat > conftest1.c <<\EOF
955 extern int glibc_conftest_frobozz;
956 void _start() { glibc_conftest_frobozz = 1; }
958 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
959 -nostartfiles -nostdlib \
960 -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
961 libc_cv_asm_set_directive=yes
963 libc_cv_asm_set_directive=no
966 if test $libc_cv_asm_set_directive = yes; then
967 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
970 AC_CACHE_CHECK(for assembler .type directive prefix,
971 libc_cv_asm_type_prefix, [dnl
972 libc_cv_asm_type_prefix=no
973 for ac_try_prefix in '@' '%' '#'; do
974 cat > conftest.s <<EOF
976 ${libc_cv_asm_global_directive} foo
977 .type foo, ${ac_try_prefix}object
982 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
983 libc_cv_asm_type_prefix=${ac_try_prefix}
986 test "x$libc_cv_asm_type_prefix" != xno && break
988 if test "x$libc_cv_asm_type_prefix" != xno; then
989 AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
992 # The Aix ld uses global .symbol_names instead of symbol_names.
993 # Unfortunately also used in the PPC64 ELF ABI.
994 case "${os}${machine}" in
995 aix4.3* | linux*powerpc/powerpc64*)
996 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
999 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1000 [cat > conftest.s <<EOF
1003 .symver _sym,sym@VERS
1005 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1006 libc_cv_asm_symver_directive=yes
1008 libc_cv_asm_symver_directive=no
1011 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1012 if test $libc_cv_asm_symver_directive = yes; then
1013 cat > conftest.s <<EOF
1016 .symver _sym,sym@VERS
1018 cat > conftest.map <<EOF
1027 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1028 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1029 -o conftest.so conftest.o
1030 -nostartfiles -nostdlib
1031 -Wl,--version-script,conftest.map
1032 1>&AS_MESSAGE_LOG_FD]);
1034 libc_cv_ld_version_script_option=yes
1036 libc_cv_ld_version_script_option=no
1039 libc_cv_ld_version_script_option=no
1042 libc_cv_ld_version_script_option=no
1045 if test $shared != no &&
1046 test $libc_cv_asm_symver_directive = yes &&
1047 test $libc_cv_ld_version_script_option = yes &&
1048 test $enable_versioning = yes; then
1050 AC_DEFINE(DO_VERSIONING)
1054 AC_SUBST(VERSIONING)
1056 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1058 *** WARNING: You should not compile GNU libc without versioning. Not using
1059 *** versioning will introduce incompatibilities so that old binaries
1060 *** will not run anymore.
1061 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1063 if test $elf = yes; then
1064 AC_CACHE_CHECK(for .previous assembler directive,
1065 libc_cv_asm_previous_directive, [dnl
1066 cat > conftest.s <<EOF
1067 .section foo_section
1070 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1071 libc_cv_asm_previous_directive=yes
1073 libc_cv_asm_previous_directive=no
1076 if test $libc_cv_asm_previous_directive = yes; then
1077 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1079 AC_CACHE_CHECK(for .popsection assembler directive,
1080 libc_cv_asm_popsection_directive, [dnl
1081 cat > conftest.s <<EOF
1082 .pushsection foo_section
1085 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1086 libc_cv_asm_popsection_directive=yes
1088 libc_cv_asm_popsection_directive=no
1091 if test $libc_cv_asm_popsection_directive = yes; then
1092 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1095 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1096 libc_cv_asm_protected_directive, [dnl
1097 cat > conftest.s <<EOF
1103 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1104 libc_cv_asm_protected_directive=yes
1106 libc_cv_asm_protected_directive=no
1109 AC_SUBST(libc_cv_asm_protected_directive)
1110 AC_DEFINE(HAVE_PROTECTED)
1111 AC_DEFINE(HAVE_HIDDEN)
1113 if test $libc_cv_asm_protected_directive = yes; then
1114 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1115 libc_cv_visibility_attribute,
1116 [cat > conftest.c <<EOF
1117 int foo __attribute__ ((visibility ("hidden"))) = 1;
1118 int bar __attribute__ ((visibility ("protected"))) = 1;
1120 libc_cv_visibility_attribute=no
1121 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1122 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1123 if grep '\.protected.*bar' conftest.s >/dev/null; then
1124 libc_cv_visibility_attribute=yes
1130 if test $libc_cv_visibility_attribute = yes; then
1131 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1135 if test $libc_cv_visibility_attribute = yes; then
1136 AC_CACHE_CHECK(for broken __attribute__((visibility())),
1137 libc_cv_broken_visibility_attribute,
1138 [cat > conftest.c <<EOF
1140 int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1141 int bar (int x) { return x; }
1143 libc_cv_broken_visibility_attribute=yes
1144 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1146 if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
1148 libc_cv_broken_visibility_attribute=no
1151 rm -f conftest.c conftest.s
1153 if test $libc_cv_broken_visibility_attribute = yes; then
1154 AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1158 AC_CACHE_CHECK(for broken __attribute__((alias())),
1159 libc_cv_broken_alias_attribute,
1160 [cat > conftest.c <<EOF
1161 extern int foo (int x) __asm ("xyzzy");
1162 int bar (int x) { return x; }
1163 extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1165 extern __typeof (dfoo) dfoo __asm ("abccb");
1168 libc_cv_broken_alias_attribute=yes
1169 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1170 if grep 'xyzzy' conftest.s >/dev/null &&
1171 grep 'abccb' conftest.s >/dev/null; then
1172 libc_cv_broken_alias_attribute=no
1175 rm -f conftest.c conftest.s
1177 if test $libc_cv_broken_alias_attribute = yes; then
1178 AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1181 if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1182 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1183 libc_cv_have_sdata_section,
1184 [echo "int i;" > conftest.c
1185 libc_cv_have_sdata_section=no
1186 if ${CC-cc} $LDFLAGS -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1187 | grep '\.sdata' >/dev/null; then
1188 libc_cv_have_sdata_section=yes
1190 rm -f conftest.c conftest.so
1192 if test $libc_cv_have_sdata_section = yes; then
1193 AC_DEFINE(HAVE_SDATA_SECTION)
1197 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1198 libc_cv_initfinit_array, [dnl
1199 cat > conftest.c <<EOF
1200 int _start (void) { return 0; }
1201 int __start (void) { return 0; }
1202 int foo (void) { return 1; }
1203 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1205 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1206 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1208 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1209 libc_cv_initfinit_array=yes
1211 libc_cv_initfinit_array=no
1214 libc_cv_initfinit_array=no
1217 AC_SUBST(libc_cv_initfinit_array)
1218 if test $libc_cv_initfinit_array = yes; then
1219 AC_DEFINE(HAVE_INITFINI_ARRAY)
1222 AC_CACHE_CHECK(for libunwind-support in compiler,
1223 libc_cv_cc_with_libunwind, [dnl
1224 AC_TRY_LINK([#include <libunwind.h>], [
1227 unw_getcontext (&uc);
1228 unw_init_local (&c, &uc)],
1229 libc_cv_cc_with_libunwind=yes, libc_cv_cc_with_libunwind=no)])
1230 AC_SUBST(libc_cv_cc_with_libunwind)
1231 if test $libc_cv_cc_with_libunwind = yes; then
1232 AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1235 AC_CACHE_CHECK(for -z nodelete option,
1236 libc_cv_z_nodelete, [dnl
1237 cat > conftest.c <<EOF
1238 int _start (void) { return 42; }
1240 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1241 -shared -o conftest.so conftest.c
1242 -nostartfiles -nostdlib
1243 -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1245 libc_cv_z_nodelete=yes
1247 libc_cv_z_nodelete=no
1250 AC_SUBST(libc_cv_z_nodelete)
1252 AC_CACHE_CHECK(for -z nodlopen option,
1253 libc_cv_z_nodlopen, [dnl
1254 cat > conftest.c <<EOF
1255 int _start (void) { return 42; }
1257 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1258 -shared -o conftest.so conftest.c
1259 -nostartfiles -nostdlib
1260 -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1262 libc_cv_z_nodlopen=yes
1264 libc_cv_z_nodlopen=no
1267 AC_SUBST(libc_cv_z_nodlopen)
1269 AC_CACHE_CHECK(for -z initfirst option,
1270 libc_cv_z_initfirst, [dnl
1271 cat > conftest.c <<EOF
1272 int _start (void) { return 42; }
1274 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1275 -shared -o conftest.so conftest.c
1276 -nostartfiles -nostdlib
1277 -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1279 libc_cv_z_initfirst=yes
1281 libc_cv_z_initfirst=no
1284 AC_SUBST(libc_cv_z_initfirst)
1286 AC_CACHE_CHECK(for -Bgroup option,
1287 libc_cv_Bgroup, [dnl
1288 cat > conftest.c <<EOF
1289 int _start (void) { return 42; }
1291 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1292 -shared -o conftest.so conftest.c
1293 -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1300 AC_SUBST(libc_cv_Bgroup)
1303 AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1304 libc_cv_as_noexecstack, [dnl
1305 cat > conftest.c <<EOF
1308 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1309 -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1310 && grep -q .note.GNU-stack conftest.s \
1311 && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1312 -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1314 libc_cv_as_noexecstack=yes
1316 libc_cv_as_noexecstack=no
1319 if test $libc_cv_as_noexecstack = yes; then
1320 ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1322 AC_SUBST(ASFLAGS_config)
1324 AC_CACHE_CHECK(for -z combreloc,
1325 libc_cv_z_combreloc, [dnl
1326 cat > conftest.c <<EOF
1327 extern int bar (int);
1329 int foo (void) { return bar (mumble); }
1331 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1332 -shared -o conftest.so conftest.c
1333 -nostdlib -nostartfiles
1334 -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1336 dnl The following test is a bit weak. We must use a tool which can test
1337 dnl cross-platform since the gcc used can be a cross compiler. Without
1338 dnl introducing new options this is not easily doable. Instead use a tool
1339 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1340 dnl look for a section named .rel.dyn.
1341 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1342 libc_cv_z_combreloc=yes
1344 libc_cv_z_combreloc=no
1347 libc_cv_z_combreloc=no
1350 if test "$libc_cv_z_combreloc" = yes; then
1351 AC_DEFINE(HAVE_Z_COMBRELOC)
1353 AC_SUBST(libc_cv_z_combreloc)
1355 AC_CACHE_CHECK(for -z execstack,
1356 libc_cv_z_execstack, [dnl
1357 cat > conftest.c <<EOF
1358 int _start (void) { return 42; }
1360 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1361 -shared -o conftest.so conftest.c
1362 -Wl,-z,execstack -nostdlib
1363 1>&AS_MESSAGE_LOG_FD])
1365 libc_cv_z_execstack=yes
1367 libc_cv_z_execstack=no
1370 AC_SUBST(libc_cv_z_execstack)
1372 AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1373 cat > conftest.c <<EOF
1375 main () { return 0;}
1377 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1378 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1386 AC_SUBST(libc_cv_fpie)
1389 AC_CACHE_CHECK(for -fno-unit-at-a-time, libc_cv_fno_unit_at_a_time, [dnl
1390 cat > conftest.c <<EOF
1393 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
1394 conftest.c 1>&AS_MESSAGE_LOG_FD])
1396 libc_cv_fno_unit_at_a_time=yes
1398 libc_cv_fno_unit_at_a_time=no
1401 if test $libc_cv_fno_unit_at_a_time = yes; then
1402 fno_unit_at_a_time=-fno-unit-at-a-time
1404 AC_SUBST(fno_unit_at_a_time)
1406 if test $elf != yes; then
1407 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1408 [AC_TRY_COMPILE(, [asm (".section .init");
1409 asm (".section .fini");
1410 asm ("${libc_cv_dot_text}");],
1411 libc_cv_have_initfini=yes,
1412 libc_cv_have_initfini=no)])
1413 AC_SUBST(libc_cv_have_initfini)dnl
1414 if test $libc_cv_have_initfini = yes; then
1415 AC_DEFINE(HAVE_INITFINI)
1419 if test $elf = yes -a $gnu_ld = yes; then
1420 AC_CACHE_CHECK(whether cc puts quotes around section names,
1421 libc_cv_have_section_quotes,
1422 [cat > conftest.c <<EOF
1423 static const int foo
1424 __attribute__ ((section ("bar"))) = 1;
1426 if ${CC-cc} -S conftest.c -o conftest.s; then
1427 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1428 libc_cv_have_section_quotes=yes
1430 libc_cv_have_section_quotes=no
1433 libc_cv_have_section_quotes=unknown
1437 if test $libc_cv_have_section_quotes = yes; then
1438 AC_DEFINE(HAVE_SECTION_QUOTES)
1442 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1443 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1444 [cat > conftest.$ac_ext <<EOF
1445 dnl This sometimes fails to find confdefs.h, for some reason.
1446 dnl [#]line $LINENO "[$]0"
1447 [#]line $LINENO "configure"
1448 #include "confdefs.h"
1449 void underscore_test(void) {
1452 if AC_TRY_EVAL(ac_compile); then
1453 if grep _underscore_test conftest* >/dev/null; then
1454 ifelse([$1], , :, [rm -f conftest*
1457 ifelse([$2], , , [rm -f conftest*
1461 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1462 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1463 ifelse([$2], , , [rm -f conftest*
1468 if test $elf = yes; then
1469 libc_cv_asm_underscores=no
1471 if test $ac_cv_prog_cc_works = yes; then
1472 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1473 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1474 libc_cv_asm_underscores=yes,
1475 libc_cv_asm_underscores=no)])
1477 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1478 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1479 libc_cv_asm_underscores=no)])
1482 if test $libc_cv_asm_underscores = no; then
1483 AC_DEFINE(NO_UNDERSCORES)
1486 if test $elf = yes; then
1487 libc_cv_weak_symbols=yes
1490 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1492 cat > conftest.s <<EOF
1494 ${libc_cv_asm_global_directive} foo
1497 .weak bar; bar = foo
1499 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1500 libc_cv_asm_weak_directive=yes
1502 libc_cv_asm_weak_directive=no
1506 if test $libc_cv_asm_weak_directive = no; then
1507 AC_CACHE_CHECK(for assembler .weakext directive,
1508 libc_cv_asm_weakext_directive,
1510 cat > conftest.s <<EOF
1512 ${libc_cv_asm_global_directive} foo
1516 ${libc_cv_asm_global_directive} baz
1519 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1520 libc_cv_asm_weakext_directive=yes
1522 libc_cv_asm_weakext_directive=no
1528 if test $libc_cv_asm_weak_directive = yes; then
1529 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1530 elif test $libc_cv_asm_weakext_directive = yes; then
1531 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1534 dnl The standard hppa assembler uses `;' to start comments and `!'
1535 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1537 case "${host_cpu}-${host_os}" in
1539 libc_cv_asm_line_sep='@'
1540 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1543 AC_CACHE_CHECK(for assembler line separator,
1544 libc_cv_asm_line_sep, [dnl
1545 cat > conftest.s <<EOF
1548 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1549 libc_cv_asm_line_sep='!'
1551 if test -z "$enable_hacker_mode"; then
1552 echo "*** You need a newer assembler to compile glibc"
1556 libc_cv_asm_line_sep=';'
1559 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1563 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1564 cat > conftest.s <<EOF
1566 .type func,@function
1570 .cfi_rel_offset 1, 0
1573 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1574 libc_cv_asm_cfi_directives=yes
1576 libc_cv_asm_cfi_directives=no
1579 if test $libc_cv_asm_cfi_directives = yes; then
1580 AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1583 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1584 libc_cv_cpp_asm_debuginfo, [dnl
1585 cat > conftest.S <<EOF
1586 #include "confdefs.h"
1591 ${libc_cv_asm_global_directive} foo
1593 /* Unfortunately this test only works for a real instruction,
1594 not for any of the machine-independent pseudo-ops.
1595 So we just have to assume everybody has a "nop". */
1602 if AC_TRY_COMMAND([${CC-cc} $CPPFLAGS $ASFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1603 ac_pattern='conftest\.S'
1604 AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1605 grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1606 libc_cv_cpp_asm_debuginfo=yes
1608 libc_cv_cpp_asm_debuginfo=no
1610 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1611 if test $libc_cv_cpp_asm_debuginfo = yes; then
1612 AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1615 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1616 cat > conftest.c <<\EOF
1621 dnl No \ in command here because it ends up inside ''.
1622 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1623 -nostdlib -nostartfiles -Wl,--no-whole-archive
1624 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1625 libc_cv_ld_no_whole_archive=yes
1627 libc_cv_ld_no_whole_archive=no
1630 if test $libc_cv_ld_no_whole_archive = yes; then
1631 no_whole_archive=-Wl,--no-whole-archive
1633 AC_SUBST(no_whole_archive)dnl
1635 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1636 cat > conftest.c <<\EOF
1641 dnl No \ in command here because it ends up inside ''.
1642 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1643 -nostdlib -nostartfiles -fexceptions
1644 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1645 libc_cv_gcc_exceptions=yes
1647 libc_cv_gcc_exceptions=no
1650 if test $libc_cv_gcc_exceptions = yes; then
1651 exceptions=-fexceptions
1653 AC_SUBST(exceptions)dnl
1655 if test "$host_cpu" = powerpc ; then
1656 # Check for a bug present in at least versions 2.8.x of GCC
1657 # and versions 1.0.x of EGCS.
1658 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1659 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1660 libc_cv_c_asmcr0_bug='no',
1661 libc_cv_c_asmcr0_bug='yes')])
1662 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1663 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1667 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1668 [cat > conftest.c <<EOF
1669 #line $LINENO "configure"
1670 static char *__EH_FRAME_BEGIN__;
1673 #ifdef CHECK__register_frame
1674 __register_frame (__EH_FRAME_BEGIN__);
1675 __deregister_frame (__EH_FRAME_BEGIN__);
1677 #ifdef CHECK__register_frame_info
1678 __register_frame_info (__EH_FRAME_BEGIN__);
1679 __deregister_frame_info (__EH_FRAME_BEGIN__);
1684 /* FIXME: this is fragile. */
1693 dl_iterate_phdr () {}
1695 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1697 -nostdlib -nostartfiles -o conftest conftest.c \
1699 # Some platforms' specs put -lgcc first. The second one doesn't hurt.
1700 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1701 AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1703 if $libc_unwind_check -v 2>&1 >/dev/null \
1704 | grep -q -- --eh-frame-hdr; then
1705 libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1707 libc_cv_gcc_dwarf2_unwind_info=static
1710 libc_cv_gcc_dwarf2_unwind_info=no
1712 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1713 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1714 $LDFLAGS -nostdlib -nostartfiles
1715 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1716 libc_cv_gcc_dwarf2_unwind_info=yes
1718 libc_cv_gcc_dwarf2_unwind_info=no
1722 case $libc_cv_gcc_dwarf2_unwind_info in
1724 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1727 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1728 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1732 dnl Check whether compiler understands __builtin_expect.
1733 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1734 [cat > conftest.c <<EOF
1735 #line $LINENO "configure"
1738 a = __builtin_expect (a, 10);
1739 return a == 10 ? 0 : 1;
1742 dnl No \ in command here because it ends up inside ''.
1743 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1744 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1745 libc_cv_gcc_builtin_expect=yes
1747 libc_cv_gcc_builtin_expect=no
1750 if test "$libc_cv_gcc_builtin_expect" = yes; then
1751 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1754 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1755 cat > conftest.c <<\EOF
1758 __builtin_memset (x, 0, 1000);
1762 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1764 libc_cv_gcc_builtin_memset=no
1766 libc_cv_gcc_builtin_memset=yes
1769 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1770 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1773 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1774 cat > conftest.c <<\EOF
1775 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1776 char *foo (const char *a, const char *b)
1778 return __builtin_strstr (a, b);
1782 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1784 libc_cv_gcc_builtin_redirection=yes
1786 libc_cv_gcc_builtin_redirection=no
1789 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1790 AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1793 dnl Check whether the compiler supports subtraction of local labels.
1794 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1795 [cat > conftest.c <<EOF
1797 #line $LINENO "configure"
1800 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1801 void *p = &&l1 + ar[a];
1810 dnl No \ in command here because it ends up inside ''.
1811 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1812 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1813 libc_cv_gcc_subtract_local_labels=yes
1815 libc_cv_gcc_subtract_local_labels=no
1818 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1819 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1822 dnl Check whether the compiler supports the __thread keyword.
1823 if test "x$use__thread" != xno; then
1824 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1825 [cat > conftest.c <<\EOF
1826 __thread int a = 42;
1828 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1829 libc_cv_gcc___thread=yes
1831 libc_cv_gcc___thread=no
1834 if test "$libc_cv_gcc___thread" = yes; then
1835 AC_DEFINE(HAVE___THREAD)
1838 libc_cv_gcc___thread=no
1841 if test "$libc_cv_gcc___thread" = yes; then
1842 dnl Check whether the compiler supports the tls_model attribute.
1843 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1844 cat > conftest.c <<\EOF
1845 extern __thread int a __attribute__((tls_model ("initial-exec")));
1847 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1848 libc_cv_gcc_tls_model_attr=yes
1850 libc_cv_gcc_tls_model_attr=no
1853 if test "$libc_cv_gcc_tls_model_attr" = yes; then
1854 AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1858 dnl Check whether we have the gd library available.
1859 AC_MSG_CHECKING(for libgd)
1860 if test "$with_gd" != "no"; then
1861 old_CFLAGS="$CFLAGS"
1862 CFLAGS="$CFLAGS $libgd_include"
1863 old_LDFLAGS="$LDFLAGS"
1864 LDFLAGS="$LDFLAGS $libgd_ldflags"
1866 LIBS="$LIBS -lgd -lpng -lz -lm"
1867 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1868 CFLAGS="$old_CFLAGS"
1869 LDFLAGS="$old_LDFLAGS"
1874 AC_MSG_RESULT($LIBGD)
1877 dnl check for the size of 'long double'.
1878 AC_CHECK_SIZEOF(long double, 0)
1879 sizeof_long_double=$ac_cv_sizeof_long_double
1880 AC_SUBST(sizeof_long_double)
1882 ### End of automated tests.
1883 ### Now run sysdeps configure fragments.
1885 # They also can set these variables.
1887 ldd_rewrite_script=no
1888 libc_cv_sysconfdir=$sysconfdir
1889 libc_cv_gcc_unwind_find_fde=no
1891 # Iterate over all the sysdep directories we will use, running their
1892 # configure fragments, and looking for a uname implementation.
1894 for dir in $sysnames; do
1897 *) dest=$srcdir/$dir ;;
1899 if test -r $dest/configure; then
1900 AC_MSG_RESULT(running configure fragment for $dir)
1904 if test -z "$uname"; then
1905 if test -r $dest/uname.c ||
1906 test -r $dest/uname.S ||
1907 { test -r $dest/syscalls.list &&
1908 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1915 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1916 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1918 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1920 # If we will use the generic uname implementation, we must figure out what
1921 # it will say by examining the system, and write the results in config-name.h.
1922 if test "$uname" = "sysdeps/generic"; then
1925 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1927 if test $uname_sysname != $config_os; then
1928 config_release=`echo $config_os | sed s/$uname_sysname//`
1931 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1932 if test -r /vmunix; then
1933 kernel_id=`strings /vmunix | grep UNIX`
1934 elif test -r /dynix; then
1935 kernel_id=`strings /dynix | grep DYNIX`
1941 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1944 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1946 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1947 != x$config_release; then
1948 # The configuration release is a substring of the kernel release.
1949 libc_cv_uname_release=$kernel_release
1950 elif test x$config_release != x; then
1951 libc_cv_uname_release=$config_release
1952 elif test x$kernel_release != x; then
1953 libc_cv_uname_release=$kernel_release
1955 libc_cv_uname_release=unknown
1957 uname_release="$libc_cv_uname_release"
1959 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1962 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1964 if test -n "$kernel_version"; then
1965 libc_cv_uname_version="$kernel_version"
1967 libc_cv_uname_version=unknown
1969 uname_version="$libc_cv_uname_version"
1971 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1972 config_uname=config-name.h:config-name.in
1974 # For non-generic uname, we don't need to create config-name.h at all.
1978 dnl This is tested by existing code and it's simpler to avoid changing it.
1979 AC_DEFINE(USE_IN_LIBIO)
1981 # Test for old glibc 2.0.x headers so that they can be removed properly
1982 # Search only in includedir.
1983 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1984 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1986 old_glibc_headers=yes
1988 old_glibc_headers=no
1990 AC_MSG_RESULT($old_glibc_headers)
1991 if test ${old_glibc_headers} = yes; then
1992 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1993 AC_MSG_WARN(*** be removed.)
1995 AC_SUBST(old_glibc_headers)
1997 AC_SUBST(libc_cv_slibdir)
1998 AC_SUBST(libc_cv_localedir)
1999 AC_SUBST(libc_cv_sysconfdir)
2000 AC_SUBST(libc_cv_rootsbindir)
2001 AC_SUBST(libc_cv_forced_unwind)
2003 AC_SUBST(use_ldconfig)
2004 AC_SUBST(ldd_rewrite_script)
2006 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
2007 if test $gnu_ld = yes; then
2008 AC_DEFINE(HAVE_GNU_LD)
2010 if test $gnu_as = yes; then
2011 AC_DEFINE(HAVE_GNU_AS)
2013 if test $elf = yes; then
2016 if test $xcoff = yes; then
2017 AC_DEFINE(HAVE_XCOFF)
2022 if test $shared = default; then
2023 if test $gnu_ld = yes; then
2026 # For now we do not assume shared libs are available. In future more
2027 # tests might become available.
2032 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2034 cat > conftest.c <<EOF
2035 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2036 # error PIC is default.
2039 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2043 AC_SUBST(pic_default)
2048 AC_SUBST(static_nss)
2049 AC_SUBST(nopic_initfini)
2054 *door*) linux_doors=yes ;;
2055 *) linux_doors=no ;;
2057 AC_SUBST(linux_doors)
2059 dnl See sysdeps/mach/configure.in for this variable.
2060 AC_SUBST(mach_interface_list)
2062 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2065 config_makefile=Makefile
2068 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2069 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2073 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
2074 AC_CONFIG_COMMANDS([default],[[
2075 case $CONFIG_FILES in *config.make*)
2076 echo "$config_vars" >> config.make;;
2078 test -d bits || mkdir bits]],[[config_vars='$config_vars']])