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