[BZ #2119]
[glibc.git] / configure.in
blobb5d4e3ff4b15578f0ddc37f677b2e1e1bf49cc84
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])
9 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
10   AC_MSG_ERROR([you must configure in a separate build directory])
13 # This will get text that should go into config.make.
14 config_vars=
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
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
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
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
58 if test -n "$libgd_include"; then
59   config_vars="$config_vars
60 CFLAGS-memusagestat.c = $libgd_include"
62 if test -n "$libgd_ldflags"; then
63   config_vars="$config_vars
64 libgd-LDFLAGS = $libgd_ldflags"
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
105 AC_SUBST(with_cvs)
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=''])
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])
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])
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])
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")
175 AC_SUBST(oldest_abi)
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)
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])
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])
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])
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)
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)
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)
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)
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
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)
275 AC_CANONICAL_HOST
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
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
295 # Don't allow vendor == "unknown"
296 test "$config_vendor" = unknown && config_vendor=
297 config_os="`echo $config_os | sed 's/^unknown-//'`"
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
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
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"
328 # Braindead PowerPC box with absolutely no FPU.
329 case "$machine-$host_os" in
330   powerpc*-*soft)
331     with_fp=no
332     ;;
333 esac
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
347 # An add-on can set this when it the tuple to disable the sanity check below.
348 libc_config_ok=no
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()
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
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
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`"
406 AC_SUBST(add_ons)
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
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.
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
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)
501 if test "$base_machine" = "i386"; then
502   AC_DEFINE(USE_REGPARMS)
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'`"
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 ;;
534   base_os='' ;;
535 esac
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"
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"
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
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
578 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
579 changequote([,])dnl
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"
627 if test -z "$os_used" && test "$os" != none; then
628   AC_MSG_ERROR(Operating system $os is not supported.)
630 if test -z "$machine_used" && test "$machine" != none; then
631   AC_MSG_ERROR(The $machine is not supported.)
633 if test -z "$submachine_used" && test -n "$submachine"; then
634   AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
636 AC_SUBST(submachine)
638 # We have now validated the configuration.
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"
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
667   case " $names " in *" $name "*)
668     # Already in the list.
669     continue
670   esac
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
675   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
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
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
716   # Add NAME to the list of names.
717   names="$names $name"
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
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
735 # Add the default directories.
736 default_sysnames=sysdeps/generic
737 if test "$elf" = yes; then
738   default_sysnames="sysdeps/generic/elf $default_sysnames"
740 sysnames="$names $default_sysnames"
741 AC_SUBST(sysnames)
742 # The other names were emitted during the scan.
743 AC_MSG_RESULT($default_sysnames)
746 ### Locate tools.
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'
753 AC_PROG_LN_S
755 AC_PROG_CC
756 if test $host != $build; then
757   AC_CHECK_PROGS(BUILD_CC, gcc cc)
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
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")
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.)
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")
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")
806 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
807 case "x$AUTOCONF" in
808 xno|x|x:) AUTOCONF=no ;;
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"
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.])
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.])
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
849 AC_SUBST(SYSINCLUDES)
850 AC_SUBST(CXX_SYSINCLUDES)
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) {}
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
868 rm -rf conftest*])
869 if test "$libc_cv_ranlib_necessary" = no; then
870  RANLIB=:
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.])
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)
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
915 AC_SUBST(libc_cv_have_bash2)
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
930 AC_SUBST(libc_cv_have_ksh)
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
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)
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
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
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."
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.  */
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
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."
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
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
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)
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:
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})
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
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; }
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
1052 rm -f conftest*])
1053 if test $libc_cv_asm_set_directive = yes; then
1054   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
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
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})
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
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
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
1098   cat > conftest.map <<EOF
1099 VERS_1 {
1100         global: sym;
1103 VERS_2 {
1104         global: sym;
1105 } VERS_1;
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
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
1134 AC_SUBST(VERSIONING)
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)."
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
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
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:
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)
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;
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
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; }
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
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;
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
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
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;
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
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; }
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
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; }
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)
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; }
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)
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; }
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)
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
1384   AC_CACHE_CHECK(for -Bgroup option,
1385                  libc_cv_Bgroup, [dnl
1386   cat > conftest.c <<EOF
1387 int _start (void) { return 42; }
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)
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; }
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)
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; }
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)
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) { }
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)
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); }
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)
1484   AC_CACHE_CHECK(for -z execstack,
1485                  libc_cv_z_execstack, [dnl
1486   cat > conftest.c <<EOF
1487 int _start (void) { return 42; }
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)
1501   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1502   cat > conftest.c <<EOF
1503 int foo;
1504 main () { return 0;}
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*])
1515   AC_SUBST(libc_cv_fpie)
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;
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
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
1533 AC_SUBST(fno_unit_at_a_time)
1535 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1536 cat > conftest.c <<EOF
1537 int foo;
1538 main () { return 0;}
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
1547 rm -f conftest*])
1548 AC_SUBST(libc_cv_ssp)
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
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;
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
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; }
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])
1610 rm -f conftest*])
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
1626 if test $libc_cv_asm_underscores = no; then
1627   AC_DEFINE(NO_UNDERSCORES)
1630 if test $elf = yes; then
1631   libc_cv_weak_symbols=yes
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
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
1648 rm -f conftest*])
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:
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*])
1670 fi # no .weak
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)
1678 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1679 case $machine in
1680   sparc/sparc64*) cfi_offset=2047;;
1681   *) cfi_offset=0;;
1682 esac
1683 cat > conftest.s <<EOF
1684         .text
1685         .type   func,%function
1686 func:
1687         .cfi_startproc
1688         .cfi_remember_state
1689         .cfi_rel_offset 1, $cfi_offset
1690         .cfi_endproc
1692 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1693   libc_cv_asm_cfi_directives=yes
1694 else
1695   libc_cv_asm_cfi_directives=no
1697 rm -f conftest*])
1698 if test $libc_cv_asm_cfi_directives = yes; then
1699   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1702 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1703 cat > conftest.c <<\EOF
1704 _start () {}
1705 int __eh_pc;
1706 __throw () {}
1708 dnl No \ in command here because it ends up inside ''.
1709 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1710                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1711                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1712   libc_cv_ld_no_whole_archive=yes
1713 else
1714   libc_cv_ld_no_whole_archive=no
1716 rm -f conftest*])
1717 if test $libc_cv_ld_no_whole_archive = yes; then
1718   no_whole_archive=-Wl,--no-whole-archive
1720 AC_SUBST(no_whole_archive)dnl
1722 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1723 cat > conftest.c <<\EOF
1724 _start () {}
1725 int __eh_pc;
1726 __throw () {}
1728 dnl No \ in command here because it ends up inside ''.
1729 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1730                             -nostdlib -nostartfiles -fexceptions
1731                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1732   libc_cv_gcc_exceptions=yes
1733 else
1734   libc_cv_gcc_exceptions=no
1736 rm -f conftest*])
1737 if test $libc_cv_gcc_exceptions = yes; then
1738   exceptions=-fexceptions
1740 AC_SUBST(exceptions)dnl
1742 if test "$host_cpu" = powerpc ; then
1743 # Check for a bug present in at least versions 2.8.x of GCC
1744 # and versions 1.0.x of EGCS.
1745 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1746 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1747                libc_cv_c_asmcr0_bug='no',
1748                libc_cv_c_asmcr0_bug='yes')])
1749 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1750   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1754 AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1755 [cat > conftest.c <<EOF
1756 #line $LINENO "configure"
1757 static char *__EH_FRAME_BEGIN__;
1758 _start ()
1760 #ifdef CHECK__register_frame
1761   __register_frame (__EH_FRAME_BEGIN__);
1762   __deregister_frame (__EH_FRAME_BEGIN__);
1763 #endif
1764 #ifdef CHECK__register_frame_info
1765   __register_frame_info (__EH_FRAME_BEGIN__);
1766   __deregister_frame_info (__EH_FRAME_BEGIN__);
1767 #endif
1769 int __eh_pc;
1770 __throw () {}
1771 /* FIXME: this is fragile.  */
1772 malloc () {}
1773 strcmp () {}
1774 strlen () {}
1775 memcpy () {}
1776 memset () {}
1777 free () {}
1778 abort () {}
1779 __bzero () {}
1780 dl_iterate_phdr () {}
1782 libc_unwind_check="${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame_info \
1783                             $LDFLAGS \
1784                             -nostdlib -nostartfiles -o conftest conftest.c \
1785                             -lgcc"
1786 # Some platforms' specs put -lgcc first.  The second one doesn't hurt.
1787 if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]) ||
1788    AC_TRY_COMMAND([$libc_unwind_check -lgcc_eh -lgcc >&AS_MESSAGE_LOG_FD])
1789 then
1790   if $libc_unwind_check -v 2>&1 >/dev/null \
1791      | grep -- --eh-frame-hdr 2>&1 >/dev/null; then
1792     libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
1793   else
1794     libc_cv_gcc_dwarf2_unwind_info=static
1795   fi
1796 else
1797   libc_cv_gcc_dwarf2_unwind_info=no
1799 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1800   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -DCHECK__register_frame
1801                               $LDFLAGS -nostdlib -nostartfiles
1802                               -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1803     libc_cv_gcc_dwarf2_unwind_info=yes
1804   else
1805     libc_cv_gcc_dwarf2_unwind_info=no
1806   fi
1808 rm -f conftest*])
1809 case $libc_cv_gcc_dwarf2_unwind_info in
1810 yes)
1811   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1812   ;;
1813 static)
1814   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1815   AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1816   ;;
1817 esac
1819 dnl Check whether compiler understands __builtin_expect.
1820 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1821 [cat > conftest.c <<EOF
1822 #line $LINENO "configure"
1823 int foo (int a)
1825   a = __builtin_expect (a, 10);
1826   return a == 10 ? 0 : 1;
1829 dnl No \ in command here because it ends up inside ''.
1830 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1831                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1832   libc_cv_gcc_builtin_expect=yes
1833 else
1834   libc_cv_gcc_builtin_expect=no
1836 rm -f conftest*])
1837 if test "$libc_cv_gcc_builtin_expect" = yes; then
1838   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1841 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1842 cat > conftest.c <<\EOF
1843 void zero (void *x)
1845   __builtin_memset (x, 0, 1000);
1849 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1850 then
1851   libc_cv_gcc_builtin_memset=no
1852 else
1853   libc_cv_gcc_builtin_memset=yes
1855 rm -f conftest* ])
1856 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1857   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1860 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1861 cat > conftest.c <<\EOF
1862 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1863 char *foo (const char *a, const char *b)
1865   return __builtin_strstr (a, b);
1869 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1870 then
1871   libc_cv_gcc_builtin_redirection=yes
1872 else
1873   libc_cv_gcc_builtin_redirection=no
1875 rm -f conftest* ])
1876 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1877   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1880 dnl Check whether the compiler supports the __thread keyword.
1881 if test "x$use__thread" != xno; then
1882   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1883   [cat > conftest.c <<\EOF
1884 __thread int a = 42;
1886   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1887     libc_cv_gcc___thread=yes
1888   else
1889     libc_cv_gcc___thread=no
1890   fi
1891   rm -f conftest*])
1892   if test "$libc_cv_gcc___thread" = yes; then
1893     AC_DEFINE(HAVE___THREAD)
1894   fi
1895 else
1896   libc_cv_gcc___thread=no
1899 if test "$libc_cv_gcc___thread" = yes; then
1900   dnl Check whether the compiler supports the tls_model attribute.
1901   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1902   cat > conftest.c <<\EOF
1903 extern __thread int a __attribute__((tls_model ("initial-exec")));
1905   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1906     libc_cv_gcc_tls_model_attr=yes
1907   else
1908     libc_cv_gcc_tls_model_attr=no
1909   fi
1910   rm -f conftest*])
1911   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1912     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1913   fi
1916 dnl Check whether we have the gd library available.
1917 AC_MSG_CHECKING(for libgd)
1918 if test "$with_gd" != "no"; then
1919   old_CFLAGS="$CFLAGS"
1920   CFLAGS="$CFLAGS $libgd_include"
1921   old_LDFLAGS="$LDFLAGS"
1922   LDFLAGS="$LDFLAGS $libgd_ldflags"
1923   old_LIBS="$LIBS"
1924   LIBS="$LIBS -lgd -lpng -lz -lm"
1925   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1926   CFLAGS="$old_CFLAGS"
1927   LDFLAGS="$old_LDFLAGS"
1928   LIBS="$old_LIBS"
1929 else
1930   LIBGD=no
1932 AC_MSG_RESULT($LIBGD)
1933 AC_SUBST(LIBGD)
1935 # SELinux detection
1936 if test x$with_selinux = xno ; then
1937   have_selinux=no;
1938 else
1939   # See if we have the SELinux library
1940   AC_CHECK_LIB(selinux, is_selinux_enabled,
1941                have_selinux=yes, have_selinux=no)
1942   # See if we have the SELinux header with the NSCD permissions in it.
1943   if test x$have_selinux = xyes ; then
1944     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
1945     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
1946                     [#ifdef NSCD__SHMEMHOST
1947                      return 0;
1948                      #else
1949                      #error NSCD__SHMEMHOST not defined
1950                      #endif],
1951                     have_selinux=yes, have_selinux=no)
1952     AC_MSG_RESULT($have_selinux)
1953   fi
1955   if test x$with_selinux = xyes ; then
1956     if test x$have_selinux = xno ; then
1957       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
1958     fi
1959   fi
1961 # Check if we're building with SELinux support.
1962 if test "x$have_selinux" = xyes; then
1963   AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
1965   # See if we have the libaudit library
1966   AC_CHECK_LIB(audit, audit_log_user_avc_message,
1967                have_libaudit=yes, have_libaudit=no)
1968   if test "x$have_libaudit" = xyes; then
1969     AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
1970   fi
1971   AC_SUBST(have_libaudit)
1973 AC_SUBST(have_selinux)
1975 dnl check for the size of 'long double'.
1976 AC_CHECK_SIZEOF(long double, 0)
1977 sizeof_long_double=$ac_cv_sizeof_long_double
1978 AC_SUBST(sizeof_long_double)
1980 ### End of automated tests.
1981 ### Now run sysdeps configure fragments.
1983 # They also can set these variables.
1984 use_ldconfig=no
1985 ldd_rewrite_script=no
1986 libc_cv_sysconfdir=$sysconfdir
1987 libc_cv_gcc_unwind_find_fde=no
1988 libc_cv_idn=no
1990 # Iterate over all the sysdep directories we will use, running their
1991 # configure fragments, and looking for a uname implementation.
1992 uname=
1993 for dir in $sysnames; do
1994   case $dir in
1995     /*) dest=$dir ;;
1996     *)  dest=$srcdir/$dir ;;
1997   esac
1998   if test -r $dest/configure; then
1999     AC_MSG_RESULT(running configure fragment for $dir)
2000     . $dest/configure
2001   fi
2003   if test -z "$uname"; then
2004     if test -r $dest/uname.c ||
2005        test -r $dest/uname.S ||
2006        { test -r $dest/syscalls.list &&
2007          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
2008       uname=$dir
2009     fi
2010   fi
2011 ]dnl
2012 done
2014 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2015   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2017 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2019 # If we will use the generic uname implementation, we must figure out what
2020 # it will say by examining the system, and write the results in config-name.h.
2021 if test "$uname" = "sysdeps/generic"; then
2023 changequote(,)dnl
2024   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
2025 changequote([,])dnl
2026   if test $uname_sysname != $config_os; then
2027     config_release=`echo $config_os | sed s/$uname_sysname//`
2028   fi
2030 AC_DEFUN(LIBC_KERNEL_ID, [dnl
2031     if test -r /vmunix; then
2032       kernel_id=`strings /vmunix | grep UNIX`
2033     elif test -r /dynix; then
2034       kernel_id=`strings /dynix | grep DYNIX`
2035     else
2036       kernel_id=
2037     fi
2038 ])dnl
2040   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
2041 LIBC_KERNEL_ID
2042 changequote(,)dnl
2043   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
2044 changequote([,])dnl
2045   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
2046          != x$config_release; then
2047     # The configuration release is a substring of the kernel release.
2048     libc_cv_uname_release=$kernel_release
2049   elif test x$config_release != x; then
2050     libc_cv_uname_release=$config_release
2051   elif test x$kernel_release != x; then
2052     libc_cv_uname_release=$kernel_release
2053   else
2054     libc_cv_uname_release=unknown
2055   fi])
2056   uname_release="$libc_cv_uname_release"
2058   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2059 LIBC_KERNEL_ID
2060 changequote(,)dnl
2061   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2062 changequote([,])dnl
2063   if test -n "$kernel_version"; then
2064     libc_cv_uname_version="$kernel_version"
2065   else
2066     libc_cv_uname_version=unknown
2067   fi])
2068   uname_version="$libc_cv_uname_version"
2070 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2071   config_uname=config-name.h:config-name.in
2072 else
2073   # For non-generic uname, we don't need to create config-name.h at all.
2074   config_uname=
2077 dnl This is tested by existing code and it's simpler to avoid changing it.
2078 AC_DEFINE(USE_IN_LIBIO)
2080 # Test for old glibc 2.0.x headers so that they can be removed properly
2081 # Search only in includedir.
2082 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2083 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2084 then
2085   old_glibc_headers=yes
2086 else
2087   old_glibc_headers=no
2089 AC_MSG_RESULT($old_glibc_headers)
2090 if test ${old_glibc_headers} = yes; then
2091   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2092   AC_MSG_WARN(*** be removed.)
2094 AC_SUBST(old_glibc_headers)
2096 AC_SUBST(libc_cv_slibdir)
2097 AC_SUBST(libc_cv_localedir)
2098 AC_SUBST(libc_cv_sysconfdir)
2099 AC_SUBST(libc_cv_rootsbindir)
2100 AC_SUBST(libc_cv_forced_unwind)
2102 AC_SUBST(use_ldconfig)
2103 AC_SUBST(ldd_rewrite_script)
2105 AC_SUBST(elf) AC_SUBST(xcoff)
2106 if test $elf = yes; then
2107   AC_DEFINE(HAVE_ELF)
2109 if test $xcoff = yes; then
2110   AC_DEFINE(HAVE_XCOFF)
2113 AC_SUBST(static)
2114 AC_SUBST(shared)
2115 if test $shared = default; then
2116   shared=$elf
2119 if test x"$libc_cv_idn" = xyes; then
2120   AC_DEFINE(HAVE_LIBIDN)
2123 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2124 [pic_default=yes
2125 cat > conftest.c <<EOF
2126 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2127 # error PIC is default.
2128 #endif
2130 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2131   pic_default=no
2133 rm -f conftest.*])
2134 AC_SUBST(pic_default)
2136 AC_SUBST(profile)
2137 AC_SUBST(omitfp)
2138 AC_SUBST(bounded)
2139 AC_SUBST(static_nss)
2140 AC_SUBST(nopic_initfini)
2142 AC_SUBST(DEFINES)
2144 dnl See sysdeps/mach/configure.in for this variable.
2145 AC_SUBST(mach_interface_list)
2147 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2148   config_makefile=
2149 else
2150   config_makefile=Makefile
2153 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2154 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2155 AC_SUBST(VERSION)
2156 AC_SUBST(RELEASE)
2158 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2159 AC_CONFIG_COMMANDS([default],[[
2160 case $CONFIG_FILES in *config.make*)
2161 echo "$config_vars" >> config.make;;
2162 esac
2163 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2164 AC_OUTPUT