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 if test $libc_cv_asm_protected_directive = yes; then
1005 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1006 libc_cv_visibility_attribute,
1007 [cat > conftest.c <<EOF
1008 int foo __attribute__ ((visibility ("hidden"))) = 1;
1009 int bar __attribute__ ((visibility ("protected"))) = 1;
1011 libc_cv_visibility_attribute=no
1012 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
1013 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1014 if grep '\.protected.*bar' conftest.s >/dev/null; then
1015 libc_cv_visibility_attribute=yes
1021 if test $libc_cv_visibility_attribute = yes; then
1022 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1026 if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1027 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1028 libc_cv_have_sdata_section,
1029 [echo "int i;" > conftest.c
1030 libc_cv_have_sdata_section=no
1031 if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1032 | grep '\.sdata' >/dev/null; then
1033 libc_cv_have_sdata_section=yes
1035 rm -f conftest.c conftest.so
1037 if test $libc_cv_have_sdata_section = yes; then
1038 AC_DEFINE(HAVE_SDATA_SECTION)
1042 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1043 libc_cv_initfinit_array, [dnl
1044 cat > conftest.c <<EOF
1045 int _start (void) { return 0; }
1046 int __start (void) { return 0; }
1047 int foo (void) { return 1; }
1048 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1050 if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1051 -static -nostartfiles -nostdlib 1>&AC_FD_CC])
1053 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1054 libc_cv_initfinit_array=yes
1056 libc_cv_initfinit_array=no
1059 libc_cv_initfinit_array=no
1062 AC_SUBST(libc_cv_initfinit_array)
1063 if test $libc_cv_initfinit_array = yes; then
1064 AC_DEFINE(HAVE_INITFINI_ARRAY)
1067 AC_CACHE_CHECK(for -z nodelete option,
1068 libc_cv_z_nodelete, [dnl
1069 cat > conftest.c <<EOF
1070 int _start (void) { return 42; }
1072 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1073 -nostartfiles -nostdlib
1074 -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
1076 libc_cv_z_nodelete=yes
1078 libc_cv_z_nodelete=no
1081 AC_SUBST(libc_cv_z_nodelete)
1083 AC_CACHE_CHECK(for -z nodlopen option,
1084 libc_cv_z_nodlopen, [dnl
1085 cat > conftest.c <<EOF
1086 int _start (void) { return 42; }
1088 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1089 -nostartfiles -nostdlib
1090 -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
1092 libc_cv_z_nodlopen=yes
1094 libc_cv_z_nodlopen=no
1097 AC_SUBST(libc_cv_z_nodlopen)
1099 AC_CACHE_CHECK(for -z initfirst option,
1100 libc_cv_z_initfirst, [dnl
1101 cat > conftest.c <<EOF
1102 int _start (void) { return 42; }
1104 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1105 -nostartfiles -nostdlib
1106 -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC])
1108 libc_cv_z_initfirst=yes
1110 libc_cv_z_initfirst=no
1113 AC_SUBST(libc_cv_z_initfirst)
1115 AC_CACHE_CHECK(for -Bgroup option,
1116 libc_cv_Bgroup, [dnl
1117 cat > conftest.c <<EOF
1118 int _start (void) { return 42; }
1120 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AC_FD_CC])
1127 AC_SUBST(libc_cv_Bgroup)
1129 AC_CACHE_CHECK(for -z combreloc,
1130 libc_cv_z_combreloc, [dnl
1131 cat > conftest.c <<EOF
1132 extern int bar (int);
1134 int foo (void) { return bar (mumble); }
1136 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1137 -nostdlib -nostartfiles
1138 -Wl,-z,combreloc 1>&AC_FD_CC])
1140 dnl The following test is a bit weak. We must use a tool which can test
1141 dnl cross-platform since the gcc used can be a cross compiler. Without
1142 dnl introducing new options this is not easily doable. Instead use a tool
1143 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1144 dnl look for a section named .rel.dyn.
1145 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1146 libc_cv_z_combreloc=yes
1148 libc_cv_z_combreloc=no
1151 libc_cv_z_combreloc=no
1154 if test "$libc_cv_z_combreloc" = yes; then
1155 AC_DEFINE(HAVE_Z_COMBRELOC)
1158 AC_SUBST(libc_cv_z_combreloc)
1160 if test $elf != yes; then
1161 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1162 [AC_TRY_COMPILE(, [asm (".section .init");
1163 asm (".section .fini");
1164 asm ("${libc_cv_dot_text}");],
1165 libc_cv_have_initfini=yes,
1166 libc_cv_have_initfini=no)])
1167 AC_SUBST(libc_cv_have_initfini)dnl
1168 if test $libc_cv_have_initfini = yes; then
1169 AC_DEFINE(HAVE_INITFINI)
1173 if test $elf = yes -a $gnu_ld = yes; then
1174 AC_CACHE_CHECK(whether cc puts quotes around section names,
1175 libc_cv_have_section_quotes,
1176 [cat > conftest.c <<EOF
1177 static const int foo
1178 __attribute__ ((section ("bar"))) = 1;
1180 if ${CC-cc} -S conftest.c -o conftest.s; then
1181 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1182 libc_cv_have_section_quotes=yes
1184 libc_cv_have_section_quotes=no
1187 libc_cv_have_section_quotes=unknown
1191 if test $libc_cv_have_section_quotes = yes; then
1192 AC_DEFINE(HAVE_SECTION_QUOTES)
1196 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1197 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1198 [cat > conftest.$ac_ext <<EOF
1199 dnl This sometimes fails to find confdefs.h, for some reason.
1200 dnl [#]line __oline__ "[$]0"
1201 [#]line __oline__ "configure"
1202 #include "confdefs.h"
1203 void underscore_test(void) {
1206 if AC_TRY_EVAL(ac_compile); then
1207 if grep _underscore_test conftest* >/dev/null; then
1208 ifelse([$1], , :, [rm -f conftest*
1211 ifelse([$2], , , [rm -f conftest*
1215 echo "configure: failed program was:" >&AC_FD_CC
1216 cat conftest.$ac_ext >&AC_FD_CC
1217 ifelse([$2], , , [rm -f conftest*
1222 if test $elf = yes; then
1223 libc_cv_asm_underscores=no
1225 if test $ac_cv_prog_cc_works = yes; then
1226 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1227 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1228 libc_cv_asm_underscores=yes,
1229 libc_cv_asm_underscores=no)])
1231 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1232 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1233 libc_cv_asm_underscores=no)])
1236 if test $libc_cv_asm_underscores = no; then
1237 AC_DEFINE(NO_UNDERSCORES)
1240 if test $elf = yes; then
1241 libc_cv_weak_symbols=yes
1244 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1246 cat > conftest.s <<EOF
1248 ${libc_cv_asm_global_directive} foo
1251 .weak bar; bar = foo
1253 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1254 libc_cv_asm_weak_directive=yes
1256 libc_cv_asm_weak_directive=no
1260 if test $libc_cv_asm_weak_directive = no; then
1261 AC_CACHE_CHECK(for assembler .weakext directive,
1262 libc_cv_asm_weakext_directive,
1264 cat > conftest.s <<EOF
1266 ${libc_cv_asm_global_directive} foo
1270 ${libc_cv_asm_global_directive} baz
1273 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1274 libc_cv_asm_weakext_directive=yes
1276 libc_cv_asm_weakext_directive=no
1282 if test $libc_cv_asm_weak_directive = yes; then
1283 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1284 elif test $libc_cv_asm_weakext_directive = yes; then
1285 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1288 dnl The standard hppa assembler uses `;' to start comments and `!'
1289 dnl as a line separator. CRIS uses `;' to start comments and `@' for
1291 case "${host_cpu}-${host_os}" in
1293 libc_cv_asm_line_sep='@'
1294 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1297 AC_CACHE_CHECK(for assembler line separator,
1298 libc_cv_asm_line_sep, [dnl
1299 cat > conftest.s <<EOF
1302 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1303 libc_cv_asm_line_sep='!'
1305 if test -z "$enable_hacker_mode"; then
1306 echo "*** You need a newer assembler to compile glibc"
1310 libc_cv_asm_line_sep=';'
1313 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1317 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1318 cat > conftest.c <<\EOF
1323 dnl No \ in command here because it ends up inside ''.
1324 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1325 -nostdlib -nostartfiles -Wl,--no-whole-archive
1326 -o conftest conftest.c 1>&AC_FD_CC]); then
1327 libc_cv_ld_no_whole_archive=yes
1329 libc_cv_ld_no_whole_archive=no
1332 if test $libc_cv_ld_no_whole_archive = yes; then
1333 no_whole_archive=-Wl,--no-whole-archive
1335 AC_SUBST(no_whole_archive)dnl
1337 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1338 cat > conftest.c <<\EOF
1343 dnl No \ in command here because it ends up inside ''.
1344 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1345 -nostdlib -nostartfiles -fexceptions
1346 -o conftest conftest.c 1>&AC_FD_CC]); then
1347 libc_cv_gcc_exceptions=yes
1349 libc_cv_gcc_exceptions=no
1352 if test $libc_cv_gcc_exceptions = yes; then
1353 exceptions=-fexceptions
1355 AC_SUBST(exceptions)dnl
1357 if test "$base_machine" = alpha ; then
1358 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1359 cat > conftest.c <<\EOF
1363 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1365 libc_cv_gcc_alpha_ng_prefix=yes
1367 libc_cv_gcc_alpha_ng_prefix=no
1370 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1371 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1373 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1377 if test "$host_cpu" = powerpc ; then
1378 # Check for a bug present in at least versions 2.8.x of GCC
1379 # and versions 1.0.x of EGCS.
1380 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1381 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1382 libc_cv_c_asmcr0_bug='no',
1383 libc_cv_c_asmcr0_bug='yes')])
1384 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1385 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1389 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1390 [cat > conftest.c <<EOF
1391 #line __oline__ "configure"
1392 static char __EH_FRAME_BEGIN__[];
1395 #ifdef CHECK__register_frame
1396 __register_frame (__EH_FRAME_BEGIN__);
1397 __deregister_frame (__EH_FRAME_BEGIN__);
1399 #ifdef CHECK__register_frame_info
1400 __register_frame_info (__EH_FRAME_BEGIN__);
1401 __deregister_frame_info (__EH_FRAME_BEGIN__);
1406 /* FIXME: this is fragile. */
1416 dnl No \ in command here because it ends up inside ''.
1417 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1418 -nostdlib -nostartfiles
1419 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1420 libc_cv_gcc_dwarf2_unwind_info=static
1422 libc_cv_gcc_dwarf2_unwind_info=no
1424 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1425 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1426 -nostdlib -nostartfiles
1427 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1428 libc_cv_gcc_dwarf2_unwind_info=yes
1430 libc_cv_gcc_dwarf2_unwind_info=no
1434 case $libc_cv_gcc_dwarf2_unwind_info in
1436 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1439 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1440 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1444 dnl Check whether compiler understands __builtin_expect.
1445 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1446 [cat > conftest.c <<EOF
1447 #line __oline__ "configure"
1450 a = __builtin_expect (a, 10);
1451 return a == 10 ? 0 : 1;
1454 dnl No \ in command here because it ends up inside ''.
1455 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1456 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1457 libc_cv_gcc_builtin_expect=yes
1459 libc_cv_gcc_builtin_expect=no
1462 if test "$libc_cv_gcc_builtin_expect" = yes; then
1463 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1466 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1467 cat > conftest.c <<\EOF
1470 __builtin_memset (x, 0, 1000);
1474 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1476 libc_cv_gcc_builtin_memset=no
1478 libc_cv_gcc_builtin_memset=yes
1481 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1482 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1485 dnl Check whether the compiler supports subtraction of local labels.
1486 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1487 [cat > conftest.c <<EOF
1489 #line __oline__ "configure"
1492 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1493 void *p = &&l1 + ar[a];
1502 dnl No \ in command here because it ends up inside ''.
1503 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1504 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1505 libc_cv_gcc_subtract_local_labels=yes
1507 libc_cv_gcc_subtract_local_labels=no
1510 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1511 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1514 dnl Check whether we have the gd library available.
1515 AC_MSG_CHECKING(for libgd)
1516 if test "$with_gd" != "no"; then
1517 old_CFLAGS="$CFLAGS"
1518 CFLAGS="$CFLAGS $libgd_include"
1519 old_LDFLAGS="$LDFLAGS"
1520 LDFLAGS="$LDFLAGS $libgd_ldflags"
1522 LIBS="$LIBS -lgd -lpng -lz -lm"
1523 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1524 CFLAGS="$old_CFLAGS"
1525 LDFLAGS="$old_LDFLAGS"
1530 AC_MSG_RESULT($LIBGD)
1533 dnl check for the size of 'long double'.
1534 AC_CHECK_SIZEOF(long double, 0)
1535 sizeof_long_double=$ac_cv_sizeof_long_double
1536 AC_SUBST(sizeof_long_double)
1538 ### End of automated tests.
1539 ### Now run sysdeps configure fragments.
1541 # sysdeps configure fragments may set these with files to be linked below.
1545 # They also can set these variables.
1547 ldd_rewrite_script=no
1548 libc_cv_sysconfdir=$sysconfdir
1549 libc_cv_gcc_unwind_find_fde=no
1551 # Iterate over all the sysdep directories we will use, running their
1552 # configure fragments, and looking for a uname implementation.
1554 for dir in $sysnames; do
1557 *) dest=$srcdir/$dir ;;
1559 if test -r $dest/configure; then
1560 AC_MSG_RESULT(running configure fragment for $dest)
1564 if test -z "$uname"; then
1565 if test -r $dest/uname.c ||
1566 test -r $dest/uname.S ||
1567 { test -r $dest/syscalls.list &&
1568 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
1575 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1576 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1578 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1580 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1582 # If we will use the generic uname implementation, we must figure out what
1583 # it will say by examining the system, and write the results in config-name.h.
1584 if test "$uname" = "sysdeps/generic"; then
1587 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1589 if test $uname_sysname != $config_os; then
1590 config_release=`echo $config_os | sed s/$uname_sysname//`
1593 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1594 if test -r /vmunix; then
1595 kernel_id=`strings /vmunix | grep UNIX`
1596 elif test -r /dynix; then
1597 kernel_id=`strings /dynix | grep DYNIX`
1603 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1604 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1606 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1608 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1609 != x$config_release; then
1610 # The configuration release is a substring of the kernel release.
1611 libc_cv_uname_release=$kernel_release
1612 elif test x$config_release != x; then
1613 libc_cv_uname_release=$config_release
1614 elif test x$kernel_release != x; then
1615 libc_cv_uname_release=$kernel_release
1617 libc_cv_uname_release=unknown
1619 uname_release="$libc_cv_uname_release"
1621 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1622 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1624 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1626 if test -n "$kernel_version"; then
1627 libc_cv_uname_version="$kernel_version"
1629 libc_cv_uname_version=unknown
1631 uname_version="$libc_cv_uname_version"
1633 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1634 config_uname=config-name.h:config-name.in
1636 # For non-generic uname, we don't need to create config-name.h at all.
1640 AC_MSG_CHECKING(stdio selection)
1643 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1644 default) stdio=stdio ;;
1646 AC_MSG_RESULT($stdio)
1648 # Test for old glibc 2.0.x headers so that they can be removed properly
1649 # Search only in includedir.
1650 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1651 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1653 old_glibc_headers=yes
1655 old_glibc_headers=no
1657 AC_MSG_RESULT($old_glibc_headers)
1658 if test ${old_glibc_headers} = yes; then
1659 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1660 AC_MSG_WARN(*** be removed.)
1662 AC_SUBST(old_glibc_headers)
1664 AC_SUBST(libc_cv_slibdir)
1665 AC_SUBST(libc_cv_localedir)
1666 AC_SUBST(libc_cv_sysconfdir)
1667 AC_SUBST(libc_cv_rootsbindir)
1669 AC_SUBST(use_ldconfig)
1670 AC_SUBST(ldd_rewrite_script)
1672 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1673 if test $gnu_ld = yes; then
1674 AC_DEFINE(HAVE_GNU_LD)
1676 if test $gnu_as = yes; then
1677 AC_DEFINE(HAVE_GNU_AS)
1679 if test $elf = yes; then
1682 if test $xcoff = yes; then
1683 AC_DEFINE(HAVE_XCOFF)
1688 if test $shared = default; then
1689 if test $gnu_ld = yes; then
1692 # For now we do not assume shared libs are available. In future more
1693 # tests might become available.
1698 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1700 cat > conftest.c <<EOF
1701 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1702 # error PIC is default.
1705 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1709 AC_SUBST(pic_default)
1714 AC_SUBST(static_nss)
1715 AC_SUBST(nopic_initfini)
1720 *door*) linux_doors=yes ;;
1721 *) linux_doors=no ;;
1723 AC_SUBST(linux_doors)
1725 dnl See sysdeps/mach/configure.in for this variable.
1726 AC_SUBST(mach_interface_list)
1728 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1731 config_makefile=Makefile
1734 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1735 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1739 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1740 case $CONFIG_FILES in *config.make*)
1741 echo "$config_vars" >> config.make;;
1743 test -d bits || mkdir bits], [config_vars='$config_vars'])