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