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