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