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