2008-01-30 Roland McGrath <roland@redhat.com>
[glibc.git] / configure.in
blob6ea1b26ff341fb4dffc0210895a494be6c6b19af
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_CANONICAL_HOST
259 # The way shlib-versions is used to generate soversions.mk uses a
260 # fairly simplistic model for name recognition that can't distinguish
261 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
262 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
263 # tell.  This doesn't get used much beyond that, so it's fairly safe.
264 case "$host_os" in
265 linux*)
266   ;;
267 gnu*)
268   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
269   ;;
270 esac
272 # We keep the original values in `$config_*' and never modify them, so we
273 # can write them unchanged into config.make.  Everything else uses
274 # $machine, $vendor, and $os, and changes them whenever convenient.
275 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
277 # Don't allow vendor == "unknown"
278 test "$config_vendor" = unknown && config_vendor=
279 config_os="`echo $config_os | sed 's/^unknown-//'`"
281 # Some configurations imply other options.
282 case "$host_os" in
283 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
284 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
285   ;;
286 gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*)
287   # These systems (almost) always use the ELF format.
288   elf=yes
289   ;;
290 aix*)
291   # These systems are always xcoff
292   xcoff=yes
293   elf=no
294   ;;
295 esac
297 # The configure fragment of an add-on port can modify these to supplement
298 # or override the table in the case statement below.  No fragment should
299 # ever change the config_* variables, however.
300 machine=$config_machine
301 vendor=$config_vendor
302 os=$config_os
303 base_os=''
305 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
306 # Unify this here.
307 if test "$machine" = rs6000; then
308   machine="powerpc"
311 # Braindead PowerPC box with absolutely no FPU.
312 case "$machine-$host_os" in
313   powerpc*-*soft)
314     with_fp=no
315     ;;
316 esac
318 submachine=
319 AC_ARG_WITH([cpu],
320             AS_HELP_STRING([--with-cpu=CPU], [select code for CPU variant]),
321             [dnl
322   case "$withval" in
323   yes|'') AC_MSG_ERROR([--with-cpu requires an argument]) ;;
324   no) ;;
325   *) submachine="$withval" ;;
326   esac
330 # An add-on can set this when it wants to disable the sanity check below.
331 libc_config_ok=no
333 dnl Having this here, though empty, makes sure that if add-ons' fragments
334 dnl do AC_CONFIG_SUBDIRS([some-dir]), which just sets $subdirs, then
335 dnl our AC_OUTPUT will actually use it.
336 AC_CONFIG_SUBDIRS()
338 case "$enable_add_ons" in
339 ''|no) add_ons= ;;
340 yes|'*')
341  add_ons=`cd $srcdir && ls -d 2> /dev/null */configure */sysdeps |
342           sed 's@/[[^/]]*$@@' | sort | uniq`
343          add_ons_automatic=yes
344          ;;
345 *) add_ons=`echo "$enable_add_ons" | sed 's/,/ /g'`
346        add_ons_automatic=no ;;
347 esac
349 configured_add_ons=
350 add_ons_sfx=
351 add_ons_pfx=
352 if test x"$add_ons" != x; then
353   for f in $add_ons; do
354     # Some sanity checks
355     case "$f" in
356     crypt)
357       AC_MSG_ERROR([
358 *** It seems that you're using an old \`crypt' add-on.  crypt is now
359 *** part of glibc and using the old add-on will not work with this
360 *** release.  Start again with fresh sources and without the old
361 *** \`crypt' add-on.])
362     ;;
363     localedata)
364       AC_MSG_ERROR([
365 *** It seems that you're using an old \`localedata' add-on.  localedata
366 *** is now part of glibc and using the old add-on will not work with
367 *** this release.  Start again with fresh sources and without the old
368 *** \`localedata' add-on.])
369     ;;
370     esac
371   done
373   # Now source each add-on's configure fragment.
374   # The fragments can use $srcdir/$libc_add_on to find themselves,
375   # and test $add_ons_automatic to see if they were explicitly requested.
376   # A fragment can clear (or even change) $libc_add_on to affect
377   # whether it goes into the list to be actually used in the build.
378   use_add_ons=
379   for libc_add_on in $add_ons; do
380     # Test whether such a directory really exists.
381     # It can be absolute, or relative to $srcdir, or relative to the build dir.
382     case "$libc_add_on" in
383     /*)
384       libc_add_on_srcdir=$libc_add_on
385       ;;
386     *)
387       test -d "$srcdir/$libc_add_on" || {
388         if test -d "$libc_add_on"; then
389           libc_add_on="`pwd`/$libc_add_on"
390         else
391           AC_MSG_ERROR(add-on directory \"$libc_add_on\" does not exist)
392         fi
393       }
394       libc_add_on_srcdir=$srcdir/$libc_add_on
395       ;;
396     esac
398     libc_add_on_frag=$libc_add_on_srcdir/configure
399     libc_add_on_canonical=
400     if test -r "$libc_add_on_frag"; then
401       AC_MSG_NOTICE(running configure fragment for add-on $libc_add_on)
402       libc_add_on_canonical=unknown
403       libc_add_on_subdirs=
404       . "$libc_add_on_frag"
405       test -z "$libc_add_on" || {
406         configured_add_ons="$configured_add_ons $libc_add_on"
407         if test "x$libc_add_on_canonical" = xunknown; then
408           AC_MSG_ERROR(fragment must set \$libc_add_on_canonical)
409         fi
410         for d in $libc_add_on_subdirs; do
411           case "$libc_add_on" in
412           /*) subdir_srcdir="$libc_add_on" ;;
413           *) subdir_srcdir="\$(..)$libc_add_on" ;;
414           esac
415           case "$d" in
416           .)
417             d="${libc_add_on_canonical:-$libc_add_on}"
418             ;;
419           /*)
420             subdir_srcdir="$d"
421             ;;
422           *)
423             subdir_srcdir="$subdir_srcdir/$d"
424             ;;
425           esac
426           d=`echo "$d" | sed 's@/*$@@;s@^.*/@@'`
427           add_on_subdirs="$add_on_subdirs $d"
428           test "$subdir_srcdir" = "\$(..)$d" || config_vars="$config_vars
429 $d-srcdir = $subdir_srcdir"
430         done
431       }
432     fi
433     if test -n "$libc_add_on"; then
434       if frags=`ls -d $libc_add_on_srcdir/sysdeps/*/preconfigure 2> /dev/null`
435       then
436         AC_MSG_CHECKING(add-on $libc_add_on for preconfigure fragments)
437         for frag in $frags; do
438           name=`echo "$frag" | sed 's@/[[^/]]*$@@;s@^.*/@@'`
439           echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
440           . "$frag"
441         done
442         AC_MSG_RESULT()
443       fi
444       use_add_ons="$use_add_ons $libc_add_on"
445       add_ons_pfx="$add_ons_pfx $libc_add_on/"
446       test -z "$libc_add_on_canonical" ||
447       add_ons_sfx="$add_ons_sfx /$libc_add_on_canonical"
448     fi
449   done
450   # Use echo to strip excess whitespace.
451   add_ons="`echo $use_add_ons`"
453 AC_SUBST(add_ons)
454 AC_SUBST(add_on_subdirs)
458 ### I put this here to prevent those annoying emails from people who cannot
459 ### read and try to compile glibc on unsupported platforms.  --drepper
461 ### By using the undocumented --enable-hacker-mode option for configure
462 ### one can skip this test to make the configuration not fail for unsupported
463 ### platforms.
465 if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then
466   case "$machine-$host_os" in
467   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
468     ;;
469   *)
470     echo "*** The GNU C library is currently not available for this platform."
471     echo "*** So far nobody cared to port it and if there is no volunteer it"
472     echo "*** might never happen.  So, if you have interest to see glibc on"
473     echo "*** this platform visit"
474     echo "***   http://www.gnu.org/software/libc/porting.html"
475     echo "*** and join the group of porters"
476     exit 1
477     ;;
478   esac
481 dnl We need to use [ and ] for other purposes for a while now.
482 changequote(,)dnl
483 # Expand the configuration machine name into a subdirectory by architecture
484 # type and particular chip.  If an add-on configure fragment already set
485 # base_machine, we don't change it.
486 test -n "$base_machine" || case "$machine" in
487 a29k | am29000) base_machine=a29k machine=a29k ;;
488 alpha*)         base_machine=alpha machine=alpha/$machine ;;
489 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
490 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
491 i[34567]86)     base_machine=i386 machine=i386/$machine ;;
492 ia64)           base_machine=ia64 machine=ia64 ;;
493 m88???)         base_machine=m88k machine=m88k/$machine ;;
494 m88k)           base_machine=m88k machine=m88k/m88100 ;;
495 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
496 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
497 s390)           base_machine=s390 machine=s390/s390-32 ;;
498 s390x)          base_machine=s390 machine=s390/s390-64 ;;
499 sh3*)           base_machine=sh machine=sh/sh3 ;;
500 sh4*)           base_machine=sh machine=sh/sh4 ;;
501 sparc | sparcv[67])
502                 base_machine=sparc machine=sparc/sparc32 ;;
503 sparcv8 | supersparc | hypersparc)
504                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
505 sparcv8plus | sparcv8plusa | sparcv9)
506                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
507 sparcv8plusb | sparcv9b)
508                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;;
509 sparcv9v)
510                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;;
511 sparcv9v2)
512                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;;
513 sparc64)
514                 base_machine=sparc machine=sparc/sparc64 ;;
515 sparc64b)
516                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
517 sparc64v)
518                 base_machine=sparc machine=sparc/sparc64/sparcv9v ;;
519 sparc64v2)
520                 base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;;
521 *)              base_machine=$machine ;;
522 esac
523 changequote([,])dnl
524 AC_SUBST(base_machine)
526 if test "$base_machine" = "i386"; then
527   AC_DEFINE(USE_REGPARMS)
530 # Compute the list of sysdep directories for this configuration.
531 # This can take a while to compute.
532 sysdep_dir=$srcdir/sysdeps
533 AC_MSG_CHECKING(sysdep dirs)
534 dnl We need to use [ and ] for other purposes for a while now.
535 changequote(,)dnl
536 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
537 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
539 test "x$base_os" != x || case "$os" in
540 gnu*)
541   base_os=mach/hurd ;;
542 netbsd* | 386bsd* | freebsd* | bsdi*)
543   base_os=unix/bsd/bsd4.4 ;;
544 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
545   base_os=unix/bsd ;;
546 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
547   base_os=unix/sysv ;;
548 irix6*)
549   base_os=unix/sysv/irix6/$os ;;
550 solaris[2-9]*)
551   base_os=unix/sysv/sysv4 ;;
552 hpux*)
553   base_os=unix/sysv/hpux/$os ;;
554 aix4.3*)
555   base_os=unix/sysv/aix/aix4.3 ;;
556 none)
557   base_os=standalone ;;
558 esac
560 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
561 tail=$os
562 ostry=$os
563 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
564   ostry="$ostry /$o"
565   tail=$o
566 done
567 o=`echo $tail | sed 's/[0-9]*$//'`
568 if test $o != $tail; then
569   ostry="$ostry /$o"
571 # For linux-gnu, try linux-gnu, then linux.
572 o=`echo $tail | sed 's/-.*$//'`
573 if test $o != $tail; then
574   ostry="$ostry /$o"
577 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
578 base=
579 tail=$base_os
580 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
581   set $b
582   base="$base /$1"
583   tail="$2"
584 done
586 # For sparc/sparc32, try sparc/sparc32 and then sparc.
587 mach=
588 tail=$machine${submachine:+/$submachine}
589 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
590   set $m
591   # Prepend the machine's FPU directory unless --without-fp.
592   if test "$with_fp" = yes; then
593     mach="$mach /$1/fpu"
594   else
595     mach="$mach /$1/nofpu"
596   fi
597   mach="$mach /$1"
598   tail="$2"
599 done
601 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
602 changequote([,])dnl
604 # Find what sysdep directories exist.
605 sysnames_add_ons=
606 sysnames=
607 for b in $base ''; do
608   for m0 in $mach ''; do
609     for v in /$vendor ''; do
610       test "$v" = / && continue
611       for o in /$ostry ''; do
612         test "$o" = / && continue
613         for m in $mach ''; do
614           for d in $add_ons_pfx ''; do
615             for a in $add_ons_sfx ''; do
616               if test -n "$m0$m0sub$b$v$o$m$msub"; then
617                 try_srcdir="${srcdir}/"
618                 case "$d" in
619                 /*) try_srcdir= ;;
620                 esac
621                 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
622                 test -n "$enable_debug_configure" &&
623                 echo "$0 [DEBUG]: try $try" >&2
624                 if test -d "$try_srcdir$try"; then
625                   sysnames="$sysnames $try"
626                   { test -n "$o" || test -n "$b"; } && os_used=t
627                   { test -n "$m" || test -n "$m0"; } && machine_used=t
628                   case x${m0:-$m} in
629                   x*/$submachine) submachine_used=t ;;
630                   esac
631                   if test -n "$d"; then
632                     case "$sysnames_add_ons" in
633                     *" $d "*) ;;
634                     *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
635                     esac
636                   fi
637                 fi
638               fi
639             done
640           done
641         done
642       done
643     done
644   done
645 done
647 if test -z "$os_used" && test "$os" != none; then
648   AC_MSG_ERROR(Operating system $os is not supported.)
650 if test -z "$machine_used" && test "$machine" != none; then
651   AC_MSG_ERROR(The $machine is not supported.)
653 if test -z "$submachine_used" && test -n "$submachine"; then
654   AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
656 AC_SUBST(submachine)
658 # We have now validated the configuration.
661 # If using ELF, look for an `elf' subdirectory of each machine directory.
662 # We prepend these rather than inserting them whereever the machine appears
663 # because things specified by the machine's ELF ABI should override
664 # OS-specific things, and should always be the same for any OS on the
665 # machine (otherwise what's the point of an ABI?).
666 if test "$elf" = yes; then
667   elf_dirs=
668   for d in $add_ons_pfx ''; do
669     for m in $mach; do
670       if test -d $srcdir/${d}sysdeps$m/elf; then
671         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
672       fi
673     done
674   done
675   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
679 # Expand the list of system names into a full list of directories
680 # from each element's parent name and Implies file (if present).
681 set $sysnames
682 names=
683 while test $# -gt 0; do
684   name=$1
685   shift
687   case " $names " in *" $name "*)
688     # Already in the list.
689     continue
690   esac
692   # Report each name as we discover it, so there is no long pause in output.
693   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
695   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
697   case $name in
698     /*) xsrcdir= ;;
699     *)  xsrcdir=$srcdir/ ;;
700   esac
701   test -n "$enable_debug_configure" &&
702   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
704   if test -f $xsrcdir$name/Implies; then
705     # Collect more names from the `Implies' file (removing comments).
706     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
707     implied=
708     for x in $implied_candidate; do
709       found=no
710       if test -d $xsrcdir$name_base/$x; then
711         implied="$implied $name_base/$x";
712         found=yes
713       fi
714       for d in $add_ons_pfx ''; do
715         try="${d}sysdeps/$x"
716         case $d in
717          /*) try_srcdir= ;;
718          *) try_srcdir=$srcdir/ ;;
719         esac
720         test -n "$enable_debug_configure" &&
721          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
722         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
723         then
724           implied="$implied $try"
725           found=yes
726           case "$sysnames_add_ons" in
727           *" $d "*) ;;
728           *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
729           esac
730         fi
731       done
732       if test $found = no; then
733         AC_MSG_WARN($name/Implies specifies nonexistent $x)
734       fi
735     done
736   else
737     implied=
738   fi
740   # Add NAME to the list of names.
741   names="$names $name"
743   # Find the parent of NAME, using the empty string if it has none.
744 changequote(,)dnl
745   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
746 changequote([,])dnl
748   # Add the names implied by NAME, and NAME's parent (if it has one), to
749   # the list of names to be processed (the argument list).  We prepend the
750   # implied names to the list and append the parent.  We want implied
751   # directories to come before further directories inferred from the
752   # configuration components; this ensures that for sysv4, unix/common
753   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
754   # after sysv4).
755   sysnames="`echo $implied $* $parent`"
756   test -n "$sysnames" && set $sysnames
757 done
759 # Add the default directories.
760 default_sysnames=sysdeps/generic
761 if test "$elf" = yes; then
762   default_sysnames="sysdeps/generic/elf $default_sysnames"
764 sysnames="$names $default_sysnames"
765 AC_SUBST(sysnames)
766 # The other names were emitted during the scan.
767 AC_MSG_RESULT($default_sysnames)
769 # Collect the list of add-ons that supply partial sysdeps trees.
770 sysdeps_add_ons=
771 for add_on in $add_ons; do
772   case "$add_on" in
773   /*) xsrcdir= ;;
774   *) xsrcdir="$srcdir/" ;;
775   esac
777   test -d "$xsrcdir$add_on/sysdeps" || {
778     case "$configured_add_ons " in
779     *" $add_on "*) ;;
780     *|'')
781       AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree)
782       ;;
783     esac
784     continue
785   }
787   sysdeps_add_ons="$sysdeps_add_ons $add_on"
788   case "$sysnames_add_ons" in
789   *" $add_on/ "*) ;;
790   *|'')
791     AC_MSG_WARN(add-on $add_on contributed no sysdeps directories)
792     continue ;;
793   esac
795   found=no
796   for d in $sysnames; do
797     case "$d" in
798     $add_on/sysdeps/*) ;;
799     *) continue ;;
800     esac
801     (cd "$xsrcdir$d" && for f in *[[!~]]; do
802        case "$f" in
803        sys|bits)
804          for ff in $f/*.h; do
805            test -d "$ff" || { test -e "$ff" && exit 88; }
806          done
807          ;;
808        *)
809          test -d "$f" || { test -e "$f" && exit 88; }
810          ;;
811        esac
812      done)
813     if test $? -eq 88; then
814       found=yes
815       break
816     fi
817   done
818   if test $found = no; then
819     AC_MSG_WARN(add-on $add_on contributed no useful sysdeps directories)
820   fi
821 done
822 AC_SUBST(sysdeps_add_ons)
825 ### Locate tools.
827 AC_PROG_INSTALL
828 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
829   # The makefiles need to use a different form to find it in $srcdir.
830   INSTALL='\$(..)./scripts/install-sh -c'
832 AC_PROG_LN_S
834 AC_PROG_CC
835 if test $host != $build; then
836   AC_CHECK_PROGS(BUILD_CC, gcc cc)
838 AC_SUBST(cross_compiling)
839 AC_PROG_CPP
840 # We need the C++ compiler only for testing.
841 AC_PROG_CXX
842 LIBC_PROG_BINUTILS
843 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
845 # Accept binutils 2.13 or newer.
846 AC_CHECK_PROG_VER(AS, $AS, --version,
847                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
848                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
849 AC_CHECK_PROG_VER(LD, $LD, --version,
850                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
851                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
853 # We need the physical current working directory.  We cannot use the
854 # "pwd -P" shell builtin since that's not portable.  Instead we try to
855 # find a pwd binary.  Note that assigning to the PWD environment
856 # variable might have some interesting side effects, so we don't do
857 # that.
858 AC_PATH_PROG(PWD_P, pwd, no)
859 if test "$PWD_P" = no; then
860   AC_MSG_ERROR(*** A pwd binary could not be found.)
863 # These programs are version sensitive.
864 AC_CHECK_TOOL_PREFIX
865 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
866   [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
867   critic_missing="$critic_missing gcc")
868 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
869   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
870   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
872 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
873   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
874   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
875   MSGFMT=: aux_missing="$aux_missing msgfmt")
876 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
877   [GNU texinfo.* \([0-9][0-9.]*\)],
878   [4.*],
879   MAKEINFO=: aux_missing="$aux_missing makeinfo")
880 AC_CHECK_PROG_VER(SED, sed, --version,
881   [GNU sed version \([0-9]*\.[0-9.]*\)],
882   [3.0[2-9]*|3.[1-9]*|[4-9]*],
883   SED=: aux_missing="$aux_missing sed")
885 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
886 case "x$AUTOCONF" in
887 xno|x|x:) AUTOCONF=no ;;
889   AC_CACHE_CHECK(dnl
890 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
891   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
892     libc_cv_autoconf_works=yes
893   else
894     libc_cv_autoconf_works=no
895   fi])
896   test $libc_cv_autoconf_works = yes || AUTOCONF=no
897   ;;
898 esac
899 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
900   # If --without-cvs they probably won't change configure.in, so no complaints.
901   aux_missing="$aux_missing autoconf"
904 test -n "$critic_missing" && AC_MSG_ERROR([
905 *** These critical programs are missing or too old:$critic_missing
906 *** Check the INSTALL file for required versions.])
908 test -n "$aux_missing" && AC_MSG_WARN([
909 *** These auxiliary programs are missing or incompatible versions:$aux_missing
910 *** some features will be disabled.
911 *** Check the INSTALL file for required versions.])
913 # if using special system headers, find out the compiler's sekrit
914 # header directory and add that to the list.  NOTE: Only does the right
915 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
916 if test -n "$sysheaders"; then
917   ccheaders=`$CC -print-file-name=include`
918   SYSINCLUDES="-nostdinc -isystem $ccheaders \
919 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
920   if test -n "$CXX"; then
921     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
922     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
923     cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
924     CXX_SYSINCLUDES="-isystem $cxxheaders \
925 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
926   fi
928 AC_SUBST(SYSINCLUDES)
929 AC_SUBST(CXX_SYSINCLUDES)
931 # check if ranlib is necessary
932 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
933 cat > conftest.c <<EOF
934 int a;
935 char b;
936 void c(void) {}
938 $CC $CFLAGS $CPPFLAGS -c conftest.c
939 $AR cr conftest.a conftest.o
940 cp conftest.a conftest2.a
941 $RANLIB conftest.a
942 if cmp -s conftest.a conftest2.a; then
943   libc_cv_ranlib_necessary=no
944 else
945   libc_cv_ranlib_necessary=yes
947 rm -rf conftest*])
948 if test "$libc_cv_ranlib_necessary" = no; then
949  RANLIB=:
952 # Test if LD_LIBRARY_PATH contains the notation for the current directory
953 # since this would lead to problems installing/building glibc.
954 # LD_LIBRARY_PATH contains the current directory if one of the following
955 # is true:
956 # - one of the terminals (":" and ";") is the first or last sign
957 # - two terminals occur directly after each other
958 # - the path contains an element with a dot in it
959 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
960 changequote(,)dnl
961 case ${LD_LIBRARY_PATH} in
962   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
963     ld_library_path_setting="contains current directory"
964     ;;
965   *)
966     ld_library_path_setting="ok"
967     ;;
968 esac
969 changequote([,])dnl
970 AC_MSG_RESULT($ld_library_path_setting)
971 if test "$ld_library_path_setting" != "ok"; then
972 AC_MSG_ERROR([
973 *** LD_LIBRARY_PATH shouldn't contain the current directory when
974 *** building glibc. Please change the environment variable
975 *** and run configure again.])
978 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
979 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
980   libc_cv_gcc_static_libgcc=
981 else
982   libc_cv_gcc_static_libgcc=-static-libgcc
983 fi])
984 AC_SUBST(libc_cv_gcc_static_libgcc)
986 AC_PATH_PROG(BASH_SHELL, bash, no)
987 if test "$BASH_SHELL" != no &&
988    $BASH_SHELL -c 'test "$BASH_VERSINFO" \
989              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
990   libc_cv_have_bash2=yes
991 else
992   libc_cv_have_bash2=no
994 AC_SUBST(libc_cv_have_bash2)
996 dnl We need a ksh compatible shell for tzselect.
997 if test "$BASH_SHELL" = no; then
998   AC_PATH_PROG(KSH, ksh, no)
999   if test "$KSH" = no; then
1000     libc_cv_have_ksh=no
1001   else
1002     libc_cv_have_ksh=yes
1003   fi
1004 else
1005   KSH="$BASH_SHELL"
1006   AC_SUBST(KSH)
1007   libc_cv_have_ksh=yes
1009 AC_SUBST(libc_cv_have_ksh)
1011 AC_PROG_AWK
1012 AC_PATH_PROG(PERL, perl, no)
1013 if test "$PERL" != no &&
1014    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
1015   PERL=no
1017 AC_PATH_PROG(INSTALL_INFO, install-info, no,
1018              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
1019 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
1021 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
1022 echo '#include <stddef.h>
1023 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
1024 if eval "$ac_cpp conftest.c 2>/dev/null" \
1025 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
1026   libc_cv_signed_size_t=no
1027 else
1028   libc_cv_signed_size_t=yes
1030 rm -f conftest*])
1031 if test $libc_cv_signed_size_t = yes; then
1032   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
1033   cat >> confdefs.h <<\EOF
1034 #undef __SIZE_TYPE__
1035 #define __SIZE_TYPE__ unsigned
1039 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
1040 AC_TRY_COMPILE(dnl
1041 [#define __need_size_t
1042 #define __need_wchar_t
1043 #include <stddef.h>
1044 #define __need_NULL
1045 #include <stddef.h>], [size_t size; wchar_t wchar;
1046 #ifdef offsetof
1047 #error stddef.h ignored __need_*
1048 #endif
1049 if (&size == NULL || &wchar == NULL) abort ();],
1050                libc_cv_friendly_stddef=yes,
1051                libc_cv_friendly_stddef=no)])
1052 if test $libc_cv_friendly_stddef = yes; then
1053   config_vars="$config_vars
1054 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
1057 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
1058                libc_cv_need_minus_P, [dnl
1059 cat > conftest.S <<EOF
1060 #include "confdefs.h"
1061 /* Nothing whatsoever.  */
1063 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
1064   libc_cv_need_minus_P=no
1065 else
1066   libc_cv_need_minus_P=yes
1068 rm -f conftest*])
1069 if test $libc_cv_need_minus_P = yes; then
1070   config_vars="$config_vars
1071 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
1074 AC_MSG_CHECKING(whether .text pseudo-op must be used)
1075 AC_CACHE_VAL(libc_cv_dot_text, [dnl
1076 cat > conftest.s <<EOF
1077 .text
1079 libc_cv_dot_text=
1080 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1081   libc_cv_dot_text=.text
1083 rm -f conftest*])
1084 if test -z "$libc_cv_dot_text"; then
1085   AC_MSG_RESULT(no)
1086 else
1087   AC_MSG_RESULT(yes)
1090 AC_CACHE_CHECK(for assembler global-symbol directive,
1091                libc_cv_asm_global_directive, [dnl
1092 libc_cv_asm_global_directive=UNKNOWN
1093 for ac_globl in .globl .global .EXPORT; do
1094   cat > conftest.s <<EOF
1095         ${libc_cv_dot_text}
1096         ${ac_globl} foo
1097 foo:
1099   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1100     libc_cv_asm_global_directive=${ac_globl}
1101   fi
1102   rm -f conftest*
1103   test $libc_cv_asm_global_directive != UNKNOWN && break
1104 done])
1105 if test $libc_cv_asm_global_directive = UNKNOWN; then
1106   AC_MSG_ERROR(cannot determine asm global directive)
1107 else
1108   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
1111 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1112 cat > conftest.s <<EOF
1113 ${libc_cv_dot_text}
1114 foo:
1115 .set glibc_conftest_frobozz,foo
1116 $libc_cv_asm_global_directive glibc_conftest_frobozz
1118 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1119 # (but it doesn't work), so we must do a linking check to be sure.
1120 cat > conftest1.c <<\EOF
1121 extern int glibc_conftest_frobozz;
1122 void _start() { glibc_conftest_frobozz = 1; }
1124 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1125             -nostartfiles -nostdlib \
1126             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1127   libc_cv_asm_set_directive=yes
1128 else
1129   libc_cv_asm_set_directive=no
1131 rm -f conftest*])
1132 if test $libc_cv_asm_set_directive = yes; then
1133   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1136 AC_CACHE_CHECK(for assembler .type directive prefix,
1137                libc_cv_asm_type_prefix, [dnl
1138 libc_cv_asm_type_prefix=no
1139 for ac_try_prefix in '@' '%' '#'; do
1140   cat > conftest.s <<EOF
1141         ${libc_cv_dot_text}
1142         ${libc_cv_asm_global_directive} foo
1143         .type foo, ${ac_try_prefix}object
1144         .size foo, 1
1145 foo:
1146         .byte 1
1148   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1149     libc_cv_asm_type_prefix=${ac_try_prefix}
1150   fi
1151   rm -f conftest*
1152   test "x$libc_cv_asm_type_prefix" != xno && break
1153 done])
1154 if test "x$libc_cv_asm_type_prefix" != xno; then
1155   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1158 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1159 [cat > conftest.s <<EOF
1160 ${libc_cv_dot_text}
1161 _sym:
1162 .symver _sym,sym@VERS
1164 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1165   libc_cv_asm_symver_directive=yes
1166 else
1167   libc_cv_asm_symver_directive=no
1169 rm -f conftest*])
1170 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1171 if test $libc_cv_asm_symver_directive = yes; then
1172   cat > conftest.s <<EOF
1173 ${libc_cv_dot_text}
1174 _sym:
1175 .symver _sym,sym@VERS
1177   cat > conftest.map <<EOF
1178 VERS_1 {
1179         global: sym;
1182 VERS_2 {
1183         global: sym;
1184 } VERS_1;
1186   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1187     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1188                                 -o conftest.so conftest.o
1189                                 -nostartfiles -nostdlib
1190                                 -Wl,--version-script,conftest.map
1191                        1>&AS_MESSAGE_LOG_FD]);
1192     then
1193       libc_cv_ld_version_script_option=yes
1194     else
1195       libc_cv_ld_version_script_option=no
1196     fi
1197   else
1198     libc_cv_ld_version_script_option=no
1199   fi
1200 else
1201   libc_cv_ld_version_script_option=no
1203 rm -f conftest*])
1204 if test $shared != no &&
1205    test $libc_cv_asm_symver_directive = yes &&
1206    test $libc_cv_ld_version_script_option = yes &&
1207    test $enable_versioning = yes; then
1208   VERSIONING=yes
1209   AC_DEFINE(DO_VERSIONING)
1210 else
1211   VERSIONING=no
1213 AC_SUBST(VERSIONING)
1215 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1216   echo "\
1217 *** WARNING: You should not compile GNU libc without versioning. Not using
1218 *** versioning will introduce incompatibilities so that old binaries
1219 *** will not run anymore.
1220 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1222 if test $elf = yes; then
1223   AC_CACHE_CHECK(for .previous assembler directive,
1224                  libc_cv_asm_previous_directive, [dnl
1225   cat > conftest.s <<EOF
1226 .section foo_section
1227 .previous
1229   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1230     libc_cv_asm_previous_directive=yes
1231   else
1232     libc_cv_asm_previous_directive=no
1233   fi
1234   rm -f conftest*])
1235   if test $libc_cv_asm_previous_directive = yes; then
1236     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1237   else
1238     AC_CACHE_CHECK(for .popsection assembler directive,
1239                    libc_cv_asm_popsection_directive, [dnl
1240     cat > conftest.s <<EOF
1241 .pushsection foo_section
1242 .popsection
1244     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1245       libc_cv_asm_popsection_directive=yes
1246     else
1247       libc_cv_asm_popsection_directive=no
1248     fi
1249     rm -f conftest*])
1250     if test $libc_cv_asm_popsection_directive = yes; then
1251       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1252     fi
1253   fi
1254   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1255                  libc_cv_asm_protected_directive, [dnl
1256   cat > conftest.s <<EOF
1257 .protected foo
1258 foo:
1259 .hidden bar
1260 bar:
1262   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1263     libc_cv_asm_protected_directive=yes
1264   else
1265     AC_MSG_ERROR(assembler support for symbol visibility is required)
1266   fi
1267   rm -f conftest*])
1269   if test $libc_cv_asm_protected_directive = yes; then
1270     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1271                  libc_cv_visibility_attribute,
1272                  [cat > conftest.c <<EOF
1273                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1274                   int bar __attribute__ ((visibility ("protected"))) = 1;
1276                   libc_cv_visibility_attribute=no
1277                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1278                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1279                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1280                         libc_cv_visibility_attribute=yes
1281                       fi
1282                     fi
1283                   fi
1284                   rm -f conftest.[cs]
1285                  ])
1286     if test $libc_cv_visibility_attribute != yes; then
1287       AC_MSG_ERROR(compiler support for visibility attribute is required)
1288     fi
1289   fi
1291   if test $libc_cv_visibility_attribute = yes; then
1292     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1293                  libc_cv_broken_visibility_attribute,
1294                  [cat > conftest.c <<EOF
1295                   int foo (int x);
1296                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1297                   int bar (int x) { return x; }
1299                   libc_cv_broken_visibility_attribute=yes
1300                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1301 changequote(,)dnl
1302                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1303 changequote([,])dnl
1304                       libc_cv_broken_visibility_attribute=no
1305                     fi
1306                   fi
1307                   rm -f conftest.c conftest.s
1308                  ])
1309     if test $libc_cv_broken_visibility_attribute = yes; then
1310       AC_MSG_ERROR(working compiler support for visibility attribute is required)
1311     fi
1312   fi
1314   AC_CACHE_CHECK(for broken __attribute__((alias())),
1315                  libc_cv_broken_alias_attribute,
1316                  [cat > conftest.c <<EOF
1317                   extern int foo (int x) __asm ("xyzzy");
1318                   int bar (int x) { return x; }
1319                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1320                   extern int dfoo;
1321                   extern __typeof (dfoo) dfoo __asm ("abccb");
1322                   int dfoo = 1;
1324                   libc_cv_broken_alias_attribute=yes
1325                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1326                     if grep 'xyzzy' conftest.s >/dev/null &&
1327                        grep 'abccb' conftest.s >/dev/null; then
1328                       libc_cv_broken_alias_attribute=no
1329                     fi
1330                   fi
1331                   rm -f conftest.c conftest.s
1332                  ])
1333   if test $libc_cv_broken_alias_attribute = yes; then
1334     AC_MSG_ERROR(working alias attribute support required)
1335   fi
1337   if test $libc_cv_visibility_attribute = yes; then
1338     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1339                  libc_cv_have_sdata_section,
1340                  [echo "int i;" > conftest.c
1341                   libc_cv_have_sdata_section=no
1342                   if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1343                      | grep '\.sdata' >/dev/null; then
1344                     libc_cv_have_sdata_section=yes
1345                   fi
1346                   rm -f conftest.c conftest.so
1347                  ])
1348     if test $libc_cv_have_sdata_section = yes; then
1349       AC_DEFINE(HAVE_SDATA_SECTION)
1350     fi
1351   fi
1353   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1354                  libc_cv_initfini_array, [dnl
1355   cat > conftest.c <<EOF
1356 int _start (void) { return 0; }
1357 int __start (void) { return 0; }
1358 int foo (void) { return 1; }
1359 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1361   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1362                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1363   then
1364     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1365       libc_cv_initfini_array=yes
1366     else
1367       libc_cv_initfini_array=no
1368     fi
1369   else
1370     libc_cv_initfini_array=no
1371   fi
1372   rm -f conftest*])
1373   if test $libc_cv_initfini_array != yes; then
1374     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1375   fi
1377   AC_CACHE_CHECK(for libunwind-support in compiler,
1378                  libc_cv_cc_with_libunwind, [
1379     cat > conftest.c <<EOF
1380 int main (void) { return 0; }
1382     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1383        conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1384       libc_cv_cc_with_libunwind=yes
1385     else
1386       libc_cv_cc_with_libunwind=no
1387     fi
1388     rm -f conftest*])
1389   AC_SUBST(libc_cv_cc_with_libunwind)
1390   if test $libc_cv_cc_with_libunwind = yes; then
1391     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1392   fi
1394   AC_CACHE_CHECK(for -z nodelete option,
1395                  libc_cv_z_nodelete, [dnl
1396   cat > conftest.c <<EOF
1397 int _start (void) { return 42; }
1399   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1400                      -fPIC -shared -o conftest.so conftest.c
1401                      -nostartfiles -nostdlib
1402                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1403   then
1404     libc_cv_z_nodelete=yes
1405   else
1406     AC_MSG_ERROR(linker with -z nodelete support required)
1407   fi
1408   rm -f conftest*])
1410   AC_CACHE_CHECK(for -z nodlopen option,
1411                  libc_cv_z_nodlopen, [dnl
1412   cat > conftest.c <<EOF
1413 int _start (void) { return 42; }
1415   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1416                         -fPIC -shared -o conftest.so conftest.c
1417                         -nostartfiles -nostdlib
1418                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1419   then
1420     libc_cv_z_nodlopen=yes
1421   else
1422     AC_MSG_ERROR(linker with -z nodlopen support required)
1423   fi
1424   rm -f conftest*])
1426   AC_CACHE_CHECK(for -z initfirst option,
1427                  libc_cv_z_initfirst, [dnl
1428   cat > conftest.c <<EOF
1429 int _start (void) { return 42; }
1431   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1432                         -fPIC -shared -o conftest.so conftest.c
1433                         -nostartfiles -nostdlib
1434                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1435   then
1436     libc_cv_z_initfirst=yes
1437   else
1438     AC_MSG_ERROR(linker with -z initfirst support required)
1439   fi
1440   rm -f conftest*])
1442   case "$base_machine" in
1443 changequote(,)dnl
1444     i[34567]86 | x86_64 | powerpc* | s390* | sparc* | alpha*)
1445 changequote([,])dnl
1446       AC_CACHE_CHECK(for -z relro option,
1447                      libc_cv_z_relro, [dnl
1448   libc_cv_z_relro=no
1449   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1450   then
1451     if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1452     then
1453       libc_cv_z_relro=yes
1454     fi
1455   fi])
1456       if test "$libc_cv_z_relro" = no; then
1457         AC_MSG_ERROR(linker with -z relro support required)
1458       fi
1459       ;;
1460     *) ;;
1461    esac
1463   AC_CACHE_CHECK(for -Bgroup option,
1464                  libc_cv_Bgroup, [dnl
1465   cat > conftest.c <<EOF
1466 int _start (void) { return 42; }
1468   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1469                               -fPIC -shared -o conftest.so conftest.c
1470                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1471   then
1472     libc_cv_Bgroup=yes
1473   else
1474     libc_cv_Bgroup=no
1475   fi
1476   rm -f conftest*])
1477   AC_SUBST(libc_cv_Bgroup)
1479   AC_CACHE_CHECK(for libgcc_s suffix,
1480                  libc_cv_libgcc_s_suffix, [dnl
1481   cat > conftest.c <<EOF
1482 int main (void) { return 0; }
1484 changequote(,)dnl
1485   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1486                            -fPIC -shared -shared-libgcc -o conftest.so \
1487                            conftest.c -v 2>&1 >/dev/null \
1488                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1489 changequote([,])dnl
1490   rm -f conftest*])
1491   AC_SUBST(libc_cv_libgcc_s_suffix)
1493   AC_CACHE_CHECK(for --as-needed option,
1494                  libc_cv_as_needed, [dnl
1495   cat > conftest.c <<EOF
1496 int main (void) { return 0; }
1498   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1499                               -fPIC -shared -o conftest.so conftest.c
1500                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1501                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1502   then
1503     libc_cv_as_needed=yes
1504   else
1505     libc_cv_as_needed=no
1506   fi
1507   rm -f conftest*])
1508   AC_SUBST(libc_cv_as_needed)
1510   ASFLAGS_config=
1511   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1512                  libc_cv_as_noexecstack, [dnl
1513   cat > conftest.c <<EOF
1514 void foo (void) { }
1516   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1517                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1518      && grep -q .note.GNU-stack conftest.s \
1519      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1520                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1521   then
1522     libc_cv_as_noexecstack=yes
1523   else
1524     libc_cv_as_noexecstack=no
1525   fi
1526   rm -f conftest*])
1527   if test $libc_cv_as_noexecstack = yes; then
1528     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1529   fi
1530   AC_SUBST(ASFLAGS_config)
1532   AC_CACHE_CHECK(for -z combreloc,
1533                  libc_cv_z_combreloc, [dnl
1534   cat > conftest.c <<EOF
1535 extern int bar (int);
1536 extern int mumble;
1537 int foo (void) { return bar (mumble); }
1539   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1540                         -fPIC -shared -o conftest.so conftest.c
1541                         -nostdlib -nostartfiles
1542                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1543   then
1544 dnl The following test is a bit weak.  We must use a tool which can test
1545 dnl cross-platform since the gcc used can be a cross compiler.  Without
1546 dnl introducing new options this is not easily doable.  Instead use a tool
1547 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1548 dnl look for a section named .rel.dyn.
1549     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1550       libc_cv_z_combreloc=yes
1551     else
1552       libc_cv_z_combreloc=no
1553     fi
1554   else
1555     libc_cv_z_combreloc=no
1556   fi
1557   rm -f conftest*])
1558   if test "$libc_cv_z_combreloc" = yes; then
1559     AC_DEFINE(HAVE_Z_COMBRELOC)
1560   fi
1561   AC_SUBST(libc_cv_z_combreloc)
1563   AC_CACHE_CHECK(for -z execstack,
1564                  libc_cv_z_execstack, [dnl
1565   cat > conftest.c <<EOF
1566 int _start (void) { return 42; }
1568   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1569                               -fPIC -shared -o conftest.so conftest.c
1570                               -Wl,-z,execstack -nostdlib
1571                               1>&AS_MESSAGE_LOG_FD])
1572   then
1573     libc_cv_z_execstack=yes
1574   else
1575     libc_cv_z_execstack=no
1576   fi
1577   rm -f conftest*])
1578   AC_SUBST(libc_cv_z_execstack)
1580   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1581   cat > conftest.c <<EOF
1582 int foo;
1583 main () { return 0;}
1585   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1586                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1587   then
1588     libc_cv_fpie=yes
1589   else
1590     libc_cv_fpie=no
1591   fi
1592   rm -f conftest*])
1594   AC_SUBST(libc_cv_fpie)
1596   AC_CACHE_CHECK(for --hash-style option,
1597                  libc_cv_hashstyle, [dnl
1598   cat > conftest.c <<EOF
1599 int _start (void) { return 42; }
1601   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1602                               -fPIC -shared -o conftest.so conftest.c
1603                               -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
1604   then
1605     libc_cv_hashstyle=yes
1606   else
1607     libc_cv_hashstyle=no
1608   fi
1609   rm -f conftest*])
1610   AC_SUBST(libc_cv_hashstyle)
1613 AC_CACHE_CHECK(for -fno-toplevel-reorder, libc_cv_fno_toplevel_reorder, [dnl
1614 cat > conftest.c <<EOF
1615 int foo;
1617 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder
1618                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1619 then
1620   libc_cv_fno_toplevel_reorder=yes
1621 else
1622   libc_cv_fno_toplevel_reorder=no
1624 rm -f conftest*])
1625 if test $libc_cv_fno_toplevel_reorder = yes; then
1626   fno_unit_at_a_time=-fno-toplevel-reorder
1627 else
1628   fno_unit_at_a_time=-fno-unit-at-a-time
1630 AC_SUBST(fno_unit_at_a_time)
1632 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1633 cat > conftest.c <<EOF
1634 int foo;
1635 main () { return 0;}
1637 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fstack-protector
1638                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1639 then
1640   libc_cv_ssp=yes
1641 else
1642   libc_cv_ssp=no
1644 rm -f conftest*])
1645 AC_SUBST(libc_cv_ssp)
1647 AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1648 cat > conftest.c <<EOF
1649 int foo;
1650 #ifdef __GNUC_GNU_INLINE__
1651 main () { return 0;}
1652 #else
1653 #error
1654 #endif
1656 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -std=gnu99 -fgnu89-inline
1657                             -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD])
1658 then
1659   libc_cv_gnu89_inline=yes
1660 else
1661   libc_cv_gnu89_inline=no
1663 rm -f conftest*])
1664 if test $libc_cv_gnu89_inline = yes; then
1665   libc_cv_gnu89_inline=-fgnu89-inline
1666 else
1667   libc_cv_gnu89_inline=
1669 AC_SUBST(libc_cv_gnu89_inline)
1671 if test $elf != yes; then
1672   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1673                  [AC_TRY_COMPILE(, [asm (".section .init");
1674                                     asm (".section .fini");
1675                                     asm ("${libc_cv_dot_text}");],
1676                                  libc_cv_have_initfini=yes,
1677                                  libc_cv_have_initfini=no)])
1678   AC_SUBST(libc_cv_have_initfini)dnl
1679   if test $libc_cv_have_initfini = yes; then
1680     AC_DEFINE(HAVE_INITFINI)
1681   fi
1684 if test $elf = yes; then
1685   AC_CACHE_CHECK(whether cc puts quotes around section names,
1686                  libc_cv_have_section_quotes,
1687                  [cat > conftest.c <<EOF
1688                   static const int foo
1689                   __attribute__ ((section ("bar"))) = 1;
1691                   if ${CC-cc} -S conftest.c -o conftest.s; then
1692                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1693                       libc_cv_have_section_quotes=yes
1694                     else
1695                       libc_cv_have_section_quotes=no
1696                     fi
1697                   else
1698                     libc_cv_have_section_quotes=unknown
1699                   fi
1700                   rm -f conftest.[cs]
1701                  ])
1702   if test $libc_cv_have_section_quotes = yes; then
1703     AC_DEFINE(HAVE_SECTION_QUOTES)
1704   fi
1707 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1708 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1709 [cat > conftest.$ac_ext <<EOF
1710 dnl This sometimes fails to find confdefs.h, for some reason.
1711 dnl [#]line $LINENO "[$]0"
1712 [#]line $LINENO "configure"
1713 #include "confdefs.h"
1714 void underscore_test(void) {
1715 return; }
1717 if AC_TRY_EVAL(ac_compile); then
1718   if grep _underscore_test conftest* >/dev/null; then
1719     ifelse([$1], , :, [rm -f conftest*
1720     $1])
1721   else
1722     ifelse([$2], , , [rm -f conftest*
1723     $2])
1724   fi
1725 else
1726   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1727   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1728   ifelse([$2], , , [rm -f conftest*
1729   $2])
1731 rm -f conftest*])
1733 if test $elf = yes; then
1734   libc_cv_asm_underscores=no
1735 else
1736   if test $ac_cv_prog_cc_works = yes; then
1737     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1738                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1739                                 libc_cv_asm_underscores=yes,
1740                                 libc_cv_asm_underscores=no)])
1741   else
1742     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1743                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1744                                             libc_cv_asm_underscores=no)])
1745   fi
1747 if test $libc_cv_asm_underscores = no; then
1748   AC_DEFINE(NO_UNDERSCORES)
1751 if test $elf = yes; then
1752   libc_cv_weak_symbols=yes
1755 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1756                [dnl
1757 cat > conftest.s <<EOF
1758 ${libc_cv_dot_text}
1759 ${libc_cv_asm_global_directive} foo
1760 foo:
1761 .weak foo
1762 .weak bar; bar = foo
1764 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1765   libc_cv_asm_weak_directive=yes
1766 else
1767   libc_cv_asm_weak_directive=no
1769 rm -f conftest*])
1771 if test $libc_cv_asm_weak_directive = no; then
1772   AC_CACHE_CHECK(for assembler .weakext directive,
1773                  libc_cv_asm_weakext_directive,
1774                  [dnl
1775 cat > conftest.s <<EOF
1776 ${libc_cv_dot_text}
1777 ${libc_cv_asm_global_directive} foo
1778 foo:
1779 .weakext bar foo
1780 .weakext baz
1781 ${libc_cv_asm_global_directive} baz
1782 baz:
1784   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1785     libc_cv_asm_weakext_directive=yes
1786   else
1787     libc_cv_asm_weakext_directive=no
1788   fi
1789   rm -f conftest*])
1791 fi # no .weak
1793 if test $libc_cv_asm_weak_directive = yes; then
1794   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1795 elif test $libc_cv_asm_weakext_directive = yes; then
1796   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1799 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1800 case $machine in
1801   sparc/sparc64*) cfi_offset=2047;;
1802   *) cfi_offset=0;;
1803 esac
1804 cat > conftest.s <<EOF
1805         .text
1806         .type   func,%function
1807 func:
1808         .cfi_startproc
1809         .cfi_remember_state
1810         .cfi_rel_offset 1, $cfi_offset
1811         .cfi_endproc
1813 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1814   libc_cv_asm_cfi_directives=yes
1815 else
1816   libc_cv_asm_cfi_directives=no
1818 rm -f conftest*])
1819 if test $libc_cv_asm_cfi_directives = yes; then
1820   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1823 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1824 cat > conftest.c <<\EOF
1825 _start () {}
1826 int __eh_pc;
1827 __throw () {}
1829 dnl No \ in command here because it ends up inside ''.
1830 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1831                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1832                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1833   libc_cv_ld_no_whole_archive=yes
1834 else
1835   libc_cv_ld_no_whole_archive=no
1837 rm -f conftest*])
1838 if test $libc_cv_ld_no_whole_archive = yes; then
1839   no_whole_archive=-Wl,--no-whole-archive
1841 AC_SUBST(no_whole_archive)dnl
1843 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1844 cat > conftest.c <<\EOF
1845 _start () {}
1846 int __eh_pc;
1847 __throw () {}
1849 dnl No \ in command here because it ends up inside ''.
1850 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1851                             -nostdlib -nostartfiles -fexceptions
1852                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1853   libc_cv_gcc_exceptions=yes
1854 else
1855   libc_cv_gcc_exceptions=no
1857 rm -f conftest*])
1858 if test $libc_cv_gcc_exceptions = yes; then
1859   exceptions=-fexceptions
1861 AC_SUBST(exceptions)dnl
1863 if test "$host_cpu" = powerpc ; then
1864 # Check for a bug present in at least versions 2.8.x of GCC
1865 # and versions 1.0.x of EGCS.
1866 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1867 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1868                libc_cv_c_asmcr0_bug='no',
1869                libc_cv_c_asmcr0_bug='yes')])
1870 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1871   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1875 dnl Check whether compiler understands __builtin_expect.
1876 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1877 [cat > conftest.c <<EOF
1878 #line $LINENO "configure"
1879 int foo (int a)
1881   a = __builtin_expect (a, 10);
1882   return a == 10 ? 0 : 1;
1885 dnl No \ in command here because it ends up inside ''.
1886 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1887                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1888   libc_cv_gcc_builtin_expect=yes
1889 else
1890   libc_cv_gcc_builtin_expect=no
1892 rm -f conftest*])
1893 if test "$libc_cv_gcc_builtin_expect" = yes; then
1894   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1897 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1898 cat > conftest.c <<\EOF
1899 void zero (void *x)
1901   __builtin_memset (x, 0, 1000);
1905 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1906 then
1907   libc_cv_gcc_builtin_memset=no
1908 else
1909   libc_cv_gcc_builtin_memset=yes
1911 rm -f conftest* ])
1912 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1913   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1916 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1917 cat > conftest.c <<\EOF
1918 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1919 char *foo (const char *a, const char *b)
1921   return __builtin_strstr (a, b);
1925 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1926 then
1927   libc_cv_gcc_builtin_redirection=yes
1928 else
1929   libc_cv_gcc_builtin_redirection=no
1931 rm -f conftest* ])
1932 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1933   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1936 dnl Check whether the compiler supports the __thread keyword.
1937 if test "x$use__thread" != xno; then
1938   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1939   [cat > conftest.c <<\EOF
1940 __thread int a = 42;
1942   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1943     libc_cv_gcc___thread=yes
1944   else
1945     libc_cv_gcc___thread=no
1946   fi
1947   rm -f conftest*])
1948   if test "$libc_cv_gcc___thread" = yes; then
1949     AC_DEFINE(HAVE___THREAD)
1950   fi
1951 else
1952   libc_cv_gcc___thread=no
1955 if test "$libc_cv_gcc___thread" = yes; then
1956   dnl Check whether the compiler supports the tls_model attribute.
1957   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1958   cat > conftest.c <<\EOF
1959 extern __thread int a __attribute__((tls_model ("initial-exec")));
1961   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1962     libc_cv_gcc_tls_model_attr=yes
1963   else
1964     libc_cv_gcc_tls_model_attr=no
1965   fi
1966   rm -f conftest*])
1967   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1968     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1969   fi
1972 dnl Check whether we have the gd library available.
1973 AC_MSG_CHECKING(for libgd)
1974 if test "$with_gd" != "no"; then
1975   old_CFLAGS="$CFLAGS"
1976   CFLAGS="$CFLAGS $libgd_include"
1977   old_LDFLAGS="$LDFLAGS"
1978   LDFLAGS="$LDFLAGS $libgd_ldflags"
1979   old_LIBS="$LIBS"
1980   LIBS="$LIBS -lgd -lpng -lz -lm"
1981   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1982   CFLAGS="$old_CFLAGS"
1983   LDFLAGS="$old_LDFLAGS"
1984   LIBS="$old_LIBS"
1985 else
1986   LIBGD=no
1988 AC_MSG_RESULT($LIBGD)
1989 AC_SUBST(LIBGD)
1991 # SELinux detection
1992 if test x$with_selinux = xno ; then
1993   have_selinux=no;
1994 else
1995   # See if we have the SELinux library
1996   AC_CHECK_LIB(selinux, is_selinux_enabled,
1997                have_selinux=yes, have_selinux=no)
1998   # See if we have the SELinux header with the NSCD permissions in it.
1999   if test x$have_selinux = xyes ; then
2000     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
2001     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
2002                     [#ifdef NSCD__SHMEMHOST
2003                      return 0;
2004                      #else
2005                      #error NSCD__SHMEMHOST not defined
2006                      #endif],
2007                     have_selinux=yes, have_selinux=no)
2008     AC_MSG_RESULT($have_selinux)
2009   fi
2011   if test x$with_selinux = xyes ; then
2012     if test x$have_selinux = xno ; then
2013       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
2014     fi
2015   fi
2017 # Check if we're building with SELinux support.
2018 if test "x$have_selinux" = xyes; then
2019   AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
2021   # See if we have the libaudit library
2022   AC_CHECK_LIB(audit, audit_log_user_avc_message,
2023                have_libaudit=yes, have_libaudit=no)
2024   if test "x$have_libaudit" = xyes; then
2025     AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
2026   fi
2027   AC_SUBST(have_libaudit)
2029   # See if we have the libcap library
2030   AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
2031   if test "x$have_libcap" = xyes; then
2032     AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
2033   fi
2034   AC_SUBST(have_libcap)
2036 AC_SUBST(have_selinux)
2038 dnl check for the size of 'long double'.
2039 AC_CHECK_SIZEOF(long double, 0)
2040 sizeof_long_double=$ac_cv_sizeof_long_double
2041 AC_SUBST(sizeof_long_double)
2043 ### End of automated tests.
2044 ### Now run sysdeps configure fragments.
2046 # They also can set these variables.
2047 use_ldconfig=no
2048 ldd_rewrite_script=no
2049 libc_cv_sysconfdir=$sysconfdir
2050 libc_cv_gcc_unwind_find_fde=no
2051 libc_cv_idn=no
2053 # Iterate over all the sysdep directories we will use, running their
2054 # configure fragments, and looking for a uname implementation.
2055 uname=
2056 for dir in $sysnames; do
2057   case $dir in
2058     /*) dest=$dir ;;
2059     *)  dest=$srcdir/$dir ;;
2060   esac
2061   if test -r $dest/configure; then
2062     AC_MSG_RESULT(running configure fragment for $dir)
2063     . $dest/configure
2064   fi
2066   if test -z "$uname"; then
2067     if test -r $dest/uname.c ||
2068        test -r $dest/uname.S ||
2069        { test -r $dest/syscalls.list &&
2070          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
2071       uname=$dir
2072     fi
2073   fi
2074 ]dnl
2075 done
2077 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2078   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2080 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2082 # If we will use the generic uname implementation, we must figure out what
2083 # it will say by examining the system, and write the results in config-name.h.
2084 if test "$uname" = "sysdeps/generic"; then
2086 changequote(,)dnl
2087   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
2088 changequote([,])dnl
2089   if test $uname_sysname != $config_os; then
2090     config_release=`echo $config_os | sed s/$uname_sysname//`
2091   fi
2093 AC_DEFUN(LIBC_KERNEL_ID, [dnl
2094     if test -r /vmunix; then
2095       kernel_id=`strings /vmunix | grep UNIX`
2096     elif test -r /dynix; then
2097       kernel_id=`strings /dynix | grep DYNIX`
2098     else
2099       kernel_id=
2100     fi
2101 ])dnl
2103   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
2104 LIBC_KERNEL_ID
2105 changequote(,)dnl
2106   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
2107 changequote([,])dnl
2108   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
2109          != x$config_release; then
2110     # The configuration release is a substring of the kernel release.
2111     libc_cv_uname_release=$kernel_release
2112   elif test x$config_release != x; then
2113     libc_cv_uname_release=$config_release
2114   elif test x$kernel_release != x; then
2115     libc_cv_uname_release=$kernel_release
2116   else
2117     libc_cv_uname_release=unknown
2118   fi])
2119   uname_release="$libc_cv_uname_release"
2121   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2122 LIBC_KERNEL_ID
2123 changequote(,)dnl
2124   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2125 changequote([,])dnl
2126   if test -n "$kernel_version"; then
2127     libc_cv_uname_version="$kernel_version"
2128   else
2129     libc_cv_uname_version=unknown
2130   fi])
2131   uname_version="$libc_cv_uname_version"
2133 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2134   config_uname=config-name.h:config-name.in
2135 else
2136   # For non-generic uname, we don't need to create config-name.h at all.
2137   config_uname=
2140 dnl This is tested by existing code and it's simpler to avoid changing it.
2141 AC_DEFINE(USE_IN_LIBIO)
2143 # Test for old glibc 2.0.x headers so that they can be removed properly
2144 # Search only in includedir.
2145 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2146 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2147 then
2148   old_glibc_headers=yes
2149 else
2150   old_glibc_headers=no
2152 AC_MSG_RESULT($old_glibc_headers)
2153 if test ${old_glibc_headers} = yes; then
2154   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2155   AC_MSG_WARN(*** be removed.)
2157 AC_SUBST(old_glibc_headers)
2159 AC_SUBST(libc_cv_slibdir)
2160 AC_SUBST(libc_cv_localedir)
2161 AC_SUBST(libc_cv_sysconfdir)
2162 AC_SUBST(libc_cv_rootsbindir)
2163 AC_SUBST(libc_cv_forced_unwind)
2165 AC_SUBST(use_ldconfig)
2166 AC_SUBST(ldd_rewrite_script)
2168 AC_SUBST(elf) AC_SUBST(xcoff)
2169 if test $elf = yes; then
2170   AC_DEFINE(HAVE_ELF)
2172 if test $xcoff = yes; then
2173   AC_DEFINE(HAVE_XCOFF)
2176 AC_SUBST(static)
2177 AC_SUBST(shared)
2178 if test $shared = default; then
2179   shared=$elf
2182 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2183 [pic_default=yes
2184 cat > conftest.c <<EOF
2185 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2186 # error PIC is default.
2187 #endif
2189 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2190   pic_default=no
2192 rm -f conftest.*])
2193 AC_SUBST(pic_default)
2195 AC_SUBST(profile)
2196 AC_SUBST(omitfp)
2197 AC_SUBST(bounded)
2198 AC_SUBST(static_nss)
2199 AC_SUBST(nopic_initfini)
2201 AC_SUBST(DEFINES)
2203 dnl See sysdeps/mach/configure.in for this variable.
2204 AC_SUBST(mach_interface_list)
2206 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2207   config_makefile=
2208 else
2209   config_makefile=Makefile
2212 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2213 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2214 AC_SUBST(VERSION)
2215 AC_SUBST(RELEASE)
2217 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2218 AC_CONFIG_COMMANDS([default],[[
2219 case $CONFIG_FILES in *config.make*)
2220 echo "$config_vars" >> config.make;;
2221 esac
2222 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2223 AC_OUTPUT