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