Define HAVE_Z_RELRO if the linker supports -z relro.
[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 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
854
855 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
856 echo '#include <stddef.h>
857 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
858 if eval "$ac_cpp conftest.c 2>/dev/null" \
859 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
860   libc_cv_signed_size_t=no
861 else
862   libc_cv_signed_size_t=yes
863 fi
864 rm -f conftest*])
865 if test $libc_cv_signed_size_t = yes; then
866   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
867   cat >> confdefs.h <<\EOF
868 #undef __SIZE_TYPE__
869 #define __SIZE_TYPE__ unsigned
870 EOF
871 fi
872
873 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
874 AC_TRY_COMPILE(dnl
875 [#define __need_size_t
876 #define __need_wchar_t
877 #include <stddef.h>
878 #define __need_NULL
879 #include <stddef.h>], [size_t size; wchar_t wchar;
880 #ifdef offsetof
881 #error stddef.h ignored __need_*
882 #endif
883 if (&size == NULL || &wchar == NULL) abort ();],
884                libc_cv_friendly_stddef=yes,
885                libc_cv_friendly_stddef=no)])
886 if test $libc_cv_friendly_stddef = yes; then
887   config_vars="$config_vars
888 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
889 fi
890
891 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
892                libc_cv_need_minus_P, [dnl
893 cat > conftest.S <<EOF
894 #include "confdefs.h"
895 /* Nothing whatsoever.  */
896 EOF
897 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
898   libc_cv_need_minus_P=no
899 else
900   libc_cv_need_minus_P=yes
901 fi
902 rm -f conftest*])
903 if test $libc_cv_need_minus_P = yes; then
904   config_vars="$config_vars
905 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
906 fi
907
908 AC_MSG_CHECKING(whether .text pseudo-op must be used)
909 AC_CACHE_VAL(libc_cv_dot_text, [dnl
910 cat > conftest.s <<EOF
911 .text
912 EOF
913 libc_cv_dot_text=
914 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
915   libc_cv_dot_text=.text
916 fi
917 rm -f conftest*])
918 if test -z "$libc_cv_dot_text"; then
919   AC_MSG_RESULT(no)
920 else
921   AC_MSG_RESULT(yes)
922 fi
923
924 AC_CACHE_CHECK(for assembler global-symbol directive,
925                libc_cv_asm_global_directive, [dnl
926 libc_cv_asm_global_directive=UNKNOWN
927 for ac_globl in .globl .global .EXPORT; do
928   cat > conftest.s <<EOF
929         ${libc_cv_dot_text}
930         ${ac_globl} foo
931 foo:
932 EOF
933   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
934     libc_cv_asm_global_directive=${ac_globl}
935   fi
936   rm -f conftest*
937   test $libc_cv_asm_global_directive != UNKNOWN && break
938 done])
939 if test $libc_cv_asm_global_directive = UNKNOWN; then
940   AC_MSG_ERROR(cannot determine asm global directive)
941 else
942   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
943 fi
944
945 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
946 cat > conftest.s <<EOF
947 ${libc_cv_dot_text}
948 foo:
949 .set glibc_conftest_frobozz,foo
950 $libc_cv_asm_global_directive glibc_conftest_frobozz
951 EOF
952 # The alpha-dec-osf1 assembler gives only a warning for `.set'
953 # (but it doesn't work), so we must do a linking check to be sure.
954 cat > conftest1.c <<\EOF
955 extern int glibc_conftest_frobozz;
956 void _start() { glibc_conftest_frobozz = 1; }
957 EOF
958 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
959             -nostartfiles -nostdlib \
960             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
961   libc_cv_asm_set_directive=yes
962 else
963   libc_cv_asm_set_directive=no
964 fi
965 rm -f conftest*])
966 if test $libc_cv_asm_set_directive = yes; then
967   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
968 fi
969
970 AC_CACHE_CHECK(for assembler .type directive prefix,
971                libc_cv_asm_type_prefix, [dnl
972 libc_cv_asm_type_prefix=no
973 for ac_try_prefix in '@' '%' '#'; do
974   cat > conftest.s <<EOF
975         ${libc_cv_dot_text}
976         ${libc_cv_asm_global_directive} foo
977         .type foo, ${ac_try_prefix}object
978         .size foo, 1
979 foo:
980         .byte 1
981 EOF
982   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
983     libc_cv_asm_type_prefix=${ac_try_prefix}
984   fi
985   rm -f conftest*
986   test "x$libc_cv_asm_type_prefix" != xno && break
987 done])
988 if test "x$libc_cv_asm_type_prefix" != xno; then
989   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
990 fi
991
992 # The Aix ld uses global .symbol_names instead of symbol_names.
993 # Unfortunately also used in the PPC64 ELF ABI.
994 case "${os}${machine}" in
995 aix4.3* | linux*powerpc/powerpc64*)
996   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
997 esac
998
999 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1000 [cat > conftest.s <<EOF
1001 ${libc_cv_dot_text}
1002 _sym:
1003 .symver _sym,sym@VERS
1004 EOF
1005 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1006   libc_cv_asm_symver_directive=yes
1007 else
1008   libc_cv_asm_symver_directive=no
1009 fi
1010 rm -f conftest*])
1011 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1012 if test $libc_cv_asm_symver_directive = yes; then
1013   cat > conftest.s <<EOF
1014 ${libc_cv_dot_text}
1015 _sym:
1016 .symver _sym,sym@VERS
1017 EOF
1018   cat > conftest.map <<EOF
1019 VERS_1 {
1020         global: sym;
1021 };
1022
1023 VERS_2 {
1024         global: sym;
1025 } VERS_1;
1026 EOF
1027   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1028     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1029                                 -o conftest.so conftest.o
1030                                 -nostartfiles -nostdlib
1031                                 -Wl,--version-script,conftest.map
1032                        1>&AS_MESSAGE_LOG_FD]);
1033     then
1034       libc_cv_ld_version_script_option=yes
1035     else
1036       libc_cv_ld_version_script_option=no
1037     fi
1038   else
1039     libc_cv_ld_version_script_option=no
1040   fi
1041 else
1042   libc_cv_ld_version_script_option=no
1043 fi
1044 rm -f conftest*])
1045 if test $shared != no &&
1046    test $libc_cv_asm_symver_directive = yes &&
1047    test $libc_cv_ld_version_script_option = yes &&
1048    test $enable_versioning = yes; then
1049   VERSIONING=yes
1050   AC_DEFINE(DO_VERSIONING)
1051 else
1052   VERSIONING=no
1053 fi
1054 AC_SUBST(VERSIONING)
1055
1056 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1057   echo "\
1058 *** WARNING: You should not compile GNU libc without versioning. Not using
1059 *** versioning will introduce incompatibilities so that old binaries
1060 *** will not run anymore.
1061 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1062 fi
1063 if test $elf = yes; then
1064   AC_CACHE_CHECK(for .previous assembler directive,
1065                  libc_cv_asm_previous_directive, [dnl
1066   cat > conftest.s <<EOF
1067 .section foo_section
1068 .previous
1069 EOF
1070   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1071     libc_cv_asm_previous_directive=yes
1072   else
1073     libc_cv_asm_previous_directive=no
1074   fi
1075   rm -f conftest*])
1076   if test $libc_cv_asm_previous_directive = yes; then
1077     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1078   else
1079     AC_CACHE_CHECK(for .popsection assembler directive,
1080                    libc_cv_asm_popsection_directive, [dnl
1081     cat > conftest.s <<EOF
1082 .pushsection foo_section
1083 .popsection
1084 EOF
1085     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1086       libc_cv_asm_popsection_directive=yes
1087     else
1088       libc_cv_asm_popsection_directive=no
1089     fi
1090     rm -f conftest*])
1091     if test $libc_cv_asm_popsection_directive = yes; then
1092       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1093     fi
1094   fi
1095   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1096                  libc_cv_asm_protected_directive, [dnl
1097   cat > conftest.s <<EOF
1098 .protected foo
1099 foo:
1100 .hidden bar
1101 bar:
1102 EOF
1103   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1104     libc_cv_asm_protected_directive=yes
1105   else
1106     libc_cv_asm_protected_directive=no
1107   fi
1108   rm -f conftest*])
1109   AC_SUBST(libc_cv_asm_protected_directive)
1110   AC_DEFINE(HAVE_PROTECTED)
1111   AC_DEFINE(HAVE_HIDDEN)
1112
1113   if test $libc_cv_asm_protected_directive = yes; then
1114     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1115                  libc_cv_visibility_attribute,
1116                  [cat > conftest.c <<EOF
1117                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1118                   int bar __attribute__ ((visibility ("protected"))) = 1;
1119 EOF
1120                   libc_cv_visibility_attribute=no
1121                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1122                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1123                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1124                         libc_cv_visibility_attribute=yes
1125                       fi
1126                     fi
1127                   fi
1128                   rm -f conftest.[cs]
1129                  ])
1130     if test $libc_cv_visibility_attribute = yes; then
1131       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1132     fi
1133   fi
1134
1135   if test $libc_cv_visibility_attribute = yes; then
1136     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1137                  libc_cv_broken_visibility_attribute,
1138                  [cat > conftest.c <<EOF
1139                   int foo (int x);
1140                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1141                   int bar (int x) { return x; }
1142 EOF
1143                   libc_cv_broken_visibility_attribute=yes
1144                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1145 changequote(,)dnl
1146                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1147 changequote([,])dnl
1148                       libc_cv_broken_visibility_attribute=no
1149                     fi
1150                   fi
1151                   rm -f conftest.c conftest.s
1152                  ])
1153     if test $libc_cv_broken_visibility_attribute = yes; then
1154       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1155     fi
1156   fi
1157
1158   AC_CACHE_CHECK(for broken __attribute__((alias())),
1159                  libc_cv_broken_alias_attribute,
1160                  [cat > conftest.c <<EOF
1161                   extern int foo (int x) __asm ("xyzzy");
1162                   int bar (int x) { return x; }
1163                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1164                   extern int dfoo;
1165                   extern __typeof (dfoo) dfoo __asm ("abccb");
1166                   int dfoo = 1;
1167 EOF
1168                   libc_cv_broken_alias_attribute=yes
1169                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1170                     if grep 'xyzzy' conftest.s >/dev/null &&
1171                        grep 'abccb' conftest.s >/dev/null; then
1172                       libc_cv_broken_alias_attribute=no
1173                     fi
1174                   fi
1175                   rm -f conftest.c conftest.s
1176                  ])
1177   if test $libc_cv_broken_alias_attribute = yes; then
1178     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1179   fi
1180
1181   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1182     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1183                  libc_cv_have_sdata_section,
1184                  [echo "int i;" > conftest.c
1185                   libc_cv_have_sdata_section=no
1186                   if ${CC-cc} $LDFLAGS -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1187                      | grep '\.sdata' >/dev/null; then
1188                     libc_cv_have_sdata_section=yes
1189                   fi
1190                   rm -f conftest.c conftest.so
1191                  ])
1192     if test $libc_cv_have_sdata_section = yes; then
1193       AC_DEFINE(HAVE_SDATA_SECTION)
1194     fi
1195   fi
1196
1197   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1198                  libc_cv_initfinit_array, [dnl
1199   cat > conftest.c <<EOF
1200 int _start (void) { return 0; }
1201 int __start (void) { return 0; }
1202 int foo (void) { return 1; }
1203 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1204 EOF
1205   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1206                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1207   then
1208     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1209       libc_cv_initfinit_array=yes
1210     else
1211       libc_cv_initfinit_array=no
1212     fi
1213   else
1214     libc_cv_initfinit_array=no
1215   fi
1216   rm -f conftest*])
1217   AC_SUBST(libc_cv_initfinit_array)
1218   if test $libc_cv_initfinit_array = yes; then
1219     AC_DEFINE(HAVE_INITFINI_ARRAY)
1220   fi
1221
1222   AC_CACHE_CHECK(for libunwind-support in compiler,
1223                  libc_cv_cc_with_libunwind, [dnl
1224     AC_TRY_LINK([#include <libunwind.h>], [
1225       unw_context_t uc;
1226       unw_cursor_t c;
1227       unw_getcontext (&uc);
1228       unw_init_local (&c, &uc)],
1229         libc_cv_cc_with_libunwind=yes, libc_cv_cc_with_libunwind=no)])
1230   AC_SUBST(libc_cv_cc_with_libunwind)
1231   if test $libc_cv_cc_with_libunwind = yes; then
1232     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1233   fi
1234
1235   AC_CACHE_CHECK(for -z nodelete option,
1236                  libc_cv_z_nodelete, [dnl
1237   cat > conftest.c <<EOF
1238 int _start (void) { return 42; }
1239 EOF
1240   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1241                      -shared -o conftest.so conftest.c
1242                      -nostartfiles -nostdlib
1243                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1244   then
1245     libc_cv_z_nodelete=yes
1246   else
1247     libc_cv_z_nodelete=no
1248   fi
1249   rm -f conftest*])
1250   AC_SUBST(libc_cv_z_nodelete)
1251
1252   AC_CACHE_CHECK(for -z nodlopen option,
1253                  libc_cv_z_nodlopen, [dnl
1254   cat > conftest.c <<EOF
1255 int _start (void) { return 42; }
1256 EOF
1257   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1258                         -shared -o conftest.so conftest.c
1259                         -nostartfiles -nostdlib
1260                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1261   then
1262     libc_cv_z_nodlopen=yes
1263   else
1264     libc_cv_z_nodlopen=no
1265   fi
1266   rm -f conftest*])
1267   AC_SUBST(libc_cv_z_nodlopen)
1268
1269   AC_CACHE_CHECK(for -z initfirst option,
1270                  libc_cv_z_initfirst, [dnl
1271   cat > conftest.c <<EOF
1272 int _start (void) { return 42; }
1273 EOF
1274   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1275                         -shared -o conftest.so conftest.c
1276                         -nostartfiles -nostdlib
1277                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1278   then
1279     libc_cv_z_initfirst=yes
1280   else
1281     libc_cv_z_initfirst=no
1282   fi
1283   rm -f conftest*])
1284   AC_SUBST(libc_cv_z_initfirst)
1285
1286   AC_CACHE_CHECK(for -z relro option,
1287                  libc_cv_z_relro, [dnl
1288   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1289   then
1290     libc_cv_z_relro=yes
1291   else
1292     libc_cv_z_relro=no
1293   fi])
1294   AC_SUBST(libc_cv_z_relro)
1295   if test $libc_cv_z_relro = yes; then
1296     AC_DEFINE(HAVE_Z_RELRO)
1297   fi
1298
1299   AC_CACHE_CHECK(for -Bgroup option,
1300                  libc_cv_Bgroup, [dnl
1301   cat > conftest.c <<EOF
1302 int _start (void) { return 42; }
1303 EOF
1304   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1305                               -shared -o conftest.so conftest.c
1306                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1307   then
1308     libc_cv_Bgroup=yes
1309   else
1310     libc_cv_Bgroup=no
1311   fi
1312   rm -f conftest*])
1313   AC_SUBST(libc_cv_Bgroup)
1314
1315   ASFLAGS_config=
1316   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1317                  libc_cv_as_noexecstack, [dnl
1318   cat > conftest.c <<EOF
1319 void foo (void) { }
1320 EOF
1321   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1322                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1323      && grep -q .note.GNU-stack conftest.s \
1324      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1325                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1326   then
1327     libc_cv_as_noexecstack=yes
1328   else
1329     libc_cv_as_noexecstack=no
1330   fi
1331   rm -f conftest*])
1332   if test $libc_cv_as_noexecstack = yes; then
1333     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1334   fi
1335   AC_SUBST(ASFLAGS_config)
1336
1337   AC_CACHE_CHECK(for -z combreloc,
1338                  libc_cv_z_combreloc, [dnl
1339   cat > conftest.c <<EOF
1340 extern int bar (int);
1341 extern int mumble;
1342 int foo (void) { return bar (mumble); }
1343 EOF
1344   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1345                         -shared -o conftest.so conftest.c
1346                         -nostdlib -nostartfiles
1347                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1348   then
1349 dnl The following test is a bit weak.  We must use a tool which can test
1350 dnl cross-platform since the gcc used can be a cross compiler.  Without
1351 dnl introducing new options this is not easily doable.  Instead use a tool
1352 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1353 dnl look for a section named .rel.dyn.
1354     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1355       libc_cv_z_combreloc=yes
1356     else
1357       libc_cv_z_combreloc=no
1358     fi
1359   else
1360     libc_cv_z_combreloc=no
1361   fi
1362   rm -f conftest*])
1363   if test "$libc_cv_z_combreloc" = yes; then
1364     AC_DEFINE(HAVE_Z_COMBRELOC)
1365   fi
1366   AC_SUBST(libc_cv_z_combreloc)
1367
1368   AC_CACHE_CHECK(for -z execstack,
1369                  libc_cv_z_execstack, [dnl
1370   cat > conftest.c <<EOF
1371 int _start (void) { return 42; }
1372 EOF
1373   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1374                               -shared -o conftest.so conftest.c
1375                               -Wl,-z,execstack -nostdlib
1376                               1>&AS_MESSAGE_LOG_FD])
1377   then
1378     libc_cv_z_execstack=yes
1379   else
1380     libc_cv_z_execstack=no
1381   fi
1382   rm -f conftest*])
1383   AC_SUBST(libc_cv_z_execstack)
1384
1385   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1386   cat > conftest.c <<EOF
1387 int foo;
1388 main () { return 0;}
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 AC_CACHE_CHECK(for -fno-unit-at-a-time, libc_cv_fno_unit_at_a_time, [dnl
1403 cat > conftest.c <<EOF
1404 int foo;
1405 EOF
1406 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-unit-at-a-time
1407                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1408 then
1409   libc_cv_fno_unit_at_a_time=yes
1410 else
1411   libc_cv_fno_unit_at_a_time=no
1412 fi
1413 rm -f conftest*])
1414 if test $libc_cv_fno_unit_at_a_time = yes; then
1415   fno_unit_at_a_time=-fno-unit-at-a-time
1416 fi
1417 AC_SUBST(fno_unit_at_a_time)
1418
1419 if test $elf != yes; then
1420   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1421                  [AC_TRY_COMPILE(, [asm (".section .init");
1422                                     asm (".section .fini");
1423                                     asm ("${libc_cv_dot_text}");],
1424                                  libc_cv_have_initfini=yes,
1425                                  libc_cv_have_initfini=no)])
1426   AC_SUBST(libc_cv_have_initfini)dnl
1427   if test $libc_cv_have_initfini = yes; then
1428     AC_DEFINE(HAVE_INITFINI)
1429   fi
1430 fi
1431
1432 if test $elf = yes -a $gnu_ld = yes; then
1433   AC_CACHE_CHECK(whether cc puts quotes around section names,
1434                  libc_cv_have_section_quotes,
1435                  [cat > conftest.c <<EOF
1436                   static const int foo
1437                   __attribute__ ((section ("bar"))) = 1;
1438 EOF
1439                   if ${CC-cc} -S conftest.c -o conftest.s; then
1440                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1441                       libc_cv_have_section_quotes=yes
1442                     else
1443                       libc_cv_have_section_quotes=no
1444                     fi
1445                   else
1446                     libc_cv_have_section_quotes=unknown
1447                   fi
1448                   rm -f conftest.[cs]
1449                  ])
1450   if test $libc_cv_have_section_quotes = yes; then
1451     AC_DEFINE(HAVE_SECTION_QUOTES)
1452   fi
1453 fi
1454
1455 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1456 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1457 [cat > conftest.$ac_ext <<EOF
1458 dnl This sometimes fails to find confdefs.h, for some reason.
1459 dnl [#]line $LINENO "[$]0"
1460 [#]line $LINENO "configure"
1461 #include "confdefs.h"
1462 void underscore_test(void) {
1463 return; }
1464 EOF
1465 if AC_TRY_EVAL(ac_compile); then
1466   if grep _underscore_test conftest* >/dev/null; then
1467     ifelse([$1], , :, [rm -f conftest*
1468     $1])
1469   else
1470     ifelse([$2], , , [rm -f conftest*
1471     $2])
1472   fi
1473 else
1474   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1475   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1476   ifelse([$2], , , [rm -f conftest*
1477   $2])
1478 fi
1479 rm -f conftest*])
1480
1481 if test $elf = yes; then
1482   libc_cv_asm_underscores=no
1483 else
1484   if test $ac_cv_prog_cc_works = yes; then
1485     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1486                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1487                                 libc_cv_asm_underscores=yes,
1488                                 libc_cv_asm_underscores=no)])
1489   else
1490     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1491                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1492                                             libc_cv_asm_underscores=no)])
1493   fi
1494 fi
1495 if test $libc_cv_asm_underscores = no; then
1496   AC_DEFINE(NO_UNDERSCORES)
1497 fi
1498
1499 if test $elf = yes; then
1500   libc_cv_weak_symbols=yes
1501 fi
1502
1503 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1504                [dnl
1505 cat > conftest.s <<EOF
1506 ${libc_cv_dot_text}
1507 ${libc_cv_asm_global_directive} foo
1508 foo:
1509 .weak foo
1510 .weak bar; bar = foo
1511 EOF
1512 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1513   libc_cv_asm_weak_directive=yes
1514 else
1515   libc_cv_asm_weak_directive=no
1516 fi
1517 rm -f conftest*])
1518
1519 if test $libc_cv_asm_weak_directive = no; then
1520   AC_CACHE_CHECK(for assembler .weakext directive,
1521                  libc_cv_asm_weakext_directive,
1522                  [dnl
1523 cat > conftest.s <<EOF
1524 ${libc_cv_dot_text}
1525 ${libc_cv_asm_global_directive} foo
1526 foo:
1527 .weakext bar foo
1528 .weakext baz
1529 ${libc_cv_asm_global_directive} baz
1530 baz:
1531 EOF
1532   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1533     libc_cv_asm_weakext_directive=yes
1534   else
1535     libc_cv_asm_weakext_directive=no
1536   fi
1537   rm -f conftest*])
1538
1539 fi # no .weak
1540
1541 if test $libc_cv_asm_weak_directive = yes; then
1542   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1543 elif test $libc_cv_asm_weakext_directive = yes; then
1544   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1545 fi
1546
1547 dnl The standard hppa assembler uses `;' to start comments and `!'
1548 dnl as a line separator.  CRIS uses `;' to start comments and `@' for
1549 dnl line separator.
1550 case "${host_cpu}-${host_os}" in
1551   cris*)
1552     libc_cv_asm_line_sep='@'
1553     AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1554     ;;
1555   hppa*linux*)
1556   AC_CACHE_CHECK(for assembler line separator,
1557                  libc_cv_asm_line_sep, [dnl
1558   cat > conftest.s <<EOF
1559  nop ; is_old_puffin
1560 EOF
1561   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1562     libc_cv_asm_line_sep='!'
1563   else
1564     if test -z "$enable_hacker_mode"; then
1565       echo "*** You need a newer assembler to compile glibc"
1566       rm -f conftest*
1567       exit 1
1568     fi
1569     libc_cv_asm_line_sep=';'
1570   fi
1571   rm -f conftest*])
1572   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1573   ;;
1574 esac
1575
1576 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1577 cat > conftest.s <<EOF
1578         .text
1579         .type   func,@function
1580 func:
1581         .cfi_startproc
1582         .cfi_remember_state
1583         .cfi_rel_offset 1, 0
1584         .cfi_endproc
1585 EOF
1586 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1587   libc_cv_asm_cfi_directives=yes
1588 else
1589   libc_cv_asm_cfi_directives=no
1590 fi
1591 rm -f conftest*])
1592 if test $libc_cv_asm_cfi_directives = yes; then
1593   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1594 fi
1595
1596 AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
1597                libc_cv_cpp_asm_debuginfo, [dnl
1598 cat > conftest.S <<EOF
1599 #include "confdefs.h"
1600
1601 /* comment on
1602    two lines */
1603         ${libc_cv_dot_text}
1604         ${libc_cv_asm_global_directive} foo
1605 foo:
1606         /* Unfortunately this test only works for a real instruction,
1607            not for any of the machine-independent pseudo-ops.
1608            So we just have to assume everybody has a "nop".  */
1609         nop
1610         /* comment */
1611         nop
1612         /* comment */
1613         nop
1614 EOF
1615 if AC_TRY_COMMAND([${CC-cc} $CPPFLAGS $ASFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
1616    ac_pattern='conftest\.S'
1617    AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
1618                    grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
1619   libc_cv_cpp_asm_debuginfo=yes
1620 else
1621   libc_cv_cpp_asm_debuginfo=no
1622 fi
1623 rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
1624 if test $libc_cv_cpp_asm_debuginfo = yes; then
1625   AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
1626 fi
1627
1628 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1629 cat > conftest.c <<\EOF
1630 _start () {}
1631 int __eh_pc;
1632 __throw () {}
1633 EOF
1634 dnl No \ in command here because it ends up inside ''.
1635 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1636                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1637                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1638   libc_cv_ld_no_whole_archive=yes
1639 else
1640   libc_cv_ld_no_whole_archive=no
1641 fi
1642 rm -f conftest*])
1643 if test $libc_cv_ld_no_whole_archive = yes; then
1644   no_whole_archive=-Wl,--no-whole-archive
1645 fi
1646 AC_SUBST(no_whole_archive)dnl
1647
1648 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1649 cat > conftest.c <<\EOF
1650 _start () {}
1651 int __eh_pc;
1652 __throw () {}
1653 EOF
1654 dnl No \ in command here because it ends up inside ''.
1655 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1656                             -nostdlib -nostartfiles -fexceptions
1657                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1658   libc_cv_gcc_exceptions=yes
1659 else
1660   libc_cv_gcc_exceptions=no
1661 fi
1662 rm -f conftest*])
1663 if test $libc_cv_gcc_exceptions = yes; then
1664   exceptions=-fexceptions
1665 fi
1666 AC_SUBST(exceptions)dnl
1667
1668 if test "$host_cpu" = powerpc ; then
1669 # Check for a bug present in at least versions 2.8.x of GCC
1670 # and versions 1.0.x of EGCS.
1671 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1672 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1673                libc_cv_c_asmcr0_bug='no',
1674                libc_cv_c_asmcr0_bug='yes')])
1675 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1676   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1677 fi
1678 fi
1679
1680 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1681 [cat > conftest.c <<EOF
1682 #line $LINENO "configure"
1683 static char *__EH_FRAME_BEGIN__;
1684 _start ()
1685 {
1686 #ifdef CHECK__register_frame
1687   __register_frame (__EH_FRAME_BEGIN__);
1688   __deregister_frame (__EH_FRAME_BEGIN__);
1689 #endif
1690 #ifdef CHECK__register_frame_info
1691   __register_frame_info (__EH_FRAME_BEGIN__);
1692   __deregister_frame_info (__EH_FRAME_BEGIN__);
1693 #endif
1694 }
1695 int __eh_pc;
1696 __throw () {}
1697 /* FIXME: this is fragile.  */
1698 malloc () {}
1699 strcmp () {}
1700 strlen () {}
1701 memcpy () {}
1702 memset () {}
1703 free () {}
1704 abort () {}
1705 __bzero () {}
1706 dl_iterate_phdr () {}
1707 EOF
1708 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1709                             $LDFLAGS \
1710                             -nostdlib -nostartfiles -o conftest conftest.c \
1711                             -lgcc"
1712 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1713 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1714    AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1715 then
1716   if $libc_unwind_check -v 2>&1 >/dev/null \
1717      | grep -- --eh-frame-hdr 2>&1 >/dev/null; then
1718     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1719   else
1720     libc_cv_gcc_dwarf2_unwind_info=static
1721   fi
1722 else
1723   libc_cv_gcc_dwarf2_unwind_info=no
1724 fi
1725 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1726   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1727                               $LDFLAGS -nostdlib -nostartfiles
1728                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1729     libc_cv_gcc_dwarf2_unwind_info=yes
1730   else
1731     libc_cv_gcc_dwarf2_unwind_info=no
1732   fi
1733 fi
1734 rm -f conftest*])
1735 case $libc_cv_gcc_dwarf2_unwind_info in
1736 yes)
1737   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1738   ;;
1739 static)
1740   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1741   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1742   ;;
1743 esac
1744
1745 dnl Check whether compiler understands __builtin_expect.
1746 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1747 [cat > conftest.c <<EOF
1748 #line $LINENO "configure"
1749 int foo (int a)
1750 {
1751   a = __builtin_expect (a, 10);
1752   return a == 10 ? 0 : 1;
1753 }
1754 EOF
1755 dnl No \ in command here because it ends up inside ''.
1756 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1757                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1758   libc_cv_gcc_builtin_expect=yes
1759 else
1760   libc_cv_gcc_builtin_expect=no
1761 fi
1762 rm -f conftest*])
1763 if test "$libc_cv_gcc_builtin_expect" = yes; then
1764   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1765 fi
1766
1767 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1768 cat > conftest.c <<\EOF
1769 void zero (void *x)
1770 {
1771   __builtin_memset (x, 0, 1000);
1772 }
1773 EOF
1774 dnl
1775 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1776 then
1777   libc_cv_gcc_builtin_memset=no
1778 else
1779   libc_cv_gcc_builtin_memset=yes
1780 fi
1781 rm -f conftest* ])
1782 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1783   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1784 fi
1785
1786 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1787 cat > conftest.c <<\EOF
1788 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1789 char *foo (const char *a, const char *b)
1790 {
1791   return __builtin_strstr (a, b);
1792 }
1793 EOF
1794 dnl
1795 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1796 then
1797   libc_cv_gcc_builtin_redirection=yes
1798 else
1799   libc_cv_gcc_builtin_redirection=no
1800 fi
1801 rm -f conftest* ])
1802 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1803   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1804 fi
1805
1806 dnl Check whether the compiler supports subtraction of local labels.
1807 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1808 [cat > conftest.c <<EOF
1809 changequote(,)dnl
1810 #line $LINENO "configure"
1811 int foo (int a)
1812 {
1813   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1814   void *p = &&l1 + ar[a];
1815   goto *p;
1816  l1:
1817   return 1;
1818  l2:
1819   return 2;
1820 }
1821 changequote([,])dnl
1822 EOF
1823 dnl No \ in command here because it ends up inside ''.
1824 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1825                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1826   libc_cv_gcc_subtract_local_labels=yes
1827 else
1828   libc_cv_gcc_subtract_local_labels=no
1829 fi
1830 rm -f conftest*])
1831 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1832   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1833 fi
1834
1835 dnl Check whether the compiler supports the __thread keyword.
1836 if test "x$use__thread" != xno; then
1837   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1838   [cat > conftest.c <<\EOF
1839 __thread int a = 42;
1840 EOF
1841   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1842     libc_cv_gcc___thread=yes
1843   else
1844     libc_cv_gcc___thread=no
1845   fi
1846   rm -f conftest*])
1847   if test "$libc_cv_gcc___thread" = yes; then
1848     AC_DEFINE(HAVE___THREAD)
1849   fi
1850 else
1851   libc_cv_gcc___thread=no
1852 fi
1853
1854 if test "$libc_cv_gcc___thread" = yes; then
1855   dnl Check whether the compiler supports the tls_model attribute.
1856   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1857   cat > conftest.c <<\EOF
1858 extern __thread int a __attribute__((tls_model ("initial-exec")));
1859 EOF
1860   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1861     libc_cv_gcc_tls_model_attr=yes
1862   else
1863     libc_cv_gcc_tls_model_attr=no
1864   fi
1865   rm -f conftest*])
1866   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1867     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1868   fi
1869 fi
1870
1871 dnl Check whether we have the gd library available.
1872 AC_MSG_CHECKING(for libgd)
1873 if test "$with_gd" != "no"; then
1874   old_CFLAGS="$CFLAGS"
1875   CFLAGS="$CFLAGS $libgd_include"
1876   old_LDFLAGS="$LDFLAGS"
1877   LDFLAGS="$LDFLAGS $libgd_ldflags"
1878   old_LIBS="$LIBS"
1879   LIBS="$LIBS -lgd -lpng -lz -lm"
1880   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1881   CFLAGS="$old_CFLAGS"
1882   LDFLAGS="$old_LDFLAGS"
1883   LIBS="$old_LIBS"
1884 else
1885   LIBGD=no
1886 fi
1887 AC_MSG_RESULT($LIBGD)
1888 AC_SUBST(LIBGD)
1889
1890 dnl check for the size of 'long double'.
1891 AC_CHECK_SIZEOF(long double, 0)
1892 sizeof_long_double=$ac_cv_sizeof_long_double
1893 AC_SUBST(sizeof_long_double)
1894
1895 ### End of automated tests.
1896 ### Now run sysdeps configure fragments.
1897
1898 # They also can set these variables.
1899 use_ldconfig=no
1900 ldd_rewrite_script=no
1901 libc_cv_sysconfdir=$sysconfdir
1902 libc_cv_gcc_unwind_find_fde=no
1903
1904 # Iterate over all the sysdep directories we will use, running their
1905 # configure fragments, and looking for a uname implementation.
1906 uname=
1907 for dir in $sysnames; do
1908   case $dir in
1909     /*) dest=$dir ;;
1910     *)  dest=$srcdir/$dir ;;
1911   esac
1912   if test -r $dest/configure; then
1913     AC_MSG_RESULT(running configure fragment for $dir)
1914     . $dest/configure
1915   fi
1916 [
1917   if test -z "$uname"; then
1918     if test -r $dest/uname.c ||
1919        test -r $dest/uname.S ||
1920        { test -r $dest/syscalls.list &&
1921          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1922       uname=$dir
1923     fi
1924   fi
1925 ]dnl
1926 done
1927
1928 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1929   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1930 fi
1931 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1932
1933 # If we will use the generic uname implementation, we must figure out what
1934 # it will say by examining the system, and write the results in config-name.h.
1935 if test "$uname" = "sysdeps/generic"; then
1936
1937 changequote(,)dnl
1938   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1939 changequote([,])dnl
1940   if test $uname_sysname != $config_os; then
1941     config_release=`echo $config_os | sed s/$uname_sysname//`
1942   fi
1943 dnl
1944 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1945     if test -r /vmunix; then
1946       kernel_id=`strings /vmunix | grep UNIX`
1947     elif test -r /dynix; then
1948       kernel_id=`strings /dynix | grep DYNIX`
1949     else
1950       kernel_id=
1951     fi
1952 ])dnl
1953
1954   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1955 LIBC_KERNEL_ID
1956 changequote(,)dnl
1957   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1958 changequote([,])dnl
1959   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1960          != x$config_release; then
1961     # The configuration release is a substring of the kernel release.
1962     libc_cv_uname_release=$kernel_release
1963   elif test x$config_release != x; then
1964     libc_cv_uname_release=$config_release
1965   elif test x$kernel_release != x; then
1966     libc_cv_uname_release=$kernel_release
1967   else
1968     libc_cv_uname_release=unknown
1969   fi])
1970   uname_release="$libc_cv_uname_release"
1971
1972   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1973 LIBC_KERNEL_ID
1974 changequote(,)dnl
1975   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1976 changequote([,])dnl
1977   if test -n "$kernel_version"; then
1978     libc_cv_uname_version="$kernel_version"
1979   else
1980     libc_cv_uname_version=unknown
1981   fi])
1982   uname_version="$libc_cv_uname_version"
1983
1984 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1985   config_uname=config-name.h:config-name.in
1986 else
1987   # For non-generic uname, we don't need to create config-name.h at all.
1988   config_uname=
1989 fi
1990
1991 dnl This is tested by existing code and it's simpler to avoid changing it.
1992 AC_DEFINE(USE_IN_LIBIO)
1993
1994 # Test for old glibc 2.0.x headers so that they can be removed properly
1995 # Search only in includedir.
1996 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1997 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1998 then
1999   old_glibc_headers=yes
2000 else
2001   old_glibc_headers=no
2002 fi
2003 AC_MSG_RESULT($old_glibc_headers)
2004 if test ${old_glibc_headers} = yes; then
2005   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2006   AC_MSG_WARN(*** be removed.)
2007 fi
2008 AC_SUBST(old_glibc_headers)
2009
2010 AC_SUBST(libc_cv_slibdir)
2011 AC_SUBST(libc_cv_localedir)
2012 AC_SUBST(libc_cv_sysconfdir)
2013 AC_SUBST(libc_cv_rootsbindir)
2014 AC_SUBST(libc_cv_forced_unwind)
2015
2016 AC_SUBST(use_ldconfig)
2017 AC_SUBST(ldd_rewrite_script)
2018
2019 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
2020 if test $gnu_ld = yes; then
2021   AC_DEFINE(HAVE_GNU_LD)
2022 fi
2023 if test $gnu_as = yes; then
2024   AC_DEFINE(HAVE_GNU_AS)
2025 fi
2026 if test $elf = yes; then
2027   AC_DEFINE(HAVE_ELF)
2028 fi
2029 if test $xcoff = yes; then
2030   AC_DEFINE(HAVE_XCOFF)
2031 fi
2032
2033 AC_SUBST(static)
2034 AC_SUBST(shared)
2035 if test $shared = default; then
2036   if test $gnu_ld = yes; then
2037     shared=$elf
2038   else
2039     # For now we do not assume shared libs are available.  In future more
2040     # tests might become available.
2041     shared=no
2042   fi
2043 fi
2044
2045 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2046 [pic_default=yes
2047 cat > conftest.c <<EOF
2048 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2049 # error PIC is default.
2050 #endif
2051 EOF
2052 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2053   pic_default=no
2054 fi
2055 rm -f conftest.*])
2056 AC_SUBST(pic_default)
2057
2058 AC_SUBST(profile)
2059 AC_SUBST(omitfp)
2060 AC_SUBST(bounded)
2061 AC_SUBST(static_nss)
2062 AC_SUBST(nopic_initfini)
2063
2064 AC_SUBST(DEFINES)
2065
2066 case "$add_ons" in
2067   *door*) linux_doors=yes ;;
2068   *) linux_doors=no ;;
2069 esac
2070 AC_SUBST(linux_doors)
2071
2072 dnl See sysdeps/mach/configure.in for this variable.
2073 AC_SUBST(mach_interface_list)
2074
2075 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2076   config_makefile=
2077 else
2078   config_makefile=Makefile
2079 fi
2080
2081 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2082 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2083 AC_SUBST(VERSION)
2084 AC_SUBST(RELEASE)
2085
2086 AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}])
2087 AC_CONFIG_COMMANDS([default],[[
2088 case $CONFIG_FILES in *config.make*)
2089 echo "$config_vars" >> config.make;;
2090 esac
2091 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2092 AC_OUTPUT