1 dnl Process this file with autoconf to produce a configure script.
3 AC_PREREQ(2.53)dnl dnl Minimum Autoconf version required.
4 AC_INIT([GNU C Library], [(see version.h)], [glibc])
5 AC_CONFIG_SRCDIR([include/features.h])
6 AC_CONFIG_HEADERS([config.h])
7 AC_CONFIG_AUX_DIR([scripts])
9 dnl This is here so we can set $subdirs directly based on configure fragments.
15 if test $host != $build; then
16 AC_CHECK_PROGS(BUILD_CC, gcc cc)
18 AC_SUBST(cross_compiling)
20 # We need the C++ compiler only for testing.
23 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
24 AC_MSG_ERROR([you must configure in a separate build directory])
27 # This will get text that should go into config.make.
30 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
32 AC_HELP_STRING([--with-gd=DIR],
33 [find libgd include dir and library with prefix DIR]),
37 *) libgd_include="-I$withval/include"
38 libgd_ldflags="-L$withval/lib" ;;
41 AC_ARG_WITH([gd-include],
42 AC_HELP_STRING([--with-gd-include=DIR],
43 [find libgd include files in DIR]),
45 case "$with_gd_include" in
47 *) libgd_include="-I$withval" ;;
51 AC_HELP_STRING([--with-gd-lib=DIR],
52 [find libgd library files in DIR]),
54 case "$with_gd_lib" in
56 *) libgd_ldflags="-L$withval" ;;
60 if test -n "$libgd_include"; then
61 config_vars="$config_vars
62 CFLAGS-memusagestat.c = $libgd_include"
64 if test -n "$libgd_ldflags"; then
65 config_vars="$config_vars
66 libgd-LDFLAGS = $libgd_ldflags"
69 dnl Arguments to specify presence of other packages/features.
71 AC_HELP_STRING([--with-fp],
72 [if using floating-point hardware @<:@default=yes@:>@]),
76 AC_ARG_WITH([binutils],
77 AC_HELP_STRING([--with-binutils=PATH],
78 [specify location of binutils (as and ld)]),
79 [path_binutils=$withval],
82 AC_HELP_STRING([--with-elf],
83 [if using the ELF object format]),
86 AC_ARG_WITH([selinux],
87 AC_HELP_STRING([--with-selinux],
88 [if building with SELinux support]),
89 [with_selinux=$withval],
92 AC_HELP_STRING([--with-xcoff],
93 [if using the XCOFF object format]),
97 AC_HELP_STRING([--without-cvs],
98 [if CVS should not be used]),
101 if test "$with_cvs" = yes; then
102 if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
109 AC_ARG_WITH([headers],
110 AC_HELP_STRING([--with-headers=PATH],
111 [location of system headers to use
112 (for example /usr/src/linux/include)
113 @<:@default=compiler default@:>@]),
114 [sysheaders=$withval],
117 AC_SUBST(use_default_link)
118 AC_ARG_WITH([default-link],
119 AC_HELP_STRING([--with-default-link],
120 [do not use explicit linker scripts
121 @<:@default=no@:>@]),
122 [use_default_link=$withval],
123 [use_default_link=no])
125 AC_ARG_ENABLE([sanity-checks],
126 AC_HELP_STRING([--disable-sanity-checks],
127 [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
128 [enable_sanity=$enableval],
131 AC_SUBST(enable_check_abi)
132 AC_ARG_ENABLE([check-abi],
133 AC_HELP_STRING([--enable-check-abi],
134 [do "make check-abi" in "make check" (no/warn/yes)
135 @<:@default=no@:>@]),
136 [enable_check_abi=$enableval],
137 [enable_check_abi=no])
139 dnl Arguments to enable or disable building the static, shared, profiled,
140 dnl and -fomit-frame-pointer libraries.
141 dnl I've disabled this for now since we cannot build glibc without static
142 dnl libraries built in the moment.
143 dnl AC_ARG_ENABLE([static],
144 dnl AC_HELP_STRING([--enable-static],
145 dnl [build static library @<:@default=yes@:>@]),
146 dnl [static=$enableval],
149 AC_ARG_ENABLE([shared],
150 AC_HELP_STRING([--enable-shared],
151 [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
154 AC_ARG_ENABLE([profile],
155 AC_HELP_STRING([--enable-profile],
156 [build profiled library @<:@default=no@:>@]),
157 [profile=$enableval],
159 AC_ARG_ENABLE([omitfp],
160 AC_HELP_STRING([--enable-omitfp],
161 [build undebuggable optimized library @<:@default=no@:>@]),
164 AC_ARG_ENABLE([bounded],
165 AC_HELP_STRING([--enable-bounded],
166 [build with runtime bounds checking @<:@default=no@:>@]),
167 [bounded=$enableval],
169 AC_ARG_ENABLE([versioning],
170 AC_HELP_STRING([--disable-versioning],
171 [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
172 [enable_versioning=$enableval],
173 [enable_versioning=yes])
175 AC_ARG_ENABLE([oldest-abi],
176 AC_HELP_STRING([--enable-oldest-abi=ABI],
177 [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
178 [oldest_abi=$enableval],
180 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
183 AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
187 AC_ARG_ENABLE([stackguard-randomization],
188 AC_HELP_STRING([--enable-stackguard-randomization],
189 [initialize __stack_chk_guard canary with a random number at program start]),
190 [enable_stackguard_randomize=$enableval],
191 [enable_stackguard_randomize=no])
192 if test "$enable_stackguard_randomize" = yes; then
193 AC_DEFINE(ENABLE_STACKGUARD_RANDOMIZE)
196 dnl Generic infrastructure for drop-in additions to libc.
197 AC_ARG_ENABLE([add-ons],
198 AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
199 [configure and build add-ons in DIR1,DIR2,...
200 search for add-ons if no parameter given]),
201 , [enable_add_ons=yes])
203 dnl Let the user avoid using TLS. Don't know why but...
205 AC_HELP_STRING([--with-tls],
206 [enable support for TLS]),
210 AC_ARG_WITH([__thread],
211 AC_HELP_STRING([--without-__thread],
212 [do not use TLS features even when supporting them]),
213 [use__thread=$withval],
216 AC_ARG_ENABLE([hidden-plt],
217 AC_HELP_STRING([--disable-hidden-plt],
218 [do not hide internal function calls to avoid PLT]),
221 if test "x$hidden" = xno; then
225 AC_ARG_ENABLE([bind-now],
226 AC_HELP_STRING([--enable-bind-now],
227 [disable lazy relocations in DSOs]),
228 [bindnow=$enableval],
232 dnl On some platforms we cannot use dynamic loading. We must provide
233 dnl static NSS modules.
234 AC_ARG_ENABLE([static-nss],
235 AC_HELP_STRING([--enable-static-nss],
236 [build static NSS modules @<:@default=no@:>@]),
237 [static_nss=$enableval],
239 dnl Enable static NSS also if we build no shared objects.
240 if test x"$static_nss" = xyes || test x"$shared" = xno; then
242 AC_DEFINE(DO_STATIC_NSS)
245 AC_ARG_ENABLE([force-install],
246 AC_HELP_STRING([--disable-force-install],
247 [don't force installation of files from this package, even if they are older than the installed files]),
248 [force_install=$enableval],
250 AC_SUBST(force_install)
252 dnl On some platforms we allow dropping compatibility with all kernel
254 AC_ARG_ENABLE([kernel],
255 AC_HELP_STRING([--enable-kernel=VERSION],
256 [compile for compatibility with kernel not older than VERSION]),
257 [minimum_kernel=$enableval],
259 dnl Prevent unreasonable values.
260 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
261 # Better nothing than this.
264 if test "$minimum_kernel" = current; then
265 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
269 dnl For the development we sometimes want gcc to issue even more warnings.
270 dnl This is not the default since many of the extra warnings are not
272 AC_ARG_ENABLE([all-warnings],
273 AC_HELP_STRING([--enable-all-warnings],
274 [enable all useful warnings gcc can issue]),
275 [all_warnings=$enableval],
277 AC_SUBST(all_warnings)
279 AC_ARG_ENABLE([multi-arch],
280 AC_HELP_STRING([--enable-multi-arch],
281 [enable single DSO with optimizations for multiple architectures]),
282 [multi_arch=$enableval],
283 [multi_arch=default])
285 AC_ARG_ENABLE([nss-crypt],
286 AC_HELP_STRING([--enable-nss-crypt],
287 [enable libcrypt to use nss]),
288 [nss_crypt=$enableval],
290 if test x$nss_crypt = xyes; then
291 nss_includes=-I$(nss-config --includedir 2>/dev/null)
292 if test $? -ne 0; then
293 AC_MSG_ERROR([cannot find include directory with nss-config])
296 CFLAGS="$CFLAGS $nss_includes"
297 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
299 #include <nsslowhash.h>
300 void f (void) { NSSLOW_Init (); }])],
301 libc_cv_nss_crypt=yes,
303 cannot find NSS headers with lowlevel hash function interfaces]))
305 LIBS="$LIBS -lfreebl3"
306 AC_LINK_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
308 #include <nsslowhash.h>],
310 libc_cv_nss_crypt=yes,
312 cannot link program using lowlevel NSS hash functions]))
318 AC_SUBST(libc_cv_nss_crypt)
320 # The way shlib-versions is used to generate soversions.mk uses a
321 # fairly simplistic model for name recognition that can't distinguish
322 # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
323 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
324 # tell. This doesn't get used much beyond that, so it's fairly safe.
329 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
333 # We keep the original values in `$config_*' and never modify them, so we
334 # can write them unchanged into config.make. Everything else uses
335 # $machine, $vendor, and $os, and changes them whenever convenient.
336 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
338 # Don't allow vendor == "unknown"
339 test "$config_vendor" = unknown && config_vendor=
340 config_os="`echo $config_os | sed 's/^unknown-//'`"
342 # Some configurations imply other options.
344 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
345 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
347 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
348 # These systems (almost) always use the ELF format.
352 # These systems are always xcoff
358 # The configure fragment of an add-on port can modify these to supplement
359 # or override the table in the case statement below. No fragment should
360 # ever change the config_* variables, however.
361 machine=$config_machine
362 vendor=$config_vendor
366 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
368 if test "$machine" = rs6000; then
372 # Braindead PowerPC box with absolutely no FPU.
373 case "$machine-$host_os" in
381 AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
384 yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
386 *) submachine="$withval" ;;
390 # An add-on can set this when it wants to disable the sanity check below.
393 dnl Having this here, though empty, makes sure that if add-ons' fragments
394 dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
395 dnl our AC_OUTPUT will actually use it.
398 case "$enable_add_ons" in
401 add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
402 sed 's@/[[^/]]*$@@' | sort | uniq`
403 add_ons_automatic=yes
405 *) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
406 add_ons_automatic=no ;;
412 if test x"$add_ons" != x; then
413 for f in $add_ons; do
418 *** It seems that you're using an old \`crypt' add-on. crypt is now
419 *** part of glibc and using the old add-on will not work with this
420 *** release. Start again with fresh sources and without the old
421 *** \`crypt' add-on.])
425 *** It seems that you're using an old \`localedata' add-on. localedata
426 *** is now part of glibc and using the old add-on will not work with
427 *** this release. Start again with fresh sources and without the old
428 *** \`localedata' add-on.])
433 # Now source each add-on's configure fragment.
434 # The fragments can use $srcdir/$libc_add_on to find themselves,
435 # and test $add_ons_automatic to see if they were explicitly requested.
436 # A fragment can clear (or even change) $libc_add_on to affect
437 # whether it goes into the list to be actually used in the build.
439 for libc_add_on in $add_ons; do
440 # Test whether such a directory really exists.
441 # It can be absolute, or relative to $srcdir, or relative to the build dir.
442 case "$libc_add_on" in
444 libc_add_on_srcdir=$libc_add_on
447 test -d "$srcdir/$libc_add_on" || {
448 if test -d "$libc_add_on"; then
449 libc_add_on="`pwd`/$libc_add_on"
451 AC_MSG_ERROR(add-on directory \"$libc_add_on\" does not exist)
454 libc_add_on_srcdir=$srcdir/$libc_add_on
458 libc_add_on_frag=$libc_add_on_srcdir/configure
459 libc_add_on_canonical=
460 libc_add_on_config_subdirs=
461 if test -r "$libc_add_on_frag"; then
462 AC_MSG_NOTICE(running configure fragment for add-on $libc_add_on)
463 libc_add_on_canonical=unknown
465 . "$libc_add_on_frag"
466 test -z "$libc_add_on" || {
467 configured_add_ons="$configured_add_ons $libc_add_on"
468 if test "x$libc_add_on_canonical" = xunknown; then
469 AC_MSG_ERROR(fragment must set \$libc_add_on_canonical)
471 for d in $libc_add_on_subdirs; do
472 case "$libc_add_on" in
473 /*) subdir_srcdir="$libc_add_on" ;;
474 *) subdir_srcdir="\$(..)$libc_add_on" ;;
478 d="${libc_add_on_canonical:-$libc_add_on}"
484 subdir_srcdir="$subdir_srcdir/$d"
487 d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
488 add_on_subdirs="$add_on_subdirs $d"
489 test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
490 $d-srcdir = $subdir_srcdir"
492 for d in $libc_add_on_config_subdirs; do
495 fragment uses absolute path in \$libc_add_on_config_subdirs) ;;
497 if test ! -d "$libc_add_on_srcdir/$d"; then
498 AC_MSG_ERROR(fragment wants to configure missing directory $d)
500 case "$libc_add_on" in
502 relative path required for add-on using \$libc_add_on_config_subdirs) ;;
504 subdirs="$subdirs $libc_add_on/$d"
508 if test -n "$libc_add_on"; then
509 if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
511 AC_MSG_CHECKING(add-on $libc_add_on for preconfigure fragments)
512 for frag in $frags; do
513 name=`echo "$frag" | sed 's@/[[^/]]*$@@;s@^.*/@@'`
514 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
519 use_add_ons="$use_add_ons $libc_add_on"
520 add_ons_pfx="$add_ons_pfx $libc_add_on/"
521 test -z "$libc_add_on_canonical" ||
522 add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
525 # Use echo to strip excess whitespace.
526 add_ons="`echo $use_add_ons`"
529 AC_SUBST(add_on_subdirs)
533 ### I put this here to prevent those annoying emails from people who cannot
534 ### read and try to compile glibc on unsupported platforms. --drepper
536 ### By using the undocumented --enable-hacker-mode option for configure
537 ### one can skip this test to make the configuration not fail for unsupported
540 if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
541 case "$machine-$host_os" in
542 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
545 echo "*** The GNU C library is currently not available for this platform."
546 echo "*** So far nobody cared to port it and if there is no volunteer it"
547 echo "*** might never happen. So, if you have interest to see glibc on"
548 echo "*** this platform visit"
549 echo "*** http://www.gnu.org/software/libc/porting.html"
550 echo "*** and join the group of porters"
556 dnl We need to use [ and ] for other purposes for a while now.
558 # Expand the configuration machine name into a subdirectory by architecture
559 # type and particular chip. If an add-on configure fragment already set
560 # base_machine, we don't change it.
561 test -n "$base_machine" || case "$machine" in
562 a29k | am29000) base_machine=a29k machine=a29k ;;
563 c3[012]) base_machine=cx0 machine=cx0/c30 ;;
564 c4[04]) base_machine=cx0 machine=cx0/c40 ;;
565 i[34567]86) base_machine=i386 machine=i386/$machine ;;
566 ia64) base_machine=ia64 machine=ia64 ;;
567 m88???) base_machine=m88k machine=m88k/$machine ;;
568 m88k) base_machine=m88k machine=m88k/m88100 ;;
569 powerpc) base_machine=powerpc machine=powerpc/powerpc32 ;;
570 powerpc64) base_machine=powerpc machine=powerpc/powerpc64 ;;
571 s390) base_machine=s390 machine=s390/s390-32 ;;
572 s390x) base_machine=s390 machine=s390/s390-64 ;;
573 sh3*) base_machine=sh machine=sh/sh3 ;;
574 sh4*) base_machine=sh machine=sh/sh4 ;;
576 base_machine=sparc machine=sparc/sparc32 ;;
577 sparcv8 | supersparc | hypersparc)
578 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
579 sparcv8plus | sparcv8plusa | sparcv9)
580 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
581 sparcv8plusb | sparcv9b)
582 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;;
584 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;;
586 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;;
588 base_machine=sparc machine=sparc/sparc64 ;;
590 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
592 base_machine=sparc machine=sparc/sparc64/sparcv9v ;;
594 base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;;
595 *) base_machine=$machine ;;
598 AC_SUBST(base_machine)
600 if test "$base_machine" = "i386"; then
601 AC_DEFINE(USE_REGPARMS)
604 # For the multi-arch option we need support in the assembler.
605 AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
606 libc_cv_asm_gnu_indirect_function, [dnl
607 cat > conftest.s <<EOF
608 .type foo,%gnu_indirect_function
610 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
612 libc_cv_asm_gnu_indirect_function=yes
614 libc_cv_asm_gnu_indirect_function=no
618 AC_MSG_CHECKING(whether .text pseudo-op must be used)
619 AC_CACHE_VAL(libc_cv_dot_text, [dnl
620 cat > conftest.s <<EOF
624 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
625 libc_cv_dot_text=.text
628 if test -z "$libc_cv_dot_text"; then
634 AC_CACHE_CHECK(for assembler global-symbol directive,
635 libc_cv_asm_global_directive, [dnl
636 libc_cv_asm_global_directive=UNKNOWN
637 for ac_globl in .globl .global .EXPORT; do
638 cat > conftest.s <<EOF
643 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
644 libc_cv_asm_global_directive=${ac_globl}
647 test $libc_cv_asm_global_directive != UNKNOWN && break
649 if test $libc_cv_asm_global_directive = UNKNOWN; then
650 AC_MSG_ERROR(cannot determine asm global directive)
652 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
655 AC_CACHE_CHECK(for assembler .type directive prefix,
656 libc_cv_asm_type_prefix, [dnl
657 libc_cv_asm_type_prefix=no
658 for ac_try_prefix in '@' '%' '#'; do
659 cat > conftest.s <<EOF
661 ${libc_cv_asm_global_directive} foo
662 .type foo, ${ac_try_prefix}object
667 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
668 libc_cv_asm_type_prefix=${ac_try_prefix}
671 test "x$libc_cv_asm_type_prefix" != xno && break
673 if test "x$libc_cv_asm_type_prefix" != xno; then
674 AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
677 if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then
678 if test x"$multi_arch" = xyes; then
679 AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
684 if test x"$multi_arch" != xno; then
685 multi_arch_d=/multiarch
688 # Compute the list of sysdep directories for this configuration.
689 # This can take a while to compute.
690 sysdep_dir=$srcdir/sysdeps
691 AC_MSG_CHECKING(sysdep dirs)
692 dnl We need to use [ and ] for other purposes for a while now.
694 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
695 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
697 test "x$base_os" != x || case "$os" in
700 netbsd* | 386bsd* | freebsd* | bsdi*)
701 base_os=unix/bsd/bsd4.4 ;;
702 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
704 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
707 base_os=unix/sysv/irix6/$os ;;
709 base_os=unix/sysv/sysv4 ;;
711 base_os=unix/sysv/hpux/$os ;;
713 base_os=unix/sysv/aix/aix4.3 ;;
715 base_os=standalone ;;
718 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
721 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
725 o=`echo $tail | sed 's/[0-9]*$//'`
726 if test $o != $tail; then
729 # For linux-gnu, try linux-gnu, then linux.
730 o=`echo $tail | sed 's/-.*$//'`
731 if test $o != $tail; then
735 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
738 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
744 # For sparc/sparc32, try sparc/sparc32 and then sparc.
746 tail=$machine${submachine:+/$submachine}
747 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
749 # Prepend the machine's FPU directory unless --without-fp.
750 if test "$with_fp" = yes; then
753 mach="$mach /$1/nofpu"
759 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
762 # Find what sysdep directories exist.
765 for b in $base ''; do
766 for m0 in $mach ''; do
767 for v in /$vendor ''; do
768 test "$v" = / && continue
769 for o in /$ostry ''; do
770 test "$o" = / && continue
771 for m in $multi_arch_d $mach ''; do
772 for d in $add_ons_pfx ''; do
773 for a in $add_ons_sfx ''; do
774 if test -n "$m0$m0sub$b$v$o$m$msub"; then
775 try_srcdir="${srcdir}/"
779 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
780 test -n "$enable_debug_configure" &&
781 echo "$0 [DEBUG]: try $try" >&2
782 if test -d "$try_srcdir$try"; then
783 sysnames="$sysnames $try"
784 { test -n "$o" || test -n "$b"; } && os_used=t
785 { test -n "$m" || test -n "$m0"; } && machine_used=t
787 x*/$submachine) submachine_used=t ;;
789 if test -n "$d"; then
790 case "$sysnames_add_ons" in
792 *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
805 # If the assembler supports gnu_indirect_function symbol type and the
806 # architecture supports multi-arch, we enable multi-arch by default.
807 case $sysnames_add_ons$sysnames in
811 test x"$multi_arch" = xdefault && multi_arch=no
814 if test x"$multi_arch" != xno; then
815 AC_DEFINE(USE_MULTIARCH)
819 if test -z "$os_used" && test "$os" != none; then
820 AC_MSG_ERROR(Operating system $os is not supported.)
822 if test -z "$machine_used" && test "$machine" != none; then
823 AC_MSG_ERROR(The $machine is not supported.)
825 if test -z "$submachine_used" && test -n "$submachine"; then
826 AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
830 # We have now validated the configuration.
833 # If using ELF, look for an `elf' subdirectory of each machine directory.
834 # We prepend these rather than inserting them whereever the machine appears
835 # because things specified by the machine's ELF ABI should override
836 # OS-specific things, and should always be the same for any OS on the
837 # machine (otherwise what's the point of an ABI?).
838 if test "$elf" = yes; then
840 for d in $add_ons_pfx ''; do
842 if test -d $srcdir/${d}sysdeps$m/elf; then
843 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
847 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
851 # Expand the list of system names into a full list of directories
852 # from each element's parent name and Implies file (if present).
855 while test $# -gt 0; do
859 case " $names " in *" $name "*)
860 # Already in the list.
864 # Report each name as we discover it, so there is no long pause in output.
865 echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
867 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
871 *) xsrcdir=$srcdir/ ;;
873 test -n "$enable_debug_configure" &&
874 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
876 if test -f $xsrcdir$name/Implies; then
877 # Collect more names from the `Implies' file (removing comments).
878 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
880 for x in $implied_candidate; do
882 if test -d $xsrcdir$name_base/$x; then
883 implied="$implied $name_base/$x";
886 for d in $add_ons_pfx ''; do
890 *) try_srcdir=$srcdir/ ;;
892 test -n "$enable_debug_configure" &&
893 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
894 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
896 implied="$implied $try"
898 case "$sysnames_add_ons" in
900 *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
904 if test $found = no; then
905 AC_MSG_WARN($name/Implies specifies nonexistent $x)
912 # Add NAME to the list of names.
915 # Find the parent of NAME, using the empty string if it has none.
917 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
920 # Add the names implied by NAME, and NAME's parent (if it has one), to
921 # the list of names to be processed (the argument list). We prepend the
922 # implied names to the list and append the parent. We want implied
923 # directories to come before further directories inferred from the
924 # configuration components; this ensures that for sysv4, unix/common
925 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
927 sysnames="`echo $implied $* $parent`"
928 test -n "$sysnames" && set $sysnames
931 # Add the default directories.
932 default_sysnames=sysdeps/generic
933 if test "$elf" = yes; then
934 default_sysnames="sysdeps/generic/elf $default_sysnames"
936 sysnames="$names $default_sysnames"
938 # The other names were emitted during the scan.
939 AC_MSG_RESULT($default_sysnames)
941 # Collect the list of add-ons that supply partial sysdeps trees.
943 for add_on in $add_ons; do
946 *) xsrcdir="$srcdir/" ;;
949 test -d "$xsrcdir$add_on/sysdeps" || {
950 case "$configured_add_ons " in
953 AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree)
959 sysdeps_add_ons="$sysdeps_add_ons $add_on"
960 case "$sysnames_add_ons" in
963 AC_MSG_WARN(add-on $add_on contributed no sysdeps directories)
968 for d in $sysnames; do
970 $add_on/sysdeps/*) ;;
973 (cd "$xsrcdir$d" && for f in *[[!~]]; do
977 test -d "$ff" || { test -e "$ff" && exit 88; }
981 test -d "$f" || { test -e "$f" && exit 88; }
985 if test $? -eq 88; then
990 if test $found = no; then
991 AC_MSG_WARN(add-on $add_on contributed no useful sysdeps directories)
994 AC_SUBST(sysdeps_add_ons)
1000 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
1001 # The makefiles need to use a different form to find it in $srcdir.
1002 INSTALL='\$(..)./scripts/install-sh -c'
1007 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
1009 # Accept binutils 2.13 or newer.
1010 AC_CHECK_PROG_VER(AS, $AS, --version,
1011 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
1012 [2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], AS=: critic_missing="$critic_missing as")
1013 AC_CHECK_PROG_VER(LD, $LD, --version,
1014 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
1015 [2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9][0-9]*|[3-9].*|[1-9][0-9]*], LD=: critic_missing="$critic_missing ld")
1017 # We need the physical current working directory. We cannot use the
1018 # "pwd -P" shell builtin since that's not portable. Instead we try to
1019 # find a pwd binary. Note that assigning to the PWD environment
1020 # variable might have some interesting side effects, so we don't do
1022 AC_PATH_PROG(PWD_P, pwd, no)
1023 if test "$PWD_P" = no; then
1024 AC_MSG_ERROR(*** A pwd binary could not be found.)
1027 # These programs are version sensitive.
1028 AC_CHECK_TOOL_PREFIX
1029 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
1030 [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
1031 critic_missing="$critic_missing gcc")
1032 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
1033 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
1034 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
1036 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
1037 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
1038 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
1039 MSGFMT=: aux_missing="$aux_missing msgfmt")
1040 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
1041 [GNU texinfo.* \([0-9][0-9.]*\)],
1043 MAKEINFO=: aux_missing="$aux_missing makeinfo")
1044 AC_CHECK_PROG_VER(SED, sed, --version,
1045 [GNU sed version \([0-9]*\.[0-9.]*\)],
1046 [3.0[2-9]*|3.[1-9]*|[4-9]*],
1047 SED=: aux_missing="$aux_missing sed")
1049 AC_CHECK_TOOL(READELF, readelf, false)
1051 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
1052 case "x$AUTOCONF" in
1053 xno|x|x:) AUTOCONF=no ;;
1056 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
1057 if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
1058 libc_cv_autoconf_works=yes
1060 libc_cv_autoconf_works=no
1062 test $libc_cv_autoconf_works = yes || AUTOCONF=no
1065 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
1066 # If --without-cvs they probably won't change configure.in, so no complaints.
1067 aux_missing="$aux_missing autoconf"
1070 test -n "$critic_missing" && AC_MSG_ERROR([
1071 *** These critical programs are missing or too old:$critic_missing
1072 *** Check the INSTALL file for required versions.])
1074 test -n "$aux_missing" && AC_MSG_WARN([
1075 *** These auxiliary programs are missing or incompatible versions:$aux_missing
1076 *** some features will be disabled.
1077 *** Check the INSTALL file for required versions.])
1079 # if using special system headers, find out the compiler's sekrit
1080 # header directory and add that to the list. NOTE: Only does the right
1081 # thing on a system that doesn't need fixincludes. (Not presently a problem.)
1082 if test -n "$sysheaders"; then
1083 SYSINCLUDES=-nostdinc
1084 for d in include include-fixed; do
1085 i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
1086 SYSINCLUDES="$SYSINCLUDES -isystem $i"
1088 SYSINCLUDES="$SYSINCLUDES \
1089 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
1090 if test -n "$CXX"; then
1091 cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
1092 cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
1093 cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
1094 CXX_SYSINCLUDES="-isystem $cxxheaders \
1095 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
1098 AC_SUBST(SYSINCLUDES)
1099 AC_SUBST(CXX_SYSINCLUDES)
1101 # ranlib is never necessary on Linux and Hurd systems
1104 # Test if LD_LIBRARY_PATH contains the notation for the current directory
1105 # since this would lead to problems installing/building glibc.
1106 # LD_LIBRARY_PATH contains the current directory if one of the following
1108 # - one of the terminals (":" and ";") is the first or last sign
1109 # - two terminals occur directly after each other
1110 # - the path contains an element with a dot in it
1111 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
1113 case ${LD_LIBRARY_PATH} in
1114 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
1115 ld_library_path_setting="contains current directory"
1118 ld_library_path_setting="ok"
1122 AC_MSG_RESULT($ld_library_path_setting)
1123 if test "$ld_library_path_setting" != "ok"; then
1125 *** LD_LIBRARY_PATH shouldn't contain the current directory when
1126 *** building glibc. Please change the environment variable
1127 *** and run configure again.])
1130 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
1131 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
1132 libc_cv_gcc_static_libgcc=
1134 libc_cv_gcc_static_libgcc=-static-libgcc
1136 AC_SUBST(libc_cv_gcc_static_libgcc)
1138 AC_PATH_PROG(BASH_SHELL, bash, no)
1139 if test "$BASH_SHELL" != no &&
1140 $BASH_SHELL -c 'test "$BASH_VERSINFO" \
1141 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
1142 libc_cv_have_bash2=yes
1144 libc_cv_have_bash2=no
1146 AC_SUBST(libc_cv_have_bash2)
1148 dnl We need a ksh compatible shell for tzselect.
1149 if test "$BASH_SHELL" = no; then
1150 AC_PATH_PROG(KSH, ksh, no)
1151 if test "$KSH" = no; then
1154 libc_cv_have_ksh=yes
1159 libc_cv_have_ksh=yes
1161 AC_SUBST(libc_cv_have_ksh)
1164 AC_PATH_PROG(PERL, perl, no)
1165 if test "$PERL" != no &&
1166 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
1169 AC_PATH_PROG(INSTALL_INFO, install-info, no,
1170 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
1171 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
1173 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
1174 echo '#include <stddef.h>
1175 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
1176 if eval "$ac_cpp conftest.c 2>/dev/null" \
1177 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
1178 libc_cv_signed_size_t=no
1180 libc_cv_signed_size_t=yes
1183 if test $libc_cv_signed_size_t = yes; then
1184 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
1185 cat >> confdefs.h <<\EOF
1186 #undef __SIZE_TYPE__
1187 #define __SIZE_TYPE__ unsigned
1191 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
1193 [#define __need_size_t
1194 #define __need_wchar_t
1197 #include <stddef.h>], [size_t size; wchar_t wchar;
1199 #error stddef.h ignored __need_*
1201 if (&size == NULL || &wchar == NULL) abort ();],
1202 libc_cv_friendly_stddef=yes,
1203 libc_cv_friendly_stddef=no)])
1204 if test $libc_cv_friendly_stddef = yes; then
1205 config_vars="$config_vars
1206 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
1209 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
1210 libc_cv_need_minus_P, [dnl
1211 cat > conftest.S <<EOF
1212 #include "confdefs.h"
1213 /* Nothing whatsoever. */
1215 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
1216 libc_cv_need_minus_P=no
1218 libc_cv_need_minus_P=yes
1221 if test $libc_cv_need_minus_P = yes; then
1222 config_vars="$config_vars
1223 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
1226 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1227 cat > conftest.s <<EOF
1230 .set glibc_conftest_frobozz,foo
1231 $libc_cv_asm_global_directive glibc_conftest_frobozz
1233 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1234 # (but it doesn't work), so we must do a linking check to be sure.
1235 cat > conftest1.c <<\EOF
1236 extern int glibc_conftest_frobozz;
1237 void _start() { glibc_conftest_frobozz = 1; }
1239 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1240 -nostartfiles -nostdlib \
1241 -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1242 libc_cv_asm_set_directive=yes
1244 libc_cv_asm_set_directive=no
1247 if test $libc_cv_asm_set_directive = yes; then
1248 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1251 AC_CACHE_CHECK(for assembler gnu_unique_object symbol type,
1252 libc_cv_asm_unique_object, [dnl
1253 cat > conftest.s <<EOF
1256 .type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
1258 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1259 libc_cv_asm_unique_object=yes
1261 libc_cv_asm_unique_object=no
1264 if test $libc_cv_asm_unique_object = yes; then
1265 AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT)
1268 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1269 [cat > conftest.s <<EOF
1272 .symver _sym,sym@VERS
1274 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1275 libc_cv_asm_symver_directive=yes
1277 libc_cv_asm_symver_directive=no
1280 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1281 if test $libc_cv_asm_symver_directive = yes; then
1282 cat > conftest.s <<EOF
1285 .symver _sym,sym@VERS
1287 cat > conftest.map <<EOF
1296 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1297 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1298 -o conftest.so conftest.o
1299 -nostartfiles -nostdlib
1300 -Wl,--version-script,conftest.map
1301 1>&AS_MESSAGE_LOG_FD]);
1303 libc_cv_ld_version_script_option=yes
1305 libc_cv_ld_version_script_option=no
1308 libc_cv_ld_version_script_option=no
1311 libc_cv_ld_version_script_option=no
1314 if test $shared != no &&
1315 test $libc_cv_asm_symver_directive = yes &&
1316 test $libc_cv_ld_version_script_option = yes &&
1317 test $enable_versioning = yes; then
1319 AC_DEFINE(DO_VERSIONING)
1323 AC_SUBST(VERSIONING)
1325 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1327 *** WARNING: You should not compile GNU libc without versioning. Not using
1328 *** versioning will introduce incompatibilities so that old binaries
1329 *** will not run anymore.
1330 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1332 if test $elf = yes; then
1333 AC_CACHE_CHECK(for .previous assembler directive,
1334 libc_cv_asm_previous_directive, [dnl
1335 cat > conftest.s <<EOF
1336 .section foo_section
1339 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1340 libc_cv_asm_previous_directive=yes
1342 libc_cv_asm_previous_directive=no
1345 if test $libc_cv_asm_previous_directive = yes; then
1346 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1348 AC_CACHE_CHECK(for .popsection assembler directive,
1349 libc_cv_asm_popsection_directive, [dnl
1350 cat > conftest.s <<EOF
1351 .pushsection foo_section
1354 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1355 libc_cv_asm_popsection_directive=yes
1357 libc_cv_asm_popsection_directive=no
1360 if test $libc_cv_asm_popsection_directive = yes; then
1361 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1364 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1365 libc_cv_asm_protected_directive, [dnl
1366 cat > conftest.s <<EOF
1372 if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1373 libc_cv_asm_protected_directive=yes
1375 AC_MSG_ERROR(assembler support for symbol visibility is required)
1379 if test $libc_cv_asm_protected_directive = yes; then
1380 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1381 libc_cv_visibility_attribute,
1382 [cat > conftest.c <<EOF
1383 int foo __attribute__ ((visibility ("hidden"))) = 1;
1384 int bar __attribute__ ((visibility ("protected"))) = 1;
1386 libc_cv_visibility_attribute=no
1387 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1388 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1389 if grep '\.protected.*bar' conftest.s >/dev/null; then
1390 libc_cv_visibility_attribute=yes
1394 rm -f conftest.{c,s}
1396 if test $libc_cv_visibility_attribute != yes; then
1397 AC_MSG_ERROR(compiler support for visibility attribute is required)
1401 if test $libc_cv_visibility_attribute = yes; then
1402 AC_CACHE_CHECK(for broken __attribute__((visibility())),
1403 libc_cv_broken_visibility_attribute,
1404 [cat > conftest.c <<EOF
1406 int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1407 int bar (int x) { return x; }
1409 libc_cv_broken_visibility_attribute=yes
1410 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1412 if grep '\.hidden[ _]foo' conftest.s >/dev/null; then
1414 libc_cv_broken_visibility_attribute=no
1417 rm -f conftest.c conftest.s
1419 if test $libc_cv_broken_visibility_attribute = yes; then
1420 AC_MSG_ERROR(working compiler support for visibility attribute is required)
1424 AC_CACHE_CHECK(for broken __attribute__((alias())),
1425 libc_cv_broken_alias_attribute,
1426 [cat > conftest.c <<EOF
1427 extern int foo (int x) __asm ("xyzzy");
1428 int bar (int x) { return x; }
1429 extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1431 extern __typeof (dfoo) dfoo __asm ("abccb");
1434 libc_cv_broken_alias_attribute=yes
1435 if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1436 if grep 'xyzzy' conftest.s >/dev/null &&
1437 grep 'abccb' conftest.s >/dev/null; then
1438 libc_cv_broken_alias_attribute=no
1441 rm -f conftest.c conftest.s
1443 if test $libc_cv_broken_alias_attribute = yes; then
1444 AC_MSG_ERROR(working alias attribute support required)
1447 if test $libc_cv_visibility_attribute = yes; then
1448 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1449 libc_cv_have_sdata_section,
1450 [echo "int i;" > conftest.c
1451 libc_cv_have_sdata_section=no
1452 if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1453 | grep '\.sdata' >/dev/null; then
1454 libc_cv_have_sdata_section=yes
1456 rm -f conftest.c conftest.so
1458 if test $libc_cv_have_sdata_section = yes; then
1459 AC_DEFINE(HAVE_SDATA_SECTION)
1463 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1464 libc_cv_initfini_array, [dnl
1465 cat > conftest.c <<EOF
1466 int _start (void) { return 0; }
1467 int __start (void) { return 0; }
1468 int foo (void) { return 1; }
1469 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1471 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1472 -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1474 if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
1475 libc_cv_initfini_array=yes
1477 libc_cv_initfini_array=no
1480 libc_cv_initfini_array=no
1483 if test $libc_cv_initfini_array != yes; then
1484 AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1487 AC_CACHE_CHECK(whether to use .ctors/.dtors header and trailer,
1488 libc_cv_ctors_header, [dnl
1489 if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then
1490 libc_cv_ctors_header=no
1492 libc_cv_ctors_header=yes
1495 if test $libc_cv_ctors_header = no; then
1496 AC_DEFINE(NO_CTORS_DTORS_SECTIONS)
1499 AC_CACHE_CHECK(for libunwind-support in compiler,
1500 libc_cv_cc_with_libunwind, [
1501 cat > conftest.c <<EOF
1502 int main (void) { return 0; }
1504 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1505 conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1506 libc_cv_cc_with_libunwind=yes
1508 libc_cv_cc_with_libunwind=no
1511 AC_SUBST(libc_cv_cc_with_libunwind)
1512 if test $libc_cv_cc_with_libunwind = yes; then
1513 AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1516 AC_CACHE_CHECK(for -z nodelete option,
1517 libc_cv_z_nodelete, [dnl
1518 cat > conftest.c <<EOF
1519 int _start (void) { return 42; }
1521 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1522 -fPIC -shared -o conftest.so conftest.c
1523 -nostartfiles -nostdlib
1524 -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1526 libc_cv_z_nodelete=yes
1528 AC_MSG_ERROR(linker with -z nodelete support required)
1532 AC_CACHE_CHECK(for -z nodlopen option,
1533 libc_cv_z_nodlopen, [dnl
1534 cat > conftest.c <<EOF
1535 int _start (void) { return 42; }
1537 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1538 -fPIC -shared -o conftest.so conftest.c
1539 -nostartfiles -nostdlib
1540 -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1542 libc_cv_z_nodlopen=yes
1544 AC_MSG_ERROR(linker with -z nodlopen support required)
1548 AC_CACHE_CHECK(for -z initfirst option,
1549 libc_cv_z_initfirst, [dnl
1550 cat > conftest.c <<EOF
1551 int _start (void) { return 42; }
1553 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1554 -fPIC -shared -o conftest.so conftest.c
1555 -nostartfiles -nostdlib
1556 -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1558 libc_cv_z_initfirst=yes
1560 AC_MSG_ERROR(linker with -z initfirst support required)
1564 case "$base_machine" in
1566 i[34567]86 | x86_64 | powerpc* | s390* | sparc* | alpha*)
1568 AC_CACHE_CHECK(for -z relro option,
1569 libc_cv_z_relro, [dnl
1571 if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1573 if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1578 if test "$libc_cv_z_relro" = no; then
1579 AC_MSG_ERROR(linker with -z relro support required)
1585 AC_CACHE_CHECK(for -Bgroup option,
1586 libc_cv_Bgroup, [dnl
1587 cat > conftest.c <<EOF
1588 int _start (void) { return 42; }
1590 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1591 -fPIC -shared -o conftest.so conftest.c
1592 -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1599 AC_SUBST(libc_cv_Bgroup)
1601 AC_CACHE_CHECK(for libgcc_s suffix,
1602 libc_cv_libgcc_s_suffix, [dnl
1603 cat > conftest.c <<EOF
1604 int main (void) { return 0; }
1607 libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1608 -fPIC -shared -shared-libgcc -o conftest.so \
1609 conftest.c -v 2>&1 >/dev/null \
1610 | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1613 AC_SUBST(libc_cv_libgcc_s_suffix)
1615 AC_CACHE_CHECK(for --as-needed option,
1616 libc_cv_as_needed, [dnl
1617 cat > conftest.c <<EOF
1618 int main (void) { return 0; }
1620 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1621 -fPIC -shared -o conftest.so conftest.c
1622 -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1623 -nostdlib 1>&AS_MESSAGE_LOG_FD])
1625 libc_cv_as_needed=yes
1627 libc_cv_as_needed=no
1630 AC_SUBST(libc_cv_as_needed)
1633 AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1634 libc_cv_as_noexecstack, [dnl
1635 cat > conftest.c <<EOF
1638 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1639 -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1640 && grep -q .note.GNU-stack conftest.s \
1641 && AC_TRY_COMMAND([${CC-cc} $ASFLAGS -Wa,--noexecstack
1642 -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1644 libc_cv_as_noexecstack=yes
1646 libc_cv_as_noexecstack=no
1649 if test $libc_cv_as_noexecstack = yes; then
1650 ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1652 AC_SUBST(ASFLAGS_config)
1654 AC_CACHE_CHECK(for -z combreloc,
1655 libc_cv_z_combreloc, [dnl
1656 cat > conftest.c <<EOF
1657 extern int bar (int);
1659 int foo (void) { return bar (mumble); }
1661 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1662 -fPIC -shared -o conftest.so conftest.c
1663 -nostdlib -nostartfiles
1664 -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1666 dnl The following test is a bit weak. We must use a tool which can test
1667 dnl cross-platform since the gcc used can be a cross compiler. Without
1668 dnl introducing new options this is not easily doable. Instead use a tool
1669 dnl which always is cross-platform: readelf. To detect whether -z combreloc
1670 dnl look for a section named .rel.dyn.
1671 if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1672 libc_cv_z_combreloc=yes
1674 libc_cv_z_combreloc=no
1677 libc_cv_z_combreloc=no
1680 if test "$libc_cv_z_combreloc" = yes; then
1681 AC_DEFINE(HAVE_Z_COMBRELOC)
1683 AC_SUBST(libc_cv_z_combreloc)
1685 AC_CACHE_CHECK(for -z execstack,
1686 libc_cv_z_execstack, [dnl
1687 cat > conftest.c <<EOF
1688 int _start (void) { return 42; }
1690 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1691 -fPIC -shared -o conftest.so conftest.c
1692 -Wl,-z,execstack -nostdlib
1693 1>&AS_MESSAGE_LOG_FD])
1695 libc_cv_z_execstack=yes
1697 libc_cv_z_execstack=no
1700 AC_SUBST(libc_cv_z_execstack)
1702 AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1703 cat > conftest.c <<EOF
1705 main () { return 0;}
1707 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1708 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1716 AC_SUBST(libc_cv_fpie)
1718 AC_CACHE_CHECK(for --hash-style option,
1719 libc_cv_hashstyle, [dnl
1720 cat > conftest.c <<EOF
1721 int _start (void) { return 42; }
1723 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1724 -fPIC -shared -o conftest.so conftest.c
1725 -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
1727 libc_cv_hashstyle=yes
1729 libc_cv_hashstyle=no
1732 AC_SUBST(libc_cv_hashstyle)
1735 AC_CACHE_CHECK(for -fno-toplevel-reorder -fno-section-anchors, libc_cv_fno_toplevel_reorder, [dnl
1736 cat > conftest.c <<EOF
1739 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
1740 conftest.c 1>&AS_MESSAGE_LOG_FD])
1742 libc_cv_fno_toplevel_reorder=yes
1744 libc_cv_fno_toplevel_reorder=no
1747 if test $libc_cv_fno_toplevel_reorder = yes; then
1748 fno_unit_at_a_time="-fno-toplevel-reorder -fno-section-anchors"
1750 fno_unit_at_a_time=-fno-unit-at-a-time
1752 AC_SUBST(fno_unit_at_a_time)
1754 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1755 cat > conftest.c <<EOF
1757 main () { return 0;}
1759 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -Werror -fstack-protector
1760 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1767 AC_SUBST(libc_cv_ssp)
1769 AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1770 cat > conftest.c <<EOF
1772 #ifdef __GNUC_GNU_INLINE__
1773 main () { return 0;}
1778 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -std=gnu99 -fgnu89-inline
1779 -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD])
1781 libc_cv_gnu89_inline=yes
1783 libc_cv_gnu89_inline=no
1786 if test $libc_cv_gnu89_inline = yes; then
1787 gnu89_inline=-fgnu89-inline
1791 AC_SUBST(gnu89_inline)
1793 if test $elf != yes; then
1794 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1795 [AC_TRY_COMPILE(, [asm (".section .init");
1796 asm (".section .fini");
1797 asm ("${libc_cv_dot_text}");],
1798 libc_cv_have_initfini=yes,
1799 libc_cv_have_initfini=no)])
1800 AC_SUBST(libc_cv_have_initfini)dnl
1801 if test $libc_cv_have_initfini = yes; then
1802 AC_DEFINE(HAVE_INITFINI)
1806 if test $elf = yes; then
1807 AC_CACHE_CHECK(whether cc puts quotes around section names,
1808 libc_cv_have_section_quotes,
1809 [cat > conftest.c <<EOF
1810 static const int foo
1811 __attribute__ ((section ("bar"))) = 1;
1813 if ${CC-cc} -S conftest.c -o conftest.s; then
1814 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1815 libc_cv_have_section_quotes=yes
1817 libc_cv_have_section_quotes=no
1820 libc_cv_have_section_quotes=unknown
1822 rm -f conftest.{c,s}
1824 if test $libc_cv_have_section_quotes = yes; then
1825 AC_DEFINE(HAVE_SECTION_QUOTES)
1829 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1830 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1831 [cat > conftest.$ac_ext <<EOF
1832 dnl This sometimes fails to find confdefs.h, for some reason.
1833 dnl [#]line $LINENO "[$]0"
1834 [#]line $LINENO "configure"
1835 #include "confdefs.h"
1836 void underscore_test(void) {
1839 if AC_TRY_EVAL(ac_compile); then
1840 if grep _underscore_test conftest* >/dev/null; then
1841 ifelse([$1], , :, [rm -f conftest*
1844 ifelse([$2], , , [rm -f conftest*
1848 echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1849 cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1850 ifelse([$2], , , [rm -f conftest*
1855 if test $elf = yes; then
1856 libc_cv_asm_underscores=no
1858 if test $ac_cv_prog_cc_works = yes; then
1859 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1860 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1861 libc_cv_asm_underscores=yes,
1862 libc_cv_asm_underscores=no)])
1864 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1865 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1866 libc_cv_asm_underscores=no)])
1869 if test $libc_cv_asm_underscores = no; then
1870 AC_DEFINE(NO_UNDERSCORES)
1873 if test $elf = yes; then
1874 libc_cv_weak_symbols=yes
1877 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1879 cat > conftest.s <<EOF
1881 ${libc_cv_asm_global_directive} foo
1884 .weak bar; bar = foo
1886 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1887 libc_cv_asm_weak_directive=yes
1889 libc_cv_asm_weak_directive=no
1893 if test $libc_cv_asm_weak_directive = no; then
1894 AC_CACHE_CHECK(for assembler .weakext directive,
1895 libc_cv_asm_weakext_directive,
1897 cat > conftest.s <<EOF
1899 ${libc_cv_asm_global_directive} foo
1903 ${libc_cv_asm_global_directive} baz
1906 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1907 libc_cv_asm_weakext_directive=yes
1909 libc_cv_asm_weakext_directive=no
1915 if test $libc_cv_asm_weak_directive = yes; then
1916 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1917 elif test $libc_cv_asm_weakext_directive = yes; then
1918 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1921 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1923 sparc/sparc64*) cfi_offset=2047;;
1926 cat > conftest.s <<EOF
1928 .type func,%function
1932 .cfi_rel_offset 1, $cfi_offset
1935 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1936 libc_cv_asm_cfi_directives=yes
1938 libc_cv_asm_cfi_directives=no
1941 if test $libc_cv_asm_cfi_directives = yes; then
1942 AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1945 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1946 cat > conftest.c <<\EOF
1951 dnl No \ in command here because it ends up inside ''.
1952 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1953 -nostdlib -nostartfiles -Wl,--no-whole-archive
1954 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1955 libc_cv_ld_no_whole_archive=yes
1957 libc_cv_ld_no_whole_archive=no
1960 if test $libc_cv_ld_no_whole_archive = yes; then
1961 no_whole_archive=-Wl,--no-whole-archive
1963 AC_SUBST(no_whole_archive)dnl
1965 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1966 cat > conftest.c <<\EOF
1971 dnl No \ in command here because it ends up inside ''.
1972 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1973 -nostdlib -nostartfiles -fexceptions
1974 -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1975 libc_cv_gcc_exceptions=yes
1977 libc_cv_gcc_exceptions=no
1980 if test $libc_cv_gcc_exceptions = yes; then
1981 exceptions=-fexceptions
1983 AC_SUBST(exceptions)dnl
1985 if test "$host_cpu" = powerpc ; then
1986 # Check for a bug present in at least versions 2.8.x of GCC
1987 # and versions 1.0.x of EGCS.
1988 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1989 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1990 libc_cv_c_asmcr0_bug='no',
1991 libc_cv_c_asmcr0_bug='yes')])
1992 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1993 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1997 dnl Check whether compiler understands __builtin_expect.
1998 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1999 [cat > conftest.c <<EOF
2000 #line $LINENO "configure"
2003 a = __builtin_expect (a, 10);
2004 return a == 10 ? 0 : 1;
2007 dnl No \ in command here because it ends up inside ''.
2008 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
2009 -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
2010 libc_cv_gcc_builtin_expect=yes
2012 libc_cv_gcc_builtin_expect=no
2015 if test "$libc_cv_gcc_builtin_expect" = yes; then
2016 AC_DEFINE(HAVE_BUILTIN_EXPECT)
2019 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
2020 cat > conftest.c <<\EOF
2023 __builtin_memset (x, 0, 1000);
2027 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
2029 libc_cv_gcc_builtin_memset=no
2031 libc_cv_gcc_builtin_memset=yes
2034 if test "$libc_cv_gcc_builtin_memset" = yes ; then
2035 AC_DEFINE(HAVE_BUILTIN_MEMSET)
2038 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
2039 cat > conftest.c <<\EOF
2040 extern char *strstr (const char *, const char *) __asm ("my_strstr");
2041 char *foo (const char *a, const char *b)
2043 return __builtin_strstr (a, b);
2047 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
2049 libc_cv_gcc_builtin_redirection=yes
2051 libc_cv_gcc_builtin_redirection=no
2054 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
2055 AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
2058 dnl Check whether the compiler supports the __thread keyword.
2059 if test "x$use__thread" != xno; then
2060 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
2061 [cat > conftest.c <<\EOF
2062 __thread int a = 42;
2064 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
2065 libc_cv_gcc___thread=yes
2067 libc_cv_gcc___thread=no
2070 if test "$libc_cv_gcc___thread" = yes; then
2071 AC_DEFINE(HAVE___THREAD)
2074 libc_cv_gcc___thread=no
2077 if test "$libc_cv_gcc___thread" = yes; then
2078 dnl Check whether the compiler supports the tls_model attribute.
2079 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
2080 cat > conftest.c <<\EOF
2081 extern __thread int a __attribute__((tls_model ("initial-exec")));
2083 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
2084 libc_cv_gcc_tls_model_attr=yes
2086 libc_cv_gcc_tls_model_attr=no
2089 if test "$libc_cv_gcc_tls_model_attr" = yes; then
2090 AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
2094 if test -n "$submachine"; then
2095 AC_CACHE_CHECK([for compiler option for CPU variant],
2096 libc_cv_cc_submachine, [dnl
2097 libc_cv_cc_submachine=no
2098 for opt in "-march=$submachine" "-mcpu=$submachine"; do
2099 if AC_TRY_COMMAND([${CC-cc} $opt -xc /dev/null -S -o /dev/null]); then
2100 libc_cv_cc_submachine="$opt"
2104 if test "x$libc_cv_cc_submachine" = xno; then
2105 AC_MSG_ERROR([${CC-cc} does not support $submachine])
2108 AC_SUBST(libc_cv_cc_submachine)
2110 dnl Check whether we have the gd library available.
2111 AC_MSG_CHECKING(for libgd)
2112 if test "$with_gd" != "no"; then
2113 old_CFLAGS="$CFLAGS"
2114 CFLAGS="$CFLAGS $libgd_include"
2115 old_LDFLAGS="$LDFLAGS"
2116 LDFLAGS="$LDFLAGS $libgd_ldflags"
2118 LIBS="$LIBS -lgd -lpng -lz -lm"
2119 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
2120 CFLAGS="$old_CFLAGS"
2121 LDFLAGS="$old_LDFLAGS"
2126 AC_MSG_RESULT($LIBGD)
2130 if test x$with_selinux = xno ; then
2133 # See if we have the SELinux library
2134 AC_CHECK_LIB(selinux, is_selinux_enabled,
2135 have_selinux=yes, have_selinux=no)
2136 # See if we have the SELinux header with the NSCD permissions in it.
2137 if test x$have_selinux = xyes ; then
2138 AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
2139 AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
2140 [#ifdef NSCD__SHMEMHOST
2143 #error NSCD__SHMEMHOST not defined
2145 have_selinux=yes, have_selinux=no)
2146 AC_MSG_RESULT($have_selinux)
2149 if test x$with_selinux = xyes ; then
2150 if test x$have_selinux = xno ; then
2151 AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
2155 # Check if we're building with SELinux support.
2156 if test "x$have_selinux" = xyes; then
2157 AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
2159 # See if we have the libaudit library
2160 AC_CHECK_LIB(audit, audit_log_user_avc_message,
2161 have_libaudit=yes, have_libaudit=no)
2162 if test "x$have_libaudit" = xyes; then
2163 AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
2165 AC_SUBST(have_libaudit)
2167 # See if we have the libcap library
2168 AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
2169 if test "x$have_libcap" = xyes; then
2170 AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
2172 AC_SUBST(have_libcap)
2174 AC_SUBST(have_selinux)
2176 dnl check for the size of 'long double'.
2177 AC_CHECK_SIZEOF(long double, 0)
2178 sizeof_long_double=$ac_cv_sizeof_long_double
2179 AC_SUBST(sizeof_long_double)
2181 ### End of automated tests.
2182 ### Now run sysdeps configure fragments.
2184 # They also can set these variables.
2186 ldd_rewrite_script=no
2187 libc_cv_sysconfdir=$sysconfdir
2188 libc_cv_gcc_unwind_find_fde=no
2191 # Iterate over all the sysdep directories we will use, running their
2192 # configure fragments.
2193 for dir in $sysnames; do
2196 *) dest=$srcdir/$dir ;;
2198 if test -r $dest/configure; then
2199 AC_MSG_RESULT(running configure fragment for $dir)
2204 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2205 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2207 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2209 dnl This is tested by existing code and it's simpler to avoid changing it.
2210 AC_DEFINE(USE_IN_LIBIO)
2212 # Test for old glibc 2.0.x headers so that they can be removed properly
2213 # Search only in includedir.
2214 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2215 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2217 old_glibc_headers=yes
2219 old_glibc_headers=no
2221 AC_MSG_RESULT($old_glibc_headers)
2222 if test ${old_glibc_headers} = yes; then
2223 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2224 AC_MSG_WARN(*** be removed.)
2226 AC_SUBST(old_glibc_headers)
2228 AC_SUBST(libc_cv_slibdir)
2229 AC_SUBST(libc_cv_localedir)
2230 AC_SUBST(libc_cv_sysconfdir)
2231 AC_SUBST(libc_cv_rootsbindir)
2232 AC_SUBST(libc_cv_forced_unwind)
2234 dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests
2235 AC_SUBST(libc_cv_cpp_asm_debuginfo)
2236 AC_SUBST(libc_cv_cc_sse4)
2237 AC_SUBST(libc_cv_cc_avx)
2238 AC_SUBST(libc_cv_cc_novzeroupper)
2239 AC_SUBST(libc_cv_as_i686)
2241 AC_SUBST(use_ldconfig)
2242 AC_SUBST(ldd_rewrite_script)
2244 AC_SUBST(elf) AC_SUBST(xcoff)
2245 if test $elf = yes; then
2248 if test $xcoff = yes; then
2249 AC_DEFINE(HAVE_XCOFF)
2254 if test $shared = default; then
2258 AC_CACHE_CHECK([whether -fPIC is default], libc_cv_pic_default,
2259 [libc_cv_pic_default=yes
2260 cat > conftest.c <<EOF
2261 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2262 # error PIC is default.
2265 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2266 libc_cv_pic_default=no
2269 AC_SUBST(libc_cv_pic_default)
2274 AC_SUBST(static_nss)
2275 AC_SUBST(nopic_initfini)
2279 dnl See sysdeps/mach/configure.in for this variable.
2280 AC_SUBST(mach_interface_list)
2282 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2285 config_makefile=Makefile
2288 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2289 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2293 AC_CONFIG_FILES([config.make ${config_makefile}])
2294 AC_CONFIG_COMMANDS([default],[[
2295 case $CONFIG_FILES in *config.make*)
2296 echo "$config_vars" >> config.make;;
2298 test -d bits || mkdir bits]],[[config_vars='$config_vars']])