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 dnl Arguments to enable or disable building the static, shared, profiled,
117 dnl and -fomit-frame-pointer libraries.
118 dnl I've disabled this for now since we cannot build glibc without static
119 dnl libraries built in the moment.
120 dnl AC_ARG_ENABLE([static],
121 dnl AC_HELP_STRING([--enable-static],
122 dnl [build static library @<:@default=yes@:>@]),
123 dnl [static=$enableval],
126 AC_ARG_ENABLE([shared],
127 AC_HELP_STRING([--enable-shared],
128 [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
131 AC_ARG_ENABLE([profile],
132 AC_HELP_STRING([--enable-profile],
133 [build profiled library @<:@default=yes@:>@]),
134 [profile=$enableval],
136 AC_ARG_ENABLE([omitfp],
137 AC_HELP_STRING([--enable-omitfp],
138 [build undebuggable optimized library @<:@default=no@:>@]),
141 AC_ARG_ENABLE([bounded],
142 AC_HELP_STRING([--enable-bounded],
143 [build with runtime bounds checking @<:@default=no@:>@]),
144 [bounded=$enableval],
146 AC_ARG_ENABLE([versioning],
147 AC_HELP_STRING([--disable-versioning],
148 [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
149 [enable_versioning=$enableval],
150 [enable_versioning=yes])
152 AC_ARG_ENABLE([oldest-abi],
153 AC_HELP_STRING([--enable-oldest-abi=ABI],
154 [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
155 [oldest_abi=$enableval],
157 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
160 AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
164 dnl Generic infrastructure for drop-in additions to libc.
165 AC_ARG_ENABLE([add-ons],
166 AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
167 [configure and build add-ons in DIR1,DIR2,... search for add-ons if no parameter given]),
168 [case "$enableval" in
169 yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
170 test "$add_ons" = "*" && add_ons= ;;
171 *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
175 dnl Let the user avoid using TLS. Don't know why but...
176 dnl XXX For now we disable support by default.
178 AC_HELP_STRING([--with-tls],
179 [enable support for TLS]),
183 AC_ARG_WITH([__thread],
184 AC_HELP_STRING([--without-__thread],
185 [do not use TLS features even when supporting them]),
186 [use__thread=$withval],
189 AC_ARG_ENABLE([hidden-plt],
190 AC_HELP_STRING([--disable-hidden-plt],
191 [do not hide internal function calls to avoid PLT]),
194 if test "x$hidden" = xno; then
198 AC_CONFIG_SUBDIRS([ ])dnl Bonehead new Autoconf whines if we do it cleanly.
200 if test x"$add_ons" != x; then
201 for f in $add_ons; do
203 if test "$f" = "crypt"; then
205 *** It seems that you're using an old \`crypt' add-on. crypt is now
206 *** part of glibc and using the old add-on will not work with this
207 *** release. Start again with fresh sources and without the old
208 *** \`crypt' add-on.])
210 if test "$f" = "localedata"; then
212 *** It seems that you're using an old \`localedata' add-on. localedata
213 *** is now part of glibc and using the old add-on will not work with
214 *** this release. Start again with fresh sources and without the old
215 *** \`localedata' add-on.])
217 # Test whether such a subdir really exists.
218 if test -d $srcdir/$f; then
219 add_ons_pfx="$add_ons_pfx $f/"
220 dnl This variable is what AC_CONFIG_SUBDIRS is supposed to set,
221 dnl but the new Autoconf maintainers don't care about compatibility
222 dnl so we cannot use it normally any more without complaints.
223 subdirs="$subdirs $f"
225 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
230 dnl On some platforms we cannot use dynamic loading. We must provide
231 dnl static NSS modules.
232 AC_ARG_ENABLE([static-nss],
233 AC_HELP_STRING([--enable-static-nss],
234 [build static NSS modules @<:@default=no@:>@]),
235 [static_nss=$enableval],
237 dnl Enable static NSS also if we build no shared objects.
238 if test x"$static_nss" = xyes || test x"$shared" = xno; then
240 AC_DEFINE(DO_STATIC_NSS)
243 AC_ARG_ENABLE([force-install],
244 AC_HELP_STRING([--disable-force-install],
245 [don't force installation of files from this package, even if they are older than the installed files]),
246 [force_install=$enableval],
248 AC_SUBST(force_install)
250 dnl On some platforms we allow dropping compatibility with all kernel
252 AC_ARG_ENABLE([kernel],
253 AC_HELP_STRING([--enable-kernel=VERSION],
254 [compile for compatibility with kernel not older than VERSION]),
255 [minimum_kernel=$enableval],
257 dnl Prevent unreasonable values.
258 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
259 # Better nothing than this.
262 if test "$minimum_kernel" = current; then
263 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
267 dnl For the development we sometimes want gcc to issue even more warnings.
268 dnl This is not the default since many of the extra warnings are not
270 AC_ARG_ENABLE([all-warnings],
271 AC_HELP_STRING([--enable-all-warnings],
272 [enable all useful warnings gcc can issue]),
273 [all_warnings=$enableval],
275 AC_SUBST(all_warnings)
279 # The way shlib-versions is used to generate soversions.mk uses a
280 # fairly simplistic model for name recognition that can't distinguish
281 # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
282 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
283 # tell. This doesn't get used much beyond that, so it's fairly safe.
288 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
292 # We keep the original values in `$config_*' and never modify them, so we
293 # can write them unchanged into config.make. Everything else uses
294 # $machine, $vendor, and $os, and changes them whenever convenient.
295 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
297 # Don't allow vendor == "unknown"
298 test "$config_vendor" = unknown && config_vendor=
299 config_os="`echo $config_os | sed 's/^unknown-//'`"
301 # Some configurations imply other options.
303 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
304 # These systems always use GNU tools.
305 gnu_ld=yes gnu_as=yes ;;
308 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
309 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
311 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
312 # These systems (almost) always use the ELF format.
316 # These systems are always xcoff
322 machine=$config_machine
323 vendor=$config_vendor
326 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
328 if test "$machine" = rs6000; then
332 # Braindead PowerPC box with absolutely no FPU.
333 case "$machine-$host_os" in
340 ### I put this here to prevent those annoying emails from people who cannot
341 ### read and try to compile glibc on unsupported platforms. --drepper
343 ### By using the undocumented --enable-hacker-mode option for configure
344 ### one can skip this test to make the configuration not fail for unsupported
347 if test -z "$enable_hacker_mode"; then
348 case "$machine-$host_os" in
349 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
352 echo "*** The GNU C library is currently not available for this platform."
353 echo "*** So far nobody cared to port it and if there is no volunteer it"
354 echo "*** might never happen. So, if you have interest to see glibc on"
355 echo "*** this platform visit"
356 echo "*** http://www.gnu.org/software/libc/porting.html"
357 echo "*** and join the group of porters"
363 dnl We need to use [ and ] for other purposes for a while now.
365 # Expand the configuration machine name into a subdirectory by architecture
366 # type and particular chip.
368 a29k | am29000) base_machine=a29k machine=a29k ;;
369 alpha*) base_machine=alpha machine=alpha/$machine ;;
370 arm*) base_machine=arm machine=arm/arm32/$machine ;;
371 c3[012]) base_machine=cx0 machine=cx0/c30 ;;
372 c4[04]) base_machine=cx0 machine=cx0/c40 ;;
373 hppa*64*) base_machine=hppa machine=hppa/hppa64 ;;
374 hppa*) base_machine=hppa machine=hppa/hppa1.1 ;;
375 i[3456]86) base_machine=i386 machine=i386/$machine ;;
376 ia64) base_machine=ia64 machine=ia64 ;;
377 m680?0) base_machine=m68k machine=m68k/$machine ;;
378 m68k) base_machine=m68k machine=m68k/m68020 ;;
379 m88???) base_machine=m88k machine=m88k/$machine ;;
380 m88k) base_machine=m88k machine=m88k/m88100 ;;
381 mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
382 mips*) base_machine=mips machine=mips/$machine ;;
383 powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
384 powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
385 s390) base_machine=s390 machine=s390/s390-32 ;;
386 s390x) base_machine=s390 machine=s390/s390-64 ;;
387 sh3*) base_machine=sh machine=sh/sh3 ;;
388 sh4*) base_machine=sh machine=sh/sh4 ;;
390 base_machine=sparc machine=sparc/sparc32 ;;
391 sparcv8 | supersparc | hypersparc)
392 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
393 sparcv8plus | sparcv8plusa | sparcv9)
394 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
395 sparcv8plusb | sparcv9b)
396 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
397 sparc64 | ultrasparc)
398 base_machine=sparc machine=sparc/sparc64 ;;
399 sparc64b | ultrasparc3)
400 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
401 thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
402 *) base_machine=$machine ;;
405 AC_SUBST(base_machine)
407 if test "$base_machine" = "i386"; then
408 AC_DEFINE(USE_REGPARMS)
411 # Compute the list of sysdep directories for this configuration.
412 # This can take a while to compute.
413 sysdep_dir=$srcdir/sysdeps
414 AC_MSG_CHECKING(sysdep dirs)
415 dnl We need to use [ and ] for other purposes for a while now.
417 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
418 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
423 netbsd* | 386bsd* | freebsd* | bsdi*)
424 base_os=unix/bsd/bsd4.4 ;;
425 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
427 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
430 base_os=unix/sysv/irix6/$os ;;
432 base_os=unix/sysv/sysv4 ;;
434 base_os=unix/sysv/hpux/$os ;;
436 base_os=unix/sysv/aix/aix4.3 ;;
438 base_os=standalone ;;
443 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
446 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
450 o=`echo $tail | sed 's/[0-9]*$//'`
451 if test $o != $tail; then
454 # For linux-gnu, try linux-gnu, then linux.
455 o=`echo $tail | sed 's/-.*$//'`
456 if test $o != $tail; then
460 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
463 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
469 # For sparc/sparc32, try sparc/sparc32 and then sparc.
472 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
474 # Prepend the machine's FPU directory unless --without-fp.
475 if test "$with_fp" = yes; then
478 mach="$mach /$1/nofpu"
484 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
487 # Find what sysdep directories exist.
489 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
490 for d in $add_ons_pfx ''; do
491 for b in $base ''; do
492 for m0 in $mach ''; do
493 for v in /$vendor ''; do
494 test "$v" = / && continue
495 for o in /$ostry ''; do
496 test "$o" = / && continue
497 for m in $mach ''; do
498 if test "$m0$b$v$o$m"; then
499 try="${d}sysdeps$m0$b$v$o$m"
500 test -n "$enable_debug_configure" &&
501 echo "$0 [DEBUG]: try $try" >&2
502 if test -d $srcdir/$try; then
503 sysnames="$sysnames $try"
504 { test -n "$o" || test -n "$b"; } && os_used=t
505 { test -n "$m" || test -n "$m0"; } && machine_used=t
516 if test -z "$os_used" && test "$os" != none; then
517 AC_MSG_ERROR(Operating system $os is not supported.)
519 if test -z "$machine_used" && test "$machine" != none; then
520 AC_MSG_ERROR(The $machine is not supported.)
523 # We have now validated the configuration.
526 # If using ELF, look for an `elf' subdirectory of each machine directory.
527 # We prepend these rather than inserting them whereever the machine appears
528 # because things specified by the machine's ELF ABI should override
529 # OS-specific things, and should always be the same for any OS on the
530 # machine (otherwise what's the point of an ABI?).
531 if test "$elf" = yes; then
533 for d in $add_ons_pfx ''; do
535 if test -d $srcdir/${d}sysdeps$m/elf; then
536 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
540 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
544 # Expand the list of system names into a full list of directories
545 # from each element's parent name and Implies file (if present).
548 while test $# -gt 0; do
552 case " $names " in *" $name "*)
553 # Already in the list.
557 # Report each name as we discover it, so there is no long pause in output.
558 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
560 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
564 *) xsrcdir=$srcdir/ ;;
566 test -n "$enable_debug_configure" &&
567 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
569 if test -f $xsrcdir$name/Implies; then
570 # Collect more names from the `Implies' file (removing comments).
571 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
573 for x in $implied_candidate; do
575 if test -d $xsrcdir$name_base/$x; then
576 implied="$implied $name_base/$x";
579 for d in $add_ons_pfx ''; do
583 *) try_srcdir=$srcdir/ ;;
585 test -n "$enable_debug_configure" &&
586 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
587 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
589 implied="$implied $try"
593 if test $found = no; then
594 AC_MSG_WARN($name/Implies specifies nonexistent $x)
601 # Add NAME to the list of names.
604 # Find the parent of NAME, using the empty string if it has none.
606 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
609 # Add the names implied by NAME, and NAME's parent (if it has one), to
610 # the list of names to be processed (the argument list). We prepend the
611 # implied names to the list and append the parent. We want implied
612 # directories to come before further directories inferred from the
613 # configuration components; this ensures that for sysv4, unix/common
614 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
616 sysnames="`echo $implied $* $parent`"
617 test -n "$sysnames" && set $sysnames
620 # Add the default directories.
621 default_sysnames=sysdeps/generic
622 if test "$elf" = yes; then
623 default_sysnames="sysdeps/generic/elf $default_sysnames"
625 sysnames="$names $default_sysnames"
627 # The other names were emitted during the scan.
628 AC_MSG_RESULT($default_sysnames)
634 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
635 # The makefiles need to use a different form to find it in $srcdir.
636 INSTALL='\$(..)./scripts/install-sh -c'
640 # We need the physical current working directory. We cannot use the
641 # "pwd -P" shell builtin since that's not portable. Instead we try to
642 # find a pwd binary. Note that assigning to the PWD environment
643 # variable might have some interesting side effects, so we don't do
645 AC_PATH_PROG(PWD_P, pwd, no)
646 if test "$PWD_P" = no; then
647 AC_MSG_ERROR(*** A pwd binary could not be found.)
650 # These programs are version sensitive.
652 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
653 [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
654 critic_missing="$critic_missing gcc")
655 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
656 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
657 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
660 if test -n "$critic_missing"; then
662 *** These critical programs are missing or too old:$critic_missing
663 *** Check the INSTALL file for required versions.])
667 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
668 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
669 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
670 MSGFMT=: aux_missing="$aux_missing msgfmt")
671 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
672 [GNU texinfo.* \([0-9][0-9.]*\)],
674 MAKEINFO=: aux_missing="$aux_missing makeinfo")
675 AC_CHECK_PROG_VER(SED, sed, --version,
676 [GNU sed version \([0-9]*\.[0-9.]*\)],
677 [3.0[2-9]*|3.[1-9]*|[4-9]*],
678 SED=: aux_missing="$aux_missing sed")
680 if test "x$with_cvs" != xyes; then
681 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
683 xno|x|x:) AUTOCONF=no ;;
686 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
687 if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
688 libc_cv_autoconf_works=yes
690 libc_cv_autoconf_works=no
692 test $libc_cv_autoconf_works = yes || AUTOCONF=no
695 test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf"
699 if test $host != $build; then
700 AC_CHECK_PROGS(BUILD_CC, gcc cc)
702 AC_SUBST(cross_compiling)
705 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
707 # Accept binutils 2.13 or newer.
708 AC_CHECK_PROG_VER(AS, $AS, --version,
709 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
710 [2.1[3-9]*], AS=: critic_missing=t)
711 AC_CHECK_PROG_VER(LD, $LD, --version,
712 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
713 [2.1[3-9]*], LD=: critic_missing=t)
715 test -n "$aux_missing" && AC_MSG_WARN([
716 *** These auxiliary programs are missing or incompatible versions:$aux_missing
717 *** some features will be disabled.
718 *** Check the INSTALL file for required versions.])
720 # glibcbug.in wants to know the compiler version.
721 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
724 # if using special system headers, find out the compiler's sekrit
725 # header directory and add that to the list. NOTE: Only does the right
726 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
727 if test -n "$sysheaders"; then
728 ccheaders=`$CC -print-file-name=include`
729 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
731 AC_SUBST(SYSINCLUDES)
733 # check if ranlib is necessary
734 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
735 cat > conftest.c <<EOF
740 $CC $CFLAGS -c conftest.c
741 $AR cr conftest.a conftest.o
742 cp conftest.a conftest2.a
744 if cmp -s conftest.a conftest2.a; then
745 libc_cv_ranlib_necessary=no
747 libc_cv_ranlib_necessary=yes
750 if test "$libc_cv_ranlib_necessary" = no; then
754 # Test if LD_LIBRARY_PATH contains the notation for the current directory
755 # since this would lead to problems installing/building glibc.
756 # LD_LIBRARY_PATH contains the current directory if one of the following
758 # - one of the terminals (":" and ";") is the first or last sign
759 # - two terminals occur directly after each other
760 # - the path contains an element with a dot in it
761 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
763 case ${LD_LIBRARY_PATH} in
764 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
765 ld_library_path_setting="contains current directory"
768 ld_library_path_setting="ok"
772 AC_MSG_RESULT($ld_library_path_setting)
773 if test "$ld_library_path_setting" != "ok"; then
775 *** LD_LIBRARY_PATH shouldn't contain the current directory when
776 *** building glibc. Please change the environment variable
777 *** and run configure again.])
780 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
781 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
782 libc_cv_gcc_static_libgcc=
784 libc_cv_gcc_static_libgcc=-static-libgcc
786 AC_SUBST(libc_cv_gcc_static_libgcc)
788 AC_PATH_PROG(BASH, bash, no)
789 if test "$BASH" != no &&
790 $BASH -c 'test "$BASH_VERSINFO" \
791 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
792 libc_cv_have_bash2=yes
794 libc_cv_have_bash2=no
796 AC_SUBST(libc_cv_have_bash2)
798 dnl We need a ksh compatible shell for tzselect.
799 if test "$BASH" = no; then
800 AC_PATH_PROG(KSH, ksh, no)
801 if test "$KSH" = no; then
811 AC_SUBST(libc_cv_have_ksh)
814 AC_PATH_PROG(PERL, perl, no)
815 if test "$PERL" != no &&
816 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
819 AC_PATH_PROG(INSTALL_INFO, install-info, no,
820 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
821 if test "$INSTALL_INFO" != "no"; then
822 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
824 # There is a hard ^_ on the next line. I am open to better ideas.
826 echo 'File: dir Node: Top This is the top of the INFO tree'
827 echo '* Menu:') >conftest.d/dir
828 (echo 'INFO-DIR-SECTION i-d-s works'
829 echo 'START-INFO-DIR-ENTRY'
830 echo '* Prog: (prog). Program.'
831 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
832 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AS_MESSAGE_LOG_FD 2>&1
834 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
835 then libc_cv_old_debian_install_info=no
836 else libc_cv_old_debian_install_info=yes
838 else libc_cv_old_debian_install_info=no testfailed=t
841 if test -n "$testfailed"
842 then AC_MSG_WARN([install-info errored out, check config.log])
844 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
846 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
848 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
850 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
851 echo '#include <stddef.h>
852 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
853 if eval "$ac_cpp conftest.c 2>/dev/null" \
854 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
855 libc_cv_signed_size_t=no
857 libc_cv_signed_size_t=yes
860 if test $libc_cv_signed_size_t = yes; then
861 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
862 cat >> confdefs.h <<\EOF
864 #define __SIZE_TYPE__ unsigned
868 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
870 [#define __need_size_t
871 #define __need_wchar_t
874 #include <stddef.h>], [size_t size; wchar_t wchar;
876 #error stddef.h ignored __need_*
878 if (&size == NULL || &wchar == NULL) abort ();],
879 libc_cv_friendly_stddef=yes,
880 libc_cv_friendly_stddef=no)])
881 if test $libc_cv_friendly_stddef = yes; then
882 config_vars="$config_vars
883 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
886 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
887 libc_cv_need_minus_P, [dnl
888 cat > conftest.S <<EOF
889 #include "confdefs.h"
890 /* Nothing whatsoever. */
892 if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
893 libc_cv_need_minus_P=no
895 libc_cv_need_minus_P=yes
898 if test $libc_cv_need_minus_P = yes; then
899 config_vars="$config_vars
900 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
903 AC_MSG_CHECKING(whether .text pseudo-op must be used)
904 AC_CACHE_VAL(libc_cv_dot_text, [dnl
905 cat > conftest.s <<EOF
909 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
910 libc_cv_dot_text=.text
913 if test -z "$libc_cv_dot_text"; then
919 AC_CACHE_CHECK(for assembler global-symbol directive,
920 libc_cv_asm_global_directive, [dnl
921 libc_cv_asm_global_directive=UNKNOWN
922 for ac_globl in .globl .global .EXPORT; do
923 cat > conftest.s <<EOF
928 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
929 libc_cv_asm_global_directive=${ac_globl}
932 test $libc_cv_asm_global_directive != UNKNOWN && break
934 if test $libc_cv_asm_global_directive = UNKNOWN; then
935 AC_MSG_ERROR(cannot determine asm global directive)
937 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
940 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
941 cat > conftest.s <<EOF
944 .set glibc_conftest_frobozz,foo
945 $libc_cv_asm_global_directive glibc_conftest_frobozz
947 # The alpha-dec-osf1 assembler gives only a warning for `.set'
948 # (but it doesn't work), so we must do a linking check to be sure.
949 cat > conftest1.c <<\EOF
950 extern int glibc_conftest_frobozz;
951 main () { printf ("%d\n", glibc_conftest_frobozz); }
953 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
954 -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
955 libc_cv_asm_set_directive=yes
957 libc_cv_asm_set_directive=no
960 if test $libc_cv_asm_set_directive = yes; then
961 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
964 AC_CACHE_CHECK(for assembler .type directive prefix,
965 libc_cv_asm_type_prefix, [dnl
966 libc_cv_asm_type_prefix=no
967 for ac_try_prefix in '@' '%' '#'; do
968 cat > conftest.s <<EOF
970 ${libc_cv_asm_global_directive} foo
971 .type foo, ${ac_try_prefix}object
976 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
977 libc_cv_asm_type_prefix=${ac_try_prefix}
980 test "x$libc_cv_asm_type_prefix" != xno && break
982 if test "x$libc_cv_asm_type_prefix" != xno; then
983 AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
986 # The Aix ld uses global .symbol_names instead of symbol_names.
987 # Unfortunately also used in the PPC64 ELF ABI.
988 case "${os}${machine}" in
989 aix4.3* | linux*powerpc/powerpc64*)
990 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
993 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
994 [cat > conftest.s <<EOF
997 .symver _sym,sym@VERS
999 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1000 libc_cv_asm_symver_directive=yes
1002 libc_cv_asm_symver_directive=no
1005 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1006 if test $libc_cv_asm_symver_directive = yes; then
1007 cat > conftest.s <<EOF
1010 .symver _sym,sym@VERS
1012 cat > conftest.map <<EOF
1021 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1022 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
1023 -nostartfiles -nostdlib
1024 -Wl,--version-script,conftest.map
1025 1>&AS_MESSAGE_LOG_FD]);
1027 libc_cv_ld_version_script_option=yes
1029 libc_cv_ld_version_script_option=no
1032 libc_cv_ld_version_script_option=no
1035 libc_cv_ld_version_script_option=no
1038 if test $shared != no &&
1039 test $libc_cv_asm_symver_directive = yes &&
1040 test $libc_cv_ld_version_script_option = yes &&
1041 test $enable_versioning = yes; then
1043 AC_DEFINE(DO_VERSIONING)
1047 AC_SUBST(VERSIONING)
1049 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1051 *** WARNING: You should not compile GNU libc without versioning. Not using
1052 *** versioning will introduce incompatibilities so that old binaries
1053 *** will not run anymore.
1054 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1056 if test $elf = yes; then
1057 AC_CACHE_CHECK(for .previous assembler directive,
1058 libc_cv_asm_previous_directive, [dnl
1059 cat > conftest.s <<EOF
1060 .section foo_section
1063 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1064 libc_cv_asm_previous_directive=yes
1066 libc_cv_asm_previous_directive=no
1069 if test $libc_cv_asm_previous_directive = yes; then
1070 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1072 AC_CACHE_CHECK(for .popsection assembler directive,
1073 libc_cv_asm_popsection_directive, [dnl
1074 cat > conftest.s <<EOF
1075 .pushsection foo_section
1078 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1079 libc_cv_asm_popsection_directive=yes
1081 libc_cv_asm_popsection_directive=no
1084 if test $libc_cv_asm_popsection_directive = yes; then
1085 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1088 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1089 libc_cv_asm_protected_directive, [dnl
1090 cat > conftest.s <<EOF
1096 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1097 libc_cv_asm_protected_directive=yes
1099 libc_cv_asm_protected_directive=no
1102 AC_SUBST(libc_cv_asm_protected_directive)
1103 AC_DEFINE(HAVE_PROTECTED)
1104 AC_DEFINE(HAVE_HIDDEN)
1106 if test $libc_cv_asm_protected_directive = yes; then
1107 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1108 libc_cv_visibility_attribute,
1109 [cat > conftest.c <<EOF
1110 int foo __attribute__ ((visibility ("hidden"))) = 1;
1111 int bar __attribute__ ((visibility ("protected"))) = 1;
1113 libc_cv_visibility_attribute=no
1114 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
1115 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1116 if grep '\.protected.*bar' conftest.s >/dev/null; then
1117 libc_cv_visibility_attribute=yes
1123 if test $libc_cv_visibility_attribute = yes; then
1124 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1128 if test $libc_cv_visibility_attribute = yes; then
1129 AC_CACHE_CHECK(for broken __attribute__((visibility())),
1130 libc_cv_broken_visibility_attribute,
1131 [cat > conftest.c <<EOF
1133 int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1134 int bar (int x) { return x; }
1136 libc_cv_broken_visibility_attribute=yes
1137 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
1139 if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
1141 libc_cv_broken_visibility_attribute=no
1144 rm -f conftest.c conftest.s
1146 if test $libc_cv_broken_visibility_attribute = yes; then
1147 AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1151 AC_CACHE_CHECK(for broken __attribute__((alias())),
1152 libc_cv_broken_alias_attribute,
1153 [cat > conftest.c <<EOF
1154 extern int foo (int x) __asm ("xyzzy");
1155 int bar (int x) { return x; }
1156 extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1158 extern __typeof (dfoo) dfoo __asm ("abccb");
1161 libc_cv_broken_alias_attribute=yes
1162 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
1163 if grep 'xyzzy' conftest.s >/dev/null &&
1164 grep 'abccb' conftest.s >/dev/null; then
1165 libc_cv_broken_alias_attribute=no
1168 rm -f conftest.c conftest.s
1170 if test $libc_cv_broken_alias_attribute = yes; then
1171 AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1174 if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1175 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1176 libc_cv_have_sdata_section,
1177 [echo "int i;" > conftest.c
1178 libc_cv_have_sdata_section=no
1179 if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1180 | grep '\.sdata' >/dev/null; then
1181 libc_cv_have_sdata_section=yes
1183 rm -f conftest.c conftest.so
1185 if test $libc_cv_have_sdata_section = yes; then
1186 AC_DEFINE(HAVE_SDATA_SECTION)
1190 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1191 libc_cv_initfinit_array, [dnl
1192 cat > conftest.c <<EOF
1193 int _start (void) { return 0; }
1194 int __start (void) { return 0; }
1195 int foo (void) { return 1; }
1196 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1198 if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1199 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1201 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1202 libc_cv_initfinit_array=yes
1204 libc_cv_initfinit_array=no
1207 libc_cv_initfinit_array=no
1210 AC_SUBST(libc_cv_initfinit_array)
1211 if test $libc_cv_initfinit_array = yes; then
1212 AC_DEFINE(HAVE_INITFINI_ARRAY)
1215 AC_CACHE_CHECK(for -z nodelete option,
1216 libc_cv_z_nodelete, [dnl
1217 cat > conftest.c <<EOF
1218 int _start (void) { return 42; }
1220 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1221 -nostartfiles -nostdlib
1222 -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1224 libc_cv_z_nodelete=yes
1226 libc_cv_z_nodelete=no
1229 AC_SUBST(libc_cv_z_nodelete)
1231 AC_CACHE_CHECK(for -z nodlopen option,
1232 libc_cv_z_nodlopen, [dnl
1233 cat > conftest.c <<EOF
1234 int _start (void) { return 42; }
1236 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1237 -nostartfiles -nostdlib
1238 -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1240 libc_cv_z_nodlopen=yes
1242 libc_cv_z_nodlopen=no
1245 AC_SUBST(libc_cv_z_nodlopen)
1247 AC_CACHE_CHECK(for -z initfirst option,
1248 libc_cv_z_initfirst, [dnl
1249 cat > conftest.c <<EOF
1250 int _start (void) { return 42; }
1252 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1253 -nostartfiles -nostdlib
1254 -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1256 libc_cv_z_initfirst=yes
1258 libc_cv_z_initfirst=no
1261 AC_SUBST(libc_cv_z_initfirst)
1263 AC_CACHE_CHECK(for -Bgroup option,
1264 libc_cv_Bgroup, [dnl
1265 cat > conftest.c <<EOF
1266 int _start (void) { return 42; }
1268 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1275 AC_SUBST(libc_cv_Bgroup)
1277 AC_CACHE_CHECK(for -z combreloc,
1278 libc_cv_z_combreloc, [dnl
1279 cat > conftest.c <<EOF
1280 extern int bar (int);
1282 int foo (void) { return bar (mumble); }
1284 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1285 -nostdlib -nostartfiles
1286 -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1288 dnl The following test is a bit weak. We must use a tool which can test
1289 dnl cross-platform since the gcc used can be a cross compiler. Without
1290 dnl introducing new options this is not easily doable. Instead use a tool
1291 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1292 dnl look for a section named .rel.dyn.
1293 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1294 libc_cv_z_combreloc=yes
1296 libc_cv_z_combreloc=no
1299 libc_cv_z_combreloc=no
1302 if test "$libc_cv_z_combreloc" = yes; then
1303 AC_DEFINE(HAVE_Z_COMBRELOC)
1306 AC_SUBST(libc_cv_z_combreloc)
1308 if test $elf != yes; then
1309 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1310 [AC_TRY_COMPILE(, [asm (".section .init");
1311 asm (".section .fini");
1312 asm ("${libc_cv_dot_text}");],
1313 libc_cv_have_initfini=yes,
1314 libc_cv_have_initfini=no)])
1315 AC_SUBST(libc_cv_have_initfini)dnl
1316 if test $libc_cv_have_initfini = yes; then
1317 AC_DEFINE(HAVE_INITFINI)
1321 if test $elf = yes -a $gnu_ld = yes; then
1322 AC_CACHE_CHECK(whether cc puts quotes around section names,
1323 libc_cv_have_section_quotes,
1324 [cat > conftest.c <<EOF
1325 static const int foo
1326 __attribute__ ((section ("bar"))) = 1;
1328 if ${CC-cc} -S conftest.c -o conftest.s; then
1329 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1330 libc_cv_have_section_quotes=yes
1332 libc_cv_have_section_quotes=no
1335 libc_cv_have_section_quotes=unknown
1339 if test $libc_cv_have_section_quotes = yes; then
1340 AC_DEFINE(HAVE_SECTION_QUOTES)
1344 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1345 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1346 [cat > conftest.$ac_ext <<EOF
1347 dnl This sometimes fails to find confdefs.h, for some reason.
1348 dnl [#]line __oline__ "[$]0"
1349 [#]line __oline__ "configure"
1350 #include "confdefs.h"
1351 void underscore_test(void) {
1354 if AC_TRY_EVAL(ac_compile); then
1355 if grep _underscore_test conftest* >/dev/null; then
1356 ifelse([$1], , :, [rm -f conftest*
1359 ifelse([$2], , , [rm -f conftest*
1363 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1364 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1365 ifelse([$2], , , [rm -f conftest*
1370 if test $elf = yes; then
1371 libc_cv_asm_underscores=no
1373 if test $ac_cv_prog_cc_works = yes; then
1374 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1375 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1376 libc_cv_asm_underscores=yes,
1377 libc_cv_asm_underscores=no)])
1379 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1380 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1381 libc_cv_asm_underscores=no)])
1384 if test $libc_cv_asm_underscores = no; then
1385 AC_DEFINE(NO_UNDERSCORES)
1388 if test $elf = yes; then
1389 libc_cv_weak_symbols=yes
1392 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1394 cat > conftest.s <<EOF
1396 ${libc_cv_asm_global_directive} foo
1399 .weak bar; bar = foo
1401 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1402 libc_cv_asm_weak_directive=yes
1404 libc_cv_asm_weak_directive=no
1408 if test $libc_cv_asm_weak_directive = no; then
1409 AC_CACHE_CHECK(for assembler .weakext directive,
1410 libc_cv_asm_weakext_directive,
1412 cat > conftest.s <<EOF
1414 ${libc_cv_asm_global_directive} foo
1418 ${libc_cv_asm_global_directive} baz
1421 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1422 libc_cv_asm_weakext_directive=yes
1424 libc_cv_asm_weakext_directive=no
1430 if test $libc_cv_asm_weak_directive = yes; then
1431 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1432 elif test $libc_cv_asm_weakext_directive = yes; then
1433 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1436 dnl The standard hppa assembler uses `;' to start comments and `!'
1437 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1439 case "${host_cpu}-${host_os}" in
1441 libc_cv_asm_line_sep='@'
1442 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1445 AC_CACHE_CHECK(for assembler line separator,
1446 libc_cv_asm_line_sep, [dnl
1447 cat > conftest.s <<EOF
1450 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1451 libc_cv_asm_line_sep='!'
1453 if test -z "$enable_hacker_mode"; then
1454 echo "*** You need a newer assembler to compile glibc"
1458 libc_cv_asm_line_sep=';'
1461 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1465 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1466 cat > conftest.c <<\EOF
1471 dnl No \ in command here because it ends up inside ''.
1472 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1473 -nostdlib -nostartfiles -Wl,--no-whole-archive
1474 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1475 libc_cv_ld_no_whole_archive=yes
1477 libc_cv_ld_no_whole_archive=no
1480 if test $libc_cv_ld_no_whole_archive = yes; then
1481 no_whole_archive=-Wl,--no-whole-archive
1483 AC_SUBST(no_whole_archive)dnl
1485 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1486 cat > conftest.c <<\EOF
1491 dnl No \ in command here because it ends up inside ''.
1492 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1493 -nostdlib -nostartfiles -fexceptions
1494 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1495 libc_cv_gcc_exceptions=yes
1497 libc_cv_gcc_exceptions=no
1500 if test $libc_cv_gcc_exceptions = yes; then
1501 exceptions=-fexceptions
1503 AC_SUBST(exceptions)dnl
1505 if test "$host_cpu" = powerpc ; then
1506 # Check for a bug present in at least versions 2.8.x of GCC
1507 # and versions 1.0.x of EGCS.
1508 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1509 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1510 libc_cv_c_asmcr0_bug='no',
1511 libc_cv_c_asmcr0_bug='yes')])
1512 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1513 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1517 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1518 [cat > conftest.c <<EOF
1519 #line __oline__ "configure"
1520 static char *__EH_FRAME_BEGIN__;
1523 #ifdef CHECK__register_frame
1524 __register_frame (__EH_FRAME_BEGIN__);
1525 __deregister_frame (__EH_FRAME_BEGIN__);
1527 #ifdef CHECK__register_frame_info
1528 __register_frame_info (__EH_FRAME_BEGIN__);
1529 __deregister_frame_info (__EH_FRAME_BEGIN__);
1534 /* FIXME: this is fragile. */
1543 dl_iterate_phdr () {}
1545 dnl No \ in command here because it ends up inside ''.
1546 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1547 -nostdlib -nostartfiles
1548 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1549 libc_cv_gcc_dwarf2_unwind_info=static
1551 libc_cv_gcc_dwarf2_unwind_info=no
1553 # Some platforms' specs put -lgcc first. The second one doesn't hurt.
1554 libc_unwind_check="${CC-cc} $CFLAGS -DCHECK__register_frame_info \
1555 -nostdlib -nostartfiles -o conftest conftest.c \
1556 -lgcc -lgcc_eh -lgcc"
1557 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]); then
1558 if $libc_unwind_check -v 2>&1 >/dev/null \
1559 | grep -q -- --eh-frame-hdr; then
1560 libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1562 libc_cv_gcc_dwarf2_unwind_info=static
1565 libc_cv_gcc_dwarf2_unwind_info=no
1567 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1568 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1569 -nostdlib -nostartfiles
1570 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1571 libc_cv_gcc_dwarf2_unwind_info=yes
1573 libc_cv_gcc_dwarf2_unwind_info=no
1577 case $libc_cv_gcc_dwarf2_unwind_info in
1579 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1582 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1583 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1587 dnl Check whether compiler understands __builtin_expect.
1588 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1589 [cat > conftest.c <<EOF
1590 #line __oline__ "configure"
1593 a = __builtin_expect (a, 10);
1594 return a == 10 ? 0 : 1;
1597 dnl No \ in command here because it ends up inside ''.
1598 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1599 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1600 libc_cv_gcc_builtin_expect=yes
1602 libc_cv_gcc_builtin_expect=no
1605 if test "$libc_cv_gcc_builtin_expect" = yes; then
1606 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1609 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1610 cat > conftest.c <<\EOF
1613 __builtin_memset (x, 0, 1000);
1617 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1619 libc_cv_gcc_builtin_memset=no
1621 libc_cv_gcc_builtin_memset=yes
1624 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1625 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1628 dnl Check whether the compiler supports subtraction of local labels.
1629 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1630 [cat > conftest.c <<EOF
1632 #line __oline__ "configure"
1635 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1636 void *p = &&l1 + ar[a];
1645 dnl No \ in command here because it ends up inside ''.
1646 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1647 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1648 libc_cv_gcc_subtract_local_labels=yes
1650 libc_cv_gcc_subtract_local_labels=no
1653 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1654 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1657 dnl Check whether the compiler supports the __thread keyword.
1658 if test "x$use__thread" != xno; then
1659 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1660 [cat > conftest.c <<\EOF
1661 __thread int a = 42;
1663 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1664 libc_cv_gcc___thread=yes
1666 libc_cv_gcc___thread=no
1669 if test "$libc_cv_gcc___thread" = yes; then
1670 AC_DEFINE(HAVE___THREAD)
1673 libc_cv_gcc___thread=no
1676 if test "$libc_cv_gcc___thread" = yes; then
1677 dnl Check whether the compiler supports the tls_model attribute.
1678 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1679 cat > conftest.c <<\EOF
1680 extern __thread int a __attribute__((tls_model ("initial-exec")));
1682 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1683 libc_cv_gcc_tls_model_attr=yes
1685 libc_cv_gcc_tls_model_attr=no
1688 if test "$libc_cv_gcc_tls_model_attr" = yes; then
1689 AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1693 dnl Check whether we have the gd library available.
1694 AC_MSG_CHECKING(for libgd)
1695 if test "$with_gd" != "no"; then
1696 old_CFLAGS="$CFLAGS"
1697 CFLAGS="$CFLAGS $libgd_include"
1698 old_LDFLAGS="$LDFLAGS"
1699 LDFLAGS="$LDFLAGS $libgd_ldflags"
1701 LIBS="$LIBS -lgd -lpng -lz -lm"
1702 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1703 CFLAGS="$old_CFLAGS"
1704 LDFLAGS="$old_LDFLAGS"
1709 AC_MSG_RESULT($LIBGD)
1712 dnl check for the size of 'long double'.
1713 AC_CHECK_SIZEOF(long double, 0)
1714 sizeof_long_double=$ac_cv_sizeof_long_double
1715 AC_SUBST(sizeof_long_double)
1717 ### End of automated tests.
1718 ### Now run sysdeps configure fragments.
1720 # They also can set these variables.
1722 ldd_rewrite_script=no
1723 libc_cv_sysconfdir=$sysconfdir
1724 libc_cv_gcc_unwind_find_fde=no
1726 # Iterate over all the sysdep directories we will use, running their
1727 # configure fragments, and looking for a uname implementation.
1729 for dir in $sysnames; do
1732 *) dest=$srcdir/$dir ;;
1734 if test -r $dest/configure; then
1735 AC_MSG_RESULT(running configure fragment for $dest)
1739 if test -z "$uname"; then
1740 if test -r $dest/uname.c ||
1741 test -r $dest/uname.S ||
1742 { test -r $dest/syscalls.list &&
1743 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1750 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1751 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1753 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1755 # If we will use the generic uname implementation, we must figure out what
1756 # it will say by examining the system, and write the results in config-name.h.
1757 if test "$uname" = "sysdeps/generic"; then
1760 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1762 if test $uname_sysname != $config_os; then
1763 config_release=`echo $config_os | sed s/$uname_sysname//`
1766 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1767 if test -r /vmunix; then
1768 kernel_id=`strings /vmunix | grep UNIX`
1769 elif test -r /dynix; then
1770 kernel_id=`strings /dynix | grep DYNIX`
1776 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1779 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1781 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1782 != x$config_release; then
1783 # The configuration release is a substring of the kernel release.
1784 libc_cv_uname_release=$kernel_release
1785 elif test x$config_release != x; then
1786 libc_cv_uname_release=$config_release
1787 elif test x$kernel_release != x; then
1788 libc_cv_uname_release=$kernel_release
1790 libc_cv_uname_release=unknown
1792 uname_release="$libc_cv_uname_release"
1794 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1797 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1799 if test -n "$kernel_version"; then
1800 libc_cv_uname_version="$kernel_version"
1802 libc_cv_uname_version=unknown
1804 uname_version="$libc_cv_uname_version"
1806 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1807 config_uname=config-name.h:config-name.in
1809 # For non-generic uname, we don't need to create config-name.h at all.
1813 dnl This is tested by existing code and it's simpler to avoid changing it.
1814 AC_DEFINE(USE_IN_LIBIO)
1816 # Test for old glibc 2.0.x headers so that they can be removed properly
1817 # Search only in includedir.
1818 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1819 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1821 old_glibc_headers=yes
1823 old_glibc_headers=no
1825 AC_MSG_RESULT($old_glibc_headers)
1826 if test ${old_glibc_headers} = yes; then
1827 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1828 AC_MSG_WARN(*** be removed.)
1830 AC_SUBST(old_glibc_headers)
1832 AC_SUBST(libc_cv_slibdir)
1833 AC_SUBST(libc_cv_localedir)
1834 AC_SUBST(libc_cv_sysconfdir)
1835 AC_SUBST(libc_cv_rootsbindir)
1837 AC_SUBST(use_ldconfig)
1838 AC_SUBST(ldd_rewrite_script)
1840 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1841 if test $gnu_ld = yes; then
1842 AC_DEFINE(HAVE_GNU_LD)
1844 if test $gnu_as = yes; then
1845 AC_DEFINE(HAVE_GNU_AS)
1847 if test $elf = yes; then
1850 if test $xcoff = yes; then
1851 AC_DEFINE(HAVE_XCOFF)
1856 if test $shared = default; then
1857 if test $gnu_ld = yes; then
1860 # For now we do not assume shared libs are available. In future more
1861 # tests might become available.
1866 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1868 cat > conftest.c <<EOF
1869 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1870 # error PIC is default.
1873 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
1877 AC_SUBST(pic_default)
1882 AC_SUBST(static_nss)
1883 AC_SUBST(nopic_initfini)
1888 *door*) linux_doors=yes ;;
1889 *) linux_doors=no ;;
1891 AC_SUBST(linux_doors)
1893 dnl See sysdeps/mach/configure.in for this variable.
1894 AC_SUBST(mach_interface_list)
1896 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1899 config_makefile=Makefile
1902 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1903 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1907 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
1908 AC_CONFIG_COMMANDS([default],[[
1909 case $CONFIG_FILES in *config.make*)
1910 echo "$config_vars" >> config.make;;
1912 test -d bits || mkdir bits]],[[config_vars='$config_vars']])