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