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 ;;
345 AC_SUBST(base_machine)
347 if test "$base_machine" = "i386"; then
348 AC_DEFINE(USE_REGPARMS)
351 # Compute the list of sysdep directories for this configuration.
352 # This can take a while to compute.
353 sysdep_dir=$srcdir/sysdeps
354 AC_MSG_CHECKING(sysdep dirs)
355 dnl We need to use [ and ] for other purposes for a while now.
357 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
358 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
363 netbsd* | 386bsd* | freebsd* | bsdi*)
364 base_os=unix/bsd/bsd4.4 ;;
365 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
367 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
370 base_os=unix/sysv/irix6/$os ;;
372 base_os=unix/sysv/sysv4 ;;
374 base_os=unix/sysv/hpux/$os ;;
376 base_os=unix/sysv/aix/aix4.3 ;;
378 base_os=standalone ;;
383 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
386 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
390 o=`echo $tail | sed 's/[0-9]*$//'`
391 if test $o != $tail; then
394 # For linux-gnu, try linux-gnu, then linux.
395 o=`echo $tail | sed 's/-.*$//'`
396 if test $o != $tail; then
400 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
403 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
409 # For sparc/sparc32, try sparc/sparc32 and then sparc.
412 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
414 # Prepend the machine's FPU directory unless --without-fp.
415 if test "$with_fp" = yes; then
422 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
425 # Find what sysdep directories exist.
427 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
428 for d in $add_ons_pfx ''; do
429 for b in $base ''; do
430 for m0 in $mach ''; do
431 for v in /$vendor ''; do
432 test "$v" = / && continue
433 for o in /$ostry ''; do
434 test "$o" = / && continue
435 for m in $mach ''; do
436 if test "$m0$b$v$o$m"; then
437 try="${d}sysdeps$m0$b$v$o$m"
438 test -n "$enable_debug_configure" &&
439 echo "$0 [DEBUG]: try $try" >&2
440 if test -d $srcdir/$try; then
441 sysnames="$sysnames $try"
442 { test -n "$o" || test -n "$b"; } && os_used=t
443 { test -n "$m" || test -n "$m0"; } && machine_used=t
454 if test -z "$os_used" && test "$os" != none; then
455 AC_MSG_ERROR(Operating system $os is not supported.)
457 if test -z "$machine_used" && test "$machine" != none; then
458 AC_MSG_ERROR(The $machine is not supported.)
461 # We have now validated the configuration.
464 # If using ELF, look for an `elf' subdirectory of each machine directory.
465 # We prepend these rather than inserting them whereever the machine appears
466 # because things specified by the machine's ELF ABI should override
467 # OS-specific things, and should always be the same for any OS on the
468 # machine (otherwise what's the point of an ABI?).
469 if test "$elf" = yes; then
471 for d in $add_ons_pfx ''; do
473 if test -d $srcdir/${d}sysdeps$m/elf; then
474 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
478 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
482 # Expand the list of system names into a full list of directories
483 # from each element's parent name and Implies file (if present).
486 while test $# -gt 0; do
490 case " $names " in *" $name "*)
491 # Already in the list.
495 # Report each name as we discover it, so there is no long pause in output.
496 echo $ac_n "$name $ac_c" >&AC_FD_MSG
498 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
502 *) xsrcdir=$srcdir/ ;;
504 test -n "$enable_debug_configure" &&
505 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
507 if test -f $xsrcdir$name/Implies; then
508 # Collect more names from the `Implies' file (removing comments).
509 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
511 for x in $implied_candidate; do
513 if test -d $xsrcdir$name_base/$x; then
514 implied="$implied $name_base/$x";
517 for d in $add_ons_pfx ''; do
521 *) try_srcdir=$srcdir/ ;;
523 test -n "$enable_debug_configure" &&
524 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
525 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
527 implied="$implied $try"
531 if test $found = no; then
532 AC_MSG_WARN($name/Implies specifies nonexistent $x)
539 # Add NAME to the list of names.
542 # Find the parent of NAME, using the empty string if it has none.
544 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
547 # Add the names implied by NAME, and NAME's parent (if it has one), to
548 # the list of names to be processed (the argument list). We prepend the
549 # implied names to the list and append the parent. We want implied
550 # directories to come before further directories inferred from the
551 # configuration components; this ensures that for sysv4, unix/common
552 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
554 sysnames="`echo $implied $* $parent`"
555 test -n "$sysnames" && set $sysnames
558 # Add the default directories.
559 default_sysnames=sysdeps/generic
560 if test "$elf" = yes; then
561 default_sysnames="sysdeps/generic/elf $default_sysnames"
563 sysnames="$names $default_sysnames"
565 # The other names were emitted during the scan.
566 AC_MSG_RESULT($default_sysnames)
572 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
573 # The makefiles need to use a different form to find it in $srcdir.
574 INSTALL='\$(..)./scripts/install-sh -c'
578 # We need the physical current working directory. We cannot use the
579 # "pwd -P" shell builtin since that's not portable. Instead we try to
580 # find a pwd binary. Note that assigning to the PWD environment
581 # variable might have some interesting side effects, so we don't do
583 AC_PATH_PROG(PWD_P, pwd, no)
584 if test "$PWD_P" = no; then
585 AC_MSG_ERROR(*** A pwd binary could not be found.)
588 # These programs are version sensitive.
589 AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
590 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
591 [version \([egcygnustpi-]*[0-9.]*\)],
592 [*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-*],
594 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
595 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
596 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
599 if test -n "$critic_missing"; then
601 *** These critical programs are missing or too old:$critic_missing
602 *** Check the INSTALL file for required versions.])
606 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
607 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
608 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
609 MSGFMT=: aux_missing="$aux_missing msgfmt")
610 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
611 [GNU texinfo.* \([0-9][0-9.]*\)],
613 MAKEINFO=: aux_missing="$aux_missing makeinfo")
614 AC_CHECK_PROG_VER(SED, sed, --version,
615 [GNU sed version \([0-9]*\.[0-9.]*\)],
616 [3.0[2-9]*|3.[1-9]*|[4-9]*],
617 SED=: aux_missing="$aux_missing sed")
621 if test $host != $build; then
622 AC_CHECK_PROGS(BUILD_CC, gcc cc)
624 AC_SUBST(cross_compiling)
627 AC_CHECK_TOOL(MIG, mig)
629 # Accept binutils 2.10.1 or newer (and also any ia64 2.9 version)
630 # XXX Commented out because it filters out too many good versions.
632 # AC_CHECK_PROG_VER(AS, $AS, --version,
633 # [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)],
634 # [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t)
636 test -n "$aux_missing" && AC_MSG_WARN([
637 *** These auxiliary programs are missing or too old:$aux_missing
638 *** some features will be disabled.
639 *** Check the INSTALL file for required versions.])
641 # glibcbug.in wants to know the compiler version.
642 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
645 # if using special system headers, find out the compiler's sekrit
646 # header directory and add that to the list. NOTE: Only does the right
647 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
648 if test -n "$sysheaders"; then
649 ccheaders=`$CC -print-file-name=include`
650 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
652 AC_SUBST(SYSINCLUDES)
654 # check if ranlib is necessary
655 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
656 cat > conftest.c <<EOF
661 $CC $CFLAGS -c conftest.c
662 $AR cr conftest.a conftest.c
663 cp conftest.a conftest2.a
665 if cmp -s conftest.a conftest2.a; then
666 libc_cv_ranlib_necessary=no
668 libc_cv_ranlib_necessary=yes
671 if test "$libc_cv_ranlib_necessary" = no; then
675 # Test if LD_LIBRARY_PATH contains the notation for the current directory
676 # since this would lead to problems installing/building glibc.
677 # LD_LIBRARY_PATH contains the current directory if one of the following
679 # - one of the terminals (":" and ";") is the first or last sign
680 # - two terminals occur directly after each other
681 # - the path contains an element with a dot in it
682 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
684 case ${LD_LIBRARY_PATH} in
685 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
686 ld_library_path_setting="contains current directory"
689 ld_library_path_setting="ok"
693 AC_MSG_RESULT($ld_library_path_setting)
694 if test "$ld_library_path_setting" != "ok"; then
696 *** LD_LIBRARY_PATH shouldn't contain the current directory when
697 *** building glibc. Please change the environment variable
698 *** and run configure again.])
701 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
702 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
703 libc_cv_gcc_static_libgcc=
705 libc_cv_gcc_static_libgcc=-static-libgcc
707 AC_SUBST(libc_cv_gcc_static_libgcc)
709 AC_PATH_PROG(BASH, bash, no)
710 if test "$BASH" != no &&
711 $BASH -c 'test "$BASH_VERSINFO" \
712 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
713 libc_cv_have_bash2=yes
715 libc_cv_have_bash2=no
717 AC_SUBST(libc_cv_have_bash2)
719 dnl We need a ksh compatible shell for tzselect.
720 if test "$BASH" = no; then
721 AC_PATH_PROG(KSH, ksh, no)
722 if test "$KSH" = no; then
732 AC_SUBST(libc_cv_have_ksh)
735 AC_PATH_PROG(PERL, perl, no)
736 if test "$PERL" != no &&
737 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
740 AC_PATH_PROG(INSTALL_INFO, install-info, no,
741 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
742 if test "$INSTALL_INFO" != "no"; then
743 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
745 # There is a hard ^_ on the next line. I am open to better ideas.
747 echo 'File: dir Node: Top This is the top of the INFO tree'
748 echo '* Menu:') >conftest.d/dir
749 (echo 'INFO-DIR-SECTION i-d-s works'
750 echo 'START-INFO-DIR-ENTRY'
751 echo '* Prog: (prog). Program.'
752 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
753 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
755 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
756 then libc_cv_old_debian_install_info=no
757 else libc_cv_old_debian_install_info=yes
759 else libc_cv_old_debian_install_info=no testfailed=t
762 if test -n "$testfailed"
763 then AC_MSG_WARN([install-info errored out, check config.log])
765 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
767 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
769 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
771 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
772 echo '#include <stddef.h>
773 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
774 if eval "$ac_cpp conftest.c 2>/dev/null" \
775 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
776 libc_cv_signed_size_t=no
778 libc_cv_signed_size_t=yes
781 if test $libc_cv_signed_size_t = yes; then
782 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
783 cat >> confdefs.h <<\EOF
785 #define __SIZE_TYPE__ unsigned
789 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
791 [#define __need_size_t
792 #define __need_wchar_t
795 #include <stddef.h>], [size_t size; wchar_t wchar;
797 #error stddef.h ignored __need_*
799 if (&size == NULL || &wchar == NULL) abort ();],
800 libc_cv_friendly_stddef=yes,
801 libc_cv_friendly_stddef=no)])
802 if test $libc_cv_friendly_stddef = yes; then
803 config_vars="$config_vars
804 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
807 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
808 libc_cv_need_minus_P, [dnl
809 cat > conftest.S <<EOF
810 #include "confdefs.h"
811 /* Nothing whatsoever. */
813 if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
814 libc_cv_need_minus_P=no
816 libc_cv_need_minus_P=yes
819 if test $libc_cv_need_minus_P = yes; then
820 config_vars="$config_vars
821 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
824 AC_MSG_CHECKING(whether .text pseudo-op must be used)
825 AC_CACHE_VAL(libc_cv_dot_text, [dnl
826 cat > conftest.s <<EOF
830 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
831 libc_cv_dot_text=.text
834 if test -z "$libc_cv_dot_text"; then
840 AC_CACHE_CHECK(for assembler global-symbol directive,
841 libc_cv_asm_global_directive, [dnl
842 libc_cv_asm_global_directive=UNKNOWN
843 for ac_globl in .globl .global .EXPORT; do
844 cat > conftest.s <<EOF
849 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
850 libc_cv_asm_global_directive=${ac_globl}
853 test $libc_cv_asm_global_directive != UNKNOWN && break
855 if test $libc_cv_asm_global_directive = UNKNOWN; then
856 AC_MSG_ERROR(cannot determine asm global directive)
858 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
861 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
862 cat > conftest.s <<EOF
865 .set glibc_conftest_frobozz,foo
866 $libc_cv_asm_global_directive glibc_conftest_frobozz
868 # The alpha-dec-osf1 assembler gives only a warning for `.set'
869 # (but it doesn't work), so we must do a linking check to be sure.
870 cat > conftest1.c <<\EOF
871 extern int glibc_conftest_frobozz;
872 main () { printf ("%d\n", glibc_conftest_frobozz); }
874 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
875 -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
876 libc_cv_asm_set_directive=yes
878 libc_cv_asm_set_directive=no
881 if test $libc_cv_asm_set_directive = yes; then
882 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
885 # The Aix ld uses global .symbol_names instead of symbol_names.
888 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
891 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
892 [cat > conftest.s <<EOF
895 .symver _sym,sym@VERS
897 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
898 libc_cv_asm_symver_directive=yes
900 libc_cv_asm_symver_directive=no
903 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
904 if test $libc_cv_asm_symver_directive = yes; then
905 cat > conftest.s <<EOF
908 .symver _sym,sym@VERS
910 cat > conftest.map <<EOF
919 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
920 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
921 -nostartfiles -nostdlib
922 -Wl,--version-script,conftest.map
925 libc_cv_ld_version_script_option=yes
927 libc_cv_ld_version_script_option=no
930 libc_cv_ld_version_script_option=no
933 libc_cv_ld_version_script_option=no
936 if test $shared != no &&
937 test $libc_cv_asm_symver_directive = yes &&
938 test $libc_cv_ld_version_script_option = yes &&
939 test $enable_versioning = yes; then
941 AC_DEFINE(DO_VERSIONING)
947 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
949 *** WARNING: You should not compile GNU libc without versioning. Not using
950 *** versioning will introduce incompatibilities so that old binaries
951 *** will not run anymore.
952 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
954 if test $elf = yes; then
955 AC_CACHE_CHECK(for .previous assembler directive,
956 libc_cv_asm_previous_directive, [dnl
957 cat > conftest.s <<EOF
961 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
962 libc_cv_asm_previous_directive=yes
964 libc_cv_asm_previous_directive=no
967 if test $libc_cv_asm_previous_directive = yes; then
968 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
970 AC_CACHE_CHECK(for .popsection assembler directive,
971 libc_cv_asm_popsection_directive, [dnl
972 cat > conftest.s <<EOF
973 .pushsection foo_section
976 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
977 libc_cv_asm_popsection_directive=yes
979 libc_cv_asm_popsection_directive=no
982 if test $libc_cv_asm_popsection_directive = yes; then
983 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
986 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
987 libc_cv_asm_protected_directive, [dnl
988 cat > conftest.s <<EOF
994 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
995 libc_cv_asm_protected_directive=yes
997 libc_cv_asm_protected_directive=no
1000 AC_SUBST(libc_cv_asm_protected_directive)
1001 AC_DEFINE(HAVE_PROTECTED)
1003 AC_CACHE_CHECK(for -z nodelete option,
1004 libc_cv_z_nodelete, [dnl
1005 cat > conftest.c <<EOF
1006 int _start (void) { return 42; }
1008 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1009 -nostartfiles -nostdlib
1010 -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
1012 libc_cv_z_nodelete=yes
1014 libc_cv_z_nodelete=no
1017 AC_SUBST(libc_cv_z_nodelete)
1019 AC_CACHE_CHECK(for -z nodlopen option,
1020 libc_cv_z_nodlopen, [dnl
1021 cat > conftest.c <<EOF
1022 int _start (void) { return 42; }
1024 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1025 -nostartfiles -nostdlib
1026 -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
1028 libc_cv_z_nodlopen=yes
1030 libc_cv_z_nodlopen=no
1033 AC_SUBST(libc_cv_z_nodlopen)
1035 AC_CACHE_CHECK(for -z initfirst option,
1036 libc_cv_z_initfirst, [dnl
1037 cat > conftest.c <<EOF
1038 int _start (void) { return 42; }
1040 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1041 -nostartfiles -nostdlib
1042 -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC])
1044 libc_cv_z_initfirst=yes
1046 libc_cv_z_initfirst=no
1049 AC_SUBST(libc_cv_z_initfirst)
1051 AC_CACHE_CHECK(for -Bgroup option,
1052 libc_cv_Bgroup, [dnl
1053 cat > conftest.c <<EOF
1054 int _start (void) { return 42; }
1056 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AC_FD_CC])
1063 AC_SUBST(libc_cv_Bgroup)
1065 AC_CACHE_CHECK(for -z combreloc,
1066 libc_cv_z_combreloc, [dnl
1067 cat > conftest.c <<EOF
1068 extern int bar (int);
1070 int foo (void) { return bar (mumble); }
1072 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1073 -nostdlib -nostartfiles
1074 -Wl,-z,combreloc 1>&AC_FD_CC])
1076 dnl The following test is a bit weak. We must use a tool which can test
1077 dnl cross-platform since the gcc used can be a cross compiler. Without
1078 dnl introducing new options this is not easily doable. Instead use a tool
1079 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1080 dnl look for a section named .rel.dyn.
1081 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1082 libc_cv_z_combreloc=yes
1084 libc_cv_z_combreloc=no
1087 libc_cv_z_combreloc=no
1090 if test "$libc_cv_z_combreloc" = yes; then
1091 AC_DEFINE(HAVE_Z_COMBRELOC)
1094 AC_SUBST(libc_cv_z_combreloc)
1096 if test $elf != yes; then
1097 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1098 [AC_TRY_COMPILE(, [asm (".section .init");
1099 asm (".section .fini");
1100 asm ("${libc_cv_dot_text}");],
1101 libc_cv_have_initfini=yes,
1102 libc_cv_have_initfini=no)])
1103 AC_SUBST(libc_cv_have_initfini)dnl
1104 if test $libc_cv_have_initfini = yes; then
1105 AC_DEFINE(HAVE_INITFINI)
1109 if test $elf = yes -a $gnu_ld = yes; then
1110 AC_CACHE_CHECK(whether cc puts quotes around section names,
1111 libc_cv_have_section_quotes,
1112 [cat > conftest.c <<EOF
1113 static const int foo
1114 __attribute__ ((section ("bar"))) = 1;
1116 if ${CC-cc} -S conftest.c -o conftest.s; then
1117 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1118 libc_cv_have_section_quotes=yes
1120 libc_cv_have_section_quotes=no
1123 libc_cv_have_section_quotes=unknown
1127 if test $libc_cv_have_section_quotes = yes; then
1128 AC_DEFINE(HAVE_SECTION_QUOTES)
1132 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1133 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1134 [cat > conftest.$ac_ext <<EOF
1135 dnl This sometimes fails to find confdefs.h, for some reason.
1136 dnl [#]line __oline__ "[$]0"
1137 [#]line __oline__ "configure"
1138 #include "confdefs.h"
1139 void underscore_test(void) {
1142 if AC_TRY_EVAL(ac_compile); then
1143 if grep _underscore_test conftest* >/dev/null; then
1144 ifelse([$1], , :, [rm -f conftest*
1147 ifelse([$2], , , [rm -f conftest*
1151 echo "configure: failed program was:" >&AC_FD_CC
1152 cat conftest.$ac_ext >&AC_FD_CC
1153 ifelse([$2], , , [rm -f conftest*
1158 if test $elf = yes; then
1159 libc_cv_asm_underscores=no
1161 if test $ac_cv_prog_cc_works = yes; then
1162 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1163 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1164 libc_cv_asm_underscores=yes,
1165 libc_cv_asm_underscores=no)])
1167 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1168 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1169 libc_cv_asm_underscores=no)])
1172 if test $libc_cv_asm_underscores = no; then
1173 AC_DEFINE(NO_UNDERSCORES)
1176 if test $elf = yes; then
1177 libc_cv_weak_symbols=yes
1180 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1182 cat > conftest.s <<EOF
1184 ${libc_cv_asm_global_directive} foo
1187 .weak bar; bar = foo
1189 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1190 libc_cv_asm_weak_directive=yes
1192 libc_cv_asm_weak_directive=no
1196 if test $libc_cv_asm_weak_directive = no; then
1197 AC_CACHE_CHECK(for assembler .weakext directive,
1198 libc_cv_asm_weakext_directive,
1200 cat > conftest.s <<EOF
1202 ${libc_cv_asm_global_directive} foo
1206 ${libc_cv_asm_global_directive} baz
1209 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1210 libc_cv_asm_weakext_directive=yes
1212 libc_cv_asm_weakext_directive=no
1218 if test $libc_cv_asm_weak_directive = yes; then
1219 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1220 elif test $libc_cv_asm_weakext_directive = yes; then
1221 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1224 dnl The standard hppa assembler uses `;' to start comments and `!'
1225 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1227 case "${host_cpu}-${host_os}" in
1229 libc_cv_asm_line_sep='@'
1230 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1233 AC_CACHE_CHECK(for assembler line separator,
1234 libc_cv_asm_line_sep, [dnl
1235 cat > conftest.s <<EOF
1238 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1239 libc_cv_asm_line_sep='!'
1241 if test -z "$enable_hacker_mode"; then
1242 echo "*** You need a newer assembler to compile glibc"
1246 libc_cv_asm_line_sep=';'
1249 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1253 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1254 cat > conftest.c <<\EOF
1259 dnl No \ in command here because it ends up inside ''.
1260 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1261 -nostdlib -nostartfiles -Wl,--no-whole-archive
1262 -o conftest conftest.c 1>&AC_FD_CC]); then
1263 libc_cv_ld_no_whole_archive=yes
1265 libc_cv_ld_no_whole_archive=no
1268 if test $libc_cv_ld_no_whole_archive = yes; then
1269 no_whole_archive=-Wl,--no-whole-archive
1271 AC_SUBST(no_whole_archive)dnl
1273 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1274 cat > conftest.c <<\EOF
1279 dnl No \ in command here because it ends up inside ''.
1280 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1281 -nostdlib -nostartfiles -fexceptions
1282 -o conftest conftest.c 1>&AC_FD_CC]); then
1283 libc_cv_gcc_exceptions=yes
1285 libc_cv_gcc_exceptions=no
1288 if test $libc_cv_gcc_exceptions = yes; then
1289 exceptions=-fexceptions
1291 AC_SUBST(exceptions)dnl
1293 if test "$base_machine" = alpha ; then
1294 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1295 cat > conftest.c <<\EOF
1299 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1301 libc_cv_gcc_alpha_ng_prefix=yes
1303 libc_cv_gcc_alpha_ng_prefix=no
1306 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1307 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1309 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1313 if test "$host_cpu" = powerpc ; then
1314 # Check for a bug present in at least versions 2.8.x of GCC
1315 # and versions 1.0.x of EGCS.
1316 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1317 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1318 libc_cv_c_asmcr0_bug='no',
1319 libc_cv_c_asmcr0_bug='yes')])
1320 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1321 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1325 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1326 [cat > conftest.c <<EOF
1327 #line __oline__ "configure"
1328 static char __EH_FRAME_BEGIN__[];
1331 #ifdef CHECK__register_frame
1332 __register_frame (__EH_FRAME_BEGIN__);
1333 __deregister_frame (__EH_FRAME_BEGIN__);
1335 #ifdef CHECK__register_frame_info
1336 __register_frame_info (__EH_FRAME_BEGIN__);
1337 __deregister_frame_info (__EH_FRAME_BEGIN__);
1342 /* FIXME: this is fragile. */
1352 dnl No \ in command here because it ends up inside ''.
1353 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1354 -nostdlib -nostartfiles
1355 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1356 libc_cv_gcc_dwarf2_unwind_info=static
1358 libc_cv_gcc_dwarf2_unwind_info=no
1360 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1361 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1362 -nostdlib -nostartfiles
1363 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1364 libc_cv_gcc_dwarf2_unwind_info=yes
1366 libc_cv_gcc_dwarf2_unwind_info=no
1370 case $libc_cv_gcc_dwarf2_unwind_info in
1372 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1375 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1376 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1380 dnl Check whether compiler understands __builtin_expect.
1381 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1382 [cat > conftest.c <<EOF
1383 #line __oline__ "configure"
1386 a = __builtin_expect (a, 10);
1387 return a == 10 ? 0 : 1;
1390 dnl No \ in command here because it ends up inside ''.
1391 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1392 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1393 libc_cv_gcc_builtin_expect=yes
1395 libc_cv_gcc_builtin_expect=no
1398 if test "$libc_cv_gcc_builtin_expect" = yes; then
1399 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1402 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1403 cat > conftest.c <<\EOF
1406 __builtin_memset (x, 0, 1000);
1410 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1412 libc_cv_gcc_builtin_memset=no
1414 libc_cv_gcc_builtin_memset=yes
1417 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1418 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1421 dnl Check whether the compiler supports subtraction of local labels.
1422 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1423 [cat > conftest.c <<EOF
1425 #line __oline__ "configure"
1428 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1429 void *p = &&l1 + ar[a];
1438 dnl No \ in command here because it ends up inside ''.
1439 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1440 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1441 libc_cv_gcc_subtract_local_labels=yes
1443 libc_cv_gcc_subtract_local_labels=no
1446 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1447 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1450 dnl Check whether we have the gd library available.
1451 AC_MSG_CHECKING(for libgd)
1452 if test "$with_gd" != "no"; then
1453 old_CFLAGS="$CFLAGS"
1454 CFLAGS="$CFLAGS $libgd_include"
1455 old_LDFLAGS="$LDFLAGS"
1456 LDFLAGS="$LDFLAGS $libgd_ldflags"
1458 LIBS="$LIBS -lgd -lpng -lz -lm"
1459 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1460 CFLAGS="$old_CFLAGS"
1461 LDFLAGS="$old_LDFLAGS"
1466 AC_MSG_RESULT($LIBGD)
1469 dnl check for the size of 'long double'.
1470 AC_CHECK_SIZEOF(long double, 0)
1471 sizeof_long_double=$ac_cv_sizeof_long_double
1472 AC_SUBST(sizeof_long_double)
1474 ### End of automated tests.
1475 ### Now run sysdeps configure fragments.
1477 # sysdeps configure fragments may set these with files to be linked below.
1481 # They also can set these variables.
1483 ldd_rewrite_script=no
1484 libc_cv_sysconfdir=$sysconfdir
1485 libc_cv_gcc_unwind_find_fde=no
1487 # Iterate over all the sysdep directories we will use, running their
1488 # configure fragments, and looking for a uname implementation.
1490 for dir in $sysnames; do
1493 *) dest=$srcdir/$dir ;;
1495 if test -r $dest/configure; then
1496 AC_MSG_RESULT(running configure fragment for $dest)
1500 if test -z "$uname"; then
1501 if test -r $dest/uname.c ||
1502 test -r $dest/uname.S ||
1503 { test -r $dest/syscalls.list &&
1504 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1511 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1512 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1514 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1516 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1518 # If we will use the generic uname implementation, we must figure out what
1519 # it will say by examining the system, and write the results in config-name.h.
1520 if test "$uname" = "sysdeps/generic"; then
1523 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1525 if test $uname_sysname != $config_os; then
1526 config_release=`echo $config_os | sed s/$uname_sysname//`
1529 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1530 if test -r /vmunix; then
1531 kernel_id=`strings /vmunix | grep UNIX`
1532 elif test -r /dynix; then
1533 kernel_id=`strings /dynix | grep DYNIX`
1539 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1540 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1542 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1544 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1545 != x$config_release; then
1546 # The configuration release is a substring of the kernel release.
1547 libc_cv_uname_release=$kernel_release
1548 elif test x$config_release != x; then
1549 libc_cv_uname_release=$config_release
1550 elif test x$kernel_release != x; then
1551 libc_cv_uname_release=$kernel_release
1553 libc_cv_uname_release=unknown
1555 uname_release="$libc_cv_uname_release"
1557 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1558 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1560 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1562 if test -n "$kernel_version"; then
1563 libc_cv_uname_version="$kernel_version"
1565 libc_cv_uname_version=unknown
1567 uname_version="$libc_cv_uname_version"
1569 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1570 config_uname=config-name.h:config-name.in
1572 # For non-generic uname, we don't need to create config-name.h at all.
1576 AC_MSG_CHECKING(stdio selection)
1579 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1580 default) stdio=stdio ;;
1582 AC_MSG_RESULT($stdio)
1584 # Test for old glibc 2.0.x headers so that they can be removed properly
1585 # Search only in includedir.
1586 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1587 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1589 old_glibc_headers=yes
1591 old_glibc_headers=no
1593 AC_MSG_RESULT($old_glibc_headers)
1594 if test ${old_glibc_headers} = yes; then
1595 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1596 AC_MSG_WARN(*** be removed.)
1598 AC_SUBST(old_glibc_headers)
1600 AC_SUBST(libc_cv_slibdir)
1601 AC_SUBST(libc_cv_localedir)
1602 AC_SUBST(libc_cv_sysconfdir)
1603 AC_SUBST(libc_cv_rootsbindir)
1605 AC_SUBST(use_ldconfig)
1606 AC_SUBST(ldd_rewrite_script)
1608 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1609 if test $gnu_ld = yes; then
1610 AC_DEFINE(HAVE_GNU_LD)
1612 if test $gnu_as = yes; then
1613 AC_DEFINE(HAVE_GNU_AS)
1615 if test $elf = yes; then
1618 if test $xcoff = yes; then
1619 AC_DEFINE(HAVE_XCOFF)
1624 if test $shared = default; then
1625 if test $gnu_ld = yes; then
1628 # For now we do not assume shared libs are available. In future more
1629 # tests might become available.
1634 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1636 cat > conftest.c <<EOF
1637 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1638 # error PIC is default.
1641 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1645 AC_SUBST(pic_default)
1650 AC_SUBST(static_nss)
1651 AC_SUBST(nopic_initfini)
1656 *door*) linux_doors=yes ;;
1657 *) linux_doors=no ;;
1659 AC_SUBST(linux_doors)
1661 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1664 config_makefile=Makefile
1667 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1668 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1672 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1673 case $CONFIG_FILES in *config.make*)
1674 echo "$config_vars" >> config.make;;
1676 test -d bits || mkdir bits], [config_vars='$config_vars'])