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