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