WP fixes
[glibc.git] / configure.in
blob2c4fc97df84d7e721b447e67add2777e32d5434a
1 dnl Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.53)dnl              dnl Minimum Autoconf version required.
3 AC_INIT([GNU C Library], [(see version.h)], [http://sourceware.org/bugzilla/], [glibc])
4 AC_CONFIG_SRCDIR([include/features.h])
5 AC_CONFIG_HEADERS([config.h])
6 AC_CONFIG_AUX_DIR([scripts])
8 dnl This is here so we can set $subdirs directly based on configure fragments.
9 AC_CONFIG_SUBDIRS()
11 AC_CANONICAL_HOST
13 AC_PROG_CC
14 if test $host != $build; then
15   AC_CHECK_PROGS(BUILD_CC, gcc cc)
17 AC_SUBST(cross_compiling)
18 AC_PROG_CPP
19 # We need the C++ compiler only for testing.
20 AC_PROG_CXX
22 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
23   AC_MSG_ERROR([you must configure in a separate build directory])
26 # This will get text that should go into config.make.
27 config_vars=
29 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
30 AC_ARG_WITH([gd],
31             AC_HELP_STRING([--with-gd=DIR],
32                            [find libgd include dir and library with prefix DIR]),
33             [dnl
34 case "$with_gd" in
35 yes|''|no) ;;
36 *) libgd_include="-I$withval/include"
37    libgd_ldflags="-L$withval/lib" ;;
38 esac
40 AC_ARG_WITH([gd-include],
41             AC_HELP_STRING([--with-gd-include=DIR],
42                            [find libgd include files in DIR]),
43             [dnl
44 case "$with_gd_include" in
45 ''|no) ;;
46 *) libgd_include="-I$withval" ;;
47 esac
49 AC_ARG_WITH([gd-lib],
50             AC_HELP_STRING([--with-gd-lib=DIR],
51                            [find libgd library files in DIR]),
52             [dnl
53 case "$with_gd_lib" in
54 ''|no) ;;
55 *) libgd_ldflags="-L$withval" ;;
56 esac
59 if test -n "$libgd_include"; then
60   config_vars="$config_vars
61 CFLAGS-memusagestat.c = $libgd_include"
63 if test -n "$libgd_ldflags"; then
64   config_vars="$config_vars
65 libgd-LDFLAGS = $libgd_ldflags"
68 dnl Arguments to specify presence of other packages/features.
69 AC_ARG_WITH([fp],
70             AC_HELP_STRING([--with-fp],
71                            [if using floating-point hardware @<:@default=yes@:>@]),
72             [with_fp=$withval],
73             [with_fp=yes])
74 AC_SUBST(with_fp)
75 AC_ARG_WITH([binutils],
76             AC_HELP_STRING([--with-binutils=PATH],
77                            [specify location of binutils (as and ld)]),
78             [path_binutils=$withval],
79             [path_binutils=''])
80 AC_ARG_WITH([elf],
81             AC_HELP_STRING([--with-elf],
82                            [if using the ELF object format]),
83             [elf=$withval],
84             [elf=no])
85 AC_ARG_WITH([selinux],
86             AC_HELP_STRING([--with-selinux],
87                            [if building with SELinux support]),
88             [with_selinux=$withval],
89             [with_selinux=auto])
90 AC_ARG_WITH([xcoff],
91             AC_HELP_STRING([--with-xcoff],
92                            [if using the XCOFF object format]),
93             [xcoff=$withval],
94             [xcoff=no])
96 AC_ARG_WITH([headers],
97             AC_HELP_STRING([--with-headers=PATH],
98                            [location of system headers to use
99                             (for example /usr/src/linux/include)
100                             @<:@default=compiler default@:>@]),
101             [sysheaders=$withval],
102             [sysheaders=''])
104 AC_SUBST(use_default_link)
105 AC_ARG_WITH([default-link],
106             AC_HELP_STRING([--with-default-link],
107                            [do not use explicit linker scripts]),
108             [use_default_link=$withval],
109             [use_default_link=default])
111 AC_ARG_ENABLE([sanity-checks],
112               AC_HELP_STRING([--disable-sanity-checks],
113                              [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
114               [enable_sanity=$enableval],
115               [enable_sanity=yes])
117 AC_SUBST(enable_check_abi)
118 AC_ARG_ENABLE([check-abi],
119               AC_HELP_STRING([--enable-check-abi],
120                              [do "make check-abi" in "make check" (no/warn/yes)
121                               @<:@default=no@:>@]),
122               [enable_check_abi=$enableval],
123               [enable_check_abi=no])
125 dnl Arguments to enable or disable building the static, shared, profiled,
126 dnl and -fomit-frame-pointer libraries.
127 dnl I've disabled this for now since we cannot build glibc without static
128 dnl libraries built in the moment.
129 dnl AC_ARG_ENABLE([static],
130 dnl               AC_HELP_STRING([--enable-static],
131 dnl                              [build static library @<:@default=yes@:>@]),
132 dnl               [static=$enableval],
133 dnl               [static=yes])
134 static=yes
135 AC_ARG_ENABLE([shared],
136               AC_HELP_STRING([--enable-shared],
137                              [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
138               [shared=$enableval],
139               [shared=default])
140 AC_ARG_ENABLE([profile],
141               AC_HELP_STRING([--enable-profile],
142                              [build profiled library @<:@default=no@:>@]),
143               [profile=$enableval],
144               [profile=no])
145 AC_ARG_ENABLE([omitfp],
146               AC_HELP_STRING([--enable-omitfp],
147                              [build undebuggable optimized library @<:@default=no@:>@]),
148               [omitfp=$enableval],
149               [omitfp=no])
150 AC_ARG_ENABLE([bounded],
151               AC_HELP_STRING([--enable-bounded],
152                              [build with runtime bounds checking @<:@default=no@:>@]),
153               [bounded=$enableval],
154               [bounded=no])
155 AC_ARG_ENABLE([versioning],
156               AC_HELP_STRING([--disable-versioning],
157                              [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
158               [enable_versioning=$enableval],
159               [enable_versioning=yes])
161 AC_ARG_ENABLE([oldest-abi],
162               AC_HELP_STRING([--enable-oldest-abi=ABI],
163                              [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
164               [oldest_abi=$enableval],
165               [oldest_abi=no])
166 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
167   oldest_abi=default
168 else
169   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
171 AC_SUBST(oldest_abi)
173 AC_ARG_ENABLE([stackguard-randomization],
174               AC_HELP_STRING([--enable-stackguard-randomization],
175                              [initialize __stack_chk_guard canary with a random number at program start]),
176               [enable_stackguard_randomize=$enableval],
177               [enable_stackguard_randomize=no])
178 if test "$enable_stackguard_randomize" = yes; then
179   AC_DEFINE(ENABLE_STACKGUARD_RANDOMIZE)
182 dnl Generic infrastructure for drop-in additions to libc.
183 AC_ARG_ENABLE([add-ons],
184               AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
185                              [configure and build add-ons in DIR1,DIR2,...
186                               search for add-ons if no parameter given]),
187                              , [enable_add_ons=yes])
189 AC_ARG_ENABLE([hidden-plt],
190               AC_HELP_STRING([--disable-hidden-plt],
191                              [do not hide internal function calls to avoid PLT]),
192               [hidden=$enableval],
193               [hidden=yes])
194 if test "x$hidden" = xno; then
195   AC_DEFINE(NO_HIDDEN)
198 AC_ARG_ENABLE([bind-now],
199               AC_HELP_STRING([--enable-bind-now],
200                              [disable lazy relocations in DSOs]),
201               [bindnow=$enableval],
202               [bindnow=no])
203 AC_SUBST(bindnow)
205 dnl On some platforms we cannot use dynamic loading.  We must provide
206 dnl static NSS modules.
207 AC_ARG_ENABLE([static-nss],
208               AC_HELP_STRING([--enable-static-nss],
209                              [build static NSS modules @<:@default=no@:>@]),
210               [static_nss=$enableval],
211               [static_nss=no])
212 dnl Enable static NSS also if we build no shared objects.
213 if test x"$static_nss" = xyes || test x"$shared" = xno; then
214   static_nss=yes
215   AC_DEFINE(DO_STATIC_NSS)
218 AC_ARG_ENABLE([force-install],
219               AC_HELP_STRING([--disable-force-install],
220                              [don't force installation of files from this package, even if they are older than the installed files]),
221               [force_install=$enableval],
222               [force_install=yes])
223 AC_SUBST(force_install)
225 dnl On some platforms we allow dropping compatibility with all kernel
226 dnl versions.
227 AC_ARG_ENABLE([kernel],
228               AC_HELP_STRING([--enable-kernel=VERSION],
229                              [compile for compatibility with kernel not older than VERSION]),
230               [minimum_kernel=$enableval],
231               [])
232 dnl Prevent unreasonable values.
233 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
234   # Better nothing than this.
235   minimum_kernel=""
236 else
237   if test "$minimum_kernel" = current; then
238     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
239   fi
242 dnl For the development we sometimes want gcc to issue even more warnings.
243 dnl This is not the default since many of the extra warnings are not
244 dnl appropriate.
245 AC_ARG_ENABLE([all-warnings],
246               AC_HELP_STRING([--enable-all-warnings],
247                              [enable all useful warnings gcc can issue]),
248               [all_warnings=$enableval],
249               [])
250 AC_SUBST(all_warnings)
252 AC_ARG_ENABLE([multi-arch],
253               AC_HELP_STRING([--enable-multi-arch],
254                              [enable single DSO with optimizations for multiple architectures]),
255               [multi_arch=$enableval],
256               [multi_arch=default])
258 AC_ARG_ENABLE([nss-crypt],
259               AC_HELP_STRING([--enable-nss-crypt],
260                              [enable libcrypt to use nss]),
261               [nss_crypt=$enableval],
262               [nss_crypt=no])
263 if test x$nss_crypt = xyes; then
264   nss_includes=-I$(nss-config --includedir 2>/dev/null)
265   if test $? -ne 0; then
266     AC_MSG_ERROR([cannot find include directory with nss-config])
267   fi
268   old_CFLAGS="$CFLAGS"
269   CFLAGS="$CFLAGS $nss_includes"
270   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
271 #include <hasht.h>
272 #include <nsslowhash.h>
273 void f (void) { NSSLOW_Init (); }])],
274              libc_cv_nss_crypt=yes,
275              AC_MSG_ERROR([
276 cannot find NSS headers with lowlevel hash function interfaces]))
277   old_LIBS="$LIBS"
278   LIBS="$LIBS -lfreebl3"
279   AC_LINK_IFELSE([AC_LANG_PROGRAM([typedef int PRBool;
280 #include <hasht.h>
281 #include <nsslowhash.h>],
282                                   [NSSLOW_Init();])],
283                  libc_cv_nss_crypt=yes,
284                  AC_MSG_ERROR([
285 cannot link program using lowlevel NSS hash functions]))
286   CFLAGS="$old_CFLAGS"
287   LIBS="$old_LIBS"
288 else
289   libc_cv_nss_crypt=no
291 AC_SUBST(libc_cv_nss_crypt)
293 # The way shlib-versions is used to generate soversions.mk uses a
294 # fairly simplistic model for name recognition that can't distinguish
295 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
296 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
297 # tell.  This doesn't get used much beyond that, so it's fairly safe.
298 case "$host_os" in
299 linux*)
300   ;;
301 gnu*)
302   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
303   ;;
304 esac
306 # We keep the original values in `$config_*' and never modify them, so we
307 # can write them unchanged into config.make.  Everything else uses
308 # $machine, $vendor, and $os, and changes them whenever convenient.
309 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
311 # Don't allow vendor == "unknown"
312 test "$config_vendor" = unknown && config_vendor=
313 config_os="`echo $config_os | sed 's/^unknown-//'`"
315 # Some configurations imply other options.
316 case "$host_os" in
317 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
318 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
319   ;;
320 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
321   # These systems (almost) always use the ELF format.
322   elf=yes
323   ;;
324 aix*)
325   # These systems are always xcoff
326   xcoff=yes
327   elf=no
328   ;;
329 esac
331 # The configure fragment of an add-on port can modify these to supplement
332 # or override the table in the case statement below.  No fragment should
333 # ever change the config_* variables, however.
334 machine=$config_machine
335 vendor=$config_vendor
336 os=$config_os
337 base_os=''
339 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
340 # Unify this here.
341 if test "$machine" = rs6000; then
342   machine="powerpc"
345 # Braindead PowerPC box with absolutely no FPU.
346 case "$machine-$host_os" in
347   powerpc*-*soft)
348     with_fp=no
349     ;;
350 esac
352 submachine=
353 AC_ARG_WITH([cpu],
354             AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
355             [dnl
356   case "$withval" in
357   yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
358   no) ;;
359   *) submachine="$withval" ;;
360   esac
363 # An add-on can set this when it wants to disable the sanity check below.
364 libc_config_ok=no
366 dnl Having this here, though empty, makes sure that if add-ons' fragments
367 dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
368 dnl our AC_OUTPUT will actually use it.
369 AC_CONFIG_SUBDIRS()
371 case "$enable_add_ons" in
372 ''|no) add_ons= ;;
373 yes|'*')
374  add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
375           sed 's@/[[^/]]*$@@' | sort | uniq`
376          add_ons_automatic=yes
377          ;;
378 *) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
379        add_ons_automatic=no ;;
380 esac
382 configured_add_ons=
383 add_ons_sfx=
384 add_ons_pfx=
385 if test x"$add_ons" != x; then
386   for f in $add_ons; do
387     # Some sanity checks
388     case "$f" in
389     crypt)
390       AC_MSG_ERROR([
391 *** It seems that you're using an old \`crypt' add-on.  crypt is now
392 *** part of glibc and using the old add-on will not work with this
393 *** release.  Start again with fresh sources and without the old
394 *** \`crypt' add-on.])
395     ;;
396     localedata)
397       AC_MSG_ERROR([
398 *** It seems that you're using an old \`localedata' add-on.  localedata
399 *** is now part of glibc and using the old add-on will not work with
400 *** this release.  Start again with fresh sources and without the old
401 *** \`localedata' add-on.])
402     ;;
403     esac
404   done
406   # Now source each add-on's configure fragment.
407   # The fragments can use $srcdir/$libc_add_on to find themselves,
408   # and test $add_ons_automatic to see if they were explicitly requested.
409   # A fragment can clear (or even change) $libc_add_on to affect
410   # whether it goes into the list to be actually used in the build.
411   use_add_ons=
412   for libc_add_on in $add_ons; do
413     # Test whether such a directory really exists.
414     # It can be absolute, or relative to $srcdir, or relative to the build dir.
415     case "$libc_add_on" in
416     /*)
417       libc_add_on_srcdir=$libc_add_on
418       ;;
419     *)
420       test -d "$srcdir/$libc_add_on" || {
421         if test -d "$libc_add_on"; then
422           libc_add_on="`pwd`/$libc_add_on"
423         else
424           AC_MSG_ERROR(add-on directory \"$libc_add_on\" does not exist)
425         fi
426       }
427       libc_add_on_srcdir=$srcdir/$libc_add_on
428       ;;
429     esac
431     libc_add_on_frag=$libc_add_on_srcdir/configure
432     libc_add_on_canonical=
433     libc_add_on_config_subdirs=
434     if test -r "$libc_add_on_frag"; then
435       AC_MSG_NOTICE(running configure fragment for add-on $libc_add_on)
436       libc_add_on_canonical=unknown
437       libc_add_on_subdirs=
438       . "$libc_add_on_frag"
439       test -z "$libc_add_on" || {
440         configured_add_ons="$configured_add_ons $libc_add_on"
441         if test "x$libc_add_on_canonical" = xunknown; then
442           AC_MSG_ERROR(fragment must set \$libc_add_on_canonical)
443         fi
444         for d in $libc_add_on_subdirs; do
445           case "$libc_add_on" in
446           /*) subdir_srcdir="$libc_add_on" ;;
447           *) subdir_srcdir="\$(..)$libc_add_on" ;;
448           esac
449           case "$d" in
450           .)
451             d="${libc_add_on_canonical:-$libc_add_on}"
452             ;;
453           /*)
454             subdir_srcdir="$d"
455             ;;
456           *)
457             subdir_srcdir="$subdir_srcdir/$d"
458             ;;
459           esac
460           d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
461           add_on_subdirs="$add_on_subdirs $d"
462           test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
463 $d-srcdir = $subdir_srcdir"
464         done
465         for d in $libc_add_on_config_subdirs; do
466           case "$d" in
467           /*) AC_MSG_ERROR(dnl
468 fragment uses absolute path in \$libc_add_on_config_subdirs) ;;
469           esac
470           if test ! -d "$libc_add_on_srcdir/$d"; then
471             AC_MSG_ERROR(fragment wants to configure missing directory $d)
472           fi
473           case "$libc_add_on" in
474           /*) AC_MSG_ERROR(dnl
475 relative path required for add-on using \$libc_add_on_config_subdirs) ;;
476           esac
477           subdirs="$subdirs $libc_add_on/$d"
478         done
479       }
480     fi
481     if test -n "$libc_add_on"; then
482       if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
483       then
484         AC_MSG_CHECKING(add-on $libc_add_on for preconfigure fragments)
485         for frag in $frags; do
486           name=`echo "$frag" | sed 's@/[[^/]]*$@@;s@^.*/@@'`
487           echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
488           . "$frag"
489         done
490         AC_MSG_RESULT()
491       fi
492       use_add_ons="$use_add_ons $libc_add_on"
493       add_ons_pfx="$add_ons_pfx $libc_add_on/"
494       test -z "$libc_add_on_canonical" ||
495       add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
496     fi
497   done
498   # Use echo to strip excess whitespace.
499   add_ons="`echo $use_add_ons`"
501 AC_SUBST(add_ons)
502 AC_SUBST(add_on_subdirs)
506 ### I put this here to prevent those annoying emails from people who cannot
507 ### read and try to compile glibc on unsupported platforms.  --drepper
509 ### By using the undocumented --enable-hacker-mode option for configure
510 ### one can skip this test to make the configuration not fail for unsupported
511 ### platforms.
513 if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
514   case "$machine-$host_os" in
515   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
516     ;;
517   *)
518     echo "*** The GNU C library is currently not available for this platform."
519     echo "*** So far nobody cared to port it and if there is no volunteer it"
520     echo "*** might never happen.  So, if you have interest to see glibc on"
521     echo "*** this platform visit"
522     echo "***   http://www.gnu.org/software/libc/porting.html"
523     echo "*** and join the group of porters"
524     exit 1
525     ;;
526   esac
529 dnl We need to use [ and ] for other purposes for a while now.
530 changequote(,)dnl
531 # Expand the configuration machine name into a subdirectory by architecture
532 # type and particular chip.  If an add-on configure fragment already set
533 # base_machine, we don't change it.
534 test -n "$base_machine" || case "$machine" in
535 a29k | am29000) base_machine=a29k machine=a29k ;;
536 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
537 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
538 i[34567]86)     base_machine=i386 machine=i386/$machine ;;
539 ia64)           base_machine=ia64 machine=ia64 ;;
540 m88???)         base_machine=m88k machine=m88k/$machine ;;
541 m88k)           base_machine=m88k machine=m88k/m88100 ;;
542 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
543 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
544 s390)           base_machine=s390 machine=s390/s390-32 ;;
545 s390x)          base_machine=s390 machine=s390/s390-64 ;;
546 sh3*)           base_machine=sh machine=sh/sh3 ;;
547 sh4*)           base_machine=sh machine=sh/sh4 ;;
548 sparc | sparcv[67])
549                 base_machine=sparc machine=sparc/sparc32 ;;
550 sparcv8 | supersparc | hypersparc)
551                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
552 sparcv8plus | sparcv8plusa | sparcv9)
553                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
554 sparcv8plusb | sparcv9b)
555                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;;
556 sparcv9v)
557                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;;
558 sparcv9v2)
559                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;;
560 sparc64)
561                 base_machine=sparc machine=sparc/sparc64 ;;
562 sparc64b)
563                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
564 sparc64v)
565                 base_machine=sparc machine=sparc/sparc64/sparcv9v ;;
566 sparc64v2)
567                 base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;;
568 *)              base_machine=$machine ;;
569 esac
570 changequote([,])dnl
571 AC_SUBST(base_machine)
573 if test "$base_machine" = "i386"; then
574   AC_DEFINE(USE_REGPARMS)
577 # For the multi-arch option we need support in the assembler.
578 AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
579                libc_cv_asm_gnu_indirect_function, [dnl
580 cat > conftest.s <<EOF
581 .type foo,%gnu_indirect_function
583 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
584 then
585   libc_cv_asm_gnu_indirect_function=yes
586 else
587   libc_cv_asm_gnu_indirect_function=no
589 rm -f conftest*])
591 AC_MSG_CHECKING(whether .text pseudo-op must be used)
592 AC_CACHE_VAL(libc_cv_dot_text, [dnl
593 cat > conftest.s <<EOF
594 .text
596 libc_cv_dot_text=
597 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
598   libc_cv_dot_text=.text
600 rm -f conftest*])
601 if test -z "$libc_cv_dot_text"; then
602   AC_MSG_RESULT(no)
603 else
604   AC_MSG_RESULT(yes)
607 AC_CACHE_CHECK(for assembler global-symbol directive,
608                libc_cv_asm_global_directive, [dnl
609 libc_cv_asm_global_directive=UNKNOWN
610 for ac_globl in .globl .global .EXPORT; do
611   cat > conftest.s <<EOF
612         ${libc_cv_dot_text}
613         ${ac_globl} foo
614 foo:
616   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
617     libc_cv_asm_global_directive=${ac_globl}
618   fi
619   rm -f conftest*
620   test $libc_cv_asm_global_directive != UNKNOWN && break
621 done])
622 if test $libc_cv_asm_global_directive = UNKNOWN; then
623   AC_MSG_ERROR(cannot determine asm global directive)
624 else
625   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
628 AC_CACHE_CHECK(for assembler .type directive prefix,
629                libc_cv_asm_type_prefix, [dnl
630 libc_cv_asm_type_prefix=no
631 for ac_try_prefix in '@' '%' '#'; do
632   cat > conftest.s <<EOF
633         ${libc_cv_dot_text}
634         ${libc_cv_asm_global_directive} foo
635         .type foo, ${ac_try_prefix}object
636         .size foo, 1
637 foo:
638         .byte 1
640   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
641     libc_cv_asm_type_prefix=${ac_try_prefix}
642   fi
643   rm -f conftest*
644   test "x$libc_cv_asm_type_prefix" != xno && break
645 done])
646 if test "x$libc_cv_asm_type_prefix" != xno; then
647   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
650 if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then
651   if test x"$multi_arch" = xyes; then
652     AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
653   else
654     multi_arch=no
655   fi
657 if test x"$multi_arch" != xno; then
658   multi_arch_d=/multiarch
661 # Compute the list of sysdep directories for this configuration.
662 # This can take a while to compute.
663 sysdep_dir=$srcdir/sysdeps
664 AC_MSG_CHECKING(sysdep dirs)
665 dnl We need to use [ and ] for other purposes for a while now.
666 changequote(,)dnl
667 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
668 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
670 test "x$base_os" != x || case "$os" in
671 gnu*)
672   base_os=mach/hurd ;;
673 netbsd* | 386bsd* | freebsd* | bsdi*)
674   base_os=unix/bsd/bsd4.4 ;;
675 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
676   base_os=unix/bsd ;;
677 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
678   base_os=unix/sysv ;;
679 irix6*)
680   base_os=unix/sysv/irix6/$os ;;
681 solaris[2-9]*)
682   base_os=unix/sysv/sysv4 ;;
683 hpux*)
684   base_os=unix/sysv/hpux/$os ;;
685 aix4.3*)
686   base_os=unix/sysv/aix/aix4.3 ;;
687 none)
688   base_os=standalone ;;
689 esac
691 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
692 tail=$os
693 ostry=$os
694 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
695   ostry="$ostry /$o"
696   tail=$o
697 done
698 o=`echo $tail | sed 's/[0-9]*$//'`
699 if test $o != $tail; then
700   ostry="$ostry /$o"
702 # For linux-gnu, try linux-gnu, then linux.
703 o=`echo $tail | sed 's/-.*$//'`
704 if test $o != $tail; then
705   ostry="$ostry /$o"
708 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
709 base=
710 tail=$base_os
711 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
712   set $b
713   base="$base /$1"
714   tail="$2"
715 done
717 # For sparc/sparc32, try sparc/sparc32 and then sparc.
718 mach=
719 tail=$machine${submachine:+/$submachine}
720 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
721   set $m
722   # Prepend the machine's FPU directory unless --without-fp.
723   if test "$with_fp" = yes; then
724     mach="$mach /$1/fpu"
725   else
726     mach="$mach /$1/nofpu"
727   fi
728   mach="$mach /$1"
729   tail="$2"
730 done
732 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
733 changequote([,])dnl
735 # Find what sysdep directories exist.
736 sysnames_add_ons=
737 sysnames=
738 for b in $base ''; do
739   for m0 in $mach ''; do
740     for v in /$vendor ''; do
741       test "$v" = / && continue
742       for o in /$ostry ''; do
743         test "$o" = / && continue
744         for m in $multi_arch_d $mach ''; do
745           for d in $add_ons_pfx ''; do
746             for a in $add_ons_sfx ''; do
747               if test -n "$m0$m0sub$b$v$o$m$msub"; then
748                 try_srcdir="${srcdir}/"
749                 case "$d" in
750                 /*) try_srcdir= ;;
751                 esac
752                 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
753                 test -n "$enable_debug_configure" &&
754                 echo "$0 [DEBUG]: try $try" >&2
755                 if test -d "$try_srcdir$try"; then
756                   sysnames="$sysnames $try"
757                   { test -n "$o" || test -n "$b"; } && os_used=t
758                   { test -n "$m" || test -n "$m0"; } && machine_used=t
759                   case x${m0:-$m} in
760                   x*/$submachine) submachine_used=t ;;
761                   esac
762                   if test -n "$d"; then
763                     case "$sysnames_add_ons" in
764                     *" $d "*) ;;
765                     *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
766                     esac
767                   fi
768                 fi
769               fi
770             done
771           done
772         done
773       done
774     done
775   done
776 done
778 # If the assembler supports gnu_indirect_function symbol type and the
779 # architecture supports multi-arch, we enable multi-arch by default.
780 case $sysnames_add_ons$sysnames in
781 *"$multi_arch_d"*)
782   ;;
784   test x"$multi_arch" = xdefault && multi_arch=no
785   ;;
786 esac
787 if test x"$multi_arch" != xno; then
788   AC_DEFINE(USE_MULTIARCH)
790 AC_SUBST(multi_arch)
792 if test -z "$os_used" && test "$os" != none; then
793   AC_MSG_ERROR(Operating system $os is not supported.)
795 if test -z "$machine_used" && test "$machine" != none; then
796   AC_MSG_ERROR(The $machine is not supported.)
798 if test -z "$submachine_used" && test -n "$submachine"; then
799   AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
801 AC_SUBST(submachine)
803 # We have now validated the configuration.
806 # If using ELF, look for an `elf' subdirectory of each machine directory.
807 # We prepend these rather than inserting them whereever the machine appears
808 # because things specified by the machine's ELF ABI should override
809 # OS-specific things, and should always be the same for any OS on the
810 # machine (otherwise what's the point of an ABI?).
811 if test "$elf" = yes; then
812   elf_dirs=
813   for d in $add_ons_pfx ''; do
814     for m in $mach; do
815       if test -d $srcdir/${d}sysdeps$m/elf; then
816         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
817       fi
818     done
819   done
820   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
824 # Expand the list of system names into a full list of directories
825 # from each element's parent name and Implies file (if present).
826 set $sysnames
827 names=
828 while test $# -gt 0; do
829   name=$1
830   shift
832   case " $names " in *" $name "*)
833     # Already in the list.
834     continue
835   esac
837   # Report each name as we discover it, so there is no long pause in output.
838   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
840   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
842   case $name in
843     /*) xsrcdir= ;;
844     *)  xsrcdir=$srcdir/ ;;
845   esac
846   test -n "$enable_debug_configure" &&
847   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
849   if test -f $xsrcdir$name/Implies; then
850     # Collect more names from the `Implies' file (removing comments).
851     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
852     implied=
853     for x in $implied_candidate; do
854       found=no
855       if test -d $xsrcdir$name_base/$x; then
856         implied="$implied $name_base/$x";
857         found=yes
858       fi
859       for d in $add_ons_pfx ''; do
860         try="${d}sysdeps/$x"
861         case $d in
862          /*) try_srcdir= ;;
863          *) try_srcdir=$srcdir/ ;;
864         esac
865         test -n "$enable_debug_configure" &&
866          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
867         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
868         then
869           implied="$implied $try"
870           found=yes
871           case "$sysnames_add_ons" in
872           *" $d "*) ;;
873           *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
874           esac
875         fi
876       done
877       if test $found = no; then
878         AC_MSG_WARN($name/Implies specifies nonexistent $x)
879       fi
880     done
881   else
882     implied=
883   fi
885   # Add NAME to the list of names.
886   names="$names $name"
888   # Find the parent of NAME, using the empty string if it has none.
889 changequote(,)dnl
890   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
891 changequote([,])dnl
893   # Add the names implied by NAME, and NAME's parent (if it has one), to
894   # the list of names to be processed (the argument list).  We prepend the
895   # implied names to the list and append the parent.  We want implied
896   # directories to come before further directories inferred from the
897   # configuration components; this ensures that for sysv4, unix/common
898   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
899   # after sysv4).
900   sysnames="`echo $implied $* $parent`"
901   test -n "$sysnames" && set $sysnames
902 done
904 # Add the default directories.
905 default_sysnames=sysdeps/generic
906 if test "$elf" = yes; then
907   default_sysnames="sysdeps/generic/elf $default_sysnames"
909 sysnames="$names $default_sysnames"
910 AC_SUBST(sysnames)
911 # The other names were emitted during the scan.
912 AC_MSG_RESULT($default_sysnames)
914 # Collect the list of add-ons that supply partial sysdeps trees.
915 sysdeps_add_ons=
916 for add_on in $add_ons; do
917   case "$add_on" in
918   /*) xsrcdir= ;;
919   *) xsrcdir="$srcdir/" ;;
920   esac
922   test -d "$xsrcdir$add_on/sysdeps" || {
923     case "$configured_add_ons " in
924     *" $add_on "*) ;;
925     *|'')
926       AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree)
927       ;;
928     esac
929     continue
930   }
932   sysdeps_add_ons="$sysdeps_add_ons $add_on"
933   case "$sysnames_add_ons" in
934   *" $add_on/ "*) ;;
935   *|'')
936     AC_MSG_WARN(add-on $add_on contributed no sysdeps directories)
937     continue ;;
938   esac
940   found=no
941   for d in $sysnames; do
942     case "$d" in
943     $add_on/sysdeps/*) ;;
944     *) continue ;;
945     esac
946     (cd "$xsrcdir$d" && for f in *[[!~]]; do
947        case "$f" in
948        sys|bits)
949          for ff in $f/*.h; do
950            test -d "$ff" || { test -e "$ff" && exit 88; }
951          done
952          ;;
953        *)
954          test -d "$f" || { test -e "$f" && exit 88; }
955          ;;
956        esac
957      done)
958     if test $? -eq 88; then
959       found=yes
960       break
961     fi
962   done
963   if test $found = no; then
964     AC_MSG_WARN(add-on $add_on contributed no useful sysdeps directories)
965   fi
966 done
967 AC_SUBST(sysdeps_add_ons)
970 ### Locate tools.
972 AC_PROG_INSTALL
973 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
974   # The makefiles need to use a different form to find it in $srcdir.
975   INSTALL='\$(..)./scripts/install-sh -c'
977 AC_PROG_LN_S
979 LIBC_PROG_BINUTILS
980 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
982 # Accept binutils 2.13 or newer.
983 AC_CHECK_PROG_VER(AS, $AS, --version,
984                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
985                   [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")
986 AC_CHECK_PROG_VER(LD, $LD, --version,
987                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
988                   [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")
990 # We need the physical current working directory.  We cannot use the
991 # "pwd -P" shell builtin since that's not portable.  Instead we try to
992 # find a pwd binary.  Note that assigning to the PWD environment
993 # variable might have some interesting side effects, so we don't do
994 # that.
995 AC_PATH_PROG(PWD_P, pwd, no)
996 if test "$PWD_P" = no; then
997   AC_MSG_ERROR(*** A pwd binary could not be found.)
1000 # These programs are version sensitive.
1001 AC_CHECK_TOOL_PREFIX
1002 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
1003   [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
1004   critic_missing="$critic_missing gcc")
1005 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
1006   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
1007   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
1009 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
1010   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
1011   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
1012   MSGFMT=: aux_missing="$aux_missing msgfmt")
1013 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
1014   [GNU texinfo.* \([0-9][0-9.]*\)],
1015   [4.*],
1016   MAKEINFO=: aux_missing="$aux_missing makeinfo")
1017 AC_CHECK_PROG_VER(SED, sed, --version,
1018   [GNU sed version \([0-9]*\.[0-9.]*\)],
1019   [3.0[2-9]*|3.[1-9]*|[4-9]*],
1020   SED=: aux_missing="$aux_missing sed")
1022 AC_CHECK_TOOL(READELF, readelf, false)
1024 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
1025 case "x$AUTOCONF" in
1026 xno|x|x:) AUTOCONF=no ;;
1028   AC_CACHE_CHECK(dnl
1029 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
1030   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
1031     libc_cv_autoconf_works=yes
1032   else
1033     libc_cv_autoconf_works=no
1034   fi])
1035   test $libc_cv_autoconf_works = yes || AUTOCONF=no
1036   ;;
1037 esac
1038 if test "x$AUTOCONF" = xno; then
1039   aux_missing="$aux_missing autoconf"
1042 test -n "$critic_missing" && AC_MSG_ERROR([
1043 *** These critical programs are missing or too old:$critic_missing
1044 *** Check the INSTALL file for required versions.])
1046 test -n "$aux_missing" && AC_MSG_WARN([
1047 *** These auxiliary programs are missing or incompatible versions:$aux_missing
1048 *** some features will be disabled.
1049 *** Check the INSTALL file for required versions.])
1051 # if using special system headers, find out the compiler's sekrit
1052 # header directory and add that to the list.  NOTE: Only does the right
1053 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
1054 if test -n "$sysheaders"; then
1055   SYSINCLUDES=-nostdinc
1056   for d in include include-fixed; do
1057     i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
1058     SYSINCLUDES="$SYSINCLUDES -isystem $i"
1059   done
1060   SYSINCLUDES="$SYSINCLUDES \
1061 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
1062   if test -n "$CXX"; then
1063     CXX_SYSINCLUDES=
1064     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
1065     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
1066     for d in include "$cxxmachine/include"; do
1067       i=../../../../$d/c++/$cxxversion
1068       cxxheaders=`$CXX -print-file-name="$i"` &&
1069       test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
1070       CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
1071 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
1072     done
1073   fi
1075 AC_SUBST(SYSINCLUDES)
1076 AC_SUBST(CXX_SYSINCLUDES)
1078 # ranlib is never necessary on Linux and Hurd systems
1079 RANLIB=:
1081 # Test if LD_LIBRARY_PATH contains the notation for the current directory
1082 # since this would lead to problems installing/building glibc.
1083 # LD_LIBRARY_PATH contains the current directory if one of the following
1084 # is true:
1085 # - one of the terminals (":" and ";") is the first or last sign
1086 # - two terminals occur directly after each other
1087 # - the path contains an element with a dot in it
1088 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
1089 changequote(,)dnl
1090 case ${LD_LIBRARY_PATH} in
1091   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
1092     ld_library_path_setting="contains current directory"
1093     ;;
1094   *)
1095     ld_library_path_setting="ok"
1096     ;;
1097 esac
1098 changequote([,])dnl
1099 AC_MSG_RESULT($ld_library_path_setting)
1100 if test "$ld_library_path_setting" != "ok"; then
1101 AC_MSG_ERROR([
1102 *** LD_LIBRARY_PATH shouldn't contain the current directory when
1103 *** building glibc. Please change the environment variable
1104 *** and run configure again.])
1107 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
1108 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
1109   libc_cv_gcc_static_libgcc=
1110 else
1111   libc_cv_gcc_static_libgcc=-static-libgcc
1112 fi])
1113 AC_SUBST(libc_cv_gcc_static_libgcc)
1115 AC_PATH_PROG(BASH_SHELL, bash, no)
1116 if test "$BASH_SHELL" != no &&
1117    $BASH_SHELL -c 'test "$BASH_VERSINFO" \
1118              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
1119   libc_cv_have_bash2=yes
1120 else
1121   libc_cv_have_bash2=no
1123 AC_SUBST(libc_cv_have_bash2)
1125 dnl We need a ksh compatible shell for tzselect.
1126 if test "$BASH_SHELL" = no; then
1127   AC_PATH_PROG(KSH, ksh, no)
1128   if test "$KSH" = no; then
1129     libc_cv_have_ksh=no
1130   else
1131     libc_cv_have_ksh=yes
1132   fi
1133 else
1134   KSH="$BASH_SHELL"
1135   AC_SUBST(KSH)
1136   libc_cv_have_ksh=yes
1138 AC_SUBST(libc_cv_have_ksh)
1140 AC_PROG_AWK
1141 AC_PATH_PROG(PERL, perl, no)
1142 if test "$PERL" != no &&
1143    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
1144   PERL=no
1146 AC_PATH_PROG(INSTALL_INFO, install-info, no,
1147              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
1148 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
1150 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
1151 echo '#include <stddef.h>
1152 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
1153 if eval "$ac_cpp conftest.c 2>/dev/null" \
1154 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
1155   libc_cv_signed_size_t=no
1156 else
1157   libc_cv_signed_size_t=yes
1159 rm -f conftest*])
1160 if test $libc_cv_signed_size_t = yes; then
1161   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
1162   cat >> confdefs.h <<\EOF
1163 #undef __SIZE_TYPE__
1164 #define __SIZE_TYPE__ unsigned
1168 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
1169 AC_TRY_COMPILE(dnl
1170 [#define __need_size_t
1171 #define __need_wchar_t
1172 #include <stddef.h>
1173 #define __need_NULL
1174 #include <stddef.h>], [size_t size; wchar_t wchar;
1175 #ifdef offsetof
1176 #error stddef.h ignored __need_*
1177 #endif
1178 if (&size == NULL || &wchar == NULL) abort ();],
1179                libc_cv_friendly_stddef=yes,
1180                libc_cv_friendly_stddef=no)])
1181 if test $libc_cv_friendly_stddef = yes; then
1182   config_vars="$config_vars
1183 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
1186 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
1187                libc_cv_need_minus_P, [dnl
1188 cat > conftest.S <<EOF
1189 #include "confdefs.h"
1190 /* Nothing whatsoever.  */
1192 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
1193   libc_cv_need_minus_P=no
1194 else
1195   libc_cv_need_minus_P=yes
1197 rm -f conftest*])
1198 if test $libc_cv_need_minus_P = yes; then
1199   config_vars="$config_vars
1200 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
1203 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1204 cat > conftest.s <<EOF
1205 ${libc_cv_dot_text}
1206 foo:
1207 .set glibc_conftest_frobozz,foo
1208 $libc_cv_asm_global_directive glibc_conftest_frobozz
1210 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1211 # (but it doesn't work), so we must do a linking check to be sure.
1212 cat > conftest1.c <<\EOF
1213 extern int glibc_conftest_frobozz;
1214 void _start() { glibc_conftest_frobozz = 1; }
1216 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1217             -nostartfiles -nostdlib \
1218             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1219   libc_cv_asm_set_directive=yes
1220 else
1221   libc_cv_asm_set_directive=no
1223 rm -f conftest*])
1224 if test $libc_cv_asm_set_directive = yes; then
1225   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1228 AC_CACHE_CHECK(for assembler gnu_unique_object symbol type,
1229                libc_cv_asm_unique_object, [dnl
1230 cat > conftest.s <<EOF
1231 ${libc_cv_dot_text}
1232 _sym:
1233 .type _sym, ${libc_cv_asm_type_prefix}gnu_unique_object
1235 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1236   libc_cv_asm_unique_object=yes
1237 else
1238   libc_cv_asm_unique_object=no
1240 rm -f conftest*])
1241 if test $libc_cv_asm_unique_object = yes; then
1242   AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT)
1245 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1246 [cat > conftest.s <<EOF
1247 ${libc_cv_dot_text}
1248 _sym:
1249 .symver _sym,sym@VERS
1251 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1252   libc_cv_asm_symver_directive=yes
1253 else
1254   libc_cv_asm_symver_directive=no
1256 rm -f conftest*])
1257 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1258 if test $libc_cv_asm_symver_directive = yes; then
1259   cat > conftest.s <<EOF
1260 ${libc_cv_dot_text}
1261 _sym:
1262 .symver _sym,sym@VERS
1264   cat > conftest.map <<EOF
1265 VERS_1 {
1266         global: sym;
1269 VERS_2 {
1270         global: sym;
1271 } VERS_1;
1273   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1274     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1275                                 -o conftest.so conftest.o
1276                                 -nostartfiles -nostdlib
1277                                 -Wl,--version-script,conftest.map
1278                        1>&AS_MESSAGE_LOG_FD]);
1279     then
1280       libc_cv_ld_version_script_option=yes
1281     else
1282       libc_cv_ld_version_script_option=no
1283     fi
1284   else
1285     libc_cv_ld_version_script_option=no
1286   fi
1287 else
1288   libc_cv_ld_version_script_option=no
1290 rm -f conftest*])
1291 if test $shared != no &&
1292    test $libc_cv_asm_symver_directive = yes &&
1293    test $libc_cv_ld_version_script_option = yes &&
1294    test $enable_versioning = yes; then
1295   VERSIONING=yes
1296   AC_DEFINE(DO_VERSIONING)
1297 else
1298   VERSIONING=no
1300 AC_SUBST(VERSIONING)
1302 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1303   echo "\
1304 *** WARNING: You should not compile GNU libc without versioning. Not using
1305 *** versioning will introduce incompatibilities so that old binaries
1306 *** will not run anymore.
1307 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1309 if test $elf = yes; then
1310   AC_CACHE_CHECK(for .previous assembler directive,
1311                  libc_cv_asm_previous_directive, [dnl
1312   cat > conftest.s <<EOF
1313 .section foo_section
1314 .previous
1316   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1317     libc_cv_asm_previous_directive=yes
1318   else
1319     libc_cv_asm_previous_directive=no
1320   fi
1321   rm -f conftest*])
1322   if test $libc_cv_asm_previous_directive = yes; then
1323     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1324   else
1325     AC_CACHE_CHECK(for .popsection assembler directive,
1326                    libc_cv_asm_popsection_directive, [dnl
1327     cat > conftest.s <<EOF
1328 .pushsection foo_section
1329 .popsection
1331     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1332       libc_cv_asm_popsection_directive=yes
1333     else
1334       libc_cv_asm_popsection_directive=no
1335     fi
1336     rm -f conftest*])
1337     if test $libc_cv_asm_popsection_directive = yes; then
1338       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1339     fi
1340   fi
1341   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1342                  libc_cv_asm_protected_directive, [dnl
1343   cat > conftest.s <<EOF
1344 .protected foo
1345 foo:
1346 .hidden bar
1347 bar:
1349   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1350     libc_cv_asm_protected_directive=yes
1351   else
1352     AC_MSG_ERROR(assembler support for symbol visibility is required)
1353   fi
1354   rm -f conftest*])
1356   if test $libc_cv_asm_protected_directive = yes; then
1357     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1358                  libc_cv_visibility_attribute,
1359                  [cat > conftest.c <<EOF
1360                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1361                   int bar __attribute__ ((visibility ("protected"))) = 1;
1363                   libc_cv_visibility_attribute=no
1364                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1365                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1366                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1367                         libc_cv_visibility_attribute=yes
1368                       fi
1369                     fi
1370                   fi
1371                   rm -f conftest.{c,s}
1372                  ])
1373     if test $libc_cv_visibility_attribute != yes; then
1374       AC_MSG_ERROR(compiler support for visibility attribute is required)
1375     fi
1376   fi
1378   if test $libc_cv_visibility_attribute = yes; then
1379     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1380                  libc_cv_broken_visibility_attribute,
1381                  [cat > conftest.c <<EOF
1382                   int foo (int x);
1383                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1384                   int bar (int x) { return x; }
1386                   libc_cv_broken_visibility_attribute=yes
1387                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1388 changequote(,)dnl
1389                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1390 changequote([,])dnl
1391                       libc_cv_broken_visibility_attribute=no
1392                     fi
1393                   fi
1394                   rm -f conftest.c conftest.s
1395                  ])
1396     if test $libc_cv_broken_visibility_attribute = yes; then
1397       AC_MSG_ERROR(working compiler support for visibility attribute is required)
1398     fi
1399   fi
1401   AC_CACHE_CHECK(for broken __attribute__((alias())),
1402                  libc_cv_broken_alias_attribute,
1403                  [cat > conftest.c <<EOF
1404                   extern int foo (int x) __asm ("xyzzy");
1405                   int bar (int x) { return x; }
1406                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1407                   extern int dfoo;
1408                   extern __typeof (dfoo) dfoo __asm ("abccb");
1409                   int dfoo = 1;
1411                   libc_cv_broken_alias_attribute=yes
1412                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1413                     if grep 'xyzzy' conftest.s >/dev/null &&
1414                        grep 'abccb' conftest.s >/dev/null; then
1415                       libc_cv_broken_alias_attribute=no
1416                     fi
1417                   fi
1418                   rm -f conftest.c conftest.s
1419                  ])
1420   if test $libc_cv_broken_alias_attribute = yes; then
1421     AC_MSG_ERROR(working alias attribute support required)
1422   fi
1424   if test $libc_cv_visibility_attribute = yes; then
1425     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1426                  libc_cv_have_sdata_section,
1427                  [echo "int i;" > conftest.c
1428                   libc_cv_have_sdata_section=no
1429                   if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1430                      | grep '\.sdata' >/dev/null; then
1431                     libc_cv_have_sdata_section=yes
1432                   fi
1433                   rm -f conftest.c conftest.so
1434                  ])
1435     if test $libc_cv_have_sdata_section = yes; then
1436       AC_DEFINE(HAVE_SDATA_SECTION)
1437     fi
1438   fi
1440   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1441                  libc_cv_initfini_array, [dnl
1442   cat > conftest.c <<EOF
1443 int _start (void) { return 0; }
1444 int __start (void) { return 0; }
1445 int foo (void) { return 1; }
1446 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1448   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1449                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1450   then
1451     if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
1452       libc_cv_initfini_array=yes
1453     else
1454       libc_cv_initfini_array=no
1455     fi
1456   else
1457     libc_cv_initfini_array=no
1458   fi
1459   rm -f conftest*])
1460   if test $libc_cv_initfini_array != yes; then
1461     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1462   fi
1464   AC_CACHE_CHECK(whether to use .ctors/.dtors header and trailer,
1465                  libc_cv_ctors_header, [dnl
1466     libc_cv_ctors_header=yes
1467     AC_TRY_LINK([], [
1468 __attribute__ ((constructor)) void ctor (void) { puts("ctor"); }
1469 __attribute__ ((destructor))  void dtor (void) { puts("dtor"); }
1471                 [dnl
1472       AS_IF([$READELF -WS conftest$ac_exeext | $AWK '
1473         { gsub(/\@<:@ */, "@<:@") }
1474         $2 == ".ctors" || $2 == ".dtors" {
1475           size = strtonum("0x" $6)
1476           align = strtonum("0x" $NF)
1477           seen@<:@$2@:>@ = 1
1478           stub@<:@$2@:>@ = size == align * 2
1479         }
1480         END {
1481           ctors_ok = !seen@<:@".ctors"@:>@ || stub@<:@".ctors"@:>@
1482           dtors_ok = !seen@<:@".dtors"@:>@ || stub@<:@".dtors"@:>@
1483           exit ((ctors_ok && dtors_ok) ? 0 : 1)
1484         }
1485       '], [libc_cv_ctors_header=no])
1486     ], [dnl
1487       AC_MSG_ERROR([missing __attribute__ ((constructor)) support??])
1488     ])
1489   ])
1490   if test $libc_cv_ctors_header = no; then
1491     AC_DEFINE(NO_CTORS_DTORS_SECTIONS)
1492   fi
1494   AC_CACHE_CHECK(for libunwind-support in compiler,
1495                  libc_cv_cc_with_libunwind, [
1496     cat > conftest.c <<EOF
1497 int main (void) { return 0; }
1499     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1500        conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1501       libc_cv_cc_with_libunwind=yes
1502     else
1503       libc_cv_cc_with_libunwind=no
1504     fi
1505     rm -f conftest*])
1506   AC_SUBST(libc_cv_cc_with_libunwind)
1507   if test $libc_cv_cc_with_libunwind = yes; then
1508     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1509   fi
1511   AC_CACHE_CHECK(for -z nodelete option,
1512                  libc_cv_z_nodelete, [dnl
1513   cat > conftest.c <<EOF
1514 int _start (void) { return 42; }
1516   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1517                      -fPIC -shared -o conftest.so conftest.c
1518                      -nostartfiles -nostdlib
1519                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1520   then
1521     libc_cv_z_nodelete=yes
1522   else
1523     AC_MSG_ERROR(linker with -z nodelete support required)
1524   fi
1525   rm -f conftest*])
1527   AC_CACHE_CHECK(for -z nodlopen option,
1528                  libc_cv_z_nodlopen, [dnl
1529   cat > conftest.c <<EOF
1530 int _start (void) { return 42; }
1532   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1533                         -fPIC -shared -o conftest.so conftest.c
1534                         -nostartfiles -nostdlib
1535                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1536   then
1537     libc_cv_z_nodlopen=yes
1538   else
1539     AC_MSG_ERROR(linker with -z nodlopen support required)
1540   fi
1541   rm -f conftest*])
1543   AC_CACHE_CHECK(for -z initfirst option,
1544                  libc_cv_z_initfirst, [dnl
1545   cat > conftest.c <<EOF
1546 int _start (void) { return 42; }
1548   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1549                         -fPIC -shared -o conftest.so conftest.c
1550                         -nostartfiles -nostdlib
1551                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1552   then
1553     libc_cv_z_initfirst=yes
1554   else
1555     AC_MSG_ERROR(linker with -z initfirst support required)
1556   fi
1557   rm -f conftest*])
1559   # Add-on fragments can set these for other machines.
1560   libc_commonpagesize=${libc_commonpagesize:-no}
1561   libc_relro_required=${libc_relro_required:-no}
1562   case "$base_machine" in
1563     i[[34567]]86 | x86_64 | powerpc* | s390*)
1564       libc_commonpagesize=0x1000
1565       libc_relro_required=yes
1566       ;;
1567     sparc*)
1568       libc_commonpagesize=0x2000
1569       libc_relro_required=yes
1570       ;;
1571     ia64*)
1572       libc_commonpagesize=0x4000
1573       ;;
1574     alpha*)
1575       libc_commonpagesize=0x10000
1576       libc_relro_required=yes
1577       ;;
1578   esac
1580   if test $libc_commonpagesize != no; then
1581     AC_CACHE_CHECK(for -z relro option,
1582                    libc_cv_z_relro, [dnl
1583     libc_cv_z_relro=no
1584     AC_LANG_CONFTEST([AC_LANG_SOURCE([[
1585 int _start (void) { return 42; }
1586 extern void _exit (int);
1587 /* Since these pointers are const, they should go in rodata.
1588    Since they refer to functions that have to be resolved by
1589    dynamic linking, they should instead go in RELRO data.  */
1590 const void *const relro[] = { &_start, &_exit, 0 };
1591 /* GNU ld fails to produce RELRO data when it's very small and there is no
1592    normal writable data following it, or if only uninitialized (.bss) data
1593    follows it, or only very small writable data.  */
1594 int data[0x10000] = { 1, };
1595 ]])])
1596     cat > conftest.awk <<\EOF
1597 BEGIN {
1598   result = "no"
1599   commonpagesize = strtonum(commonpagesize)
1601 { print "LINE:", $0 > "/dev/stderr" }
1602 $1 == "GNU_RELRO" {
1603   vaddr = strtonum($3)
1604   memsz = strtonum($6)
1605   end = vaddr + memsz
1606   printf "vaddr %#x memsz %#x end %#x commonpagesize %#x\n", \
1607     vaddr, memsz, end, commonpagesize > "/dev/stderr"
1608   result = (end % commonpagesize == 0) ? "yes" : "broken"
1610 END { print result }
1612     AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1613                     -fPIC -shared -o conftest.so conftest.c
1614                     -nostartfiles -nostdlib
1615                     -Wl,-z,relro 1>&AS_MESSAGE_LOG_FD]) &&
1616     AC_TRY_COMMAND([$READELF -Wl conftest.so > conftest.ph]) &&
1617     AC_TRY_COMMAND([
1618       $AWK -v commonpagesize=$libc_commonpagesize -f conftest.awk
1619            conftest.ph > conftest.cps
1620     ]) &&
1621     libc_cv_z_relro=`cat conftest.cps 2>&AS_MESSAGE_LOG_FD`
1622     rm -f conftest*])
1623     if { test "x$libc_relro_required" = xyes &&
1624          test "x$libc_cv_z_relro" != xyes
1625        }
1626     then
1627       AC_MSG_ERROR(linker with -z relro support required)
1628     fi
1629   else
1630     AC_MSG_WARN([missing architecture parameter to check for working -z relro])
1631   fi
1633   AC_CACHE_CHECK(for -Bgroup option,
1634                  libc_cv_Bgroup, [dnl
1635   cat > conftest.c <<EOF
1636 int _start (void) { return 42; }
1638   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1639                               -fPIC -shared -o conftest.so conftest.c
1640                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1641   then
1642     libc_cv_Bgroup=yes
1643   else
1644     libc_cv_Bgroup=no
1645   fi
1646   rm -f conftest*])
1647   AC_SUBST(libc_cv_Bgroup)
1649   AC_CACHE_CHECK(for libgcc_s suffix,
1650                  libc_cv_libgcc_s_suffix, [dnl
1651   cat > conftest.c <<EOF
1652 int main (void) { return 0; }
1654 changequote(,)dnl
1655   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1656                            -fPIC -shared -shared-libgcc -o conftest.so \
1657                            conftest.c -v 2>&1 >/dev/null \
1658                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1659 changequote([,])dnl
1660   rm -f conftest*])
1661   AC_SUBST(libc_cv_libgcc_s_suffix)
1663   AC_CACHE_CHECK(for --as-needed option,
1664                  libc_cv_as_needed, [dnl
1665   cat > conftest.c <<EOF
1666 int main (void) { return 0; }
1668   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1669                               -fPIC -shared -o conftest.so conftest.c
1670                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1671                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1672   then
1673     libc_cv_as_needed=yes
1674   else
1675     libc_cv_as_needed=no
1676   fi
1677   rm -f conftest*])
1678   AC_SUBST(libc_cv_as_needed)
1680   ASFLAGS_config=
1681   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1682                  libc_cv_as_noexecstack, [dnl
1683   cat > conftest.c <<EOF
1684 void foo (void) { }
1686   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1687                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1688      && grep -q .note.GNU-stack conftest.s \
1689      && AC_TRY_COMMAND([${CC-cc} $ASFLAGS -Wa,--noexecstack
1690                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1691   then
1692     libc_cv_as_noexecstack=yes
1693   else
1694     libc_cv_as_noexecstack=no
1695   fi
1696   rm -f conftest*])
1697   if test $libc_cv_as_noexecstack = yes; then
1698     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1699   fi
1700   AC_SUBST(ASFLAGS_config)
1702   AC_CACHE_CHECK(for -z combreloc,
1703                  libc_cv_z_combreloc, [dnl
1704   cat > conftest.c <<EOF
1705 extern int bar (int);
1706 extern int mumble;
1707 int foo (void) { return bar (mumble); }
1709   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1710                         -fPIC -shared -o conftest.so conftest.c
1711                         -nostdlib -nostartfiles
1712                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1713   then
1714 dnl The following test is a bit weak.  We must use a tool which can test
1715 dnl cross-platform since the gcc used can be a cross compiler.  Without
1716 dnl introducing new options this is not easily doable.  Instead use a tool
1717 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1718 dnl look for a section named .rel.dyn.
1719     if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1720       libc_cv_z_combreloc=yes
1721     else
1722       libc_cv_z_combreloc=no
1723     fi
1724   else
1725     libc_cv_z_combreloc=no
1726   fi
1727   rm -f conftest*])
1728   if test "$libc_cv_z_combreloc" = yes; then
1729     AC_DEFINE(HAVE_Z_COMBRELOC)
1730   fi
1731   AC_SUBST(libc_cv_z_combreloc)
1733   AC_CACHE_CHECK(for -z execstack,
1734                  libc_cv_z_execstack, [dnl
1735   cat > conftest.c <<EOF
1736 int _start (void) { return 42; }
1738   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1739                               -fPIC -shared -o conftest.so conftest.c
1740                               -Wl,-z,execstack -nostdlib
1741                               1>&AS_MESSAGE_LOG_FD])
1742   then
1743     libc_cv_z_execstack=yes
1744   else
1745     libc_cv_z_execstack=no
1746   fi
1747   rm -f conftest*])
1748   AC_SUBST(libc_cv_z_execstack)
1750   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1751   cat > conftest.c <<EOF
1752 int foo;
1753 main () { return 0;}
1755   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1756                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1757   then
1758     libc_cv_fpie=yes
1759   else
1760     libc_cv_fpie=no
1761   fi
1762   rm -f conftest*])
1764   AC_SUBST(libc_cv_fpie)
1766   AC_CACHE_CHECK(for --hash-style option,
1767                  libc_cv_hashstyle, [dnl
1768   cat > conftest.c <<EOF
1769 int _start (void) { return 42; }
1771   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1772                               -fPIC -shared -o conftest.so conftest.c
1773                               -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
1774   then
1775     libc_cv_hashstyle=yes
1776   else
1777     libc_cv_hashstyle=no
1778   fi
1779   rm -f conftest*])
1780   AC_SUBST(libc_cv_hashstyle)
1782   # The linker's default -shared behavior is good enough if it
1783   # does these things that our custom linker scripts ensure that
1784   # all allocated NOTE sections come first.
1785   if test "$use_default_link" = default; then
1786     AC_CACHE_CHECK([for sufficient default -shared layout],
1787                    libc_cv_use_default_link, [dnl
1788     libc_cv_use_default_link=no
1789     cat > conftest.s <<\EOF
1790           .section .note.a,"a",%note
1791           .balign 4
1792           .long 4,4,9
1793           .string "GNU"
1794           .string "foo"
1795           .section .note.b,"a",%note
1796           .balign 4
1797           .long 4,4,9
1798           .string "GNU"
1799           .string "bar"
1801     if AC_TRY_COMMAND([dnl
1802   ${CC-cc} $ASFLAGS -shared -o conftest.so conftest.s 1>&AS_MESSAGE_LOG_FD]) &&
1803        ac_try=`$READELF -S conftest.so | sed -n \
1804          ['${x;p;}
1805           s/^ *\[ *[1-9][0-9]*\]  *\([^ ][^ ]*\)  *\([^ ][^ ]*\) .*$/\2 \1/
1806           t a
1807           b
1808           : a
1809           H']`
1810     then
1811       libc_seen_a=no libc_seen_b=no
1812       set -- $ac_try
1813       while test $# -ge 2 -a "$1" = NOTE; do
1814         case "$2" in
1815         .note.a) libc_seen_a=yes ;;
1816         .note.b) libc_seen_b=yes ;;
1817         esac
1818         shift 2
1819       done
1820       case "$libc_seen_a$libc_seen_b" in
1821       yesyes)
1822         libc_cv_use_default_link=yes
1823         ;;
1824       *)
1825         echo >&AS_MESSAGE_LOG_FD "\
1826 $libc_seen_a$libc_seen_b from:
1827 $ac_try"
1828         ;;
1829       esac
1830     fi
1831     rm -f conftest*])
1832     use_default_link=$libc_cv_use_default_link
1833   fi
1836 AC_CACHE_CHECK(linker output format, libc_cv_output_format, [dnl
1837 if libc_cv_output_format=`
1838 ${CC-cc} -nostartfiles -nostdlib -Wl,--print-output-format 2>&AS_MESSAGE_LOG_FD`
1839 then
1840   :
1841 else
1842   libc_cv_output_format=
1844 test -n "$libc_cv_output_format" || libc_cv_output_format=unknown])
1845 AC_SUBST(libc_cv_output_format)
1847 AC_CACHE_CHECK(for -fno-toplevel-reorder -fno-section-anchors, libc_cv_fno_toplevel_reorder, [dnl
1848 cat > conftest.c <<EOF
1849 int foo;
1851 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
1852                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1853 then
1854   libc_cv_fno_toplevel_reorder=yes
1855 else
1856   libc_cv_fno_toplevel_reorder=no
1858 rm -f conftest*])
1859 if test $libc_cv_fno_toplevel_reorder = yes; then
1860   fno_unit_at_a_time="-fno-toplevel-reorder -fno-section-anchors"
1861 else
1862   fno_unit_at_a_time=-fno-unit-at-a-time
1864 AC_SUBST(fno_unit_at_a_time)
1866 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1867 cat > conftest.c <<EOF
1868 int foo;
1869 main () { return 0;}
1871 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -Werror -fstack-protector
1872                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1873 then
1874   libc_cv_ssp=yes
1875 else
1876   libc_cv_ssp=no
1878 rm -f conftest*])
1879 AC_SUBST(libc_cv_ssp)
1881 AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1882 cat > conftest.c <<EOF
1883 int foo;
1884 #ifdef __GNUC_GNU_INLINE__
1885 main () { return 0;}
1886 #else
1887 #error
1888 #endif
1890 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -std=gnu99 -fgnu89-inline
1891                             -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD])
1892 then
1893   libc_cv_gnu89_inline=yes
1894 else
1895   libc_cv_gnu89_inline=no
1897 rm -f conftest*])
1898 if test $libc_cv_gnu89_inline = yes; then
1899   gnu89_inline=-fgnu89-inline
1900 else
1901   gnu89_inline=
1903 AC_SUBST(gnu89_inline)
1905 if test $elf != yes; then
1906   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1907                  [AC_TRY_COMPILE(, [asm (".section .init");
1908                                     asm (".section .fini");
1909                                     asm ("${libc_cv_dot_text}");],
1910                                  libc_cv_have_initfini=yes,
1911                                  libc_cv_have_initfini=no)])
1912   AC_SUBST(libc_cv_have_initfini)dnl
1913   if test $libc_cv_have_initfini = yes; then
1914     AC_DEFINE(HAVE_INITFINI)
1915   fi
1918 if test $elf = yes; then
1919   AC_CACHE_CHECK(whether cc puts quotes around section names,
1920                  libc_cv_have_section_quotes,
1921                  [cat > conftest.c <<EOF
1922                   static const int foo
1923                   __attribute__ ((section ("bar"))) = 1;
1925                   if ${CC-cc} -S conftest.c -o conftest.s; then
1926                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1927                       libc_cv_have_section_quotes=yes
1928                     else
1929                       libc_cv_have_section_quotes=no
1930                     fi
1931                   else
1932                     libc_cv_have_section_quotes=unknown
1933                   fi
1934                   rm -f conftest.{c,s}
1935                  ])
1936   if test $libc_cv_have_section_quotes = yes; then
1937     AC_DEFINE(HAVE_SECTION_QUOTES)
1938   fi
1941 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1942 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1943 [cat > conftest.$ac_ext <<EOF
1944 dnl This sometimes fails to find confdefs.h, for some reason.
1945 dnl [#]line $LINENO "[$]0"
1946 [#]line $LINENO "configure"
1947 #include "confdefs.h"
1948 void underscore_test(void) {
1949 return; }
1951 if AC_TRY_EVAL(ac_compile); then
1952   if grep _underscore_test conftest* >/dev/null; then
1953     ifelse([$1], , :, [rm -f conftest*
1954     $1])
1955   else
1956     ifelse([$2], , , [rm -f conftest*
1957     $2])
1958   fi
1959 else
1960   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1961   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1962   ifelse([$2], , , [rm -f conftest*
1963   $2])
1965 rm -f conftest*])
1967 if test $elf = yes; then
1968   libc_cv_asm_underscores=no
1969 else
1970   if test $ac_cv_prog_cc_works = yes; then
1971     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1972                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1973                                 libc_cv_asm_underscores=yes,
1974                                 libc_cv_asm_underscores=no)])
1975   else
1976     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1977                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1978                                             libc_cv_asm_underscores=no)])
1979   fi
1981 if test $libc_cv_asm_underscores = no; then
1982   AC_DEFINE(NO_UNDERSCORES)
1985 if test $elf = yes; then
1986   libc_cv_weak_symbols=yes
1989 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1990                [dnl
1991 cat > conftest.s <<EOF
1992 ${libc_cv_dot_text}
1993 ${libc_cv_asm_global_directive} foo
1994 foo:
1995 .weak foo
1996 .weak bar; bar = foo
1998 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1999   libc_cv_asm_weak_directive=yes
2000 else
2001   libc_cv_asm_weak_directive=no
2003 rm -f conftest*])
2005 if test $libc_cv_asm_weak_directive = no; then
2006   AC_CACHE_CHECK(for assembler .weakext directive,
2007                  libc_cv_asm_weakext_directive,
2008                  [dnl
2009 cat > conftest.s <<EOF
2010 ${libc_cv_dot_text}
2011 ${libc_cv_asm_global_directive} foo
2012 foo:
2013 .weakext bar foo
2014 .weakext baz
2015 ${libc_cv_asm_global_directive} baz
2016 baz:
2018   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
2019     libc_cv_asm_weakext_directive=yes
2020   else
2021     libc_cv_asm_weakext_directive=no
2022   fi
2023   rm -f conftest*])
2025 fi # no .weak
2027 if test $libc_cv_asm_weak_directive = yes; then
2028   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
2029 elif test $libc_cv_asm_weakext_directive = yes; then
2030   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
2033 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
2034 case $machine in
2035   sparc/sparc64*) cfi_offset=2047;;
2036   *) cfi_offset=0;;
2037 esac
2038 cat > conftest.s <<EOF
2039         .text
2040         .type   func,%function
2041 func:
2042         .cfi_startproc
2043         .cfi_remember_state
2044         .cfi_rel_offset 1, $cfi_offset
2045         .cfi_endproc
2047 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
2048   libc_cv_asm_cfi_directives=yes
2049 else
2050   libc_cv_asm_cfi_directives=no
2052 rm -f conftest*])
2053 if test $libc_cv_asm_cfi_directives = yes; then
2054   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
2057 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
2058 cat > conftest.c <<\EOF
2059 _start () {}
2060 int __eh_pc;
2061 __throw () {}
2063 dnl No \ in command here because it ends up inside ''.
2064 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
2065                             -nostdlib -nostartfiles -Wl,--no-whole-archive
2066                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
2067   libc_cv_ld_no_whole_archive=yes
2068 else
2069   libc_cv_ld_no_whole_archive=no
2071 rm -f conftest*])
2072 if test $libc_cv_ld_no_whole_archive = no; then
2073   AC_MSG_ERROR([support for --no-whole-archive is needed])
2076 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
2077 cat > conftest.c <<\EOF
2078 _start () {}
2079 int __eh_pc;
2080 __throw () {}
2082 dnl No \ in command here because it ends up inside ''.
2083 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
2084                             -nostdlib -nostartfiles -fexceptions
2085                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
2086   libc_cv_gcc_exceptions=yes
2087 else
2088   libc_cv_gcc_exceptions=no
2090 rm -f conftest*])
2091 if test $libc_cv_gcc_exceptions = yes; then
2092   exceptions=-fexceptions
2094 AC_SUBST(exceptions)dnl
2096 if test "$host_cpu" = powerpc ; then
2097 # Check for a bug present in at least versions 2.8.x of GCC
2098 # and versions 1.0.x of EGCS.
2099 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
2100 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
2101                libc_cv_c_asmcr0_bug='no',
2102                libc_cv_c_asmcr0_bug='yes')])
2103 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
2104   AC_DEFINE(BROKEN_PPC_ASM_CR0)
2108 dnl Check whether compiler understands __builtin_expect.
2109 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
2110 [cat > conftest.c <<EOF
2111 #line $LINENO "configure"
2112 int foo (int a)
2114   a = __builtin_expect (a, 10);
2115   return a == 10 ? 0 : 1;
2118 dnl No \ in command here because it ends up inside ''.
2119 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
2120                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
2121   libc_cv_gcc_builtin_expect=yes
2122 else
2123   libc_cv_gcc_builtin_expect=no
2125 rm -f conftest*])
2126 if test "$libc_cv_gcc_builtin_expect" = no; then
2127   AC_MSG_ERROR([support for __builtin_expect needed])
2130 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
2131 cat > conftest.c <<\EOF
2132 void zero (void *x)
2134   __builtin_memset (x, 0, 1000);
2138 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
2139 then
2140   libc_cv_gcc_builtin_memset=no
2141 else
2142   libc_cv_gcc_builtin_memset=yes
2144 rm -f conftest* ])
2145 if test "$libc_cv_gcc_builtin_memset" = yes ; then
2146   AC_DEFINE(HAVE_BUILTIN_MEMSET)
2149 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
2150 cat > conftest.c <<\EOF
2151 extern char *strstr (const char *, const char *) __asm ("my_strstr");
2152 char *foo (const char *a, const char *b)
2154   return __builtin_strstr (a, b);
2158 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
2159 then
2160   libc_cv_gcc_builtin_redirection=yes
2161 else
2162   libc_cv_gcc_builtin_redirection=no
2164 rm -f conftest* ])
2165 if test "$libc_cv_gcc_builtin_redirection" = no; then
2166   AC_MSG_ERROR([support for the symbol redirection needed])
2169 dnl Check whether the compiler supports the __thread keyword.
2170 AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
2171 [cat > conftest.c <<\EOF
2172 __thread int a = 42;
2174 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
2175   libc_cv_gcc___thread=yes
2176 else
2177   libc_cv_gcc___thread=no
2179 rm -f conftest*])
2180 if test "$libc_cv_gcc___thread" = no; then
2181   AC_MSG_ERROR([support for the __thread keyword is required])
2184 dnl Check whether the compiler supports the tls_model attribute.
2185 AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
2186 cat > conftest.c <<\EOF
2187 extern __thread int a __attribute__((tls_model ("initial-exec")));
2189 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
2190   libc_cv_gcc_tls_model_attr=yes
2191 else
2192   libc_cv_gcc_tls_model_attr=no
2194 rm -f conftest*])
2195 if test "$libc_cv_gcc_tls_model_attr" = no; then
2196   AC_MSG_ERROR([support for the tls_model attribute is required])
2199 if test -n "$submachine"; then
2200   AC_CACHE_CHECK([for compiler option for CPU variant],
2201                  libc_cv_cc_submachine, [dnl
2202   libc_cv_cc_submachine=no
2203   for opt in "-march=$submachine" "-mcpu=$submachine"; do
2204     if AC_TRY_COMMAND([${CC-cc} $opt -xc /dev/null -S -o /dev/null]); then
2205       libc_cv_cc_submachine="$opt"
2206       break
2207     fi
2208   done])
2209   if test "x$libc_cv_cc_submachine" = xno; then
2210     AC_MSG_ERROR([${CC-cc} does not support $submachine])
2211   fi
2213 AC_SUBST(libc_cv_cc_submachine)
2215 dnl Check whether we have the gd library available.
2216 AC_MSG_CHECKING(for libgd)
2217 if test "$with_gd" != "no"; then
2218   old_CFLAGS="$CFLAGS"
2219   CFLAGS="$CFLAGS $libgd_include"
2220   old_LDFLAGS="$LDFLAGS"
2221   LDFLAGS="$LDFLAGS $libgd_ldflags"
2222   old_LIBS="$LIBS"
2223   LIBS="$LIBS -lgd -lpng -lz -lm"
2224   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
2225   CFLAGS="$old_CFLAGS"
2226   LDFLAGS="$old_LDFLAGS"
2227   LIBS="$old_LIBS"
2228 else
2229   LIBGD=no
2231 AC_MSG_RESULT($LIBGD)
2232 AC_SUBST(LIBGD)
2234 # SELinux detection
2235 if test x$with_selinux = xno ; then
2236   have_selinux=no;
2237 else
2238   # See if we have the SELinux library
2239   AC_CHECK_LIB(selinux, is_selinux_enabled,
2240                have_selinux=yes, have_selinux=no)
2241   # See if we have the SELinux header with the NSCD permissions in it.
2242   if test x$have_selinux = xyes ; then
2243     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
2244     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
2245                     [#ifdef NSCD__SHMEMHOST
2246                      return 0;
2247                      #else
2248                      #error NSCD__SHMEMHOST not defined
2249                      #endif],
2250                     have_selinux=yes, have_selinux=no)
2251     AC_MSG_RESULT($have_selinux)
2252   fi
2254   if test x$with_selinux = xyes ; then
2255     if test x$have_selinux = xno ; then
2256       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
2257     fi
2258   fi
2260 # Check if we're building with SELinux support.
2261 if test "x$have_selinux" = xyes; then
2262   AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
2264   # See if we have the libaudit library
2265   AC_CHECK_LIB(audit, audit_log_user_avc_message,
2266                have_libaudit=yes, have_libaudit=no)
2267   if test "x$have_libaudit" = xyes; then
2268     AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
2269   fi
2270   AC_SUBST(have_libaudit)
2272   # See if we have the libcap library
2273   AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
2274   if test "x$have_libcap" = xyes; then
2275     AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
2276   fi
2277   AC_SUBST(have_libcap)
2279 AC_SUBST(have_selinux)
2281 dnl check for the size of 'long double'.
2282 AC_CHECK_SIZEOF(long double, 0)
2283 sizeof_long_double=$ac_cv_sizeof_long_double
2284 AC_SUBST(sizeof_long_double)
2286 ### End of automated tests.
2287 ### Now run sysdeps configure fragments.
2289 # They also can set these variables.
2290 use_ldconfig=no
2291 ldd_rewrite_script=no
2292 libc_cv_sysconfdir=$sysconfdir
2293 libc_cv_gcc_unwind_find_fde=no
2294 libc_cv_idn=no
2296 # Iterate over all the sysdep directories we will use, running their
2297 # configure fragments.
2298 for dir in $sysnames; do
2299   case $dir in
2300     /*) dest=$dir ;;
2301     *)  dest=$srcdir/$dir ;;
2302   esac
2303   if test -r $dest/configure; then
2304     AC_MSG_RESULT(running configure fragment for $dir)
2305     . $dest/configure
2306   fi
2307 done
2309 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2310   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2312 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2314 # Test for old glibc 2.0.x headers so that they can be removed properly
2315 # Search only in includedir.
2316 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2317 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2318 then
2319   old_glibc_headers=yes
2320 else
2321   old_glibc_headers=no
2323 AC_MSG_RESULT($old_glibc_headers)
2324 if test ${old_glibc_headers} = yes; then
2325   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2326   AC_MSG_WARN(*** be removed.)
2328 AC_SUBST(old_glibc_headers)
2330 AC_SUBST(libc_cv_slibdir)
2331 AC_SUBST(libc_cv_localedir)
2332 AC_SUBST(libc_cv_sysconfdir)
2333 AC_SUBST(libc_cv_rootsbindir)
2334 AC_SUBST(libc_cv_forced_unwind)
2336 dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests
2337 AC_SUBST(libc_cv_cpp_asm_debuginfo)
2338 AC_SUBST(libc_cv_cc_sse4)
2339 AC_SUBST(libc_cv_cc_avx)
2340 AC_SUBST(libc_cv_cc_novzeroupper)
2341 AC_SUBST(libc_cv_cc_fma4)
2342 AC_SUBST(libc_cv_as_i686)
2344 AC_SUBST(use_ldconfig)
2345 AC_SUBST(ldd_rewrite_script)
2347 AC_SUBST(elf) AC_SUBST(xcoff)
2348 if test $elf = yes; then
2349   AC_DEFINE(HAVE_ELF)
2351 if test $xcoff = yes; then
2352   AC_DEFINE(HAVE_XCOFF)
2355 AC_SUBST(static)
2356 AC_SUBST(shared)
2357 if test $shared = default; then
2358   shared=$elf
2361 AC_CACHE_CHECK([whether -fPIC is default], libc_cv_pic_default,
2362 [libc_cv_pic_default=yes
2363 cat > conftest.c <<EOF
2364 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2365 # error PIC is default.
2366 #endif
2368 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2369   libc_cv_pic_default=no
2371 rm -f conftest.*])
2372 AC_SUBST(libc_cv_pic_default)
2374 AC_SUBST(profile)
2375 AC_SUBST(omitfp)
2376 AC_SUBST(bounded)
2377 AC_SUBST(static_nss)
2378 AC_SUBST(nopic_initfini)
2380 AC_SUBST(DEFINES)
2382 dnl See sysdeps/mach/configure.in for this variable.
2383 AC_SUBST(mach_interface_list)
2385 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2386   config_makefile=
2387 else
2388   config_makefile=Makefile
2391 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2392 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2393 AC_SUBST(VERSION)
2394 AC_SUBST(RELEASE)
2396 AC_CONFIG_FILES([config.make ${config_makefile}])
2397 AC_CONFIG_COMMANDS([default],[[
2398 case $CONFIG_FILES in *config.make*)
2399 echo "$config_vars" >> config.make;;
2400 esac
2401 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2402 AC_OUTPUT