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