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