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