]> git.ipfire.org Git - thirdparty/glibc.git/blame - configure.in
Update.
[thirdparty/glibc.git] / configure.in
CommitLineData
f4017d20 1dnl Process this file with autoconf to produce a configure script.
ff3d7ed3 2AC_REVISION([$CVSid$])
2f512715 3AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required.
5107cf1d 4AC_INIT(include/features.h)
28f540f4 5AC_CONFIG_HEADER(config.h)
5bc2f642 6AC_CONFIG_AUX_DIR(scripts)
28f540f4
RM
7
8# This will get text that should go into config.make.
9config_vars=
10
11# Check for a --with-gmp argument and set gmp-srcdir in config.make.
12AC_ARG_WITH(gmp, dnl
13 --with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed),
14 [dnl
15case "$with_gmp" in
16yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;;
17''|no) ;;
18*) config_vars="$config_vars
19gmp-srcdir = $withval" ;;
20esac
21])
75914335
RM
22# Check for a --with-gettext argument and set gettext-srcdir in config.make.
23AC_ARG_WITH(gettext, dnl
24 --with-gettext=DIR find GNU gettext source code in DIR (not needed),
25 [dnl
26case "$with_gettext" in
27yes)
28 AC_MSG_ERROR(--with-gettext requires an argument; use --with-gettext=DIR) ;;
29''|no) ;;
30*)
31 config_vars="$config_vars
32gettext-srcdir = $withval" ;;
33esac
34])
c8f3e6db
UD
35# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
36AC_ARG_WITH(gd, dnl
37 --with-gd=DIR find libgd include dir and library with prefix DIR,
38 [dnl
39case "$with_gd" in
f5f7239f
UD
40yes|''|no) ;;
41*) libgd_include="-I$withval/include"
c8f3e6db
UD
42 libgd_ldflags="-L$withval/lib" ;;
43esac
44])
f5f7239f
UD
45AC_ARG_WITH(gd-include, dnl
46 --with-gd-include=DIR find libgd include files in DIR,
47 [dnl
48case "$with_gd_include" in
49''|no) ;;
50*) libgd_include="-I$withval" ;;
51esac
52])
53AC_ARG_WITH(gd-lib, dnl
54 --with-gd-lib=DIR find libgd library files in DIR,
55 [dnl
56case "$with_gd_lib" in
57''|no) ;;
58*) libgd_ldflags="-L$withval" ;;
59esac
60])
61
62if test -n "$libgd_include"; then
63 config_vars="$config_vars
64CFLAGS-memprofstat.c = $libgd_include"
65fi
66if test -n "$libgd_ldflags"; then
67 config_vars="$config_vars
68libgd-LDFLAGS = $libgd_ldflags"
69fi
28f540f4 70
ff3d7ed3 71dnl Arguments to specify presence of other packages/features.
335aa320 72AC_ARG_WITH(fp, dnl
a18f587d 73[ --with-fp if using floating-point hardware [default=yes]],
335aa320 74 with_fp=$withval, with_fp=yes)
650425ce 75AC_ARG_WITH(binutils, dnl
a5a0310d 76 --with-binutils=PATH specify location of binutils (as and ld),
650425ce 77 path_binutils=$withval, path_binutils='')
28f540f4
RM
78AC_ARG_WITH(elf, dnl
79 --with-elf if using the ELF object format,
335aa320 80 elf=$withval, elf=no)
4d06461a
UD
81AC_ARG_WITH(cvs, dnl
82[ --without-cvs if CVS should not be used],
83 with_cvs=$withval, with_cvs=yes)
84AC_SUBST(with_cvs)
28f540f4 85
dbe7a0f5
UD
86AC_ARG_WITH(headers, dnl
87[ --with-headers=PATH location of system headers to use
88 [e.g. /usr/src/linux/include]
89 [default=compiler default]],
90 sysheaders=$withval, sysheaders='')
91
deab9dea
RM
92AC_ARG_ENABLE(libio, dnl
93[ --enable-libio build in GNU libio instead of GNU stdio],
f4482045
RM
94 [if test $enableval = yes; then
95 stdio=libio
96 else
97 stdio=stdio
98 fi],
99 stdio=default)
deab9dea 100
a18f587d
UD
101AC_ARG_ENABLE(sanity-checks, dnl
102[ --disable-sanity-checks really do not use threads (should not be used
103 except in special situations) [default=yes]],
104 enable_sanity=$enableval, enable_sanity=yes)
105
650425ce
UD
106dnl Arguments to enable or disable building the static, shared, profiled,
107dnl and -fomit-frame-pointer libraries.
b38bb8ca
UD
108dnl I've disabled this for now since we cannot build glibc without static
109dnl libraries built in the moment.
110dnl AC_ARG_ENABLE(static, dnl
111dnl [ --enable-static build static library [default=yes]],
112dnl static=$enableval, static=yes)
5c2a0669 113static=yes
ff3d7ed3
RM
114AC_ARG_ENABLE(shared, dnl
115[ --enable-shared build shared library [default=yes if GNU ld & ELF]],
6b3a2224 116 shared=$enableval, shared=default)
ff3d7ed3
RM
117AC_ARG_ENABLE(profile, dnl
118[ --enable-profile build profiled library [default=yes]],
6b3a2224 119 profile=$enableval, profile=yes)
ff3d7ed3 120AC_ARG_ENABLE(omitfp, dnl
6b3a2224
RM
121[ --enable-omitfp build undebuggable optimized library [default=no]],
122 omitfp=$enableval, omitfp=no)
5a97622d
UD
123AC_ARG_ENABLE(bounded, dnl
124[ --enable-bounded build with runtime bounds checking [default=no]],
125 bounded=$enableval, bounded=no)
650425ce
UD
126AC_ARG_ENABLE(versioning, dnl
127[ --disable-versioning do not include versioning information in the
128 library objects [default=yes if supported]],
129 enable_versioning=$enableval, enable_versioning=yes)
6b3a2224
RM
130
131dnl Generic infrastructure for drop-in additions to libc.
132AC_ARG_ENABLE(add-ons, dnl
73237de3
UD
133[ --enable-add-ons[=DIR1,DIR2]...
134 configure and build add-ons in DIR1,DIR2,...
135 search for add-ons if no parameter given],
61952351 136 [case "$enableval" in
9c4c0024
UD
137 yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
138 test "$add_ons" = "*" && add_ons= ;;
61952351
UD
139 *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
140 esac],
141 [add_ons=])
142
6b3a2224 143AC_CONFIG_SUBDIRS($add_ons)
57ba7bb4 144add_ons_pfx=
da74e902 145if test x"$add_ons" != x; then
57ba7bb4 146 for f in $add_ons; do
af6f3906
UD
147 # Test whether such a subdir really exists.
148 if test -d $srcdir/$f; then
149 add_ons_pfx="$add_ons_pfx $f/"
150 else
151 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
152 fi
57ba7bb4
UD
153 done
154fi
ff3d7ed3 155
5107cf1d
UD
156dnl On some platforms we cannot use dynamic loading. We must provide
157dnl static NSS modules.
158AC_ARG_ENABLE(static-nss, dnl
159[ --enable-static-nss build static NSS modules [default=no]],
160 static_nss=$enableval, static_nss=no)
161if test x"$static_nss" = xyes; then
162 AC_DEFINE(DO_STATIC_NSS)
163fi
164
73237de3 165AC_ARG_ENABLE(force-install,
310b3460 166[ --disable-force-install don't force installation of files from this package,
73237de3
UD
167 even if they are older than the installed files],
168 force_install=$enableval, force_install=yes)
169AC_SUBST(force_install)
170
958f238f
UD
171dnl On some platforms we allow dropping compatibility with all kernel
172dnl versions.
173AC_ARG_ENABLE(kernel,
b5b53bdb 174[ --enable-kernel=VERSION compile for compatibility with kernel not older
958f238f
UD
175 than VERSION],
176 minimum_kernel=$enableval)
86cfe82d
UD
177dnl Prevent unreasonable values.
178if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
179 # Better nothing than this.
180 minimum_kernel=""
269e369f
UD
181else
182 if test "$minimum_kernel" = current; then
183 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
184 fi
86cfe82d 185fi
958f238f 186
28f540f4 187AC_CANONICAL_HOST
8a523922
UD
188
189# The way shlib-versions is used to generate soversions.mk uses a
190# fairly simplistic model for name recognition that can't distinguish
191# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
192# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
193# tell. This doesn't get used much beyond that, so it's fairly safe.
194case "$host_os" in
195linux*)
196 ;;
197gnu*)
198 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
199 ;;
200esac
201
28f540f4
RM
202# We keep the original values in `$config_*' and never modify them, so we
203# can write them unchanged into config.make. Everything else uses
204# $machine, $vendor, and $os, and changes them whenever convenient.
205config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
206
a2fe9c76
RM
207# Some configurations imply other options.
208case "$host_os" in
209gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
210 # These systems always use GNU tools.
c8cf0b14 211 gnu_ld=yes gnu_as=yes ;;
a2fe9c76
RM
212esac
213case "$host_os" in
7799b7b3
UD
214# i586-linuxaout is mangled into i586-pc-linux-gnuaout
215linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
3776d592 216 ;;
ba909880 217gnu* | linux* | sysv4* | solaris2* | irix6*)
3776d592
RM
218 # These systems (almost) always use the ELF format.
219 elf=yes
84724245 220 ;;
a2fe9c76
RM
221esac
222
28f540f4
RM
223machine=$config_machine
224vendor=$config_vendor
225os=$config_os
226
a808d541
UD
227# config.guess on some IBM machines says `rs6000' instead of `powerpc'.
228# Unify this here.
229if test "$machine" = rs6000; then
230 machine="powerpc"
231fi
232
bdc8eb03
UD
233###
234### I put this here to prevent those annoying emails from people who cannot
235### read and try to compile glibc on unsupported platforms. --drepper
236###
237### By using the undocumented --enable-hacker-mode option for configure
238### one can skip this test to make the configuration not fail for unsupported
239### platforms.
240###
241if test -z "$enable_hacker_mode"; then
242 case "$machine-$host_os" in
75d86c1f 243 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
bdc8eb03
UD
244 ;;
245 *)
246 echo "*** The GNU C library is currently not available for this platform."
247 echo "*** So far nobody cared to port it and if there is no volunteer it"
248 echo "*** might never happen. So, if you have interest to see glibc on"
249 echo "*** this platform visit"
250 echo "*** http://www.gnu.org/software/libc/porting.html"
251 echo "*** and join the group of porters"
252 exit 1
253 ;;
254 esac
255fi
256
28f540f4
RM
257dnl We need to use [ and ] for other purposes for a while now.
258changequote(,)dnl
259# Expand the configuration machine name into a subdirectory by architecture
260# type and particular chip.
261case "$machine" in
f0523145
RM
262a29k | am29000) base_machine=a29k machine=a29k ;;
263alpha*) base_machine=alpha machine=alpha/$machine ;;
7799b7b3 264arm*) base_machine=arm machine=arm/$machine ;;
60c96635
UD
265c3[012]) base_machine=cx0 machine=cx0/c30 ;;
266c4[04]) base_machine=cx0 machine=cx0/c40 ;;
f0523145 267hppa*) base_machine=hppa machine=hppa/$machine ;;
a8922de8 268i[3456]86) base_machine=i386 machine=i386/$machine ;;
f0523145
RM
269m680?0) base_machine=m68k machine=m68k/$machine ;;
270m68k) base_machine=m68k machine=m68k/m68020 ;;
271m88???) base_machine=m88k machine=m88k/$machine ;;
272m88k) base_machine=m88k machine=m88k/m88100 ;;
f0523145 273mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
9a97d1f7
UD
274mips*) base_machine=mips
275 case "`uname -m`" in
276 IP22) machine=mips/mips3 ;;
45b3d8ad 277 *) machine=mips/$machine ;;
9a97d1f7 278 esac ;;
ca34d7a7
UD
279sparc | sparcv[67])
280 base_machine=sparc machine=sparc/sparc32 ;;
281sparcv8 | supersparc | hypersparc)
282 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
ae6b8730
RH
283sparcv8plus | sparcv8plusa | sparcv9)
284 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
ca34d7a7
UD
285sparc64 | ultrasparc)
286 base_machine=sparc machine=sparc/sparc64 ;;
28f540f4 287esac
f0523145
RM
288changequote([,])dnl
289AC_SUBST(base_machine)
28f540f4 290
dfd2257a
UD
291if test "$base_machine" = "i386"; then
292 AC_DEFINE(USE_REGPARMS)
293fi
294
f0523145 295# Compute the list of sysdep directories for this configuration.
f332db02 296# This can take a while to compute.
f0523145 297sysdep_dir=$srcdir/sysdeps
f332db02 298AC_MSG_CHECKING(sysdep dirs)
f0523145
RM
299dnl We need to use [ and ] for other purposes for a while now.
300changequote(,)dnl
28f540f4
RM
301# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
302os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
303
304case "$os" in
305gnu*)
306 base_os=mach/hurd ;;
883bc19b 307netbsd* | 386bsd* | freebsd* | bsdi*)
28f540f4 308 base_os=unix/bsd/bsd4.4 ;;
222c4e71 309osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
28f540f4 310 base_os=unix/bsd ;;
d586354e 311sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
28f540f4 312 base_os=unix/sysv ;;
f802accb
UD
313irix6*)
314 base_os=unix/sysv/irix6/$os ;;
d586354e 315solaris[2-9]*)
28f540f4 316 base_os=unix/sysv/sysv4 ;;
908c3d5b
UD
317hpux*)
318 base_os=unix/sysv/hpux/$os ;;
75d86c1f
UD
319aix4.3*)
320 base_os=unix/sysv/aix/aix4.3 ;;
28f540f4
RM
321none)
322 base_os=standalone ;;
323*)
324 base_os='' ;;
325esac
326
327# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
328tail=$os
329ostry=$os
330while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
331 ostry="$ostry /$o"
332 tail=$o
75914335 333done
28f540f4
RM
334o=`echo $tail | sed 's/[0-9]*$//'`
335if test $o != $tail; then
336 ostry="$ostry /$o"
337fi
ec4b0518
UD
338# For linux-gnu, try linux-gnu, then linux.
339o=`echo $tail | sed 's/-.*$//'`
340if test $o != $tail; then
341 ostry="$ostry /$o"
342fi
28f540f4
RM
343
344# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
345base=
346tail=$base_os
347while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
348 set $b
349 base="$base /$1"
350 tail="$2"
351done
352
ae6b8730 353# For sparc/sparc32, try sparc/sparc32 and then sparc.
28f540f4
RM
354mach=
355tail=$machine
356while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
357 set $m
10ceac89
RM
358 # Prepend the machine's FPU directory unless --without-fp.
359 if test "$with_fp" = yes; then
360 mach="$mach /$1/fpu"
82d00cab 361 fi
28f540f4
RM
362 mach="$mach /$1"
363 tail="$2"
364done
365
366dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
367changequote([,])dnl
368
369# Find what sysdep directories exist.
370sysnames=
57ba7bb4
UD
371IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
372for d in $add_ons_pfx ''; do
373 for b in $base ''; do
374 for m0 in $mach ''; do
375 for v in /$vendor ''; do
ae828bc6 376 test "$v" = / && continue
57ba7bb4 377 for o in /$ostry ''; do
ae828bc6 378 test "$o" = / && continue
57ba7bb4
UD
379 for m in $mach ''; do
380 if test "$m0$b$v$o$m"; then
381 try="${d}sysdeps$m0$b$v$o$m"
382 test -n "$enable_debug_configure" &&
383 echo "$0 [DEBUG]: try $try" >&2
9c4c0024 384 if test -d $srcdir/$try; then
57ba7bb4
UD
385 sysnames="$sysnames $try"
386 { test -n "$o" || test -n "$b"; } && os_used=t
387 { test -n "$m" || test -n "$m0"; } && machine_used=t
388 fi
389 fi
390 done
28f540f4
RM
391 done
392 done
393 done
394 done
395done
57ba7bb4 396IFS="$ac_save_ifs"
28f540f4
RM
397
398if test -z "$os_used" && test "$os" != none; then
399 AC_MSG_ERROR(Operating system $os is not supported.)
400fi
401if test -z "$machine_used" && test "$machine" != none; then
402 AC_MSG_ERROR(The $machine is not supported.)
403fi
404
405# We have now validated the configuration.
406
335aa320 407
10ceac89
RM
408# If using ELF, look for an `elf' subdirectory of each machine directory.
409# We prepend these rather than inserting them whereever the machine appears
410# because things specified by the machine's ELF ABI should override
411# OS-specific things, and should always be the same for any OS on the
412# machine (otherwise what's the point of an ABI?).
413if test "$elf" = yes; then
414 elf_dirs=
57ba7bb4 415 for d in $add_ons_pfx ''; do
57ba7bb4 416 for m in $mach; do
9c4c0024 417 if test -d $srcdir/${d}sysdeps$m/elf; then
c2bb8cab 418 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
57ba7bb4
UD
419 fi
420 done
28f540f4 421 done
57ba7bb4 422 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
28f540f4
RM
423fi
424
335aa320 425
28f540f4
RM
426# Expand the list of system names into a full list of directories
427# from each element's parent name and Implies file (if present).
428set $sysnames
e50ec9f9 429names=
28f540f4
RM
430while test $# -gt 0; do
431 name=$1
432 shift
433
e50ec9f9 434 case " $names " in *" $name "*)
f332db02
RM
435 # Already in the list.
436 continue
e50ec9f9 437 esac
f332db02
RM
438
439 # Report each name as we discover it, so there is no long pause in output.
440 echo $ac_n "$name $ac_c" >&AC_FD_MSG
441
57ba7bb4
UD
442 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
443
444 case $name in
445 /*) xsrcdir= ;;
446 *) xsrcdir=$srcdir/ ;;
447 esac
448 test -n "$enable_debug_configure" &&
449 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
450
451 if test -f $xsrcdir$name/Implies; then
28f540f4 452 # Collect more names from the `Implies' file (removing comments).
57ba7bb4
UD
453 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
454 implied=
455 for x in $implied_candidate; do
456 if test -d $xsrcdir$name_base/$x; then
457 implied="$implied $name_base/$x";
458 else
459 AC_MSG_WARN($name/Implies specifies nonexistent $x)
460 fi
28f540f4
RM
461 done
462 else
463 implied=
464 fi
465
466 # Add NAME to the list of names.
467 names="$names $name"
468
469 # Find the parent of NAME, using the empty string if it has none.
470changequote(,)dnl
57ba7bb4 471 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
28f540f4
RM
472changequote([,])dnl
473
474 # Add the names implied by NAME, and NAME's parent (if it has one), to
475 # the list of names to be processed (the argument list). We prepend the
476 # implied names to the list and append the parent. We want implied
477 # directories to come before further directories inferred from the
478 # configuration components; this ensures that for sysv4, unix/common
479 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
480 # after sysv4).
481 sysnames="`echo $implied $* $parent`"
482 test -n "$sysnames" && set $sysnames
483done
484
485# Add the default directories.
ecdc196c 486default_sysnames=sysdeps/generic
2de7874e 487if test "$elf" = yes; then
ecdc196c 488 default_sysnames="sysdeps/generic/elf $default_sysnames"
2de7874e 489fi
ecdc196c 490sysnames="$names $default_sysnames"
f332db02
RM
491AC_SUBST(sysnames)
492# The other names were emitted during the scan.
ecdc196c 493AC_MSG_RESULT($default_sysnames)
28f540f4 494
f332db02
RM
495
496### Locate tools.
28f540f4 497
28f540f4 498AC_PROG_INSTALL
2b80a372 499if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
28f540f4 500 # The makefiles need to use a different form to find it in $srcdir.
2b80a372 501 INSTALL='\$(..)./scripts/install-sh -c'
28f540f4 502fi
0e3426bb 503AC_PROG_LN_S
ae828bc6 504
63bda0c1 505# These programs are version sensitive.
4bca4c17
UD
506AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
507AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
98393660 508 [version \([egcygnustp-]*[0-9.]*\)],
e11d6a7d 509 [egcs-2.9[1-9].*|egcs-2.90.2[789]|egcs-2.90.[3-9][0-9]|*gcc-2.9[1-9].*|pgcc-2.90.2[789]|pgcc-2.90.[3-9][0-9]|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]],
4bca4c17 510 critic_missing=t)
22e65f8f 511AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
8fc1e2ca 512 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
6598ac30 513 [3.75 | 3.76.[1-9]* | 3.7[789]* | 3.[89]*], critic_missing=t)
63bda0c1 514
22e65f8f 515AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
bdd421cc
UD
516 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
517 [0.[1-9][0-9].* | [1-9].*], MSGFMT=: aux_missing=t)
63bda0c1 518AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
8b7fb588 519 [GNU texinfo.* \([0-9][0-9.]*\)],
c159de62 520 [3.1[1-9] | 3.[2-9][0-9] | 4.* | 1.6[89] | 1.7[0-9]], MAKEINFO=: aux_missing=t)
aec103d3
UD
521AC_CHECK_PROG_VER(SED, gsed sed, --version,
522 [GNU sed version \([0-9]*\.[0-9.]*\)],
d66732e0 523 [3.0[2-9]|3.[1-9]*|[4-9]*], SED=: aux_missing=t)
63bda0c1 524
4bca4c17
UD
525if test -n "$critic_missing"; then
526AC_MSG_ERROR([
63bda0c1
UD
527*** Some critical program is missing or too old.
528*** Check the INSTALL file for required versions.])
4bca4c17 529fi
63bda0c1 530
4bca4c17 531test -n "$aux_missing" && AC_MSG_WARN([
63bda0c1
UD
532*** An auxiliary program is missing or too old;
533*** some features will be disabled.
534*** Check the INSTALL file for required versions.])
28f540f4 535
d01d6319
UD
536# glibcbug.in wants to know the compiler version.
537CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
538AC_SUBST(CCVERSION)
539
ebbad4cc 540AC_PROG_CC_LOCAL
22d57dd3 541AC_CANONICAL_BUILD
072ebcef 542if test $host != $build; then
22d57dd3 543 AC_CHECK_PROGS(BUILD_CC, gcc cc)
072ebcef 544fi
779ae82e 545AC_SUBST(cross_compiling)
7c713e28 546AC_PROG_CPP
650425ce 547LIBC_PROG_BINUTILS
4bca4c17 548AC_CHECK_TOOL(MIG, mig)
28f540f4 549
dbe7a0f5
UD
550# if using special system headers, find out the compiler's sekrit
551# header directory and add that to the list. NOTE: Only does the right
552# thing on a system that doesn't need fixincludes. (Not presently a problem.)
553if test -n "$sysheaders"; then
554 ccheaders=`$CC -print-file-name=include`
555 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
556fi
557AC_SUBST(SYSINCLUDES)
558
97a47867
UD
559# check if ranlib is necessary
560AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
561cat > conftest.c <<EOF
562int a;
563char b;
564void c(void) {}
565EOF
566$CC $CFLAGS -c conftest.c
567$AR cr conftest.a conftest.c
568cp conftest.a conftest2.a
569$RANLIB conftest.a
570if cmp -s conftest.a conftest2.a; then
571 libc_cv_ranlib_necessary=no
f38931a9 572else
97a47867
UD
573 libc_cv_ranlib_necessary=yes
574fi
575rm -rf conftest*])
576if test "$libc_cv_ranlib_necessary" = no; then
577 RANLIB=:
f38931a9 578fi
f38931a9 579
3911660e
UD
580# Test if LD_LIBRARY_PATH contains the notation for the current directory
581# since this would lead to problems installing/building glibc.
582# LD_LIBRARY_PATH contains the current directory if one of the following
583# is true:
584# - one of the terminals (":" and ";") is the first or last sign
585# - two terminals occur directly after each other
586# - the path contains an element with a dot in it
587AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
588changequote(,)dnl
589case ${LD_LIBRARY_PATH} in
590 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
b3a86ae1 591 ld_library_path_setting="contains current directory"
3911660e
UD
592 ;;
593 *)
594 ld_library_path_setting="ok"
595 ;;
596esac
597changequote([,])dnl
598AC_MSG_RESULT($ld_library_path_setting)
599if test "$ld_library_path_setting" != "ok"; then
63bda0c1
UD
600AC_MSG_ERROR([
601*** LD_LIBRARY_PATH shouldn't contain the current directory when
602*** building glibc. Please change the environment variable
603*** and run configure again.])
3911660e 604fi
8e31cf7e 605
84384f5b 606AC_PATH_PROG(BASH, bash, no)
a18f587d 607if test "$BASH" != no &&
f43ce637 608 $BASH -c 'test "$BASH_VERSINFO" \
6973fc01 609 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
84384f5b
UD
610 libc_cv_have_bash2=yes
611else
612 libc_cv_have_bash2=no
613fi
614AC_SUBST(libc_cv_have_bash2)
615
5290baf0
UD
616dnl We need a ksh compatible shell for tzselect.
617if test "$BASH" = no; then
618 AC_PATH_PROG(KSH, ksh, no)
619 if test "$KSH" = no; then
620 libc_cv_have_ksh=no
621 else
622 libc_cv_have_ksh=yes
623 fi
624else
625 KSH="$BASH"
626 AC_SUBST(KSH)
627 libc_cv_have_ksh=yes
628fi
629AC_SUBST(libc_cv_have_ksh)
630
5aa8ff62 631AC_PROG_AWK
c0016081 632AC_PATH_PROG(PERL, perl, no)
ecb06196
UD
633if [ -n "$PERL" ] ; then
634 eval $($PERL -V:apiversion)
635 if expr $apiversion \< "5" ; then
636 PERL=no
637 fi
638 unset apiversion
639fi
a2b08ee5 640AC_SUBST(PERL)
2f512715
AS
641AC_PATH_PROG(INSTALL_INFO, install-info, no,
642 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
c0016081
UD
643AC_SUBST(INSTALL_INFO)
644if test "$INSTALL_INFO" != "no"; then
645AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
646 [mkdir conftest.d
647 # There is a hard ^_ on the next line. I am open to better ideas.
648 (echo '\1f'
649 echo 'File: dir Node: Top This is the top of the INFO tree'
650 echo '* Menu:') >conftest.d/dir
651 (echo 'INFO-DIR-SECTION i-d-s works'
652 echo 'START-INFO-DIR-ENTRY'
653 echo '* Prog: (prog). Program.'
654 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
655 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
d8cceb4f 656 then
c0016081
UD
657 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
658 then libc_cv_old_debian_install_info=no
659 else libc_cv_old_debian_install_info=yes
660 fi
661 else libc_cv_old_debian_install_info=no testfailed=t
662 fi
663 rm -fr conftest.d])
664if test -n "$testfailed"
665then AC_MSG_WARN([install-info errored out, check config.log])
666fi
667OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
668fi
669AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
a2b08ee5 670
b8dc6a10 671AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
28f540f4
RM
672echo '#include <stddef.h>
673FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
674if eval "$ac_cpp conftest.c 2>/dev/null" \
675| grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
676 libc_cv_signed_size_t=no
677else
678 libc_cv_signed_size_t=yes
679fi
680rm -f conftest*])
28f540f4
RM
681if test $libc_cv_signed_size_t = yes; then
682 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
683 cat >> confdefs.h <<\EOF
684#undef __SIZE_TYPE__
685#define __SIZE_TYPE__ unsigned
686EOF
687fi
688
b8dc6a10 689AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
28f540f4
RM
690AC_TRY_COMPILE(dnl
691[#define __need_size_t
692#define __need_wchar_t
693#include <stddef.h>
694#define __need_NULL
695#include <stddef.h>], [size_t size; wchar_t wchar;
696#ifdef offsetof
697#error stddef.h ignored __need_*
698#endif
699if (&size == NULL || &wchar == NULL) abort ();],
700 libc_cv_friendly_stddef=yes,
701 libc_cv_friendly_stddef=no)])
28f540f4
RM
702if test $libc_cv_friendly_stddef = yes; then
703 config_vars="$config_vars
704override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
705fi
706
b8dc6a10
RM
707AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
708 libc_cv_need_minus_P, [dnl
28f540f4
RM
709cat > conftest.S <<EOF
710#include "confdefs.h"
711/* Nothing whatsoever. */
712EOF
713if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
714 libc_cv_need_minus_P=no
715else
716 libc_cv_need_minus_P=yes
717fi
718rm -f conftest*])
28f540f4
RM
719if test $libc_cv_need_minus_P = yes; then
720 config_vars="$config_vars
721asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
722fi
723
2293395f
UD
724AC_MSG_CHECKING(whether .text pseudo-op must be used)
725AC_CACHE_VAL(libc_cv_dot_text, [dnl
726cat > conftest.s <<EOF
727.text
728EOF
729libc_cv_dot_text=
730if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
731 libc_cv_dot_text=.text
732fi
733rm -f conftest*])
734if test -z "$libc_cv_dot_text"; then
735 AC_MSG_RESULT(no)
736else
737 AC_MSG_RESULT(yes)
738fi
739
b8dc6a10
RM
740AC_CACHE_CHECK(for assembler global-symbol directive,
741 libc_cv_asm_global_directive, [dnl
9a70fcab 742libc_cv_asm_global_directive=UNKNOWN
908c3d5b 743for ac_globl in .globl .global .EXPORT; do
9a70fcab 744 cat > conftest.s <<EOF
2293395f 745 ${libc_cv_dot_text}
908c3d5b 746 ${ac_globl} foo
ae1025be 747foo:
9a70fcab
UD
748EOF
749 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
750 libc_cv_asm_global_directive=${ac_globl}
751 fi
752 rm -f conftest*
753 test $libc_cv_asm_global_directive != UNKNOWN && break
754done])
9a70fcab
UD
755if test $libc_cv_asm_global_directive = UNKNOWN; then
756 AC_MSG_ERROR(cannot determine asm global directive)
757else
758 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
759fi
760
b8dc6a10 761AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
9a70fcab 762cat > conftest.s <<EOF
2293395f 763${libc_cv_dot_text}
ae1025be 764foo:
df2a0c93 765.set glibc_conftest_frobozz,foo
9a70fcab 766$libc_cv_asm_global_directive glibc_conftest_frobozz
e215c478 767EOF
df2a0c93
RM
768# The alpha-dec-osf1 assembler gives only a warning for `.set'
769# (but it doesn't work), so we must do a linking check to be sure.
770cat > conftest1.c <<\EOF
771extern int glibc_conftest_frobozz;
772main () { printf ("%d\n", glibc_conftest_frobozz); }
773EOF
774if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
cb2f05ed 775 -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
e215c478
RM
776 libc_cv_asm_set_directive=yes
777else
778 libc_cv_asm_set_directive=no
779fi
65b3cbcb 780rm -f conftest*])
e215c478
RM
781if test $libc_cv_asm_set_directive = yes; then
782 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
783fi
784
377a515b
UD
785AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
786[cat > conftest.s <<EOF
2293395f 787${libc_cv_dot_text}
4cca6b86 788_sym:
377a515b
UD
789.symver _sym,sym@VERS
790EOF
791if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
792 libc_cv_asm_symver_directive=yes
793else
794 libc_cv_asm_symver_directive=no
795fi
796rm -f conftest*])
797AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
798if test $libc_cv_asm_symver_directive = yes; then
799 cat > conftest.s <<EOF
2293395f 800${libc_cv_dot_text}
4cca6b86 801_sym:
377a515b
UD
802.symver _sym,sym@VERS
803EOF
804 cat > conftest.map <<EOF
f43ce637 805VERS_1 {
377a515b
UD
806 global: sym;
807};
f43ce637
UD
808
809VERS_2 {
810 global: sym;
811} VERS_1;
377a515b
UD
812EOF
813 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
5ae3e846
UD
814 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
815 -nostartfiles -nostdlib
ae1025be
UD
816 -Wl,--version-script,conftest.map
817 1>&AC_FD_CC]);
377a515b
UD
818 then
819 libc_cv_ld_version_script_option=yes
820 else
821 libc_cv_ld_version_script_option=no
822 fi
823 else
824 libc_cv_ld_version_script_option=no
825 fi
826else
827 libc_cv_ld_version_script_option=no
828fi
829rm -f conftest*])
830if test $libc_cv_asm_symver_directive = yes &&
650425ce
UD
831 test $libc_cv_ld_version_script_option = yes &&
832 test $enable_versioning = yes; then
377a515b
UD
833 VERSIONING=yes
834 AC_DEFINE(DO_VERSIONING)
835else
836 VERSIONING=no
837fi
838AC_SUBST(VERSIONING)
839
f43ce637
UD
840if test $VERSIONING = no; then
841 echo "\
f4017d20 842*** WARNING: You should not compile GNU libc without versioning. Not using
f43ce637
UD
843*** versioning will introduce incompatibilities so that old binaries
844*** will not run anymore.
50304ef0 845*** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
f43ce637 846fi
fd26970f
UD
847if test $elf = yes; then
848 AC_CACHE_CHECK(for .previous assembler directive,
849 libc_cv_asm_previous_directive, [dnl
850 cat > conftest.s <<EOF
851.section foo_section
852.previous
853EOF
854 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
855 libc_cv_asm_previous_directive=yes
856 else
857 libc_cv_asm_previous_directive=no
858 fi
859 rm -f conftest*])
860 if test $libc_cv_asm_previous_directive = yes; then
861 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
862 else
863 AC_CACHE_CHECK(for .popsection assembler directive,
864 libc_cv_asm_popsection_directive, [dnl
865 cat > conftest.s <<EOF
866.pushsection foo_section
867.popsection
868EOF
869 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
870 libc_cv_asm_popsection_directive=yes
871 else
872 libc_cv_asm_popsection_directive=no
873 fi
874 rm -f conftest*])
875 if test $libc_cv_asm_popsection_directive = yes; then
876 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
877 fi
878 fi
879fi
880
b8dc6a10
RM
881if test $elf != yes; then
882 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
883 [AC_TRY_COMPILE(, [asm (".section .init");
84724245 884 asm (".section .fini");
2293395f 885 asm ("${libc_cv_dot_text}");],
b8dc6a10
RM
886 libc_cv_have_initfini=yes,
887 libc_cv_have_initfini=no)])
888 AC_SUBST(libc_cv_have_initfini)dnl
889 if test $libc_cv_have_initfini = yes; then
890 AC_DEFINE(HAVE_INITFINI)
891 fi
892fi
e215c478 893
9a0a462c
UD
894dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
895AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
896[cat > conftest.$ac_ext <<EOF
897dnl This sometimes fails to find confdefs.h, for some reason.
898dnl [#]line __oline__ "[$]0"
899[#]line __oline__ "configure"
900#include "confdefs.h"
901void underscore_test(void) {
902return; }
903EOF
904if AC_TRY_EVAL(ac_compile); then
905 if grep _underscore_test conftest* >/dev/null; then
906 ifelse([$1], , :, [rm -f conftest*
907 $1])
908 else
909 ifelse([$2], , , [rm -f conftest*
910 $2])
911 fi
912else
913 echo "configure: failed program was:" >&AC_FD_CC
914 cat conftest.$ac_ext >&AC_FD_CC
915 ifelse([$2], , , [rm -f conftest*
916 $2])
917fi
918rm -f conftest*])
919
c224a18a
RM
920if test $elf = yes; then
921 libc_cv_asm_underscores=no
922else
9a0a462c
UD
923 if test $ac_cv_prog_cc_works = yes; then
924 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
925 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
926 libc_cv_asm_underscores=yes,
927 libc_cv_asm_underscores=no)])
928 else
929 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
930 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
931 libc_cv_asm_underscores=no)])
932 fi
c224a18a
RM
933fi
934if test $libc_cv_asm_underscores = no; then
935 AC_DEFINE(NO_UNDERSCORES)
936fi
937
938if test $elf = yes; then
939 libc_cv_weak_symbols=yes
9a97d1f7
UD
940fi
941
942AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
75d86c1f 943 [dnl
c224a18a 944cat > conftest.s <<EOF
2293395f 945${libc_cv_dot_text}
c224a18a 946${libc_cv_asm_global_directive} foo
ae1025be 947foo:
c224a18a
RM
948.weak foo
949.weak bar; bar = foo
950EOF
9a97d1f7
UD
951if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
952 libc_cv_asm_weak_directive=yes
953else
954 libc_cv_asm_weak_directive=no
955fi
956rm -f conftest*])
c224a18a 957
c8cf0b14 958if test $libc_cv_asm_weak_directive = no; then
c224a18a
RM
959 AC_CACHE_CHECK(for assembler .weakext directive,
960 libc_cv_asm_weakext_directive,
961 [dnl
962cat > conftest.s <<EOF
2293395f 963${libc_cv_dot_text}
c224a18a 964${libc_cv_asm_global_directive} foo
ae1025be 965foo:
f802accb
UD
966.weakext bar foo
967.weakext baz
968${libc_cv_asm_global_directive} baz
9a97d1f7 969baz:
c224a18a
RM
970EOF
971 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
972 libc_cv_asm_weakext_directive=yes
973 else
974 libc_cv_asm_weakext_directive=no
975 fi
976 rm -f conftest*])
977
9a97d1f7 978fi # no .weak
c224a18a 979
ffcf9634 980if test $libc_cv_asm_weak_directive = yes; then
c224a18a 981 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
ffcf9634 982elif test $libc_cv_asm_weakext_directive = yes; then
c224a18a
RM
983 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
984fi
985
a641835a
RM
986AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
987cat > conftest.c <<\EOF
5f0e6fc7 988_start () {}
dcf0671d
UD
989int __eh_pc;
990__throw () {}
a641835a 991EOF
dcea62dd
RM
992dnl No \ in command here because it ends up inside ''.
993if AC_TRY_COMMAND([${CC-cc} $CFLAGS
994 -nostdlib -nostartfiles -Wl,--no-whole-archive
ae1025be 995 -o conftest conftest.c 1>&AC_FD_CC]); then
a641835a
RM
996 libc_cv_ld_no_whole_archive=yes
997else
998 libc_cv_ld_no_whole_archive=no
999fi
1000rm -f conftest*])
b17277cf
UD
1001if test $libc_cv_ld_no_whole_archive = yes; then
1002 no_whole_archive=-Wl,--no-whole-archive
1003fi
1004AC_SUBST(no_whole_archive)dnl
a641835a 1005
dff14448 1006AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
b236e99d
UD
1007cat > conftest.c <<\EOF
1008_start () {}
1009int __eh_pc;
1010__throw () {}
1011EOF
1012dnl No \ in command here because it ends up inside ''.
1013if AC_TRY_COMMAND([${CC-cc} $CFLAGS
dff14448 1014 -nostdlib -nostartfiles -fexceptions
ae1025be 1015 -o conftest conftest.c 1>&AC_FD_CC]); then
dff14448 1016 libc_cv_gcc_exceptions=yes
b236e99d 1017else
dff14448 1018 libc_cv_gcc_exceptions=no
b236e99d
UD
1019fi
1020rm -f conftest*])
dff14448
UD
1021if test $libc_cv_gcc_exceptions = yes; then
1022 exceptions=-fexceptions
b17277cf 1023fi
dff14448 1024AC_SUBST(exceptions)dnl
b236e99d 1025
d71b808a
UD
1026if test "$base_machine" = alpha ; then
1027AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1028cat > conftest.c <<\EOF
1029foo () { }
1030EOF
1031dnl
9756dfe1 1032if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
d71b808a
UD
1033then
1034 libc_cv_gcc_alpha_ng_prefix=yes
1035else
1036 libc_cv_gcc_alpha_ng_prefix=no
1037fi
1038rm -f conftest* ])
1039if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1040 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1041else
1042 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1043fi
1044fi
1045
66000494
UD
1046if test "$host_cpu" = powerpc ; then
1047# Check for a bug present in at least versions 2.8.x of GCC
1048# and versions 1.0.x of EGCS.
1049AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1050AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1051 libc_cv_c_asmcr0_bug='no',
1052 libc_cv_c_asmcr0_bug='yes')])
1053if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1054 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1055fi
1056fi
1057
650425ce
UD
1058AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1059[cat > conftest.c <<EOF
1060#line __oline__ "configure"
1061static char __EH_FRAME_BEGIN__[];
1062_start ()
1063{
9756dfe1 1064#ifdef CHECK__register_frame
650425ce
UD
1065 __register_frame (__EH_FRAME_BEGIN__);
1066 __deregister_frame (__EH_FRAME_BEGIN__);
9756dfe1
UD
1067#endif
1068#ifdef CHECK__register_frame_info
1069 __register_frame_info (__EH_FRAME_BEGIN__);
1070 __deregister_frame_info (__EH_FRAME_BEGIN__);
1071#endif
650425ce
UD
1072}
1073int __eh_pc;
1074__throw () {}
1075/* FIXME: this is fragile. */
1076malloc () {}
1077strcmp () {}
1078strlen () {}
1079memcpy () {}
1080memset () {}
1081free () {}
1082abort () {}
dfd2257a 1083__bzero () {}
650425ce
UD
1084EOF
1085dnl No \ in command here because it ends up inside ''.
9756dfe1 1086if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
650425ce
UD
1087 -nostdlib -nostartfiles
1088 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
9756dfe1 1089 libc_cv_gcc_dwarf2_unwind_info=static
650425ce
UD
1090else
1091 libc_cv_gcc_dwarf2_unwind_info=no
1092fi
9756dfe1
UD
1093if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1094 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1095 -nostdlib -nostartfiles
1096 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1097 libc_cv_gcc_dwarf2_unwind_info=yes
1098 else
1099 libc_cv_gcc_dwarf2_unwind_info=no
1100 fi
1101fi
650425ce 1102rm -f conftest*])
9756dfe1
UD
1103case $libc_cv_gcc_dwarf2_unwind_info in
1104yes)
650425ce 1105 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
9756dfe1
UD
1106 ;;
1107static)
1108 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1109 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1110 ;;
1111esac
650425ce 1112
a8eab8b1
UD
1113dnl Check whether compiler understands __builtin_expect.
1114AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1115[cat > conftest.c <<EOF
1116#line __oline__ "configure"
1117int foo (int a)
1118{
1119 a = __builtin_expect (a, 10);
1120 return a == 10 ? 0 : 1;
1121}
1122EOF
1123dnl No \ in command here because it ends up inside ''.
1124if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1125 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1126 libc_cv_gcc_builtin_expect=yes
1127else
1128 libc_cv_gcc_builtin_expect=no
1129fi
1130rm -f conftest*])
1131if test "$libc_cv_gcc_builtin_expect" = yes; then
1132 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1133fi
1134
3d558f4e
UD
1135dnl Check whether the compiler supports subtraction of local labels.
1136AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1137[cat > conftest.c <<EOF
1138changequote(,)dnl
1139#line __oline__ "configure"
1140int foo (int a)
1141{
1142 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1143 void *p = &&l1 + ar[a];
1144 goto *p;
1145 l1:
1146 return 1;
1147 l2:
1148 return 2;
1149}
1150changequote([,])dnl
1151EOF
1152dnl No \ in command here because it ends up inside ''.
1153if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1154 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1155 libc_cv_gcc_subtract_local_labels=yes
1156else
1157 libc_cv_gcc_subtract_local_labels=no
1158fi
1159rm -f conftest*])
1160if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1161 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1162fi
1163
c8f3e6db
UD
1164dnl Check whether we have the gd library available.
1165AC_MSG_CHECKING(for libgd)
1166old_CFLAGS="$CFLAGS"
1167CFLAGS="$CFLAGS $libgd_include"
1168old_LDFLAGS="$LDFLAGS"
1169LDFLAGS="$LDFLAGS $libgd_ldflags"
1170old_LIBS="$LIBS"
1171LIBS="$LIBS -lgd -lpng -lz"
1172AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1173CFLAGS="$old_CFLAGS"
1174LDFLAGS="$old_LDFLAGS"
1175LIBS="$old_LIBS"
1176AC_MSG_RESULT($LIBGD)
1177AC_SUBST(LIBGD)
3d558f4e 1178
c224a18a
RM
1179### End of automated tests.
1180### Now run sysdeps configure fragments.
1181
28f540f4
RM
1182# sysdeps configure fragments may set these with files to be linked below.
1183libc_link_dests=
1184libc_link_sources=
1185
cb343854 1186# They also can set these variables.
591e1ffb 1187use_ldconfig=no
cb343854
UD
1188ldd_rewrite_script=no
1189
28f540f4
RM
1190# Iterate over all the sysdep directories we will use, running their
1191# configure fragments, and looking for a uname implementation.
1192uname=
1193for dir in $sysnames; do
57ba7bb4
UD
1194 case $dir in
1195 /*) dest=$dir ;;
1196 *) dest=$srcdir/$dir ;;
1197 esac
1198 if test -r $dest/configure; then
1199 AC_MSG_RESULT(running configure fragment for $dest)
1200 . $dest/configure
28f540f4 1201 fi
4ca84cff 1202[
28f540f4 1203 if test -z "$uname"; then
e7f1f046
UD
1204 if test -r $dest/uname.c ||
1205 test -r $dest/uname.S ||
1206 { test -r $dest/syscalls.list &&
1207 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
b86199fb 1208 uname=$dir
4ca84cff 1209 fi
28f540f4 1210 fi
4ca84cff 1211]dnl
28f540f4
RM
1212done
1213
1214AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1215
1216# If we will use the generic uname implementation, we must figure out what
1217# it will say by examining the system, and write the results in config-name.h.
e7f1f046 1218if test "$uname" = "sysdeps/generic"; then
28f540f4
RM
1219
1220changequote(,)dnl
1221 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1222changequote([,])dnl
1223 if test $uname_sysname != $config_os; then
1224 config_release=`echo $config_os | sed s/$uname_sysname//`
1225 fi
1226dnl
1227AC_DEFUN(LIBC_KERNEL_ID, [dnl
1228 if test -r /vmunix; then
1229 kernel_id=`strings /vmunix | grep UNIX`
1230 elif test -r /dynix; then
1231 kernel_id=`strings /dynix | grep DYNIX`
1232 else
1233 kernel_id=
1234 fi
1235])dnl
1236
b8dc6a10 1237 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
28f540f4
RM
1238AC_REQUIRE([LIBC_KERNEL_ID])dnl
1239changequote(,)dnl
1240 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1241changequote([,])dnl
1242 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1243 != x$config_release; then
1244 # The configuration release is a substring of the kernel release.
1245 libc_cv_uname_release=$kernel_release
1246 elif test x$config_release != x; then
1247 libc_cv_uname_release=$config_release
1248 elif test x$kernel_release != x; then
1249 libc_cv_uname_release=$kernel_release
1250 else
1251 libc_cv_uname_release=unknown
1252 fi])
28f540f4
RM
1253 uname_release="$libc_cv_uname_release"
1254
b8dc6a10 1255 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
28f540f4
RM
1256AC_REQUIRE([LIBC_KERNEL_ID])dnl
1257changequote(,)dnl
1258 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1259changequote([,])dnl
1260 if test -n "$kernel_version"; then
1261 libc_cv_uname_version="$kernel_version"
1262 else
1263 libc_cv_uname_version=unknown
1264 fi])
28f540f4
RM
1265 uname_version="$libc_cv_uname_version"
1266
1267AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1268 config_uname=config-name.h:config-name.in
1269else
1270 # For non-generic uname, we don't need to create config-name.h at all.
1271 config_uname=
1272fi
1273
96aa2d94
RM
1274AC_MSG_CHECKING(stdio selection)
1275AC_SUBST(stdio)
1276case $stdio in
1277libio) AC_DEFINE(USE_IN_LIBIO) ;;
1278default) stdio=stdio ;;
1279esac
1280AC_MSG_RESULT($stdio)
1281
a53bad16
UD
1282# Test for old glibc 2.0.x headers so that they can be removed properly
1283# Search only in includedir.
1284AC_MSG_CHECKING(for old glibc 2.0.x headers)
350eb336 1285if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
a53bad16
UD
1286then
1287 old_glibc_headers=yes
1288else
1289 old_glibc_headers=no
1290fi
1291AC_MSG_RESULT($old_glibc_headers)
1292if test ${old_glibc_headers} = yes; then
1293 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1294 AC_MSG_WARN(*** be removed.)
1295fi
b195f6bc 1296AC_SUBST(old_glibc_headers)
26b4d766 1297
84384f5b 1298AC_SUBST(libc_cv_slibdir)
a1d84548 1299AC_SUBST(libc_cv_localedir)
84384f5b 1300AC_SUBST(libc_cv_sysconfdir)
1ef32c3d
UD
1301AC_SUBST(libc_cv_rootsbindir)
1302
591e1ffb 1303AC_SUBST(use_ldconfig)
cb343854 1304AC_SUBST(ldd_rewrite_script)
84384f5b 1305
c224a18a 1306AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
28f540f4
RM
1307if test $gnu_ld = yes; then
1308 AC_DEFINE(HAVE_GNU_LD)
1309fi
1310if test $gnu_as = yes; then
1311 AC_DEFINE(HAVE_GNU_AS)
1312fi
1313if test $elf = yes; then
1314 AC_DEFINE(HAVE_ELF)
1315fi
28f540f4 1316
650425ce 1317AC_SUBST(static)
ff3d7ed3
RM
1318AC_SUBST(shared)
1319if test $shared = default; then
1320 if test $gnu_ld = yes; then
1321 shared=$elf
f65fd747
UD
1322 else
1323 # For now we do not assume shared libs are available. In future more
1324 # tests might become available.
1325 shared=no
ff3d7ed3
RM
1326 fi
1327fi
cc3fa755
UD
1328
1329AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1330[pic_default=yes
1331cat > conftest.c <<EOF
9756dfe1 1332#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
cc3fa755
UD
1333# error PIC is default.
1334#endif
1335EOF
1336if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1337 pic_default=no
1338fi
1339rm -f conftest.*])
1340AC_SUBST(pic_default)
1341
ff3d7ed3
RM
1342AC_SUBST(profile)
1343AC_SUBST(omitfp)
5a97622d 1344AC_SUBST(bounded)
5107cf1d 1345AC_SUBST(static_nss)
5ae3e846 1346AC_SUBST(nopic_initfini)
ff3d7ed3 1347
edf5b2d7
UD
1348AC_SUBST(DEFINES)
1349
7cabd57c
UD
1350case "$add_ons" in
1351 *door*) linux_doors=yes ;;
1352 *) linux_doors=no ;;
1353esac
1354AC_SUBST(linux_doors)
1355
28f540f4
RM
1356if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1357 config_makefile=
1358else
1359 config_makefile=Makefile
1360fi
1361
ee74a442
UD
1362VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1363RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
df4ef2ab 1364AC_SUBST(VERSION)
ee74a442 1365AC_SUBST(RELEASE)
df4ef2ab 1366
0013b2b1
UD
1367echo '*** Do NOT install this release on any production system!'
1368echo '*** It is known to be broken and will be so for quite some time.'
1369echo '*** Use the latest released version instead.'
1370
737547be
UD
1371AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1372case $CONFIG_FILES in *config.make*)
1373echo "$config_vars" >> config.make;;
1374esac
1375test -d bits || mkdir bits], [config_vars='$config_vars'])