* po/ko.po: Update from translation team.
[glibc.git] / configure.in
blobc40bae258928d90e06092083539ddccb382409f7
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=no@:>@]),
135               [profile=$enableval],
136               [profile=no])
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 sparcv9v)
509                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;;
510 sparcv9v2)
511                 base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;;
512 sparc64)
513                 base_machine=sparc machine=sparc/sparc64 ;;
514 sparc64b)
515                 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
516 sparc64v)
517                 base_machine=sparc machine=sparc/sparc64/sparcv9v ;;
518 sparc64v2)
519                 base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;;
520 *)              base_machine=$machine ;;
521 esac
522 changequote([,])dnl
523 AC_SUBST(base_machine)
525 if test "$base_machine" = "i386"; then
526   AC_DEFINE(USE_REGPARMS)
529 # Compute the list of sysdep directories for this configuration.
530 # This can take a while to compute.
531 sysdep_dir=$srcdir/sysdeps
532 AC_MSG_CHECKING(sysdep dirs)
533 dnl We need to use [ and ] for other purposes for a while now.
534 changequote(,)dnl
535 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
536 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
538 case "$os" in
539 gnu*)
540   base_os=mach/hurd ;;
541 netbsd* | 386bsd* | freebsd* | bsdi*)
542   base_os=unix/bsd/bsd4.4 ;;
543 osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
544   base_os=unix/bsd ;;
545 sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
546   base_os=unix/sysv ;;
547 irix6*)
548   base_os=unix/sysv/irix6/$os ;;
549 solaris[2-9]*)
550   base_os=unix/sysv/sysv4 ;;
551 hpux*)
552   base_os=unix/sysv/hpux/$os ;;
553 aix4.3*)
554   base_os=unix/sysv/aix/aix4.3 ;;
555 none)
556   base_os=standalone ;;
558   base_os='' ;;
559 esac
561 # For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
562 tail=$os
563 ostry=$os
564 while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
565   ostry="$ostry /$o"
566   tail=$o
567 done
568 o=`echo $tail | sed 's/[0-9]*$//'`
569 if test $o != $tail; then
570   ostry="$ostry /$o"
572 # For linux-gnu, try linux-gnu, then linux.
573 o=`echo $tail | sed 's/-.*$//'`
574 if test $o != $tail; then
575   ostry="$ostry /$o"
578 # For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
579 base=
580 tail=$base_os
581 while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
582   set $b
583   base="$base /$1"
584   tail="$2"
585 done
587 # For sparc/sparc32, try sparc/sparc32 and then sparc.
588 mach=
589 tail=$machine${submachine:+/$submachine}
590 while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
591   set $m
592   # Prepend the machine's FPU directory unless --without-fp.
593   if test "$with_fp" = yes; then
594     mach="$mach /$1/fpu"
595   else
596     mach="$mach /$1/nofpu"
597   fi
598   mach="$mach /$1"
599   tail="$2"
600 done
602 dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
603 changequote([,])dnl
605 # Find what sysdep directories exist.
606 sysnames_add_ons=
607 sysnames=
608 for b in $base ''; do
609   for m0 in $mach ''; do
610     for v in /$vendor ''; do
611       test "$v" = / && continue
612       for o in /$ostry ''; do
613         test "$o" = / && continue
614         for m in $mach ''; do
615           for d in $add_ons_pfx ''; do
616             for a in $add_ons_sfx ''; do
617               if test -n "$m0$m0sub$b$v$o$m$msub"; then
618                 try_srcdir="${srcdir}/"
619                 case "$d" in
620                 /*) try_srcdir= ;;
621                 esac
622                 try="${d}sysdeps$m0$m0sub$b$v$o$m$msub$a"
623                 test -n "$enable_debug_configure" &&
624                 echo "$0 [DEBUG]: try $try" >&2
625                 if test -d "$try_srcdir$try"; then
626                   sysnames="$sysnames $try"
627                   { test -n "$o" || test -n "$b"; } && os_used=t
628                   { test -n "$m" || test -n "$m0"; } && machine_used=t
629                   case x${m0:-$m} in
630                   x*/$submachine) submachine_used=t ;;
631                   esac
632                   if test -n "$d"; then
633                     case "$sysnames_add_ons" in
634                     *" $d "*) ;;
635                     *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
636                     esac
637                   fi
638                 fi
639               fi
640             done
641           done
642         done
643       done
644     done
645   done
646 done
648 if test -z "$os_used" && test "$os" != none; then
649   AC_MSG_ERROR(Operating system $os is not supported.)
651 if test -z "$machine_used" && test "$machine" != none; then
652   AC_MSG_ERROR(The $machine is not supported.)
654 if test -z "$submachine_used" && test -n "$submachine"; then
655   AC_MSG_ERROR(The $submachine subspecies of $host_cpu is not supported.)
657 AC_SUBST(submachine)
659 # We have now validated the configuration.
662 # If using ELF, look for an `elf' subdirectory of each machine directory.
663 # We prepend these rather than inserting them whereever the machine appears
664 # because things specified by the machine's ELF ABI should override
665 # OS-specific things, and should always be the same for any OS on the
666 # machine (otherwise what's the point of an ABI?).
667 if test "$elf" = yes; then
668   elf_dirs=
669   for d in $add_ons_pfx ''; do
670     for m in $mach; do
671       if test -d $srcdir/${d}sysdeps$m/elf; then
672         elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
673       fi
674     done
675   done
676   sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
680 # Expand the list of system names into a full list of directories
681 # from each element's parent name and Implies file (if present).
682 set $sysnames
683 names=
684 while test $# -gt 0; do
685   name=$1
686   shift
688   case " $names " in *" $name "*)
689     # Already in the list.
690     continue
691   esac
693   # Report each name as we discover it, so there is no long pause in output.
694   echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD
696   name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
698   case $name in
699     /*) xsrcdir= ;;
700     *)  xsrcdir=$srcdir/ ;;
701   esac
702   test -n "$enable_debug_configure" &&
703   echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
705   if test -f $xsrcdir$name/Implies; then
706     # Collect more names from the `Implies' file (removing comments).
707     implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
708     implied=
709     for x in $implied_candidate; do
710       found=no
711       if test -d $xsrcdir$name_base/$x; then
712         implied="$implied $name_base/$x";
713         found=yes
714       fi
715       for d in $add_ons_pfx ''; do
716         try="${d}sysdeps/$x"
717         case $d in
718          /*) try_srcdir= ;;
719          *) try_srcdir=$srcdir/ ;;
720         esac
721         test -n "$enable_debug_configure" &&
722          echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
723         if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
724         then
725           implied="$implied $try"
726           found=yes
727           case "$sysnames_add_ons" in
728           *" $d "*) ;;
729           *|'') sysnames_add_ons="$sysnames_add_ons $d" ;;
730           esac
731         fi
732       done
733       if test $found = no; then
734         AC_MSG_WARN($name/Implies specifies nonexistent $x)
735       fi
736     done
737   else
738     implied=
739   fi
741   # Add NAME to the list of names.
742   names="$names $name"
744   # Find the parent of NAME, using the empty string if it has none.
745 changequote(,)dnl
746   parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
747 changequote([,])dnl
749   # Add the names implied by NAME, and NAME's parent (if it has one), to
750   # the list of names to be processed (the argument list).  We prepend the
751   # implied names to the list and append the parent.  We want implied
752   # directories to come before further directories inferred from the
753   # configuration components; this ensures that for sysv4, unix/common
754   # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
755   # after sysv4).
756   sysnames="`echo $implied $* $parent`"
757   test -n "$sysnames" && set $sysnames
758 done
760 # Add the default directories.
761 default_sysnames=sysdeps/generic
762 if test "$elf" = yes; then
763   default_sysnames="sysdeps/generic/elf $default_sysnames"
765 sysnames="$names $default_sysnames"
766 AC_SUBST(sysnames)
767 # The other names were emitted during the scan.
768 AC_MSG_RESULT($default_sysnames)
770 # Collect the list of add-ons that supply partial sysdeps trees.
771 sysdeps_add_ons=
772 for add_on in $add_ons; do
773   case "$add_on" in
774   /*) xsrcdir= ;;
775   *) xsrcdir="$srcdir/" ;;
776   esac
778   test -d "$xsrcdir$add_on/sysdeps" || {
779     case "$configured_add_ons " in
780     *" $add_on "*) ;;
781     *|'')
782       AC_MSG_ERROR(add-on $add_on has no configure fragment or sysdeps tree)
783       ;;
784     esac
785     continue
786   }
788   sysdeps_add_ons="$sysdeps_add_ons $add_on"
789   case "$sysnames_add_ons" in
790   *" $add_on/ "*) ;;
791   *|'')
792     AC_MSG_WARN(add-on $add_on contributed no sysdeps directories)
793     continue ;;
794   esac
796   found=no
797   for d in $sysnames; do
798     case "$d" in
799     $add_on/sysdeps/*) ;;
800     *) continue ;;
801     esac
802     (cd "$xsrcdir$d" && for f in *[[!~]]; do
803        case "$f" in
804        sys|bits)
805          for ff in $f/*.h; do
806            test -d "$ff" || { test -e "$ff" && exit 88; }
807          done
808          ;;
809        *)
810          test -d "$f" || { test -e "$f" && exit 88; }
811          ;;
812        esac
813      done)
814     if test $? -eq 88; then
815       found=yes
816       break
817     fi
818   done
819   if test $found = no; then
820     AC_MSG_WARN(add-on $add_on contributed no useful sysdeps directories)
821   fi
822 done
823 AC_SUBST(sysdeps_add_ons)
826 ### Locate tools.
828 AC_PROG_INSTALL
829 if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
830   # The makefiles need to use a different form to find it in $srcdir.
831   INSTALL='\$(..)./scripts/install-sh -c'
833 AC_PROG_LN_S
835 AC_PROG_CC
836 if test $host != $build; then
837   AC_CHECK_PROGS(BUILD_CC, gcc cc)
839 AC_SUBST(cross_compiling)
840 AC_PROG_CPP
841 # We need the C++ compiler only for testing.
842 AC_PROG_CXX
843 LIBC_PROG_BINUTILS
844 AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in
846 # Accept binutils 2.13 or newer.
847 AC_CHECK_PROG_VER(AS, $AS, --version,
848                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
849                   [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
850 AC_CHECK_PROG_VER(LD, $LD, --version,
851                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
852                   [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
854 # We need the physical current working directory.  We cannot use the
855 # "pwd -P" shell builtin since that's not portable.  Instead we try to
856 # find a pwd binary.  Note that assigning to the PWD environment
857 # variable might have some interesting side effects, so we don't do
858 # that.
859 AC_PATH_PROG(PWD_P, pwd, no)
860 if test "$PWD_P" = no; then
861   AC_MSG_ERROR(*** A pwd binary could not be found.)
864 # These programs are version sensitive.
865 AC_CHECK_TOOL_PREFIX
866 AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
867   [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
868   critic_missing="$critic_missing gcc")
869 AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
870   [GNU Make[^0-9]*\([0-9][0-9.]*\)],
871   [3.79* | 3.[89]*], critic_missing="$critic_missing make")
873 AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
874   [GNU gettext.* \([0-9]*\.[0-9.]*\)],
875   [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
876   MSGFMT=: aux_missing="$aux_missing msgfmt")
877 AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
878   [GNU texinfo.* \([0-9][0-9.]*\)],
879   [4.*],
880   MAKEINFO=: aux_missing="$aux_missing makeinfo")
881 AC_CHECK_PROG_VER(SED, sed, --version,
882   [GNU sed version \([0-9]*\.[0-9.]*\)],
883   [3.0[2-9]*|3.[1-9]*|[4-9]*],
884   SED=: aux_missing="$aux_missing sed")
886 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
887 case "x$AUTOCONF" in
888 xno|x|x:) AUTOCONF=no ;;
890   AC_CACHE_CHECK(dnl
891 whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl
892   if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then
893     libc_cv_autoconf_works=yes
894   else
895     libc_cv_autoconf_works=no
896   fi])
897   test $libc_cv_autoconf_works = yes || AUTOCONF=no
898   ;;
899 esac
900 if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
901   # If --without-cvs they probably won't change configure.in, so no complaints.
902   aux_missing="$aux_missing autoconf"
905 test -n "$critic_missing" && AC_MSG_ERROR([
906 *** These critical programs are missing or too old:$critic_missing
907 *** Check the INSTALL file for required versions.])
909 test -n "$aux_missing" && AC_MSG_WARN([
910 *** These auxiliary programs are missing or incompatible versions:$aux_missing
911 *** some features will be disabled.
912 *** Check the INSTALL file for required versions.])
914 # if using special system headers, find out the compiler's sekrit
915 # header directory and add that to the list.  NOTE: Only does the right
916 # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
917 if test -n "$sysheaders"; then
918   ccheaders=`$CC -print-file-name=include`
919   SYSINCLUDES="-nostdinc -isystem $ccheaders \
920 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
921   if test -n "$CXX"; then
922     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
923     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
924     cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
925     CXX_SYSINCLUDES="-isystem $cxxheaders \
926 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
927   fi
929 AC_SUBST(SYSINCLUDES)
930 AC_SUBST(CXX_SYSINCLUDES)
932 # check if ranlib is necessary
933 AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
934 cat > conftest.c <<EOF
935 int a;
936 char b;
937 void c(void) {}
939 $CC $CFLAGS $CPPFLAGS -c conftest.c
940 $AR cr conftest.a conftest.o
941 cp conftest.a conftest2.a
942 $RANLIB conftest.a
943 if cmp -s conftest.a conftest2.a; then
944   libc_cv_ranlib_necessary=no
945 else
946   libc_cv_ranlib_necessary=yes
948 rm -rf conftest*])
949 if test "$libc_cv_ranlib_necessary" = no; then
950  RANLIB=:
953 # Test if LD_LIBRARY_PATH contains the notation for the current directory
954 # since this would lead to problems installing/building glibc.
955 # LD_LIBRARY_PATH contains the current directory if one of the following
956 # is true:
957 # - one of the terminals (":" and ";") is the first or last sign
958 # - two terminals occur directly after each other
959 # - the path contains an element with a dot in it
960 AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
961 changequote(,)dnl
962 case ${LD_LIBRARY_PATH} in
963   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
964     ld_library_path_setting="contains current directory"
965     ;;
966   *)
967     ld_library_path_setting="ok"
968     ;;
969 esac
970 changequote([,])dnl
971 AC_MSG_RESULT($ld_library_path_setting)
972 if test "$ld_library_path_setting" != "ok"; then
973 AC_MSG_ERROR([
974 *** LD_LIBRARY_PATH shouldn't contain the current directory when
975 *** building glibc. Please change the environment variable
976 *** and run configure again.])
979 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
980 if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
981   libc_cv_gcc_static_libgcc=
982 else
983   libc_cv_gcc_static_libgcc=-static-libgcc
984 fi])
985 AC_SUBST(libc_cv_gcc_static_libgcc)
987 AC_PATH_PROG(BASH_SHELL, bash, no)
988 if test "$BASH_SHELL" != no &&
989    $BASH_SHELL -c 'test "$BASH_VERSINFO" \
990              && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
991   libc_cv_have_bash2=yes
992 else
993   libc_cv_have_bash2=no
995 AC_SUBST(libc_cv_have_bash2)
997 dnl We need a ksh compatible shell for tzselect.
998 if test "$BASH_SHELL" = no; then
999   AC_PATH_PROG(KSH, ksh, no)
1000   if test "$KSH" = no; then
1001     libc_cv_have_ksh=no
1002   else
1003     libc_cv_have_ksh=yes
1004   fi
1005 else
1006   KSH="$BASH_SHELL"
1007   AC_SUBST(KSH)
1008   libc_cv_have_ksh=yes
1010 AC_SUBST(libc_cv_have_ksh)
1012 AC_PROG_AWK
1013 AC_PATH_PROG(PERL, perl, no)
1014 if test "$PERL" != no &&
1015    (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
1016   PERL=no
1018 AC_PATH_PROG(INSTALL_INFO, install-info, no,
1019              $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
1020 AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
1022 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
1023 echo '#include <stddef.h>
1024 FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
1025 if eval "$ac_cpp conftest.c 2>/dev/null" \
1026 | grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
1027   libc_cv_signed_size_t=no
1028 else
1029   libc_cv_signed_size_t=yes
1031 rm -f conftest*])
1032 if test $libc_cv_signed_size_t = yes; then
1033   dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
1034   cat >> confdefs.h <<\EOF
1035 #undef __SIZE_TYPE__
1036 #define __SIZE_TYPE__ unsigned
1040 AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
1041 AC_TRY_COMPILE(dnl
1042 [#define __need_size_t
1043 #define __need_wchar_t
1044 #include <stddef.h>
1045 #define __need_NULL
1046 #include <stddef.h>], [size_t size; wchar_t wchar;
1047 #ifdef offsetof
1048 #error stddef.h ignored __need_*
1049 #endif
1050 if (&size == NULL || &wchar == NULL) abort ();],
1051                libc_cv_friendly_stddef=yes,
1052                libc_cv_friendly_stddef=no)])
1053 if test $libc_cv_friendly_stddef = yes; then
1054   config_vars="$config_vars
1055 override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
1058 AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
1059                libc_cv_need_minus_P, [dnl
1060 cat > conftest.S <<EOF
1061 #include "confdefs.h"
1062 /* Nothing whatsoever.  */
1064 if AC_TRY_COMMAND(${CC-cc} $CPPFLAGS $ASFLAGS -c conftest.S 1>&AS_MESSAGE_LOG_FD); then
1065   libc_cv_need_minus_P=no
1066 else
1067   libc_cv_need_minus_P=yes
1069 rm -f conftest*])
1070 if test $libc_cv_need_minus_P = yes; then
1071   config_vars="$config_vars
1072 asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
1075 AC_MSG_CHECKING(whether .text pseudo-op must be used)
1076 AC_CACHE_VAL(libc_cv_dot_text, [dnl
1077 cat > conftest.s <<EOF
1078 .text
1080 libc_cv_dot_text=
1081 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1082   libc_cv_dot_text=.text
1084 rm -f conftest*])
1085 if test -z "$libc_cv_dot_text"; then
1086   AC_MSG_RESULT(no)
1087 else
1088   AC_MSG_RESULT(yes)
1091 AC_CACHE_CHECK(for assembler global-symbol directive,
1092                libc_cv_asm_global_directive, [dnl
1093 libc_cv_asm_global_directive=UNKNOWN
1094 for ac_globl in .globl .global .EXPORT; do
1095   cat > conftest.s <<EOF
1096         ${libc_cv_dot_text}
1097         ${ac_globl} foo
1098 foo:
1100   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1101     libc_cv_asm_global_directive=${ac_globl}
1102   fi
1103   rm -f conftest*
1104   test $libc_cv_asm_global_directive != UNKNOWN && break
1105 done])
1106 if test $libc_cv_asm_global_directive = UNKNOWN; then
1107   AC_MSG_ERROR(cannot determine asm global directive)
1108 else
1109   AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
1112 AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
1113 cat > conftest.s <<EOF
1114 ${libc_cv_dot_text}
1115 foo:
1116 .set glibc_conftest_frobozz,foo
1117 $libc_cv_asm_global_directive glibc_conftest_frobozz
1119 # The alpha-dec-osf1 assembler gives only a warning for `.set'
1120 # (but it doesn't work), so we must do a linking check to be sure.
1121 cat > conftest1.c <<\EOF
1122 extern int glibc_conftest_frobozz;
1123 void _start() { glibc_conftest_frobozz = 1; }
1125 if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1126             -nostartfiles -nostdlib \
1127             -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1128   libc_cv_asm_set_directive=yes
1129 else
1130   libc_cv_asm_set_directive=no
1132 rm -f conftest*])
1133 if test $libc_cv_asm_set_directive = yes; then
1134   AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
1137 AC_CACHE_CHECK(for assembler .type directive prefix,
1138                libc_cv_asm_type_prefix, [dnl
1139 libc_cv_asm_type_prefix=no
1140 for ac_try_prefix in '@' '%' '#'; do
1141   cat > conftest.s <<EOF
1142         ${libc_cv_dot_text}
1143         ${libc_cv_asm_global_directive} foo
1144         .type foo, ${ac_try_prefix}object
1145         .size foo, 1
1146 foo:
1147         .byte 1
1149   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1150     libc_cv_asm_type_prefix=${ac_try_prefix}
1151   fi
1152   rm -f conftest*
1153   test "x$libc_cv_asm_type_prefix" != xno && break
1154 done])
1155 if test "x$libc_cv_asm_type_prefix" != xno; then
1156   AC_DEFINE_UNQUOTED(ASM_TYPE_DIRECTIVE_PREFIX, ${libc_cv_asm_type_prefix})
1159 AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
1160 [cat > conftest.s <<EOF
1161 ${libc_cv_dot_text}
1162 _sym:
1163 .symver _sym,sym@VERS
1165 if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1166   libc_cv_asm_symver_directive=yes
1167 else
1168   libc_cv_asm_symver_directive=no
1170 rm -f conftest*])
1171 AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
1172 if test $libc_cv_asm_symver_directive = yes; then
1173   cat > conftest.s <<EOF
1174 ${libc_cv_dot_text}
1175 _sym:
1176 .symver _sym,sym@VERS
1178   cat > conftest.map <<EOF
1179 VERS_1 {
1180         global: sym;
1183 VERS_2 {
1184         global: sym;
1185 } VERS_1;
1187   if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
1188     if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
1189                                 -o conftest.so conftest.o
1190                                 -nostartfiles -nostdlib
1191                                 -Wl,--version-script,conftest.map
1192                        1>&AS_MESSAGE_LOG_FD]);
1193     then
1194       libc_cv_ld_version_script_option=yes
1195     else
1196       libc_cv_ld_version_script_option=no
1197     fi
1198   else
1199     libc_cv_ld_version_script_option=no
1200   fi
1201 else
1202   libc_cv_ld_version_script_option=no
1204 rm -f conftest*])
1205 if test $shared != no &&
1206    test $libc_cv_asm_symver_directive = yes &&
1207    test $libc_cv_ld_version_script_option = yes &&
1208    test $enable_versioning = yes; then
1209   VERSIONING=yes
1210   AC_DEFINE(DO_VERSIONING)
1211 else
1212   VERSIONING=no
1214 AC_SUBST(VERSIONING)
1216 if test $elf = yes && test $shared != no && test $VERSIONING = no; then
1217   echo "\
1218 *** WARNING: You should not compile GNU libc without versioning. Not using
1219 *** versioning will introduce incompatibilities so that old binaries
1220 *** will not run anymore.
1221 *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
1223 if test $elf = yes; then
1224   AC_CACHE_CHECK(for .previous assembler directive,
1225                  libc_cv_asm_previous_directive, [dnl
1226   cat > conftest.s <<EOF
1227 .section foo_section
1228 .previous
1230   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1231     libc_cv_asm_previous_directive=yes
1232   else
1233     libc_cv_asm_previous_directive=no
1234   fi
1235   rm -f conftest*])
1236   if test $libc_cv_asm_previous_directive = yes; then
1237     AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
1238   else
1239     AC_CACHE_CHECK(for .popsection assembler directive,
1240                    libc_cv_asm_popsection_directive, [dnl
1241     cat > conftest.s <<EOF
1242 .pushsection foo_section
1243 .popsection
1245     if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1246       libc_cv_asm_popsection_directive=yes
1247     else
1248       libc_cv_asm_popsection_directive=no
1249     fi
1250     rm -f conftest*])
1251     if test $libc_cv_asm_popsection_directive = yes; then
1252       AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
1253     fi
1254   fi
1255   AC_CACHE_CHECK(for .protected and .hidden assembler directive,
1256                  libc_cv_asm_protected_directive, [dnl
1257   cat > conftest.s <<EOF
1258 .protected foo
1259 foo:
1260 .hidden bar
1261 bar:
1263   if AC_TRY_COMMAND(${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then
1264     libc_cv_asm_protected_directive=yes
1265   else
1266     AC_MSG_ERROR(assembler support for symbol visibility is required)
1267   fi
1268   rm -f conftest*])
1270   if test $libc_cv_asm_protected_directive = yes; then
1271     AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1272                  libc_cv_visibility_attribute,
1273                  [cat > conftest.c <<EOF
1274                   int foo __attribute__ ((visibility ("hidden"))) = 1;
1275                   int bar __attribute__ ((visibility ("protected"))) = 1;
1277                   libc_cv_visibility_attribute=no
1278                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1279                     if grep '\.hidden.*foo' conftest.s >/dev/null; then
1280                       if grep '\.protected.*bar' conftest.s >/dev/null; then
1281                         libc_cv_visibility_attribute=yes
1282                       fi
1283                     fi
1284                   fi
1285                   rm -f conftest.[cs]
1286                  ])
1287     if test $libc_cv_visibility_attribute != yes; then
1288       AC_MSG_ERROR(compiler support for visibility attribute is required)
1289     fi
1290   fi
1292   if test $libc_cv_visibility_attribute = yes; then
1293     AC_CACHE_CHECK(for broken __attribute__((visibility())),
1294                  libc_cv_broken_visibility_attribute,
1295                  [cat > conftest.c <<EOF
1296                   int foo (int x);
1297                   int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
1298                   int bar (int x) { return x; }
1300                   libc_cv_broken_visibility_attribute=yes
1301                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s1>&AS_MESSAGE_LOG_FD); then
1302 changequote(,)dnl
1303                     if grep '\.hidden[  _]foo' conftest.s >/dev/null; then
1304 changequote([,])dnl
1305                       libc_cv_broken_visibility_attribute=no
1306                     fi
1307                   fi
1308                   rm -f conftest.c conftest.s
1309                  ])
1310     if test $libc_cv_broken_visibility_attribute = yes; then
1311       AC_MSG_ERROR(working compiler support for visibility attribute is required)
1312     fi
1313   fi
1315   AC_CACHE_CHECK(for broken __attribute__((alias())),
1316                  libc_cv_broken_alias_attribute,
1317                  [cat > conftest.c <<EOF
1318                   extern int foo (int x) __asm ("xyzzy");
1319                   int bar (int x) { return x; }
1320                   extern __typeof (bar) foo __attribute ((weak, alias ("bar")));
1321                   extern int dfoo;
1322                   extern __typeof (dfoo) dfoo __asm ("abccb");
1323                   int dfoo = 1;
1325                   libc_cv_broken_alias_attribute=yes
1326                   if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
1327                     if grep 'xyzzy' conftest.s >/dev/null &&
1328                        grep 'abccb' conftest.s >/dev/null; then
1329                       libc_cv_broken_alias_attribute=no
1330                     fi
1331                   fi
1332                   rm -f conftest.c conftest.s
1333                  ])
1334   if test $libc_cv_broken_alias_attribute = yes; then
1335     AC_MSG_ERROR(working alias attribute support required)
1336   fi
1338   if test $libc_cv_visibility_attribute = yes; then
1339     AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1340                  libc_cv_have_sdata_section,
1341                  [echo "int i;" > conftest.c
1342                   libc_cv_have_sdata_section=no
1343                   if ${CC-cc} $LDFLAGS -fPIC -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1344                      | grep '\.sdata' >/dev/null; then
1345                     libc_cv_have_sdata_section=yes
1346                   fi
1347                   rm -f conftest.c conftest.so
1348                  ])
1349     if test $libc_cv_have_sdata_section = yes; then
1350       AC_DEFINE(HAVE_SDATA_SECTION)
1351     fi
1352   fi
1354   AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1355                  libc_cv_initfini_array, [dnl
1356   cat > conftest.c <<EOF
1357 int _start (void) { return 0; }
1358 int __start (void) { return 0; }
1359 int foo (void) { return 1; }
1360 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
1362   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
1363                      -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
1364   then
1365     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1366       libc_cv_initfini_array=yes
1367     else
1368       libc_cv_initfini_array=no
1369     fi
1370   else
1371     libc_cv_initfini_array=no
1372   fi
1373   rm -f conftest*])
1374   if test $libc_cv_initfini_array != yes; then
1375     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
1376   fi
1378   AC_CACHE_CHECK(for libunwind-support in compiler,
1379                  libc_cv_cc_with_libunwind, [
1380     cat > conftest.c <<EOF
1381 int main (void) { return 0; }
1383     if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
1384        conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
1385       libc_cv_cc_with_libunwind=yes
1386     else
1387       libc_cv_cc_with_libunwind=no
1388     fi
1389     rm -f conftest*])
1390   AC_SUBST(libc_cv_cc_with_libunwind)
1391   if test $libc_cv_cc_with_libunwind = yes; then
1392     AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
1393   fi
1395   AC_CACHE_CHECK(for -z nodelete option,
1396                  libc_cv_z_nodelete, [dnl
1397   cat > conftest.c <<EOF
1398 int _start (void) { return 42; }
1400   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1401                      -fPIC -shared -o conftest.so conftest.c
1402                      -nostartfiles -nostdlib
1403                      -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD])
1404   then
1405     libc_cv_z_nodelete=yes
1406   else
1407     AC_MSG_ERROR(linker with -z nodelete support required)
1408   fi
1409   rm -f conftest*])
1411   AC_CACHE_CHECK(for -z nodlopen option,
1412                  libc_cv_z_nodlopen, [dnl
1413   cat > conftest.c <<EOF
1414 int _start (void) { return 42; }
1416   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1417                         -fPIC -shared -o conftest.so conftest.c
1418                         -nostartfiles -nostdlib
1419                         -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD])
1420   then
1421     libc_cv_z_nodlopen=yes
1422   else
1423     AC_MSG_ERROR(linker with -z nodlopen support required)
1424   fi
1425   rm -f conftest*])
1427   AC_CACHE_CHECK(for -z initfirst option,
1428                  libc_cv_z_initfirst, [dnl
1429   cat > conftest.c <<EOF
1430 int _start (void) { return 42; }
1432   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1433                         -fPIC -shared -o conftest.so conftest.c
1434                         -nostartfiles -nostdlib
1435                         -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD])
1436   then
1437     libc_cv_z_initfirst=yes
1438   else
1439     AC_MSG_ERROR(linker with -z initfirst support required)
1440   fi
1441   rm -f conftest*])
1443   case "$base_machine" in
1444 changequote(,)dnl
1445     i[34567]86 | x86_64 | powerpc* | s390* | sparc* | alpha*)
1446 changequote([,])dnl
1447       AC_CACHE_CHECK(for -z relro option,
1448                      libc_cv_z_relro, [dnl
1449   libc_cv_z_relro=no
1450   if AC_TRY_COMMAND([${CC-cc} -v --help 2>&1|grep "z relro" 1>&AS_MESSAGE_LOG_FD])
1451   then
1452     if AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep DATA_SEGMENT_RELRO_END 1>&AS_MESSAGE_LOG_FD])
1453     then
1454       libc_cv_z_relro=yes
1455     fi
1456   fi])
1457       if test "$libc_cv_z_relro" = no; then
1458         AC_MSG_ERROR(linker with -z relro support required)
1459       fi
1460       ;;
1461     *) ;;
1462    esac
1464   AC_CACHE_CHECK(for -Bgroup option,
1465                  libc_cv_Bgroup, [dnl
1466   cat > conftest.c <<EOF
1467 int _start (void) { return 42; }
1469   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1470                               -fPIC -shared -o conftest.so conftest.c
1471                               -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD])
1472   then
1473     libc_cv_Bgroup=yes
1474   else
1475     libc_cv_Bgroup=no
1476   fi
1477   rm -f conftest*])
1478   AC_SUBST(libc_cv_Bgroup)
1480   AC_CACHE_CHECK(for libgcc_s suffix,
1481                  libc_cv_libgcc_s_suffix, [dnl
1482   cat > conftest.c <<EOF
1483 int main (void) { return 0; }
1485 changequote(,)dnl
1486   libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
1487                            -fPIC -shared -shared-libgcc -o conftest.so \
1488                            conftest.c -v 2>&1 >/dev/null \
1489                            | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
1490 changequote([,])dnl
1491   rm -f conftest*])
1492   AC_SUBST(libc_cv_libgcc_s_suffix)
1494   AC_CACHE_CHECK(for --as-needed option,
1495                  libc_cv_as_needed, [dnl
1496   cat > conftest.c <<EOF
1497 int main (void) { return 0; }
1499   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1500                               -fPIC -shared -o conftest.so conftest.c
1501                               -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
1502                               -nostdlib 1>&AS_MESSAGE_LOG_FD])
1503   then
1504     libc_cv_as_needed=yes
1505   else
1506     libc_cv_as_needed=no
1507   fi
1508   rm -f conftest*])
1509   AC_SUBST(libc_cv_as_needed)
1511   ASFLAGS_config=
1512   AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
1513                  libc_cv_as_noexecstack, [dnl
1514   cat > conftest.c <<EOF
1515 void foo (void) { }
1517   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
1518                      -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
1519      && grep -q .note.GNU-stack conftest.s \
1520      && AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wa,--noexecstack
1521                        -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
1522   then
1523     libc_cv_as_noexecstack=yes
1524   else
1525     libc_cv_as_noexecstack=no
1526   fi
1527   rm -f conftest*])
1528   if test $libc_cv_as_noexecstack = yes; then
1529     ASFLAGS_config="$ASFLAGS_config -Wa,--noexecstack"
1530   fi
1531   AC_SUBST(ASFLAGS_config)
1533   AC_CACHE_CHECK(for -z combreloc,
1534                  libc_cv_z_combreloc, [dnl
1535   cat > conftest.c <<EOF
1536 extern int bar (int);
1537 extern int mumble;
1538 int foo (void) { return bar (mumble); }
1540   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1541                         -fPIC -shared -o conftest.so conftest.c
1542                         -nostdlib -nostartfiles
1543                         -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD])
1544   then
1545 dnl The following test is a bit weak.  We must use a tool which can test
1546 dnl cross-platform since the gcc used can be a cross compiler.  Without
1547 dnl introducing new options this is not easily doable.  Instead use a tool
1548 dnl which always is cross-platform: readelf.  To detect whether -z combreloc
1549 dnl look for a section named .rel.dyn.
1550     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1551       libc_cv_z_combreloc=yes
1552     else
1553       libc_cv_z_combreloc=no
1554     fi
1555   else
1556     libc_cv_z_combreloc=no
1557   fi
1558   rm -f conftest*])
1559   if test "$libc_cv_z_combreloc" = yes; then
1560     AC_DEFINE(HAVE_Z_COMBRELOC)
1561   fi
1562   AC_SUBST(libc_cv_z_combreloc)
1564   AC_CACHE_CHECK(for -z execstack,
1565                  libc_cv_z_execstack, [dnl
1566   cat > conftest.c <<EOF
1567 int _start (void) { return 42; }
1569   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1570                               -fPIC -shared -o conftest.so conftest.c
1571                               -Wl,-z,execstack -nostdlib
1572                               1>&AS_MESSAGE_LOG_FD])
1573   then
1574     libc_cv_z_execstack=yes
1575   else
1576     libc_cv_z_execstack=no
1577   fi
1578   rm -f conftest*])
1579   AC_SUBST(libc_cv_z_execstack)
1581   AC_CACHE_CHECK(for -fpie, libc_cv_fpie, [dnl
1582   cat > conftest.c <<EOF
1583 int foo;
1584 main () { return 0;}
1586   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fpie
1587                               -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1588   then
1589     libc_cv_fpie=yes
1590   else
1591     libc_cv_fpie=no
1592   fi
1593   rm -f conftest*])
1595   AC_SUBST(libc_cv_fpie)
1597   AC_CACHE_CHECK(for --hash-style option,
1598                  libc_cv_hashstyle, [dnl
1599   cat > conftest.c <<EOF
1600 int _start (void) { return 42; }
1602   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1603                               -fPIC -shared -o conftest.so conftest.c
1604                               -Wl,--hash-style=both -nostdlib 1>&AS_MESSAGE_LOG_FD])
1605   then
1606     libc_cv_hashstyle=yes
1607   else
1608     libc_cv_hashstyle=no
1609   fi
1610   rm -f conftest*])
1611   AC_SUBST(libc_cv_hashstyle)
1614 AC_CACHE_CHECK(for -fno-toplevel-reorder, libc_cv_fno_toplevel_reorder, [dnl
1615 cat > conftest.c <<EOF
1616 int foo;
1618 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -fno-toplevel-reorder
1619                             conftest.c 1>&AS_MESSAGE_LOG_FD])
1620 then
1621   libc_cv_fno_toplevel_reorder=yes
1622 else
1623   libc_cv_fno_toplevel_reorder=no
1625 rm -f conftest*])
1626 if test $libc_cv_fno_toplevel_reorder = yes; then
1627   fno_unit_at_a_time=-fno-toplevel-reorder
1628 else
1629   fno_unit_at_a_time=-fno-unit-at-a-time
1631 AC_SUBST(fno_unit_at_a_time)
1633 AC_CACHE_CHECK(for -fstack-protector, libc_cv_ssp, [dnl
1634 cat > conftest.c <<EOF
1635 int foo;
1636 main () { return 0;}
1638 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -fstack-protector
1639                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1640 then
1641   libc_cv_ssp=yes
1642 else
1643   libc_cv_ssp=no
1645 rm -f conftest*])
1646 AC_SUBST(libc_cv_ssp)
1648 AC_CACHE_CHECK(for -fgnu89-inline, libc_cv_gnu89_inline, [dnl
1649 cat > conftest.c <<EOF
1650 int foo;
1651 #ifdef __GNUC_GNU_INLINE__
1652 main () { return 0;}
1653 #else
1654 #error
1655 #endif
1657 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -std=gnu99 -fgnu89-inline
1658                             -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD])
1659 then
1660   libc_cv_gnu89_inline=yes
1661 else
1662   libc_cv_gnu89_inline=no
1664 rm -f conftest*])
1665 if test $libc_cv_gnu89_inline = yes; then
1666   libc_cv_gnu89_inline=-fgnu89-inline
1667 else
1668   libc_cv_gnu89_inline=
1670 AC_SUBST(libc_cv_gnu89_inline)
1672 if test $elf != yes; then
1673   AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1674                  [AC_TRY_COMPILE(, [asm (".section .init");
1675                                     asm (".section .fini");
1676                                     asm ("${libc_cv_dot_text}");],
1677                                  libc_cv_have_initfini=yes,
1678                                  libc_cv_have_initfini=no)])
1679   AC_SUBST(libc_cv_have_initfini)dnl
1680   if test $libc_cv_have_initfini = yes; then
1681     AC_DEFINE(HAVE_INITFINI)
1682   fi
1685 if test $elf = yes; then
1686   AC_CACHE_CHECK(whether cc puts quotes around section names,
1687                  libc_cv_have_section_quotes,
1688                  [cat > conftest.c <<EOF
1689                   static const int foo
1690                   __attribute__ ((section ("bar"))) = 1;
1692                   if ${CC-cc} -S conftest.c -o conftest.s; then
1693                     if grep '\.section.*"bar"' conftest.s >/dev/null; then
1694                       libc_cv_have_section_quotes=yes
1695                     else
1696                       libc_cv_have_section_quotes=no
1697                     fi
1698                   else
1699                     libc_cv_have_section_quotes=unknown
1700                   fi
1701                   rm -f conftest.[cs]
1702                  ])
1703   if test $libc_cv_have_section_quotes = yes; then
1704     AC_DEFINE(HAVE_SECTION_QUOTES)
1705   fi
1708 dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1709 AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1710 [cat > conftest.$ac_ext <<EOF
1711 dnl This sometimes fails to find confdefs.h, for some reason.
1712 dnl [#]line $LINENO "[$]0"
1713 [#]line $LINENO "configure"
1714 #include "confdefs.h"
1715 void underscore_test(void) {
1716 return; }
1718 if AC_TRY_EVAL(ac_compile); then
1719   if grep _underscore_test conftest* >/dev/null; then
1720     ifelse([$1], , :, [rm -f conftest*
1721     $1])
1722   else
1723     ifelse([$2], , , [rm -f conftest*
1724     $2])
1725   fi
1726 else
1727   echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
1728   cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD
1729   ifelse([$2], , , [rm -f conftest*
1730   $2])
1732 rm -f conftest*])
1734 if test $elf = yes; then
1735   libc_cv_asm_underscores=no
1736 else
1737   if test $ac_cv_prog_cc_works = yes; then
1738     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1739                    [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1740                                 libc_cv_asm_underscores=yes,
1741                                 libc_cv_asm_underscores=no)])
1742   else
1743     AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1744                    [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1745                                             libc_cv_asm_underscores=no)])
1746   fi
1748 if test $libc_cv_asm_underscores = no; then
1749   AC_DEFINE(NO_UNDERSCORES)
1752 if test $elf = yes; then
1753   libc_cv_weak_symbols=yes
1756 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
1757                [dnl
1758 cat > conftest.s <<EOF
1759 ${libc_cv_dot_text}
1760 ${libc_cv_asm_global_directive} foo
1761 foo:
1762 .weak foo
1763 .weak bar; bar = foo
1765 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1766   libc_cv_asm_weak_directive=yes
1767 else
1768   libc_cv_asm_weak_directive=no
1770 rm -f conftest*])
1772 if test $libc_cv_asm_weak_directive = no; then
1773   AC_CACHE_CHECK(for assembler .weakext directive,
1774                  libc_cv_asm_weakext_directive,
1775                  [dnl
1776 cat > conftest.s <<EOF
1777 ${libc_cv_dot_text}
1778 ${libc_cv_asm_global_directive} foo
1779 foo:
1780 .weakext bar foo
1781 .weakext baz
1782 ${libc_cv_asm_global_directive} baz
1783 baz:
1785   if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1786     libc_cv_asm_weakext_directive=yes
1787   else
1788     libc_cv_asm_weakext_directive=no
1789   fi
1790   rm -f conftest*])
1792 fi # no .weak
1794 if test $libc_cv_asm_weak_directive = yes; then
1795   AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
1796 elif test $libc_cv_asm_weakext_directive = yes; then
1797   AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1800 AC_CACHE_CHECK(whether CFI directives are supported, libc_cv_asm_cfi_directives, [dnl
1801 case $machine in
1802   sparc/sparc64*) cfi_offset=2047;;
1803   *) cfi_offset=0;;
1804 esac
1805 cat > conftest.s <<EOF
1806         .text
1807         .type   func,%function
1808 func:
1809         .cfi_startproc
1810         .cfi_remember_state
1811         .cfi_rel_offset 1, $cfi_offset
1812         .cfi_endproc
1814 if AC_TRY_COMMAND(${CC-cc} $ASFLAGS -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
1815   libc_cv_asm_cfi_directives=yes
1816 else
1817   libc_cv_asm_cfi_directives=no
1819 rm -f conftest*])
1820 if test $libc_cv_asm_cfi_directives = yes; then
1821   AC_DEFINE(HAVE_ASM_CFI_DIRECTIVES)
1824 AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1825 cat > conftest.c <<\EOF
1826 _start () {}
1827 int __eh_pc;
1828 __throw () {}
1830 dnl No \ in command here because it ends up inside ''.
1831 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1832                             -nostdlib -nostartfiles -Wl,--no-whole-archive
1833                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1834   libc_cv_ld_no_whole_archive=yes
1835 else
1836   libc_cv_ld_no_whole_archive=no
1838 rm -f conftest*])
1839 if test $libc_cv_ld_no_whole_archive = yes; then
1840   no_whole_archive=-Wl,--no-whole-archive
1842 AC_SUBST(no_whole_archive)dnl
1844 AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
1845 cat > conftest.c <<\EOF
1846 _start () {}
1847 int __eh_pc;
1848 __throw () {}
1850 dnl No \ in command here because it ends up inside ''.
1851 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
1852                             -nostdlib -nostartfiles -fexceptions
1853                             -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then
1854   libc_cv_gcc_exceptions=yes
1855 else
1856   libc_cv_gcc_exceptions=no
1858 rm -f conftest*])
1859 if test $libc_cv_gcc_exceptions = yes; then
1860   exceptions=-fexceptions
1862 AC_SUBST(exceptions)dnl
1864 if test "$host_cpu" = powerpc ; then
1865 # Check for a bug present in at least versions 2.8.x of GCC
1866 # and versions 1.0.x of EGCS.
1867 AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1868 AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1869                libc_cv_c_asmcr0_bug='no',
1870                libc_cv_c_asmcr0_bug='yes')])
1871 if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1872   AC_DEFINE(BROKEN_PPC_ASM_CR0)
1876 dnl Check whether compiler understands __builtin_expect.
1877 AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1878 [cat > conftest.c <<EOF
1879 #line $LINENO "configure"
1880 int foo (int a)
1882   a = __builtin_expect (a, 10);
1883   return a == 10 ? 0 : 1;
1886 dnl No \ in command here because it ends up inside ''.
1887 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -nostdlib -nostartfiles
1888                             -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then
1889   libc_cv_gcc_builtin_expect=yes
1890 else
1891   libc_cv_gcc_builtin_expect=no
1893 rm -f conftest*])
1894 if test "$libc_cv_gcc_builtin_expect" = yes; then
1895   AC_DEFINE(HAVE_BUILTIN_EXPECT)
1898 AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1899 cat > conftest.c <<\EOF
1900 void zero (void *x)
1902   __builtin_memset (x, 0, 1000);
1906 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1907 then
1908   libc_cv_gcc_builtin_memset=no
1909 else
1910   libc_cv_gcc_builtin_memset=yes
1912 rm -f conftest* ])
1913 if test "$libc_cv_gcc_builtin_memset" = yes ; then
1914   AC_DEFINE(HAVE_BUILTIN_MEMSET)
1917 AC_CACHE_CHECK(for redirection of built-in functions, libc_cv_gcc_builtin_redirection, [dnl
1918 cat > conftest.c <<\EOF
1919 extern char *strstr (const char *, const char *) __asm ("my_strstr");
1920 char *foo (const char *a, const char *b)
1922   return __builtin_strstr (a, b);
1926 if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "my_strstr" > /dev/null]);
1927 then
1928   libc_cv_gcc_builtin_redirection=yes
1929 else
1930   libc_cv_gcc_builtin_redirection=no
1932 rm -f conftest* ])
1933 if test "$libc_cv_gcc_builtin_redirection" = yes ; then
1934   AC_DEFINE(HAVE_BUILTIN_REDIRECTION)
1937 dnl Check whether the compiler supports the __thread keyword.
1938 if test "x$use__thread" != xno; then
1939   AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread,
1940   [cat > conftest.c <<\EOF
1941 __thread int a = 42;
1943   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
1944     libc_cv_gcc___thread=yes
1945   else
1946     libc_cv_gcc___thread=no
1947   fi
1948   rm -f conftest*])
1949   if test "$libc_cv_gcc___thread" = yes; then
1950     AC_DEFINE(HAVE___THREAD)
1951   fi
1952 else
1953   libc_cv_gcc___thread=no
1956 if test "$libc_cv_gcc___thread" = yes; then
1957   dnl Check whether the compiler supports the tls_model attribute.
1958   AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl
1959   cat > conftest.c <<\EOF
1960 extern __thread int a __attribute__((tls_model ("initial-exec")));
1962   if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then
1963     libc_cv_gcc_tls_model_attr=yes
1964   else
1965     libc_cv_gcc_tls_model_attr=no
1966   fi
1967   rm -f conftest*])
1968   if test "$libc_cv_gcc_tls_model_attr" = yes; then
1969     AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE)
1970   fi
1973 dnl Check whether we have the gd library available.
1974 AC_MSG_CHECKING(for libgd)
1975 if test "$with_gd" != "no"; then
1976   old_CFLAGS="$CFLAGS"
1977   CFLAGS="$CFLAGS $libgd_include"
1978   old_LDFLAGS="$LDFLAGS"
1979   LDFLAGS="$LDFLAGS $libgd_ldflags"
1980   old_LIBS="$LIBS"
1981   LIBS="$LIBS -lgd -lpng -lz -lm"
1982   AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1983   CFLAGS="$old_CFLAGS"
1984   LDFLAGS="$old_LDFLAGS"
1985   LIBS="$old_LIBS"
1986 else
1987   LIBGD=no
1989 AC_MSG_RESULT($LIBGD)
1990 AC_SUBST(LIBGD)
1992 # SELinux detection
1993 if test x$with_selinux = xno ; then
1994   have_selinux=no;
1995 else
1996   # See if we have the SELinux library
1997   AC_CHECK_LIB(selinux, is_selinux_enabled,
1998                have_selinux=yes, have_selinux=no)
1999   # See if we have the SELinux header with the NSCD permissions in it.
2000   if test x$have_selinux = xyes ; then
2001     AC_MSG_CHECKING([for NSCD Flask permissions in selinux/av_permissions.h])
2002     AC_TRY_COMPILE([#include <selinux/av_permissions.h>],
2003                     [#ifdef NSCD__SHMEMHOST
2004                      return 0;
2005                      #else
2006                      #error NSCD__SHMEMHOST not defined
2007                      #endif],
2008                     have_selinux=yes, have_selinux=no)
2009     AC_MSG_RESULT($have_selinux)
2010   fi
2012   if test x$with_selinux = xyes ; then
2013     if test x$have_selinux = xno ; then
2014       AC_MSG_ERROR([SELinux explicitly required, but sufficiently recent SELinux library not found])
2015     fi
2016   fi
2018 # Check if we're building with SELinux support.
2019 if test "x$have_selinux" = xyes; then
2020   AC_DEFINE(HAVE_SELINUX, 1, [SELinux support])
2022   # See if we have the libaudit library
2023   AC_CHECK_LIB(audit, audit_log_user_avc_message,
2024                have_libaudit=yes, have_libaudit=no)
2025   if test "x$have_libaudit" = xyes; then
2026     AC_DEFINE(HAVE_LIBAUDIT, 1, [SELinux libaudit support])
2027   fi
2028   AC_SUBST(have_libaudit)
2030   # See if we have the libcap library
2031   AC_CHECK_LIB(cap, cap_init, have_libcap=yes, have_libcap=no)
2032   if test "x$have_libcap" = xyes; then
2033     AC_DEFINE(HAVE_LIBCAP, 1, [SELinux libcap support])
2034   fi
2035   AC_SUBST(have_libcap)
2037 AC_SUBST(have_selinux)
2039 dnl check for the size of 'long double'.
2040 AC_CHECK_SIZEOF(long double, 0)
2041 sizeof_long_double=$ac_cv_sizeof_long_double
2042 AC_SUBST(sizeof_long_double)
2044 ### End of automated tests.
2045 ### Now run sysdeps configure fragments.
2047 # They also can set these variables.
2048 use_ldconfig=no
2049 ldd_rewrite_script=no
2050 libc_cv_sysconfdir=$sysconfdir
2051 libc_cv_gcc_unwind_find_fde=no
2052 libc_cv_idn=no
2054 # Iterate over all the sysdep directories we will use, running their
2055 # configure fragments, and looking for a uname implementation.
2056 uname=
2057 for dir in $sysnames; do
2058   case $dir in
2059     /*) dest=$dir ;;
2060     *)  dest=$srcdir/$dir ;;
2061   esac
2062   if test -r $dest/configure; then
2063     AC_MSG_RESULT(running configure fragment for $dir)
2064     . $dest/configure
2065   fi
2067   if test -z "$uname"; then
2068     if test -r $dest/uname.c ||
2069        test -r $dest/uname.S ||
2070        { test -r $dest/syscalls.list &&
2071          grep '^uname[  ]' $dest/syscalls.list >/dev/null; }; then
2072       uname=$dir
2073     fi
2074   fi
2075 ]dnl
2076 done
2078 if test x$libc_cv_gcc_unwind_find_fde = xyes; then
2079   AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
2081 AC_SUBST(libc_cv_gcc_unwind_find_fde)
2083 # If we will use the generic uname implementation, we must figure out what
2084 # it will say by examining the system, and write the results in config-name.h.
2085 if test "$uname" = "sysdeps/generic"; then
2087 changequote(,)dnl
2088   uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
2089 changequote([,])dnl
2090   if test $uname_sysname != $config_os; then
2091     config_release=`echo $config_os | sed s/$uname_sysname//`
2092   fi
2094 AC_DEFUN(LIBC_KERNEL_ID, [dnl
2095     if test -r /vmunix; then
2096       kernel_id=`strings /vmunix | grep UNIX`
2097     elif test -r /dynix; then
2098       kernel_id=`strings /dynix | grep DYNIX`
2099     else
2100       kernel_id=
2101     fi
2102 ])dnl
2104   AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
2105 LIBC_KERNEL_ID
2106 changequote(,)dnl
2107   kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
2108 changequote([,])dnl
2109   if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
2110          != x$config_release; then
2111     # The configuration release is a substring of the kernel release.
2112     libc_cv_uname_release=$kernel_release
2113   elif test x$config_release != x; then
2114     libc_cv_uname_release=$config_release
2115   elif test x$kernel_release != x; then
2116     libc_cv_uname_release=$kernel_release
2117   else
2118     libc_cv_uname_release=unknown
2119   fi])
2120   uname_release="$libc_cv_uname_release"
2122   AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
2123 LIBC_KERNEL_ID
2124 changequote(,)dnl
2125   kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
2126 changequote([,])dnl
2127   if test -n "$kernel_version"; then
2128     libc_cv_uname_version="$kernel_version"
2129   else
2130     libc_cv_uname_version=unknown
2131   fi])
2132   uname_version="$libc_cv_uname_version"
2134 AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
2135   config_uname=config-name.h:config-name.in
2136 else
2137   # For non-generic uname, we don't need to create config-name.h at all.
2138   config_uname=
2141 dnl This is tested by existing code and it's simpler to avoid changing it.
2142 AC_DEFINE(USE_IN_LIBIO)
2144 # Test for old glibc 2.0.x headers so that they can be removed properly
2145 # Search only in includedir.
2146 AC_MSG_CHECKING(for old glibc 2.0.x headers)
2147 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
2148 then
2149   old_glibc_headers=yes
2150 else
2151   old_glibc_headers=no
2153 AC_MSG_RESULT($old_glibc_headers)
2154 if test ${old_glibc_headers} = yes; then
2155   AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
2156   AC_MSG_WARN(*** be removed.)
2158 AC_SUBST(old_glibc_headers)
2160 AC_SUBST(libc_cv_slibdir)
2161 AC_SUBST(libc_cv_localedir)
2162 AC_SUBST(libc_cv_sysconfdir)
2163 AC_SUBST(libc_cv_rootsbindir)
2164 AC_SUBST(libc_cv_forced_unwind)
2166 AC_SUBST(use_ldconfig)
2167 AC_SUBST(ldd_rewrite_script)
2169 AC_SUBST(elf) AC_SUBST(xcoff)
2170 if test $elf = yes; then
2171   AC_DEFINE(HAVE_ELF)
2173 if test $xcoff = yes; then
2174   AC_DEFINE(HAVE_XCOFF)
2177 AC_SUBST(static)
2178 AC_SUBST(shared)
2179 if test $shared = default; then
2180   shared=$elf
2183 AC_CACHE_CHECK([whether -fPIC is default], pic_default,
2184 [pic_default=yes
2185 cat > conftest.c <<EOF
2186 #if defined __PIC__ || defined __pic__ || defined PIC || defined pic
2187 # error PIC is default.
2188 #endif
2190 if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then
2191   pic_default=no
2193 rm -f conftest.*])
2194 AC_SUBST(pic_default)
2196 AC_SUBST(profile)
2197 AC_SUBST(omitfp)
2198 AC_SUBST(bounded)
2199 AC_SUBST(static_nss)
2200 AC_SUBST(nopic_initfini)
2202 AC_SUBST(DEFINES)
2204 dnl See sysdeps/mach/configure.in for this variable.
2205 AC_SUBST(mach_interface_list)
2207 if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
2208   config_makefile=
2209 else
2210   config_makefile=Makefile
2213 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
2214 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
2215 AC_SUBST(VERSION)
2216 AC_SUBST(RELEASE)
2218 AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
2219 AC_CONFIG_COMMANDS([default],[[
2220 case $CONFIG_FILES in *config.make*)
2221 echo "$config_vars" >> config.make;;
2222 esac
2223 test -d bits || mkdir bits]],[[config_vars='$config_vars']])
2224 AC_OUTPUT