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