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