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