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