1 dnl Process this file with autoconf to produce a configure script.
3 AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required.
4 AC_INIT(include/features.h)
5 AC_CONFIG_HEADER(config.h)
6 AC_CONFIG_AUX_DIR(scripts)
8 # This will get text that should go into config.make.
11 # Check for a --with-gmp argument and set gmp-srcdir in config.make.
13 --with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed),
16 yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
18 *) config_vars="$config_vars
19 gmp-srcdir = $withval" ;;
22 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
24 --with-gd=DIR find libgd include dir and library with prefix DIR,
28 *) libgd_include="-I$withval/include"
29 libgd_ldflags="-L$withval/lib" ;;
32 AC_ARG_WITH(gd-include, dnl
33 --with-gd-include=DIR find libgd include files in DIR,
35 case "$with_gd_include" in
37 *) libgd_include="-I$withval" ;;
40 AC_ARG_WITH(gd-lib, dnl
41 --with-gd-lib=DIR find libgd library files in DIR,
43 case "$with_gd_lib" in
45 *) libgd_ldflags="-L$withval" ;;
49 if test -n "$libgd_include"; then
50 config_vars="$config_vars
51 CFLAGS-memusagestat.c = $libgd_include"
53 if test -n "$libgd_ldflags"; then
54 config_vars="$config_vars
55 libgd-LDFLAGS = $libgd_ldflags"
58 dnl Arguments to specify presence of other packages/features.
60 [ --with-fp if using floating-point hardware [default=yes]],
61 with_fp=$withval, with_fp=yes)
63 AC_ARG_WITH(binutils, dnl
64 --with-binutils=PATH specify location of binutils (as and ld),
65 path_binutils=$withval, path_binutils='')
67 --with-elf if using the ELF object format,
69 AC_ARG_WITH(xcoff, dnl
70 --with-xcoff if using the XCOFF object format,
71 xcoff=$withval, xcoff=no)
73 [ --without-cvs if CVS should not be used],
74 with_cvs=$withval, with_cvs=yes)
75 if test "$with_cvs" = yes; then
76 if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
83 AC_ARG_WITH(headers, dnl
84 [ --with-headers=PATH location of system headers to use
85 [e.g. /usr/src/linux/include]
86 [default=compiler default]],
87 sysheaders=$withval, sysheaders='')
89 AC_ARG_ENABLE(libio, dnl
90 [ --enable-libio build in GNU libio instead of GNU stdio],
91 [if test $enableval = yes; then
98 AC_ARG_ENABLE(sanity-checks, dnl
99 [ --disable-sanity-checks really do not use threads (should not be used
100 except in special situations) [default=yes]],
101 enable_sanity=$enableval, enable_sanity=yes)
103 dnl Arguments to enable or disable building the static, shared, profiled,
104 dnl and -fomit-frame-pointer libraries.
105 dnl I've disabled this for now since we cannot build glibc without static
106 dnl libraries built in the moment.
107 dnl AC_ARG_ENABLE(static, dnl
108 dnl [ --enable-static build static library [default=yes]],
109 dnl static=$enableval, static=yes)
111 AC_ARG_ENABLE(shared, dnl
112 [ --enable-shared build shared library [default=yes if GNU ld & ELF]],
113 shared=$enableval, shared=default)
114 AC_ARG_ENABLE(profile, dnl
115 [ --enable-profile build profiled library [default=yes]],
116 profile=$enableval, profile=yes)
117 AC_ARG_ENABLE(omitfp, dnl
118 [ --enable-omitfp build undebuggable optimized library [default=no]],
119 omitfp=$enableval, omitfp=no)
120 AC_ARG_ENABLE(bounded, dnl
121 [ --enable-bounded build with runtime bounds checking [default=no]],
122 bounded=$enableval, bounded=no)
123 AC_ARG_ENABLE(versioning, dnl
124 [ --disable-versioning do not include versioning information in the
125 library objects [default=yes if supported]],
126 enable_versioning=$enableval, enable_versioning=yes)
128 AC_ARG_ENABLE(oldest-abi, dnl
129 [ --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
130 [default=glibc default]],
131 oldest_abi=$enableval, oldest_abi=no)
132 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
135 AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
139 dnl Generic infrastructure for drop-in additions to libc.
140 AC_ARG_ENABLE(add-ons, dnl
141 [ --enable-add-ons[=DIR1,DIR2]...
142 configure and build add-ons in DIR1,DIR2,...
143 search for add-ons if no parameter given],
144 [case "$enableval" in
145 yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
146 test "$add_ons" = "*" && add_ons= ;;
147 *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
151 dnl Let the user avoid using TLS. Don't know why but...
153 [ --without-tls prevent support for TLS],
154 usetls=$withval, usetls=yes)
156 AC_CONFIG_SUBDIRS($add_ons)
158 if test x"$add_ons" != x; then
159 for f in $add_ons; do
161 if test "$f" = "crypt"; then
163 *** It seems that you're using an old \`crypt' add-on. crypt is now
164 *** part of glibc and using the old add-on will not work with this
165 *** release. Start again with fresh sources and without the old
166 *** \`crypt' add-on.])
168 if test "$f" = "localedata"; then
170 *** It seems that you're using an old \`localedata' add-on. localedata
171 *** is now part of glibc and using the old add-on will not work with
172 *** this release. Start again with fresh sources and without the old
173 *** \`localedata' add-on.])
175 # Test whether such a subdir really exists.
176 if test -d $srcdir/$f; then
177 add_ons_pfx="$add_ons_pfx $f/"
179 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
184 dnl On some platforms we cannot use dynamic loading. We must provide
185 dnl static NSS modules.
186 AC_ARG_ENABLE(static-nss, dnl
187 [ --enable-static-nss build static NSS modules [default=no]],
188 static_nss=$enableval, static_nss=no)
189 if test x"$static_nss" = xyes; then
190 AC_DEFINE(DO_STATIC_NSS)
193 AC_ARG_ENABLE(force-install,
194 [ --disable-force-install don't force installation of files from this package,
195 even if they are older than the installed files],
196 force_install=$enableval, force_install=yes)
197 AC_SUBST(force_install)
199 dnl On some platforms we allow dropping compatibility with all kernel
201 AC_ARG_ENABLE(kernel,
202 [ --enable-kernel=VERSION compile for compatibility with kernel not older
204 minimum_kernel=$enableval)
205 dnl Prevent unreasonable values.
206 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
207 # Better nothing than this.
210 if test "$minimum_kernel" = current; then
211 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
215 dnl For the development we sometimes want gcc to issue even more warnings.
216 dnl This is not the default since many of the extra warnings are not
218 AC_ARG_ENABLE(all-warnings,
219 [ --enable-all-warnings enable all useful warnings gcc can issue],
220 all_warnings=$enableval)
221 AC_SUBST(all_warnings)
225 # The way shlib-versions is used to generate soversions.mk uses a
226 # fairly simplistic model for name recognition that can't distinguish
227 # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
228 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
229 # tell. This doesn't get used much beyond that, so it's fairly safe.
234 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
238 # We keep the original values in `$config_*' and never modify them, so we
239 # can write them unchanged into config.make. Everything else uses
240 # $machine, $vendor, and $os, and changes them whenever convenient.
241 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
243 # Don't allow vendor == "unknown"
244 test "$config_vendor" = unknown && config_vendor=
245 config_os="`echo $config_os | sed 's/^unknown-//'`"
247 # Some configurations imply other options.
249 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
250 # These systems always use GNU tools.
251 gnu_ld=yes gnu_as=yes ;;
254 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
255 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
257 gnu* | linux* | sysv4* | solaris2* | irix6*)
258 # These systems (almost) always use the ELF format.
262 # These systems are always xcoff
268 machine=$config_machine
269 vendor=$config_vendor
272 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
274 if test "$machine" = rs6000; then
279 ### I put this here to prevent those annoying emails from people who cannot
280 ### read and try to compile glibc on unsupported platforms. --drepper
282 ### By using the undocumented --enable-hacker-mode option for configure
283 ### one can skip this test to make the configuration not fail for unsupported
286 if test -z "$enable_hacker_mode"; then
287 case "$machine-$host_os" in
288 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
291 echo "*** The GNU C library is currently not available for this platform."
292 echo "*** So far nobody cared to port it and if there is no volunteer it"
293 echo "*** might never happen. So, if you have interest to see glibc on"
294 echo "*** this platform visit"
295 echo "*** http://www.gnu.org/software/libc/porting.html"
296 echo "*** and join the group of porters"
302 dnl We need to use [ and ] for other purposes for a while now.
304 # Expand the configuration machine name into a subdirectory by architecture
305 # type and particular chip.
307 a29k | am29000) base_machine=a29k machine=a29k ;;
308 alpha*) base_machine=alpha machine=alpha/$machine ;;
309 arm*) base_machine=arm machine=arm/arm32/$machine ;;
310 c3[012]) base_machine=cx0 machine=cx0/c30 ;;
311 c4[04]) base_machine=cx0 machine=cx0/c40 ;;
312 hppa*64*) base_machine=hppa machine=hppa/hppa64 ;;
313 hppa*) base_machine=hppa machine=hppa/hppa1.1 ;;
314 i[3456]86) base_machine=i386 machine=i386/$machine ;;
315 ia64) base_machine=ia64 machine=ia64 ;;
316 m680?0) base_machine=m68k machine=m68k/$machine ;;
317 m68k) base_machine=m68k machine=m68k/m68020 ;;
318 m88???) base_machine=m88k machine=m88k/$machine ;;
319 m88k) base_machine=m88k machine=m88k/m88100 ;;
320 mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
321 mips*) base_machine=mips
323 IP22) machine=mips/mips3 ;;
324 *) machine=mips/$machine ;;
326 s390) base_machine=s390 machine=s390/s390-32 ;;
327 s390x) base_machine=s390 machine=s390/s390-64 ;;
328 sh3*) base_machine=sh machine=sh/sh3 ;;
329 sh4*) base_machine=sh machine=sh/sh4 ;;
331 base_machine=sparc machine=sparc/sparc32 ;;
332 sparcv8 | supersparc | hypersparc)
333 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
334 sparcv8plus | sparcv8plusa | sparcv9)
335 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
336 sparcv8plusb | sparcv9b)
337 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
338 sparc64 | ultrasparc)
339 base_machine=sparc machine=sparc/sparc64 ;;
340 sparc64b | ultrasparc3)
341 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
342 thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
343 *) base_machine=$machine ;;
346 AC_SUBST(base_machine)
348 if test "$base_machine" = "i386"; then
349 AC_DEFINE(USE_REGPARMS)
352 # Compute the list of sysdep directories for this configuration.
353 # This can take a while to compute.
354 sysdep_dir=$srcdir/sysdeps
355 AC_MSG_CHECKING(sysdep dirs)
356 dnl We need to use [ and ] for other purposes for a while now.
358 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
359 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
364 netbsd* | 386bsd* | freebsd* | bsdi*)
365 base_os=unix/bsd/bsd4.4 ;;
366 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
368 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
371 base_os=unix/sysv/irix6/$os ;;
373 base_os=unix/sysv/sysv4 ;;
375 base_os=unix/sysv/hpux/$os ;;
377 base_os=unix/sysv/aix/aix4.3 ;;
379 base_os=standalone ;;
384 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
387 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
391 o=`echo $tail | sed 's/[0-9]*$//'`
392 if test $o != $tail; then
395 # For linux-gnu, try linux-gnu, then linux.
396 o=`echo $tail | sed 's/-.*$//'`
397 if test $o != $tail; then
401 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
404 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
410 # For sparc/sparc32, try sparc/sparc32 and then sparc.
413 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
415 # Prepend the machine's FPU directory unless --without-fp.
416 if test "$with_fp" = yes; then
423 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
426 # Find what sysdep directories exist.
428 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
429 for d in $add_ons_pfx ''; do
430 for b in $base ''; do
431 for m0 in $mach ''; do
432 for v in /$vendor ''; do
433 test "$v" = / && continue
434 for o in /$ostry ''; do
435 test "$o" = / && continue
436 for m in $mach ''; do
437 if test "$m0$b$v$o$m"; then
438 try="${d}sysdeps$m0$b$v$o$m"
439 test -n "$enable_debug_configure" &&
440 echo "$0 [DEBUG]: try $try" >&2
441 if test -d $srcdir/$try; then
442 sysnames="$sysnames $try"
443 { test -n "$o" || test -n "$b"; } && os_used=t
444 { test -n "$m" || test -n "$m0"; } && machine_used=t
455 if test -z "$os_used" && test "$os" != none; then
456 AC_MSG_ERROR(Operating system $os is not supported.)
458 if test -z "$machine_used" && test "$machine" != none; then
459 AC_MSG_ERROR(The $machine is not supported.)
462 # We have now validated the configuration.
465 # If using ELF, look for an `elf' subdirectory of each machine directory.
466 # We prepend these rather than inserting them whereever the machine appears
467 # because things specified by the machine's ELF ABI should override
468 # OS-specific things, and should always be the same for any OS on the
469 # machine (otherwise what's the point of an ABI?).
470 if test "$elf" = yes; then
472 for d in $add_ons_pfx ''; do
474 if test -d $srcdir/${d}sysdeps$m/elf; then
475 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
479 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
483 # Expand the list of system names into a full list of directories
484 # from each element's parent name and Implies file (if present).
487 while test $# -gt 0; do
491 case " $names " in *" $name "*)
492 # Already in the list.
496 # Report each name as we discover it, so there is no long pause in output.
497 echo $ac_n "$name $ac_c" >&AC_FD_MSG
499 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
503 *) xsrcdir=$srcdir/ ;;
505 test -n "$enable_debug_configure" &&
506 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
508 if test -f $xsrcdir$name/Implies; then
509 # Collect more names from the `Implies' file (removing comments).
510 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
512 for x in $implied_candidate; do
514 if test -d $xsrcdir$name_base/$x; then
515 implied="$implied $name_base/$x";
518 for d in $add_ons_pfx ''; do
522 *) try_srcdir=$srcdir/ ;;
524 test -n "$enable_debug_configure" &&
525 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
526 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
528 implied="$implied $try"
532 if test $found = no; then
533 AC_MSG_WARN($name/Implies specifies nonexistent $x)
540 # Add NAME to the list of names.
543 # Find the parent of NAME, using the empty string if it has none.
545 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
548 # Add the names implied by NAME, and NAME's parent (if it has one), to
549 # the list of names to be processed (the argument list). We prepend the
550 # implied names to the list and append the parent. We want implied
551 # directories to come before further directories inferred from the
552 # configuration components; this ensures that for sysv4, unix/common
553 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
555 sysnames="`echo $implied $* $parent`"
556 test -n "$sysnames" && set $sysnames
559 # Add the default directories.
560 default_sysnames=sysdeps/generic
561 if test "$elf" = yes; then
562 default_sysnames="sysdeps/generic/elf $default_sysnames"
564 sysnames="$names $default_sysnames"
566 # The other names were emitted during the scan.
567 AC_MSG_RESULT($default_sysnames)
573 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
574 # The makefiles need to use a different form to find it in $srcdir.
575 INSTALL='\$(..)./scripts/install-sh -c'
579 # We need the physical current working directory. We cannot use the
580 # "pwd -P" shell builtin since that's not portable. Instead we try to
581 # find a pwd binary. Note that assigning to the PWD environment
582 # variable might have some interesting side effects, so we don't do
584 AC_PATH_PROG(PWD_P, pwd, no)
585 if test "$PWD_P" = no; then
586 AC_MSG_ERROR(*** A pwd binary could not be found.)
589 # These programs are version sensitive.
590 AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
591 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
592 [version \([egcygnustpi-]*[0-9.]*\)],
593 [*gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*],
595 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
596 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
597 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
600 if test -n "$critic_missing"; then
602 *** These critical programs are missing or too old:$critic_missing
603 *** Check the INSTALL file for required versions.])
607 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
608 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
609 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
610 MSGFMT=: aux_missing="$aux_missing msgfmt")
611 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
612 [GNU texinfo.* \([0-9][0-9.]*\)],
614 MAKEINFO=: aux_missing="$aux_missing makeinfo")
615 AC_CHECK_PROG_VER(SED, sed, --version,
616 [GNU sed version \([0-9]*\.[0-9.]*\)],
617 [3.0[2-9]*|3.[1-9]*|[4-9]*],
618 SED=: aux_missing="$aux_missing sed")
622 if test $host != $build; then
623 AC_CHECK_PROGS(BUILD_CC, gcc cc)
625 AC_SUBST(cross_compiling)
628 AC_CHECK_TOOL(MIG, mig)
630 # Accept binutils 2.10.1 or newer (and also any ia64 2.9 version)
631 # XXX Commented out because it filters out too many good versions.
633 # AC_CHECK_PROG_VER(AS, $AS, --version,
634 # [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)],
635 # [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t)
637 test -n "$aux_missing" && AC_MSG_WARN([
638 *** These auxiliary programs are missing or too old:$aux_missing
639 *** some features will be disabled.
640 *** Check the INSTALL file for required versions.])
642 # glibcbug.in wants to know the compiler version.
643 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
646 # if using special system headers, find out the compiler's sekrit
647 # header directory and add that to the list. NOTE: Only does the right
648 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
649 if test -n "$sysheaders"; then
650 ccheaders=`$CC -print-file-name=include`
651 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
653 AC_SUBST(SYSINCLUDES)
655 # check if ranlib is necessary
656 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
657 cat > conftest.c <<EOF
662 $CC $CFLAGS -c conftest.c
663 $AR cr conftest.a conftest.c
664 cp conftest.a conftest2.a
666 if cmp -s conftest.a conftest2.a; then
667 libc_cv_ranlib_necessary=no
669 libc_cv_ranlib_necessary=yes
672 if test "$libc_cv_ranlib_necessary" = no; then
676 # Test if LD_LIBRARY_PATH contains the notation for the current directory
677 # since this would lead to problems installing/building glibc.
678 # LD_LIBRARY_PATH contains the current directory if one of the following
680 # - one of the terminals (":" and ";") is the first or last sign
681 # - two terminals occur directly after each other
682 # - the path contains an element with a dot in it
683 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
685 case ${LD_LIBRARY_PATH} in
686 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
687 ld_library_path_setting="contains current directory"
690 ld_library_path_setting="ok"
694 AC_MSG_RESULT($ld_library_path_setting)
695 if test "$ld_library_path_setting" != "ok"; then
697 *** LD_LIBRARY_PATH shouldn't contain the current directory when
698 *** building glibc. Please change the environment variable
699 *** and run configure again.])
702 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
703 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
704 libc_cv_gcc_static_libgcc=
706 libc_cv_gcc_static_libgcc=-static-libgcc
708 AC_SUBST(libc_cv_gcc_static_libgcc)
710 AC_PATH_PROG(BASH, bash, no)
711 if test "$BASH" != no &&
712 $BASH -c 'test "$BASH_VERSINFO" \
713 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
714 libc_cv_have_bash2=yes
716 libc_cv_have_bash2=no
718 AC_SUBST(libc_cv_have_bash2)
720 dnl We need a ksh compatible shell for tzselect.
721 if test "$BASH" = no; then
722 AC_PATH_PROG(KSH, ksh, no)
723 if test "$KSH" = no; then
733 AC_SUBST(libc_cv_have_ksh)
736 AC_PATH_PROG(PERL, perl, no)
737 if test "$PERL" != no &&
738 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
741 AC_PATH_PROG(INSTALL_INFO, install-info, no,
742 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
743 if test "$INSTALL_INFO" != "no"; then
744 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
746 # There is a hard ^_ on the next line. I am open to better ideas.
748 echo 'File: dir Node: Top This is the top of the INFO tree'
749 echo '* Menu:') >conftest.d/dir
750 (echo 'INFO-DIR-SECTION i-d-s works'
751 echo 'START-INFO-DIR-ENTRY'
752 echo '* Prog: (prog). Program.'
753 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
754 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
756 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
757 then libc_cv_old_debian_install_info=no
758 else libc_cv_old_debian_install_info=yes
760 else libc_cv_old_debian_install_info=no testfailed=t
763 if test -n "$testfailed"
764 then AC_MSG_WARN([install-info errored out, check config.log])
766 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
768 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
770 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
772 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
773 echo '#include <stddef.h>
774 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
775 if eval "$ac_cpp conftest.c 2>/dev/null" \
776 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
777 libc_cv_signed_size_t=no
779 libc_cv_signed_size_t=yes
782 if test $libc_cv_signed_size_t = yes; then
783 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
784 cat >> confdefs.h <<\EOF
786 #define __SIZE_TYPE__ unsigned
790 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
792 [#define __need_size_t
793 #define __need_wchar_t
796 #include <stddef.h>], [size_t size; wchar_t wchar;
798 #error stddef.h ignored __need_*
800 if (&size == NULL || &wchar == NULL) abort ();],
801 libc_cv_friendly_stddef=yes,
802 libc_cv_friendly_stddef=no)])
803 if test $libc_cv_friendly_stddef = yes; then
804 config_vars="$config_vars
805 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
808 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
809 libc_cv_need_minus_P, [dnl
810 cat > conftest.S <<EOF
811 #include "confdefs.h"
812 /* Nothing whatsoever. */
814 if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
815 libc_cv_need_minus_P=no
817 libc_cv_need_minus_P=yes
820 if test $libc_cv_need_minus_P = yes; then
821 config_vars="$config_vars
822 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
825 AC_MSG_CHECKING(whether .text pseudo-op must be used)
826 AC_CACHE_VAL(libc_cv_dot_text, [dnl
827 cat > conftest.s <<EOF
831 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
832 libc_cv_dot_text=.text
835 if test -z "$libc_cv_dot_text"; then
841 AC_CACHE_CHECK(for assembler global-symbol directive,
842 libc_cv_asm_global_directive, [dnl
843 libc_cv_asm_global_directive=UNKNOWN
844 for ac_globl in .globl .global .EXPORT; do
845 cat > conftest.s <<EOF
850 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
851 libc_cv_asm_global_directive=${ac_globl}
854 test $libc_cv_asm_global_directive != UNKNOWN && break
856 if test $libc_cv_asm_global_directive = UNKNOWN; then
857 AC_MSG_ERROR(cannot determine asm global directive)
859 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
862 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
863 cat > conftest.s <<EOF
866 .set glibc_conftest_frobozz,foo
867 $libc_cv_asm_global_directive glibc_conftest_frobozz
869 # The alpha-dec-osf1 assembler gives only a warning for `.set'
870 # (but it doesn't work), so we must do a linking check to be sure.
871 cat > conftest1.c <<\EOF
872 extern int glibc_conftest_frobozz;
873 main () { printf ("%d\n", glibc_conftest_frobozz); }
875 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
876 -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
877 libc_cv_asm_set_directive=yes
879 libc_cv_asm_set_directive=no
882 if test $libc_cv_asm_set_directive = yes; then
883 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
886 # The Aix ld uses global .symbol_names instead of symbol_names.
889 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
892 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
893 [cat > conftest.s <<EOF
896 .symver _sym,sym@VERS
898 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
899 libc_cv_asm_symver_directive=yes
901 libc_cv_asm_symver_directive=no
904 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
905 if test $libc_cv_asm_symver_directive = yes; then
906 cat > conftest.s <<EOF
909 .symver _sym,sym@VERS
911 cat > conftest.map <<EOF
920 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
921 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
922 -nostartfiles -nostdlib
923 -Wl,--version-script,conftest.map
926 libc_cv_ld_version_script_option=yes
928 libc_cv_ld_version_script_option=no
931 libc_cv_ld_version_script_option=no
934 libc_cv_ld_version_script_option=no
937 if test $shared != no &&
938 test $libc_cv_asm_symver_directive = yes &&
939 test $libc_cv_ld_version_script_option = yes &&
940 test $enable_versioning = yes; then
942 AC_DEFINE(DO_VERSIONING)
948 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
950 *** WARNING: You should not compile GNU libc without versioning. Not using
951 *** versioning will introduce incompatibilities so that old binaries
952 *** will not run anymore.
953 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
955 if test $elf = yes; then
956 AC_CACHE_CHECK(for .previous assembler directive,
957 libc_cv_asm_previous_directive, [dnl
958 cat > conftest.s <<EOF
962 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
963 libc_cv_asm_previous_directive=yes
965 libc_cv_asm_previous_directive=no
968 if test $libc_cv_asm_previous_directive = yes; then
969 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
971 AC_CACHE_CHECK(for .popsection assembler directive,
972 libc_cv_asm_popsection_directive, [dnl
973 cat > conftest.s <<EOF
974 .pushsection foo_section
977 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
978 libc_cv_asm_popsection_directive=yes
980 libc_cv_asm_popsection_directive=no
983 if test $libc_cv_asm_popsection_directive = yes; then
984 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
987 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
988 libc_cv_asm_protected_directive, [dnl
989 cat > conftest.s <<EOF
995 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
996 libc_cv_asm_protected_directive=yes
998 libc_cv_asm_protected_directive=no
1001 AC_SUBST(libc_cv_asm_protected_directive)
1002 AC_DEFINE(HAVE_PROTECTED)
1004 AC_CACHE_CHECK(for -z nodelete option,
1005 libc_cv_z_nodelete, [dnl
1006 cat > conftest.c <<EOF
1007 int _start (void) { return 42; }
1009 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1010 -nostartfiles -nostdlib
1011 -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
1013 libc_cv_z_nodelete=yes
1015 libc_cv_z_nodelete=no
1018 AC_SUBST(libc_cv_z_nodelete)
1020 AC_CACHE_CHECK(for -z nodlopen option,
1021 libc_cv_z_nodlopen, [dnl
1022 cat > conftest.c <<EOF
1023 int _start (void) { return 42; }
1025 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1026 -nostartfiles -nostdlib
1027 -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
1029 libc_cv_z_nodlopen=yes
1031 libc_cv_z_nodlopen=no
1034 AC_SUBST(libc_cv_z_nodlopen)
1036 AC_CACHE_CHECK(for -z initfirst option,
1037 libc_cv_z_initfirst, [dnl
1038 cat > conftest.c <<EOF
1039 int _start (void) { return 42; }
1041 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1042 -nostartfiles -nostdlib
1043 -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC])
1045 libc_cv_z_initfirst=yes
1047 libc_cv_z_initfirst=no
1050 AC_SUBST(libc_cv_z_initfirst)
1052 AC_CACHE_CHECK(for -Bgroup option,
1053 libc_cv_Bgroup, [dnl
1054 cat > conftest.c <<EOF
1055 int _start (void) { return 42; }
1057 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AC_FD_CC])
1064 AC_SUBST(libc_cv_Bgroup)
1066 AC_CACHE_CHECK(for -z combreloc,
1067 libc_cv_z_combreloc, [dnl
1068 cat > conftest.c <<EOF
1069 extern int bar (int);
1071 int foo (void) { return bar (mumble); }
1073 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1074 -nostdlib -nostartfiles
1075 -Wl,-z,combreloc 1>&AC_FD_CC])
1077 dnl The following test is a bit weak. We must use a tool which can test
1078 dnl cross-platform since the gcc used can be a cross compiler. Without
1079 dnl introducing new options this is not easily doable. Instead use a tool
1080 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1081 dnl look for a section named .rel.dyn.
1082 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1083 libc_cv_z_combreloc=yes
1085 libc_cv_z_combreloc=no
1088 libc_cv_z_combreloc=no
1091 if test "$libc_cv_z_combreloc" = yes; then
1092 AC_DEFINE(HAVE_Z_COMBRELOC)
1095 AC_SUBST(libc_cv_z_combreloc)
1097 if test $elf != yes; then
1098 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1099 [AC_TRY_COMPILE(, [asm (".section .init");
1100 asm (".section .fini");
1101 asm ("${libc_cv_dot_text}");],
1102 libc_cv_have_initfini=yes,
1103 libc_cv_have_initfini=no)])
1104 AC_SUBST(libc_cv_have_initfini)dnl
1105 if test $libc_cv_have_initfini = yes; then
1106 AC_DEFINE(HAVE_INITFINI)
1110 if test $elf = yes -a $gnu_ld = yes; then
1111 AC_CACHE_CHECK(whether cc puts quotes around section names,
1112 libc_cv_have_section_quotes,
1113 [cat > conftest.c <<EOF
1114 static const int foo
1115 __attribute__ ((section ("bar"))) = 1;
1117 if ${CC-cc} -S conftest.c -o conftest.s; then
1118 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1119 libc_cv_have_section_quotes=yes
1121 libc_cv_have_section_quotes=no
1124 libc_cv_have_section_quotes=unknown
1128 if test $libc_cv_have_section_quotes = yes; then
1129 AC_DEFINE(HAVE_SECTION_QUOTES)
1133 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1134 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1135 [cat > conftest.$ac_ext <<EOF
1136 dnl This sometimes fails to find confdefs.h, for some reason.
1137 dnl [#]line __oline__ "[$]0"
1138 [#]line __oline__ "configure"
1139 #include "confdefs.h"
1140 void underscore_test(void) {
1143 if AC_TRY_EVAL(ac_compile); then
1144 if grep _underscore_test conftest* >/dev/null; then
1145 ifelse([$1], , :, [rm -f conftest*
1148 ifelse([$2], , , [rm -f conftest*
1152 echo "configure: failed program was:" >&AC_FD_CC
1153 cat conftest.$ac_ext >&AC_FD_CC
1154 ifelse([$2], , , [rm -f conftest*
1159 if test $elf = yes; then
1160 libc_cv_asm_underscores=no
1162 if test $ac_cv_prog_cc_works = yes; then
1163 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1164 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1165 libc_cv_asm_underscores=yes,
1166 libc_cv_asm_underscores=no)])
1168 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1169 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1170 libc_cv_asm_underscores=no)])
1173 if test $libc_cv_asm_underscores = no; then
1174 AC_DEFINE(NO_UNDERSCORES)
1177 if test $elf = yes; then
1178 libc_cv_weak_symbols=yes
1181 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1183 cat > conftest.s <<EOF
1185 ${libc_cv_asm_global_directive} foo
1188 .weak bar; bar = foo
1190 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1191 libc_cv_asm_weak_directive=yes
1193 libc_cv_asm_weak_directive=no
1197 if test $libc_cv_asm_weak_directive = no; then
1198 AC_CACHE_CHECK(for assembler .weakext directive,
1199 libc_cv_asm_weakext_directive,
1201 cat > conftest.s <<EOF
1203 ${libc_cv_asm_global_directive} foo
1207 ${libc_cv_asm_global_directive} baz
1210 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1211 libc_cv_asm_weakext_directive=yes
1213 libc_cv_asm_weakext_directive=no
1219 if test $libc_cv_asm_weak_directive = yes; then
1220 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1221 elif test $libc_cv_asm_weakext_directive = yes; then
1222 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1225 dnl The standard hppa assembler uses `;' to start comments and `!'
1226 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1228 case "${host_cpu}-${host_os}" in
1230 libc_cv_asm_line_sep='@'
1231 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1234 AC_CACHE_CHECK(for assembler line separator,
1235 libc_cv_asm_line_sep, [dnl
1236 cat > conftest.s <<EOF
1239 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1240 libc_cv_asm_line_sep='!'
1242 if test -z "$enable_hacker_mode"; then
1243 echo "*** You need a newer assembler to compile glibc"
1247 libc_cv_asm_line_sep=';'
1250 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1254 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1255 cat > conftest.c <<\EOF
1260 dnl No \ in command here because it ends up inside ''.
1261 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1262 -nostdlib -nostartfiles -Wl,--no-whole-archive
1263 -o conftest conftest.c 1>&AC_FD_CC]); then
1264 libc_cv_ld_no_whole_archive=yes
1266 libc_cv_ld_no_whole_archive=no
1269 if test $libc_cv_ld_no_whole_archive = yes; then
1270 no_whole_archive=-Wl,--no-whole-archive
1272 AC_SUBST(no_whole_archive)dnl
1274 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1275 cat > conftest.c <<\EOF
1280 dnl No \ in command here because it ends up inside ''.
1281 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1282 -nostdlib -nostartfiles -fexceptions
1283 -o conftest conftest.c 1>&AC_FD_CC]); then
1284 libc_cv_gcc_exceptions=yes
1286 libc_cv_gcc_exceptions=no
1289 if test $libc_cv_gcc_exceptions = yes; then
1290 exceptions=-fexceptions
1292 AC_SUBST(exceptions)dnl
1294 if test "$base_machine" = alpha ; then
1295 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1296 cat > conftest.c <<\EOF
1300 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1302 libc_cv_gcc_alpha_ng_prefix=yes
1304 libc_cv_gcc_alpha_ng_prefix=no
1307 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1308 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1310 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1314 if test "$host_cpu" = powerpc ; then
1315 # Check for a bug present in at least versions 2.8.x of GCC
1316 # and versions 1.0.x of EGCS.
1317 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1318 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1319 libc_cv_c_asmcr0_bug='no',
1320 libc_cv_c_asmcr0_bug='yes')])
1321 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1322 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1326 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1327 [cat > conftest.c <<EOF
1328 #line __oline__ "configure"
1329 static char __EH_FRAME_BEGIN__[];
1332 #ifdef CHECK__register_frame
1333 __register_frame (__EH_FRAME_BEGIN__);
1334 __deregister_frame (__EH_FRAME_BEGIN__);
1336 #ifdef CHECK__register_frame_info
1337 __register_frame_info (__EH_FRAME_BEGIN__);
1338 __deregister_frame_info (__EH_FRAME_BEGIN__);
1343 /* FIXME: this is fragile. */
1353 dnl No \ in command here because it ends up inside ''.
1354 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1355 -nostdlib -nostartfiles
1356 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1357 libc_cv_gcc_dwarf2_unwind_info=static
1359 libc_cv_gcc_dwarf2_unwind_info=no
1361 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1362 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1363 -nostdlib -nostartfiles
1364 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1365 libc_cv_gcc_dwarf2_unwind_info=yes
1367 libc_cv_gcc_dwarf2_unwind_info=no
1371 case $libc_cv_gcc_dwarf2_unwind_info in
1373 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1376 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1377 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1381 dnl Check whether compiler understands __builtin_expect.
1382 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1383 [cat > conftest.c <<EOF
1384 #line __oline__ "configure"
1387 a = __builtin_expect (a, 10);
1388 return a == 10 ? 0 : 1;
1391 dnl No \ in command here because it ends up inside ''.
1392 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1393 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1394 libc_cv_gcc_builtin_expect=yes
1396 libc_cv_gcc_builtin_expect=no
1399 if test "$libc_cv_gcc_builtin_expect" = yes; then
1400 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1403 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1404 cat > conftest.c <<\EOF
1407 __builtin_memset (x, 0, 1000);
1411 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1413 libc_cv_gcc_builtin_memset=no
1415 libc_cv_gcc_builtin_memset=yes
1418 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1419 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1422 dnl Check whether the compiler supports subtraction of local labels.
1423 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1424 [cat > conftest.c <<EOF
1426 #line __oline__ "configure"
1429 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1430 void *p = &&l1 + ar[a];
1439 dnl No \ in command here because it ends up inside ''.
1440 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1441 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1442 libc_cv_gcc_subtract_local_labels=yes
1444 libc_cv_gcc_subtract_local_labels=no
1447 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1448 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1451 dnl Check whether we have the gd library available.
1452 AC_MSG_CHECKING(for libgd)
1453 if test "$with_gd" != "no"; then
1454 old_CFLAGS="$CFLAGS"
1455 CFLAGS="$CFLAGS $libgd_include"
1456 old_LDFLAGS="$LDFLAGS"
1457 LDFLAGS="$LDFLAGS $libgd_ldflags"
1459 LIBS="$LIBS -lgd -lpng -lz -lm"
1460 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1461 CFLAGS="$old_CFLAGS"
1462 LDFLAGS="$old_LDFLAGS"
1467 AC_MSG_RESULT($LIBGD)
1470 dnl check for the size of 'long double'.
1471 AC_CHECK_SIZEOF(long double, 0)
1472 sizeof_long_double=$ac_cv_sizeof_long_double
1473 AC_SUBST(sizeof_long_double)
1475 ### End of automated tests.
1476 ### Now run sysdeps configure fragments.
1478 # sysdeps configure fragments may set these with files to be linked below.
1482 # They also can set these variables.
1484 ldd_rewrite_script=no
1485 libc_cv_sysconfdir=$sysconfdir
1486 libc_cv_gcc_unwind_find_fde=no
1488 # Iterate over all the sysdep directories we will use, running their
1489 # configure fragments, and looking for a uname implementation.
1491 for dir in $sysnames; do
1494 *) dest=$srcdir/$dir ;;
1496 if test -r $dest/configure; then
1497 AC_MSG_RESULT(running configure fragment for $dest)
1501 if test -z "$uname"; then
1502 if test -r $dest/uname.c ||
1503 test -r $dest/uname.S ||
1504 { test -r $dest/syscalls.list &&
1505 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1512 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1513 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1515 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1517 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1519 # If we will use the generic uname implementation, we must figure out what
1520 # it will say by examining the system, and write the results in config-name.h.
1521 if test "$uname" = "sysdeps/generic"; then
1524 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1526 if test $uname_sysname != $config_os; then
1527 config_release=`echo $config_os | sed s/$uname_sysname//`
1530 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1531 if test -r /vmunix; then
1532 kernel_id=`strings /vmunix | grep UNIX`
1533 elif test -r /dynix; then
1534 kernel_id=`strings /dynix | grep DYNIX`
1540 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1541 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1543 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1545 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1546 != x$config_release; then
1547 # The configuration release is a substring of the kernel release.
1548 libc_cv_uname_release=$kernel_release
1549 elif test x$config_release != x; then
1550 libc_cv_uname_release=$config_release
1551 elif test x$kernel_release != x; then
1552 libc_cv_uname_release=$kernel_release
1554 libc_cv_uname_release=unknown
1556 uname_release="$libc_cv_uname_release"
1558 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1559 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1561 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1563 if test -n "$kernel_version"; then
1564 libc_cv_uname_version="$kernel_version"
1566 libc_cv_uname_version=unknown
1568 uname_version="$libc_cv_uname_version"
1570 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1571 config_uname=config-name.h:config-name.in
1573 # For non-generic uname, we don't need to create config-name.h at all.
1577 AC_MSG_CHECKING(stdio selection)
1580 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1581 default) stdio=stdio ;;
1583 AC_MSG_RESULT($stdio)
1585 # Test for old glibc 2.0.x headers so that they can be removed properly
1586 # Search only in includedir.
1587 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1588 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1590 old_glibc_headers=yes
1592 old_glibc_headers=no
1594 AC_MSG_RESULT($old_glibc_headers)
1595 if test ${old_glibc_headers} = yes; then
1596 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1597 AC_MSG_WARN(*** be removed.)
1599 AC_SUBST(old_glibc_headers)
1601 AC_SUBST(libc_cv_slibdir)
1602 AC_SUBST(libc_cv_localedir)
1603 AC_SUBST(libc_cv_sysconfdir)
1604 AC_SUBST(libc_cv_rootsbindir)
1606 AC_SUBST(use_ldconfig)
1607 AC_SUBST(ldd_rewrite_script)
1609 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1610 if test $gnu_ld = yes; then
1611 AC_DEFINE(HAVE_GNU_LD)
1613 if test $gnu_as = yes; then
1614 AC_DEFINE(HAVE_GNU_AS)
1616 if test $elf = yes; then
1619 if test $xcoff = yes; then
1620 AC_DEFINE(HAVE_XCOFF)
1625 if test $shared = default; then
1626 if test $gnu_ld = yes; then
1629 # For now we do not assume shared libs are available. In future more
1630 # tests might become available.
1635 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1637 cat > conftest.c <<EOF
1638 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1639 # error PIC is default.
1642 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1646 AC_SUBST(pic_default)
1651 AC_SUBST(static_nss)
1652 AC_SUBST(nopic_initfini)
1657 *door*) linux_doors=yes ;;
1658 *) linux_doors=no ;;
1660 AC_SUBST(linux_doors)
1662 dnl See sysdeps/mach/configure.in for this variable.
1663 AC_SUBST(mach_interface_list)
1665 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1668 config_makefile=Makefile
1671 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1672 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1676 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1677 case $CONFIG_FILES in *config.make*)
1678 echo "$config_vars" >> config.make;;
1680 test -d bits || mkdir bits], [config_vars='$config_vars'])