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