Update.
[glibc.git] / configure.in
blob2b2faa4ba5d6301fee25277c8d2f1476c0707d96
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     # Some sanity checks
152     if test "$f" = "crypt"; then
153       AC_MSG_ERROR([
154 *** It seems that you're using an old \`crypt' add-on.  crypt is now
155 *** part of glibc and using the old add-on will not work with this
156 *** release.  Start again with fresh sources and without the old
157 *** \`crypt' add-on.])
158     fi
159     if test "$f" = "localedata"; then
160       AC_MSG_ERROR([
161 *** It seems that you're using an old \`localedata' add-on.  localedata
162 *** is now part of glibc and using the old add-on will not work with
163 *** this release.  Start again with fresh sources and without the old
164 *** \`localedata' add-on.])
165     fi
166     # Test whether such a subdir really exists.
167     if test -d $srcdir/$f; then
168       add_ons_pfx="$add_ons_pfx $f/"
169     else
170       AC_MSG_ERROR(add-on directory \"$f\" does not exist)
171     fi
172   done
175 dnl On some platforms we cannot use dynamic loading.  We must provide
176 dnl static NSS modules.
177 AC_ARG_ENABLE(static-nss, dnl
178 [  --enable-static-nss     build static NSS modules [default=no]],
179               static_nss=$enableval, static_nss=no)
180 if test x"$static_nss" = xyes; then
181   AC_DEFINE(DO_STATIC_NSS)
184 AC_ARG_ENABLE(force-install,
185 [  --disable-force-install don't force installation of files from this package,
186                           even if they are older than the installed files],
187               force_install=$enableval, force_install=yes)
188 AC_SUBST(force_install)
190 dnl On some platforms we allow dropping compatibility with all kernel
191 dnl versions.
192 AC_ARG_ENABLE(kernel,
193 [  --enable-kernel=VERSION compile for compatibility with kernel not older
194                            than VERSION],
195               minimum_kernel=$enableval)
196 dnl Prevent unreasonable values.
197 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
198   # Better nothing than this.
199   minimum_kernel=""
200 else
201   if test "$minimum_kernel" = current; then
202     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
203   fi
206 dnl For the development we sometimes want gcc to issue even more warnings.
207 dnl This is not the default since many of the extra warnings are not
208 dnl appropriate.
209 AC_ARG_ENABLE(all-warnings,
210 [  --enable-all-warnings   enable all useful warnings gcc can issue],
211               all_warnings=$enableval)
212 AC_SUBST(all_warnings)
214 AC_CANONICAL_HOST
216 # The way shlib-versions is used to generate soversions.mk uses a
217 # fairly simplistic model for name recognition that can't distinguish
218 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
219 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
220 # tell.  This doesn't get used much beyond that, so it's fairly safe.
221 case "$host_os" in
222 linux*)
223   ;;
224 gnu*)
225   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
226   ;;
227 esac
229 # We keep the original values in `$config_*' and never modify them, so we
230 # can write them unchanged into config.make.  Everything else uses
231 # $machine, $vendor, and $os, and changes them whenever convenient.
232 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
234 # Don't allow vendor == "unknown"
235 test "$config_vendor" = unknown && config_vendor=
236 config_os="`echo $config_os | sed 's/^unknown-//'`"
238 # Some configurations imply other options.
239 case "$host_os" in
240 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
241   # These systems always use GNU tools.
242   gnu_ld=yes gnu_as=yes ;;
243 esac
244 case "$host_os" in
245 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
246 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
247   ;;
248 gnu* | linux* | sysv4* | solaris2* | irix6*)
249   # These systems (almost) always use the ELF format.
250   elf=yes
251   ;;
252 esac
254 machine=$config_machine
255 vendor=$config_vendor
256 os=$config_os
258 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
259 # Unify this here.
260 if test "$machine" = rs6000; then
261   machine="powerpc"
265 ### I put this here to prevent those annoying emails from people who cannot
266 ### read and try to compile glibc on unsupported platforms.  --drepper
268 ### By using the undocumented --enable-hacker-mode option for configure
269 ### one can skip this test to make the configuration not fail for unsupported
270 ### platforms.
272 if test -z "$enable_hacker_mode"; then
273   case "$machine-$host_os" in
274   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
275     ;;
276   *)
277     echo "*** The GNU C library is currently not available for this platform."
278     echo "*** So far nobody cared to port it and if there is no volunteer it"
279     echo "*** might never happen.  So, if you have interest to see glibc on"
280     echo "*** this platform visit"
281     echo "***   http://www.gnu.org/software/libc/porting.html"
282     echo "*** and join the group of porters"
283     exit 1
284     ;;
285   esac
288 dnl We need to use [ and ] for other purposes for a while now.
289 changequote(,)dnl
290 # Expand the configuration machine name into a subdirectory by architecture
291 # type and particular chip.
292 case "$machine" in
293 a29k | am29000) base_machine=a29k machine=a29k ;;
294 alpha*)         base_machine=alpha machine=alpha/$machine ;;
295 arm*)           base_machine=arm machine=arm/arm32/$machine ;;
296 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
297 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
298 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
299 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
300 i[3456]86)      base_machine=i386 machine=i386/$machine ;;
301 ia64)           base_machine=ia64 machine=ia64 ;;
302 m680?0)         base_machine=m68k machine=m68k/$machine ;;
303 m68k)           base_machine=m68k machine=m68k/m68020 ;;
304 m88???)         base_machine=m88k machine=m88k/$machine ;;
305 m88k)           base_machine=m88k machine=m88k/m88100 ;;
306 mips64*)        base_machine=mips64 machine=mips/mips64/$machine ;;
307 mips*)          base_machine=mips
308                 case "`uname -m`" in
309                 IP22) machine=mips/mips3 ;;
310                 *)    machine=mips/$machine ;;
311                 esac ;;
312 sh3*)           base_machine=sh machine=sh/sh3 ;;
313 sh4*)           base_machine=sh machine=sh/sh4 ;;
314 sparc | sparcv[67])
315                 base_machine=sparc machine=sparc/sparc32 ;;
316 sparcv8 | supersparc | hypersparc)
317                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
318 sparcv8plus | sparcv8plusa | sparcv9)
319                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
320 sparc64 | ultrasparc)
321                 base_machine=sparc machine=sparc/sparc64 ;;
322 thumb*)         base_machine=thumb machine=arm/thumb/$machine ;;
323 esac
324 changequote([,])dnl
325 AC_SUBST(base_machine)
327 if test "$base_machine" = "i386"; then
328   AC_DEFINE(USE_REGPARMS)
331 # Compute the list of sysdep directories for this configuration.
332 # This can take a while to compute.
333 sysdep_dir=$srcdir/sysdeps
334 AC_MSG_CHECKING(sysdep dirs)
335 dnl We need to use [ and ] for other purposes for a while now.
336 changequote(,)dnl
337 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
338 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
340 case "$os" in
341 gnu*)
342   base_os=mach/hurd ;;
343 netbsd* | 386bsd* | freebsd* | bsdi*)
344   base_os=unix/bsd/bsd4.4 ;;
345 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
346   base_os=unix/bsd ;;
347 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
348   base_os=unix/sysv ;;
349 irix6*)
350   base_os=unix/sysv/irix6/$os ;;
351 solaris[2-9]*)
352   base_os=unix/sysv/sysv4 ;;
353 hpux*)
354   base_os=unix/sysv/hpux/$os ;;
355 aix4.3*)
356   base_os=unix/sysv/aix/aix4.3 ;;
357 none)
358   base_os=standalone ;;
360   base_os='' ;;
361 esac
363 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
364 tail=$os
365 ostry=$os
366 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
367   ostry="$ostry /$o"
368   tail=$o
369 done
370 o=`echo $tail | sed 's/[0-9]*$//'`
371 if test $o != $tail; then
372   ostry="$ostry /$o"
374 # For linux-gnu, try linux-gnu, then linux.
375 o=`echo $tail | sed 's/-.*$//'`
376 if test $o != $tail; then
377   ostry="$ostry /$o"
380 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
381 base=
382 tail=$base_os
383 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
384   set $b
385   base="$base /$1"
386   tail="$2"
387 done
389 # For sparc/sparc32, try sparc/sparc32 and then sparc.
390 mach=
391 tail=$machine
392 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
393   set $m
394   # Prepend the machine's FPU directory unless --without-fp.
395   if test "$with_fp" = yes; then
396     mach="$mach /$1/fpu"
397   fi
398   mach="$mach /$1"
399   tail="$2"
400 done
402 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
403 changequote([,])dnl
405 # Find what sysdep directories exist.
406 sysnames=
407 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
408 for d in $add_ons_pfx ''; do
409   for b in $base ''; do
410     for m0 in $mach ''; do
411       for v in /$vendor ''; do
412         test "$v" = / && continue
413         for o in /$ostry ''; do
414           test "$o" = / && continue
415           for m in $mach ''; do
416             if test "$m0$b$v$o$m"; then
417               try="${d}sysdeps$m0$b$v$o$m"
418               test -n "$enable_debug_configure" &&
419               echo "$0 [DEBUG]: try $try" >&2
420               if test -d $srcdir/$try; then
421                 sysnames="$sysnames $try"
422                 { test -n "$o" || test -n "$b"; } && os_used=t
423                 { test -n "$m" || test -n "$m0"; } && machine_used=t
424               fi
425             fi
426           done
427         done
428       done
429     done
430   done
431 done
432 IFS="$ac_save_ifs"
434 if test -z "$os_used" && test "$os" != none; then
435   AC_MSG_ERROR(Operating system $os is not supported.)
437 if test -z "$machine_used" && test "$machine" != none; then
438   AC_MSG_ERROR(The $machine is not supported.)
441 # We have now validated the configuration.
444 # If using ELF, look for an `elf' subdirectory of each machine directory.
445 # We prepend these rather than inserting them whereever the machine appears
446 # because things specified by the machine's ELF ABI should override
447 # OS-specific things, and should always be the same for any OS on the
448 # machine (otherwise what's the point of an ABI?).
449 if test "$elf" = yes; then
450   elf_dirs=
451   for d in $add_ons_pfx ''; do
452     for m in $mach; do
453       if test -d $srcdir/${d}sysdeps$m/elf; then
454         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
455       fi
456     done
457   done
458   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
462 # Expand the list of system names into a full list of directories
463 # from each element's parent name and Implies file (if present).
464 set $sysnames
465 names=
466 while test $# -gt 0; do
467   name=$1
468   shift
470   case " $names " in *" $name "*)
471     # Already in the list.
472     continue
473   esac
475   # Report each name as we discover it, so there is no long pause in output.
476   echo $ac_n "$name $ac_c" >&AC_FD_MSG
478   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
480   case $name in
481     /*) xsrcdir= ;;
482     *)  xsrcdir=$srcdir/ ;;
483   esac
484   test -n "$enable_debug_configure" &&
485   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
487   if test -f $xsrcdir$name/Implies; then
488     # Collect more names from the `Implies' file (removing comments).
489     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
490     implied=
491     for x in $implied_candidate; do
492       if test -d $xsrcdir$name_base/$x; then
493         implied="$implied $name_base/$x";
494       else
495         AC_MSG_WARN($name/Implies specifies nonexistent $x)
496       fi
497     done
498   else
499     implied=
500   fi
502   # Add NAME to the list of names.
503   names="$names $name"
505   # Find the parent of NAME, using the empty string if it has none.
506 changequote(,)dnl
507   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
508 changequote([,])dnl
510   # Add the names implied by NAME, and NAME's parent (if it has one), to
511   # the list of names to be processed (the argument list).  We prepend the
512   # implied names to the list and append the parent.  We want implied
513   # directories to come before further directories inferred from the
514   # configuration components; this ensures that for sysv4, unix/common
515   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
516   # after sysv4).
517   sysnames="`echo $implied $* $parent`"
518   test -n "$sysnames" && set $sysnames
519 done
521 # Add the default directories.
522 default_sysnames=sysdeps/generic
523 if test "$elf" = yes; then
524   default_sysnames="sysdeps/generic/elf $default_sysnames"
526 sysnames="$names $default_sysnames"
527 AC_SUBST(sysnames)
528 # The other names were emitted during the scan.
529 AC_MSG_RESULT($default_sysnames)
532 ### Locate tools.
534 AC_PROG_INSTALL
535 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
536   # The makefiles need to use a different form to find it in $srcdir.
537   INSTALL='\$(..)./scripts/install-sh -c'
539 AC_PROG_LN_S
541 # We need the physical current working directory.  We cannot use the
542 # "pwd -P" shell builtin since that's not portable.  Instead we try to
543 # find a pwd binary.  Note that assigning to the PWD environment
544 # variable might have some interesting side effects, so we don't do
545 # that.
546 AC_PATH_PROG(PWD_P, pwd, no)
547 if test "$PWD_P" = no; then
548   AC_MSG_ERROR(*** A pwd binary could not be found.)
551 # These programs are version sensitive.
552 AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
553 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
554   [version \([egcygnustpi-]*[0-9.]*\)],
555   [*gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*],
556   critic_missing=t)
557 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
558   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
559   [3.79* | 3.[89]*], critic_missing=t)
561 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
562   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
563   [0.[1-9][0-9].* | [1-9].*], MSGFMT=: aux_missing=t)
564 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
565   [GNU texinfo.* \([0-9][0-9.]*\)],
566   [4.*], MAKEINFO=: aux_missing=t)
567 AC_CHECK_PROG_VER(SED, gsed sed, --version,
568   [GNU sed version \([0-9]*\.[0-9.]*\)],
569   [3.0[2-9]*|3.[1-9]*|[4-9]*], SED=: aux_missing=t)
571 AC_PROG_CC_LOCAL
572 AC_CANONICAL_BUILD
573 if test $host != $build; then
574   AC_CHECK_PROGS(BUILD_CC, gcc cc)
576 AC_SUBST(cross_compiling)
577 AC_PROG_CPP
578 LIBC_PROG_BINUTILS
579 AC_CHECK_TOOL(MIG, mig)
581 # Accept binutils 2.10.1 or newer (and also any ia64 2.9 version)
582 # XXX Commented out because it filters out too many good versions.
583 # XXX --drepper
584 # AC_CHECK_PROG_VER(AS, $AS, --version,
585 #   [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)],
586 #   [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t)
588 if test -n "$critic_missing"; then
589 AC_MSG_ERROR([
590 *** Some critical program is missing or too old.
591 *** Check the INSTALL file for required versions.])
594 test -n "$aux_missing" && AC_MSG_WARN([
595 *** An auxiliary program is missing or too old;
596 *** some features will be disabled.
597 *** Check the INSTALL file for required versions.])
599 # glibcbug.in wants to know the compiler version.
600 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
601 AC_SUBST(CCVERSION)
603 # if using special system headers, find out the compiler's sekrit
604 # header directory and add that to the list.  NOTE: Only does the right
605 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
606 if test -n "$sysheaders"; then
607   ccheaders=`$CC -print-file-name=include`
608   SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
610 AC_SUBST(SYSINCLUDES)
612 # check if ranlib is necessary
613 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
614 cat > conftest.c <<EOF
615 int a;
616 char b;
617 void c(void) {}
619 $CC $CFLAGS -c conftest.c
620 $AR cr conftest.a conftest.c
621 cp conftest.a conftest2.a
622 $RANLIB conftest.a
623 if cmp -s conftest.a conftest2.a; then
624   libc_cv_ranlib_necessary=no
625 else
626   libc_cv_ranlib_necessary=yes
628 rm -rf conftest*])
629 if test "$libc_cv_ranlib_necessary" = no; then
630  RANLIB=:
633 # Test if LD_LIBRARY_PATH contains the notation for the current directory
634 # since this would lead to problems installing/building glibc.
635 # LD_LIBRARY_PATH contains the current directory if one of the following
636 # is true:
637 # - one of the terminals (":" and ";") is the first or last sign
638 # - two terminals occur directly after each other
639 # - the path contains an element with a dot in it
640 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
641 changequote(,)dnl
642 case ${LD_LIBRARY_PATH} in
643   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
644     ld_library_path_setting="contains current directory"
645     ;;
646   *)
647     ld_library_path_setting="ok"
648     ;;
649 esac
650 changequote([,])dnl
651 AC_MSG_RESULT($ld_library_path_setting)
652 if test "$ld_library_path_setting" != "ok"; then
653 AC_MSG_ERROR([
654 *** LD_LIBRARY_PATH shouldn't contain the current directory when
655 *** building glibc. Please change the environment variable
656 *** and run configure again.])
659 AC_PATH_PROG(BASH, bash, no)
660 if test "$BASH" != no &&
661    $BASH -c 'test "$BASH_VERSINFO" \
662              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
663   libc_cv_have_bash2=yes
664 else
665   libc_cv_have_bash2=no
667 AC_SUBST(libc_cv_have_bash2)
669 dnl We need a ksh compatible shell for tzselect.
670 if test "$BASH" = no; then
671   AC_PATH_PROG(KSH, ksh, no)
672   if test "$KSH" = no; then
673     libc_cv_have_ksh=no
674   else
675     libc_cv_have_ksh=yes
676   fi
677 else
678   KSH="$BASH"
679   AC_SUBST(KSH)
680   libc_cv_have_ksh=yes
682 AC_SUBST(libc_cv_have_ksh)
684 AC_PROG_AWK
685 AC_PATH_PROG(PERL, perl, no)
686 if test "$PERL" != no &&
687    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
688   PERL=no
690 AC_PATH_PROG(INSTALL_INFO, install-info, no,
691              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
692 if test "$INSTALL_INFO" != "no"; then
693 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
694  [mkdir conftest.d
695   # There is a hard ^_ on the next line.  I am open to better ideas.
696   (echo '\x1f'
697   echo 'File: dir       Node: Top       This is the top of the INFO tree'
698   echo '* Menu:') >conftest.d/dir
699   (echo 'INFO-DIR-SECTION i-d-s works'
700   echo 'START-INFO-DIR-ENTRY'
701   echo '* Prog: (prog).   Program.'
702   echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
703   if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
704   then
705     if grep -s 'i-d-s works' conftest.d/dir >/dev/null
706     then libc_cv_old_debian_install_info=no
707     else libc_cv_old_debian_install_info=yes
708     fi
709   else libc_cv_old_debian_install_info=no testfailed=t
710   fi
711   rm -fr conftest.d])
712 if test -n "$testfailed"
713 then AC_MSG_WARN([install-info errored out, check config.log])
715 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
717 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
719 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
721 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
722 echo '#include <stddef.h>
723 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
724 if eval "$ac_cpp conftest.c 2>/dev/null" \
725 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
726   libc_cv_signed_size_t=no
727 else
728   libc_cv_signed_size_t=yes
730 rm -f conftest*])
731 if test $libc_cv_signed_size_t = yes; then
732   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
733   cat >> confdefs.h <<\EOF
734 #undef __SIZE_TYPE__
735 #define __SIZE_TYPE__ unsigned
739 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
740 AC_TRY_COMPILE(dnl
741 [#define __need_size_t
742 #define __need_wchar_t
743 #include <stddef.h>
744 #define __need_NULL
745 #include <stddef.h>], [size_t size; wchar_t wchar;
746 #ifdef offsetof
747 #error stddef.h ignored __need_*
748 #endif
749 if (&size == NULL || &wchar == NULL) abort ();],
750                libc_cv_friendly_stddef=yes,
751                libc_cv_friendly_stddef=no)])
752 if test $libc_cv_friendly_stddef = yes; then
753   config_vars="$config_vars
754 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
757 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
758                libc_cv_need_minus_P, [dnl
759 cat > conftest.S <<EOF
760 #include "confdefs.h"
761 /* Nothing whatsoever.  */
763 if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
764   libc_cv_need_minus_P=no
765 else
766   libc_cv_need_minus_P=yes
768 rm -f conftest*])
769 if test $libc_cv_need_minus_P = yes; then
770   config_vars="$config_vars
771 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
774 AC_MSG_CHECKING(whether .text pseudo-op must be used)
775 AC_CACHE_VAL(libc_cv_dot_text, [dnl
776 cat > conftest.s <<EOF
777 .text
779 libc_cv_dot_text=
780 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
781   libc_cv_dot_text=.text
783 rm -f conftest*])
784 if test -z "$libc_cv_dot_text"; then
785   AC_MSG_RESULT(no)
786 else
787   AC_MSG_RESULT(yes)
790 AC_CACHE_CHECK(for assembler global-symbol directive,
791                libc_cv_asm_global_directive, [dnl
792 libc_cv_asm_global_directive=UNKNOWN
793 for ac_globl in .globl .global .EXPORT; do
794   cat > conftest.s <<EOF
795         ${libc_cv_dot_text}
796         ${ac_globl} foo
797 foo:
799   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
800     libc_cv_asm_global_directive=${ac_globl}
801   fi
802   rm -f conftest*
803   test $libc_cv_asm_global_directive != UNKNOWN && break
804 done])
805 if test $libc_cv_asm_global_directive = UNKNOWN; then
806   AC_MSG_ERROR(cannot determine asm global directive)
807 else
808   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
811 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
812 cat > conftest.s <<EOF
813 ${libc_cv_dot_text}
814 foo:
815 .set glibc_conftest_frobozz,foo
816 $libc_cv_asm_global_directive glibc_conftest_frobozz
818 # The alpha-dec-osf1 assembler gives only a warning for `.set'
819 # (but it doesn't work), so we must do a linking check to be sure.
820 cat > conftest1.c <<\EOF
821 extern int glibc_conftest_frobozz;
822 main () { printf ("%d\n", glibc_conftest_frobozz); }
824 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
825             -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
826   libc_cv_asm_set_directive=yes
827 else
828   libc_cv_asm_set_directive=no
830 rm -f conftest*])
831 if test $libc_cv_asm_set_directive = yes; then
832   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
835 # The Aix ld uses global .symbol_names instead of symbol_names.
836 case "$os" in
837 aix4.3*)
838   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
839 esac
841 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
842 [cat > conftest.s <<EOF
843 ${libc_cv_dot_text}
844 _sym:
845 .symver _sym,sym@VERS
847 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
848   libc_cv_asm_symver_directive=yes
849 else
850   libc_cv_asm_symver_directive=no
852 rm -f conftest*])
853 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
854 if test $libc_cv_asm_symver_directive = yes; then
855   cat > conftest.s <<EOF
856 ${libc_cv_dot_text}
857 _sym:
858 .symver _sym,sym@VERS
860   cat > conftest.map <<EOF
861 VERS_1 {
862         global: sym;
865 VERS_2 {
866         global: sym;
867 } VERS_1;
869   if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
870     if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
871                                         -nostartfiles -nostdlib
872                                         -Wl,--version-script,conftest.map
873                        1>&AC_FD_CC]);
874     then
875       libc_cv_ld_version_script_option=yes
876     else
877       libc_cv_ld_version_script_option=no
878     fi
879   else
880     libc_cv_ld_version_script_option=no
881   fi
882 else
883   libc_cv_ld_version_script_option=no
885 rm -f conftest*])
886 if test $shared != no &&
887    test $libc_cv_asm_symver_directive = yes &&
888    test $libc_cv_ld_version_script_option = yes &&
889    test $enable_versioning = yes; then
890   VERSIONING=yes
891   AC_DEFINE(DO_VERSIONING)
892 else
893   VERSIONING=no
895 AC_SUBST(VERSIONING)
897 if test $shared != no && test $VERSIONING = no; then
898   echo "\
899 *** WARNING: You should not compile GNU libc without versioning. Not using
900 *** versioning will introduce incompatibilities so that old binaries
901 *** will not run anymore.
902 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
904 if test $elf = yes; then
905   AC_CACHE_CHECK(for .previous assembler directive,
906                  libc_cv_asm_previous_directive, [dnl
907   cat > conftest.s <<EOF
908 .section foo_section
909 .previous
911   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
912     libc_cv_asm_previous_directive=yes
913   else
914     libc_cv_asm_previous_directive=no
915   fi
916   rm -f conftest*])
917   if test $libc_cv_asm_previous_directive = yes; then
918     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
919   else
920     AC_CACHE_CHECK(for .popsection assembler directive,
921                    libc_cv_asm_popsection_directive, [dnl
922     cat > conftest.s <<EOF
923 .pushsection foo_section
924 .popsection
926     if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
927       libc_cv_asm_popsection_directive=yes
928     else
929       libc_cv_asm_popsection_directive=no
930     fi
931     rm -f conftest*])
932     if test $libc_cv_asm_popsection_directive = yes; then
933       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
934     fi
935   fi
936   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
937                  libc_cv_asm_protected_directive, [dnl
938   cat > conftest.s <<EOF
939 .protected foo
940 foo:
941 .hidden bar
942 bar:
944   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
945     libc_cv_asm_protected_directive=yes
946   else
947     libc_cv_asm_protected_directive=no
948   fi
949   rm -f conftest*])
950   AC_SUBST(libc_cv_asm_protected_directive)
952   AC_CACHE_CHECK(for -z nodelete option,
953                  libc_cv_z_nodelete, [dnl
954   cat > conftest.c <<EOF
955 int _start (void) { return 42; }
957   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
958   then
959     libc_cv_z_nodelete=yes
960   else
961     libc_cv_z_nodelete=no
962   fi
963   rm -f conftest*])
964   AC_SUBST(libc_cv_z_nodelete)
966   AC_CACHE_CHECK(for -z nodlopen option,
967                  libc_cv_z_nodlopen, [dnl
968   cat > conftest.c <<EOF
969 int _start (void) { return 42; }
971   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
972   then
973     libc_cv_z_nodlopen=yes
974   else
975     libc_cv_z_nodlopen=no
976   fi
977   rm -f conftest*])
978   AC_SUBST(libc_cv_z_nodlopen)
980   AC_CACHE_CHECK(for -z initfirst option,
981                  libc_cv_z_initfirst, [dnl
982   cat > conftest.c <<EOF
983 int _start (void) { return 42; }
985   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC])
986   then
987     libc_cv_z_initfirst=yes
988   else
989     libc_cv_z_initfirst=no
990   fi
991   rm -f conftest*])
992   AC_SUBST(libc_cv_z_initfirst)
995 if test $elf != yes; then
996   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
997                  [AC_TRY_COMPILE(, [asm (".section .init");
998                                     asm (".section .fini");
999                                     asm ("${libc_cv_dot_text}");],
1000                                  libc_cv_have_initfini=yes,
1001                                  libc_cv_have_initfini=no)])
1002   AC_SUBST(libc_cv_have_initfini)dnl
1003   if test $libc_cv_have_initfini = yes; then
1004     AC_DEFINE(HAVE_INITFINI)
1005   fi
1008 if test $elf = yes -a $gnu_ld = yes; then
1009   AC_CACHE_CHECK(whether cc puts quotes around section names,
1010                  libc_cv_have_section_quotes,
1011                  [cat > conftest.c <<EOF
1012                   static const int foo
1013                   __attribute__ ((section ("bar"))) = 1;
1015                   if ${CC-cc} -S conftest.c -o conftest.s; then
1016                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1017                       libc_cv_have_section_quotes=yes
1018                     else
1019                       libc_cv_have_section_quotes=no
1020                     fi
1021                   else
1022                     libc_cv_have_section_quotes=unknown
1023                   fi
1024                   rm -f conftest.[cs]
1025                  ])
1026   if test $libc_cv_have_section_quotes = yes; then
1027     AC_DEFINE(HAVE_SECTION_QUOTES)
1028   fi
1031 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1032 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1033 [cat > conftest.$ac_ext <<EOF
1034 dnl This sometimes fails to find confdefs.h, for some reason.
1035 dnl [#]line __oline__ "[$]0"
1036 [#]line __oline__ "configure"
1037 #include "confdefs.h"
1038 void underscore_test(void) {
1039 return; }
1041 if AC_TRY_EVAL(ac_compile); then
1042   if grep _underscore_test conftest* >/dev/null; then
1043     ifelse([$1], , :, [rm -f conftest*
1044     $1])
1045   else
1046     ifelse([$2], , , [rm -f conftest*
1047     $2])
1048   fi
1049 else
1050   echo "configure: failed program was:" >&AC_FD_CC
1051   cat conftest.$ac_ext >&AC_FD_CC
1052   ifelse([$2], , , [rm -f conftest*
1053   $2])
1055 rm -f conftest*])
1057 if test $elf = yes; then
1058   libc_cv_asm_underscores=no
1059 else
1060   if test $ac_cv_prog_cc_works = yes; then
1061     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1062                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1063                                 libc_cv_asm_underscores=yes,
1064                                 libc_cv_asm_underscores=no)])
1065   else
1066     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1067                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1068                                             libc_cv_asm_underscores=no)])
1069   fi
1071 if test $libc_cv_asm_underscores = no; then
1072   AC_DEFINE(NO_UNDERSCORES)
1075 if test $elf = yes; then
1076   libc_cv_weak_symbols=yes
1079 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1080                [dnl
1081 cat > conftest.s <<EOF
1082 ${libc_cv_dot_text}
1083 ${libc_cv_asm_global_directive} foo
1084 foo:
1085 .weak foo
1086 .weak bar; bar = foo
1088 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1089   libc_cv_asm_weak_directive=yes
1090 else
1091   libc_cv_asm_weak_directive=no
1093 rm -f conftest*])
1095 if test $libc_cv_asm_weak_directive = no; then
1096   AC_CACHE_CHECK(for assembler .weakext directive,
1097                  libc_cv_asm_weakext_directive,
1098                  [dnl
1099 cat > conftest.s <<EOF
1100 ${libc_cv_dot_text}
1101 ${libc_cv_asm_global_directive} foo
1102 foo:
1103 .weakext bar foo
1104 .weakext baz
1105 ${libc_cv_asm_global_directive} baz
1106 baz:
1108   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1109     libc_cv_asm_weakext_directive=yes
1110   else
1111     libc_cv_asm_weakext_directive=no
1112   fi
1113   rm -f conftest*])
1115 fi # no .weak
1117 if test $libc_cv_asm_weak_directive = yes; then
1118   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1119 elif test $libc_cv_asm_weakext_directive = yes; then
1120   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1123 dnl The standard hppa assembler uses `;' to start comments and `!'
1124 dnl as a line separator.
1125 case "${host_cpu}-${host_os}" in
1126   hppa*linux*)
1127   AC_CACHE_CHECK(for assembler line separator,
1128                  libc_cv_asm_line_sep, [dnl
1129   cat > conftest.s <<EOF
1130  nop ; is_old_puffin
1132   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1133     libc_cv_asm_line_sep='!'
1134   else
1135     if test -z "$enable_hacker_mode"; then
1136       echo "*** You need a newer assembler to compile glibc"
1137       rm -f conftest*
1138       exit 1
1139     fi
1140     libc_cv_asm_line_sep=';'
1141   fi
1142   rm -f conftest*])
1143   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1144   ;;
1145 esac
1147 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1148 cat > conftest.c <<\EOF
1149 _start () {}
1150 int __eh_pc;
1151 __throw () {}
1153 dnl No \ in command here because it ends up inside ''.
1154 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1155                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1156                             -o conftest conftest.c 1>&AC_FD_CC]); then
1157   libc_cv_ld_no_whole_archive=yes
1158 else
1159   libc_cv_ld_no_whole_archive=no
1161 rm -f conftest*])
1162 if test $libc_cv_ld_no_whole_archive = yes; then
1163   no_whole_archive=-Wl,--no-whole-archive
1165 AC_SUBST(no_whole_archive)dnl
1167 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1168 cat > conftest.c <<\EOF
1169 _start () {}
1170 int __eh_pc;
1171 __throw () {}
1173 dnl No \ in command here because it ends up inside ''.
1174 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1175                             -nostdlib -nostartfiles -fexceptions
1176                             -o conftest conftest.c 1>&AC_FD_CC]); then
1177   libc_cv_gcc_exceptions=yes
1178 else
1179   libc_cv_gcc_exceptions=no
1181 rm -f conftest*])
1182 if test $libc_cv_gcc_exceptions = yes; then
1183   exceptions=-fexceptions
1185 AC_SUBST(exceptions)dnl
1187 if test "$base_machine" = alpha ; then
1188 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1189 cat > conftest.c <<\EOF
1190 foo () { }
1193 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1194 then
1195   libc_cv_gcc_alpha_ng_prefix=yes
1196 else
1197   libc_cv_gcc_alpha_ng_prefix=no
1199 rm -f conftest* ])
1200 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1201   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1202 else
1203   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1207 if test "$host_cpu" = powerpc ; then
1208 # Check for a bug present in at least versions 2.8.x of GCC
1209 # and versions 1.0.x of EGCS.
1210 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1211 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1212                libc_cv_c_asmcr0_bug='no',
1213                libc_cv_c_asmcr0_bug='yes')])
1214 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1215   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1219 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1220 [cat > conftest.c <<EOF
1221 #line __oline__ "configure"
1222 static char __EH_FRAME_BEGIN__[];
1223 _start ()
1225 #ifdef CHECK__register_frame
1226   __register_frame (__EH_FRAME_BEGIN__);
1227   __deregister_frame (__EH_FRAME_BEGIN__);
1228 #endif
1229 #ifdef CHECK__register_frame_info
1230   __register_frame_info (__EH_FRAME_BEGIN__);
1231   __deregister_frame_info (__EH_FRAME_BEGIN__);
1232 #endif
1234 int __eh_pc;
1235 __throw () {}
1236 /* FIXME: this is fragile.  */
1237 malloc () {}
1238 strcmp () {}
1239 strlen () {}
1240 memcpy () {}
1241 memset () {}
1242 free () {}
1243 abort () {}
1244 __bzero () {}
1246 dnl No \ in command here because it ends up inside ''.
1247 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1248                             -nostdlib -nostartfiles
1249                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1250   libc_cv_gcc_dwarf2_unwind_info=static
1251 else
1252   libc_cv_gcc_dwarf2_unwind_info=no
1254 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1255   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1256                               -nostdlib -nostartfiles
1257                               -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1258     libc_cv_gcc_dwarf2_unwind_info=yes
1259   else
1260     libc_cv_gcc_dwarf2_unwind_info=no
1261   fi
1263 rm -f conftest*])
1264 case $libc_cv_gcc_dwarf2_unwind_info in
1265 yes)
1266   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1267   ;;
1268 static)
1269   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1270   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1271   ;;
1272 esac
1274 dnl Check whether compiler understands __builtin_expect.
1275 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1276 [cat > conftest.c <<EOF
1277 #line __oline__ "configure"
1278 int foo (int a)
1280   a = __builtin_expect (a, 10);
1281   return a == 10 ? 0 : 1;
1284 dnl No \ in command here because it ends up inside ''.
1285 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1286                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1287   libc_cv_gcc_builtin_expect=yes
1288 else
1289   libc_cv_gcc_builtin_expect=no
1291 rm -f conftest*])
1292 if test "$libc_cv_gcc_builtin_expect" = yes; then
1293   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1296 dnl Check whether the compiler supports subtraction of local labels.
1297 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1298 [cat > conftest.c <<EOF
1299 changequote(,)dnl
1300 #line __oline__ "configure"
1301 int foo (int a)
1303   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1304   void *p = &&l1 + ar[a];
1305   goto *p;
1306  l1:
1307   return 1;
1308  l2:
1309   return 2;
1311 changequote([,])dnl
1313 dnl No \ in command here because it ends up inside ''.
1314 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1315                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1316   libc_cv_gcc_subtract_local_labels=yes
1317 else
1318   libc_cv_gcc_subtract_local_labels=no
1320 rm -f conftest*])
1321 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1322   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1325 dnl Check whether we have the gd library available.
1326 AC_MSG_CHECKING(for libgd)
1327 if test "$with_gd" != "no"; then
1328   old_CFLAGS="$CFLAGS"
1329   CFLAGS="$CFLAGS $libgd_include"
1330   old_LDFLAGS="$LDFLAGS"
1331   LDFLAGS="$LDFLAGS $libgd_ldflags"
1332   old_LIBS="$LIBS"
1333   LIBS="$LIBS -lgd -lpng -lz -lm"
1334   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1335   CFLAGS="$old_CFLAGS"
1336   LDFLAGS="$old_LDFLAGS"
1337   LIBS="$old_LIBS"
1338 else
1339   LIBGD=no
1341 AC_MSG_RESULT($LIBGD)
1342 AC_SUBST(LIBGD)
1344 dnl check for the size of 'long double'.
1345 AC_CHECK_SIZEOF(long double, 0)
1346 sizeof_long_double=$ac_cv_sizeof_long_double
1347 AC_SUBST(sizeof_long_double)
1349 ### End of automated tests.
1350 ### Now run sysdeps configure fragments.
1352 # sysdeps configure fragments may set these with files to be linked below.
1353 libc_link_dests=
1354 libc_link_sources=
1356 # They also can set these variables.
1357 use_ldconfig=no
1358 ldd_rewrite_script=no
1360 # Iterate over all the sysdep directories we will use, running their
1361 # configure fragments, and looking for a uname implementation.
1362 uname=
1363 for dir in $sysnames; do
1364   case $dir in
1365     /*) dest=$dir ;;
1366     *)  dest=$srcdir/$dir ;;
1367   esac
1368   if test -r $dest/configure; then
1369     AC_MSG_RESULT(running configure fragment for $dest)
1370     . $dest/configure
1371   fi
1373   if test -z "$uname"; then
1374     if test -r $dest/uname.c ||
1375        test -r $dest/uname.S ||
1376        { test -r $dest/syscalls.list &&
1377          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1378       uname=$dir
1379     fi
1380   fi
1381 ]dnl
1382 done
1384 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1386 # If we will use the generic uname implementation, we must figure out what
1387 # it will say by examining the system, and write the results in config-name.h.
1388 if test "$uname" = "sysdeps/generic"; then
1390 changequote(,)dnl
1391   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1392 changequote([,])dnl
1393   if test $uname_sysname != $config_os; then
1394     config_release=`echo $config_os | sed s/$uname_sysname//`
1395   fi
1397 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1398     if test -r /vmunix; then
1399       kernel_id=`strings /vmunix | grep UNIX`
1400     elif test -r /dynix; then
1401       kernel_id=`strings /dynix | grep DYNIX`
1402     else
1403       kernel_id=
1404     fi
1405 ])dnl
1407   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1408 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1409 changequote(,)dnl
1410   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1411 changequote([,])dnl
1412   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1413          != x$config_release; then
1414     # The configuration release is a substring of the kernel release.
1415     libc_cv_uname_release=$kernel_release
1416   elif test x$config_release != x; then
1417     libc_cv_uname_release=$config_release
1418   elif test x$kernel_release != x; then
1419     libc_cv_uname_release=$kernel_release
1420   else
1421     libc_cv_uname_release=unknown
1422   fi])
1423   uname_release="$libc_cv_uname_release"
1425   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1426 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1427 changequote(,)dnl
1428   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1429 changequote([,])dnl
1430   if test -n "$kernel_version"; then
1431     libc_cv_uname_version="$kernel_version"
1432   else
1433     libc_cv_uname_version=unknown
1434   fi])
1435   uname_version="$libc_cv_uname_version"
1437 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1438   config_uname=config-name.h:config-name.in
1439 else
1440   # For non-generic uname, we don't need to create config-name.h at all.
1441   config_uname=
1444 AC_MSG_CHECKING(stdio selection)
1445 AC_SUBST(stdio)
1446 case $stdio in
1447 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1448 default) stdio=stdio ;;
1449 esac
1450 AC_MSG_RESULT($stdio)
1452 # Test for old glibc 2.0.x headers so that they can be removed properly
1453 # Search only in includedir.
1454 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1455 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1456 then
1457   old_glibc_headers=yes
1458 else
1459   old_glibc_headers=no
1461 AC_MSG_RESULT($old_glibc_headers)
1462 if test ${old_glibc_headers} = yes; then
1463   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1464   AC_MSG_WARN(*** be removed.)
1466 AC_SUBST(old_glibc_headers)
1468 AC_SUBST(libc_cv_slibdir)
1469 AC_SUBST(libc_cv_localedir)
1470 AC_SUBST(libc_cv_sysconfdir)
1471 AC_SUBST(libc_cv_rootsbindir)
1473 AC_SUBST(use_ldconfig)
1474 AC_SUBST(ldd_rewrite_script)
1476 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
1477 if test $gnu_ld = yes; then
1478   AC_DEFINE(HAVE_GNU_LD)
1480 if test $gnu_as = yes; then
1481   AC_DEFINE(HAVE_GNU_AS)
1483 if test $elf = yes; then
1484   AC_DEFINE(HAVE_ELF)
1487 AC_SUBST(static)
1488 AC_SUBST(shared)
1489 if test $shared = default; then
1490   if test $gnu_ld = yes; then
1491     shared=$elf
1492   else
1493     # For now we do not assume shared libs are available.  In future more
1494     # tests might become available.
1495     shared=no
1496   fi
1499 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1500 [pic_default=yes
1501 cat > conftest.c <<EOF
1502 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1503 # error PIC is default.
1504 #endif
1506 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1507   pic_default=no
1509 rm -f conftest.*])
1510 AC_SUBST(pic_default)
1512 AC_SUBST(profile)
1513 AC_SUBST(omitfp)
1514 AC_SUBST(bounded)
1515 AC_SUBST(static_nss)
1516 AC_SUBST(nopic_initfini)
1518 AC_SUBST(DEFINES)
1520 case "$add_ons" in
1521   *door*) linux_doors=yes ;;
1522   *) linux_doors=no ;;
1523 esac
1524 AC_SUBST(linux_doors)
1526 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1527   config_makefile=
1528 else
1529   config_makefile=Makefile
1532 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1533 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1534 AC_SUBST(VERSION)
1535 AC_SUBST(RELEASE)
1537 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1538 case $CONFIG_FILES in *config.make*)
1539 echo "$config_vars" >> config.make;;
1540 esac
1541 test -d bits || mkdir bits], [config_vars='$config_vars'])