* timezone/antarctica: Update from tzdata2006b (comment changes only).
[glibc.git] / configure.in
blob6d91fcacea2afed0b13d354a4b7dc9ea7df1be4c
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 powerpc)        base_machine=powerpc machine=powerpc/powerpc32 ;;
452 powerpc64)      base_machine=powerpc machine=powerpc/powerpc64 ;;
453 s390)           base_machine=s390 machine=s390/s390-32 ;;
454 s390x)          base_machine=s390 machine=s390/s390-64 ;;
455 sh3*)           base_machine=sh machine=sh/sh3 ;;
456 sh4*)           base_machine=sh machine=sh/sh4 ;;
457 sparc | sparcv[67])
458                 base_machine=sparc machine=sparc/sparc32 ;;
459 sparcv8 | supersparc | hypersparc)
460                 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
461 sparcv8plus | sparcv8plusa | sparcv9)
462                 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
463 sparcv8plusb | sparcv9b)
464                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;;
465 sparc64)
466                 base_machine=sparc machine=sparc/sparc64 ;;
467 sparc64b)
468                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
469 *)              base_machine=$machine ;;
470 esac
471 changequote([,])dnl
472 AC_SUBST(base_machine)
474 if test "$base_machine" = "i386"; then
475   AC_DEFINE(USE_REGPARMS)
478 # Compute the list of sysdep directories for this configuration.
479 # This can take a while to compute.
480 sysdep_dir=$srcdir/sysdeps
481 AC_MSG_CHECKING(sysdep dirs)
482 dnl We need to use [ and ] for other purposes for a while now.
483 changequote(,)dnl
484 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
485 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
487 case "$os" in
488 gnu*)
489   base_os=mach/hurd ;;
490 netbsd* | 386bsd* | freebsd* | bsdi*)
491   base_os=unix/bsd/bsd4.4 ;;
492 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
493   base_os=unix/bsd ;;
494 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
495   base_os=unix/sysv ;;
496 irix6*)
497   base_os=unix/sysv/irix6/$os ;;
498 solaris[2-9]*)
499   base_os=unix/sysv/sysv4 ;;
500 hpux*)
501   base_os=unix/sysv/hpux/$os ;;
502 aix4.3*)
503   base_os=unix/sysv/aix/aix4.3 ;;
504 none)
505   base_os=standalone ;;
507   base_os='' ;;
508 esac
510 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
511 tail=$os
512 ostry=$os
513 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
514   ostry="$ostry /$o"
515   tail=$o
516 done
517 o=`echo $tail | sed 's/[0-9]*$//'`
518 if test $o != $tail; then
519   ostry="$ostry /$o"
521 # For linux-gnu, try linux-gnu, then linux.
522 o=`echo $tail | sed 's/-.*$//'`
523 if test $o != $tail; then
524   ostry="$ostry /$o"
527 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
528 base=
529 tail=$base_os
530 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
531   set $b
532   base="$base /$1"
533   tail="$2"
534 done
536 # For sparc/sparc32, try sparc/sparc32 and then sparc.
537 mach=
538 tail=$machine${submachine:+/$submachine}
539 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
540   set $m
541   # Prepend the machine's FPU directory unless --without-fp.
542   if test "$with_fp" = yes; then
543     mach="$mach /$1/fpu"
544   else
545     mach="$mach /$1/nofpu"
546   fi
547   mach="$mach /$1"
548   tail="$2"
549 done
551 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
552 changequote([,])dnl
554 # Find what sysdep directories exist.
555 sysnames=
556 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
557 for b in $base ''; do
558   for m0 in $mach ''; do
559     for v in /$vendor ''; do
560       test "$v" = / && continue
561       for o in /$ostry ''; do
562         test "$o" = / && continue
563         for m in $mach ''; do
564           for d in $add_ons_pfx ''; do
565             for a in $add_ons_sfx ''; do
566               if test "$m0$m0sub$b$v$o$m$msub"; then
567                 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
568                 test -n "$enable_debug_configure" &&
569                 echo "$0 [DEBUG]: try $try" >&2
570                 if test -d $srcdir/$try; then
571                   sysnames="$sysnames $try"
572                   { test -n "$o" || test -n "$b"; } && os_used=t
573                   { test -n "$m" || test -n "$m0"; } && machine_used=t
574                   case x${m0:-$m} in
575                   x*/$submachine) submachine_used=t ;;
576                   esac
577                 fi
578               fi
579             done
580           done
581         done
582       done
583     done
584   done
585 done
586 for d in $add_ons_pfx ''; do
587   for a in $add_ons_sfx ''; do
588     if test -n "$d" && test "$d" != "$a"; then
589       try="${d}sysdeps/generic${a}"
590       test -n "$enable_debug_configure" &&
591       echo "$0 DEBUG: try $try" >&2
592       if test -d $srcdir/$try; then
593         sysnames="$sysnames $try"
594       fi
595     fi
596   done
597 done
598 IFS="$ac_save_ifs"
600 if test -z "$os_used" && test "$os" != none; then
601   AC_MSG_ERROR(Operating system $os is not supported.)
603 if test -z "$machine_used" && test "$machine" != none; then
604   AC_MSG_ERROR(The $machine is not supported.)
606 if test -z "$submachine_used" && test -n "$submachine"; then
607   AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
609 AC_SUBST(submachine)
611 # We have now validated the configuration.
614 # If using ELF, look for an `elf' subdirectory of each machine directory.
615 # We prepend these rather than inserting them whereever the machine appears
616 # because things specified by the machine's ELF ABI should override
617 # OS-specific things, and should always be the same for any OS on the
618 # machine (otherwise what's the point of an ABI?).
619 if test "$elf" = yes; then
620   elf_dirs=
621   for d in $add_ons_pfx ''; do
622     for m in $mach; do
623       if test -d $srcdir/${d}sysdeps$m/elf; then
624         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
625       fi
626     done
627   done
628   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
632 # Expand the list of system names into a full list of directories
633 # from each element's parent name and Implies file (if present).
634 set $sysnames
635 names=
636 while test $# -gt 0; do
637   name=$1
638   shift
640   case " $names " in *" $name "*)
641     # Already in the list.
642     continue
643   esac
645   # Report each name as we discover it, so there is no long pause in output.
646   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
648   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
650   case $name in
651     /*) xsrcdir= ;;
652     *)  xsrcdir=$srcdir/ ;;
653   esac
654   test -n "$enable_debug_configure" &&
655   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
657   if test -f $xsrcdir$name/Implies; then
658     # Collect more names from the `Implies' file (removing comments).
659     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
660     implied=
661     for x in $implied_candidate; do
662       found=no
663       if test -d $xsrcdir$name_base/$x; then
664         implied="$implied $name_base/$x";
665         found=yes
666       fi
667       for d in $add_ons_pfx ''; do
668         try="${d}sysdeps/$x"
669         case $d in
670          /*) try_srcdir= ;;
671          *) try_srcdir=$srcdir/ ;;
672         esac
673         test -n "$enable_debug_configure" &&
674          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
675         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
676         then
677           implied="$implied $try"
678           found=yes
679         fi
680       done
681       if test $found = no; then
682         AC_MSG_WARN($name/Implies specifies nonexistent $x)
683       fi
684     done
685   else
686     implied=
687   fi
689   # Add NAME to the list of names.
690   names="$names $name"
692   # Find the parent of NAME, using the empty string if it has none.
693 changequote(,)dnl
694   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
695 changequote([,])dnl
697   # Add the names implied by NAME, and NAME's parent (if it has one), to
698   # the list of names to be processed (the argument list).  We prepend the
699   # implied names to the list and append the parent.  We want implied
700   # directories to come before further directories inferred from the
701   # configuration components; this ensures that for sysv4, unix/common
702   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
703   # after sysv4).
704   sysnames="`echo $implied $* $parent`"
705   test -n "$sysnames" && set $sysnames
706 done
708 # Add the default directories.
709 default_sysnames=sysdeps/generic
710 if test "$elf" = yes; then
711   default_sysnames="sysdeps/generic/elf $default_sysnames"
713 sysnames="$names $default_sysnames"
714 AC_SUBST(sysnames)
715 # The other names were emitted during the scan.
716 AC_MSG_RESULT($default_sysnames)
719 ### Locate tools.
721 AC_PROG_INSTALL
722 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
723   # The makefiles need to use a different form to find it in $srcdir.
724   INSTALL='\$(..)./scripts/install-sh -c'
726 AC_PROG_LN_S
728 AC_PROG_CC
729 if test $host != $build; then
730   AC_CHECK_PROGS(BUILD_CC, gcc cc)
732 AC_SUBST(cross_compiling)
733 AC_PROG_CPP
734 # We need the C++ compiler only for testing.
735 AC_PROG_CXX
736 LIBC_PROG_BINUTILS
737 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
739 # Accept binutils 2.13 or newer.
740 AC_CHECK_PROG_VER(AS, $AS, --version,
741                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
742                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
743 AC_CHECK_PROG_VER(LD, $LD, --version,
744                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
745                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
747 # We need the physical current working directory.  We cannot use the
748 # "pwd -P" shell builtin since that's not portable.  Instead we try to
749 # find a pwd binary.  Note that assigning to the PWD environment
750 # variable might have some interesting side effects, so we don't do
751 # that.
752 AC_PATH_PROG(PWD_P, pwd, no)
753 if test "$PWD_P" = no; then
754   AC_MSG_ERROR(*** A pwd binary could not be found.)
757 # These programs are version sensitive.
758 AC_CHECK_TOOL_PREFIX
759 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
760   [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
761   critic_missing="$critic_missing gcc")
762 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
763   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
764   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
766 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
767   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
768   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
769   MSGFMT=: aux_missing="$aux_missing msgfmt")
770 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
771   [GNU texinfo.* \([0-9][0-9.]*\)],
772   [4.*],
773   MAKEINFO=: aux_missing="$aux_missing makeinfo")
774 AC_CHECK_PROG_VER(SED, sed, --version,
775   [GNU sed version \([0-9]*\.[0-9.]*\)],
776   [3.0[2-9]*|3.[1-9]*|[4-9]*],
777   SED=: aux_missing="$aux_missing sed")
779 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
780 case "x$AUTOCONF" in
781 xno|x|x:) AUTOCONF=no ;;
783   AC_CACHE_CHECK(dnl
784 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
785   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
786     libc_cv_autoconf_works=yes
787   else
788     libc_cv_autoconf_works=no
789   fi])
790   test $libc_cv_autoconf_works = yes || AUTOCONF=no
791   ;;
792 esac
793 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
794   # If --without-cvs they probably won't change configure.in, so no complaints.
795   aux_missing="$aux_missing autoconf"
798 test -n "$critic_missing" && AC_MSG_ERROR([
799 *** These critical programs are missing or too old:$critic_missing
800 *** Check the INSTALL file for required versions.])
802 test -n "$aux_missing" && AC_MSG_WARN([
803 *** These auxiliary programs are missing or incompatible versions:$aux_missing
804 *** some features will be disabled.
805 *** Check the INSTALL file for required versions.])
807 # if using special system headers, find out the compiler's sekrit
808 # header directory and add that to the list.  NOTE: Only does the right
809 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
810 if test -n "$sysheaders"; then
811   ccheaders=`$CC -print-file-name=include`
812   SYSINCLUDES="-nostdinc -isystem $ccheaders \
813 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
814   if test -n "$CXX"; then
815     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
816     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
817     cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
818     CXX_SYSINCLUDES="-isystem $cxxheaders \
819 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
820   fi
822 AC_SUBST(SYSINCLUDES)
823 AC_SUBST(CXX_SYSINCLUDES)
825 # check if ranlib is necessary
826 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
827 cat > conftest.c <<EOF
828 int a;
829 char b;
830 void c(void) {}
832 $CC $CFLAGS $CPPFLAGS -c conftest.c
833 $AR cr conftest.a conftest.o
834 cp conftest.a conftest2.a
835 $RANLIB conftest.a
836 if cmp -s conftest.a conftest2.a; then
837   libc_cv_ranlib_necessary=no
838 else
839   libc_cv_ranlib_necessary=yes
841 rm -rf conftest*])
842 if test "$libc_cv_ranlib_necessary" = no; then
843  RANLIB=:
846 # Test if LD_LIBRARY_PATH contains the notation for the current directory
847 # since this would lead to problems installing/building glibc.
848 # LD_LIBRARY_PATH contains the current directory if one of the following
849 # is true:
850 # - one of the terminals (":" and ";") is the first or last sign
851 # - two terminals occur directly after each other
852 # - the path contains an element with a dot in it
853 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
854 changequote(,)dnl
855 case ${LD_LIBRARY_PATH} in
856   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
857     ld_library_path_setting="contains current directory"
858     ;;
859   *)
860     ld_library_path_setting="ok"
861     ;;
862 esac
863 changequote([,])dnl
864 AC_MSG_RESULT($ld_library_path_setting)
865 if test "$ld_library_path_setting" != "ok"; then
866 AC_MSG_ERROR([
867 *** LD_LIBRARY_PATH shouldn't contain the current directory when
868 *** building glibc. Please change the environment variable
869 *** and run configure again.])
872 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
873 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
874   libc_cv_gcc_static_libgcc=
875 else
876   libc_cv_gcc_static_libgcc=-static-libgcc
877 fi])
878 AC_SUBST(libc_cv_gcc_static_libgcc)
880 AC_PATH_PROG(BASH, bash, no)
881 if test "$BASH" != no &&
882    $BASH -c 'test "$BASH_VERSINFO" \
883              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
884   libc_cv_have_bash2=yes
885 else
886   libc_cv_have_bash2=no
888 AC_SUBST(libc_cv_have_bash2)
890 dnl We need a ksh compatible shell for tzselect.
891 if test "$BASH" = no; then
892   AC_PATH_PROG(KSH, ksh, no)
893   if test "$KSH" = no; then
894     libc_cv_have_ksh=no
895   else
896     libc_cv_have_ksh=yes
897   fi
898 else
899   KSH="$BASH"
900   AC_SUBST(KSH)
901   libc_cv_have_ksh=yes
903 AC_SUBST(libc_cv_have_ksh)
905 AC_PROG_AWK
906 AC_PATH_PROG(PERL, perl, no)
907 if test "$PERL" != no &&
908    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
909   PERL=no
911 AC_PATH_PROG(INSTALL_INFO, install-info, no,
912              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
913 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
915 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
916 echo '#include <stddef.h>
917 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
918 if eval "$ac_cpp conftest.c 2>/dev/null" \
919 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
920   libc_cv_signed_size_t=no
921 else
922   libc_cv_signed_size_t=yes
924 rm -f conftest*])
925 if test $libc_cv_signed_size_t = yes; then
926   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
927   cat >> confdefs.h <<\EOF
928 #undef __SIZE_TYPE__
929 #define __SIZE_TYPE__ unsigned
933 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
934 AC_TRY_COMPILE(dnl
935 [#define __need_size_t
936 #define __need_wchar_t
937 #include <stddef.h>
938 #define __need_NULL
939 #include <stddef.h>], [size_t size; wchar_t wchar;
940 #ifdef offsetof
941 #error stddef.h ignored __need_*
942 #endif
943 if (&size == NULL || &wchar == NULL) abort ();],
944                libc_cv_friendly_stddef=yes,
945                libc_cv_friendly_stddef=no)])
946 if test $libc_cv_friendly_stddef = yes; then
947   config_vars="$config_vars
948 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
951 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
952                libc_cv_need_minus_P, [dnl
953 cat > conftest.S <<EOF
954 #include "confdefs.h"
955 /* Nothing whatsoever.  */
957 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
958   libc_cv_need_minus_P=no
959 else
960   libc_cv_need_minus_P=yes
962 rm -f conftest*])
963 if test $libc_cv_need_minus_P = yes; then
964   config_vars="$config_vars
965 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
968 AC_MSG_CHECKING(whether .text pseudo-op must be used)
969 AC_CACHE_VAL(libc_cv_dot_text, [dnl
970 cat > conftest.s <<EOF
971 .text
973 libc_cv_dot_text=
974 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
975   libc_cv_dot_text=.text
977 rm -f conftest*])
978 if test -z "$libc_cv_dot_text"; then
979   AC_MSG_RESULT(no)
980 else
981   AC_MSG_RESULT(yes)
984 AC_CACHE_CHECK(for assembler global-symbol directive,
985                libc_cv_asm_global_directive, [dnl
986 libc_cv_asm_global_directive=UNKNOWN
987 for ac_globl in .globl .global .EXPORT; do
988   cat > conftest.s <<EOF
989         ${libc_cv_dot_text}
990         ${ac_globl} foo
991 foo:
993   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
994     libc_cv_asm_global_directive=${ac_globl}
995   fi
996   rm -f conftest*
997   test $libc_cv_asm_global_directive != UNKNOWN && break
998 done])
999 if test $libc_cv_asm_global_directive = UNKNOWN; then
1000   AC_MSG_ERROR(cannot determine asm global directive)
1001 else
1002   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
1005 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1006 cat > conftest.s <<EOF
1007 ${libc_cv_dot_text}
1008 foo:
1009 .set glibc_conftest_frobozz,foo
1010 $libc_cv_asm_global_directive glibc_conftest_frobozz
1012 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1013 # (but it doesn't work), so we must do a linking check to be sure.
1014 cat > conftest1.c <<\EOF
1015 extern int glibc_conftest_frobozz;
1016 void _start() { glibc_conftest_frobozz = 1; }
1018 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1019             -nostartfiles -nostdlib \
1020             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1021   libc_cv_asm_set_directive=yes
1022 else
1023   libc_cv_asm_set_directive=no
1025 rm -f conftest*])
1026 if test $libc_cv_asm_set_directive = yes; then
1027   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1030 AC_CACHE_CHECK(for assembler .type directive prefix,
1031                libc_cv_asm_type_prefix, [dnl
1032 libc_cv_asm_type_prefix=no
1033 for ac_try_prefix in '@' '%' '#'; do
1034   cat > conftest.s <<EOF
1035         ${libc_cv_dot_text}
1036         ${libc_cv_asm_global_directive} foo
1037         .type foo, ${ac_try_prefix}object
1038         .size foo, 1
1039 foo:
1040         .byte 1
1042   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1043     libc_cv_asm_type_prefix=${ac_try_prefix}
1044   fi
1045   rm -f conftest*
1046   test "x$libc_cv_asm_type_prefix" != xno && break
1047 done])
1048 if test "x$libc_cv_asm_type_prefix" != xno; then
1049   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1052 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1053 [cat > conftest.s <<EOF
1054 ${libc_cv_dot_text}
1055 _sym:
1056 .symver _sym,sym@VERS
1058 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1059   libc_cv_asm_symver_directive=yes
1060 else
1061   libc_cv_asm_symver_directive=no
1063 rm -f conftest*])
1064 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1065 if test $libc_cv_asm_symver_directive = yes; then
1066   cat > conftest.s <<EOF
1067 ${libc_cv_dot_text}
1068 _sym:
1069 .symver _sym,sym@VERS
1071   cat > conftest.map <<EOF
1072 VERS_1 {
1073         global: sym;
1076 VERS_2 {
1077         global: sym;
1078 } VERS_1;
1080   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1081     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1082                                 -o conftest.so conftest.o
1083                                 -nostartfiles -nostdlib
1084                                 -Wl,--version-script,conftest.map
1085                        1>&AS_MESSAGE_LOG_FD]);
1086     then
1087       libc_cv_ld_version_script_option=yes
1088     else
1089       libc_cv_ld_version_script_option=no
1090     fi
1091   else
1092     libc_cv_ld_version_script_option=no
1093   fi
1094 else
1095   libc_cv_ld_version_script_option=no
1097 rm -f conftest*])
1098 if test $shared != no &&
1099    test $libc_cv_asm_symver_directive = yes &&
1100    test $libc_cv_ld_version_script_option = yes &&
1101    test $enable_versioning = yes; then
1102   VERSIONING=yes
1103   AC_DEFINE(DO_VERSIONING)
1104 else
1105   VERSIONING=no
1107 AC_SUBST(VERSIONING)
1109 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1110   echo "\
1111 *** WARNING: You should not compile GNU libc without versioning. Not using
1112 *** versioning will introduce incompatibilities so that old binaries
1113 *** will not run anymore.
1114 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1116 if test $elf = yes; then
1117   AC_CACHE_CHECK(for .previous assembler directive,
1118                  libc_cv_asm_previous_directive, [dnl
1119   cat > conftest.s <<EOF
1120 .section foo_section
1121 .previous
1123   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1124     libc_cv_asm_previous_directive=yes
1125   else
1126     libc_cv_asm_previous_directive=no
1127   fi
1128   rm -f conftest*])
1129   if test $libc_cv_asm_previous_directive = yes; then
1130     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1131   else
1132     AC_CACHE_CHECK(for .popsection assembler directive,
1133                    libc_cv_asm_popsection_directive, [dnl
1134     cat > conftest.s <<EOF
1135 .pushsection foo_section
1136 .popsection
1138     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1139       libc_cv_asm_popsection_directive=yes
1140     else
1141       libc_cv_asm_popsection_directive=no
1142     fi
1143     rm -f conftest*])
1144     if test $libc_cv_asm_popsection_directive = yes; then
1145       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1146     fi
1147   fi
1148   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1149                  libc_cv_asm_protected_directive, [dnl
1150   cat > conftest.s <<EOF
1151 .protected foo
1152 foo:
1153 .hidden bar
1154 bar:
1156   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1157     libc_cv_asm_protected_directive=yes
1158   else
1159     libc_cv_asm_protected_directive=no
1160   fi
1161   rm -f conftest*])
1162   AC_SUBST(libc_cv_asm_protected_directive)
1163   AC_DEFINE(HAVE_PROTECTED)
1164   AC_DEFINE(HAVE_HIDDEN)
1166   if test $libc_cv_asm_protected_directive = yes; then
1167     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1168                  libc_cv_visibility_attribute,
1169                  [cat > conftest.c <<EOF
1170                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1171                   int bar __attribute__ ((visibility ("protected"))) = 1;
1173                   libc_cv_visibility_attribute=no
1174                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1175                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1176                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1177                         libc_cv_visibility_attribute=yes
1178                       fi
1179                     fi
1180                   fi
1181                   rm -f conftest.[cs]
1182                  ])
1183     if test $libc_cv_visibility_attribute = yes; then
1184       AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1185     fi
1186   fi
1188   if test $libc_cv_visibility_attribute = yes; then
1189     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1190                  libc_cv_broken_visibility_attribute,
1191                  [cat > conftest.c <<EOF
1192                   int foo (int x);
1193                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1194                   int bar (int x) { return x; }
1196                   libc_cv_broken_visibility_attribute=yes
1197                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1198 changequote(,)dnl
1199                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1200 changequote([,])dnl
1201                       libc_cv_broken_visibility_attribute=no
1202                     fi
1203                   fi
1204                   rm -f conftest.c conftest.s
1205                  ])
1206     if test $libc_cv_broken_visibility_attribute = yes; then
1207       AC_DEFINE(HAVE_BROKEN_VISIBILITY_ATTRIBUTE)
1208     fi
1209   fi
1211   AC_CACHE_CHECK(for broken __attribute__((alias())),
1212                  libc_cv_broken_alias_attribute,
1213                  [cat > conftest.c <<EOF
1214                   extern int foo (int x) __asm ("xyzzy");
1215                   int bar (int x) { return x; }
1216                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1217                   extern int dfoo;
1218                   extern __typeof (dfoo) dfoo __asm ("abccb");
1219                   int dfoo = 1;
1221                   libc_cv_broken_alias_attribute=yes
1222                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1223                     if grep 'xyzzy' conftest.s >/dev/null &&
1224                        grep 'abccb' conftest.s >/dev/null; then
1225                       libc_cv_broken_alias_attribute=no
1226                     fi
1227                   fi
1228                   rm -f conftest.c conftest.s
1229                  ])
1230   if test $libc_cv_broken_alias_attribute = yes; then
1231     AC_DEFINE(HAVE_BROKEN_ALIAS_ATTRIBUTE)
1232   fi
1234   if test $libc_cv_visibility_attribute = yes; then
1235     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1236                  libc_cv_have_sdata_section,
1237                  [echo "int i;" > conftest.c
1238                   libc_cv_have_sdata_section=no
1239                   if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1240                      | grep '\.sdata' >/dev/null; then
1241                     libc_cv_have_sdata_section=yes
1242                   fi
1243                   rm -f conftest.c conftest.so
1244                  ])
1245     if test $libc_cv_have_sdata_section = yes; then
1246       AC_DEFINE(HAVE_SDATA_SECTION)
1247     fi
1248   fi
1250   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1251                  libc_cv_initfini_array, [dnl
1252   cat > conftest.c <<EOF
1253 int _start (void) { return 0; }
1254 int __start (void) { return 0; }
1255 int foo (void) { return 1; }
1256 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1258   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1259                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1260   then
1261     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1262       libc_cv_initfini_array=yes
1263     else
1264       libc_cv_initfini_array=no
1265     fi
1266   else
1267     libc_cv_initfini_array=no
1268   fi
1269   rm -f conftest*])
1270   if test $libc_cv_initfini_array != yes; then
1271     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1272   fi
1274   AC_CACHE_CHECK(for libunwind-support in compiler,
1275                  libc_cv_cc_with_libunwind, [
1276     cat > conftest.c <<EOF
1277 int main (void) { return 0; }
1279     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1280        conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1281       libc_cv_cc_with_libunwind=yes
1282     else
1283       libc_cv_cc_with_libunwind=no
1284     fi
1285     rm -f conftest*])
1286   AC_SUBST(libc_cv_cc_with_libunwind)
1287   if test $libc_cv_cc_with_libunwind = yes; then
1288     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1289   fi
1291   AC_CACHE_CHECK(for -z nodelete option,
1292                  libc_cv_z_nodelete, [dnl
1293   cat > conftest.c <<EOF
1294 int _start (void) { return 42; }
1296   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1297                      -fPIC -shared -o conftest.so conftest.c
1298                      -nostartfiles -nostdlib
1299                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1300   then
1301     libc_cv_z_nodelete=yes
1302   else
1303     libc_cv_z_nodelete=no
1304   fi
1305   rm -f conftest*])
1306   AC_SUBST(libc_cv_z_nodelete)
1308   AC_CACHE_CHECK(for -z nodlopen option,
1309                  libc_cv_z_nodlopen, [dnl
1310   cat > conftest.c <<EOF
1311 int _start (void) { return 42; }
1313   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1314                         -fPIC -shared -o conftest.so conftest.c
1315                         -nostartfiles -nostdlib
1316                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1317   then
1318     libc_cv_z_nodlopen=yes
1319   else
1320     libc_cv_z_nodlopen=no
1321   fi
1322   rm -f conftest*])
1323   AC_SUBST(libc_cv_z_nodlopen)
1325   AC_CACHE_CHECK(for -z initfirst option,
1326                  libc_cv_z_initfirst, [dnl
1327   cat > conftest.c <<EOF
1328 int _start (void) { return 42; }
1330   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1331                         -fPIC -shared -o conftest.so conftest.c
1332                         -nostartfiles -nostdlib
1333                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1334   then
1335     libc_cv_z_initfirst=yes
1336   else
1337     libc_cv_z_initfirst=no
1338   fi
1339   rm -f conftest*])
1340   AC_SUBST(libc_cv_z_initfirst)
1342   AC_CACHE_CHECK(for -z relro option,
1343                  libc_cv_z_relro, [dnl
1344   libc_cv_z_relro=no
1345   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1346   then
1347     if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1348     then
1349       libc_cv_z_relro=yes
1350     fi
1351   fi])
1352   AC_SUBST(libc_cv_z_relro)
1353   if test $libc_cv_z_relro = yes; then
1354     AC_DEFINE(HAVE_Z_RELRO)
1355   fi
1357   AC_CACHE_CHECK(for -Bgroup option,
1358                  libc_cv_Bgroup, [dnl
1359   cat > conftest.c <<EOF
1360 int _start (void) { return 42; }
1362   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1363                               -fPIC -shared -o conftest.so conftest.c
1364                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1365   then
1366     libc_cv_Bgroup=yes
1367   else
1368     libc_cv_Bgroup=no
1369   fi
1370   rm -f conftest*])
1371   AC_SUBST(libc_cv_Bgroup)
1373   AC_CACHE_CHECK(for libgcc_s suffix,
1374                  libc_cv_libgcc_s_suffix, [dnl
1375   cat > conftest.c <<EOF
1376 int main (void) { return 0; }
1378 changequote(,)dnl
1379   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1380                            -fPIC -shared -shared-libgcc -o conftest.so \
1381                            conftest.c -v 2>&1 >/dev/null \
1382                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1383 changequote([,])dnl
1384   rm -f conftest*])
1385   AC_SUBST(libc_cv_libgcc_s_suffix)
1387   AC_CACHE_CHECK(for --as-needed option,
1388                  libc_cv_as_needed, [dnl
1389   cat > conftest.c <<EOF
1390 int main (void) { return 0; }
1392   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1393                               -fPIC -shared -o conftest.so conftest.c
1394                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1395                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1396   then
1397     libc_cv_as_needed=yes
1398   else
1399     libc_cv_as_needed=no
1400   fi
1401   rm -f conftest*])
1402   AC_SUBST(libc_cv_as_needed)
1404   ASFLAGS_config=
1405   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1406                  libc_cv_as_noexecstack, [dnl
1407   cat > conftest.c <<EOF
1408 void foo (void) { }
1410   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1411                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1412      && grep -q .note.GNU-stack conftest.s \
1413      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1414                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1415   then
1416     libc_cv_as_noexecstack=yes
1417   else
1418     libc_cv_as_noexecstack=no
1419   fi
1420   rm -f conftest*])
1421   if test $libc_cv_as_noexecstack = yes; then
1422     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1423   fi
1424   AC_SUBST(ASFLAGS_config)
1426   AC_CACHE_CHECK(for -z combreloc,
1427                  libc_cv_z_combreloc, [dnl
1428   cat > conftest.c <<EOF
1429 extern int bar (int);
1430 extern int mumble;
1431 int foo (void) { return bar (mumble); }
1433   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1434                         -fPIC -shared -o conftest.so conftest.c
1435                         -nostdlib -nostartfiles
1436                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1437   then
1438 dnl The following test is a bit weak.  We must use a tool which can test
1439 dnl cross-platform since the gcc used can be a cross compiler.  Without
1440 dnl introducing new options this is not easily doable.  Instead use a tool
1441 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1442 dnl look for a section named .rel.dyn.
1443     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1444       libc_cv_z_combreloc=yes
1445     else
1446       libc_cv_z_combreloc=no
1447     fi
1448   else
1449     libc_cv_z_combreloc=no
1450   fi
1451   rm -f conftest*])
1452   if test "$libc_cv_z_combreloc" = yes; then
1453     AC_DEFINE(HAVE_Z_COMBRELOC)
1454   fi
1455   AC_SUBST(libc_cv_z_combreloc)
1457   AC_CACHE_CHECK(for -z execstack,
1458                  libc_cv_z_execstack, [dnl
1459   cat > conftest.c <<EOF
1460 int _start (void) { return 42; }
1462   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1463                               -fPIC -shared -o conftest.so conftest.c
1464                               -Wl,-z,execstack -nostdlib
1465                               1>&AS_MESSAGE_LOG_FD])
1466   then
1467     libc_cv_z_execstack=yes
1468   else
1469     libc_cv_z_execstack=no
1470   fi
1471   rm -f conftest*])
1472   AC_SUBST(libc_cv_z_execstack)
1474   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1475   cat > conftest.c <<EOF
1476 int foo;
1477 main () { return 0;}
1479   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1480                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1481   then
1482     libc_cv_fpie=yes
1483   else
1484     libc_cv_fpie=no
1485   fi
1486   rm -f conftest*])
1488   AC_SUBST(libc_cv_fpie)
1491 AC_CACHE_CHECK(for -fno-toplevel-reorder, libc_cv_fno_toplevel_reorder, [dnl
1492 cat > conftest.c <<EOF
1493 int foo;
1495 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder
1496                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1497 then
1498   libc_cv_fno_toplevel_reorder=yes
1499 else
1500   libc_cv_fno_toplevel_reorder=no
1502 rm -f conftest*])
1503 if test $libc_cv_fno_toplevel_reorder = yes; then
1504   fno_unit_at_a_time=-fno-toplevel-reorder
1505 else
1506   fno_unit_at_a_time=-fno-unit-at-a-time
1508 AC_SUBST(fno_unit_at_a_time)
1510 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1511 cat > conftest.c <<EOF
1512 int foo;
1513 main () { return 0;}
1515 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fstack-protector
1516                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1517 then
1518   libc_cv_ssp=yes
1519 else
1520   libc_cv_ssp=no
1522 rm -f conftest*])
1523 AC_SUBST(libc_cv_ssp)
1525 if test $elf != yes; then
1526   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1527                  [AC_TRY_COMPILE(, [asm (".section .init");
1528                                     asm (".section .fini");
1529                                     asm ("${libc_cv_dot_text}");],
1530                                  libc_cv_have_initfini=yes,
1531                                  libc_cv_have_initfini=no)])
1532   AC_SUBST(libc_cv_have_initfini)dnl
1533   if test $libc_cv_have_initfini = yes; then
1534     AC_DEFINE(HAVE_INITFINI)
1535   fi
1538 if test $elf = yes; then
1539   AC_CACHE_CHECK(whether cc puts quotes around section names,
1540                  libc_cv_have_section_quotes,
1541                  [cat > conftest.c <<EOF
1542                   static const int foo
1543                   __attribute__ ((section ("bar"))) = 1;
1545                   if ${CC-cc} -S conftest.c -o conftest.s; then
1546                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1547                       libc_cv_have_section_quotes=yes
1548                     else
1549                       libc_cv_have_section_quotes=no
1550                     fi
1551                   else
1552                     libc_cv_have_section_quotes=unknown
1553                   fi
1554                   rm -f conftest.[cs]
1555                  ])
1556   if test $libc_cv_have_section_quotes = yes; then
1557     AC_DEFINE(HAVE_SECTION_QUOTES)
1558   fi
1561 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1562 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1563 [cat > conftest.$ac_ext <<EOF
1564 dnl This sometimes fails to find confdefs.h, for some reason.
1565 dnl [#]line $LINENO "[$]0"
1566 [#]line $LINENO "configure"
1567 #include "confdefs.h"
1568 void underscore_test(void) {
1569 return; }
1571 if AC_TRY_EVAL(ac_compile); then
1572   if grep _underscore_test conftest* >/dev/null; then
1573     ifelse([$1], , :, [rm -f conftest*
1574     $1])
1575   else
1576     ifelse([$2], , , [rm -f conftest*
1577     $2])
1578   fi
1579 else
1580   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1581   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1582   ifelse([$2], , , [rm -f conftest*
1583   $2])
1585 rm -f conftest*])
1587 if test $elf = yes; then
1588   libc_cv_asm_underscores=no
1589 else
1590   if test $ac_cv_prog_cc_works = yes; then
1591     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1592                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1593                                 libc_cv_asm_underscores=yes,
1594                                 libc_cv_asm_underscores=no)])
1595   else
1596     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1597                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1598                                             libc_cv_asm_underscores=no)])
1599   fi
1601 if test $libc_cv_asm_underscores = no; then
1602   AC_DEFINE(NO_UNDERSCORES)
1605 if test $elf = yes; then
1606   libc_cv_weak_symbols=yes
1609 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1610                [dnl
1611 cat > conftest.s <<EOF
1612 ${libc_cv_dot_text}
1613 ${libc_cv_asm_global_directive} foo
1614 foo:
1615 .weak foo
1616 .weak bar; bar = foo
1618 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1619   libc_cv_asm_weak_directive=yes
1620 else
1621   libc_cv_asm_weak_directive=no
1623 rm -f conftest*])
1625 if test $libc_cv_asm_weak_directive = no; then
1626   AC_CACHE_CHECK(for assembler .weakext directive,
1627                  libc_cv_asm_weakext_directive,
1628                  [dnl
1629 cat > conftest.s <<EOF
1630 ${libc_cv_dot_text}
1631 ${libc_cv_asm_global_directive} foo
1632 foo:
1633 .weakext bar foo
1634 .weakext baz
1635 ${libc_cv_asm_global_directive} baz
1636 baz:
1638   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1639     libc_cv_asm_weakext_directive=yes
1640   else
1641     libc_cv_asm_weakext_directive=no
1642   fi
1643   rm -f conftest*])
1645 fi # no .weak
1647 if test $libc_cv_asm_weak_directive = yes; then
1648   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1649 elif test $libc_cv_asm_weakext_directive = yes; then
1650   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1653 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1654 case $machine in
1655   sparc/sparc64*) cfi_offset=2047;;
1656   *) cfi_offset=0;;
1657 esac
1658 cat > conftest.s <<EOF
1659         .text
1660         .type   func,%function
1661 func:
1662         .cfi_startproc
1663         .cfi_remember_state
1664         .cfi_rel_offset 1, $cfi_offset
1665         .cfi_endproc
1667 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1668   libc_cv_asm_cfi_directives=yes
1669 else
1670   libc_cv_asm_cfi_directives=no
1672 rm -f conftest*])
1673 if test $libc_cv_asm_cfi_directives = yes; then
1674   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1677 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1678 cat > conftest.c <<\EOF
1679 _start () {}
1680 int __eh_pc;
1681 __throw () {}
1683 dnl No \ in command here because it ends up inside ''.
1684 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1685                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1686                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1687   libc_cv_ld_no_whole_archive=yes
1688 else
1689   libc_cv_ld_no_whole_archive=no
1691 rm -f conftest*])
1692 if test $libc_cv_ld_no_whole_archive = yes; then
1693   no_whole_archive=-Wl,--no-whole-archive
1695 AC_SUBST(no_whole_archive)dnl
1697 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1698 cat > conftest.c <<\EOF
1699 _start () {}
1700 int __eh_pc;
1701 __throw () {}
1703 dnl No \ in command here because it ends up inside ''.
1704 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1705                             -nostdlib -nostartfiles -fexceptions
1706                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1707   libc_cv_gcc_exceptions=yes
1708 else
1709   libc_cv_gcc_exceptions=no
1711 rm -f conftest*])
1712 if test $libc_cv_gcc_exceptions = yes; then
1713   exceptions=-fexceptions
1715 AC_SUBST(exceptions)dnl
1717 if test "$host_cpu" = powerpc ; then
1718 # Check for a bug present in at least versions 2.8.x of GCC
1719 # and versions 1.0.x of EGCS.
1720 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1721 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1722                libc_cv_c_asmcr0_bug='no',
1723                libc_cv_c_asmcr0_bug='yes')])
1724 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1725   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1729 dnl Check whether compiler understands __builtin_expect.
1730 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1731 [cat > conftest.c <<EOF
1732 #line $LINENO "configure"
1733 int foo (int a)
1735   a = __builtin_expect (a, 10);
1736   return a == 10 ? 0 : 1;
1739 dnl No \ in command here because it ends up inside ''.
1740 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1741                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1742   libc_cv_gcc_builtin_expect=yes
1743 else
1744   libc_cv_gcc_builtin_expect=no
1746 rm -f conftest*])
1747 if test "$libc_cv_gcc_builtin_expect" = yes; then
1748   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1751 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1752 cat > conftest.c <<\EOF
1753 void zero (void *x)
1755   __builtin_memset (x, 0, 1000);
1759 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1760 then
1761   libc_cv_gcc_builtin_memset=no
1762 else
1763   libc_cv_gcc_builtin_memset=yes
1765 rm -f conftest* ])
1766 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1767   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1770 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1771 cat > conftest.c <<\EOF
1772 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1773 char *foo (const char *a, const char *b)
1775   return __builtin_strstr (a, b);
1779 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1780 then
1781   libc_cv_gcc_builtin_redirection=yes
1782 else
1783   libc_cv_gcc_builtin_redirection=no
1785 rm -f conftest* ])
1786 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1787   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1790 dnl Check whether the compiler supports the __thread keyword.
1791 if test "x$use__thread" != xno; then
1792   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1793   [cat > conftest.c <<\EOF
1794 __thread int a = 42;
1796   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1797     libc_cv_gcc___thread=yes
1798   else
1799     libc_cv_gcc___thread=no
1800   fi
1801   rm -f conftest*])
1802   if test "$libc_cv_gcc___thread" = yes; then
1803     AC_DEFINE(HAVE___THREAD)
1804   fi
1805 else
1806   libc_cv_gcc___thread=no
1809 if test "$libc_cv_gcc___thread" = yes; then
1810   dnl Check whether the compiler supports the tls_model attribute.
1811   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1812   cat > conftest.c <<\EOF
1813 extern __thread int a __attribute__((tls_model ("initial-exec")));
1815   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1816     libc_cv_gcc_tls_model_attr=yes
1817   else
1818     libc_cv_gcc_tls_model_attr=no
1819   fi
1820   rm -f conftest*])
1821   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1822     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1823   fi
1826 dnl Check whether we have the gd library available.
1827 AC_MSG_CHECKING(for libgd)
1828 if test "$with_gd" != "no"; then
1829   old_CFLAGS="$CFLAGS"
1830   CFLAGS="$CFLAGS $libgd_include"
1831   old_LDFLAGS="$LDFLAGS"
1832   LDFLAGS="$LDFLAGS $libgd_ldflags"
1833   old_LIBS="$LIBS"
1834   LIBS="$LIBS -lgd -lpng -lz -lm"
1835   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1836   CFLAGS="$old_CFLAGS"
1837   LDFLAGS="$old_LDFLAGS"
1838   LIBS="$old_LIBS"
1839 else
1840   LIBGD=no
1842 AC_MSG_RESULT($LIBGD)
1843 AC_SUBST(LIBGD)
1845 # SELinux detection
1846 if test x$with_selinux = xno ; then
1847   have_selinux=no;
1848 else
1849   # See if we have the SELinux library
1850   AC_CHECK_LIB(selinux, is_selinux_enabled,
1851                have_selinux=yes, have_selinux=no)
1852   # See if we have the SELinux header with the NSCD permissions in it.
1853   if test x$have_selinux = xyes ; then
1854     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
1855     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
1856                     [#ifdef NSCD__SHMEMHOST
1857                      return 0;
1858                      #else
1859                      #error NSCD__SHMEMHOST not defined
1860                      #endif],
1861                     have_selinux=yes, have_selinux=no)
1862     AC_MSG_RESULT($have_selinux)
1863   fi
1865   if test x$with_selinux = xyes ; then
1866     if test x$have_selinux = xno ; then
1867       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
1868     fi
1869   fi
1871 # Check if we're building with SELinux support.
1872 if test "x$have_selinux" = xyes; then
1873   AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
1875   # See if we have the libaudit library
1876   AC_CHECK_LIB(audit, audit_log_user_avc_message,
1877                have_libaudit=yes, have_libaudit=no)
1878   if test "x$have_libaudit" = xyes; then
1879     AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
1880   fi
1881   AC_SUBST(have_libaudit)
1883 AC_SUBST(have_selinux)
1885 dnl check for the size of 'long double'.
1886 AC_CHECK_SIZEOF(long double, 0)
1887 sizeof_long_double=$ac_cv_sizeof_long_double
1888 AC_SUBST(sizeof_long_double)
1890 ### End of automated tests.
1891 ### Now run sysdeps configure fragments.
1893 # They also can set these variables.
1894 use_ldconfig=no
1895 ldd_rewrite_script=no
1896 libc_cv_sysconfdir=$sysconfdir
1897 libc_cv_gcc_unwind_find_fde=no
1898 libc_cv_idn=no
1900 # Iterate over all the sysdep directories we will use, running their
1901 # configure fragments, and looking for a uname implementation.
1902 uname=
1903 for dir in $sysnames; do
1904   case $dir in
1905     /*) dest=$dir ;;
1906     *)  dest=$srcdir/$dir ;;
1907   esac
1908   if test -r $dest/configure; then
1909     AC_MSG_RESULT(running configure fragment for $dir)
1910     . $dest/configure
1911   fi
1913   if test -z "$uname"; then
1914     if test -r $dest/uname.c ||
1915        test -r $dest/uname.S ||
1916        { test -r $dest/syscalls.list &&
1917          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
1918       uname=$dir
1919     fi
1920   fi
1921 ]dnl
1922 done
1924 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1925   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1927 AC_SUBST(libc_cv_gcc_unwind_find_fde)
1929 # If we will use the generic uname implementation, we must figure out what
1930 # it will say by examining the system, and write the results in config-name.h.
1931 if test "$uname" = "sysdeps/generic"; then
1933 changequote(,)dnl
1934   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1935 changequote([,])dnl
1936   if test $uname_sysname != $config_os; then
1937     config_release=`echo $config_os | sed s/$uname_sysname//`
1938   fi
1940 AC_DEFUN(LIBC_KERNEL_ID, [dnl
1941     if test -r /vmunix; then
1942       kernel_id=`strings /vmunix | grep UNIX`
1943     elif test -r /dynix; then
1944       kernel_id=`strings /dynix | grep DYNIX`
1945     else
1946       kernel_id=
1947     fi
1948 ])dnl
1950   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
1951 LIBC_KERNEL_ID
1952 changequote(,)dnl
1953   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1954 changequote([,])dnl
1955   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1956          != x$config_release; then
1957     # The configuration release is a substring of the kernel release.
1958     libc_cv_uname_release=$kernel_release
1959   elif test x$config_release != x; then
1960     libc_cv_uname_release=$config_release
1961   elif test x$kernel_release != x; then
1962     libc_cv_uname_release=$kernel_release
1963   else
1964     libc_cv_uname_release=unknown
1965   fi])
1966   uname_release="$libc_cv_uname_release"
1968   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
1969 LIBC_KERNEL_ID
1970 changequote(,)dnl
1971   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1972 changequote([,])dnl
1973   if test -n "$kernel_version"; then
1974     libc_cv_uname_version="$kernel_version"
1975   else
1976     libc_cv_uname_version=unknown
1977   fi])
1978   uname_version="$libc_cv_uname_version"
1980 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1981   config_uname=config-name.h:config-name.in
1982 else
1983   # For non-generic uname, we don't need to create config-name.h at all.
1984   config_uname=
1987 dnl This is tested by existing code and it's simpler to avoid changing it.
1988 AC_DEFINE(USE_IN_LIBIO)
1990 # Test for old glibc 2.0.x headers so that they can be removed properly
1991 # Search only in includedir.
1992 AC_MSG_CHECKING(for old glibc 2.0.x headers)
1993 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
1994 then
1995   old_glibc_headers=yes
1996 else
1997   old_glibc_headers=no
1999 AC_MSG_RESULT($old_glibc_headers)
2000 if test ${old_glibc_headers} = yes; then
2001   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2002   AC_MSG_WARN(*** be removed.)
2004 AC_SUBST(old_glibc_headers)
2006 AC_SUBST(libc_cv_slibdir)
2007 AC_SUBST(libc_cv_localedir)
2008 AC_SUBST(libc_cv_sysconfdir)
2009 AC_SUBST(libc_cv_rootsbindir)
2010 AC_SUBST(libc_cv_forced_unwind)
2012 AC_SUBST(use_ldconfig)
2013 AC_SUBST(ldd_rewrite_script)
2015 AC_SUBST(elf) AC_SUBST(xcoff)
2016 if test $elf = yes; then
2017   AC_DEFINE(HAVE_ELF)
2019 if test $xcoff = yes; then
2020   AC_DEFINE(HAVE_XCOFF)
2023 AC_SUBST(static)
2024 AC_SUBST(shared)
2025 if test $shared = default; then
2026   shared=$elf
2029 if test x"$libc_cv_idn" = xyes; then
2030   AC_DEFINE(HAVE_LIBIDN)
2033 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2034 [pic_default=yes
2035 cat > conftest.c <<EOF
2036 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2037 # error PIC is default.
2038 #endif
2040 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2041   pic_default=no
2043 rm -f conftest.*])
2044 AC_SUBST(pic_default)
2046 AC_SUBST(profile)
2047 AC_SUBST(omitfp)
2048 AC_SUBST(bounded)
2049 AC_SUBST(static_nss)
2050 AC_SUBST(nopic_initfini)
2052 AC_SUBST(DEFINES)
2054 dnl See sysdeps/mach/configure.in for this variable.
2055 AC_SUBST(mach_interface_list)
2057 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2058   config_makefile=
2059 else
2060   config_makefile=Makefile
2063 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2064 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2065 AC_SUBST(VERSION)
2066 AC_SUBST(RELEASE)
2068 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2069 AC_CONFIG_COMMANDS([default],[[
2070 case $CONFIG_FILES in *config.make*)
2071 echo "$config_vars" >> config.make;;
2072 esac
2073 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2074 AC_OUTPUT