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