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