* sysdeps/m68k/fpu/s_finite.c: Add internal alias.
[glibc.git] / configure.in
blob4b5deb54a490c6d67951664558a989f0c58ea08a
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_SUBST(with_fp)
63 AC_ARG_WITH(binutils, dnl
64   --with-binutils=PATH    specify location of binutils (as and ld),
65             path_binutils=$withval, path_binutils='')
66 AC_ARG_WITH(elf, dnl
67   --with-elf              if using the ELF object format,
68             elf=$withval, elf=no)
69 AC_ARG_WITH(xcoff, dnl
70   --with-xcoff            if using the XCOFF object format,
71             xcoff=$withval, xcoff=no)
72 AC_ARG_WITH(cvs, dnl
73 [  --without-cvs           if CVS should not be used],
74             with_cvs=$withval, with_cvs=yes)
75 if test "$with_cvs" = yes; then
76   if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
77   then
78     with_cvs=no
79   fi
81 AC_SUBST(with_cvs)
83 AC_ARG_WITH(headers, dnl
84 [  --with-headers=PATH     location of system headers to use
85                           [e.g. /usr/src/linux/include]
86                           [default=compiler default]],
87             sysheaders=$withval, sysheaders='')
89 AC_ARG_ENABLE(libio, dnl
90 [  --enable-libio          build in GNU libio instead of GNU stdio],
91               [if test $enableval = yes; then
92                  stdio=libio
93                else
94                  stdio=stdio
95                fi],
96               stdio=default)
98 AC_ARG_ENABLE(sanity-checks, dnl
99 [  --disable-sanity-checks really do not use threads (should not be used
100                           except in special situations) [default=yes]],
101               enable_sanity=$enableval, enable_sanity=yes)
103 dnl Arguments to enable or disable building the static, shared, profiled,
104 dnl and -fomit-frame-pointer libraries.
105 dnl I've disabled this for now since we cannot build glibc without static
106 dnl libraries built in the moment.
107 dnl AC_ARG_ENABLE(static, dnl
108 dnl [  --enable-static         build static library [default=yes]],
109 dnl           static=$enableval, static=yes)
110 static=yes
111 AC_ARG_ENABLE(shared, dnl
112 [  --enable-shared         build shared library [default=yes if GNU ld & ELF]],
113               shared=$enableval, shared=default)
114 AC_ARG_ENABLE(profile, dnl
115 [  --enable-profile        build profiled library [default=yes]],
116               profile=$enableval, profile=yes)
117 AC_ARG_ENABLE(omitfp, dnl
118 [  --enable-omitfp         build undebuggable optimized library [default=no]],
119               omitfp=$enableval, omitfp=no)
120 AC_ARG_ENABLE(bounded, dnl
121 [  --enable-bounded        build with runtime bounds checking [default=no]],
122               bounded=$enableval, bounded=no)
123 AC_ARG_ENABLE(versioning, dnl
124 [  --disable-versioning    do not include versioning information in the
125                           library objects [default=yes if supported]],
126              enable_versioning=$enableval, enable_versioning=yes)
128 AC_ARG_ENABLE(oldest-abi, dnl
129 [  --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
130                           [default=glibc default]],
131             oldest_abi=$enableval, oldest_abi=no)
132 if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
133   oldest_abi=default
134 else
135   AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
137 AC_SUBST(oldest_abi)
139 dnl Generic infrastructure for drop-in additions to libc.
140 AC_ARG_ENABLE(add-ons, dnl
141 [  --enable-add-ons[=DIR1,DIR2]...
142                           configure and build add-ons in DIR1,DIR2,...
143                           search for add-ons if no parameter given],
144   [case "$enableval" in
145     yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
146          test "$add_ons" = "*" && add_ons= ;;
147     *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
148    esac],
149   [add_ons=])
151 dnl Let the user avoid using TLS.  Don't know why but...
152 AC_ARG_WITH(tls, dnl
153 [  --without-tls           prevent support for TLS],
154             usetls=$withval, usetls=yes)
156 AC_CONFIG_SUBDIRS($add_ons)
157 add_ons_pfx=
158 if test x"$add_ons" != x; then
159   for f in $add_ons; do
160     # Some sanity checks
161     if test "$f" = "crypt"; then
162       AC_MSG_ERROR([
163 *** It seems that you're using an old \`crypt' add-on.  crypt is now
164 *** part of glibc and using the old add-on will not work with this
165 *** release.  Start again with fresh sources and without the old
166 *** \`crypt' add-on.])
167     fi
168     if test "$f" = "localedata"; then
169       AC_MSG_ERROR([
170 *** It seems that you're using an old \`localedata' add-on.  localedata
171 *** is now part of glibc and using the old add-on will not work with
172 *** this release.  Start again with fresh sources and without the old
173 *** \`localedata' add-on.])
174     fi
175     # Test whether such a subdir really exists.
176     if test -d $srcdir/$f; then
177       add_ons_pfx="$add_ons_pfx $f/"
178     else
179       AC_MSG_ERROR(add-on directory \"$f\" does not exist)
180     fi
181   done
184 dnl On some platforms we cannot use dynamic loading.  We must provide
185 dnl static NSS modules.
186 AC_ARG_ENABLE(static-nss, dnl
187 [  --enable-static-nss     build static NSS modules [default=no]],
188               static_nss=$enableval, static_nss=no)
189 if test x"$static_nss" = xyes; then
190   AC_DEFINE(DO_STATIC_NSS)
193 AC_ARG_ENABLE(force-install,
194 [  --disable-force-install don't force installation of files from this package,
195                           even if they are older than the installed files],
196               force_install=$enableval, force_install=yes)
197 AC_SUBST(force_install)
199 dnl On some platforms we allow dropping compatibility with all kernel
200 dnl versions.
201 AC_ARG_ENABLE(kernel,
202 [  --enable-kernel=VERSION compile for compatibility with kernel not older
203                            than VERSION],
204               minimum_kernel=$enableval)
205 dnl Prevent unreasonable values.
206 if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
207   # Better nothing than this.
208   minimum_kernel=""
209 else
210   if test "$minimum_kernel" = current; then
211     minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
212   fi
215 dnl For the development we sometimes want gcc to issue even more warnings.
216 dnl This is not the default since many of the extra warnings are not
217 dnl appropriate.
218 AC_ARG_ENABLE(all-warnings,
219 [  --enable-all-warnings   enable all useful warnings gcc can issue],
220               all_warnings=$enableval)
221 AC_SUBST(all_warnings)
223 AC_CANONICAL_HOST
225 # The way shlib-versions is used to generate soversions.mk uses a
226 # fairly simplistic model for name recognition that can't distinguish
227 # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
228 # of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
229 # tell.  This doesn't get used much beyond that, so it's fairly safe.
230 case "$host_os" in
231 linux*)
232   ;;
233 gnu*)
234   host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
235   ;;
236 esac
238 # We keep the original values in `$config_*' and never modify them, so we
239 # can write them unchanged into config.make.  Everything else uses
240 # $machine, $vendor, and $os, and changes them whenever convenient.
241 config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
243 # Don't allow vendor == "unknown"
244 test "$config_vendor" = unknown && config_vendor=
245 config_os="`echo $config_os | sed 's/^unknown-//'`"
247 # Some configurations imply other options.
248 case "$host_os" in
249 gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
250   # These systems always use GNU tools.
251   gnu_ld=yes gnu_as=yes ;;
252 esac
253 case "$host_os" in
254 # i586-linuxaout is mangled into i586-pc-linux-gnuaout
255 linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
256   ;;
257 gnu* | linux* | sysv4* | solaris2* | irix6*)
258   # These systems (almost) always use the ELF format.
259   elf=yes
260   ;;
261 aix*)
262   # These systems are always xcoff
263   xcoff=yes
264   elf=no
265   ;;
266 esac
268 machine=$config_machine
269 vendor=$config_vendor
270 os=$config_os
272 # config.guess on some IBM machines says `rs6000' instead of `powerpc'.
273 # Unify this here.
274 if test "$machine" = rs6000; then
275   machine="powerpc"
279 ### I put this here to prevent those annoying emails from people who cannot
280 ### read and try to compile glibc on unsupported platforms.  --drepper
282 ### By using the undocumented --enable-hacker-mode option for configure
283 ### one can skip this test to make the configuration not fail for unsupported
284 ### platforms.
286 if test -z "$enable_hacker_mode"; then
287   case "$machine-$host_os" in
288   *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
289     ;;
290   *)
291     echo "*** The GNU C library is currently not available for this platform."
292     echo "*** So far nobody cared to port it and if there is no volunteer it"
293     echo "*** might never happen.  So, if you have interest to see glibc on"
294     echo "*** this platform visit"
295     echo "***   http://www.gnu.org/software/libc/porting.html"
296     echo "*** and join the group of porters"
297     exit 1
298     ;;
299   esac
302 dnl We need to use [ and ] for other purposes for a while now.
303 changequote(,)dnl
304 # Expand the configuration machine name into a subdirectory by architecture
305 # type and particular chip.
306 case "$machine" in
307 a29k | am29000) base_machine=a29k machine=a29k ;;
308 alpha*)         base_machine=alpha machine=alpha/$machine ;;
309 arm*)           base_machine=arm machine=arm/arm32/$machine ;;
310 c3[012])        base_machine=cx0 machine=cx0/c30 ;;
311 c4[04])         base_machine=cx0 machine=cx0/c40 ;;
312 hppa*64*)       base_machine=hppa machine=hppa/hppa64 ;;
313 hppa*)          base_machine=hppa machine=hppa/hppa1.1 ;;
314 i[3456]86)      base_machine=i386 machine=i386/$machine ;;
315 ia64)           base_machine=ia64 machine=ia64 ;;
316 m680?0)         base_machine=m68k machine=m68k/$machine ;;
317 m68k)           base_machine=m68k machine=m68k/m68020 ;;
318 m88???)         base_machine=m88k machine=m88k/$machine ;;
319 m88k)           base_machine=m88k machine=m88k/m88100 ;;
320 mips64*)        base_machine=mips64 machine=mips/mips64/$machine ;;
321 mips*)          base_machine=mips machine=mips/$machine ;;
322 s390)           base_machine=s390 machine=s390/s390-32 ;;
323 s390x)          base_machine=s390 machine=s390/s390-64 ;;
324 sh3*)           base_machine=sh machine=sh/sh3 ;;
325 sh4*)           base_machine=sh machine=sh/sh4 ;;
326 sparc | sparcv[67])
327                 base_machine=sparc machine=sparc/sparc32 ;;
328 sparcv8 | supersparc | hypersparc)
329                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
330 sparcv8plus | sparcv8plusa | sparcv9)
331                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
332 sparcv8plusb | sparcv9b)
333                 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
334 sparc64 | ultrasparc)
335                 base_machine=sparc machine=sparc/sparc64 ;;
336 sparc64b | ultrasparc3)
337                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
338 thumb*)         base_machine=thumb machine=arm/thumb/$machine ;;
339 *)              base_machine=$machine ;;
340 esac
341 changequote([,])dnl
342 AC_SUBST(base_machine)
344 if test "$base_machine" = "i386"; then
345   AC_DEFINE(USE_REGPARMS)
348 # Compute the list of sysdep directories for this configuration.
349 # This can take a while to compute.
350 sysdep_dir=$srcdir/sysdeps
351 AC_MSG_CHECKING(sysdep dirs)
352 dnl We need to use [ and ] for other purposes for a while now.
353 changequote(,)dnl
354 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
355 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
357 case "$os" in
358 gnu*)
359   base_os=mach/hurd ;;
360 netbsd* | 386bsd* | freebsd* | bsdi*)
361   base_os=unix/bsd/bsd4.4 ;;
362 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
363   base_os=unix/bsd ;;
364 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
365   base_os=unix/sysv ;;
366 irix6*)
367   base_os=unix/sysv/irix6/$os ;;
368 solaris[2-9]*)
369   base_os=unix/sysv/sysv4 ;;
370 hpux*)
371   base_os=unix/sysv/hpux/$os ;;
372 aix4.3*)
373   base_os=unix/sysv/aix/aix4.3 ;;
374 none)
375   base_os=standalone ;;
377   base_os='' ;;
378 esac
380 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
381 tail=$os
382 ostry=$os
383 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
384   ostry="$ostry /$o"
385   tail=$o
386 done
387 o=`echo $tail | sed 's/[0-9]*$//'`
388 if test $o != $tail; then
389   ostry="$ostry /$o"
391 # For linux-gnu, try linux-gnu, then linux.
392 o=`echo $tail | sed 's/-.*$//'`
393 if test $o != $tail; then
394   ostry="$ostry /$o"
397 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
398 base=
399 tail=$base_os
400 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
401   set $b
402   base="$base /$1"
403   tail="$2"
404 done
406 # For sparc/sparc32, try sparc/sparc32 and then sparc.
407 mach=
408 tail=$machine
409 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
410   set $m
411   # Prepend the machine's FPU directory unless --without-fp.
412   if test "$with_fp" = yes; then
413     mach="$mach /$1/fpu"
414   fi
415   mach="$mach /$1"
416   tail="$2"
417 done
419 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
420 changequote([,])dnl
422 # Find what sysdep directories exist.
423 sysnames=
424 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
425 for d in $add_ons_pfx ''; do
426   for b in $base ''; do
427     for m0 in $mach ''; do
428       for v in /$vendor ''; do
429         test "$v" = / && continue
430         for o in /$ostry ''; do
431           test "$o" = / && continue
432           for m in $mach ''; do
433             if test "$m0$b$v$o$m"; then
434               try="${d}sysdeps$m0$b$v$o$m"
435               test -n "$enable_debug_configure" &&
436               echo "$0 [DEBUG]: try $try" >&2
437               if test -d $srcdir/$try; then
438                 sysnames="$sysnames $try"
439                 { test -n "$o" || test -n "$b"; } && os_used=t
440                 { test -n "$m" || test -n "$m0"; } && machine_used=t
441               fi
442             fi
443           done
444         done
445       done
446     done
447   done
448 done
449 IFS="$ac_save_ifs"
451 if test -z "$os_used" && test "$os" != none; then
452   AC_MSG_ERROR(Operating system $os is not supported.)
454 if test -z "$machine_used" && test "$machine" != none; then
455   AC_MSG_ERROR(The $machine is not supported.)
458 # We have now validated the configuration.
461 # If using ELF, look for an `elf' subdirectory of each machine directory.
462 # We prepend these rather than inserting them whereever the machine appears
463 # because things specified by the machine's ELF ABI should override
464 # OS-specific things, and should always be the same for any OS on the
465 # machine (otherwise what's the point of an ABI?).
466 if test "$elf" = yes; then
467   elf_dirs=
468   for d in $add_ons_pfx ''; do
469     for m in $mach; do
470       if test -d $srcdir/${d}sysdeps$m/elf; then
471         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
472       fi
473     done
474   done
475   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
479 # Expand the list of system names into a full list of directories
480 # from each element's parent name and Implies file (if present).
481 set $sysnames
482 names=
483 while test $# -gt 0; do
484   name=$1
485   shift
487   case " $names " in *" $name "*)
488     # Already in the list.
489     continue
490   esac
492   # Report each name as we discover it, so there is no long pause in output.
493   echo $ac_n "$name $ac_c" >&AC_FD_MSG
495   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
497   case $name in
498     /*) xsrcdir= ;;
499     *)  xsrcdir=$srcdir/ ;;
500   esac
501   test -n "$enable_debug_configure" &&
502   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
504   if test -f $xsrcdir$name/Implies; then
505     # Collect more names from the `Implies' file (removing comments).
506     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
507     implied=
508     for x in $implied_candidate; do
509       found=no
510       if test -d $xsrcdir$name_base/$x; then
511         implied="$implied $name_base/$x";
512         found=yes
513       fi
514       for d in $add_ons_pfx ''; do
515         try="${d}sysdeps/$x"
516         case $d in
517          /*) try_srcdir= ;;
518          *) try_srcdir=$srcdir/ ;;
519         esac
520         test -n "$enable_debug_configure" &&
521          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
522         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
523         then
524           implied="$implied $try"
525           found=yes
526         fi
527       done
528       if test $found = no; then
529         AC_MSG_WARN($name/Implies specifies nonexistent $x)
530       fi
531     done
532   else
533     implied=
534   fi
536   # Add NAME to the list of names.
537   names="$names $name"
539   # Find the parent of NAME, using the empty string if it has none.
540 changequote(,)dnl
541   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
542 changequote([,])dnl
544   # Add the names implied by NAME, and NAME's parent (if it has one), to
545   # the list of names to be processed (the argument list).  We prepend the
546   # implied names to the list and append the parent.  We want implied
547   # directories to come before further directories inferred from the
548   # configuration components; this ensures that for sysv4, unix/common
549   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
550   # after sysv4).
551   sysnames="`echo $implied $* $parent`"
552   test -n "$sysnames" && set $sysnames
553 done
555 # Add the default directories.
556 default_sysnames=sysdeps/generic
557 if test "$elf" = yes; then
558   default_sysnames="sysdeps/generic/elf $default_sysnames"
560 sysnames="$names $default_sysnames"
561 AC_SUBST(sysnames)
562 # The other names were emitted during the scan.
563 AC_MSG_RESULT($default_sysnames)
566 ### Locate tools.
568 AC_PROG_INSTALL
569 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
570   # The makefiles need to use a different form to find it in $srcdir.
571   INSTALL='\$(..)./scripts/install-sh -c'
573 AC_PROG_LN_S
575 # We need the physical current working directory.  We cannot use the
576 # "pwd -P" shell builtin since that's not portable.  Instead we try to
577 # find a pwd binary.  Note that assigning to the PWD environment
578 # variable might have some interesting side effects, so we don't do
579 # that.
580 AC_PATH_PROG(PWD_P, pwd, no)
581 if test "$PWD_P" = no; then
582   AC_MSG_ERROR(*** A pwd binary could not be found.)
585 # These programs are version sensitive.
586 AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
587 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
588   [version \([egcygnustpi-]*[0-9.]*\)],
589   [*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-*],
590   critic_missing=gcc)
591 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
592   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
593   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
596 if test -n "$critic_missing"; then
597 AC_MSG_ERROR([
598 *** These critical programs are missing or too old:$critic_missing
599 *** Check the INSTALL file for required versions.])
603 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
604   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
605   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
606   MSGFMT=: aux_missing="$aux_missing msgfmt")
607 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
608   [GNU texinfo.* \([0-9][0-9.]*\)],
609   [4.*],
610   MAKEINFO=: aux_missing="$aux_missing makeinfo")
611 AC_CHECK_PROG_VER(SED, sed, --version,
612   [GNU sed version \([0-9]*\.[0-9.]*\)],
613   [3.0[2-9]*|3.[1-9]*|[4-9]*],
614   SED=: aux_missing="$aux_missing sed")
616 AC_PROG_CC_LOCAL
617 AC_CANONICAL_BUILD
618 if test $host != $build; then
619   AC_CHECK_PROGS(BUILD_CC, gcc cc)
621 AC_SUBST(cross_compiling)
622 AC_PROG_CPP
623 LIBC_PROG_BINUTILS
624 AC_CHECK_TOOL(MIG, mig)
626 # Accept binutils 2.10.1 or newer (and also any ia64 2.9 version)
627 # XXX Commented out because it filters out too many good versions.
628 # XXX --drepper
629 # AC_CHECK_PROG_VER(AS, $AS, --version,
630 #   [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)],
631 #   [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t)
633 test -n "$aux_missing" && AC_MSG_WARN([
634 *** These auxiliary programs are missing or too old:$aux_missing
635 *** some features will be disabled.
636 *** Check the INSTALL file for required versions.])
638 # glibcbug.in wants to know the compiler version.
639 CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
640 AC_SUBST(CCVERSION)
642 # if using special system headers, find out the compiler's sekrit
643 # header directory and add that to the list.  NOTE: Only does the right
644 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
645 if test -n "$sysheaders"; then
646   ccheaders=`$CC -print-file-name=include`
647   SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
649 AC_SUBST(SYSINCLUDES)
651 # check if ranlib is necessary
652 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
653 cat > conftest.c <<EOF
654 int a;
655 char b;
656 void c(void) {}
658 $CC $CFLAGS -c conftest.c
659 $AR cr conftest.a conftest.c
660 cp conftest.a conftest2.a
661 $RANLIB conftest.a
662 if cmp -s conftest.a conftest2.a; then
663   libc_cv_ranlib_necessary=no
664 else
665   libc_cv_ranlib_necessary=yes
667 rm -rf conftest*])
668 if test "$libc_cv_ranlib_necessary" = no; then
669  RANLIB=:
672 # Test if LD_LIBRARY_PATH contains the notation for the current directory
673 # since this would lead to problems installing/building glibc.
674 # LD_LIBRARY_PATH contains the current directory if one of the following
675 # is true:
676 # - one of the terminals (":" and ";") is the first or last sign
677 # - two terminals occur directly after each other
678 # - the path contains an element with a dot in it
679 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
680 changequote(,)dnl
681 case ${LD_LIBRARY_PATH} in
682   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
683     ld_library_path_setting="contains current directory"
684     ;;
685   *)
686     ld_library_path_setting="ok"
687     ;;
688 esac
689 changequote([,])dnl
690 AC_MSG_RESULT($ld_library_path_setting)
691 if test "$ld_library_path_setting" != "ok"; then
692 AC_MSG_ERROR([
693 *** LD_LIBRARY_PATH shouldn't contain the current directory when
694 *** building glibc. Please change the environment variable
695 *** and run configure again.])
698 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
699 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
700   libc_cv_gcc_static_libgcc=
701 else
702   libc_cv_gcc_static_libgcc=-static-libgcc
703 fi])
704 AC_SUBST(libc_cv_gcc_static_libgcc)
706 AC_PATH_PROG(BASH, bash, no)
707 if test "$BASH" != no &&
708    $BASH -c 'test "$BASH_VERSINFO" \
709              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
710   libc_cv_have_bash2=yes
711 else
712   libc_cv_have_bash2=no
714 AC_SUBST(libc_cv_have_bash2)
716 dnl We need a ksh compatible shell for tzselect.
717 if test "$BASH" = no; then
718   AC_PATH_PROG(KSH, ksh, no)
719   if test "$KSH" = no; then
720     libc_cv_have_ksh=no
721   else
722     libc_cv_have_ksh=yes
723   fi
724 else
725   KSH="$BASH"
726   AC_SUBST(KSH)
727   libc_cv_have_ksh=yes
729 AC_SUBST(libc_cv_have_ksh)
731 AC_PROG_AWK
732 AC_PATH_PROG(PERL, perl, no)
733 if test "$PERL" != no &&
734    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
735   PERL=no
737 AC_PATH_PROG(INSTALL_INFO, install-info, no,
738              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
739 if test "$INSTALL_INFO" != "no"; then
740 AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
741  [mkdir conftest.d
742   # There is a hard ^_ on the next line.  I am open to better ideas.
743   (echo '\x1f'
744   echo 'File: dir       Node: Top       This is the top of the INFO tree'
745   echo '* Menu:') >conftest.d/dir
746   (echo 'INFO-DIR-SECTION i-d-s works'
747   echo 'START-INFO-DIR-ENTRY'
748   echo '* Prog: (prog).   Program.'
749   echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
750   if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
751   then
752     if grep -s 'i-d-s works' conftest.d/dir >/dev/null
753     then libc_cv_old_debian_install_info=no
754     else libc_cv_old_debian_install_info=yes
755     fi
756   else libc_cv_old_debian_install_info=no testfailed=t
757   fi
758   rm -fr conftest.d])
759 if test -n "$testfailed"
760 then AC_MSG_WARN([install-info errored out, check config.log])
762 OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
764 AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
766 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
768 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
769 echo '#include <stddef.h>
770 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
771 if eval "$ac_cpp conftest.c 2>/dev/null" \
772 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
773   libc_cv_signed_size_t=no
774 else
775   libc_cv_signed_size_t=yes
777 rm -f conftest*])
778 if test $libc_cv_signed_size_t = yes; then
779   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
780   cat >> confdefs.h <<\EOF
781 #undef __SIZE_TYPE__
782 #define __SIZE_TYPE__ unsigned
786 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
787 AC_TRY_COMPILE(dnl
788 [#define __need_size_t
789 #define __need_wchar_t
790 #include <stddef.h>
791 #define __need_NULL
792 #include <stddef.h>], [size_t size; wchar_t wchar;
793 #ifdef offsetof
794 #error stddef.h ignored __need_*
795 #endif
796 if (&size == NULL || &wchar == NULL) abort ();],
797                libc_cv_friendly_stddef=yes,
798                libc_cv_friendly_stddef=no)])
799 if test $libc_cv_friendly_stddef = yes; then
800   config_vars="$config_vars
801 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
804 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
805                libc_cv_need_minus_P, [dnl
806 cat > conftest.S <<EOF
807 #include "confdefs.h"
808 /* Nothing whatsoever.  */
810 if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
811   libc_cv_need_minus_P=no
812 else
813   libc_cv_need_minus_P=yes
815 rm -f conftest*])
816 if test $libc_cv_need_minus_P = yes; then
817   config_vars="$config_vars
818 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
821 AC_MSG_CHECKING(whether .text pseudo-op must be used)
822 AC_CACHE_VAL(libc_cv_dot_text, [dnl
823 cat > conftest.s <<EOF
824 .text
826 libc_cv_dot_text=
827 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
828   libc_cv_dot_text=.text
830 rm -f conftest*])
831 if test -z "$libc_cv_dot_text"; then
832   AC_MSG_RESULT(no)
833 else
834   AC_MSG_RESULT(yes)
837 AC_CACHE_CHECK(for assembler global-symbol directive,
838                libc_cv_asm_global_directive, [dnl
839 libc_cv_asm_global_directive=UNKNOWN
840 for ac_globl in .globl .global .EXPORT; do
841   cat > conftest.s <<EOF
842         ${libc_cv_dot_text}
843         ${ac_globl} foo
844 foo:
846   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
847     libc_cv_asm_global_directive=${ac_globl}
848   fi
849   rm -f conftest*
850   test $libc_cv_asm_global_directive != UNKNOWN && break
851 done])
852 if test $libc_cv_asm_global_directive = UNKNOWN; then
853   AC_MSG_ERROR(cannot determine asm global directive)
854 else
855   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
858 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
859 cat > conftest.s <<EOF
860 ${libc_cv_dot_text}
861 foo:
862 .set glibc_conftest_frobozz,foo
863 $libc_cv_asm_global_directive glibc_conftest_frobozz
865 # The alpha-dec-osf1 assembler gives only a warning for `.set'
866 # (but it doesn't work), so we must do a linking check to be sure.
867 cat > conftest1.c <<\EOF
868 extern int glibc_conftest_frobozz;
869 main () { printf ("%d\n", glibc_conftest_frobozz); }
871 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
872             -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
873   libc_cv_asm_set_directive=yes
874 else
875   libc_cv_asm_set_directive=no
877 rm -f conftest*])
878 if test $libc_cv_asm_set_directive = yes; then
879   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
882 # The Aix ld uses global .symbol_names instead of symbol_names.
883 case "$os" in
884 aix4.3*)
885   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
886 esac
888 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
889 [cat > conftest.s <<EOF
890 ${libc_cv_dot_text}
891 _sym:
892 .symver _sym,sym@VERS
894 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
895   libc_cv_asm_symver_directive=yes
896 else
897   libc_cv_asm_symver_directive=no
899 rm -f conftest*])
900 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
901 if test $libc_cv_asm_symver_directive = yes; then
902   cat > conftest.s <<EOF
903 ${libc_cv_dot_text}
904 _sym:
905 .symver _sym,sym@VERS
907   cat > conftest.map <<EOF
908 VERS_1 {
909         global: sym;
912 VERS_2 {
913         global: sym;
914 } VERS_1;
916   if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
917     if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
918                                         -nostartfiles -nostdlib
919                                         -Wl,--version-script,conftest.map
920                        1>&AC_FD_CC]);
921     then
922       libc_cv_ld_version_script_option=yes
923     else
924       libc_cv_ld_version_script_option=no
925     fi
926   else
927     libc_cv_ld_version_script_option=no
928   fi
929 else
930   libc_cv_ld_version_script_option=no
932 rm -f conftest*])
933 if test $shared != no &&
934    test $libc_cv_asm_symver_directive = yes &&
935    test $libc_cv_ld_version_script_option = yes &&
936    test $enable_versioning = yes; then
937   VERSIONING=yes
938   AC_DEFINE(DO_VERSIONING)
939 else
940   VERSIONING=no
942 AC_SUBST(VERSIONING)
944 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
945   echo "\
946 *** WARNING: You should not compile GNU libc without versioning. Not using
947 *** versioning will introduce incompatibilities so that old binaries
948 *** will not run anymore.
949 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
951 if test $elf = yes; then
952   AC_CACHE_CHECK(for .previous assembler directive,
953                  libc_cv_asm_previous_directive, [dnl
954   cat > conftest.s <<EOF
955 .section foo_section
956 .previous
958   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
959     libc_cv_asm_previous_directive=yes
960   else
961     libc_cv_asm_previous_directive=no
962   fi
963   rm -f conftest*])
964   if test $libc_cv_asm_previous_directive = yes; then
965     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
966   else
967     AC_CACHE_CHECK(for .popsection assembler directive,
968                    libc_cv_asm_popsection_directive, [dnl
969     cat > conftest.s <<EOF
970 .pushsection foo_section
971 .popsection
973     if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
974       libc_cv_asm_popsection_directive=yes
975     else
976       libc_cv_asm_popsection_directive=no
977     fi
978     rm -f conftest*])
979     if test $libc_cv_asm_popsection_directive = yes; then
980       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
981     fi
982   fi
983   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
984                  libc_cv_asm_protected_directive, [dnl
985   cat > conftest.s <<EOF
986 .protected foo
987 foo:
988 .hidden bar
989 bar:
991   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
992     libc_cv_asm_protected_directive=yes
993   else
994     libc_cv_asm_protected_directive=no
995   fi
996   rm -f conftest*])
997   AC_SUBST(libc_cv_asm_protected_directive)
998   AC_DEFINE(HAVE_PROTECTED)
1000   if test $libc_cv_asm_protected_directive = yes; then
1001     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1002                  libc_cv_visibility_attribute,
1003                  [cat > conftest.c <<EOF
1004                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1005                   int bar __attribute__ ((visibility ("protected"))) = 1;
1007                   libc_cv_visibility_attribute=no
1008                   if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
1009                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1010                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1011                         libc_cv_visibility_attribute=yes
1012                       fi
1013                     fi
1014                   fi
1015                   rm -f conftest.[cs]
1016                  ])
1017     if test $libc_cv_visibility_attribute = yes; then
1018       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1019     fi
1020   fi
1022   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1023     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1024                  libc_cv_have_sdata_section,
1025                  [echo "int i;" > conftest.c
1026                   libc_cv_have_sdata_section=no
1027                   if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1028                      | grep '\.sdata' >/dev/null; then
1029                     libc_cv_have_sdata_section=yes
1030                   fi
1031                   rm -f conftest.c conftest.so
1032                  ])
1033     if test $libc_cv_have_sdata_section = yes; then
1034       AC_DEFINE(HAVE_SDATA_SECTION)
1035     fi
1036   fi
1038   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1039                  libc_cv_initfinit_array, [dnl
1040   cat > conftest.c <<EOF
1041 int _start (void) { return 0; }
1042 int __start (void) { return 0; }
1043 int foo (void) { return 1; }
1044 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1046   if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1047                      -static -nostartfiles -nostdlib 1>&AC_FD_CC])
1048   then
1049     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1050       libc_cv_initfinit_array=yes
1051     else
1052       libc_cv_initfinit_array=no
1053     fi
1054   else
1055     libc_cv_initfinit_array=no
1056   fi
1057   rm -f conftest*])
1058   AC_SUBST(libc_cv_initfinit_array)
1059   if test $libc_cv_initfinit_array = yes; then
1060     AC_DEFINE(HAVE_INITFINI_ARRAY)
1061   fi
1063   AC_CACHE_CHECK(for -z nodelete option,
1064                  libc_cv_z_nodelete, [dnl
1065   cat > conftest.c <<EOF
1066 int _start (void) { return 42; }
1068   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1069                      -nostartfiles -nostdlib
1070                      -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
1071   then
1072     libc_cv_z_nodelete=yes
1073   else
1074     libc_cv_z_nodelete=no
1075   fi
1076   rm -f conftest*])
1077   AC_SUBST(libc_cv_z_nodelete)
1079   AC_CACHE_CHECK(for -z nodlopen option,
1080                  libc_cv_z_nodlopen, [dnl
1081   cat > conftest.c <<EOF
1082 int _start (void) { return 42; }
1084   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1085                         -nostartfiles -nostdlib
1086                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
1087   then
1088     libc_cv_z_nodlopen=yes
1089   else
1090     libc_cv_z_nodlopen=no
1091   fi
1092   rm -f conftest*])
1093   AC_SUBST(libc_cv_z_nodlopen)
1095   AC_CACHE_CHECK(for -z initfirst option,
1096                  libc_cv_z_initfirst, [dnl
1097   cat > conftest.c <<EOF
1098 int _start (void) { return 42; }
1100   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1101                         -nostartfiles -nostdlib
1102                         -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC])
1103   then
1104     libc_cv_z_initfirst=yes
1105   else
1106     libc_cv_z_initfirst=no
1107   fi
1108   rm -f conftest*])
1109   AC_SUBST(libc_cv_z_initfirst)
1111   AC_CACHE_CHECK(for -Bgroup option,
1112                  libc_cv_Bgroup, [dnl
1113   cat > conftest.c <<EOF
1114 int _start (void) { return 42; }
1116   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AC_FD_CC])
1117   then
1118     libc_cv_Bgroup=yes
1119   else
1120     libc_cv_Bgroup=no
1121   fi
1122   rm -f conftest*])
1123   AC_SUBST(libc_cv_Bgroup)
1125   AC_CACHE_CHECK(for -z combreloc,
1126                  libc_cv_z_combreloc, [dnl
1127   cat > conftest.c <<EOF
1128 extern int bar (int);
1129 extern int mumble;
1130 int foo (void) { return bar (mumble); }
1132   if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1133                         -nostdlib -nostartfiles
1134                         -Wl,-z,combreloc 1>&AC_FD_CC])
1135   then
1136 dnl The following test is a bit weak.  We must use a tool which can test
1137 dnl cross-platform since the gcc used can be a cross compiler.  Without
1138 dnl introducing new options this is not easily doable.  Instead use a tool
1139 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1140 dnl look for a section named .rel.dyn.
1141     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1142       libc_cv_z_combreloc=yes
1143     else
1144       libc_cv_z_combreloc=no
1145     fi
1146   else
1147     libc_cv_z_combreloc=no
1148   fi
1149   rm -f conftest*])
1150   if test "$libc_cv_z_combreloc" = yes; then
1151     AC_DEFINE(HAVE_Z_COMBRELOC)
1152   fi
1154 AC_SUBST(libc_cv_z_combreloc)
1156 if test $elf != yes; then
1157   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1158                  [AC_TRY_COMPILE(, [asm (".section .init");
1159                                     asm (".section .fini");
1160                                     asm ("${libc_cv_dot_text}");],
1161                                  libc_cv_have_initfini=yes,
1162                                  libc_cv_have_initfini=no)])
1163   AC_SUBST(libc_cv_have_initfini)dnl
1164   if test $libc_cv_have_initfini = yes; then
1165     AC_DEFINE(HAVE_INITFINI)
1166   fi
1169 if test $elf = yes -a $gnu_ld = yes; then
1170   AC_CACHE_CHECK(whether cc puts quotes around section names,
1171                  libc_cv_have_section_quotes,
1172                  [cat > conftest.c <<EOF
1173                   static const int foo
1174                   __attribute__ ((section ("bar"))) = 1;
1176                   if ${CC-cc} -S conftest.c -o conftest.s; then
1177                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1178                       libc_cv_have_section_quotes=yes
1179                     else
1180                       libc_cv_have_section_quotes=no
1181                     fi
1182                   else
1183                     libc_cv_have_section_quotes=unknown
1184                   fi
1185                   rm -f conftest.[cs]
1186                  ])
1187   if test $libc_cv_have_section_quotes = yes; then
1188     AC_DEFINE(HAVE_SECTION_QUOTES)
1189   fi
1192 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1193 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1194 [cat > conftest.$ac_ext <<EOF
1195 dnl This sometimes fails to find confdefs.h, for some reason.
1196 dnl [#]line __oline__ "[$]0"
1197 [#]line __oline__ "configure"
1198 #include "confdefs.h"
1199 void underscore_test(void) {
1200 return; }
1202 if AC_TRY_EVAL(ac_compile); then
1203   if grep _underscore_test conftest* >/dev/null; then
1204     ifelse([$1], , :, [rm -f conftest*
1205     $1])
1206   else
1207     ifelse([$2], , , [rm -f conftest*
1208     $2])
1209   fi
1210 else
1211   echo "configure: failed program was:" >&AC_FD_CC
1212   cat conftest.$ac_ext >&AC_FD_CC
1213   ifelse([$2], , , [rm -f conftest*
1214   $2])
1216 rm -f conftest*])
1218 if test $elf = yes; then
1219   libc_cv_asm_underscores=no
1220 else
1221   if test $ac_cv_prog_cc_works = yes; then
1222     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1223                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1224                                 libc_cv_asm_underscores=yes,
1225                                 libc_cv_asm_underscores=no)])
1226   else
1227     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1228                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1229                                             libc_cv_asm_underscores=no)])
1230   fi
1232 if test $libc_cv_asm_underscores = no; then
1233   AC_DEFINE(NO_UNDERSCORES)
1236 if test $elf = yes; then
1237   libc_cv_weak_symbols=yes
1240 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1241                [dnl
1242 cat > conftest.s <<EOF
1243 ${libc_cv_dot_text}
1244 ${libc_cv_asm_global_directive} foo
1245 foo:
1246 .weak foo
1247 .weak bar; bar = foo
1249 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1250   libc_cv_asm_weak_directive=yes
1251 else
1252   libc_cv_asm_weak_directive=no
1254 rm -f conftest*])
1256 if test $libc_cv_asm_weak_directive = no; then
1257   AC_CACHE_CHECK(for assembler .weakext directive,
1258                  libc_cv_asm_weakext_directive,
1259                  [dnl
1260 cat > conftest.s <<EOF
1261 ${libc_cv_dot_text}
1262 ${libc_cv_asm_global_directive} foo
1263 foo:
1264 .weakext bar foo
1265 .weakext baz
1266 ${libc_cv_asm_global_directive} baz
1267 baz:
1269   if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1270     libc_cv_asm_weakext_directive=yes
1271   else
1272     libc_cv_asm_weakext_directive=no
1273   fi
1274   rm -f conftest*])
1276 fi # no .weak
1278 if test $libc_cv_asm_weak_directive = yes; then
1279   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1280 elif test $libc_cv_asm_weakext_directive = yes; then
1281   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1284 dnl The standard hppa assembler uses `;' to start comments and `!'
1285 dnl as a line separator.  CRIS uses `;' to start comments and `@' for
1286 dnl line separator.
1287 case "${host_cpu}-${host_os}" in
1288   cris*)
1289     libc_cv_asm_line_sep='@'
1290     AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1291     ;;
1292   hppa*linux*)
1293   AC_CACHE_CHECK(for assembler line separator,
1294                  libc_cv_asm_line_sep, [dnl
1295   cat > conftest.s <<EOF
1296  nop ; is_old_puffin
1298   if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1299     libc_cv_asm_line_sep='!'
1300   else
1301     if test -z "$enable_hacker_mode"; then
1302       echo "*** You need a newer assembler to compile glibc"
1303       rm -f conftest*
1304       exit 1
1305     fi
1306     libc_cv_asm_line_sep=';'
1307   fi
1308   rm -f conftest*])
1309   AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1310   ;;
1311 esac
1313 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1314 cat > conftest.c <<\EOF
1315 _start () {}
1316 int __eh_pc;
1317 __throw () {}
1319 dnl No \ in command here because it ends up inside ''.
1320 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1321                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1322                             -o conftest conftest.c 1>&AC_FD_CC]); then
1323   libc_cv_ld_no_whole_archive=yes
1324 else
1325   libc_cv_ld_no_whole_archive=no
1327 rm -f conftest*])
1328 if test $libc_cv_ld_no_whole_archive = yes; then
1329   no_whole_archive=-Wl,--no-whole-archive
1331 AC_SUBST(no_whole_archive)dnl
1333 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1334 cat > conftest.c <<\EOF
1335 _start () {}
1336 int __eh_pc;
1337 __throw () {}
1339 dnl No \ in command here because it ends up inside ''.
1340 if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1341                             -nostdlib -nostartfiles -fexceptions
1342                             -o conftest conftest.c 1>&AC_FD_CC]); then
1343   libc_cv_gcc_exceptions=yes
1344 else
1345   libc_cv_gcc_exceptions=no
1347 rm -f conftest*])
1348 if test $libc_cv_gcc_exceptions = yes; then
1349   exceptions=-fexceptions
1351 AC_SUBST(exceptions)dnl
1353 if test "$base_machine" = alpha ; then
1354 AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1355 cat > conftest.c <<\EOF
1356 foo () { }
1359 if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
1360 then
1361   libc_cv_gcc_alpha_ng_prefix=yes
1362 else
1363   libc_cv_gcc_alpha_ng_prefix=no
1365 rm -f conftest* ])
1366 if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1367   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1368 else
1369   AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1373 if test "$host_cpu" = powerpc ; then
1374 # Check for a bug present in at least versions 2.8.x of GCC
1375 # and versions 1.0.x of EGCS.
1376 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1377 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1378                libc_cv_c_asmcr0_bug='no',
1379                libc_cv_c_asmcr0_bug='yes')])
1380 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1381   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1385 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1386 [cat > conftest.c <<EOF
1387 #line __oline__ "configure"
1388 static char *__EH_FRAME_BEGIN__;
1389 _start ()
1391 #ifdef CHECK__register_frame
1392   __register_frame (__EH_FRAME_BEGIN__);
1393   __deregister_frame (__EH_FRAME_BEGIN__);
1394 #endif
1395 #ifdef CHECK__register_frame_info
1396   __register_frame_info (__EH_FRAME_BEGIN__);
1397   __deregister_frame_info (__EH_FRAME_BEGIN__);
1398 #endif
1400 int __eh_pc;
1401 __throw () {}
1402 /* FIXME: this is fragile.  */
1403 malloc () {}
1404 strcmp () {}
1405 strlen () {}
1406 memcpy () {}
1407 memset () {}
1408 free () {}
1409 abort () {}
1410 __bzero () {}
1412 dnl No \ in command here because it ends up inside ''.
1413 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1414                             -nostdlib -nostartfiles
1415                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1416   libc_cv_gcc_dwarf2_unwind_info=static
1417 else
1418   libc_cv_gcc_dwarf2_unwind_info=no
1420 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
1421                             -nostdlib -nostartfiles
1422                             -o conftest conftest.c -lgcc -lgcc_eh >&AC_FD_CC]); then
1423   if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \
1424      -o conftest conftest.c -lgcc -lgcc_eh -v 2>&1 >/dev/null \
1425      | grep -q -- --eh-frame-hdr; then
1426     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1427   else
1428     libc_cv_gcc_dwarf2_unwind_info=static
1429   fi
1430 else
1431   libc_cv_gcc_dwarf2_unwind_info=no
1433 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1434   if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1435                               -nostdlib -nostartfiles
1436                               -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1437     libc_cv_gcc_dwarf2_unwind_info=yes
1438   else
1439     libc_cv_gcc_dwarf2_unwind_info=no
1440   fi
1442 rm -f conftest*])
1443 case $libc_cv_gcc_dwarf2_unwind_info in
1444 yes)
1445   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1446   ;;
1447 static)
1448   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1449   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1450   ;;
1451 esac
1453 dnl Check whether compiler understands __builtin_expect.
1454 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1455 [cat > conftest.c <<EOF
1456 #line __oline__ "configure"
1457 int foo (int a)
1459   a = __builtin_expect (a, 10);
1460   return a == 10 ? 0 : 1;
1463 dnl No \ in command here because it ends up inside ''.
1464 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1465                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1466   libc_cv_gcc_builtin_expect=yes
1467 else
1468   libc_cv_gcc_builtin_expect=no
1470 rm -f conftest*])
1471 if test "$libc_cv_gcc_builtin_expect" = yes; then
1472   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1475 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1476 cat > conftest.c <<\EOF
1477 void zero (void *x)
1479   __builtin_memset (x, 0, 1000);
1483 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1484 then
1485   libc_cv_gcc_builtin_memset=no
1486 else
1487   libc_cv_gcc_builtin_memset=yes
1489 rm -f conftest* ])
1490 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1491   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1494 dnl Check whether the compiler supports subtraction of local labels.
1495 AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1496 [cat > conftest.c <<EOF
1497 changequote(,)dnl
1498 #line __oline__ "configure"
1499 int foo (int a)
1501   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1502   void *p = &&l1 + ar[a];
1503   goto *p;
1504  l1:
1505   return 1;
1506  l2:
1507   return 2;
1509 changequote([,])dnl
1511 dnl No \ in command here because it ends up inside ''.
1512 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1513                             -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1514   libc_cv_gcc_subtract_local_labels=yes
1515 else
1516   libc_cv_gcc_subtract_local_labels=no
1518 rm -f conftest*])
1519 if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1520   AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1523 dnl Check whether we have the gd library available.
1524 AC_MSG_CHECKING(for libgd)
1525 if test "$with_gd" != "no"; then
1526   old_CFLAGS="$CFLAGS"
1527   CFLAGS="$CFLAGS $libgd_include"
1528   old_LDFLAGS="$LDFLAGS"
1529   LDFLAGS="$LDFLAGS $libgd_ldflags"
1530   old_LIBS="$LIBS"
1531   LIBS="$LIBS -lgd -lpng -lz -lm"
1532   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1533   CFLAGS="$old_CFLAGS"
1534   LDFLAGS="$old_LDFLAGS"
1535   LIBS="$old_LIBS"
1536 else
1537   LIBGD=no
1539 AC_MSG_RESULT($LIBGD)
1540 AC_SUBST(LIBGD)
1542 dnl check for the size of 'long double'.
1543 AC_CHECK_SIZEOF(long double, 0)
1544 sizeof_long_double=$ac_cv_sizeof_long_double
1545 AC_SUBST(sizeof_long_double)
1547 ### End of automated tests.
1548 ### Now run sysdeps configure fragments.
1550 # sysdeps configure fragments may set these with files to be linked below.
1551 libc_link_dests=
1552 libc_link_sources=
1554 # They also can set these variables.
1555 use_ldconfig=no
1556 ldd_rewrite_script=no
1557 libc_cv_sysconfdir=$sysconfdir
1558 libc_cv_gcc_unwind_find_fde=no
1560 # Iterate over all the sysdep directories we will use, running their
1561 # configure fragments, and looking for a uname implementation.
1562 uname=
1563 for dir in $sysnames; do
1564   case $dir in
1565     /*) dest=$dir ;;
1566     *)  dest=$srcdir/$dir ;;
1567   esac
1568   if test -r $dest/configure; then
1569     AC_MSG_RESULT(running configure fragment for $dest)
1570     . $dest/configure
1571   fi
1573   if test -z "$uname"; then
1574     if test -r $dest/uname.c ||
1575        test -r $dest/uname.S ||
1576        { test -r $dest/syscalls.list &&
1577          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1578       uname=$dir
1579     fi
1580   fi
1581 ]dnl
1582 done
1584 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1585   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1587 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1589 AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1591 # If we will use the generic uname implementation, we must figure out what
1592 # it will say by examining the system, and write the results in config-name.h.
1593 if test "$uname" = "sysdeps/generic"; then
1595 changequote(,)dnl
1596   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1597 changequote([,])dnl
1598   if test $uname_sysname != $config_os; then
1599     config_release=`echo $config_os | sed s/$uname_sysname//`
1600   fi
1602 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1603     if test -r /vmunix; then
1604       kernel_id=`strings /vmunix | grep UNIX`
1605     elif test -r /dynix; then
1606       kernel_id=`strings /dynix | grep DYNIX`
1607     else
1608       kernel_id=
1609     fi
1610 ])dnl
1612   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1613 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1614 changequote(,)dnl
1615   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1616 changequote([,])dnl
1617   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1618          != x$config_release; then
1619     # The configuration release is a substring of the kernel release.
1620     libc_cv_uname_release=$kernel_release
1621   elif test x$config_release != x; then
1622     libc_cv_uname_release=$config_release
1623   elif test x$kernel_release != x; then
1624     libc_cv_uname_release=$kernel_release
1625   else
1626     libc_cv_uname_release=unknown
1627   fi])
1628   uname_release="$libc_cv_uname_release"
1630   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1631 AC_REQUIRE([LIBC_KERNEL_ID])dnl
1632 changequote(,)dnl
1633   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1634 changequote([,])dnl
1635   if test -n "$kernel_version"; then
1636     libc_cv_uname_version="$kernel_version"
1637   else
1638     libc_cv_uname_version=unknown
1639   fi])
1640   uname_version="$libc_cv_uname_version"
1642 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1643   config_uname=config-name.h:config-name.in
1644 else
1645   # For non-generic uname, we don't need to create config-name.h at all.
1646   config_uname=
1649 AC_MSG_CHECKING(stdio selection)
1650 AC_SUBST(stdio)
1651 case $stdio in
1652 libio) AC_DEFINE(USE_IN_LIBIO) ;;
1653 default) stdio=stdio ;;
1654 esac
1655 AC_MSG_RESULT($stdio)
1657 # Test for old glibc 2.0.x headers so that they can be removed properly
1658 # Search only in includedir.
1659 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1660 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1661 then
1662   old_glibc_headers=yes
1663 else
1664   old_glibc_headers=no
1666 AC_MSG_RESULT($old_glibc_headers)
1667 if test ${old_glibc_headers} = yes; then
1668   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1669   AC_MSG_WARN(*** be removed.)
1671 AC_SUBST(old_glibc_headers)
1673 AC_SUBST(libc_cv_slibdir)
1674 AC_SUBST(libc_cv_localedir)
1675 AC_SUBST(libc_cv_sysconfdir)
1676 AC_SUBST(libc_cv_rootsbindir)
1678 AC_SUBST(use_ldconfig)
1679 AC_SUBST(ldd_rewrite_script)
1681 AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
1682 if test $gnu_ld = yes; then
1683   AC_DEFINE(HAVE_GNU_LD)
1685 if test $gnu_as = yes; then
1686   AC_DEFINE(HAVE_GNU_AS)
1688 if test $elf = yes; then
1689   AC_DEFINE(HAVE_ELF)
1691 if test $xcoff = yes; then
1692   AC_DEFINE(HAVE_XCOFF)
1695 AC_SUBST(static)
1696 AC_SUBST(shared)
1697 if test $shared = default; then
1698   if test $gnu_ld = yes; then
1699     shared=$elf
1700   else
1701     # For now we do not assume shared libs are available.  In future more
1702     # tests might become available.
1703     shared=no
1704   fi
1707 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1708 [pic_default=yes
1709 cat > conftest.c <<EOF
1710 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
1711 # error PIC is default.
1712 #endif
1714 if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1715   pic_default=no
1717 rm -f conftest.*])
1718 AC_SUBST(pic_default)
1720 AC_SUBST(profile)
1721 AC_SUBST(omitfp)
1722 AC_SUBST(bounded)
1723 AC_SUBST(static_nss)
1724 AC_SUBST(nopic_initfini)
1726 AC_SUBST(DEFINES)
1728 case "$add_ons" in
1729   *door*) linux_doors=yes ;;
1730   *) linux_doors=no ;;
1731 esac
1732 AC_SUBST(linux_doors)
1734 dnl See sysdeps/mach/configure.in for this variable.
1735 AC_SUBST(mach_interface_list)
1737 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1738   config_makefile=
1739 else
1740   config_makefile=Makefile
1743 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1744 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
1745 AC_SUBST(VERSION)
1746 AC_SUBST(RELEASE)
1748 AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1749 case $CONFIG_FILES in *config.make*)
1750 echo "$config_vars" >> config.make;;
1751 esac
1752 test -d bits || mkdir bits], [config_vars='$config_vars'])