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