Update.
[glibc.git] / configure.in
blob6ee1f05ab10738b2c202241b6413b36d3160385d
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION([$CVSid$])
3 AC_PREREQ(2.13)dnl              dnl Minimum Autoconf version required.
4 AC_INIT(include/features.h)
5 AC_CONFIG_HEADER(config.h)
6 AC_CONFIG_AUX_DIR(scripts)
8 # This will get text that should go into config.make.
9 config_vars=
11 # Check for a --with-gmp argument and set gmp-srcdir in config.make.
12 AC_ARG_WITH(gmp, dnl
13   --with-gmp=DIRECTORY    find GMP source code in DIRECTORY (not needed),
14             [dnl
15 case "$with_gmp" in
16 yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
17 ''|no) ;;
18 *) config_vars="$config_vars
19 gmp-srcdir = $withval" ;;
20 esac
22 # Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
23 AC_ARG_WITH(gd, dnl
24   --with-gd=DIR           find libgd include dir and library with prefix DIR,
25             [dnl
26 case "$with_gd" in
27 yes|''|no) ;;
28 *) libgd_include="-I$withval/include"
29    libgd_ldflags="-L$withval/lib" ;;
30 esac
32 AC_ARG_WITH(gd-include, dnl
33   --with-gd-include=DIR   find libgd include files in DIR,
34             [dnl
35 case "$with_gd_include" in
36 ''|no) ;;
37 *) libgd_include="-I$withval" ;;
38 esac
40 AC_ARG_WITH(gd-lib, dnl
41   --with-gd-lib=DIR       find libgd library files in DIR,
42             [dnl
43 case "$with_gd_lib" in
44 ''|no) ;;
45 *) libgd_ldflags="-L$withval" ;;
46 esac
49 if test -n "$libgd_include"; then
50   config_vars="$config_vars
51 CFLAGS-memusagestat.c = $libgd_include"
53 if test -n "$libgd_ldflags"; then
54   config_vars="$config_vars
55 libgd-LDFLAGS = $libgd_ldflags"
58 dnl Arguments to specify presence of other packages/features.
59 AC_ARG_WITH(fp, dnl
60 [  --with-fp              if using floating-point hardware [default=yes]],
61             with_fp=$withval, with_fp=yes)
62 AC_ARG_WITH(binutils, dnl
63   --with-binutils=PATH    specify location of binutils (as and ld),
64             path_binutils=$withval, path_binutils='')
65 AC_ARG_WITH(elf, dnl
66   --with-elf              if using the ELF object format,
67             elf=$withval, elf=no)
68 AC_ARG_WITH(cvs, dnl
69 [  --without-cvs           if CVS should not be used],
70             with_cvs=$withval, with_cvs=yes)
71 if test "$with_cvs" = yes; then
72   if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
73   then
74     with_cvs=no
75   fi
77 AC_SUBST(with_cvs)
79 AC_ARG_WITH(headers, dnl
80 [  --with-headers=PATH     location of system headers to use
81                           [e.g. /usr/src/linux/include]
82                           [default=compiler default]],
83             sysheaders=$withval, sysheaders='')
85 AC_ARG_ENABLE(libio, dnl
86 [  --enable-libio          build in GNU libio instead of GNU stdio],
87               [if test $enableval = yes; then
88                  stdio=libio
89                else
90                  stdio=stdio
91                fi],
92               stdio=default)
94 AC_ARG_ENABLE(sanity-checks, dnl
95 [  --disable-sanity-checks really do not use threads (should not be used
96                           except in special situations) [default=yes]],
97               enable_sanity=$enableval, enable_sanity=yes)
99 dnl Arguments to enable or disable building the static, shared, profiled,
100 dnl and -fomit-frame-pointer libraries.
101 dnl I've disabled this for now since we cannot build glibc without static
102 dnl libraries built in the moment.
103 dnl AC_ARG_ENABLE(static, dnl
104 dnl [  --enable-static         build static library [default=yes]],
105 dnl           static=$enableval, static=yes)
106 static=yes
107 AC_ARG_ENABLE(shared, dnl
108 [  --enable-shared         build shared library [default=yes if GNU ld & ELF]],
109               shared=$enableval, shared=default)
110 AC_ARG_ENABLE(profile, dnl
111 [  --enable-profile        build profiled library [default=yes]],
112               profile=$enableval, profile=yes)
113 AC_ARG_ENABLE(omitfp, dnl
114 [  --enable-omitfp         build undebuggable optimized library [default=no]],
115               omitfp=$enableval, omitfp=no)
116 AC_ARG_ENABLE(bounded, dnl
117 [  --enable-bounded        build with runtime bounds checking [default=no]],
118               bounded=$enableval, bounded=no)
119 AC_ARG_ENABLE(versioning, dnl
120 [  --disable-versioning    do not include versioning information in the
121                           library objects [default=yes if supported]],
122              enable_versioning=$enableval, enable_versioning=yes)
124 AC_ARG_ENABLE(oldest-abi, dnl
125 [  --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
126                           [default=glibc default]],
127             oldest_abi=$enableval, oldest_abi=no)
128 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
129   oldest_abi=default
130 else
131   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
133 AC_SUBST(oldest_abi)
135 dnl Generic infrastructure for drop-in additions to libc.
136 AC_ARG_ENABLE(add-ons, dnl
137 [  --enable-add-ons[=DIR1,DIR2]...
138                           configure and build add-ons in DIR1,DIR2,...
139                           search for add-ons if no parameter given],
140   [case "$enableval" in
141     yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
142          test "$add_ons" = "*" && add_ons= ;;
143     *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
144    esac],
145   [add_ons=])
147 AC_CONFIG_SUBDIRS($add_ons)
148 add_ons_pfx=
149 if test x"$add_ons" != x; then
150   for f in $add_ons; do
151     # Test whether such a subdir really exists.
152     if test -d $srcdir/$f; then
153       add_ons_pfx="$add_ons_pfx $f/"
154     else
155       AC_MSG_ERROR(add-on directory \"$f\" does not exist)
156     fi
157   done
160 dnl On some platforms we cannot use dynamic loading.  We must provide
161 dnl static NSS modules.
162 AC_ARG_ENABLE(static-nss, dnl
163 [  --enable-static-nss     build static NSS modules [default=no]],
164               static_nss=$enableval, static_nss=no)
165 if test x"$static_nss" = xyes; then
166   AC_DEFINE(DO_STATIC_NSS)
169 AC_ARG_ENABLE(force-install,
170 [  --disable-force-install don't force installation of files from this package,
171                           even if they are older than the installed files],
172               force_install=$enableval, force_install=yes)
173 AC_SUBST(force_install)
175 dnl On some platforms we allow dropping compatibility with all kernel
176 dnl versions.
177 AC_ARG_ENABLE(kernel,
178 [  --enable-kernel=VERSION compile for compatibility with kernel not older
179                            than VERSION],
180               minimum_kernel=$enableval)
181 dnl Prevent unreasonable values.
182 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
183   # Better nothing than this.
184   minimum_kernel=""
185 else
186   if test "$minimum_kernel" = current; then
187     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
188   fi
191 dnl For the development we sometimes want gcc to issue even more warnings.
192 dnl This is not the default since many of the extra warnings are not
193 dnl appropriate.
194 AC_ARG_ENABLE(all-warnings,
195 [  --enable-all-warnings   enable all useful warnings gcc can issue],
196               all_warnings=$enableval)
197 AC_SUBST(all_warnings)
199 AC_CANONICAL_HOST
201 # The way shlib-versions is used to generate soversions.mk uses a
202 # fairly simplistic model for name recognition that can't distinguish
203 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
204 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
205 # tell.  This doesn't get used much beyond that, so it's fairly safe.
206 case "$host_os" in
207 linux*)
208   ;;
209 gnu*)
210   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
211   ;;
212 esac
214 # We keep the original values in `$config_*' and never modify them, so we
215 # can write them unchanged into config.make.  Everything else uses
216 # $machine, $vendor, and $os, and changes them whenever convenient.
217 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
219 # Don't allow vendor == "unknown"
220 test "$config_vendor" = unknown && config_vendor=
221 config_os="`echo $config_os | sed 's/^unknown-//'`"
223 # Some configurations imply other options.
224 case "$host_os" in
225 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
226   # These systems always use GNU tools.
227   gnu_ld=yes gnu_as=yes ;;
228 esac
229 case "$host_os" in
230 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
231 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
232   ;;
233 gnu* | linux* | sysv4* | solaris2* | irix6*)
234   # These systems (almost) always use the ELF format.
235   elf=yes
236   ;;
237 esac
239 machine=$config_machine
240 vendor=$config_vendor
241 os=$config_os
243 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
244 # Unify this here.
245 if test "$machine" = rs6000; then
246   machine="powerpc"
250 ### I put this here to prevent those annoying emails from people who cannot
251 ### read and try to compile glibc on unsupported platforms.  --drepper
253 ### By using the undocumented --enable-hacker-mode option for configure
254 ### one can skip this test to make the configuration not fail for unsupported
255 ### platforms.
257 if test -z "$enable_hacker_mode"; then
258   case "$machine-$host_os" in
259   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
260     ;;
261   *)
262     echo "*** The GNU C library is currently not available for this platform."
263     echo "*** So far nobody cared to port it and if there is no volunteer it"
264     echo "*** might never happen.  So, if you have interest to see glibc on"
265     echo "*** this platform visit"
266     echo "***   http://www.gnu.org/software/libc/porting.html"
267     echo "*** and join the group of porters"
268     exit 1
269     ;;
270   esac
273 dnl We need to use [ and ] for other purposes for a while now.
274 changequote(,)dnl
275 # Expand the configuration machine name into a subdirectory by architecture
276 # type and particular chip.
277 case "$machine" in
278 a29k | am29000) base_machine=a29k machine=a29k ;;
279 alpha*)         base_machine=alpha machine=alpha/$machine ;;
280 arm*)           base_machine=arm machine=arm/$machine ;;
281 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
282 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
283 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
284 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
285 i[3456]86)      base_machine=i386 machine=i386/$machine ;;
286 ia64)           base_machine=ia64 machine=ia64 ;;
287 m680?0)         base_machine=m68k machine=m68k/$machine ;;
288 m68k)           base_machine=m68k machine=m68k/m68020 ;;
289 m88???)         base_machine=m88k machine=m88k/$machine ;;
290 m88k)           base_machine=m88k machine=m88k/m88100 ;;
291 mips64*)        base_machine=mips64 machine=mips/mips64/$machine ;;
292 mips*)          base_machine=mips
293                 case "`uname -m`" in
294                 IP22) machine=mips/mips3 ;;
295                 *)    machine=mips/$machine ;;
296                 esac ;;
297 sh3*)           base_machine=sh machine=sh/sh3 ;;
298 sh4*)           base_machine=sh machine=sh/sh4 ;;
299 sparc | sparcv[67])
300                 base_machine=sparc machine=sparc/sparc32 ;;
301 sparcv8 | supersparc | hypersparc)
302                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
303 sparcv8plus | sparcv8plusa | sparcv9)
304                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
305 sparc64 | ultrasparc)
306                 base_machine=sparc machine=sparc/sparc64 ;;
307 esac
308 changequote([,])dnl
309 AC_SUBST(base_machine)
311 if test "$base_machine" = "i386"; then
312   AC_DEFINE(USE_REGPARMS)
315 # Compute the list of sysdep directories for this configuration.
316 # This can take a while to compute.
317 sysdep_dir=$srcdir/sysdeps
318 AC_MSG_CHECKING(sysdep dirs)
319 dnl We need to use [ and ] for other purposes for a while now.
320 changequote(,)dnl
321 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
322 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
324 case "$os" in
325 gnu*)
326   base_os=mach/hurd ;;
327 netbsd* | 386bsd* | freebsd* | bsdi*)
328   base_os=unix/bsd/bsd4.4 ;;
329 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
330   base_os=unix/bsd ;;
331 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
332   base_os=unix/sysv ;;
333 irix6*)
334   base_os=unix/sysv/irix6/$os ;;
335 solaris[2-9]*)
336   base_os=unix/sysv/sysv4 ;;
337 hpux*)
338   base_os=unix/sysv/hpux/$os ;;
339 aix4.3*)
340   base_os=unix/sysv/aix/aix4.3 ;;
341 none)
342   base_os=standalone ;;
344   base_os='' ;;
345 esac
347 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
348 tail=$os
349 ostry=$os
350 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
351   ostry="$ostry /$o"
352   tail=$o
353 done
354 o=`echo $tail | sed 's/[0-9]*$//'`
355 if test $o != $tail; then
356   ostry="$ostry /$o"
358 # For linux-gnu, try linux-gnu, then linux.
359 o=`echo $tail | sed 's/-.*$//'`
360 if test $o != $tail; then
361   ostry="$ostry /$o"
364 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
365 base=
366 tail=$base_os
367 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
368   set $b
369   base="$base /$1"
370   tail="$2"
371 done
373 # For sparc/sparc32, try sparc/sparc32 and then sparc.
374 mach=
375 tail=$machine
376 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
377   set $m
378   # Prepend the machine's FPU directory unless --without-fp.
379   if test "$with_fp" = yes; then
380     mach="$mach /$1/fpu"
381   fi
382   mach="$mach /$1"
383   tail="$2"
384 done
386 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
387 changequote([,])dnl
389 # Find what sysdep directories exist.
390 sysnames=
391 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
392 for d in $add_ons_pfx ''; do
393   for b in $base ''; do
394     for m0 in $mach ''; do
395       for v in /$vendor ''; do
396         test "$v" = / && continue
397         for o in /$ostry ''; do
398           test "$o" = / && continue
399           for m in $mach ''; do
400             if test "$m0$b$v$o$m"; then
401               try="${d}sysdeps$m0$b$v$o$m"
402               test -n "$enable_debug_configure" &&
403               echo "$0 [DEBUG]: try $try" >&2
404               if test -d $srcdir/$try; then
405                 sysnames="$sysnames $try"
406                 { test -n "$o" || test -n "$b"; } && os_used=t
407                 { test -n "$m" || test -n "$m0"; } && machine_used=t
408               fi
409             fi
410           done
411         done
412       done
413     done
414   done
415 done
416 IFS="$ac_save_ifs"
418 if test -z "$os_used" && test "$os" != none; then
419   AC_MSG_ERROR(Operating system $os is not supported.)
421 if test -z "$machine_used" && test "$machine" != none; then
422   AC_MSG_ERROR(The $machine is not supported.)
425 # We have now validated the configuration.
428 # If using ELF, look for an `elf' subdirectory of each machine directory.
429 # We prepend these rather than inserting them whereever the machine appears
430 # because things specified by the machine's ELF ABI should override
431 # OS-specific things, and should always be the same for any OS on the
432 # machine (otherwise what's the point of an ABI?).
433 if test "$elf" = yes; then
434   elf_dirs=
435   for d in $add_ons_pfx ''; do
436     for m in $mach; do
437       if test -d $srcdir/${d}sysdeps$m/elf; then
438         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
439       fi
440     done
441   done
442   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
446 # Expand the list of system names into a full list of directories
447 # from each element's parent name and Implies file (if present).
448 set $sysnames
449 names=
450 while test $# -gt 0; do
451   name=$1
452   shift
454   case " $names " in *" $name "*)
455     # Already in the list.
456     continue
457   esac
459   # Report each name as we discover it, so there is no long pause in output.
460   echo $ac_n "$name $ac_c" >&AC_FD_MSG
462   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
464   case $name in
465     /*) xsrcdir= ;;
466     *)  xsrcdir=$srcdir/ ;;
467   esac
468   test -n "$enable_debug_configure" &&
469   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
471   if test -f $xsrcdir$name/Implies; then
472     # Collect more names from the `Implies' file (removing comments).
473     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
474     implied=
475     for x in $implied_candidate; do
476       if test -d $xsrcdir$name_base/$x; then
477         implied="$implied $name_base/$x";
478       else
479         AC_MSG_WARN($name/Implies specifies nonexistent $x)
480       fi
481     done
482   else
483     implied=
484   fi
486   # Add NAME to the list of names.
487   names="$names $name"
489   # Find the parent of NAME, using the empty string if it has none.
490 changequote(,)dnl
491   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
492 changequote([,])dnl
494   # Add the names implied by NAME, and NAME's parent (if it has one), to
495   # the list of names to be processed (the argument list).  We prepend the
496   # implied names to the list and append the parent.  We want implied
497   # directories to come before further directories inferred from the
498   # configuration components; this ensures that for sysv4, unix/common
499   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
500   # after sysv4).
501   sysnames="`echo $implied $* $parent`"
502   test -n "$sysnames" && set $sysnames
503 done
505 # Add the default directories.
506 default_sysnames=sysdeps/generic
507 if test "$elf" = yes; then
508   default_sysnames="sysdeps/generic/elf $default_sysnames"
510 sysnames="$names $default_sysnames"
511 AC_SUBST(sysnames)
512 # The other names were emitted during the scan.
513 AC_MSG_RESULT($default_sysnames)
516 ### Locate tools.
518 AC_PROG_INSTALL
519 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
520   # The makefiles need to use a different form to find it in $srcdir.
521   INSTALL='\$(..)./scripts/install-sh -c'
523 AC_PROG_LN_S
525 # We need the physical current working directory.  We cannot use the
526 # "pwd -P" shell builtin since that's not portable.  Instead we try to
527 # find a pwd binary.  Note that assigning to the PWD environment
528 # variable might have some interesting side effects, so we don't do
529 # that.
530 AC_PATH_PROG(PWD_P, pwd, no)
531 if test "$PWD_P" = no; then
532   AC_MSG_ERROR(*** A pwd binary could not be found.)
535 # These programs are version sensitive.
536 AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
537 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
538   [version \([egcygnustpi-]*[0-9.]*\)],
539   [*gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*],
540   critic_missing=t)
541 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
542   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
543   [3.79* | 3.[89]*], critic_missing=t)
545 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
546   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
547   [0.[1-9][0-9].* | [1-9].*], MSGFMT=: aux_missing=t)
548 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
549   [GNU texinfo.* \([0-9][0-9.]*\)],
550   [3.1[1-9] | 3.[2-9][0-9] | 4.* | 1.6[89] | 1.7[0-9]], MAKEINFO=: aux_missing=t)
551 AC_CHECK_PROG_VER(SED, gsed sed, --version,
552   [GNU sed version \([0-9]*\.[0-9.]*\)],
553   [3.0[2-9]*|3.[1-9]*|[4-9]*], SED=: aux_missing=t)
555 if test -n "$critic_missing"; then
556 AC_MSG_ERROR([
557 *** Some critical program is missing or too old.
558 *** Check the INSTALL file for required versions.])
561 test -n "$aux_missing" && AC_MSG_WARN([
562 *** An auxiliary program is missing or too old;
563 *** some features will be disabled.
564 *** Check the INSTALL file for required versions.])
566 # glibcbug.in wants to know the compiler version.
567 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
568 AC_SUBST(CCVERSION)
570 AC_PROG_CC_LOCAL
571 AC_CANONICAL_BUILD
572 if test $host != $build; then
573   AC_CHECK_PROGS(BUILD_CC, gcc cc)
575 AC_SUBST(cross_compiling)
576 AC_PROG_CPP
577 LIBC_PROG_BINUTILS
578 AC_CHECK_TOOL(MIG, mig)
580 # if using special system headers, find out the compiler's sekrit
581 # header directory and add that to the list.  NOTE: Only does the right
582 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
583 if test -n "$sysheaders"; then
584   ccheaders=`$CC -print-file-name=include`
585   SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
587 AC_SUBST(SYSINCLUDES)
589 # check if ranlib is necessary
590 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
591 cat > conftest.c <<EOF
592 int a;
593 char b;
594 void c(void) {}
596 $CC $CFLAGS -c conftest.c
597 $AR cr conftest.a conftest.c
598 cp conftest.a conftest2.a
599 $RANLIB conftest.a
600 if cmp -s conftest.a conftest2.a; then
601   libc_cv_ranlib_necessary=no
602 else
603   libc_cv_ranlib_necessary=yes
605 rm -rf conftest*])
606 if test "$libc_cv_ranlib_necessary" = no; then
607  RANLIB=:
610 # Test if LD_LIBRARY_PATH contains the notation for the current directory
611 # since this would lead to problems installing/building glibc.
612 # LD_LIBRARY_PATH contains the current directory if one of the following
613 # is true:
614 # - one of the terminals (":" and ";") is the first or last sign
615 # - two terminals occur directly after each other
616 # - the path contains an element with a dot in it
617 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
618 changequote(,)dnl
619 case ${LD_LIBRARY_PATH} in
620   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
621     ld_library_path_setting="contains current directory"
622     ;;
623   *)
624     ld_library_path_setting="ok"
625     ;;
626 esac
627 changequote([,])dnl
628 AC_MSG_RESULT($ld_library_path_setting)
629 if test "$ld_library_path_setting" != "ok"; then
630 AC_MSG_ERROR([
631 *** LD_LIBRARY_PATH shouldn't contain the current directory when
632 *** building glibc. Please change the environment variable
633 *** and run configure again.])
636 AC_PATH_PROG(BASH, bash, no)
637 if test "$BASH" != no &&
638    $BASH -c 'test "$BASH_VERSINFO" \
639              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
640   libc_cv_have_bash2=yes
641 else
642   libc_cv_have_bash2=no
644 AC_SUBST(libc_cv_have_bash2)
646 dnl We need a ksh compatible shell for tzselect.
647 if test "$BASH" = no; then
648   AC_PATH_PROG(KSH, ksh, no)
649   if test "$KSH" = no; then
650     libc_cv_have_ksh=no
651   else
652     libc_cv_have_ksh=yes
653   fi
654 else
655   KSH="$BASH"
656   AC_SUBST(KSH)
657   libc_cv_have_ksh=yes
659 AC_SUBST(libc_cv_have_ksh)
661 AC_PROG_AWK
662 AC_PATH_PROG(PERL, perl, no)
663 if test "$PERL" != no &&
664    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
665   PERL=no
667 AC_PATH_PROG(INSTALL_INFO, install-info, no,
668              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
669 if test "$INSTALL_INFO" != "no"; then
670 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
671  [mkdir conftest.d
672   # There is a hard ^_ on the next line.  I am open to better ideas.
673   (echo '\x1f'
674   echo 'File: dir       Node: Top       This is the top of the INFO tree'
675   echo '* Menu:') >conftest.d/dir
676   (echo 'INFO-DIR-SECTION i-d-s works'
677   echo 'START-INFO-DIR-ENTRY'
678   echo '* Prog: (prog).   Program.'
679   echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
680   if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
681   then
682     if grep -s 'i-d-s works' conftest.d/dir >/dev/null
683     then libc_cv_old_debian_install_info=no
684     else libc_cv_old_debian_install_info=yes
685     fi
686   else libc_cv_old_debian_install_info=no testfailed=t
687   fi
688   rm -fr conftest.d])
689 if test -n "$testfailed"
690 then AC_MSG_WARN([install-info errored out, check config.log])
692 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
694 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
696 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
697 echo '#include <stddef.h>
698 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
699 if eval "$ac_cpp conftest.c 2>/dev/null" \
700 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
701   libc_cv_signed_size_t=no
702 else
703   libc_cv_signed_size_t=yes
705 rm -f conftest*])
706 if test $libc_cv_signed_size_t = yes; then
707   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
708   cat >> confdefs.h <<\EOF
709 #undef __SIZE_TYPE__
710 #define __SIZE_TYPE__ unsigned
714 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
715 AC_TRY_COMPILE(dnl
716 [#define __need_size_t
717 #define __need_wchar_t
718 #include <stddef.h>
719 #define __need_NULL
720 #include <stddef.h>], [size_t size; wchar_t wchar;
721 #ifdef offsetof
722 #error stddef.h ignored __need_*
723 #endif
724 if (&size == NULL || &wchar == NULL) abort ();],
725                libc_cv_friendly_stddef=yes,
726                libc_cv_friendly_stddef=no)])
727 if test $libc_cv_friendly_stddef = yes; then
728   config_vars="$config_vars
729 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
732 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
733                libc_cv_need_minus_P, [dnl
734 cat > conftest.S <<EOF
735 #include "confdefs.h"
736 /* Nothing whatsoever.  */
738 if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
739   libc_cv_need_minus_P=no
740 else
741   libc_cv_need_minus_P=yes
743 rm -f conftest*])
744 if test $libc_cv_need_minus_P = yes; then
745   config_vars="$config_vars
746 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
749 AC_MSG_CHECKING(whether .text pseudo-op must be used)
750 AC_CACHE_VAL(libc_cv_dot_text, [dnl
751 cat > conftest.s <<EOF
752 .text
754 libc_cv_dot_text=
755 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
756   libc_cv_dot_text=.text
758 rm -f conftest*])
759 if test -z "$libc_cv_dot_text"; then
760   AC_MSG_RESULT(no)
761 else
762   AC_MSG_RESULT(yes)
765 AC_CACHE_CHECK(for assembler global-symbol directive,
766                libc_cv_asm_global_directive, [dnl
767 libc_cv_asm_global_directive=UNKNOWN
768 for ac_globl in .globl .global .EXPORT; do
769   cat > conftest.s <<EOF
770         ${libc_cv_dot_text}
771         ${ac_globl} foo
772 foo:
774   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
775     libc_cv_asm_global_directive=${ac_globl}
776   fi
777   rm -f conftest*
778   test $libc_cv_asm_global_directive != UNKNOWN && break
779 done])
780 if test $libc_cv_asm_global_directive = UNKNOWN; then
781   AC_MSG_ERROR(cannot determine asm global directive)
782 else
783   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
786 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
787 cat > conftest.s <<EOF
788 ${libc_cv_dot_text}
789 foo:
790 .set glibc_conftest_frobozz,foo
791 $libc_cv_asm_global_directive glibc_conftest_frobozz
793 # The alpha-dec-osf1 assembler gives only a warning for `.set'
794 # (but it doesn't work), so we must do a linking check to be sure.
795 cat > conftest1.c <<\EOF
796 extern int glibc_conftest_frobozz;
797 main () { printf ("%d\n", glibc_conftest_frobozz); }
799 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
800             -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
801   libc_cv_asm_set_directive=yes
802 else
803   libc_cv_asm_set_directive=no
805 rm -f conftest*])
806 if test $libc_cv_asm_set_directive = yes; then
807   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
810 # The Aix ld uses global .symbol_names instead of symbol_names.
811 case "$os" in
812 aix4.3*)
813   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
814 esac
816 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
817 [cat > conftest.s <<EOF
818 ${libc_cv_dot_text}
819 _sym:
820 .symver _sym,sym@VERS
822 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
823   libc_cv_asm_symver_directive=yes
824 else
825   libc_cv_asm_symver_directive=no
827 rm -f conftest*])
828 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
829 if test $libc_cv_asm_symver_directive = yes; then
830   cat > conftest.s <<EOF
831 ${libc_cv_dot_text}
832 _sym:
833 .symver _sym,sym@VERS
835   cat > conftest.map <<EOF
836 VERS_1 {
837         global: sym;
840 VERS_2 {
841         global: sym;
842 } VERS_1;
844   if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
845     if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
846                                         -nostartfiles -nostdlib
847                                         -Wl,--version-script,conftest.map
848                        1>&AC_FD_CC]);
849     then
850       libc_cv_ld_version_script_option=yes
851     else
852       libc_cv_ld_version_script_option=no
853     fi
854   else
855     libc_cv_ld_version_script_option=no
856   fi
857 else
858   libc_cv_ld_version_script_option=no
860 rm -f conftest*])
861 if test $shared != no &&
862    test $libc_cv_asm_symver_directive = yes &&
863    test $libc_cv_ld_version_script_option = yes &&
864    test $enable_versioning = yes; then
865   VERSIONING=yes
866   AC_DEFINE(DO_VERSIONING)
867 else
868   VERSIONING=no
870 AC_SUBST(VERSIONING)
872 if test $shared != no && test $VERSIONING = no; then
873   echo "\
874 *** WARNING: You should not compile GNU libc without versioning. Not using
875 *** versioning will introduce incompatibilities so that old binaries
876 *** will not run anymore.
877 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
879 if test $elf = yes; then
880   AC_CACHE_CHECK(for .previous assembler directive,
881                  libc_cv_asm_previous_directive, [dnl
882   cat > conftest.s <<EOF
883 .section foo_section
884 .previous
886   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
887     libc_cv_asm_previous_directive=yes
888   else
889     libc_cv_asm_previous_directive=no
890   fi
891   rm -f conftest*])
892   if test $libc_cv_asm_previous_directive = yes; then
893     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
894   else
895     AC_CACHE_CHECK(for .popsection assembler directive,
896                    libc_cv_asm_popsection_directive, [dnl
897     cat > conftest.s <<EOF
898 .pushsection foo_section
899 .popsection
901     if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
902       libc_cv_asm_popsection_directive=yes
903     else
904       libc_cv_asm_popsection_directive=no
905     fi
906     rm -f conftest*])
907     if test $libc_cv_asm_popsection_directive = yes; then
908       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
909     fi
910   fi
911   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
912                  libc_cv_asm_protected_directive, [dnl
913   cat > conftest.s <<EOF
914 .protected foo
915 foo:
916 .hidden bar
917 bar:
919   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
920     libc_cv_asm_protected_directive=yes
921   else
922     libc_cv_asm_protected_directive=no
923   fi
924   rm -f conftest*])
925   AC_SUBST(libc_cv_asm_protected_directive)
927   AC_CACHE_CHECK(for -z nodelete option,
928                  libc_cv_z_nodelete, [dnl
929   cat > conftest.c <<EOF
930 int _start (void) { return 42; }
932   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
933   then
934     libc_cv_z_nodelete=yes
935   else
936     libc_cv_z_nodelete=no
937   fi
938   rm -f conftest*])
939   AC_SUBST(libc_cv_z_nodelete)
941   AC_CACHE_CHECK(for -z nodlopen option,
942                  libc_cv_z_nodlopen, [dnl
943   cat > conftest.c <<EOF
944 int _start (void) { return 42; }
946   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
947   then
948     libc_cv_z_nodlopen=yes
949   else
950     libc_cv_z_nodlopen=no
951   fi
952   rm -f conftest*])
953   AC_SUBST(libc_cv_z_nodlopen)
956 if test $elf != yes; then
957   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
958                  [AC_TRY_COMPILE(, [asm (".section .init");
959                                     asm (".section .fini");
960                                     asm ("${libc_cv_dot_text}");],
961                                  libc_cv_have_initfini=yes,
962                                  libc_cv_have_initfini=no)])
963   AC_SUBST(libc_cv_have_initfini)dnl
964   if test $libc_cv_have_initfini = yes; then
965     AC_DEFINE(HAVE_INITFINI)
966   fi
969 if test $elf = yes -a $gnu_ld = yes; then
970   AC_CACHE_CHECK(whether cc puts quotes around section names,
971                  libc_cv_have_section_quotes,
972                  [cat > conftest.c <<EOF
973                   static const int foo
974                   __attribute__ ((section ("bar"))) = 1;
976                   if ${CC-cc} -S conftest.c -o conftest.s; then
977                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
978                       libc_cv_have_section_quotes=yes
979                     else
980                       libc_cv_have_section_quotes=no
981                     fi
982                   else
983                     libc_cv_have_section_quotes=unknown
984                   fi
985                   rm -f conftest.[cs]
986                  ])
987   if test $libc_cv_have_section_quotes = yes; then
988     AC_DEFINE(HAVE_SECTION_QUOTES)
989   fi
992 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
993 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
994 [cat > conftest.$ac_ext <<EOF
995 dnl This sometimes fails to find confdefs.h, for some reason.
996 dnl [#]line __oline__ "[$]0"
997 [#]line __oline__ "configure"
998 #include "confdefs.h"
999 void underscore_test(void) {
1000 return; }
1002 if AC_TRY_EVAL(ac_compile); then
1003   if grep _underscore_test conftest* >/dev/null; then
1004     ifelse([$1], , :, [rm -f conftest*
1005     $1])
1006   else
1007     ifelse([$2], , , [rm -f conftest*
1008     $2])
1009   fi
1010 else
1011   echo "configure: failed program was:" >&AC_FD_CC
1012   cat conftest.$ac_ext >&AC_FD_CC
1013   ifelse([$2], , , [rm -f conftest*
1014   $2])
1016 rm -f conftest*])
1018 if test $elf = yes; then
1019   libc_cv_asm_underscores=no
1020 else
1021   if test $ac_cv_prog_cc_works = yes; then
1022     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1023                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1024                                 libc_cv_asm_underscores=yes,
1025                                 libc_cv_asm_underscores=no)])
1026   else
1027     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1028                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1029                                             libc_cv_asm_underscores=no)])
1030   fi
1032 if test $libc_cv_asm_underscores = no; then
1033   AC_DEFINE(NO_UNDERSCORES)
1036 if test $elf = yes; then
1037   libc_cv_weak_symbols=yes
1040 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1041                [dnl
1042 cat > conftest.s <<EOF
1043 ${libc_cv_dot_text}
1044 ${libc_cv_asm_global_directive} foo
1045 foo:
1046 .weak foo
1047 .weak bar; bar = foo
1049 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1050   libc_cv_asm_weak_directive=yes
1051 else
1052   libc_cv_asm_weak_directive=no
1054 rm -f conftest*])
1056 if test $libc_cv_asm_weak_directive = no; then
1057   AC_CACHE_CHECK(for assembler .weakext directive,
1058                  libc_cv_asm_weakext_directive,
1059                  [dnl
1060 cat > conftest.s <<EOF
1061 ${libc_cv_dot_text}
1062 ${libc_cv_asm_global_directive} foo
1063 foo:
1064 .weakext bar foo
1065 .weakext baz
1066 ${libc_cv_asm_global_directive} baz
1067 baz:
1069   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1070     libc_cv_asm_weakext_directive=yes
1071   else
1072     libc_cv_asm_weakext_directive=no
1073   fi
1074   rm -f conftest*])
1076 fi # no .weak
1078 if test $libc_cv_asm_weak_directive = yes; then
1079   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1080 elif test $libc_cv_asm_weakext_directive = yes; then
1081   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1084 dnl The standard hppa assembler uses `;' to start comments and `!'
1085 dnl as a line separator.
1086 case "${host_cpu}-${host_os}" in
1087   hppa*linux*)
1088   AC_CACHE_CHECK(for assembler line separator,
1089                  libc_cv_asm_line_sep, [dnl
1090   cat > conftest.s <<EOF
1091  nop ; is_old_puffin
1093   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1094     libc_cv_asm_line_sep='!'
1095   else
1096     if test -z "$enable_hacker_mode"; then
1097       echo "*** You need a newer assembler to compile glibc"
1098       rm -f conftest*
1099       exit 1
1100     fi
1101     libc_cv_asm_line_sep=';'
1102   fi
1103   rm -f conftest*])
1104   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1105   ;;
1106 esac
1108 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1109 cat > conftest.c <<\EOF
1110 _start () {}
1111 int __eh_pc;
1112 __throw () {}
1114 dnl No \ in command here because it ends up inside ''.
1115 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1116                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1117                             -o conftest conftest.c 1>&AC_FD_CC]); then
1118   libc_cv_ld_no_whole_archive=yes
1119 else
1120   libc_cv_ld_no_whole_archive=no
1122 rm -f conftest*])
1123 if test $libc_cv_ld_no_whole_archive = yes; then
1124   no_whole_archive=-Wl,--no-whole-archive
1126 AC_SUBST(no_whole_archive)dnl
1128 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1129 cat > conftest.c <<\EOF
1130 _start () {}
1131 int __eh_pc;
1132 __throw () {}
1134 dnl No \ in command here because it ends up inside ''.
1135 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1136                             -nostdlib -nostartfiles -fexceptions
1137                             -o conftest conftest.c 1>&AC_FD_CC]); then
1138   libc_cv_gcc_exceptions=yes
1139 else
1140   libc_cv_gcc_exceptions=no
1142 rm -f conftest*])
1143 if test $libc_cv_gcc_exceptions = yes; then
1144   exceptions=-fexceptions
1146 AC_SUBST(exceptions)dnl
1148 if test "$base_machine" = alpha ; then
1149 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1150 cat > conftest.c <<\EOF
1151 foo () { }
1154 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1155 then
1156   libc_cv_gcc_alpha_ng_prefix=yes
1157 else
1158   libc_cv_gcc_alpha_ng_prefix=no
1160 rm -f conftest* ])
1161 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1162   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1163 else
1164   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1168 if test "$host_cpu" = powerpc ; then
1169 # Check for a bug present in at least versions 2.8.x of GCC
1170 # and versions 1.0.x of EGCS.
1171 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1172 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1173                libc_cv_c_asmcr0_bug='no',
1174                libc_cv_c_asmcr0_bug='yes')])
1175 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1176   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1180 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1181 [cat > conftest.c <<EOF
1182 #line __oline__ "configure"
1183 static char __EH_FRAME_BEGIN__[];
1184 _start ()
1186 #ifdef CHECK__register_frame
1187   __register_frame (__EH_FRAME_BEGIN__);
1188   __deregister_frame (__EH_FRAME_BEGIN__);
1189 #endif
1190 #ifdef CHECK__register_frame_info
1191   __register_frame_info (__EH_FRAME_BEGIN__);
1192   __deregister_frame_info (__EH_FRAME_BEGIN__);
1193 #endif
1195 int __eh_pc;
1196 __throw () {}
1197 /* FIXME: this is fragile.  */
1198 malloc () {}
1199 strcmp () {}
1200 strlen () {}
1201 memcpy () {}
1202 memset () {}
1203 free () {}
1204 abort () {}
1205 __bzero () {}
1207 dnl No \ in command here because it ends up inside ''.
1208 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1209                             -nostdlib -nostartfiles
1210                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1211   libc_cv_gcc_dwarf2_unwind_info=static
1212 else
1213   libc_cv_gcc_dwarf2_unwind_info=no
1215 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1216   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1217                               -nostdlib -nostartfiles
1218                               -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1219     libc_cv_gcc_dwarf2_unwind_info=yes
1220   else
1221     libc_cv_gcc_dwarf2_unwind_info=no
1222   fi
1224 rm -f conftest*])
1225 case $libc_cv_gcc_dwarf2_unwind_info in
1226 yes)
1227   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1228   ;;
1229 static)
1230   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1231   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1232   ;;
1233 esac
1235 dnl Check whether compiler understands __builtin_expect.
1236 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1237 [cat > conftest.c <<EOF
1238 #line __oline__ "configure"
1239 int foo (int a)
1241   a = __builtin_expect (a, 10);
1242   return a == 10 ? 0 : 1;
1245 dnl No \ in command here because it ends up inside ''.
1246 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1247                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1248   libc_cv_gcc_builtin_expect=yes
1249 else
1250   libc_cv_gcc_builtin_expect=no
1252 rm -f conftest*])
1253 if test "$libc_cv_gcc_builtin_expect" = yes; then
1254   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1257 dnl Check whether the compiler supports subtraction of local labels.
1258 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1259 [cat > conftest.c <<EOF
1260 changequote(,)dnl
1261 #line __oline__ "configure"
1262 int foo (int a)
1264   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1265   void *p = &&l1 + ar[a];
1266   goto *p;
1267  l1:
1268   return 1;
1269  l2:
1270   return 2;
1272 changequote([,])dnl
1274 dnl No \ in command here because it ends up inside ''.
1275 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1276                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1277   libc_cv_gcc_subtract_local_labels=yes
1278 else
1279   libc_cv_gcc_subtract_local_labels=no
1281 rm -f conftest*])
1282 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1283   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1286 dnl Check whether we have the gd library available.
1287 AC_MSG_CHECKING(for libgd)
1288 old_CFLAGS="$CFLAGS"
1289 CFLAGS="$CFLAGS $libgd_include"
1290 old_LDFLAGS="$LDFLAGS"
1291 LDFLAGS="$LDFLAGS $libgd_ldflags"
1292 old_LIBS="$LIBS"
1293 LIBS="$LIBS -lgd -lpng -lz -lm"
1294 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1295 CFLAGS="$old_CFLAGS"
1296 LDFLAGS="$old_LDFLAGS"
1297 LIBS="$old_LIBS"
1298 AC_MSG_RESULT($LIBGD)
1299 AC_SUBST(LIBGD)
1301 dnl check for the size of 'long double'.
1302 AC_CHECK_SIZEOF(long double, 0)
1303 sizeof_long_double=$ac_cv_sizeof_long_double
1304 AC_SUBST(sizeof_long_double)
1306 ### End of automated tests.
1307 ### Now run sysdeps configure fragments.
1309 # sysdeps configure fragments may set these with files to be linked below.
1310 libc_link_dests=
1311 libc_link_sources=
1313 # They also can set these variables.
1314 use_ldconfig=no
1315 ldd_rewrite_script=no
1317 # Iterate over all the sysdep directories we will use, running their
1318 # configure fragments, and looking for a uname implementation.
1319 uname=
1320 for dir in $sysnames; do
1321   case $dir in
1322     /*) dest=$dir ;;
1323     *)  dest=$srcdir/$dir ;;
1324   esac
1325   if test -r $dest/configure; then
1326     AC_MSG_RESULT(running configure fragment for $dest)
1327     . $dest/configure
1328   fi
1330   if test -z "$uname"; then
1331     if test -r $dest/uname.c ||
1332        test -r $dest/uname.S ||
1333        { test -r $dest/syscalls.list &&
1334          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1335       uname=$dir
1336     fi
1337   fi
1338 ]dnl
1339 done
1341 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1343 # If we will use the generic uname implementation, we must figure out what
1344 # it will say by examining the system, and write the results in config-name.h.
1345 if test "$uname" = "sysdeps/generic"; then
1347 changequote(,)dnl
1348   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1349 changequote([,])dnl
1350   if test $uname_sysname != $config_os; then
1351     config_release=`echo $config_os | sed s/$uname_sysname//`
1352   fi
1354 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1355     if test -r /vmunix; then
1356       kernel_id=`strings /vmunix | grep UNIX`
1357     elif test -r /dynix; then
1358       kernel_id=`strings /dynix | grep DYNIX`
1359     else
1360       kernel_id=
1361     fi
1362 ])dnl
1364   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1365 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1366 changequote(,)dnl
1367   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1368 changequote([,])dnl
1369   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1370          != x$config_release; then
1371     # The configuration release is a substring of the kernel release.
1372     libc_cv_uname_release=$kernel_release
1373   elif test x$config_release != x; then
1374     libc_cv_uname_release=$config_release
1375   elif test x$kernel_release != x; then
1376     libc_cv_uname_release=$kernel_release
1377   else
1378     libc_cv_uname_release=unknown
1379   fi])
1380   uname_release="$libc_cv_uname_release"
1382   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1383 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1384 changequote(,)dnl
1385   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1386 changequote([,])dnl
1387   if test -n "$kernel_version"; then
1388     libc_cv_uname_version="$kernel_version"
1389   else
1390     libc_cv_uname_version=unknown
1391   fi])
1392   uname_version="$libc_cv_uname_version"
1394 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1395   config_uname=config-name.h:config-name.in
1396 else
1397   # For non-generic uname, we don't need to create config-name.h at all.
1398   config_uname=
1401 AC_MSG_CHECKING(stdio selection)
1402 AC_SUBST(stdio)
1403 case $stdio in
1404 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1405 default) stdio=stdio ;;
1406 esac
1407 AC_MSG_RESULT($stdio)
1409 # Test for old glibc 2.0.x headers so that they can be removed properly
1410 # Search only in includedir.
1411 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1412 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1413 then
1414   old_glibc_headers=yes
1415 else
1416   old_glibc_headers=no
1418 AC_MSG_RESULT($old_glibc_headers)
1419 if test ${old_glibc_headers} = yes; then
1420   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1421   AC_MSG_WARN(*** be removed.)
1423 AC_SUBST(old_glibc_headers)
1425 AC_SUBST(libc_cv_slibdir)
1426 AC_SUBST(libc_cv_localedir)
1427 AC_SUBST(libc_cv_sysconfdir)
1428 AC_SUBST(libc_cv_rootsbindir)
1430 AC_SUBST(use_ldconfig)
1431 AC_SUBST(ldd_rewrite_script)
1433 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
1434 if test $gnu_ld = yes; then
1435   AC_DEFINE(HAVE_GNU_LD)
1437 if test $gnu_as = yes; then
1438   AC_DEFINE(HAVE_GNU_AS)
1440 if test $elf = yes; then
1441   AC_DEFINE(HAVE_ELF)
1444 AC_SUBST(static)
1445 AC_SUBST(shared)
1446 if test $shared = default; then
1447   if test $gnu_ld = yes; then
1448     shared=$elf
1449   else
1450     # For now we do not assume shared libs are available.  In future more
1451     # tests might become available.
1452     shared=no
1453   fi
1456 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1457 [pic_default=yes
1458 cat > conftest.c <<EOF
1459 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1460 # error PIC is default.
1461 #endif
1463 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1464   pic_default=no
1466 rm -f conftest.*])
1467 AC_SUBST(pic_default)
1469 AC_SUBST(profile)
1470 AC_SUBST(omitfp)
1471 AC_SUBST(bounded)
1472 AC_SUBST(static_nss)
1473 AC_SUBST(nopic_initfini)
1475 AC_SUBST(DEFINES)
1477 case "$add_ons" in
1478   *door*) linux_doors=yes ;;
1479   *) linux_doors=no ;;
1480 esac
1481 AC_SUBST(linux_doors)
1483 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1484   config_makefile=
1485 else
1486   config_makefile=Makefile
1489 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1490 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1491 AC_SUBST(VERSION)
1492 AC_SUBST(RELEASE)
1494 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1495 case $CONFIG_FILES in *config.make*)
1496 echo "$config_vars" >> config.make;;
1497 esac
1498 test -d bits || mkdir bits], [config_vars='$config_vars'])