Pretty printing.
[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 LIBC_PROG_BINUTILS
680 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
681
682 # Accept binutils 2.13 or newer.
683 AC_CHECK_PROG_VER(AS, $AS, --version,
684                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
685                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
686 AC_CHECK_PROG_VER(LD, $LD, --version,
687                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
688                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
689
690 # We need the physical current working directory.  We cannot use the
691 # "pwd -P" shell builtin since that's not portable.  Instead we try to
692 # find a pwd binary.  Note that assigning to the PWD environment
693 # variable might have some interesting side effects, so we don't do
694 # that.
695 AC_PATH_PROG(PWD_P, pwd, no)
696 if test "$PWD_P" = no; then
697   AC_MSG_ERROR(*** A pwd binary could not be found.)
698 fi
699
700 # These programs are version sensitive.
701 AC_CHECK_TOOL_PREFIX
702 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
703   [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
704   critic_missing="$critic_missing gcc")
705 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
706   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
707   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
708
709 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
710   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
711   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
712   MSGFMT=: aux_missing="$aux_missing msgfmt")
713 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
714   [GNU texinfo.* \([0-9][0-9.]*\)],
715   [4.*],
716   MAKEINFO=: aux_missing="$aux_missing makeinfo")
717 AC_CHECK_PROG_VER(SED, sed, --version,
718   [GNU sed version \([0-9]*\.[0-9.]*\)],
719   [3.0[2-9]*|3.[1-9]*|[4-9]*],
720   SED=: aux_missing="$aux_missing sed")
721
722 if test "x$with_cvs" != xyes; then
723   AC_CHECK_PROGS(AUTOCONF, autoconf, no)
724   case "x$AUTOCONF" in
725   xno|x|x:) AUTOCONF=no ;;
726   *)
727     AC_CACHE_CHECK(dnl
728 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
729     if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
730       libc_cv_autoconf_works=yes
731     else
732       libc_cv_autoconf_works=no
733     fi])
734     test $libc_cv_autoconf_works = yes || AUTOCONF=no
735     ;;
736   esac
737   test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf"
738 fi
739
740 test -n "$critic_missing" && AC_MSG_ERROR([
741 *** These critical programs are missing or too old:$critic_missing
742 *** Check the INSTALL file for required versions.])
743
744 test -n "$aux_missing" && AC_MSG_WARN([
745 *** These auxiliary programs are missing or incompatible versions:$aux_missing
746 *** some features will be disabled.
747 *** Check the INSTALL file for required versions.])
748
749 # glibcbug.in wants to know the compiler version.
750 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
751 AC_SUBST(CCVERSION)
752
753 # if using special system headers, find out the compiler's sekrit
754 # header directory and add that to the list.  NOTE: Only does the right
755 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
756 if test -n "$sysheaders"; then
757   ccheaders=`$CC -print-file-name=include`
758   SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
759 fi
760 AC_SUBST(SYSINCLUDES)
761
762 # check if ranlib is necessary
763 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
764 cat > conftest.c <<EOF
765 int a;
766 char b;
767 void c(void) {}
768 EOF
769 $CC $CFLAGS $CPPFLAGS -c conftest.c
770 $AR cr conftest.a conftest.o
771 cp conftest.a conftest2.a
772 $RANLIB conftest.a
773 if cmp -s conftest.a conftest2.a; then
774   libc_cv_ranlib_necessary=no
775 else
776   libc_cv_ranlib_necessary=yes
777 fi
778 rm -rf conftest*])
779 if test "$libc_cv_ranlib_necessary" = no; then
780  RANLIB=:
781 fi
782
783 # Test if LD_LIBRARY_PATH contains the notation for the current directory
784 # since this would lead to problems installing/building glibc.
785 # LD_LIBRARY_PATH contains the current directory if one of the following
786 # is true:
787 # - one of the terminals (":" and ";") is the first or last sign
788 # - two terminals occur directly after each other
789 # - the path contains an element with a dot in it
790 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
791 changequote(,)dnl
792 case ${LD_LIBRARY_PATH} in
793   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
794     ld_library_path_setting="contains current directory"
795     ;;
796   *)
797     ld_library_path_setting="ok"
798     ;;
799 esac
800 changequote([,])dnl
801 AC_MSG_RESULT($ld_library_path_setting)
802 if test "$ld_library_path_setting" != "ok"; then
803 AC_MSG_ERROR([
804 *** LD_LIBRARY_PATH shouldn't contain the current directory when
805 *** building glibc. Please change the environment variable
806 *** and run configure again.])
807 fi
808
809 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
810 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
811   libc_cv_gcc_static_libgcc=
812 else
813   libc_cv_gcc_static_libgcc=-static-libgcc
814 fi])
815 AC_SUBST(libc_cv_gcc_static_libgcc)
816
817 AC_PATH_PROG(BASH, bash, no)
818 if test "$BASH" != no &&
819    $BASH -c 'test "$BASH_VERSINFO" \
820              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
821   libc_cv_have_bash2=yes
822 else
823   libc_cv_have_bash2=no
824 fi
825 AC_SUBST(libc_cv_have_bash2)
826
827 dnl We need a ksh compatible shell for tzselect.
828 if test "$BASH" = no; then
829   AC_PATH_PROG(KSH, ksh, no)
830   if test "$KSH" = no; then
831     libc_cv_have_ksh=no
832   else
833     libc_cv_have_ksh=yes
834   fi
835 else
836   KSH="$BASH"
837   AC_SUBST(KSH)
838   libc_cv_have_ksh=yes
839 fi
840 AC_SUBST(libc_cv_have_ksh)
841
842 AC_PROG_AWK
843 AC_PATH_PROG(PERL, perl, no)
844 if test "$PERL" != no &&
845    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
846   PERL=no
847 fi
848 AC_PATH_PROG(INSTALL_INFO, install-info, no,
849              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
850 if test "$INSTALL_INFO" != "no"; then
851 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
852  [mkdir conftest.d
853   # There is a hard ^_ on the next line.  I am open to better ideas.
854   (echo '\1f'
855   echo 'File: dir       Node: Top       This is the top of the INFO tree'
856   echo '* Menu:') >conftest.d/dir
857   (echo 'INFO-DIR-SECTION i-d-s works'
858   echo 'START-INFO-DIR-ENTRY'
859   echo '* Prog: (prog).   Program.'
860   echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
861   if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AS_MESSAGE_LOG_FD 2>&1
862   then
863     if grep -s 'i-d-s works' conftest.d/dir >/dev/null
864     then libc_cv_old_debian_install_info=no
865     else libc_cv_old_debian_install_info=yes
866     fi
867   else libc_cv_old_debian_install_info=no testfailed=t
868   fi
869   rm -fr conftest.d])
870 if test -n "$testfailed"
871 then AC_MSG_WARN([install-info errored out, check config.log])
872 fi
873 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
874 fi
875 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
876
877 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
878
879 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
880 echo '#include <stddef.h>
881 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
882 if eval "$ac_cpp conftest.c 2>/dev/null" \
883 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
884   libc_cv_signed_size_t=no
885 else
886   libc_cv_signed_size_t=yes
887 fi
888 rm -f conftest*])
889 if test $libc_cv_signed_size_t = yes; then
890   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
891   cat >> confdefs.h <<\EOF
892 #undef __SIZE_TYPE__
893 #define __SIZE_TYPE__ unsigned
894 EOF
895 fi
896
897 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
898 AC_TRY_COMPILE(dnl
899 [#define __need_size_t
900 #define __need_wchar_t
901 #include <stddef.h>
902 #define __need_NULL
903 #include <stddef.h>], [size_t size; wchar_t wchar;
904 #ifdef offsetof
905 #error stddef.h ignored __need_*
906 #endif
907 if (&size == NULL || &wchar == NULL) abort ();],
908                libc_cv_friendly_stddef=yes,
909                libc_cv_friendly_stddef=no)])
910 if test $libc_cv_friendly_stddef = yes; then
911   config_vars="$config_vars
912 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
913 fi
914
915 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
916                libc_cv_need_minus_P, [dnl
917 cat > conftest.S <<EOF
918 #include "confdefs.h"
919 /* Nothing whatsoever.  */
920 EOF
921 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
922   libc_cv_need_minus_P=no
923 else
924   libc_cv_need_minus_P=yes
925 fi
926 rm -f conftest*])
927 if test $libc_cv_need_minus_P = yes; then
928   config_vars="$config_vars
929 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
930 fi
931
932 AC_MSG_CHECKING(whether .text pseudo-op must be used)
933 AC_CACHE_VAL(libc_cv_dot_text, [dnl
934 cat > conftest.s <<EOF
935 .text
936 EOF
937 libc_cv_dot_text=
938 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
939   libc_cv_dot_text=.text
940 fi
941 rm -f conftest*])
942 if test -z "$libc_cv_dot_text"; then
943   AC_MSG_RESULT(no)
944 else
945   AC_MSG_RESULT(yes)
946 fi
947
948 AC_CACHE_CHECK(for assembler global-symbol directive,
949                libc_cv_asm_global_directive, [dnl
950 libc_cv_asm_global_directive=UNKNOWN
951 for ac_globl in .globl .global .EXPORT; do
952   cat > conftest.s <<EOF
953         ${libc_cv_dot_text}
954         ${ac_globl} foo
955 foo:
956 EOF
957   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
958     libc_cv_asm_global_directive=${ac_globl}
959   fi
960   rm -f conftest*
961   test $libc_cv_asm_global_directive != UNKNOWN && break
962 done])
963 if test $libc_cv_asm_global_directive = UNKNOWN; then
964   AC_MSG_ERROR(cannot determine asm global directive)
965 else
966   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
967 fi
968
969 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
970 cat > conftest.s <<EOF
971 ${libc_cv_dot_text}
972 foo:
973 .set glibc_conftest_frobozz,foo
974 $libc_cv_asm_global_directive glibc_conftest_frobozz
975 EOF
976 # The alpha-dec-osf1 assembler gives only a warning for `.set'
977 # (but it doesn't work), so we must do a linking check to be sure.
978 cat > conftest1.c <<\EOF
979 extern int glibc_conftest_frobozz;
980 void _start() { glibc_conftest_frobozz = 1; }
981 EOF
982 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
983             -nostartfiles -nostdlib \
984             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
985   libc_cv_asm_set_directive=yes
986 else
987   libc_cv_asm_set_directive=no
988 fi
989 rm -f conftest*])
990 if test $libc_cv_asm_set_directive = yes; then
991   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
992 fi
993
994 AC_CACHE_CHECK(for assembler .type directive prefix,
995                libc_cv_asm_type_prefix, [dnl
996 libc_cv_asm_type_prefix=no
997 for ac_try_prefix in '@' '%' '#'; do
998   cat > conftest.s <<EOF
999         ${libc_cv_dot_text}
1000         ${libc_cv_asm_global_directive} foo
1001         .type foo, ${ac_try_prefix}object
1002         .size foo, 1
1003 foo:
1004         .byte 1
1005 EOF
1006   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1007     libc_cv_asm_type_prefix=${ac_try_prefix}
1008   fi
1009   rm -f conftest*
1010   test "x$libc_cv_asm_type_prefix" != xno && break
1011 done])
1012 if test "x$libc_cv_asm_type_prefix" != xno; then
1013   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1014 fi
1015
1016 # The Aix ld uses global .symbol_names instead of symbol_names.
1017 # Unfortunately also used in the PPC64 ELF ABI.
1018 case "${os}${machine}" in
1019 aix4.3* | linux*powerpc/powerpc64*)
1020   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
1021 esac
1022
1023 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1024 [cat > conftest.s <<EOF
1025 ${libc_cv_dot_text}
1026 _sym:
1027 .symver _sym,sym@VERS
1028 EOF
1029 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1030   libc_cv_asm_symver_directive=yes
1031 else
1032   libc_cv_asm_symver_directive=no
1033 fi
1034 rm -f conftest*])
1035 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1036 if test $libc_cv_asm_symver_directive = yes; then
1037   cat > conftest.s <<EOF
1038 ${libc_cv_dot_text}
1039 _sym:
1040 .symver _sym,sym@VERS
1041 EOF
1042   cat > conftest.map <<EOF
1043 VERS_1 {
1044         global: sym;
1045 };
1046
1047 VERS_2 {
1048         global: sym;
1049 } VERS_1;
1050 EOF
1051   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1052     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1053                                 -o conftest.so conftest.o
1054                                 -nostartfiles -nostdlib
1055                                 -Wl,--version-script,conftest.map
1056                        1>&AS_MESSAGE_LOG_FD]);
1057     then
1058       libc_cv_ld_version_script_option=yes
1059     else
1060       libc_cv_ld_version_script_option=no
1061     fi
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 rm -f conftest*])
1069 if test $shared != no &&
1070    test $libc_cv_asm_symver_directive = yes &&
1071    test $libc_cv_ld_version_script_option = yes &&
1072    test $enable_versioning = yes; then
1073   VERSIONING=yes
1074   AC_DEFINE(DO_VERSIONING)
1075 else
1076   VERSIONING=no
1077 fi
1078 AC_SUBST(VERSIONING)
1079
1080 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1081   echo "\
1082 *** WARNING: You should not compile GNU libc without versioning. Not using
1083 *** versioning will introduce incompatibilities so that old binaries
1084 *** will not run anymore.
1085 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1086 fi
1087 if test $elf = yes; then
1088   AC_CACHE_CHECK(for .previous assembler directive,
1089                  libc_cv_asm_previous_directive, [dnl
1090   cat > conftest.s <<EOF
1091 .section foo_section
1092 .previous
1093 EOF
1094   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1095     libc_cv_asm_previous_directive=yes
1096   else
1097     libc_cv_asm_previous_directive=no
1098   fi
1099   rm -f conftest*])
1100   if test $libc_cv_asm_previous_directive = yes; then
1101     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1102   else
1103     AC_CACHE_CHECK(for .popsection assembler directive,
1104                    libc_cv_asm_popsection_directive, [dnl
1105     cat > conftest.s <<EOF
1106 .pushsection foo_section
1107 .popsection
1108 EOF
1109     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1110       libc_cv_asm_popsection_directive=yes
1111     else
1112       libc_cv_asm_popsection_directive=no
1113     fi
1114     rm -f conftest*])
1115     if test $libc_cv_asm_popsection_directive = yes; then
1116       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1117     fi
1118   fi
1119   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1120                  libc_cv_asm_protected_directive, [dnl
1121   cat > conftest.s <<EOF
1122 .protected foo
1123 foo:
1124 .hidden bar
1125 bar:
1126 EOF
1127   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1128     libc_cv_asm_protected_directive=yes
1129   else
1130     libc_cv_asm_protected_directive=no
1131   fi
1132   rm -f conftest*])
1133   AC_SUBST(libc_cv_asm_protected_directive)
1134   AC_DEFINE(HAVE_PROTECTED)
1135   AC_DEFINE(HAVE_HIDDEN)
1136
1137   if test $libc_cv_asm_protected_directive = yes; then
1138     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1139                  libc_cv_visibility_attribute,
1140                  [cat > conftest.c <<EOF
1141                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1142                   int bar __attribute__ ((visibility ("protected"))) = 1;
1143 EOF
1144                   libc_cv_visibility_attribute=no
1145                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1146                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1147                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1148                         libc_cv_visibility_attribute=yes
1149                       fi
1150                     fi
1151                   fi
1152                   rm -f conftest.[cs]
1153                  ])
1154     if test $libc_cv_visibility_attribute = yes; then
1155       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1156     fi
1157   fi
1158
1159   if test $libc_cv_visibility_attribute = yes; then
1160     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1161                  libc_cv_broken_visibility_attribute,
1162                  [cat > conftest.c <<EOF
1163                   int foo (int x);
1164                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1165                   int bar (int x) { return x; }
1166 EOF
1167                   libc_cv_broken_visibility_attribute=yes
1168                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1169 changequote(,)dnl
1170                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1171 changequote([,])dnl
1172                       libc_cv_broken_visibility_attribute=no
1173                     fi
1174                   fi
1175                   rm -f conftest.c conftest.s
1176                  ])
1177     if test $libc_cv_broken_visibility_attribute = yes; then
1178       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1179     fi
1180   fi
1181
1182   AC_CACHE_CHECK(for broken __attribute__((alias())),
1183                  libc_cv_broken_alias_attribute,
1184                  [cat > conftest.c <<EOF
1185                   extern int foo (int x) __asm ("xyzzy");
1186                   int bar (int x) { return x; }
1187                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1188                   extern int dfoo;
1189                   extern __typeof (dfoo) dfoo __asm ("abccb");
1190                   int dfoo = 1;
1191 EOF
1192                   libc_cv_broken_alias_attribute=yes
1193                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1194                     if grep 'xyzzy' conftest.s >/dev/null &&
1195                        grep 'abccb' conftest.s >/dev/null; then
1196                       libc_cv_broken_alias_attribute=no
1197                     fi
1198                   fi
1199                   rm -f conftest.c conftest.s
1200                  ])
1201   if test $libc_cv_broken_alias_attribute = yes; then
1202     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1203   fi
1204
1205   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1206     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1207                  libc_cv_have_sdata_section,
1208                  [echo "int i;" > conftest.c
1209                   libc_cv_have_sdata_section=no
1210                   if ${CC-cc} $LDFLAGS -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1211                      | grep '\.sdata' >/dev/null; then
1212                     libc_cv_have_sdata_section=yes
1213                   fi
1214                   rm -f conftest.c conftest.so
1215                  ])
1216     if test $libc_cv_have_sdata_section = yes; then
1217       AC_DEFINE(HAVE_SDATA_SECTION)
1218     fi
1219   fi
1220
1221   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1222                  libc_cv_initfinit_array, [dnl
1223   cat > conftest.c <<EOF
1224 int _start (void) { return 0; }
1225 int __start (void) { return 0; }
1226 int foo (void) { return 1; }
1227 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1228 EOF
1229   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1230                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1231   then
1232     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1233       libc_cv_initfinit_array=yes
1234     else
1235       libc_cv_initfinit_array=no
1236     fi
1237   else
1238     libc_cv_initfinit_array=no
1239   fi
1240   rm -f conftest*])
1241   AC_SUBST(libc_cv_initfinit_array)
1242   if test $libc_cv_initfinit_array = yes; then
1243     AC_DEFINE(HAVE_INITFINI_ARRAY)
1244   fi
1245
1246   AC_CACHE_CHECK(for -z nodelete option,
1247                  libc_cv_z_nodelete, [dnl
1248   cat > conftest.c <<EOF
1249 int _start (void) { return 42; }
1250 EOF
1251   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1252                      -shared -o conftest.so conftest.c
1253                      -nostartfiles -nostdlib
1254                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1255   then
1256     libc_cv_z_nodelete=yes
1257   else
1258     libc_cv_z_nodelete=no
1259   fi
1260   rm -f conftest*])
1261   AC_SUBST(libc_cv_z_nodelete)
1262
1263   AC_CACHE_CHECK(for -z nodlopen option,
1264                  libc_cv_z_nodlopen, [dnl
1265   cat > conftest.c <<EOF
1266 int _start (void) { return 42; }
1267 EOF
1268   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1269                         -shared -o conftest.so conftest.c
1270                         -nostartfiles -nostdlib
1271                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1272   then
1273     libc_cv_z_nodlopen=yes
1274   else
1275     libc_cv_z_nodlopen=no
1276   fi
1277   rm -f conftest*])
1278   AC_SUBST(libc_cv_z_nodlopen)
1279
1280   AC_CACHE_CHECK(for -z initfirst option,
1281                  libc_cv_z_initfirst, [dnl
1282   cat > conftest.c <<EOF
1283 int _start (void) { return 42; }
1284 EOF
1285   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1286                         -shared -o conftest.so conftest.c
1287                         -nostartfiles -nostdlib
1288                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1289   then
1290     libc_cv_z_initfirst=yes
1291   else
1292     libc_cv_z_initfirst=no
1293   fi
1294   rm -f conftest*])
1295   AC_SUBST(libc_cv_z_initfirst)
1296
1297   AC_CACHE_CHECK(for -Bgroup option,
1298                  libc_cv_Bgroup, [dnl
1299   cat > conftest.c <<EOF
1300 int _start (void) { return 42; }
1301 EOF
1302   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1303                               -shared -o conftest.so conftest.c
1304                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1305   then
1306     libc_cv_Bgroup=yes
1307   else
1308     libc_cv_Bgroup=no
1309   fi
1310   rm -f conftest*])
1311   AC_SUBST(libc_cv_Bgroup)
1312
1313   AC_CACHE_CHECK(for -z combreloc,
1314                  libc_cv_z_combreloc, [dnl
1315   cat > conftest.c <<EOF
1316 extern int bar (int);
1317 extern int mumble;
1318 int foo (void) { return bar (mumble); }
1319 EOF
1320   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1321                         -shared -o conftest.so conftest.c
1322                         -nostdlib -nostartfiles
1323                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1324   then
1325 dnl The following test is a bit weak.  We must use a tool which can test
1326 dnl cross-platform since the gcc used can be a cross compiler.  Without
1327 dnl introducing new options this is not easily doable.  Instead use a tool
1328 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1329 dnl look for a section named .rel.dyn.
1330     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1331       libc_cv_z_combreloc=yes
1332     else
1333       libc_cv_z_combreloc=no
1334     fi
1335   else
1336     libc_cv_z_combreloc=no
1337   fi
1338   rm -f conftest*])
1339   if test "$libc_cv_z_combreloc" = yes; then
1340     AC_DEFINE(HAVE_Z_COMBRELOC)
1341   fi
1342 fi
1343 AC_SUBST(libc_cv_z_combreloc)
1344
1345 if test $elf != yes; then
1346   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1347                  [AC_TRY_COMPILE(, [asm (".section .init");
1348                                     asm (".section .fini");
1349                                     asm ("${libc_cv_dot_text}");],
1350                                  libc_cv_have_initfini=yes,
1351                                  libc_cv_have_initfini=no)])
1352   AC_SUBST(libc_cv_have_initfini)dnl
1353   if test $libc_cv_have_initfini = yes; then
1354     AC_DEFINE(HAVE_INITFINI)
1355   fi
1356 fi
1357
1358 if test $elf = yes -a $gnu_ld = yes; then
1359   AC_CACHE_CHECK(whether cc puts quotes around section names,
1360                  libc_cv_have_section_quotes,
1361                  [cat > conftest.c <<EOF
1362                   static const int foo
1363                   __attribute__ ((section ("bar"))) = 1;
1364 EOF
1365                   if ${CC-cc} -S conftest.c -o conftest.s; then
1366                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1367                       libc_cv_have_section_quotes=yes
1368                     else
1369                       libc_cv_have_section_quotes=no
1370                     fi
1371                   else
1372                     libc_cv_have_section_quotes=unknown
1373                   fi
1374                   rm -f conftest.[cs]
1375                  ])
1376   if test $libc_cv_have_section_quotes = yes; then
1377     AC_DEFINE(HAVE_SECTION_QUOTES)
1378   fi
1379 fi
1380
1381 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1382 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1383 [cat > conftest.$ac_ext <<EOF
1384 dnl This sometimes fails to find confdefs.h, for some reason.
1385 dnl [#]line __oline__ "[$]0"
1386 [#]line __oline__ "configure"
1387 #include "confdefs.h"
1388 void underscore_test(void) {
1389 return; }
1390 EOF
1391 if AC_TRY_EVAL(ac_compile); then
1392   if grep _underscore_test conftest* >/dev/null; then
1393     ifelse([$1], , :, [rm -f conftest*
1394     $1])
1395   else
1396     ifelse([$2], , , [rm -f conftest*
1397     $2])
1398   fi
1399 else
1400   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1401   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1402   ifelse([$2], , , [rm -f conftest*
1403   $2])
1404 fi
1405 rm -f conftest*])
1406
1407 if test $elf = yes; then
1408   libc_cv_asm_underscores=no
1409 else
1410   if test $ac_cv_prog_cc_works = yes; then
1411     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1412                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1413                                 libc_cv_asm_underscores=yes,
1414                                 libc_cv_asm_underscores=no)])
1415   else
1416     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1417                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1418                                             libc_cv_asm_underscores=no)])
1419   fi
1420 fi
1421 if test $libc_cv_asm_underscores = no; then
1422   AC_DEFINE(NO_UNDERSCORES)
1423 fi
1424
1425 if test $elf = yes; then
1426   libc_cv_weak_symbols=yes
1427 fi
1428
1429 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1430                [dnl
1431 cat > conftest.s <<EOF
1432 ${libc_cv_dot_text}
1433 ${libc_cv_asm_global_directive} foo
1434 foo:
1435 .weak foo
1436 .weak bar; bar = foo
1437 EOF
1438 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1439   libc_cv_asm_weak_directive=yes
1440 else
1441   libc_cv_asm_weak_directive=no
1442 fi
1443 rm -f conftest*])
1444
1445 if test $libc_cv_asm_weak_directive = no; then
1446   AC_CACHE_CHECK(for assembler .weakext directive,
1447                  libc_cv_asm_weakext_directive,
1448                  [dnl
1449 cat > conftest.s <<EOF
1450 ${libc_cv_dot_text}
1451 ${libc_cv_asm_global_directive} foo
1452 foo:
1453 .weakext bar foo
1454 .weakext baz
1455 ${libc_cv_asm_global_directive} baz
1456 baz:
1457 EOF
1458   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1459     libc_cv_asm_weakext_directive=yes
1460   else
1461     libc_cv_asm_weakext_directive=no
1462   fi
1463   rm -f conftest*])
1464
1465 fi # no .weak
1466
1467 if test $libc_cv_asm_weak_directive = yes; then
1468   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1469 elif test $libc_cv_asm_weakext_directive = yes; then
1470   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1471 fi
1472
1473 dnl The standard hppa assembler uses `;' to start comments and `!'
1474 dnl as a line separator.  CRIS uses `;' to start comments and `@' for
1475 dnl line separator.
1476 case "${host_cpu}-${host_os}" in
1477   cris*)
1478     libc_cv_asm_line_sep='@'
1479     AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1480     ;;
1481   hppa*linux*)
1482   AC_CACHE_CHECK(for assembler line separator,
1483                  libc_cv_asm_line_sep, [dnl
1484   cat > conftest.s <<EOF
1485  nop ; is_old_puffin
1486 EOF
1487   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1488     libc_cv_asm_line_sep='!'
1489   else
1490     if test -z "$enable_hacker_mode"; then
1491       echo "*** You need a newer assembler to compile glibc"
1492       rm -f conftest*
1493       exit 1
1494     fi
1495     libc_cv_asm_line_sep=';'
1496   fi
1497   rm -f conftest*])
1498   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1499   ;;
1500 esac
1501
1502 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1503                libc_cv_cpp_asm_debuginfo, [dnl
1504 cat > conftest.S <<EOF
1505 #include "confdefs.h"
1506
1507 /* comment on
1508    two lines */
1509         ${libc_cv_dot_text}
1510         ${libc_cv_asm_global_directive} foo
1511 foo:
1512         /* Unfortunately this test only works for a real instruction,
1513            not for any of the machine-independent pseudo-ops.
1514            So we just have to assume everybody has a "nop".  */
1515         nop
1516         /* comment */
1517         nop
1518         /* comment */
1519         nop
1520 EOF
1521 if AC_TRY_COMMAND([${CC-cc} $CPPFLAGS $ASFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1522    ac_pattern='conftest\.S'
1523    AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1524                    grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1525   libc_cv_cpp_asm_debuginfo=yes
1526 else
1527   libc_cv_cpp_asm_debuginfo=no
1528 fi
1529 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1530 if test $libc_cv_cpp_asm_debuginfo = yes; then
1531   AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1532 fi
1533
1534 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1535 cat > conftest.c <<\EOF
1536 _start () {}
1537 int __eh_pc;
1538 __throw () {}
1539 EOF
1540 dnl No \ in command here because it ends up inside ''.
1541 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1542                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1543                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1544   libc_cv_ld_no_whole_archive=yes
1545 else
1546   libc_cv_ld_no_whole_archive=no
1547 fi
1548 rm -f conftest*])
1549 if test $libc_cv_ld_no_whole_archive = yes; then
1550   no_whole_archive=-Wl,--no-whole-archive
1551 fi
1552 AC_SUBST(no_whole_archive)dnl
1553
1554 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1555 cat > conftest.c <<\EOF
1556 _start () {}
1557 int __eh_pc;
1558 __throw () {}
1559 EOF
1560 dnl No \ in command here because it ends up inside ''.
1561 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1562                             -nostdlib -nostartfiles -fexceptions
1563                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1564   libc_cv_gcc_exceptions=yes
1565 else
1566   libc_cv_gcc_exceptions=no
1567 fi
1568 rm -f conftest*])
1569 if test $libc_cv_gcc_exceptions = yes; then
1570   exceptions=-fexceptions
1571 fi
1572 AC_SUBST(exceptions)dnl
1573
1574 if test "$host_cpu" = powerpc ; then
1575 # Check for a bug present in at least versions 2.8.x of GCC
1576 # and versions 1.0.x of EGCS.
1577 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1578 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1579                libc_cv_c_asmcr0_bug='no',
1580                libc_cv_c_asmcr0_bug='yes')])
1581 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1582   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1583 fi
1584 fi
1585
1586 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1587 [cat > conftest.c <<EOF
1588 #line __oline__ "configure"
1589 static char *__EH_FRAME_BEGIN__;
1590 _start ()
1591 {
1592 #ifdef CHECK__register_frame
1593   __register_frame (__EH_FRAME_BEGIN__);
1594   __deregister_frame (__EH_FRAME_BEGIN__);
1595 #endif
1596 #ifdef CHECK__register_frame_info
1597   __register_frame_info (__EH_FRAME_BEGIN__);
1598   __deregister_frame_info (__EH_FRAME_BEGIN__);
1599 #endif
1600 }
1601 int __eh_pc;
1602 __throw () {}
1603 /* FIXME: this is fragile.  */
1604 malloc () {}
1605 strcmp () {}
1606 strlen () {}
1607 memcpy () {}
1608 memset () {}
1609 free () {}
1610 abort () {}
1611 __bzero () {}
1612 dl_iterate_phdr () {}
1613 EOF
1614 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1615                             $LDFLAGS \
1616                             -nostdlib -nostartfiles -o conftest conftest.c \
1617                             -lgcc"
1618 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1619 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1620    AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1621 then
1622   if $libc_unwind_check -v 2>&1 >/dev/null \
1623      | grep -q -- --eh-frame-hdr; then
1624     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1625   else
1626     libc_cv_gcc_dwarf2_unwind_info=static
1627   fi
1628 else
1629   libc_cv_gcc_dwarf2_unwind_info=no
1630 fi
1631 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1632   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1633                               $LDFLAGS -nostdlib -nostartfiles
1634                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1635     libc_cv_gcc_dwarf2_unwind_info=yes
1636   else
1637     libc_cv_gcc_dwarf2_unwind_info=no
1638   fi
1639 fi
1640 rm -f conftest*])
1641 case $libc_cv_gcc_dwarf2_unwind_info in
1642 yes)
1643   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1644   ;;
1645 static)
1646   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1647   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1648   ;;
1649 esac
1650
1651 dnl Check whether compiler understands __builtin_expect.
1652 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1653 [cat > conftest.c <<EOF
1654 #line __oline__ "configure"
1655 int foo (int a)
1656 {
1657   a = __builtin_expect (a, 10);
1658   return a == 10 ? 0 : 1;
1659 }
1660 EOF
1661 dnl No \ in command here because it ends up inside ''.
1662 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1663                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1664   libc_cv_gcc_builtin_expect=yes
1665 else
1666   libc_cv_gcc_builtin_expect=no
1667 fi
1668 rm -f conftest*])
1669 if test "$libc_cv_gcc_builtin_expect" = yes; then
1670   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1671 fi
1672
1673 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1674 cat > conftest.c <<\EOF
1675 void zero (void *x)
1676 {
1677   __builtin_memset (x, 0, 1000);
1678 }
1679 EOF
1680 dnl
1681 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1682 then
1683   libc_cv_gcc_builtin_memset=no
1684 else
1685   libc_cv_gcc_builtin_memset=yes
1686 fi
1687 rm -f conftest* ])
1688 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1689   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1690 fi
1691
1692 dnl Check whether the compiler supports subtraction of local labels.
1693 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1694 [cat > conftest.c <<EOF
1695 changequote(,)dnl
1696 #line __oline__ "configure"
1697 int foo (int a)
1698 {
1699   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1700   void *p = &&l1 + ar[a];
1701   goto *p;
1702  l1:
1703   return 1;
1704  l2:
1705   return 2;
1706 }
1707 changequote([,])dnl
1708 EOF
1709 dnl No \ in command here because it ends up inside ''.
1710 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1711                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1712   libc_cv_gcc_subtract_local_labels=yes
1713 else
1714   libc_cv_gcc_subtract_local_labels=no
1715 fi
1716 rm -f conftest*])
1717 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1718   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1719 fi
1720
1721 dnl Check whether the compiler supports the __thread keyword.
1722 if test "x$use__thread" != xno; then
1723   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1724   [cat > conftest.c <<\EOF
1725 __thread int a = 42;
1726 EOF
1727   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1728     libc_cv_gcc___thread=yes
1729   else
1730     libc_cv_gcc___thread=no
1731   fi
1732   rm -f conftest*])
1733   if test "$libc_cv_gcc___thread" = yes; then
1734     AC_DEFINE(HAVE___THREAD)
1735   fi
1736 else
1737   libc_cv_gcc___thread=no
1738 fi
1739
1740 if test "$libc_cv_gcc___thread" = yes; then
1741   dnl Check whether the compiler supports the tls_model attribute.
1742   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1743   cat > conftest.c <<\EOF
1744 extern __thread int a __attribute__((tls_model ("initial-exec")));
1745 EOF
1746   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1747     libc_cv_gcc_tls_model_attr=yes
1748   else
1749     libc_cv_gcc_tls_model_attr=no
1750   fi
1751   rm -f conftest*])
1752   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1753     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1754   fi
1755 fi
1756
1757 dnl Check whether we have the gd library available.
1758 AC_MSG_CHECKING(for libgd)
1759 if test "$with_gd" != "no"; then
1760   old_CFLAGS="$CFLAGS"
1761   CFLAGS="$CFLAGS $libgd_include"
1762   old_LDFLAGS="$LDFLAGS"
1763   LDFLAGS="$LDFLAGS $libgd_ldflags"
1764   old_LIBS="$LIBS"
1765   LIBS="$LIBS -lgd -lpng -lz -lm"
1766   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1767   CFLAGS="$old_CFLAGS"
1768   LDFLAGS="$old_LDFLAGS"
1769   LIBS="$old_LIBS"
1770 else
1771   LIBGD=no
1772 fi
1773 AC_MSG_RESULT($LIBGD)
1774 AC_SUBST(LIBGD)
1775
1776 dnl check for the size of 'long double'.
1777 AC_CHECK_SIZEOF(long double, 0)
1778 sizeof_long_double=$ac_cv_sizeof_long_double
1779 AC_SUBST(sizeof_long_double)
1780
1781 ### End of automated tests.
1782 ### Now run sysdeps configure fragments.
1783
1784 # They also can set these variables.
1785 use_ldconfig=no
1786 ldd_rewrite_script=no
1787 libc_cv_sysconfdir=$sysconfdir
1788 libc_cv_gcc_unwind_find_fde=no
1789
1790 # Iterate over all the sysdep directories we will use, running their
1791 # configure fragments, and looking for a uname implementation.
1792 uname=
1793 for dir in $sysnames; do
1794   case $dir in
1795     /*) dest=$dir ;;
1796     *)  dest=$srcdir/$dir ;;
1797   esac
1798   if test -r $dest/configure; then
1799     AC_MSG_RESULT(running configure fragment for $dir)
1800     . $dest/configure
1801   fi
1802 [
1803   if test -z "$uname"; then
1804     if test -r $dest/uname.c ||
1805        test -r $dest/uname.S ||
1806        { test -r $dest/syscalls.list &&
1807          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1808       uname=$dir
1809     fi
1810   fi
1811 ]dnl
1812 done
1813
1814 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1815   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1816 fi
1817 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1818
1819 # If we will use the generic uname implementation, we must figure out what
1820 # it will say by examining the system, and write the results in config-name.h.
1821 if test "$uname" = "sysdeps/generic"; then
1822
1823 changequote(,)dnl
1824   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1825 changequote([,])dnl
1826   if test $uname_sysname != $config_os; then
1827     config_release=`echo $config_os | sed s/$uname_sysname//`
1828   fi
1829 dnl
1830 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1831     if test -r /vmunix; then
1832       kernel_id=`strings /vmunix | grep UNIX`
1833     elif test -r /dynix; then
1834       kernel_id=`strings /dynix | grep DYNIX`
1835     else
1836       kernel_id=
1837     fi
1838 ])dnl
1839
1840   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1841 LIBC_KERNEL_ID
1842 changequote(,)dnl
1843   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1844 changequote([,])dnl
1845   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1846          != x$config_release; then
1847     # The configuration release is a substring of the kernel release.
1848     libc_cv_uname_release=$kernel_release
1849   elif test x$config_release != x; then
1850     libc_cv_uname_release=$config_release
1851   elif test x$kernel_release != x; then
1852     libc_cv_uname_release=$kernel_release
1853   else
1854     libc_cv_uname_release=unknown
1855   fi])
1856   uname_release="$libc_cv_uname_release"
1857
1858   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1859 LIBC_KERNEL_ID
1860 changequote(,)dnl
1861   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1862 changequote([,])dnl
1863   if test -n "$kernel_version"; then
1864     libc_cv_uname_version="$kernel_version"
1865   else
1866     libc_cv_uname_version=unknown
1867   fi])
1868   uname_version="$libc_cv_uname_version"
1869
1870 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1871   config_uname=config-name.h:config-name.in
1872 else
1873   # For non-generic uname, we don't need to create config-name.h at all.
1874   config_uname=
1875 fi
1876
1877 dnl This is tested by existing code and it's simpler to avoid changing it.
1878 AC_DEFINE(USE_IN_LIBIO)
1879
1880 # Test for old glibc 2.0.x headers so that they can be removed properly
1881 # Search only in includedir.
1882 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1883 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1884 then
1885   old_glibc_headers=yes
1886 else
1887   old_glibc_headers=no
1888 fi
1889 AC_MSG_RESULT($old_glibc_headers)
1890 if test ${old_glibc_headers} = yes; then
1891   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1892   AC_MSG_WARN(*** be removed.)
1893 fi
1894 AC_SUBST(old_glibc_headers)
1895
1896 AC_SUBST(libc_cv_slibdir)
1897 AC_SUBST(libc_cv_localedir)
1898 AC_SUBST(libc_cv_sysconfdir)
1899 AC_SUBST(libc_cv_rootsbindir)
1900
1901 AC_SUBST(use_ldconfig)
1902 AC_SUBST(ldd_rewrite_script)
1903
1904 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1905 if test $gnu_ld = yes; then
1906   AC_DEFINE(HAVE_GNU_LD)
1907 fi
1908 if test $gnu_as = yes; then
1909   AC_DEFINE(HAVE_GNU_AS)
1910 fi
1911 if test $elf = yes; then
1912   AC_DEFINE(HAVE_ELF)
1913 fi
1914 if test $xcoff = yes; then
1915   AC_DEFINE(HAVE_XCOFF)
1916 fi
1917
1918 AC_SUBST(static)
1919 AC_SUBST(shared)
1920 if test $shared = default; then
1921   if test $gnu_ld = yes; then
1922     shared=$elf
1923   else
1924     # For now we do not assume shared libs are available.  In future more
1925     # tests might become available.
1926     shared=no
1927   fi
1928 fi
1929
1930 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1931 [pic_default=yes
1932 cat > conftest.c <<EOF
1933 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1934 # error PIC is default.
1935 #endif
1936 EOF
1937 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
1938   pic_default=no
1939 fi
1940 rm -f conftest.*])
1941 AC_SUBST(pic_default)
1942
1943 AC_SUBST(profile)
1944 AC_SUBST(omitfp)
1945 AC_SUBST(bounded)
1946 AC_SUBST(static_nss)
1947 AC_SUBST(nopic_initfini)
1948
1949 AC_SUBST(DEFINES)
1950
1951 case "$add_ons" in
1952   *door*) linux_doors=yes ;;
1953   *) linux_doors=no ;;
1954 esac
1955 AC_SUBST(linux_doors)
1956
1957 dnl See sysdeps/mach/configure.in for this variable.
1958 AC_SUBST(mach_interface_list)
1959
1960 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1961   config_makefile=
1962 else
1963   config_makefile=Makefile
1964 fi
1965
1966 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1967 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1968 AC_SUBST(VERSION)
1969 AC_SUBST(RELEASE)
1970
1971 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
1972 AC_CONFIG_COMMANDS([default],[[
1973 case $CONFIG_FILES in *config.make*)
1974 echo "$config_vars" >> config.make;;
1975 esac
1976 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
1977 AC_OUTPUT