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