]> sourceware.org Git - glibc.git/blame - configure.in
Update.
[glibc.git] / configure.in
CommitLineData
f4017d20 1dnl Process this file with autoconf to produce a configure script.
ff3d7ed3 2AC_REVISION([$CVSid$])
8a523922 3AC_PREREQ(2.11)dnl dnl Minimum Autoconf version required.
5107cf1d 4AC_INIT(include/features.h)
28f540f4
RM
5AC_CONFIG_HEADER(config.h)
6
7# This will get text that should go into config.make.
8config_vars=
9
10# Check for a --with-gmp argument and set gmp-srcdir in config.make.
11AC_ARG_WITH(gmp, dnl
12 --with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed),
13 [dnl
14case "$with_gmp" in
15yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
16''|no) ;;
17*) config_vars="$config_vars
18gmp-srcdir = $withval" ;;
19esac
20])
75914335
RM
21# Check for a --with-gettext argument and set gettext-srcdir in config.make.
22AC_ARG_WITH(gettext, dnl
23 --with-gettext=DIR find GNU gettext source code in DIR (not needed),
24 [dnl
25case "$with_gettext" in
26yes)
27 AC_MSG_ERROR(--with-gettext requires an argument; use --with-gettext=DIR) ;;
28''|no) ;;
29*)
30 config_vars="$config_vars
31gettext-srcdir = $withval" ;;
32esac
33])
28f540f4 34
ff3d7ed3 35dnl Arguments to specify presence of other packages/features.
335aa320 36AC_ARG_WITH(fp, dnl
a18f587d 37[ --with-fp if using floating-point hardware [default=yes]],
335aa320 38 with_fp=$withval, with_fp=yes)
650425ce 39AC_ARG_WITH(binutils, dnl
a5a0310d 40 --with-binutils=PATH specify location of binutils (as and ld),
650425ce 41 path_binutils=$withval, path_binutils='')
28f540f4
RM
42AC_ARG_WITH(elf, dnl
43 --with-elf if using the ELF object format,
335aa320 44 elf=$withval, elf=no)
28f540f4 45
deab9dea
RM
46AC_ARG_ENABLE(libio, dnl
47[ --enable-libio build in GNU libio instead of GNU stdio],
f4482045
RM
48 [if test $enableval = yes; then
49 stdio=libio
50 else
51 stdio=stdio
52 fi],
53 stdio=default)
deab9dea 54
a18f587d
UD
55AC_ARG_ENABLE(sanity-checks, dnl
56[ --disable-sanity-checks really do not use threads (should not be used
57 except in special situations) [default=yes]],
58 enable_sanity=$enableval, enable_sanity=yes)
59
650425ce
UD
60dnl Arguments to enable or disable building the static, shared, profiled,
61dnl and -fomit-frame-pointer libraries.
62AC_ARG_ENABLE(static, dnl
63[ --enable-static build static library [default=yes]],
64 static=$enableval, static=yes)
ff3d7ed3
RM
65AC_ARG_ENABLE(shared, dnl
66[ --enable-shared build shared library [default=yes if GNU ld & ELF]],
6b3a2224 67 shared=$enableval, shared=default)
ff3d7ed3
RM
68AC_ARG_ENABLE(profile, dnl
69[ --enable-profile build profiled library [default=yes]],
6b3a2224 70 profile=$enableval, profile=yes)
ff3d7ed3 71AC_ARG_ENABLE(omitfp, dnl
6b3a2224
RM
72[ --enable-omitfp build undebuggable optimized library [default=no]],
73 omitfp=$enableval, omitfp=no)
5a97622d
UD
74AC_ARG_ENABLE(bounded, dnl
75[ --enable-bounded build with runtime bounds checking [default=no]],
76 bounded=$enableval, bounded=no)
650425ce
UD
77AC_ARG_ENABLE(versioning, dnl
78[ --disable-versioning do not include versioning information in the
79 library objects [default=yes if supported]],
80 enable_versioning=$enableval, enable_versioning=yes)
6b3a2224
RM
81
82dnl Generic infrastructure for drop-in additions to libc.
83AC_ARG_ENABLE(add-ons, dnl
d71b808a
UD
84[ --enable-add-ons[=DIR1,DIR2]... configure and build add-ons in DIR1,DIR2,...
85 search for add-ons if no parameter given],
61952351
UD
86 [case "$enableval" in
87 yes) add_ons=`echo $srcdir/*/configure | \
88 sed -e "s!$srcdir/!!g" -e 's!/configure!!g'`;;
89 *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
90 esac],
91 [add_ons=])
92
6b3a2224 93AC_CONFIG_SUBDIRS($add_ons)
57ba7bb4 94add_ons_pfx=
da74e902 95if test x"$add_ons" != x; then
57ba7bb4 96 for f in $add_ons; do
af6f3906
UD
97 # Test whether such a subdir really exists.
98 if test -d $srcdir/$f; then
99 add_ons_pfx="$add_ons_pfx $f/"
100 else
101 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
102 fi
57ba7bb4
UD
103 done
104fi
ff3d7ed3 105
5107cf1d
UD
106dnl On some platforms we cannot use dynamic loading. We must provide
107dnl static NSS modules.
108AC_ARG_ENABLE(static-nss, dnl
109[ --enable-static-nss build static NSS modules [default=no]],
110 static_nss=$enableval, static_nss=no)
111if test x"$static_nss" = xyes; then
112 AC_DEFINE(DO_STATIC_NSS)
113fi
114
28f540f4 115AC_CANONICAL_HOST
8a523922
UD
116
117# The way shlib-versions is used to generate soversions.mk uses a
118# fairly simplistic model for name recognition that can't distinguish
119# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
120# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
121# tell. This doesn't get used much beyond that, so it's fairly safe.
122case "$host_os" in
123linux*)
124 ;;
125gnu*)
126 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
127 ;;
128esac
129
61eb22d3
UD
130###
131### I put this here to prevent those annoying emails from people who cannot
132### read and try to compile glibc on unsupported platforms. --drepper
133###
650425ce
UD
134### By using the undocumented --enable-hacker-mode option for configure
135### one can skip this test to make the configuration not fail for unsupported
136### platforms.
137###
138if test -z "$enable_hacker_mode"; then
139 case "$host_os" in
140 linux* | gnu*)
141 ;;
142 *)
143 echo "*** The GNU C library is currently not available for this platform."
144 echo "*** So far nobody cared to port it and if there is no volunteer it"
145 echo "*** might never happen. So, if you have interest to see glibc on"
146 echo "*** this platform visit"
147 echo "*** http://www.gnu.ai.mit.edu/software/libc/porting.html"
148 echo "*** and join the group of porters"
149 exit 1
150 ;;
151 esac
152fi
61eb22d3 153
28f540f4
RM
154# We keep the original values in `$config_*' and never modify them, so we
155# can write them unchanged into config.make. Everything else uses
156# $machine, $vendor, and $os, and changes them whenever convenient.
157config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
158
a2fe9c76
RM
159# Some configurations imply other options.
160case "$host_os" in
161gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
162 # These systems always use GNU tools.
c8cf0b14 163 gnu_ld=yes gnu_as=yes ;;
a2fe9c76
RM
164esac
165case "$host_os" in
7799b7b3
UD
166# i586-linuxaout is mangled into i586-pc-linux-gnuaout
167linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
3776d592 168 ;;
a2fe9c76 169gnu* | linux* | sysv4* | solaris2*)
3776d592
RM
170 # These systems (almost) always use the ELF format.
171 elf=yes
84724245 172 ;;
a2fe9c76
RM
173esac
174
28f540f4
RM
175machine=$config_machine
176vendor=$config_vendor
177os=$config_os
178
179dnl We need to use [ and ] for other purposes for a while now.
180changequote(,)dnl
181# Expand the configuration machine name into a subdirectory by architecture
182# type and particular chip.
183case "$machine" in
f0523145
RM
184a29k | am29000) base_machine=a29k machine=a29k ;;
185alpha*) base_machine=alpha machine=alpha/$machine ;;
7799b7b3 186arm*) base_machine=arm machine=arm/$machine ;;
60c96635
UD
187c3[012]) base_machine=cx0 machine=cx0/c30 ;;
188c4[04]) base_machine=cx0 machine=cx0/c40 ;;
f0523145 189hppa*) base_machine=hppa machine=hppa/$machine ;;
a8922de8 190i[3456]86) base_machine=i386 machine=i386/$machine ;;
f0523145
RM
191m680?0) base_machine=m68k machine=m68k/$machine ;;
192m68k) base_machine=m68k machine=m68k/m68020 ;;
193m88???) base_machine=m88k machine=m88k/$machine ;;
194m88k) base_machine=m88k machine=m88k/m88100 ;;
f0523145 195mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
f21acc89 196mips*) base_machine=mips machine=mips/$machine ;;
ca34d7a7
UD
197sparc | sparcv[67])
198 base_machine=sparc machine=sparc/sparc32 ;;
199sparcv8 | supersparc | hypersparc)
200 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
201sparc64 | ultrasparc)
202 base_machine=sparc machine=sparc/sparc64 ;;
28f540f4 203esac
f0523145
RM
204changequote([,])dnl
205AC_SUBST(base_machine)
28f540f4 206
dfd2257a
UD
207if test "$base_machine" = "i386"; then
208 AC_DEFINE(USE_REGPARMS)
209fi
210
f0523145 211# Compute the list of sysdep directories for this configuration.
f332db02 212# This can take a while to compute.
f0523145 213sysdep_dir=$srcdir/sysdeps
f332db02 214AC_MSG_CHECKING(sysdep dirs)
f0523145
RM
215dnl We need to use [ and ] for other purposes for a while now.
216changequote(,)dnl
28f540f4
RM
217# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
218os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
219
220case "$os" in
221gnu*)
222 base_os=mach/hurd ;;
883bc19b 223netbsd* | 386bsd* | freebsd* | bsdi*)
28f540f4 224 base_os=unix/bsd/bsd4.4 ;;
222c4e71 225osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
28f540f4 226 base_os=unix/bsd ;;
d586354e 227sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
28f540f4 228 base_os=unix/sysv ;;
d586354e 229solaris[2-9]*)
28f540f4
RM
230 base_os=unix/sysv/sysv4 ;;
231none)
232 base_os=standalone ;;
233*)
234 base_os='' ;;
235esac
236
237# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
238tail=$os
239ostry=$os
240while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
241 ostry="$ostry /$o"
242 tail=$o
75914335 243done
28f540f4
RM
244o=`echo $tail | sed 's/[0-9]*$//'`
245if test $o != $tail; then
246 ostry="$ostry /$o"
247fi
ec4b0518
UD
248# For linux-gnu, try linux-gnu, then linux.
249o=`echo $tail | sed 's/-.*$//'`
250if test $o != $tail; then
251 ostry="$ostry /$o"
252fi
28f540f4
RM
253
254# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
255base=
256tail=$base_os
257while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
258 set $b
259 base="$base /$1"
260 tail="$2"
261done
262
263# For sparc/sparc9, try sparc/sparc9 and then sparc.
264mach=
265tail=$machine
266while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
267 set $m
10ceac89
RM
268 # Prepend the machine's FPU directory unless --without-fp.
269 if test "$with_fp" = yes; then
270 mach="$mach /$1/fpu"
82d00cab 271 fi
28f540f4
RM
272 mach="$mach /$1"
273 tail="$2"
274done
275
276dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
277changequote([,])dnl
278
279# Find what sysdep directories exist.
280sysnames=
57ba7bb4
UD
281IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
282for d in $add_ons_pfx ''; do
283 for b in $base ''; do
284 for m0 in $mach ''; do
285 for v in /$vendor ''; do
286 for o in /$ostry ''; do
287 for m in $mach ''; do
288 if test "$m0$b$v$o$m"; then
289 try="${d}sysdeps$m0$b$v$o$m"
290 test -n "$enable_debug_configure" &&
291 echo "$0 [DEBUG]: try $try" >&2
292 case $try in
293 /*) dest=$try ;;
294 *) dest=$srcdir/$try ;;
295 esac
296 if test -d $dest; then
297 sysnames="$sysnames $try"
298 { test -n "$o" || test -n "$b"; } && os_used=t
299 { test -n "$m" || test -n "$m0"; } && machine_used=t
300 fi
301 fi
302 done
28f540f4
RM
303 done
304 done
305 done
306 done
307done
57ba7bb4 308IFS="$ac_save_ifs"
28f540f4
RM
309
310if test -z "$os_used" && test "$os" != none; then
311 AC_MSG_ERROR(Operating system $os is not supported.)
312fi
313if test -z "$machine_used" && test "$machine" != none; then
314 AC_MSG_ERROR(The $machine is not supported.)
315fi
316
317# We have now validated the configuration.
318
335aa320 319
10ceac89
RM
320# If using ELF, look for an `elf' subdirectory of each machine directory.
321# We prepend these rather than inserting them whereever the machine appears
322# because things specified by the machine's ELF ABI should override
323# OS-specific things, and should always be the same for any OS on the
324# machine (otherwise what's the point of an ABI?).
325if test "$elf" = yes; then
326 elf_dirs=
57ba7bb4
UD
327 for d in $add_ons_pfx ''; do
328 case $d in
329 /*) xsrcdir= ;;
330 *) xsrcdir=$srcdir/ ;;
331 esac
332 for m in $mach; do
333 if test -d $xsrcdir${d}sysdeps$m/elf; then
c2bb8cab 334 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
57ba7bb4
UD
335 fi
336 done
28f540f4 337 done
57ba7bb4 338 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
28f540f4
RM
339fi
340
335aa320 341
28f540f4
RM
342# Expand the list of system names into a full list of directories
343# from each element's parent name and Implies file (if present).
344set $sysnames
e50ec9f9 345names=
28f540f4
RM
346while test $# -gt 0; do
347 name=$1
348 shift
349
e50ec9f9 350 case " $names " in *" $name "*)
f332db02
RM
351 # Already in the list.
352 continue
e50ec9f9 353 esac
f332db02
RM
354
355 # Report each name as we discover it, so there is no long pause in output.
356 echo $ac_n "$name $ac_c" >&AC_FD_MSG
357
57ba7bb4
UD
358 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
359
360 case $name in
361 /*) xsrcdir= ;;
362 *) xsrcdir=$srcdir/ ;;
363 esac
364 test -n "$enable_debug_configure" &&
365 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
366
367 if test -f $xsrcdir$name/Implies; then
28f540f4 368 # Collect more names from the `Implies' file (removing comments).
57ba7bb4
UD
369 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
370 implied=
371 for x in $implied_candidate; do
372 if test -d $xsrcdir$name_base/$x; then
373 implied="$implied $name_base/$x";
374 else
375 AC_MSG_WARN($name/Implies specifies nonexistent $x)
376 fi
28f540f4
RM
377 done
378 else
379 implied=
380 fi
381
382 # Add NAME to the list of names.
383 names="$names $name"
384
385 # Find the parent of NAME, using the empty string if it has none.
386changequote(,)dnl
57ba7bb4 387 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
28f540f4
RM
388changequote([,])dnl
389
390 # Add the names implied by NAME, and NAME's parent (if it has one), to
391 # the list of names to be processed (the argument list). We prepend the
392 # implied names to the list and append the parent. We want implied
393 # directories to come before further directories inferred from the
394 # configuration components; this ensures that for sysv4, unix/common
395 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
396 # after sysv4).
397 sysnames="`echo $implied $* $parent`"
398 test -n "$sysnames" && set $sysnames
399done
400
401# Add the default directories.
f2ea0f5b 402sysnames="$names sysdeps/generic"
f332db02
RM
403AC_SUBST(sysnames)
404# The other names were emitted during the scan.
f2ea0f5b 405AC_MSG_RESULT(sysdeps/generic)
28f540f4 406
f332db02
RM
407
408### Locate tools.
28f540f4 409
28f540f4 410AC_PROG_INSTALL
26761c28 411if test "$INSTALL" = "${srcdir}/install-sh -c"; then
28f540f4 412 # The makefiles need to use a different form to find it in $srcdir.
f41c8091 413 INSTALL='\$(..)./install-sh -c'
28f540f4 414fi
0e3426bb 415AC_PROG_LN_S
c17097f1 416AC_CHECK_PROGS(MSGFMT, msgfmt gmsgfmt, :)
04be94a8
UD
417AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo)
418if test "$MAKEINFO"; then
419changequote(,)dnl Need [] for regexps.
420 if $MAKEINFO --version | grep 'texinfo 3\.[1-9][1-9]' >/dev/null 2>&1
421changequote([,])dnl
422 then : # Makeinfo 3.11 or greater, works.
423 else
424 AC_MSG_WARN([
425*** makeinfo is too old (need version 3.11 or better).
426*** You should install the needed version and re-configure since otherwise
427*** you won't get the info pages installed.])
428 MAKEINFO=
429 fi
430fi
28f540f4 431
ebbad4cc 432AC_PROG_CC_LOCAL
22d57dd3 433AC_CANONICAL_BUILD
072ebcef 434if test $host != $build; then
22d57dd3 435 AC_CHECK_PROGS(BUILD_CC, gcc cc)
072ebcef 436fi
779ae82e 437AC_SUBST(cross_compiling)
7c713e28 438AC_PROG_CPP
650425ce 439LIBC_PROG_BINUTILS
ff3d7ed3
RM
440AC_CHECK_TOOL(AR, ar)
441AC_CHECK_TOOL(RANLIB, ranlib, :)
28f540f4 442
84384f5b 443AC_PATH_PROG(BASH, bash, no)
a18f587d 444if test "$BASH" != no &&
f43ce637 445 $BASH -c 'test "$BASH_VERSINFO" \
6973fc01 446 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
84384f5b
UD
447 libc_cv_have_bash2=yes
448else
449 libc_cv_have_bash2=no
450fi
451AC_SUBST(libc_cv_have_bash2)
452
5290baf0
UD
453dnl We need a ksh compatible shell for tzselect.
454if test "$BASH" = no; then
455 AC_PATH_PROG(KSH, ksh, no)
456 if test "$KSH" = no; then
457 libc_cv_have_ksh=no
458 else
459 libc_cv_have_ksh=yes
460 fi
461else
462 KSH="$BASH"
463 AC_SUBST(KSH)
464 libc_cv_have_ksh=yes
465fi
466AC_SUBST(libc_cv_have_ksh)
467
a2b08ee5
UD
468AC_PATH_PROGS(PERL, perl, no)
469AC_SUBST(PERL)
470
b8dc6a10 471AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
28f540f4
RM
472echo '#include <stddef.h>
473FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
474if eval "$ac_cpp conftest.c 2>/dev/null" \
475| grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
476 libc_cv_signed_size_t=no
477else
478 libc_cv_signed_size_t=yes
479fi
480rm -f conftest*])
28f540f4
RM
481if test $libc_cv_signed_size_t = yes; then
482 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
483 cat >> confdefs.h <<\EOF
484#undef __SIZE_TYPE__
485#define __SIZE_TYPE__ unsigned
486EOF
487fi
488
b8dc6a10 489AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
28f540f4
RM
490AC_TRY_COMPILE(dnl
491[#define __need_size_t
492#define __need_wchar_t
493#include <stddef.h>
494#define __need_NULL
495#include <stddef.h>], [size_t size; wchar_t wchar;
496#ifdef offsetof
497#error stddef.h ignored __need_*
498#endif
499if (&size == NULL || &wchar == NULL) abort ();],
500 libc_cv_friendly_stddef=yes,
501 libc_cv_friendly_stddef=no)])
28f540f4
RM
502if test $libc_cv_friendly_stddef = yes; then
503 config_vars="$config_vars
504override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
505fi
506
b8dc6a10
RM
507AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
508 libc_cv_need_minus_P, [dnl
28f540f4
RM
509cat > conftest.S <<EOF
510#include "confdefs.h"
511/* Nothing whatsoever. */
512EOF
513if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
514 libc_cv_need_minus_P=no
515else
516 libc_cv_need_minus_P=yes
517fi
518rm -f conftest*])
28f540f4
RM
519if test $libc_cv_need_minus_P = yes; then
520 config_vars="$config_vars
521asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
522fi
523
1618c590
UD
524# gcc 2.7.x has a bug where if -pipe is set, the assembler will always
525# be told to read stdin. This causes the compiler to hang when fed an
526# .s file.
527if test $ac_cv_prog_gcc = yes; then
528 case `${CC-cc} -v 2>&1` in
529 *2.7*)
530 # We must check this even if -pipe is not given here, because the user
531 # might do `make CFLAGS=-pipe'.
532 AC_CACHE_CHECK(for gcc 2.7.x -pipe bug, libc_cv_gcc_pipe_bug, [dnl
86187531
UD
533 cp /dev/null conftest.s
534 cat >conftest1.s <<EOF
535.nosuchdirective
1618c590 536EOF
86187531 537 if ${CC-cc} -pipe -c conftest.s <conftest1.s 2>/dev/null; then
1618c590
UD
538 libc_cv_gcc_pipe_bug=no
539 else
540 libc_cv_gcc_pipe_bug=yes
541 fi
542 rm -f conftest*])
543 if test $libc_cv_gcc_pipe_bug = yes; then
544 makeCC="${CC-cc} -B\$(common-objpfx)"
545 makeCFLAGS=$CFLAGS
546 CFLAGS=`echo $CFLAGS |sed 's/-pipe//'`
547 fi;;
548 *) libc_cv_gcc_pipe_bug=no;;
549 esac
550else
551 libc_cv_gcc_pipe_bug=no
552fi
553
b8dc6a10
RM
554AC_CACHE_CHECK(for assembler global-symbol directive,
555 libc_cv_asm_global_directive, [dnl
9a70fcab
UD
556libc_cv_asm_global_directive=UNKNOWN
557for ac_globl in .globl .global; do
558 cat > conftest.s <<EOF
559.text
560${ac_globl} foo
ae1025be 561foo:
9a70fcab
UD
562EOF
563 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
564 libc_cv_asm_global_directive=${ac_globl}
565 fi
566 rm -f conftest*
567 test $libc_cv_asm_global_directive != UNKNOWN && break
568done])
9a70fcab
UD
569if test $libc_cv_asm_global_directive = UNKNOWN; then
570 AC_MSG_ERROR(cannot determine asm global directive)
571else
572 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
573fi
574
b8dc6a10 575AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
9a70fcab 576cat > conftest.s <<EOF
e215c478 577.text
ae1025be 578foo:
df2a0c93 579.set glibc_conftest_frobozz,foo
9a70fcab 580$libc_cv_asm_global_directive glibc_conftest_frobozz
e215c478 581EOF
df2a0c93
RM
582# The alpha-dec-osf1 assembler gives only a warning for `.set'
583# (but it doesn't work), so we must do a linking check to be sure.
584cat > conftest1.c <<\EOF
585extern int glibc_conftest_frobozz;
586main () { printf ("%d\n", glibc_conftest_frobozz); }
587EOF
588if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
cb2f05ed 589 -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
e215c478
RM
590 libc_cv_asm_set_directive=yes
591else
592 libc_cv_asm_set_directive=no
593fi
65b3cbcb 594rm -f conftest*])
e215c478
RM
595if test $libc_cv_asm_set_directive = yes; then
596 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
597fi
598
377a515b
UD
599AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
600[cat > conftest.s <<EOF
601.text
4cca6b86 602_sym:
377a515b
UD
603.symver _sym,sym@VERS
604EOF
605if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
606 libc_cv_asm_symver_directive=yes
607else
608 libc_cv_asm_symver_directive=no
609fi
610rm -f conftest*])
611AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
612if test $libc_cv_asm_symver_directive = yes; then
613 cat > conftest.s <<EOF
614.text
4cca6b86 615_sym:
377a515b
UD
616.symver _sym,sym@VERS
617EOF
618 cat > conftest.map <<EOF
f43ce637 619VERS_1 {
377a515b
UD
620 global: sym;
621};
f43ce637
UD
622
623VERS_2 {
624 global: sym;
625} VERS_1;
377a515b
UD
626EOF
627 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
5ae3e846
UD
628 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
629 -nostartfiles -nostdlib
ae1025be
UD
630 -Wl,--version-script,conftest.map
631 1>&AC_FD_CC]);
377a515b
UD
632 then
633 libc_cv_ld_version_script_option=yes
634 else
635 libc_cv_ld_version_script_option=no
636 fi
637 else
638 libc_cv_ld_version_script_option=no
639 fi
640else
641 libc_cv_ld_version_script_option=no
642fi
643rm -f conftest*])
644if test $libc_cv_asm_symver_directive = yes &&
650425ce
UD
645 test $libc_cv_ld_version_script_option = yes &&
646 test $enable_versioning = yes; then
377a515b
UD
647 VERSIONING=yes
648 AC_DEFINE(DO_VERSIONING)
649else
650 VERSIONING=no
651fi
652AC_SUBST(VERSIONING)
653
f43ce637
UD
654if test $VERSIONING = no; then
655 echo "\
f4017d20 656*** WARNING: You should not compile GNU libc without versioning. Not using
f43ce637
UD
657*** versioning will introduce incompatibilities so that old binaries
658*** will not run anymore.
659*** For versioning you need recent binutils (binutils-2.8.1.0.17 or newer)."
660fi
fd26970f
UD
661if test $elf = yes; then
662 AC_CACHE_CHECK(for .previous assembler directive,
663 libc_cv_asm_previous_directive, [dnl
664 cat > conftest.s <<EOF
665.section foo_section
666.previous
667EOF
668 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
669 libc_cv_asm_previous_directive=yes
670 else
671 libc_cv_asm_previous_directive=no
672 fi
673 rm -f conftest*])
674 if test $libc_cv_asm_previous_directive = yes; then
675 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
676 else
677 AC_CACHE_CHECK(for .popsection assembler directive,
678 libc_cv_asm_popsection_directive, [dnl
679 cat > conftest.s <<EOF
680.pushsection foo_section
681.popsection
682EOF
683 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
684 libc_cv_asm_popsection_directive=yes
685 else
686 libc_cv_asm_popsection_directive=no
687 fi
688 rm -f conftest*])
689 if test $libc_cv_asm_popsection_directive = yes; then
690 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
691 fi
692 fi
693fi
694
b8dc6a10
RM
695if test $elf != yes; then
696 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
697 [AC_TRY_COMPILE(, [asm (".section .init");
84724245
RM
698 asm (".section .fini");
699 asm (".text");],
b8dc6a10
RM
700 libc_cv_have_initfini=yes,
701 libc_cv_have_initfini=no)])
702 AC_SUBST(libc_cv_have_initfini)dnl
703 if test $libc_cv_have_initfini = yes; then
704 AC_DEFINE(HAVE_INITFINI)
705 fi
706fi
e215c478 707
9a0a462c
UD
708dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
709AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
710[cat > conftest.$ac_ext <<EOF
711dnl This sometimes fails to find confdefs.h, for some reason.
712dnl [#]line __oline__ "[$]0"
713[#]line __oline__ "configure"
714#include "confdefs.h"
715void underscore_test(void) {
716return; }
717EOF
718if AC_TRY_EVAL(ac_compile); then
719 if grep _underscore_test conftest* >/dev/null; then
720 ifelse([$1], , :, [rm -f conftest*
721 $1])
722 else
723 ifelse([$2], , , [rm -f conftest*
724 $2])
725 fi
726else
727 echo "configure: failed program was:" >&AC_FD_CC
728 cat conftest.$ac_ext >&AC_FD_CC
729 ifelse([$2], , , [rm -f conftest*
730 $2])
731fi
732rm -f conftest*])
733
c224a18a
RM
734if test $elf = yes; then
735 libc_cv_asm_underscores=no
736else
9a0a462c
UD
737 if test $ac_cv_prog_cc_works = yes; then
738 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
739 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
740 libc_cv_asm_underscores=yes,
741 libc_cv_asm_underscores=no)])
742 else
743 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
744 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
745 libc_cv_asm_underscores=no)])
746 fi
c224a18a
RM
747fi
748if test $libc_cv_asm_underscores = no; then
749 AC_DEFINE(NO_UNDERSCORES)
750fi
751
752if test $elf = yes; then
753 libc_cv_weak_symbols=yes
754 libc_cv_asm_weak_directive=yes
755 libc_cv_asm_weakext_directive=no
756else
757 AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
758 [dnl
759cat > conftest.s <<EOF
760.text
761${libc_cv_asm_global_directive} foo
ae1025be 762foo:
c224a18a
RM
763.weak foo
764.weak bar; bar = foo
765EOF
766 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
767 libc_cv_asm_weak_directive=yes
768 else
769 libc_cv_asm_weak_directive=no
770 fi
771 rm -f conftest*])
772
c8cf0b14 773if test $libc_cv_asm_weak_directive = no; then
c224a18a
RM
774 AC_CACHE_CHECK(for assembler .weakext directive,
775 libc_cv_asm_weakext_directive,
776 [dnl
777cat > conftest.s <<EOF
778.text
779${libc_cv_asm_global_directive} foo
ae1025be 780foo:
c224a18a 781.weakext foo
a1470b6f 782.weakext foo, bar
c224a18a
RM
783EOF
784 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
785 libc_cv_asm_weakext_directive=yes
786 else
787 libc_cv_asm_weakext_directive=no
788 fi
789 rm -f conftest*])
790
791 fi # no .weak
792fi # not ELF
793
ffcf9634 794if test $libc_cv_asm_weak_directive = yes; then
c224a18a 795 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
ffcf9634 796elif test $libc_cv_asm_weakext_directive = yes; then
c224a18a
RM
797 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
798fi
799
a641835a
RM
800AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
801cat > conftest.c <<\EOF
5f0e6fc7 802_start () {}
dcf0671d
UD
803int __eh_pc;
804__throw () {}
a641835a 805EOF
dcea62dd
RM
806dnl No \ in command here because it ends up inside ''.
807if AC_TRY_COMMAND([${CC-cc} $CFLAGS
808 -nostdlib -nostartfiles -Wl,--no-whole-archive
ae1025be 809 -o conftest conftest.c 1>&AC_FD_CC]); then
a641835a
RM
810 libc_cv_ld_no_whole_archive=yes
811else
812 libc_cv_ld_no_whole_archive=no
813fi
814rm -f conftest*])
815AC_SUBST(libc_cv_ld_no_whole_archive)dnl
816
b236e99d
UD
817AC_CACHE_CHECK(for gcc -fno-exceptions, libc_cv_gcc_no_exceptions, [dnl
818cat > conftest.c <<\EOF
819_start () {}
820int __eh_pc;
821__throw () {}
822EOF
823dnl No \ in command here because it ends up inside ''.
824if AC_TRY_COMMAND([${CC-cc} $CFLAGS
825 -nostdlib -nostartfiles -fno-exceptions
ae1025be 826 -o conftest conftest.c 1>&AC_FD_CC]); then
b236e99d
UD
827 libc_cv_gcc_no_exceptions=yes
828else
829 libc_cv_gcc_no_exceptions=no
830fi
831rm -f conftest*])
832AC_SUBST(libc_cv_gcc_no_exceptions)dnl
833
d71b808a
UD
834if test "$base_machine" = alpha ; then
835AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
836cat > conftest.c <<\EOF
837foo () { }
838EOF
839dnl
9756dfe1 840if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
d71b808a
UD
841then
842 libc_cv_gcc_alpha_ng_prefix=yes
843else
844 libc_cv_gcc_alpha_ng_prefix=no
845fi
846rm -f conftest* ])
847if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
848 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
849else
850 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
851fi
852fi
853
650425ce
UD
854AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
855[cat > conftest.c <<EOF
856#line __oline__ "configure"
857static char __EH_FRAME_BEGIN__[];
858_start ()
859{
9756dfe1 860#ifdef CHECK__register_frame
650425ce
UD
861 __register_frame (__EH_FRAME_BEGIN__);
862 __deregister_frame (__EH_FRAME_BEGIN__);
9756dfe1
UD
863#endif
864#ifdef CHECK__register_frame_info
865 __register_frame_info (__EH_FRAME_BEGIN__);
866 __deregister_frame_info (__EH_FRAME_BEGIN__);
867#endif
650425ce
UD
868}
869int __eh_pc;
870__throw () {}
871/* FIXME: this is fragile. */
872malloc () {}
873strcmp () {}
874strlen () {}
875memcpy () {}
876memset () {}
877free () {}
878abort () {}
dfd2257a 879__bzero () {}
650425ce
UD
880EOF
881dnl No \ in command here because it ends up inside ''.
9756dfe1 882if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
650425ce
UD
883 -nostdlib -nostartfiles
884 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
9756dfe1 885 libc_cv_gcc_dwarf2_unwind_info=static
650425ce
UD
886else
887 libc_cv_gcc_dwarf2_unwind_info=no
888fi
9756dfe1
UD
889if test $libc_cv_gcc_dwarf2_unwind_info = no; then
890 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
891 -nostdlib -nostartfiles
892 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
893 libc_cv_gcc_dwarf2_unwind_info=yes
894 else
895 libc_cv_gcc_dwarf2_unwind_info=no
896 fi
897fi
650425ce 898rm -f conftest*])
9756dfe1
UD
899case $libc_cv_gcc_dwarf2_unwind_info in
900yes)
650425ce 901 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
9756dfe1
UD
902 ;;
903static)
904 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
905 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
906 ;;
907esac
650425ce 908
c224a18a
RM
909### End of automated tests.
910### Now run sysdeps configure fragments.
911
28f540f4
RM
912# sysdeps configure fragments may set these with files to be linked below.
913libc_link_dests=
914libc_link_sources=
915
916# Iterate over all the sysdep directories we will use, running their
917# configure fragments, and looking for a uname implementation.
918uname=
919for dir in $sysnames; do
57ba7bb4
UD
920 case $dir in
921 /*) dest=$dir ;;
922 *) dest=$srcdir/$dir ;;
923 esac
924 if test -r $dest/configure; then
925 AC_MSG_RESULT(running configure fragment for $dest)
926 . $dest/configure
28f540f4 927 fi
4ca84cff 928[
28f540f4 929 if test -z "$uname"; then
e7f1f046
UD
930 if test -r $dest/uname.c ||
931 test -r $dest/uname.S ||
932 { test -r $dest/syscalls.list &&
933 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
b86199fb 934 uname=$dir
4ca84cff 935 fi
28f540f4 936 fi
4ca84cff 937]dnl
28f540f4
RM
938done
939
940AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
941
942# If we will use the generic uname implementation, we must figure out what
943# it will say by examining the system, and write the results in config-name.h.
e7f1f046 944if test "$uname" = "sysdeps/generic"; then
28f540f4
RM
945
946changequote(,)dnl
947 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
948changequote([,])dnl
949 if test $uname_sysname != $config_os; then
950 config_release=`echo $config_os | sed s/$uname_sysname//`
951 fi
952dnl
953AC_DEFUN(LIBC_KERNEL_ID, [dnl
954 if test -r /vmunix; then
955 kernel_id=`strings /vmunix | grep UNIX`
956 elif test -r /dynix; then
957 kernel_id=`strings /dynix | grep DYNIX`
958 else
959 kernel_id=
960 fi
961])dnl
962
b8dc6a10 963 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
28f540f4
RM
964AC_REQUIRE([LIBC_KERNEL_ID])dnl
965changequote(,)dnl
966 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
967changequote([,])dnl
968 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
969 != x$config_release; then
970 # The configuration release is a substring of the kernel release.
971 libc_cv_uname_release=$kernel_release
972 elif test x$config_release != x; then
973 libc_cv_uname_release=$config_release
974 elif test x$kernel_release != x; then
975 libc_cv_uname_release=$kernel_release
976 else
977 libc_cv_uname_release=unknown
978 fi])
28f540f4
RM
979 uname_release="$libc_cv_uname_release"
980
b8dc6a10 981 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
28f540f4
RM
982AC_REQUIRE([LIBC_KERNEL_ID])dnl
983changequote(,)dnl
984 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
985changequote([,])dnl
986 if test -n "$kernel_version"; then
987 libc_cv_uname_version="$kernel_version"
988 else
989 libc_cv_uname_version=unknown
990 fi])
28f540f4
RM
991 uname_version="$libc_cv_uname_version"
992
993AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
994 config_uname=config-name.h:config-name.in
995else
996 # For non-generic uname, we don't need to create config-name.h at all.
997 config_uname=
998fi
999
96aa2d94
RM
1000AC_MSG_CHECKING(stdio selection)
1001AC_SUBST(stdio)
1002case $stdio in
1003libio) AC_DEFINE(USE_IN_LIBIO) ;;
1004default) stdio=stdio ;;
1005esac
1006AC_MSG_RESULT($stdio)
1007
26b4d766
UD
1008AC_MSG_CHECKING(ldap selection)
1009AC_SUBST(LDAP)
1010case $add_ons in
1011*ldap*)
1012 ldap=yes
1013 LDAP=ldap ;;
1014*) ldap=no
1015 LDAP= ;;
1016esac
1017AC_MSG_RESULT($ldap)
1018
84384f5b
UD
1019AC_SUBST(libc_cv_slibdir)
1020AC_SUBST(libc_cv_sysconfdir)
1ef32c3d
UD
1021AC_SUBST(libc_cv_rootsbindir)
1022
1023AC_SUBST(has_ldconfig)
84384f5b 1024
c224a18a 1025AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
28f540f4
RM
1026if test $gnu_ld = yes; then
1027 AC_DEFINE(HAVE_GNU_LD)
1028fi
1029if test $gnu_as = yes; then
1030 AC_DEFINE(HAVE_GNU_AS)
1031fi
1032if test $elf = yes; then
1033 AC_DEFINE(HAVE_ELF)
1034fi
28f540f4 1035
650425ce 1036AC_SUBST(static)
ff3d7ed3
RM
1037AC_SUBST(shared)
1038if test $shared = default; then
1039 if test $gnu_ld = yes; then
1040 shared=$elf
f65fd747
UD
1041 else
1042 # For now we do not assume shared libs are available. In future more
1043 # tests might become available.
1044 shared=no
ff3d7ed3
RM
1045 fi
1046fi
cc3fa755 1047
9756dfe1
UD
1048dnl We must not allow compilation without static library on some platforms.
1049if test $static = no && test $shared = yes; then
1050 case "$host_os" in
1051 linux* | gnu*)
1052 AC_MSG_ERROR([
1053*** You must compile with support for the static library since the shared
1054*** library uses it. Restart configure without \`--disable-static'.])
1055 ;;
1056 *)
1057 ;;
1058 esac
1059fi
1060
cc3fa755
UD
1061AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1062[pic_default=yes
1063cat > conftest.c <<EOF
9756dfe1 1064#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
cc3fa755
UD
1065# error PIC is default.
1066#endif
1067EOF
1068if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1069 pic_default=no
1070fi
1071rm -f conftest.*])
1072AC_SUBST(pic_default)
1073
ff3d7ed3
RM
1074AC_SUBST(profile)
1075AC_SUBST(omitfp)
5a97622d 1076AC_SUBST(bounded)
5107cf1d 1077AC_SUBST(static_nss)
5ae3e846 1078AC_SUBST(nopic_initfini)
ff3d7ed3 1079
edf5b2d7
UD
1080AC_SUBST(DEFINES)
1081
28f540f4
RM
1082if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1083 config_makefile=
1084else
1085 config_makefile=Makefile
1086fi
1087
df4ef2ab
UD
1088VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h`
1089AC_SUBST(VERSION)
1090
1618c590
UD
1091if test $libc_cv_gcc_pipe_bug = yes; then
1092 realCC=$CC
1093 CC=$makeCC
1094 CFLAGS=$makeCFLAGS
1095fi
1096AC_OUTPUT_COMMANDS([
1097if test "$realCC"; then
1098 sed -e 's/%{pipe:-}/%|/g' `$realCC -print-file-name=specs` >specsT
1099 mv specsT specs
1100fi], [realCC=$realCC])
1101
ae1025be 1102AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, ,
5107cf1d 1103 [echo '$config_vars' >> config.make; test -d bits || mkdir bits])
This page took 0.179604 seconds and 5 git commands to generate.