* po/fr.po: Update from translation team.
[glibc/pb-stable.git] / configure.in
blob4015722d5a351585f2b9060fd3680e6bd079b75b
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION([$CVSid$])
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 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
10   AC_MSG_ERROR([you must configure in a separate build directory])
13 # This will get text that should go into config.make.
14 config_vars=
16 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
17 AC_ARG_WITH([gd],
18             AC_HELP_STRING([--with-gd=DIR],
19                            [find libgd include dir and library with prefix DIR]),
20             [dnl
21 case "$with_gd" in
22 yes|''|no) ;;
23 *) libgd_include="-I$withval/include"
24    libgd_ldflags="-L$withval/lib" ;;
25 esac
27 AC_ARG_WITH([gd-include],
28             AC_HELP_STRING([--with-gd-include=DIR],
29                            [find libgd include files in DIR]),
30             [dnl
31 case "$with_gd_include" in
32 ''|no) ;;
33 *) libgd_include="-I$withval" ;;
34 esac
36 AC_ARG_WITH([gd-lib],
37             AC_HELP_STRING([--with-gd-lib=DIR],
38                            [find libgd library files in DIR]),
39             [dnl
40 case "$with_gd_lib" in
41 ''|no) ;;
42 *) libgd_ldflags="-L$withval" ;;
43 esac
46 if test -n "$libgd_include"; then
47   config_vars="$config_vars
48 CFLAGS-memusagestat.c = $libgd_include"
50 if test -n "$libgd_ldflags"; then
51   config_vars="$config_vars
52 libgd-LDFLAGS = $libgd_ldflags"
55 dnl Arguments to specify presence of other packages/features.
56 AC_ARG_WITH([fp],
57             AC_HELP_STRING([--with-fp],
58                            [if using floating-point hardware @<:@default=yes@:>@]),
59             [with_fp=$withval],
60             [with_fp=yes])
61 AC_SUBST(with_fp)
62 AC_ARG_WITH([binutils],
63             AC_HELP_STRING([--with-binutils=PATH],
64                            [specify location of binutils (as and ld)]),
65             [path_binutils=$withval],
66             [path_binutils=''])
67 AC_ARG_WITH([elf],
68             AC_HELP_STRING([--with-elf],
69                            [if using the ELF object format]),
70             [elf=$withval],
71             [elf=no])
72 AC_ARG_WITH([selinux],
73             AC_HELP_STRING([--with-selinux],
74                            [if building with SELinux support]),
75             [with_selinux=$withval],
76             [with_selinux=auto])
77 AC_ARG_WITH([xcoff],
78             AC_HELP_STRING([--with-xcoff],
79                            [if using the XCOFF object format]),
80             [xcoff=$withval],
81             [xcoff=no])
82 AC_ARG_WITH([cvs],
83             AC_HELP_STRING([--without-cvs],
84                            [if CVS should not be used]),
85             [with_cvs=$withval],
86             [with_cvs=yes])
87 if test "$with_cvs" = yes; then
88   if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
89   then
90     with_cvs=no
91   fi
93 AC_SUBST(with_cvs)
95 AC_ARG_WITH([headers],
96             AC_HELP_STRING([--with-headers=PATH],
97                            [location of system headers to use
98                             (for example /usr/src/linux/include)
99                             @<:@default=compiler default@:>@]),
100             [sysheaders=$withval],
101             [sysheaders=''])
103 AC_ARG_ENABLE([sanity-checks],
104               AC_HELP_STRING([--disable-sanity-checks],
105                              [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]),
106               [enable_sanity=$enableval],
107               [enable_sanity=yes])
109 AC_SUBST(enable_check_abi)
110 AC_ARG_ENABLE([check-abi],
111               AC_HELP_STRING([--enable-check-abi],
112                              [do "make check-abi" in "make check" (no/warn/yes)
113                               @<:@default=no@:>@]),
114               [enable_check_abi=$enableval],
115               [enable_check_abi=no])
117 dnl Arguments to enable or disable building the static, shared, profiled,
118 dnl and -fomit-frame-pointer libraries.
119 dnl I've disabled this for now since we cannot build glibc without static
120 dnl libraries built in the moment.
121 dnl AC_ARG_ENABLE([static],
122 dnl               AC_HELP_STRING([--enable-static],
123 dnl                              [build static library @<:@default=yes@:>@]),
124 dnl               [static=$enableval],
125 dnl               [static=yes])
126 static=yes
127 AC_ARG_ENABLE([shared],
128               AC_HELP_STRING([--enable-shared],
129                              [build shared library @<:@default=yes if GNU ld & ELF@:>@]),
130               [shared=$enableval],
131               [shared=default])
132 AC_ARG_ENABLE([profile],
133               AC_HELP_STRING([--enable-profile],
134                              [build profiled library @<:@default=no@:>@]),
135               [profile=$enableval],
136               [profile=no])
137 AC_ARG_ENABLE([omitfp],
138               AC_HELP_STRING([--enable-omitfp],
139                              [build undebuggable optimized library @<:@default=no@:>@]),
140               [omitfp=$enableval],
141               [omitfp=no])
142 AC_ARG_ENABLE([bounded],
143               AC_HELP_STRING([--enable-bounded],
144                              [build with runtime bounds checking @<:@default=no@:>@]),
145               [bounded=$enableval],
146               [bounded=no])
147 AC_ARG_ENABLE([versioning],
148               AC_HELP_STRING([--disable-versioning],
149                              [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
150               [enable_versioning=$enableval],
151               [enable_versioning=yes])
153 AC_ARG_ENABLE([oldest-abi],
154               AC_HELP_STRING([--enable-oldest-abi=ABI],
155                              [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]),
156               [oldest_abi=$enableval],
157               [oldest_abi=no])
158 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
159   oldest_abi=default
160 else
161   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
163 AC_SUBST(oldest_abi)
165 AC_ARG_ENABLE([stackguard-randomization],
166               AC_HELP_STRING([--enable-stackguard-randomization],
167                              [initialize __stack_chk_guard canary with a random number at program start]),
168               [enable_stackguard_randomize=$enableval],
169               [enable_stackguard_randomize=no])
170 if test "$enable_stackguard_randomize" = yes; then
171   AC_DEFINE(ENABLE_STACKGUARD_RANDOMIZE)
174 dnl Generic infrastructure for drop-in additions to libc.
175 AC_ARG_ENABLE([add-ons],
176               AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@],
177                              [configure and build add-ons in DIR1,DIR2,...
178                               search for add-ons if no parameter given]),
179                              , [enable_add_ons=yes])
181 dnl Let the user avoid using TLS.  Don't know why but...
182 AC_ARG_WITH([tls],
183             AC_HELP_STRING([--with-tls],
184                            [enable support for TLS]),
185             [usetls=$withval],
186             [usetls=yes])
188 AC_ARG_WITH([__thread],
189             AC_HELP_STRING([--without-__thread],
190                            [do not use TLS features even when supporting them]),
191             [use__thread=$withval],
192             [use__thread=yes])
194 AC_ARG_ENABLE([hidden-plt],
195               AC_HELP_STRING([--disable-hidden-plt],
196                              [do not hide internal function calls to avoid PLT]),
197               [hidden=$enableval],
198               [hidden=yes])
199 if test "x$hidden" = xno; then
200   AC_DEFINE(NO_HIDDEN)
203 AC_ARG_ENABLE([bind-now],
204               AC_HELP_STRING([--enable-bind-now],
205                              [disable lazy relocations in DSOs]),
206               [bindnow=$enableval],
207               [bindnow=no])
208 AC_SUBST(bindnow)
210 dnl On some platforms we cannot use dynamic loading.  We must provide
211 dnl static NSS modules.
212 AC_ARG_ENABLE([static-nss],
213               AC_HELP_STRING([--enable-static-nss],
214                              [build static NSS modules @<:@default=no@:>@]),
215               [static_nss=$enableval],
216               [static_nss=no])
217 dnl Enable static NSS also if we build no shared objects.
218 if test x"$static_nss" = xyes || test x"$shared" = xno; then
219   static_nss=yes
220   AC_DEFINE(DO_STATIC_NSS)
223 AC_ARG_ENABLE([force-install],
224               AC_HELP_STRING([--disable-force-install],
225                              [don't force installation of files from this package, even if they are older than the installed files]),
226               [force_install=$enableval],
227               [force_install=yes])
228 AC_SUBST(force_install)
230 dnl On some platforms we allow dropping compatibility with all kernel
231 dnl versions.
232 AC_ARG_ENABLE([kernel],
233               AC_HELP_STRING([--enable-kernel=VERSION],
234                              [compile for compatibility with kernel not older than VERSION]),
235               [minimum_kernel=$enableval],
236               [])
237 dnl Prevent unreasonable values.
238 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
239   # Better nothing than this.
240   minimum_kernel=""
241 else
242   if test "$minimum_kernel" = current; then
243     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
244   fi
247 dnl For the development we sometimes want gcc to issue even more warnings.
248 dnl This is not the default since many of the extra warnings are not
249 dnl appropriate.
250 AC_ARG_ENABLE([all-warnings],
251               AC_HELP_STRING([--enable-all-warnings],
252                              [enable all useful warnings gcc can issue]),
253               [all_warnings=$enableval],
254               [])
255 AC_SUBST(all_warnings)
257 AC_ARG_ENABLE([multi-arch],
258               AC_HELP_STRING([--enable-multi-arch],
259                              [enable single DSO with optimizations for multiple architectures]),
260               [multi_arch=$enableval],
261               [multi_arch=no])
262 if test x"$multi_arch" = xyes; then
263   AC_DEFINE(USE_MULTIARCH)
264   multi_arch_d=/multiarch
266 AC_SUBST(multi_arch)
268 AC_ARG_ENABLE([experimental-malloc],
269               AC_HELP_STRING([--enable-experimental-malloc],
270                              [enable experimental malloc features]),
271               [experimental_malloc=$enableval],
272               [])
273 AC_SUBST(experimental_malloc)
275 AC_CANONICAL_HOST
277 # The way shlib-versions is used to generate soversions.mk uses a
278 # fairly simplistic model for name recognition that can't distinguish
279 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
280 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
281 # tell.  This doesn't get used much beyond that, so it's fairly safe.
282 case "$host_os" in
283 linux*)
284   ;;
285 gnu*)
286   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
287   ;;
288 esac
290 # We keep the original values in `$config_*' and never modify them, so we
291 # can write them unchanged into config.make.  Everything else uses
292 # $machine, $vendor, and $os, and changes them whenever convenient.
293 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
295 # Don't allow vendor == "unknown"
296 test "$config_vendor" = unknown && config_vendor=
297 config_os="`echo $config_os | sed 's/^unknown-//'`"
299 # Some configurations imply other options.
300 case "$host_os" in
301 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
302 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
303   ;;
304 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
305   # These systems (almost) always use the ELF format.
306   elf=yes
307   ;;
308 aix*)
309   # These systems are always xcoff
310   xcoff=yes
311   elf=no
312   ;;
313 esac
315 # The configure fragment of an add-on port can modify these to supplement
316 # or override the table in the case statement below.  No fragment should
317 # ever change the config_* variables, however.
318 machine=$config_machine
319 vendor=$config_vendor
320 os=$config_os
321 base_os=''
323 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
324 # Unify this here.
325 if test "$machine" = rs6000; then
326   machine="powerpc"
329 # Braindead PowerPC box with absolutely no FPU.
330 case "$machine-$host_os" in
331   powerpc*-*soft)
332     with_fp=no
333     ;;
334 esac
336 submachine=
337 AC_ARG_WITH([cpu],
338             AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
339             [dnl
340   case "$withval" in
341   yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
342   no) ;;
343   *) submachine="$withval" ;;
344   esac
347 # An add-on can set this when it wants to disable the sanity check below.
348 libc_config_ok=no
350 dnl Having this here, though empty, makes sure that if add-ons' fragments
351 dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
352 dnl our AC_OUTPUT will actually use it.
353 AC_CONFIG_SUBDIRS()
355 case "$enable_add_ons" in
356 ''|no) add_ons= ;;
357 yes|'*')
358  add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
359           sed 's@/[[^/]]*$@@' | sort | uniq`
360          add_ons_automatic=yes
361          ;;
362 *) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
363        add_ons_automatic=no ;;
364 esac
366 configured_add_ons=
367 add_ons_sfx=
368 add_ons_pfx=
369 if test x"$add_ons" != x; then
370   for f in $add_ons; do
371     # Some sanity checks
372     case "$f" in
373     crypt)
374       AC_MSG_ERROR([
375 *** It seems that you're using an old \`crypt' add-on.  crypt is now
376 *** part of glibc and using the old add-on will not work with this
377 *** release.  Start again with fresh sources and without the old
378 *** \`crypt' add-on.])
379     ;;
380     localedata)
381       AC_MSG_ERROR([
382 *** It seems that you're using an old \`localedata' add-on.  localedata
383 *** is now part of glibc and using the old add-on will not work with
384 *** this release.  Start again with fresh sources and without the old
385 *** \`localedata' add-on.])
386     ;;
387     esac
388   done
390   # Now source each add-on's configure fragment.
391   # The fragments can use $srcdir/$libc_add_on to find themselves,
392   # and test $add_ons_automatic to see if they were explicitly requested.
393   # A fragment can clear (or even change) $libc_add_on to affect
394   # whether it goes into the list to be actually used in the build.
395   use_add_ons=
396   for libc_add_on in $add_ons; do
397     # Test whether such a directory really exists.
398     # It can be absolute, or relative to $srcdir, or relative to the build dir.
399     case "$libc_add_on" in
400     /*)
401       libc_add_on_srcdir=$libc_add_on
402       ;;
403     *)
404       test -d "$srcdir/$libc_add_on" || {
405         if test -d "$libc_add_on"; then
406           libc_add_on="`pwd`/$libc_add_on"
407         else
408           AC_MSG_ERROR(add-on directory \"$libc_add_on\" does not exist)
409         fi
410       }
411       libc_add_on_srcdir=$srcdir/$libc_add_on
412       ;;
413     esac
415     libc_add_on_frag=$libc_add_on_srcdir/configure
416     libc_add_on_canonical=
417     if test -r "$libc_add_on_frag"; then
418       AC_MSG_NOTICE(running configure fragment for add-on $libc_add_on)
419       libc_add_on_canonical=unknown
420       libc_add_on_subdirs=
421       . "$libc_add_on_frag"
422       test -z "$libc_add_on" || {
423         configured_add_ons="$configured_add_ons $libc_add_on"
424         if test "x$libc_add_on_canonical" = xunknown; then
425           AC_MSG_ERROR(fragment must set \$libc_add_on_canonical)
426         fi
427         for d in $libc_add_on_subdirs; do
428           case "$libc_add_on" in
429           /*) subdir_srcdir="$libc_add_on" ;;
430           *) subdir_srcdir="\$(..)$libc_add_on" ;;
431           esac
432           case "$d" in
433           .)
434             d="${libc_add_on_canonical:-$libc_add_on}"
435             ;;
436           /*)
437             subdir_srcdir="$d"
438             ;;
439           *)
440             subdir_srcdir="$subdir_srcdir/$d"
441             ;;
442           esac
443           d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
444           add_on_subdirs="$add_on_subdirs $d"
445           test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
446 $d-srcdir = $subdir_srcdir"
447         done
448       }
449     fi
450     if test -n "$libc_add_on"; then
451       if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
452       then
453         AC_MSG_CHECKING(add-on $libc_add_on for preconfigure fragments)
454         for frag in $frags; do
455           name=`echo "$frag" | sed 's@/[[^/]]*$@@;s@^.*/@@'`
456           echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
457           . "$frag"
458         done
459         AC_MSG_RESULT()
460       fi
461       use_add_ons="$use_add_ons $libc_add_on"
462       add_ons_pfx="$add_ons_pfx $libc_add_on/"
463       test -z "$libc_add_on_canonical" ||
464       add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
465     fi
466   done
467   # Use echo to strip excess whitespace.
468   add_ons="`echo $use_add_ons`"
470 AC_SUBST(add_ons)
471 AC_SUBST(add_on_subdirs)
475 ### I put this here to prevent those annoying emails from people who cannot
476 ### read and try to compile glibc on unsupported platforms.  --drepper
478 ### By using the undocumented --enable-hacker-mode option for configure
479 ### one can skip this test to make the configuration not fail for unsupported
480 ### platforms.
482 if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
483   case "$machine-$host_os" in
484   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
485     ;;
486   *)
487     echo "*** The GNU C library is currently not available for this platform."
488     echo "*** So far nobody cared to port it and if there is no volunteer it"
489     echo "*** might never happen.  So, if you have interest to see glibc on"
490     echo "*** this platform visit"
491     echo "***   http://www.gnu.org/software/libc/porting.html"
492     echo "*** and join the group of porters"
493     exit 1
494     ;;
495   esac
498 dnl We need to use [ and ] for other purposes for a while now.
499 changequote(,)dnl
500 # Expand the configuration machine name into a subdirectory by architecture
501 # type and particular chip.  If an add-on configure fragment already set
502 # base_machine, we don't change it.
503 test -n "$base_machine" || case "$machine" in
504 a29k | am29000) base_machine=a29k machine=a29k ;;
505 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
506 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
507 i[34567]86)     base_machine=i386 machine=i386/$machine ;;
508 ia64)           base_machine=ia64 machine=ia64 ;;
509 m88???)         base_machine=m88k machine=m88k/$machine ;;
510 m88k)           base_machine=m88k machine=m88k/m88100 ;;
511 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
512 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
513 s390)           base_machine=s390 machine=s390/s390-32 ;;
514 s390x)          base_machine=s390 machine=s390/s390-64 ;;
515 sh3*)           base_machine=sh machine=sh/sh3 ;;
516 sh4*)           base_machine=sh machine=sh/sh4 ;;
517 sparc | sparcv[67])
518                 base_machine=sparc machine=sparc/sparc32 ;;
519 sparcv8 | supersparc | hypersparc)
520                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
521 sparcv8plus | sparcv8plusa | sparcv9)
522                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
523 sparcv8plusb | sparcv9b)
524                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;;
525 sparcv9v)
526                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;;
527 sparcv9v2)
528                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;;
529 sparc64)
530                 base_machine=sparc machine=sparc/sparc64 ;;
531 sparc64b)
532                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
533 sparc64v)
534                 base_machine=sparc machine=sparc/sparc64/sparcv9v ;;
535 sparc64v2)
536                 base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;;
537 *)              base_machine=$machine ;;
538 esac
539 changequote([,])dnl
540 AC_SUBST(base_machine)
542 if test "$base_machine" = "i386"; then
543   AC_DEFINE(USE_REGPARMS)
546 # Compute the list of sysdep directories for this configuration.
547 # This can take a while to compute.
548 sysdep_dir=$srcdir/sysdeps
549 AC_MSG_CHECKING(sysdep dirs)
550 dnl We need to use [ and ] for other purposes for a while now.
551 changequote(,)dnl
552 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
553 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
555 test "x$base_os" != x || case "$os" in
556 gnu*)
557   base_os=mach/hurd ;;
558 netbsd* | 386bsd* | freebsd* | bsdi*)
559   base_os=unix/bsd/bsd4.4 ;;
560 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
561   base_os=unix/bsd ;;
562 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
563   base_os=unix/sysv ;;
564 irix6*)
565   base_os=unix/sysv/irix6/$os ;;
566 solaris[2-9]*)
567   base_os=unix/sysv/sysv4 ;;
568 hpux*)
569   base_os=unix/sysv/hpux/$os ;;
570 aix4.3*)
571   base_os=unix/sysv/aix/aix4.3 ;;
572 none)
573   base_os=standalone ;;
574 esac
576 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
577 tail=$os
578 ostry=$os
579 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
580   ostry="$ostry /$o"
581   tail=$o
582 done
583 o=`echo $tail | sed 's/[0-9]*$//'`
584 if test $o != $tail; then
585   ostry="$ostry /$o"
587 # For linux-gnu, try linux-gnu, then linux.
588 o=`echo $tail | sed 's/-.*$//'`
589 if test $o != $tail; then
590   ostry="$ostry /$o"
593 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
594 base=
595 tail=$base_os
596 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
597   set $b
598   base="$base /$1"
599   tail="$2"
600 done
602 # For sparc/sparc32, try sparc/sparc32 and then sparc.
603 mach=
604 tail=$machine${submachine:+/$submachine}
605 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
606   set $m
607   # Prepend the machine's FPU directory unless --without-fp.
608   if test "$with_fp" = yes; then
609     mach="$mach /$1/fpu"
610   else
611     mach="$mach /$1/nofpu"
612   fi
613   mach="$mach /$1"
614   tail="$2"
615 done
617 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
618 changequote([,])dnl
620 # Find what sysdep directories exist.
621 sysnames_add_ons=
622 sysnames=
623 for b in $base ''; do
624   for m0 in $mach ''; do
625     for v in /$vendor ''; do
626       test "$v" = / && continue
627       for o in /$ostry ''; do
628         test "$o" = / && continue
629         for m in $multi_arch_d $mach ''; do
630           for d in $add_ons_pfx ''; do
631             for a in $add_ons_sfx ''; do
632               if test -n "$m0$m0sub$b$v$o$m$msub"; then
633                 try_srcdir="${srcdir}/"
634                 case "$d" in
635                 /*) try_srcdir= ;;
636                 esac
637                 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
638                 test -n "$enable_debug_configure" &&
639                 echo "$0 [DEBUG]: try $try" >&2
640                 if test -d "$try_srcdir$try"; then
641                   sysnames="$sysnames $try"
642                   { test -n "$o" || test -n "$b"; } && os_used=t
643                   { test -n "$m" || test -n "$m0"; } && machine_used=t
644                   case x${m0:-$m} in
645                   x*/$submachine) submachine_used=t ;;
646                   esac
647                   if test -n "$d"; then
648                     case "$sysnames_add_ons" in
649                     *" $d "*) ;;
650                     *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
651                     esac
652                   fi
653                 fi
654               fi
655             done
656           done
657         done
658       done
659     done
660   done
661 done
663 if test -z "$os_used" && test "$os" != none; then
664   AC_MSG_ERROR(Operating system $os is not supported.)
666 if test -z "$machine_used" && test "$machine" != none; then
667   AC_MSG_ERROR(The $machine is not supported.)
669 if test -z "$submachine_used" && test -n "$submachine"; then
670   AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
672 AC_SUBST(submachine)
674 # We have now validated the configuration.
677 # If using ELF, look for an `elf' subdirectory of each machine directory.
678 # We prepend these rather than inserting them whereever the machine appears
679 # because things specified by the machine's ELF ABI should override
680 # OS-specific things, and should always be the same for any OS on the
681 # machine (otherwise what's the point of an ABI?).
682 if test "$elf" = yes; then
683   elf_dirs=
684   for d in $add_ons_pfx ''; do
685     for m in $mach; do
686       if test -d $srcdir/${d}sysdeps$m/elf; then
687         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
688       fi
689     done
690   done
691   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
695 # Expand the list of system names into a full list of directories
696 # from each element's parent name and Implies file (if present).
697 set $sysnames
698 names=
699 while test $# -gt 0; do
700   name=$1
701   shift
703   case " $names " in *" $name "*)
704     # Already in the list.
705     continue
706   esac
708   # Report each name as we discover it, so there is no long pause in output.
709   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
711   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
713   case $name in
714     /*) xsrcdir= ;;
715     *)  xsrcdir=$srcdir/ ;;
716   esac
717   test -n "$enable_debug_configure" &&
718   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
720   if test -f $xsrcdir$name/Implies; then
721     # Collect more names from the `Implies' file (removing comments).
722     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
723     implied=
724     for x in $implied_candidate; do
725       found=no
726       if test -d $xsrcdir$name_base/$x; then
727         implied="$implied $name_base/$x";
728         found=yes
729       fi
730       for d in $add_ons_pfx ''; do
731         try="${d}sysdeps/$x"
732         case $d in
733          /*) try_srcdir= ;;
734          *) try_srcdir=$srcdir/ ;;
735         esac
736         test -n "$enable_debug_configure" &&
737          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
738         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
739         then
740           implied="$implied $try"
741           found=yes
742           case "$sysnames_add_ons" in
743           *" $d "*) ;;
744           *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
745           esac
746         fi
747       done
748       if test $found = no; then
749         AC_MSG_WARN($name/Implies specifies nonexistent $x)
750       fi
751     done
752   else
753     implied=
754   fi
756   # Add NAME to the list of names.
757   names="$names $name"
759   # Find the parent of NAME, using the empty string if it has none.
760 changequote(,)dnl
761   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
762 changequote([,])dnl
764   # Add the names implied by NAME, and NAME's parent (if it has one), to
765   # the list of names to be processed (the argument list).  We prepend the
766   # implied names to the list and append the parent.  We want implied
767   # directories to come before further directories inferred from the
768   # configuration components; this ensures that for sysv4, unix/common
769   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
770   # after sysv4).
771   sysnames="`echo $implied $* $parent`"
772   test -n "$sysnames" && set $sysnames
773 done
775 # Add the default directories.
776 default_sysnames=sysdeps/generic
777 if test "$elf" = yes; then
778   default_sysnames="sysdeps/generic/elf $default_sysnames"
780 sysnames="$names $default_sysnames"
781 AC_SUBST(sysnames)
782 # The other names were emitted during the scan.
783 AC_MSG_RESULT($default_sysnames)
785 # Collect the list of add-ons that supply partial sysdeps trees.
786 sysdeps_add_ons=
787 for add_on in $add_ons; do
788   case "$add_on" in
789   /*) xsrcdir= ;;
790   *) xsrcdir="$srcdir/" ;;
791   esac
793   test -d "$xsrcdir$add_on/sysdeps" || {
794     case "$configured_add_ons " in
795     *" $add_on "*) ;;
796     *|'')
797       AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree)
798       ;;
799     esac
800     continue
801   }
803   sysdeps_add_ons="$sysdeps_add_ons $add_on"
804   case "$sysnames_add_ons" in
805   *" $add_on/ "*) ;;
806   *|'')
807     AC_MSG_WARN(add-on $add_on contributed no sysdeps directories)
808     continue ;;
809   esac
811   found=no
812   for d in $sysnames; do
813     case "$d" in
814     $add_on/sysdeps/*) ;;
815     *) continue ;;
816     esac
817     (cd "$xsrcdir$d" && for f in *[[!~]]; do
818        case "$f" in
819        sys|bits)
820          for ff in $f/*.h; do
821            test -d "$ff" || { test -e "$ff" && exit 88; }
822          done
823          ;;
824        *)
825          test -d "$f" || { test -e "$f" && exit 88; }
826          ;;
827        esac
828      done)
829     if test $? -eq 88; then
830       found=yes
831       break
832     fi
833   done
834   if test $found = no; then
835     AC_MSG_WARN(add-on $add_on contributed no useful sysdeps directories)
836   fi
837 done
838 AC_SUBST(sysdeps_add_ons)
841 ### Locate tools.
843 AC_PROG_INSTALL
844 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
845   # The makefiles need to use a different form to find it in $srcdir.
846   INSTALL='\$(..)./scripts/install-sh -c'
848 AC_PROG_LN_S
850 AC_PROG_CC
851 if test $host != $build; then
852   AC_CHECK_PROGS(BUILD_CC, gcc cc)
854 AC_SUBST(cross_compiling)
855 AC_PROG_CPP
856 # We need the C++ compiler only for testing.
857 AC_PROG_CXX
858 LIBC_PROG_BINUTILS
859 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
861 # Accept binutils 2.13 or newer.
862 AC_CHECK_PROG_VER(AS, $AS, --version,
863                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
864                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
865 AC_CHECK_PROG_VER(LD, $LD, --version,
866                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
867                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
869 # We need the physical current working directory.  We cannot use the
870 # "pwd -P" shell builtin since that's not portable.  Instead we try to
871 # find a pwd binary.  Note that assigning to the PWD environment
872 # variable might have some interesting side effects, so we don't do
873 # that.
874 AC_PATH_PROG(PWD_P, pwd, no)
875 if test "$PWD_P" = no; then
876   AC_MSG_ERROR(*** A pwd binary could not be found.)
879 # These programs are version sensitive.
880 AC_CHECK_TOOL_PREFIX
881 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
882   [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
883   critic_missing="$critic_missing gcc")
884 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
885   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
886   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
888 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
889   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
890   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
891   MSGFMT=: aux_missing="$aux_missing msgfmt")
892 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
893   [GNU texinfo.* \([0-9][0-9.]*\)],
894   [4.*],
895   MAKEINFO=: aux_missing="$aux_missing makeinfo")
896 AC_CHECK_PROG_VER(SED, sed, --version,
897   [GNU sed version \([0-9]*\.[0-9.]*\)],
898   [3.0[2-9]*|3.[1-9]*|[4-9]*],
899   SED=: aux_missing="$aux_missing sed")
901 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
902 case "x$AUTOCONF" in
903 xno|x|x:) AUTOCONF=no ;;
905   AC_CACHE_CHECK(dnl
906 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
907   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
908     libc_cv_autoconf_works=yes
909   else
910     libc_cv_autoconf_works=no
911   fi])
912   test $libc_cv_autoconf_works = yes || AUTOCONF=no
913   ;;
914 esac
915 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
916   # If --without-cvs they probably won't change configure.in, so no complaints.
917   aux_missing="$aux_missing autoconf"
920 test -n "$critic_missing" && AC_MSG_ERROR([
921 *** These critical programs are missing or too old:$critic_missing
922 *** Check the INSTALL file for required versions.])
924 test -n "$aux_missing" && AC_MSG_WARN([
925 *** These auxiliary programs are missing or incompatible versions:$aux_missing
926 *** some features will be disabled.
927 *** Check the INSTALL file for required versions.])
929 # if using special system headers, find out the compiler's sekrit
930 # header directory and add that to the list.  NOTE: Only does the right
931 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
932 if test -n "$sysheaders"; then
933   SYSINCLUDES=-nostdinc
934   for d in include include-fixed; do
935     i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
936     SYSINCLUDES="$SYSINCLUDES -isystem $i"
937   done
938   SYSINCLUDES="$SYSINCLUDES \
939 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
940   if test -n "$CXX"; then
941     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
942     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
943     cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
944     CXX_SYSINCLUDES="-isystem $cxxheaders \
945 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
946   fi
948 AC_SUBST(SYSINCLUDES)
949 AC_SUBST(CXX_SYSINCLUDES)
951 # check if ranlib is necessary
952 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
953 cat > conftest.c <<EOF
954 int a;
955 char b;
956 void c(void) {}
958 $CC $CFLAGS $CPPFLAGS -c conftest.c
959 $AR cr conftest.a conftest.o
960 cp conftest.a conftest2.a
961 $RANLIB conftest.a
962 if cmp -s conftest.a conftest2.a; then
963   libc_cv_ranlib_necessary=no
964 else
965   libc_cv_ranlib_necessary=yes
967 rm -rf conftest*])
968 if test "$libc_cv_ranlib_necessary" = no; then
969  RANLIB=:
972 # Test if LD_LIBRARY_PATH contains the notation for the current directory
973 # since this would lead to problems installing/building glibc.
974 # LD_LIBRARY_PATH contains the current directory if one of the following
975 # is true:
976 # - one of the terminals (":" and ";") is the first or last sign
977 # - two terminals occur directly after each other
978 # - the path contains an element with a dot in it
979 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
980 changequote(,)dnl
981 case ${LD_LIBRARY_PATH} in
982   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
983     ld_library_path_setting="contains current directory"
984     ;;
985   *)
986     ld_library_path_setting="ok"
987     ;;
988 esac
989 changequote([,])dnl
990 AC_MSG_RESULT($ld_library_path_setting)
991 if test "$ld_library_path_setting" != "ok"; then
992 AC_MSG_ERROR([
993 *** LD_LIBRARY_PATH shouldn't contain the current directory when
994 *** building glibc. Please change the environment variable
995 *** and run configure again.])
998 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
999 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
1000   libc_cv_gcc_static_libgcc=
1001 else
1002   libc_cv_gcc_static_libgcc=-static-libgcc
1003 fi])
1004 AC_SUBST(libc_cv_gcc_static_libgcc)
1006 AC_PATH_PROG(BASH_SHELL, bash, no)
1007 if test "$BASH_SHELL" != no &&
1008    $BASH_SHELL -c 'test "$BASH_VERSINFO" \
1009              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
1010   libc_cv_have_bash2=yes
1011 else
1012   libc_cv_have_bash2=no
1014 AC_SUBST(libc_cv_have_bash2)
1016 dnl We need a ksh compatible shell for tzselect.
1017 if test "$BASH_SHELL" = no; then
1018   AC_PATH_PROG(KSH, ksh, no)
1019   if test "$KSH" = no; then
1020     libc_cv_have_ksh=no
1021   else
1022     libc_cv_have_ksh=yes
1023   fi
1024 else
1025   KSH="$BASH_SHELL"
1026   AC_SUBST(KSH)
1027   libc_cv_have_ksh=yes
1029 AC_SUBST(libc_cv_have_ksh)
1031 AC_PROG_AWK
1032 AC_PATH_PROG(PERL, perl, no)
1033 if test "$PERL" != no &&
1034    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
1035   PERL=no
1037 AC_PATH_PROG(INSTALL_INFO, install-info, no,
1038              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
1039 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
1041 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
1042 echo '#include <stddef.h>
1043 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
1044 if eval "$ac_cpp conftest.c 2>/dev/null" \
1045 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
1046   libc_cv_signed_size_t=no
1047 else
1048   libc_cv_signed_size_t=yes
1050 rm -f conftest*])
1051 if test $libc_cv_signed_size_t = yes; then
1052   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
1053   cat >> confdefs.h <<\EOF
1054 #undef __SIZE_TYPE__
1055 #define __SIZE_TYPE__ unsigned
1059 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
1060 AC_TRY_COMPILE(dnl
1061 [#define __need_size_t
1062 #define __need_wchar_t
1063 #include <stddef.h>
1064 #define __need_NULL
1065 #include <stddef.h>], [size_t size; wchar_t wchar;
1066 #ifdef offsetof
1067 #error stddef.h ignored __need_*
1068 #endif
1069 if (&size == NULL || &wchar == NULL) abort ();],
1070                libc_cv_friendly_stddef=yes,
1071                libc_cv_friendly_stddef=no)])
1072 if test $libc_cv_friendly_stddef = yes; then
1073   config_vars="$config_vars
1074 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
1077 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
1078                libc_cv_need_minus_P, [dnl
1079 cat > conftest.S <<EOF
1080 #include "confdefs.h"
1081 /* Nothing whatsoever.  */
1083 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
1084   libc_cv_need_minus_P=no
1085 else
1086   libc_cv_need_minus_P=yes
1088 rm -f conftest*])
1089 if test $libc_cv_need_minus_P = yes; then
1090   config_vars="$config_vars
1091 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
1094 AC_MSG_CHECKING(whether .text pseudo-op must be used)
1095 AC_CACHE_VAL(libc_cv_dot_text, [dnl
1096 cat > conftest.s <<EOF
1097 .text
1099 libc_cv_dot_text=
1100 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1101   libc_cv_dot_text=.text
1103 rm -f conftest*])
1104 if test -z "$libc_cv_dot_text"; then
1105   AC_MSG_RESULT(no)
1106 else
1107   AC_MSG_RESULT(yes)
1110 AC_CACHE_CHECK(for assembler global-symbol directive,
1111                libc_cv_asm_global_directive, [dnl
1112 libc_cv_asm_global_directive=UNKNOWN
1113 for ac_globl in .globl .global .EXPORT; do
1114   cat > conftest.s <<EOF
1115         ${libc_cv_dot_text}
1116         ${ac_globl} foo
1117 foo:
1119   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1120     libc_cv_asm_global_directive=${ac_globl}
1121   fi
1122   rm -f conftest*
1123   test $libc_cv_asm_global_directive != UNKNOWN && break
1124 done])
1125 if test $libc_cv_asm_global_directive = UNKNOWN; then
1126   AC_MSG_ERROR(cannot determine asm global directive)
1127 else
1128   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
1131 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1132 cat > conftest.s <<EOF
1133 ${libc_cv_dot_text}
1134 foo:
1135 .set glibc_conftest_frobozz,foo
1136 $libc_cv_asm_global_directive glibc_conftest_frobozz
1138 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1139 # (but it doesn't work), so we must do a linking check to be sure.
1140 cat > conftest1.c <<\EOF
1141 extern int glibc_conftest_frobozz;
1142 void _start() { glibc_conftest_frobozz = 1; }
1144 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1145             -nostartfiles -nostdlib \
1146             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1147   libc_cv_asm_set_directive=yes
1148 else
1149   libc_cv_asm_set_directive=no
1151 rm -f conftest*])
1152 if test $libc_cv_asm_set_directive = yes; then
1153   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1156 AC_CACHE_CHECK(for assembler .type directive prefix,
1157                libc_cv_asm_type_prefix, [dnl
1158 libc_cv_asm_type_prefix=no
1159 for ac_try_prefix in '@' '%' '#'; do
1160   cat > conftest.s <<EOF
1161         ${libc_cv_dot_text}
1162         ${libc_cv_asm_global_directive} foo
1163         .type foo, ${ac_try_prefix}object
1164         .size foo, 1
1165 foo:
1166         .byte 1
1168   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1169     libc_cv_asm_type_prefix=${ac_try_prefix}
1170   fi
1171   rm -f conftest*
1172   test "x$libc_cv_asm_type_prefix" != xno && break
1173 done])
1174 if test "x$libc_cv_asm_type_prefix" != xno; then
1175   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1178 # For the multi-arch option we need support in the assembler.
1179 if test "$multi_arch" = yes; then
1180   if test "x$libc_cv_asm_type_prefix" != xno; then
1181 AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
1182                libc_cv_asm_gnu_indirect_function, [dnl
1183 cat > conftest.s <<EOF
1184 .type foo,%gnu_indirect_function
1186 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
1187 then
1188   libc_cv_asm_gnu_indirect_function=yes
1189 else
1190   libc_cv_asm_gnu_indirect_function=no
1192 rm -f conftest*])
1193   else
1194     libc_cv_asm_gnu_indirect_function=no
1195   fi
1196   if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
1197     AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
1198   fi
1201 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1202 [cat > conftest.s <<EOF
1203 ${libc_cv_dot_text}
1204 _sym:
1205 .symver _sym,sym@VERS
1207 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1208   libc_cv_asm_symver_directive=yes
1209 else
1210   libc_cv_asm_symver_directive=no
1212 rm -f conftest*])
1213 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1214 if test $libc_cv_asm_symver_directive = yes; then
1215   cat > conftest.s <<EOF
1216 ${libc_cv_dot_text}
1217 _sym:
1218 .symver _sym,sym@VERS
1220   cat > conftest.map <<EOF
1221 VERS_1 {
1222         global: sym;
1225 VERS_2 {
1226         global: sym;
1227 } VERS_1;
1229   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1230     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1231                                 -o conftest.so conftest.o
1232                                 -nostartfiles -nostdlib
1233                                 -Wl,--version-script,conftest.map
1234                        1>&AS_MESSAGE_LOG_FD]);
1235     then
1236       libc_cv_ld_version_script_option=yes
1237     else
1238       libc_cv_ld_version_script_option=no
1239     fi
1240   else
1241     libc_cv_ld_version_script_option=no
1242   fi
1243 else
1244   libc_cv_ld_version_script_option=no
1246 rm -f conftest*])
1247 if test $shared != no &&
1248    test $libc_cv_asm_symver_directive = yes &&
1249    test $libc_cv_ld_version_script_option = yes &&
1250    test $enable_versioning = yes; then
1251   VERSIONING=yes
1252   AC_DEFINE(DO_VERSIONING)
1253 else
1254   VERSIONING=no
1256 AC_SUBST(VERSIONING)
1258 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1259   echo "\
1260 *** WARNING: You should not compile GNU libc without versioning. Not using
1261 *** versioning will introduce incompatibilities so that old binaries
1262 *** will not run anymore.
1263 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1265 if test $elf = yes; then
1266   AC_CACHE_CHECK(for .previous assembler directive,
1267                  libc_cv_asm_previous_directive, [dnl
1268   cat > conftest.s <<EOF
1269 .section foo_section
1270 .previous
1272   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1273     libc_cv_asm_previous_directive=yes
1274   else
1275     libc_cv_asm_previous_directive=no
1276   fi
1277   rm -f conftest*])
1278   if test $libc_cv_asm_previous_directive = yes; then
1279     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1280   else
1281     AC_CACHE_CHECK(for .popsection assembler directive,
1282                    libc_cv_asm_popsection_directive, [dnl
1283     cat > conftest.s <<EOF
1284 .pushsection foo_section
1285 .popsection
1287     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1288       libc_cv_asm_popsection_directive=yes
1289     else
1290       libc_cv_asm_popsection_directive=no
1291     fi
1292     rm -f conftest*])
1293     if test $libc_cv_asm_popsection_directive = yes; then
1294       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1295     fi
1296   fi
1297   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1298                  libc_cv_asm_protected_directive, [dnl
1299   cat > conftest.s <<EOF
1300 .protected foo
1301 foo:
1302 .hidden bar
1303 bar:
1305   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1306     libc_cv_asm_protected_directive=yes
1307   else
1308     AC_MSG_ERROR(assembler support for symbol visibility is required)
1309   fi
1310   rm -f conftest*])
1312   if test $libc_cv_asm_protected_directive = yes; then
1313     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1314                  libc_cv_visibility_attribute,
1315                  [cat > conftest.c <<EOF
1316                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1317                   int bar __attribute__ ((visibility ("protected"))) = 1;
1319                   libc_cv_visibility_attribute=no
1320                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1321                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1322                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1323                         libc_cv_visibility_attribute=yes
1324                       fi
1325                     fi
1326                   fi
1327                   rm -f conftest.[cs]
1328                  ])
1329     if test $libc_cv_visibility_attribute != yes; then
1330       AC_MSG_ERROR(compiler support for visibility attribute is required)
1331     fi
1332   fi
1334   if test $libc_cv_visibility_attribute = yes; then
1335     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1336                  libc_cv_broken_visibility_attribute,
1337                  [cat > conftest.c <<EOF
1338                   int foo (int x);
1339                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1340                   int bar (int x) { return x; }
1342                   libc_cv_broken_visibility_attribute=yes
1343                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1344 changequote(,)dnl
1345                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1346 changequote([,])dnl
1347                       libc_cv_broken_visibility_attribute=no
1348                     fi
1349                   fi
1350                   rm -f conftest.c conftest.s
1351                  ])
1352     if test $libc_cv_broken_visibility_attribute = yes; then
1353       AC_MSG_ERROR(working compiler support for visibility attribute is required)
1354     fi
1355   fi
1357   AC_CACHE_CHECK(for broken __attribute__((alias())),
1358                  libc_cv_broken_alias_attribute,
1359                  [cat > conftest.c <<EOF
1360                   extern int foo (int x) __asm ("xyzzy");
1361                   int bar (int x) { return x; }
1362                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1363                   extern int dfoo;
1364                   extern __typeof (dfoo) dfoo __asm ("abccb");
1365                   int dfoo = 1;
1367                   libc_cv_broken_alias_attribute=yes
1368                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1369                     if grep 'xyzzy' conftest.s >/dev/null &&
1370                        grep 'abccb' conftest.s >/dev/null; then
1371                       libc_cv_broken_alias_attribute=no
1372                     fi
1373                   fi
1374                   rm -f conftest.c conftest.s
1375                  ])
1376   if test $libc_cv_broken_alias_attribute = yes; then
1377     AC_MSG_ERROR(working alias attribute support required)
1378   fi
1380   if test $libc_cv_visibility_attribute = yes; then
1381     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1382                  libc_cv_have_sdata_section,
1383                  [echo "int i;" > conftest.c
1384                   libc_cv_have_sdata_section=no
1385                   if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1386                      | grep '\.sdata' >/dev/null; then
1387                     libc_cv_have_sdata_section=yes
1388                   fi
1389                   rm -f conftest.c conftest.so
1390                  ])
1391     if test $libc_cv_have_sdata_section = yes; then
1392       AC_DEFINE(HAVE_SDATA_SECTION)
1393     fi
1394   fi
1396   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1397                  libc_cv_initfini_array, [dnl
1398   cat > conftest.c <<EOF
1399 int _start (void) { return 0; }
1400 int __start (void) { return 0; }
1401 int foo (void) { return 1; }
1402 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1404   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1405                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1406   then
1407     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1408       libc_cv_initfini_array=yes
1409     else
1410       libc_cv_initfini_array=no
1411     fi
1412   else
1413     libc_cv_initfini_array=no
1414   fi
1415   rm -f conftest*])
1416   if test $libc_cv_initfini_array != yes; then
1417     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1418   fi
1420   AC_CACHE_CHECK(for libunwind-support in compiler,
1421                  libc_cv_cc_with_libunwind, [
1422     cat > conftest.c <<EOF
1423 int main (void) { return 0; }
1425     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1426        conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1427       libc_cv_cc_with_libunwind=yes
1428     else
1429       libc_cv_cc_with_libunwind=no
1430     fi
1431     rm -f conftest*])
1432   AC_SUBST(libc_cv_cc_with_libunwind)
1433   if test $libc_cv_cc_with_libunwind = yes; then
1434     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1435   fi
1437   AC_CACHE_CHECK(for -z nodelete option,
1438                  libc_cv_z_nodelete, [dnl
1439   cat > conftest.c <<EOF
1440 int _start (void) { return 42; }
1442   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1443                      -fPIC -shared -o conftest.so conftest.c
1444                      -nostartfiles -nostdlib
1445                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1446   then
1447     libc_cv_z_nodelete=yes
1448   else
1449     AC_MSG_ERROR(linker with -z nodelete support required)
1450   fi
1451   rm -f conftest*])
1453   AC_CACHE_CHECK(for -z nodlopen option,
1454                  libc_cv_z_nodlopen, [dnl
1455   cat > conftest.c <<EOF
1456 int _start (void) { return 42; }
1458   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1459                         -fPIC -shared -o conftest.so conftest.c
1460                         -nostartfiles -nostdlib
1461                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1462   then
1463     libc_cv_z_nodlopen=yes
1464   else
1465     AC_MSG_ERROR(linker with -z nodlopen support required)
1466   fi
1467   rm -f conftest*])
1469   AC_CACHE_CHECK(for -z initfirst option,
1470                  libc_cv_z_initfirst, [dnl
1471   cat > conftest.c <<EOF
1472 int _start (void) { return 42; }
1474   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1475                         -fPIC -shared -o conftest.so conftest.c
1476                         -nostartfiles -nostdlib
1477                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1478   then
1479     libc_cv_z_initfirst=yes
1480   else
1481     AC_MSG_ERROR(linker with -z initfirst support required)
1482   fi
1483   rm -f conftest*])
1485   case "$base_machine" in
1486 changequote(,)dnl
1487     i[34567]86 | x86_64 | powerpc* | s390* | sparc* | alpha*)
1488 changequote([,])dnl
1489       AC_CACHE_CHECK(for -z relro option,
1490                      libc_cv_z_relro, [dnl
1491   libc_cv_z_relro=no
1492   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1493   then
1494     if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1495     then
1496       libc_cv_z_relro=yes
1497     fi
1498   fi])
1499       if test "$libc_cv_z_relro" = no; then
1500         AC_MSG_ERROR(linker with -z relro support required)
1501       fi
1502       ;;
1503     *) ;;
1504    esac
1506   AC_CACHE_CHECK(for -Bgroup option,
1507                  libc_cv_Bgroup, [dnl
1508   cat > conftest.c <<EOF
1509 int _start (void) { return 42; }
1511   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1512                               -fPIC -shared -o conftest.so conftest.c
1513                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1514   then
1515     libc_cv_Bgroup=yes
1516   else
1517     libc_cv_Bgroup=no
1518   fi
1519   rm -f conftest*])
1520   AC_SUBST(libc_cv_Bgroup)
1522   AC_CACHE_CHECK(for libgcc_s suffix,
1523                  libc_cv_libgcc_s_suffix, [dnl
1524   cat > conftest.c <<EOF
1525 int main (void) { return 0; }
1527 changequote(,)dnl
1528   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1529                            -fPIC -shared -shared-libgcc -o conftest.so \
1530                            conftest.c -v 2>&1 >/dev/null \
1531                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1532 changequote([,])dnl
1533   rm -f conftest*])
1534   AC_SUBST(libc_cv_libgcc_s_suffix)
1536   AC_CACHE_CHECK(for --as-needed option,
1537                  libc_cv_as_needed, [dnl
1538   cat > conftest.c <<EOF
1539 int main (void) { return 0; }
1541   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1542                               -fPIC -shared -o conftest.so conftest.c
1543                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1544                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1545   then
1546     libc_cv_as_needed=yes
1547   else
1548     libc_cv_as_needed=no
1549   fi
1550   rm -f conftest*])
1551   AC_SUBST(libc_cv_as_needed)
1553   ASFLAGS_config=
1554   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1555                  libc_cv_as_noexecstack, [dnl
1556   cat > conftest.c <<EOF
1557 void foo (void) { }
1559   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1560                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1561      && grep -q .note.GNU-stack conftest.s \
1562      && AC_TRY_COMMAND([${CC-cc} $ASFLAGS -Wa,--noexecstack
1563                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1564   then
1565     libc_cv_as_noexecstack=yes
1566   else
1567     libc_cv_as_noexecstack=no
1568   fi
1569   rm -f conftest*])
1570   if test $libc_cv_as_noexecstack = yes; then
1571     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1572   fi
1573   AC_SUBST(ASFLAGS_config)
1575   AC_CACHE_CHECK(for -z combreloc,
1576                  libc_cv_z_combreloc, [dnl
1577   cat > conftest.c <<EOF
1578 extern int bar (int);
1579 extern int mumble;
1580 int foo (void) { return bar (mumble); }
1582   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1583                         -fPIC -shared -o conftest.so conftest.c
1584                         -nostdlib -nostartfiles
1585                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1586   then
1587 dnl The following test is a bit weak.  We must use a tool which can test
1588 dnl cross-platform since the gcc used can be a cross compiler.  Without
1589 dnl introducing new options this is not easily doable.  Instead use a tool
1590 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1591 dnl look for a section named .rel.dyn.
1592     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1593       libc_cv_z_combreloc=yes
1594     else
1595       libc_cv_z_combreloc=no
1596     fi
1597   else
1598     libc_cv_z_combreloc=no
1599   fi
1600   rm -f conftest*])
1601   if test "$libc_cv_z_combreloc" = yes; then
1602     AC_DEFINE(HAVE_Z_COMBRELOC)
1603   fi
1604   AC_SUBST(libc_cv_z_combreloc)
1606   AC_CACHE_CHECK(for -z execstack,
1607                  libc_cv_z_execstack, [dnl
1608   cat > conftest.c <<EOF
1609 int _start (void) { return 42; }
1611   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1612                               -fPIC -shared -o conftest.so conftest.c
1613                               -Wl,-z,execstack -nostdlib
1614                               1>&AS_MESSAGE_LOG_FD])
1615   then
1616     libc_cv_z_execstack=yes
1617   else
1618     libc_cv_z_execstack=no
1619   fi
1620   rm -f conftest*])
1621   AC_SUBST(libc_cv_z_execstack)
1623   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1624   cat > conftest.c <<EOF
1625 int foo;
1626 main () { return 0;}
1628   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1629                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1630   then
1631     libc_cv_fpie=yes
1632   else
1633     libc_cv_fpie=no
1634   fi
1635   rm -f conftest*])
1637   AC_SUBST(libc_cv_fpie)
1639   AC_CACHE_CHECK(for --hash-style option,
1640                  libc_cv_hashstyle, [dnl
1641   cat > conftest.c <<EOF
1642 int _start (void) { return 42; }
1644   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1645                               -fPIC -shared -o conftest.so conftest.c
1646                               -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
1647   then
1648     libc_cv_hashstyle=yes
1649   else
1650     libc_cv_hashstyle=no
1651   fi
1652   rm -f conftest*])
1653   AC_SUBST(libc_cv_hashstyle)
1656 AC_CACHE_CHECK(for -fno-toplevel-reorder -fno-section-anchors, libc_cv_fno_toplevel_reorder, [dnl
1657 cat > conftest.c <<EOF
1658 int foo;
1660 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder -fno-section-anchors
1661                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1662 then
1663   libc_cv_fno_toplevel_reorder=yes
1664 else
1665   libc_cv_fno_toplevel_reorder=no
1667 rm -f conftest*])
1668 if test $libc_cv_fno_toplevel_reorder = yes; then
1669   fno_unit_at_a_time="-fno-toplevel-reorder -fno-section-anchors"
1670 else
1671   fno_unit_at_a_time=-fno-unit-at-a-time
1673 AC_SUBST(fno_unit_at_a_time)
1675 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1676 cat > conftest.c <<EOF
1677 int foo;
1678 main () { return 0;}
1680 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -Werror -fstack-protector
1681                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1682 then
1683   libc_cv_ssp=yes
1684 else
1685   libc_cv_ssp=no
1687 rm -f conftest*])
1688 AC_SUBST(libc_cv_ssp)
1690 AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1691 cat > conftest.c <<EOF
1692 int foo;
1693 #ifdef __GNUC_GNU_INLINE__
1694 main () { return 0;}
1695 #else
1696 #error
1697 #endif
1699 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -std=gnu99 -fgnu89-inline
1700                             -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD])
1701 then
1702   libc_cv_gnu89_inline=yes
1703 else
1704   libc_cv_gnu89_inline=no
1706 rm -f conftest*])
1707 if test $libc_cv_gnu89_inline = yes; then
1708   libc_cv_gnu89_inline=-fgnu89-inline
1709 else
1710   libc_cv_gnu89_inline=
1712 AC_SUBST(libc_cv_gnu89_inline)
1714 if test $elf != yes; then
1715   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1716                  [AC_TRY_COMPILE(, [asm (".section .init");
1717                                     asm (".section .fini");
1718                                     asm ("${libc_cv_dot_text}");],
1719                                  libc_cv_have_initfini=yes,
1720                                  libc_cv_have_initfini=no)])
1721   AC_SUBST(libc_cv_have_initfini)dnl
1722   if test $libc_cv_have_initfini = yes; then
1723     AC_DEFINE(HAVE_INITFINI)
1724   fi
1727 if test $elf = yes; then
1728   AC_CACHE_CHECK(whether cc puts quotes around section names,
1729                  libc_cv_have_section_quotes,
1730                  [cat > conftest.c <<EOF
1731                   static const int foo
1732                   __attribute__ ((section ("bar"))) = 1;
1734                   if ${CC-cc} -S conftest.c -o conftest.s; then
1735                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1736                       libc_cv_have_section_quotes=yes
1737                     else
1738                       libc_cv_have_section_quotes=no
1739                     fi
1740                   else
1741                     libc_cv_have_section_quotes=unknown
1742                   fi
1743                   rm -f conftest.[cs]
1744                  ])
1745   if test $libc_cv_have_section_quotes = yes; then
1746     AC_DEFINE(HAVE_SECTION_QUOTES)
1747   fi
1750 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1751 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1752 [cat > conftest.$ac_ext <<EOF
1753 dnl This sometimes fails to find confdefs.h, for some reason.
1754 dnl [#]line $LINENO "[$]0"
1755 [#]line $LINENO "configure"
1756 #include "confdefs.h"
1757 void underscore_test(void) {
1758 return; }
1760 if AC_TRY_EVAL(ac_compile); then
1761   if grep _underscore_test conftest* >/dev/null; then
1762     ifelse([$1], , :, [rm -f conftest*
1763     $1])
1764   else
1765     ifelse([$2], , , [rm -f conftest*
1766     $2])
1767   fi
1768 else
1769   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1770   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1771   ifelse([$2], , , [rm -f conftest*
1772   $2])
1774 rm -f conftest*])
1776 if test $elf = yes; then
1777   libc_cv_asm_underscores=no
1778 else
1779   if test $ac_cv_prog_cc_works = yes; then
1780     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1781                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1782                                 libc_cv_asm_underscores=yes,
1783                                 libc_cv_asm_underscores=no)])
1784   else
1785     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1786                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1787                                             libc_cv_asm_underscores=no)])
1788   fi
1790 if test $libc_cv_asm_underscores = no; then
1791   AC_DEFINE(NO_UNDERSCORES)
1794 if test $elf = yes; then
1795   libc_cv_weak_symbols=yes
1798 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1799                [dnl
1800 cat > conftest.s <<EOF
1801 ${libc_cv_dot_text}
1802 ${libc_cv_asm_global_directive} foo
1803 foo:
1804 .weak foo
1805 .weak bar; bar = foo
1807 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1808   libc_cv_asm_weak_directive=yes
1809 else
1810   libc_cv_asm_weak_directive=no
1812 rm -f conftest*])
1814 if test $libc_cv_asm_weak_directive = no; then
1815   AC_CACHE_CHECK(for assembler .weakext directive,
1816                  libc_cv_asm_weakext_directive,
1817                  [dnl
1818 cat > conftest.s <<EOF
1819 ${libc_cv_dot_text}
1820 ${libc_cv_asm_global_directive} foo
1821 foo:
1822 .weakext bar foo
1823 .weakext baz
1824 ${libc_cv_asm_global_directive} baz
1825 baz:
1827   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1828     libc_cv_asm_weakext_directive=yes
1829   else
1830     libc_cv_asm_weakext_directive=no
1831   fi
1832   rm -f conftest*])
1834 fi # no .weak
1836 if test $libc_cv_asm_weak_directive = yes; then
1837   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1838 elif test $libc_cv_asm_weakext_directive = yes; then
1839   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1842 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1843 case $machine in
1844   sparc/sparc64*) cfi_offset=2047;;
1845   *) cfi_offset=0;;
1846 esac
1847 cat > conftest.s <<EOF
1848         .text
1849         .type   func,%function
1850 func:
1851         .cfi_startproc
1852         .cfi_remember_state
1853         .cfi_rel_offset 1, $cfi_offset
1854         .cfi_endproc
1856 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1857   libc_cv_asm_cfi_directives=yes
1858 else
1859   libc_cv_asm_cfi_directives=no
1861 rm -f conftest*])
1862 if test $libc_cv_asm_cfi_directives = yes; then
1863   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1866 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1867 cat > conftest.c <<\EOF
1868 _start () {}
1869 int __eh_pc;
1870 __throw () {}
1872 dnl No \ in command here because it ends up inside ''.
1873 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1874                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1875                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1876   libc_cv_ld_no_whole_archive=yes
1877 else
1878   libc_cv_ld_no_whole_archive=no
1880 rm -f conftest*])
1881 if test $libc_cv_ld_no_whole_archive = yes; then
1882   no_whole_archive=-Wl,--no-whole-archive
1884 AC_SUBST(no_whole_archive)dnl
1886 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1887 cat > conftest.c <<\EOF
1888 _start () {}
1889 int __eh_pc;
1890 __throw () {}
1892 dnl No \ in command here because it ends up inside ''.
1893 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1894                             -nostdlib -nostartfiles -fexceptions
1895                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1896   libc_cv_gcc_exceptions=yes
1897 else
1898   libc_cv_gcc_exceptions=no
1900 rm -f conftest*])
1901 if test $libc_cv_gcc_exceptions = yes; then
1902   exceptions=-fexceptions
1904 AC_SUBST(exceptions)dnl
1906 if test "$host_cpu" = powerpc ; then
1907 # Check for a bug present in at least versions 2.8.x of GCC
1908 # and versions 1.0.x of EGCS.
1909 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1910 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1911                libc_cv_c_asmcr0_bug='no',
1912                libc_cv_c_asmcr0_bug='yes')])
1913 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1914   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1918 dnl Check whether compiler understands __builtin_expect.
1919 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1920 [cat > conftest.c <<EOF
1921 #line $LINENO "configure"
1922 int foo (int a)
1924   a = __builtin_expect (a, 10);
1925   return a == 10 ? 0 : 1;
1928 dnl No \ in command here because it ends up inside ''.
1929 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1930                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1931   libc_cv_gcc_builtin_expect=yes
1932 else
1933   libc_cv_gcc_builtin_expect=no
1935 rm -f conftest*])
1936 if test "$libc_cv_gcc_builtin_expect" = yes; then
1937   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1940 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1941 cat > conftest.c <<\EOF
1942 void zero (void *x)
1944   __builtin_memset (x, 0, 1000);
1948 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1949 then
1950   libc_cv_gcc_builtin_memset=no
1951 else
1952   libc_cv_gcc_builtin_memset=yes
1954 rm -f conftest* ])
1955 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1956   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1959 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1960 cat > conftest.c <<\EOF
1961 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1962 char *foo (const char *a, const char *b)
1964   return __builtin_strstr (a, b);
1968 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1969 then
1970   libc_cv_gcc_builtin_redirection=yes
1971 else
1972   libc_cv_gcc_builtin_redirection=no
1974 rm -f conftest* ])
1975 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1976   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1979 dnl Check whether the compiler supports the __thread keyword.
1980 if test "x$use__thread" != xno; then
1981   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1982   [cat > conftest.c <<\EOF
1983 __thread int a = 42;
1985   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1986     libc_cv_gcc___thread=yes
1987   else
1988     libc_cv_gcc___thread=no
1989   fi
1990   rm -f conftest*])
1991   if test "$libc_cv_gcc___thread" = yes; then
1992     AC_DEFINE(HAVE___THREAD)
1993   fi
1994 else
1995   libc_cv_gcc___thread=no
1998 if test "$libc_cv_gcc___thread" = yes; then
1999   dnl Check whether the compiler supports the tls_model attribute.
2000   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
2001   cat > conftest.c <<\EOF
2002 extern __thread int a __attribute__((tls_model ("initial-exec")));
2004   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
2005     libc_cv_gcc_tls_model_attr=yes
2006   else
2007     libc_cv_gcc_tls_model_attr=no
2008   fi
2009   rm -f conftest*])
2010   if test "$libc_cv_gcc_tls_model_attr" = yes; then
2011     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
2012   fi
2015 if test -n "$submachine"; then
2016   AC_CACHE_CHECK([for compiler option for CPU variant],
2017                  libc_cv_cc_submachine, [dnl
2018   libc_cv_cc_submachine=no
2019   for opt in "-march=$submachine" "-mcpu=$submachine"; do
2020     if AC_TRY_COMMAND([${CC-cc} $opt -xc /dev/null -S -o /dev/null]); then
2021       libc_cv_cc_submachine="$opt"
2022       break
2023     fi
2024   done])
2025   if test "x$libc_cv_cc_submachine" = xno; then
2026     AC_MSG_ERROR([${CC-cc} does not support $submachine])
2027   fi
2029 AC_SUBST(libc_cv_cc_submachine)
2031 dnl Check whether we have the gd library available.
2032 AC_MSG_CHECKING(for libgd)
2033 if test "$with_gd" != "no"; then
2034   old_CFLAGS="$CFLAGS"
2035   CFLAGS="$CFLAGS $libgd_include"
2036   old_LDFLAGS="$LDFLAGS"
2037   LDFLAGS="$LDFLAGS $libgd_ldflags"
2038   old_LIBS="$LIBS"
2039   LIBS="$LIBS -lgd -lpng -lz -lm"
2040   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
2041   CFLAGS="$old_CFLAGS"
2042   LDFLAGS="$old_LDFLAGS"
2043   LIBS="$old_LIBS"
2044 else
2045   LIBGD=no
2047 AC_MSG_RESULT($LIBGD)
2048 AC_SUBST(LIBGD)
2050 # SELinux detection
2051 if test x$with_selinux = xno ; then
2052   have_selinux=no;
2053 else
2054   # See if we have the SELinux library
2055   AC_CHECK_LIB(selinux, is_selinux_enabled,
2056                have_selinux=yes, have_selinux=no)
2057   # See if we have the SELinux header with the NSCD permissions in it.
2058   if test x$have_selinux = xyes ; then
2059     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
2060     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
2061                     [#ifdef NSCD__SHMEMHOST
2062                      return 0;
2063                      #else
2064                      #error NSCD__SHMEMHOST not defined
2065                      #endif],
2066                     have_selinux=yes, have_selinux=no)
2067     AC_MSG_RESULT($have_selinux)
2068   fi
2070   if test x$with_selinux = xyes ; then
2071     if test x$have_selinux = xno ; then
2072       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
2073     fi
2074   fi
2076 # Check if we're building with SELinux support.
2077 if test "x$have_selinux" = xyes; then
2078   AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
2080   # See if we have the libaudit library
2081   AC_CHECK_LIB(audit, audit_log_user_avc_message,
2082                have_libaudit=yes, have_libaudit=no)
2083   if test "x$have_libaudit" = xyes; then
2084     AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
2085   fi
2086   AC_SUBST(have_libaudit)
2088   # See if we have the libcap library
2089   AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
2090   if test "x$have_libcap" = xyes; then
2091     AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
2092   fi
2093   AC_SUBST(have_libcap)
2095 AC_SUBST(have_selinux)
2097 dnl check for the size of 'long double'.
2098 AC_CHECK_SIZEOF(long double, 0)
2099 sizeof_long_double=$ac_cv_sizeof_long_double
2100 AC_SUBST(sizeof_long_double)
2102 ### End of automated tests.
2103 ### Now run sysdeps configure fragments.
2105 # They also can set these variables.
2106 use_ldconfig=no
2107 ldd_rewrite_script=no
2108 libc_cv_sysconfdir=$sysconfdir
2109 libc_cv_gcc_unwind_find_fde=no
2110 libc_cv_idn=no
2112 # Iterate over all the sysdep directories we will use, running their
2113 # configure fragments, and looking for a uname implementation.
2114 uname=
2115 for dir in $sysnames; do
2116   case $dir in
2117     /*) dest=$dir ;;
2118     *)  dest=$srcdir/$dir ;;
2119   esac
2120   if test -r $dest/configure; then
2121     AC_MSG_RESULT(running configure fragment for $dir)
2122     . $dest/configure
2123   fi
2125   if test -z "$uname"; then
2126     if test -r $dest/uname.c ||
2127        test -r $dest/uname.S ||
2128        { test -r $dest/syscalls.list &&
2129          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
2130       uname=$dir
2131     fi
2132   fi
2133 ]dnl
2134 done
2136 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2137   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2139 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2141 # If we will use the generic uname implementation, we must figure out what
2142 # it will say by examining the system, and write the results in config-name.h.
2143 if test "$uname" = "sysdeps/generic"; then
2145 changequote(,)dnl
2146   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
2147 changequote([,])dnl
2148   if test $uname_sysname != $config_os; then
2149     config_release=`echo $config_os | sed s/$uname_sysname//`
2150   fi
2152 AC_DEFUN(LIBC_KERNEL_ID, [dnl
2153     if test -r /vmunix; then
2154       kernel_id=`strings /vmunix | grep UNIX`
2155     elif test -r /dynix; then
2156       kernel_id=`strings /dynix | grep DYNIX`
2157     else
2158       kernel_id=
2159     fi
2160 ])dnl
2162   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
2163 LIBC_KERNEL_ID
2164 changequote(,)dnl
2165   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
2166 changequote([,])dnl
2167   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
2168          != x$config_release; then
2169     # The configuration release is a substring of the kernel release.
2170     libc_cv_uname_release=$kernel_release
2171   elif test x$config_release != x; then
2172     libc_cv_uname_release=$config_release
2173   elif test x$kernel_release != x; then
2174     libc_cv_uname_release=$kernel_release
2175   else
2176     libc_cv_uname_release=unknown
2177   fi])
2178   uname_release="$libc_cv_uname_release"
2180   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2181 LIBC_KERNEL_ID
2182 changequote(,)dnl
2183   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2184 changequote([,])dnl
2185   if test -n "$kernel_version"; then
2186     libc_cv_uname_version="$kernel_version"
2187   else
2188     libc_cv_uname_version=unknown
2189   fi])
2190   uname_version="$libc_cv_uname_version"
2192 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2193   config_uname=config-name.h:config-name.in
2194 else
2195   # For non-generic uname, we don't need to create config-name.h at all.
2196   config_uname=
2199 dnl This is tested by existing code and it's simpler to avoid changing it.
2200 AC_DEFINE(USE_IN_LIBIO)
2202 # Test for old glibc 2.0.x headers so that they can be removed properly
2203 # Search only in includedir.
2204 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2205 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2206 then
2207   old_glibc_headers=yes
2208 else
2209   old_glibc_headers=no
2211 AC_MSG_RESULT($old_glibc_headers)
2212 if test ${old_glibc_headers} = yes; then
2213   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2214   AC_MSG_WARN(*** be removed.)
2216 AC_SUBST(old_glibc_headers)
2218 AC_SUBST(libc_cv_slibdir)
2219 AC_SUBST(libc_cv_localedir)
2220 AC_SUBST(libc_cv_sysconfdir)
2221 AC_SUBST(libc_cv_rootsbindir)
2222 AC_SUBST(libc_cv_forced_unwind)
2224 dnl sysdeps/CPU/configure.in checks set this via arch-specific asm tests
2225 AC_SUBST(libc_cv_cpp_asm_debuginfo)
2227 AC_SUBST(use_ldconfig)
2228 AC_SUBST(ldd_rewrite_script)
2230 AC_SUBST(elf) AC_SUBST(xcoff)
2231 if test $elf = yes; then
2232   AC_DEFINE(HAVE_ELF)
2234 if test $xcoff = yes; then
2235   AC_DEFINE(HAVE_XCOFF)
2238 AC_SUBST(static)
2239 AC_SUBST(shared)
2240 if test $shared = default; then
2241   shared=$elf
2244 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2245 [pic_default=yes
2246 cat > conftest.c <<EOF
2247 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2248 # error PIC is default.
2249 #endif
2251 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2252   pic_default=no
2254 rm -f conftest.*])
2255 AC_SUBST(pic_default)
2257 AC_SUBST(profile)
2258 AC_SUBST(omitfp)
2259 AC_SUBST(bounded)
2260 AC_SUBST(static_nss)
2261 AC_SUBST(nopic_initfini)
2263 AC_SUBST(DEFINES)
2265 dnl See sysdeps/mach/configure.in for this variable.
2266 AC_SUBST(mach_interface_list)
2268 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2269   config_makefile=
2270 else
2271   config_makefile=Makefile
2274 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2275 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2276 AC_SUBST(VERSION)
2277 AC_SUBST(RELEASE)
2279 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2280 AC_CONFIG_COMMANDS([default],[[
2281 case $CONFIG_FILES in *config.make*)
2282 echo "$config_vars" >> config.make;;
2283 esac
2284 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2285 AC_OUTPUT