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