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 machine=mips/mips64/$machine ;;
390 mips*) base_machine=mips machine=mips/$machine ;;
391 powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
392 powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
393 s390) base_machine=s390 machine=s390/s390-32 ;;
394 s390x) base_machine=s390 machine=s390/s390-64 ;;
395 sh3*) base_machine=sh machine=sh/sh3 ;;
396 sh4*) base_machine=sh machine=sh/sh4 ;;
398 base_machine=sparc machine=sparc/sparc32 ;;
399 sparcv8 | supersparc | hypersparc)
400 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
401 sparcv8plus | sparcv8plusa | sparcv9)
402 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
403 sparcv8plusb | sparcv9b)
404 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
405 sparc64 | ultrasparc)
406 base_machine=sparc machine=sparc/sparc64 ;;
407 sparc64b | ultrasparc3)
408 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
409 thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
410 *) base_machine=$machine ;;
413 AC_SUBST(base_machine)
415 if test "$base_machine" = "i386"; then
416 AC_DEFINE(USE_REGPARMS)
419 # Compute the list of sysdep directories for this configuration.
420 # This can take a while to compute.
421 sysdep_dir=$srcdir/sysdeps
422 AC_MSG_CHECKING(sysdep dirs)
423 dnl We need to use [ and ] for other purposes for a while now.
425 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
426 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
431 netbsd* | 386bsd* | freebsd* | bsdi*)
432 base_os=unix/bsd/bsd4.4 ;;
433 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
435 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
438 base_os=unix/sysv/irix6/$os ;;
440 base_os=unix/sysv/sysv4 ;;
442 base_os=unix/sysv/hpux/$os ;;
444 base_os=unix/sysv/aix/aix4.3 ;;
446 base_os=standalone ;;
451 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
454 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
458 o=`echo $tail | sed 's/[0-9]*$//'`
459 if test $o != $tail; then
462 # For linux-gnu, try linux-gnu, then linux.
463 o=`echo $tail | sed 's/-.*$//'`
464 if test $o != $tail; then
468 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
471 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
477 # For sparc/sparc32, try sparc/sparc32 and then sparc.
480 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
482 # Prepend the machine's FPU directory unless --without-fp.
483 if test "$with_fp" = yes; then
486 mach="$mach /$1/nofpu"
492 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
495 # Find what sysdep directories exist.
497 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
498 for d in $add_ons_pfx ''; do
499 for b in $base ''; do
500 for m0 in $mach ''; do
501 for v in /$vendor ''; do
502 test "$v" = / && continue
503 for o in /$ostry ''; do
504 test "$o" = / && continue
505 for m in $mach ''; do
506 if test "$m0$b$v$o$m"; then
507 try="${d}sysdeps$m0$b$v$o$m"
508 test -n "$enable_debug_configure" &&
509 echo "$0 [DEBUG]: try $try" >&2
510 if test -d $srcdir/$try; then
511 sysnames="$sysnames $try"
512 { test -n "$o" || test -n "$b"; } && os_used=t
513 { test -n "$m" || test -n "$m0"; } && machine_used=t
524 if test -z "$os_used" && test "$os" != none; then
525 AC_MSG_ERROR(Operating system $os is not supported.)
527 if test -z "$machine_used" && test "$machine" != none; then
528 AC_MSG_ERROR(The $machine is not supported.)
531 # We have now validated the configuration.
534 # If using ELF, look for an `elf' subdirectory of each machine directory.
535 # We prepend these rather than inserting them whereever the machine appears
536 # because things specified by the machine's ELF ABI should override
537 # OS-specific things, and should always be the same for any OS on the
538 # machine (otherwise what's the point of an ABI?).
539 if test "$elf" = yes; then
541 for d in $add_ons_pfx ''; do
543 if test -d $srcdir/${d}sysdeps$m/elf; then
544 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
548 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
552 # Expand the list of system names into a full list of directories
553 # from each element's parent name and Implies file (if present).
556 while test $# -gt 0; do
560 case " $names " in *" $name "*)
561 # Already in the list.
565 # Report each name as we discover it, so there is no long pause in output.
566 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
568 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
572 *) xsrcdir=$srcdir/ ;;
574 test -n "$enable_debug_configure" &&
575 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
577 if test -f $xsrcdir$name/Implies; then
578 # Collect more names from the `Implies' file (removing comments).
579 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
581 for x in $implied_candidate; do
583 if test -d $xsrcdir$name_base/$x; then
584 implied="$implied $name_base/$x";
587 for d in $add_ons_pfx ''; do
591 *) try_srcdir=$srcdir/ ;;
593 test -n "$enable_debug_configure" &&
594 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
595 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
597 implied="$implied $try"
601 if test $found = no; then
602 AC_MSG_WARN($name/Implies specifies nonexistent $x)
609 # Add NAME to the list of names.
612 # Find the parent of NAME, using the empty string if it has none.
614 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
617 # Add the names implied by NAME, and NAME's parent (if it has one), to
618 # the list of names to be processed (the argument list). We prepend the
619 # implied names to the list and append the parent. We want implied
620 # directories to come before further directories inferred from the
621 # configuration components; this ensures that for sysv4, unix/common
622 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
624 sysnames="`echo $implied $* $parent`"
625 test -n "$sysnames" && set $sysnames
628 # Add the default directories.
629 default_sysnames=sysdeps/generic
630 if test "$elf" = yes; then
631 default_sysnames="sysdeps/generic/elf $default_sysnames"
633 sysnames="$names $default_sysnames"
635 # The other names were emitted during the scan.
636 AC_MSG_RESULT($default_sysnames)
642 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
643 # The makefiles need to use a different form to find it in $srcdir.
644 INSTALL='\$(..)./scripts/install-sh -c'
649 if test $host != $build; then
650 AC_CHECK_PROGS(BUILD_CC, gcc cc)
652 AC_SUBST(cross_compiling)
655 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
657 # Accept binutils 2.13 or newer.
658 AC_CHECK_PROG_VER(AS, $AS, --version,
659 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
660 [2.1[3-9]*], AS=: critic_missing=t)
661 AC_CHECK_PROG_VER(LD, $LD, --version,
662 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
663 [2.1[3-9]*], LD=: critic_missing=t)
665 # We need the physical current working directory. We cannot use the
666 # "pwd -P" shell builtin since that's not portable. Instead we try to
667 # find a pwd binary. Note that assigning to the PWD environment
668 # variable might have some interesting side effects, so we don't do
670 AC_PATH_PROG(PWD_P, pwd, no)
671 if test "$PWD_P" = no; then
672 AC_MSG_ERROR(*** A pwd binary could not be found.)
675 # These programs are version sensitive.
677 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
678 [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
679 critic_missing="$critic_missing gcc")
680 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
681 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
682 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
684 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
685 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
686 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
687 MSGFMT=: aux_missing="$aux_missing msgfmt")
688 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
689 [GNU texinfo.* \([0-9][0-9.]*\)],
691 MAKEINFO=: aux_missing="$aux_missing makeinfo")
692 AC_CHECK_PROG_VER(SED, sed, --version,
693 [GNU sed version \([0-9]*\.[0-9.]*\)],
694 [3.0[2-9]*|3.[1-9]*|[4-9]*],
695 SED=: aux_missing="$aux_missing sed")
697 if test "x$with_cvs" != xyes; then
698 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
700 xno|x|x:) AUTOCONF=no ;;
703 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
704 if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
705 libc_cv_autoconf_works=yes
707 libc_cv_autoconf_works=no
709 test $libc_cv_autoconf_works = yes || AUTOCONF=no
712 test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf"
715 test -n "$critic_missing" && AC_MSG_ERROR([
716 *** These critical programs are missing or too old:$critic_missing
717 *** Check the INSTALL file for required versions.])
719 test -n "$aux_missing" && AC_MSG_WARN([
720 *** These auxiliary programs are missing or incompatible versions:$aux_missing
721 *** some features will be disabled.
722 *** Check the INSTALL file for required versions.])
724 # glibcbug.in wants to know the compiler version.
725 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
728 # if using special system headers, find out the compiler's sekrit
729 # header directory and add that to the list. NOTE: Only does the right
730 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
731 if test -n "$sysheaders"; then
732 ccheaders=`$CC -print-file-name=include`
733 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
735 AC_SUBST(SYSINCLUDES)
737 # check if ranlib is necessary
738 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
739 cat > conftest.c <<EOF
744 $CC $CFLAGS -c conftest.c
745 $AR cr conftest.a conftest.o
746 cp conftest.a conftest2.a
748 if cmp -s conftest.a conftest2.a; then
749 libc_cv_ranlib_necessary=no
751 libc_cv_ranlib_necessary=yes
754 if test "$libc_cv_ranlib_necessary" = no; then
758 # Test if LD_LIBRARY_PATH contains the notation for the current directory
759 # since this would lead to problems installing/building glibc.
760 # LD_LIBRARY_PATH contains the current directory if one of the following
762 # - one of the terminals (":" and ";") is the first or last sign
763 # - two terminals occur directly after each other
764 # - the path contains an element with a dot in it
765 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
767 case ${LD_LIBRARY_PATH} in
768 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
769 ld_library_path_setting="contains current directory"
772 ld_library_path_setting="ok"
776 AC_MSG_RESULT($ld_library_path_setting)
777 if test "$ld_library_path_setting" != "ok"; then
779 *** LD_LIBRARY_PATH shouldn't contain the current directory when
780 *** building glibc. Please change the environment variable
781 *** and run configure again.])
784 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
785 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
786 libc_cv_gcc_static_libgcc=
788 libc_cv_gcc_static_libgcc=-static-libgcc
790 AC_SUBST(libc_cv_gcc_static_libgcc)
792 AC_PATH_PROG(BASH, bash, no)
793 if test "$BASH" != no &&
794 $BASH -c 'test "$BASH_VERSINFO" \
795 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
796 libc_cv_have_bash2=yes
798 libc_cv_have_bash2=no
800 AC_SUBST(libc_cv_have_bash2)
802 dnl We need a ksh compatible shell for tzselect.
803 if test "$BASH" = no; then
804 AC_PATH_PROG(KSH, ksh, no)
805 if test "$KSH" = no; then
815 AC_SUBST(libc_cv_have_ksh)
818 AC_PATH_PROG(PERL, perl, no)
819 if test "$PERL" != no &&
820 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
823 AC_PATH_PROG(INSTALL_INFO, install-info, no,
824 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
825 if test "$INSTALL_INFO" != "no"; then
826 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
828 # There is a hard ^_ on the next line. I am open to better ideas.
830 echo 'File: dir Node: Top This is the top of the INFO tree'
831 echo '* Menu:') >conftest.d/dir
832 (echo 'INFO-DIR-SECTION i-d-s works'
833 echo 'START-INFO-DIR-ENTRY'
834 echo '* Prog: (prog). Program.'
835 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
836 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AS_MESSAGE_LOG_FD 2>&1
838 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
839 then libc_cv_old_debian_install_info=no
840 else libc_cv_old_debian_install_info=yes
842 else libc_cv_old_debian_install_info=no testfailed=t
845 if test -n "$testfailed"
846 then AC_MSG_WARN([install-info errored out, check config.log])
848 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
850 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
852 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
854 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
855 echo '#include <stddef.h>
856 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
857 if eval "$ac_cpp conftest.c 2>/dev/null" \
858 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
859 libc_cv_signed_size_t=no
861 libc_cv_signed_size_t=yes
864 if test $libc_cv_signed_size_t = yes; then
865 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
866 cat >> confdefs.h <<\EOF
868 #define __SIZE_TYPE__ unsigned
872 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
874 [#define __need_size_t
875 #define __need_wchar_t
878 #include <stddef.h>], [size_t size; wchar_t wchar;
880 #error stddef.h ignored __need_*
882 if (&size == NULL || &wchar == NULL) abort ();],
883 libc_cv_friendly_stddef=yes,
884 libc_cv_friendly_stddef=no)])
885 if test $libc_cv_friendly_stddef = yes; then
886 config_vars="$config_vars
887 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
890 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
891 libc_cv_need_minus_P, [dnl
892 cat > conftest.S <<EOF
893 #include "confdefs.h"
894 /* Nothing whatsoever. */
896 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
897 libc_cv_need_minus_P=no
899 libc_cv_need_minus_P=yes
902 if test $libc_cv_need_minus_P = yes; then
903 config_vars="$config_vars
904 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
907 AC_MSG_CHECKING(whether .text pseudo-op must be used)
908 AC_CACHE_VAL(libc_cv_dot_text, [dnl
909 cat > conftest.s <<EOF
913 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
914 libc_cv_dot_text=.text
917 if test -z "$libc_cv_dot_text"; then
923 AC_CACHE_CHECK(for assembler global-symbol directive,
924 libc_cv_asm_global_directive, [dnl
925 libc_cv_asm_global_directive=UNKNOWN
926 for ac_globl in .globl .global .EXPORT; do
927 cat > conftest.s <<EOF
932 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
933 libc_cv_asm_global_directive=${ac_globl}
936 test $libc_cv_asm_global_directive != UNKNOWN && break
938 if test $libc_cv_asm_global_directive = UNKNOWN; then
939 AC_MSG_ERROR(cannot determine asm global directive)
941 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
944 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
945 cat > conftest.s <<EOF
948 .set glibc_conftest_frobozz,foo
949 $libc_cv_asm_global_directive glibc_conftest_frobozz
951 # The alpha-dec-osf1 assembler gives only a warning for `.set'
952 # (but it doesn't work), so we must do a linking check to be sure.
953 cat > conftest1.c <<\EOF
954 extern int glibc_conftest_frobozz;
955 main () { printf ("%d\n", glibc_conftest_frobozz); }
957 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
958 -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
959 libc_cv_asm_set_directive=yes
961 libc_cv_asm_set_directive=no
964 if test $libc_cv_asm_set_directive = yes; then
965 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
968 AC_CACHE_CHECK(for assembler .type directive prefix,
969 libc_cv_asm_type_prefix, [dnl
970 libc_cv_asm_type_prefix=no
971 for ac_try_prefix in '@' '%' '#'; do
972 cat > conftest.s <<EOF
974 ${libc_cv_asm_global_directive} foo
975 .type foo, ${ac_try_prefix}object
980 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
981 libc_cv_asm_type_prefix=${ac_try_prefix}
984 test "x$libc_cv_asm_type_prefix" != xno && break
986 if test "x$libc_cv_asm_type_prefix" != xno; then
987 AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
990 # The Aix ld uses global .symbol_names instead of symbol_names.
991 # Unfortunately also used in the PPC64 ELF ABI.
992 case "${os}${machine}" in
993 aix4.3* | linux*powerpc/powerpc64*)
994 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
997 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
998 [cat > conftest.s <<EOF
1001 .symver _sym,sym@VERS
1003 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1004 libc_cv_asm_symver_directive=yes
1006 libc_cv_asm_symver_directive=no
1009 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1010 if test $libc_cv_asm_symver_directive = yes; then
1011 cat > conftest.s <<EOF
1014 .symver _sym,sym@VERS
1016 cat > conftest.map <<EOF
1025 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1026 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
1027 -nostartfiles -nostdlib
1028 -Wl,--version-script,conftest.map
1029 1>&AS_MESSAGE_LOG_FD]);
1031 libc_cv_ld_version_script_option=yes
1033 libc_cv_ld_version_script_option=no
1036 libc_cv_ld_version_script_option=no
1039 libc_cv_ld_version_script_option=no
1042 if test $shared != no &&
1043 test $libc_cv_asm_symver_directive = yes &&
1044 test $libc_cv_ld_version_script_option = yes &&
1045 test $enable_versioning = yes; then
1047 AC_DEFINE(DO_VERSIONING)
1051 AC_SUBST(VERSIONING)
1053 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1055 *** WARNING: You should not compile GNU libc without versioning. Not using
1056 *** versioning will introduce incompatibilities so that old binaries
1057 *** will not run anymore.
1058 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1060 if test $elf = yes; then
1061 AC_CACHE_CHECK(for .previous assembler directive,
1062 libc_cv_asm_previous_directive, [dnl
1063 cat > conftest.s <<EOF
1064 .section foo_section
1067 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1068 libc_cv_asm_previous_directive=yes
1070 libc_cv_asm_previous_directive=no
1073 if test $libc_cv_asm_previous_directive = yes; then
1074 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1076 AC_CACHE_CHECK(for .popsection assembler directive,
1077 libc_cv_asm_popsection_directive, [dnl
1078 cat > conftest.s <<EOF
1079 .pushsection foo_section
1082 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1083 libc_cv_asm_popsection_directive=yes
1085 libc_cv_asm_popsection_directive=no
1088 if test $libc_cv_asm_popsection_directive = yes; then
1089 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1092 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1093 libc_cv_asm_protected_directive, [dnl
1094 cat > conftest.s <<EOF
1100 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1101 libc_cv_asm_protected_directive=yes
1103 libc_cv_asm_protected_directive=no
1106 AC_SUBST(libc_cv_asm_protected_directive)
1107 AC_DEFINE(HAVE_PROTECTED)
1108 AC_DEFINE(HAVE_HIDDEN)
1110 if test $libc_cv_asm_protected_directive = yes; then
1111 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1112 libc_cv_visibility_attribute,
1113 [cat > conftest.c <<EOF
1114 int foo __attribute__ ((visibility ("hidden"))) = 1;
1115 int bar __attribute__ ((visibility ("protected"))) = 1;
1117 libc_cv_visibility_attribute=no
1118 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1119 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1120 if grep '\.protected.*bar' conftest.s >/dev/null; then
1121 libc_cv_visibility_attribute=yes
1127 if test $libc_cv_visibility_attribute = yes; then
1128 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1132 if test $libc_cv_visibility_attribute = yes; then
1133 AC_CACHE_CHECK(for broken __attribute__((visibility())),
1134 libc_cv_broken_visibility_attribute,
1135 [cat > conftest.c <<EOF
1137 int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1138 int bar (int x) { return x; }
1140 libc_cv_broken_visibility_attribute=yes
1141 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1143 if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
1145 libc_cv_broken_visibility_attribute=no
1148 rm -f conftest.c conftest.s
1150 if test $libc_cv_broken_visibility_attribute = yes; then
1151 AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1155 AC_CACHE_CHECK(for broken __attribute__((alias())),
1156 libc_cv_broken_alias_attribute,
1157 [cat > conftest.c <<EOF
1158 extern int foo (int x) __asm ("xyzzy");
1159 int bar (int x) { return x; }
1160 extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1162 extern __typeof (dfoo) dfoo __asm ("abccb");
1165 libc_cv_broken_alias_attribute=yes
1166 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1167 if grep 'xyzzy' conftest.s >/dev/null &&
1168 grep 'abccb' conftest.s >/dev/null; then
1169 libc_cv_broken_alias_attribute=no
1172 rm -f conftest.c conftest.s
1174 if test $libc_cv_broken_alias_attribute = yes; then
1175 AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1178 if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1179 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1180 libc_cv_have_sdata_section,
1181 [echo "int i;" > conftest.c
1182 libc_cv_have_sdata_section=no
1183 if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1184 | grep '\.sdata' >/dev/null; then
1185 libc_cv_have_sdata_section=yes
1187 rm -f conftest.c conftest.so
1189 if test $libc_cv_have_sdata_section = yes; then
1190 AC_DEFINE(HAVE_SDATA_SECTION)
1194 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1195 libc_cv_initfinit_array, [dnl
1196 cat > conftest.c <<EOF
1197 int _start (void) { return 0; }
1198 int __start (void) { return 0; }
1199 int foo (void) { return 1; }
1200 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1202 if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1203 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1205 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1206 libc_cv_initfinit_array=yes
1208 libc_cv_initfinit_array=no
1211 libc_cv_initfinit_array=no
1214 AC_SUBST(libc_cv_initfinit_array)
1215 if test $libc_cv_initfinit_array = yes; then
1216 AC_DEFINE(HAVE_INITFINI_ARRAY)
1219 AC_CACHE_CHECK(for -z nodelete option,
1220 libc_cv_z_nodelete, [dnl
1221 cat > conftest.c <<EOF
1222 int _start (void) { return 42; }
1224 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1225 -nostartfiles -nostdlib
1226 -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1228 libc_cv_z_nodelete=yes
1230 libc_cv_z_nodelete=no
1233 AC_SUBST(libc_cv_z_nodelete)
1235 AC_CACHE_CHECK(for -z nodlopen option,
1236 libc_cv_z_nodlopen, [dnl
1237 cat > conftest.c <<EOF
1238 int _start (void) { return 42; }
1240 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1241 -nostartfiles -nostdlib
1242 -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1244 libc_cv_z_nodlopen=yes
1246 libc_cv_z_nodlopen=no
1249 AC_SUBST(libc_cv_z_nodlopen)
1251 AC_CACHE_CHECK(for -z initfirst option,
1252 libc_cv_z_initfirst, [dnl
1253 cat > conftest.c <<EOF
1254 int _start (void) { return 42; }
1256 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1257 -nostartfiles -nostdlib
1258 -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1260 libc_cv_z_initfirst=yes
1262 libc_cv_z_initfirst=no
1265 AC_SUBST(libc_cv_z_initfirst)
1267 AC_CACHE_CHECK(for -Bgroup option,
1268 libc_cv_Bgroup, [dnl
1269 cat > conftest.c <<EOF
1270 int _start (void) { return 42; }
1272 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1279 AC_SUBST(libc_cv_Bgroup)
1281 AC_CACHE_CHECK(for -z combreloc,
1282 libc_cv_z_combreloc, [dnl
1283 cat > conftest.c <<EOF
1284 extern int bar (int);
1286 int foo (void) { return bar (mumble); }
1288 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1289 -nostdlib -nostartfiles
1290 -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1292 dnl The following test is a bit weak. We must use a tool which can test
1293 dnl cross-platform since the gcc used can be a cross compiler. Without
1294 dnl introducing new options this is not easily doable. Instead use a tool
1295 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1296 dnl look for a section named .rel.dyn.
1297 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1298 libc_cv_z_combreloc=yes
1300 libc_cv_z_combreloc=no
1303 libc_cv_z_combreloc=no
1306 if test "$libc_cv_z_combreloc" = yes; then
1307 AC_DEFINE(HAVE_Z_COMBRELOC)
1310 AC_SUBST(libc_cv_z_combreloc)
1312 if test $elf != yes; then
1313 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1314 [AC_TRY_COMPILE(, [asm (".section .init");
1315 asm (".section .fini");
1316 asm ("${libc_cv_dot_text}");],
1317 libc_cv_have_initfini=yes,
1318 libc_cv_have_initfini=no)])
1319 AC_SUBST(libc_cv_have_initfini)dnl
1320 if test $libc_cv_have_initfini = yes; then
1321 AC_DEFINE(HAVE_INITFINI)
1325 if test $elf = yes -a $gnu_ld = yes; then
1326 AC_CACHE_CHECK(whether cc puts quotes around section names,
1327 libc_cv_have_section_quotes,
1328 [cat > conftest.c <<EOF
1329 static const int foo
1330 __attribute__ ((section ("bar"))) = 1;
1332 if ${CC-cc} -S conftest.c -o conftest.s; then
1333 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1334 libc_cv_have_section_quotes=yes
1336 libc_cv_have_section_quotes=no
1339 libc_cv_have_section_quotes=unknown
1343 if test $libc_cv_have_section_quotes = yes; then
1344 AC_DEFINE(HAVE_SECTION_QUOTES)
1348 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1349 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1350 [cat > conftest.$ac_ext <<EOF
1351 dnl This sometimes fails to find confdefs.h, for some reason.
1352 dnl [#]line __oline__ "[$]0"
1353 [#]line __oline__ "configure"
1354 #include "confdefs.h"
1355 void underscore_test(void) {
1358 if AC_TRY_EVAL(ac_compile); then
1359 if grep _underscore_test conftest* >/dev/null; then
1360 ifelse([$1], , :, [rm -f conftest*
1363 ifelse([$2], , , [rm -f conftest*
1367 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1368 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1369 ifelse([$2], , , [rm -f conftest*
1374 if test $elf = yes; then
1375 libc_cv_asm_underscores=no
1377 if test $ac_cv_prog_cc_works = yes; then
1378 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1379 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1380 libc_cv_asm_underscores=yes,
1381 libc_cv_asm_underscores=no)])
1383 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1384 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1385 libc_cv_asm_underscores=no)])
1388 if test $libc_cv_asm_underscores = no; then
1389 AC_DEFINE(NO_UNDERSCORES)
1392 if test $elf = yes; then
1393 libc_cv_weak_symbols=yes
1396 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1398 cat > conftest.s <<EOF
1400 ${libc_cv_asm_global_directive} foo
1403 .weak bar; bar = foo
1405 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1406 libc_cv_asm_weak_directive=yes
1408 libc_cv_asm_weak_directive=no
1412 if test $libc_cv_asm_weak_directive = no; then
1413 AC_CACHE_CHECK(for assembler .weakext directive,
1414 libc_cv_asm_weakext_directive,
1416 cat > conftest.s <<EOF
1418 ${libc_cv_asm_global_directive} foo
1422 ${libc_cv_asm_global_directive} baz
1425 if AC_TRY_COMMAND(${CC-cc} $CFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1426 libc_cv_asm_weakext_directive=yes
1428 libc_cv_asm_weakext_directive=no
1434 if test $libc_cv_asm_weak_directive = yes; then
1435 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1436 elif test $libc_cv_asm_weakext_directive = yes; then
1437 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1440 dnl The standard hppa assembler uses `;' to start comments and `!'
1441 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1443 case "${host_cpu}-${host_os}" in
1445 libc_cv_asm_line_sep='@'
1446 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1449 AC_CACHE_CHECK(for assembler line separator,
1450 libc_cv_asm_line_sep, [dnl
1451 cat > conftest.s <<EOF
1454 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1455 libc_cv_asm_line_sep='!'
1457 if test -z "$enable_hacker_mode"; then
1458 echo "*** You need a newer assembler to compile glibc"
1462 libc_cv_asm_line_sep=';'
1465 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1469 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1470 libc_cv_cpp_asm_debuginfo, [dnl
1471 cat > conftest.S <<EOF
1472 #include "confdefs.h"
1477 ${libc_cv_asm_global_directive} foo
1479 /* Unfortunately this test only works for a real instruction,
1480 not for any of the machine-independent pseudo-ops.
1481 So we just have to assume everybody has a "nop". */
1488 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1489 ac_pattern='conftest\.S'
1490 AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1491 grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1492 libc_cv_cpp_asm_debuginfo=yes
1494 libc_cv_cpp_asm_debuginfo=no
1496 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1497 if test $libc_cv_cpp_asm_debuginfo = yes; then
1498 AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1501 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1502 cat > conftest.c <<\EOF
1507 dnl No \ in command here because it ends up inside ''.
1508 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1509 -nostdlib -nostartfiles -Wl,--no-whole-archive
1510 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1511 libc_cv_ld_no_whole_archive=yes
1513 libc_cv_ld_no_whole_archive=no
1516 if test $libc_cv_ld_no_whole_archive = yes; then
1517 no_whole_archive=-Wl,--no-whole-archive
1519 AC_SUBST(no_whole_archive)dnl
1521 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1522 cat > conftest.c <<\EOF
1527 dnl No \ in command here because it ends up inside ''.
1528 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1529 -nostdlib -nostartfiles -fexceptions
1530 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1531 libc_cv_gcc_exceptions=yes
1533 libc_cv_gcc_exceptions=no
1536 if test $libc_cv_gcc_exceptions = yes; then
1537 exceptions=-fexceptions
1539 AC_SUBST(exceptions)dnl
1541 if test "$host_cpu" = powerpc ; then
1542 # Check for a bug present in at least versions 2.8.x of GCC
1543 # and versions 1.0.x of EGCS.
1544 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1545 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1546 libc_cv_c_asmcr0_bug='no',
1547 libc_cv_c_asmcr0_bug='yes')])
1548 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1549 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1553 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1554 [cat > conftest.c <<EOF
1555 #line __oline__ "configure"
1556 static char *__EH_FRAME_BEGIN__;
1559 #ifdef CHECK__register_frame
1560 __register_frame (__EH_FRAME_BEGIN__);
1561 __deregister_frame (__EH_FRAME_BEGIN__);
1563 #ifdef CHECK__register_frame_info
1564 __register_frame_info (__EH_FRAME_BEGIN__);
1565 __deregister_frame_info (__EH_FRAME_BEGIN__);
1570 /* FIXME: this is fragile. */
1579 dl_iterate_phdr () {}
1581 dnl No \ in command here because it ends up inside ''.
1582 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1583 -nostdlib -nostartfiles
1584 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1585 libc_cv_gcc_dwarf2_unwind_info=static
1587 libc_cv_gcc_dwarf2_unwind_info=no
1589 # Some platforms' specs put -lgcc first. The second one doesn't hurt.
1590 libc_unwind_check="${CC-cc} $CFLAGS -DCHECK__register_frame_info \
1591 -nostdlib -nostartfiles -o conftest conftest.c \
1592 -lgcc -lgcc_eh -lgcc"
1593 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]); then
1594 if $libc_unwind_check -v 2>&1 >/dev/null \
1595 | grep -q -- --eh-frame-hdr; then
1596 libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1598 libc_cv_gcc_dwarf2_unwind_info=static
1601 libc_cv_gcc_dwarf2_unwind_info=no
1603 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1604 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1605 -nostdlib -nostartfiles
1606 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1607 libc_cv_gcc_dwarf2_unwind_info=yes
1609 libc_cv_gcc_dwarf2_unwind_info=no
1613 case $libc_cv_gcc_dwarf2_unwind_info in
1615 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1618 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1619 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1623 dnl Check whether compiler understands __builtin_expect.
1624 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1625 [cat > conftest.c <<EOF
1626 #line __oline__ "configure"
1629 a = __builtin_expect (a, 10);
1630 return a == 10 ? 0 : 1;
1633 dnl No \ in command here because it ends up inside ''.
1634 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1635 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1636 libc_cv_gcc_builtin_expect=yes
1638 libc_cv_gcc_builtin_expect=no
1641 if test "$libc_cv_gcc_builtin_expect" = yes; then
1642 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1645 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1646 cat > conftest.c <<\EOF
1649 __builtin_memset (x, 0, 1000);
1653 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1655 libc_cv_gcc_builtin_memset=no
1657 libc_cv_gcc_builtin_memset=yes
1660 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1661 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1664 dnl Check whether the compiler supports subtraction of local labels.
1665 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1666 [cat > conftest.c <<EOF
1668 #line __oline__ "configure"
1671 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1672 void *p = &&l1 + ar[a];
1681 dnl No \ in command here because it ends up inside ''.
1682 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1683 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1684 libc_cv_gcc_subtract_local_labels=yes
1686 libc_cv_gcc_subtract_local_labels=no
1689 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1690 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1693 dnl Check whether the compiler supports the __thread keyword.
1694 if test "x$use__thread" != xno; then
1695 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1696 [cat > conftest.c <<\EOF
1697 __thread int a = 42;
1699 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1700 libc_cv_gcc___thread=yes
1702 libc_cv_gcc___thread=no
1705 if test "$libc_cv_gcc___thread" = yes; then
1706 AC_DEFINE(HAVE___THREAD)
1709 libc_cv_gcc___thread=no
1712 if test "$libc_cv_gcc___thread" = yes; then
1713 dnl Check whether the compiler supports the tls_model attribute.
1714 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1715 cat > conftest.c <<\EOF
1716 extern __thread int a __attribute__((tls_model ("initial-exec")));
1718 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1719 libc_cv_gcc_tls_model_attr=yes
1721 libc_cv_gcc_tls_model_attr=no
1724 if test "$libc_cv_gcc_tls_model_attr" = yes; then
1725 AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1729 dnl Check whether we have the gd library available.
1730 AC_MSG_CHECKING(for libgd)
1731 if test "$with_gd" != "no"; then
1732 old_CFLAGS="$CFLAGS"
1733 CFLAGS="$CFLAGS $libgd_include"
1734 old_LDFLAGS="$LDFLAGS"
1735 LDFLAGS="$LDFLAGS $libgd_ldflags"
1737 LIBS="$LIBS -lgd -lpng -lz -lm"
1738 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1739 CFLAGS="$old_CFLAGS"
1740 LDFLAGS="$old_LDFLAGS"
1745 AC_MSG_RESULT($LIBGD)
1748 dnl check for the size of 'long double'.
1749 AC_CHECK_SIZEOF(long double, 0)
1750 sizeof_long_double=$ac_cv_sizeof_long_double
1751 AC_SUBST(sizeof_long_double)
1753 ### End of automated tests.
1754 ### Now run sysdeps configure fragments.
1756 # They also can set these variables.
1758 ldd_rewrite_script=no
1759 libc_cv_sysconfdir=$sysconfdir
1760 libc_cv_gcc_unwind_find_fde=no
1762 # Iterate over all the sysdep directories we will use, running their
1763 # configure fragments, and looking for a uname implementation.
1765 for dir in $sysnames; do
1768 *) dest=$srcdir/$dir ;;
1770 if test -r $dest/configure; then
1771 AC_MSG_RESULT(running configure fragment for $dir)
1775 if test -z "$uname"; then
1776 if test -r $dest/uname.c ||
1777 test -r $dest/uname.S ||
1778 { test -r $dest/syscalls.list &&
1779 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1786 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1787 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1789 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1791 # If we will use the generic uname implementation, we must figure out what
1792 # it will say by examining the system, and write the results in config-name.h.
1793 if test "$uname" = "sysdeps/generic"; then
1796 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1798 if test $uname_sysname != $config_os; then
1799 config_release=`echo $config_os | sed s/$uname_sysname//`
1802 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1803 if test -r /vmunix; then
1804 kernel_id=`strings /vmunix | grep UNIX`
1805 elif test -r /dynix; then
1806 kernel_id=`strings /dynix | grep DYNIX`
1812 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1815 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1817 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1818 != x$config_release; then
1819 # The configuration release is a substring of the kernel release.
1820 libc_cv_uname_release=$kernel_release
1821 elif test x$config_release != x; then
1822 libc_cv_uname_release=$config_release
1823 elif test x$kernel_release != x; then
1824 libc_cv_uname_release=$kernel_release
1826 libc_cv_uname_release=unknown
1828 uname_release="$libc_cv_uname_release"
1830 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1833 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1835 if test -n "$kernel_version"; then
1836 libc_cv_uname_version="$kernel_version"
1838 libc_cv_uname_version=unknown
1840 uname_version="$libc_cv_uname_version"
1842 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1843 config_uname=config-name.h:config-name.in
1845 # For non-generic uname, we don't need to create config-name.h at all.
1849 dnl This is tested by existing code and it's simpler to avoid changing it.
1850 AC_DEFINE(USE_IN_LIBIO)
1852 # Test for old glibc 2.0.x headers so that they can be removed properly
1853 # Search only in includedir.
1854 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1855 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1857 old_glibc_headers=yes
1859 old_glibc_headers=no
1861 AC_MSG_RESULT($old_glibc_headers)
1862 if test ${old_glibc_headers} = yes; then
1863 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1864 AC_MSG_WARN(*** be removed.)
1866 AC_SUBST(old_glibc_headers)
1868 AC_SUBST(libc_cv_slibdir)
1869 AC_SUBST(libc_cv_localedir)
1870 AC_SUBST(libc_cv_sysconfdir)
1871 AC_SUBST(libc_cv_rootsbindir)
1873 AC_SUBST(use_ldconfig)
1874 AC_SUBST(ldd_rewrite_script)
1876 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1877 if test $gnu_ld = yes; then
1878 AC_DEFINE(HAVE_GNU_LD)
1880 if test $gnu_as = yes; then
1881 AC_DEFINE(HAVE_GNU_AS)
1883 if test $elf = yes; then
1886 if test $xcoff = yes; then
1887 AC_DEFINE(HAVE_XCOFF)
1892 if test $shared = default; then
1893 if test $gnu_ld = yes; then
1896 # For now we do not assume shared libs are available. In future more
1897 # tests might become available.
1902 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1904 cat > conftest.c <<EOF
1905 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1906 # error PIC is default.
1909 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
1913 AC_SUBST(pic_default)
1918 AC_SUBST(static_nss)
1919 AC_SUBST(nopic_initfini)
1924 *door*) linux_doors=yes ;;
1925 *) linux_doors=no ;;
1927 AC_SUBST(linux_doors)
1929 dnl See sysdeps/mach/configure.in for this variable.
1930 AC_SUBST(mach_interface_list)
1932 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1935 config_makefile=Makefile
1938 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1939 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1943 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
1944 AC_CONFIG_COMMANDS([default],[[
1945 case $CONFIG_FILES in *config.make*)
1946 echo "$config_vars" >> config.make;;
1948 test -d bits || mkdir bits]],[[config_vars='$config_vars']])