]> 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])
c8f3e6db
UD
22# Check for a --with-gd argument and set libgd-LDFLAGS in config.make.
23AC_ARG_WITH(gd, dnl
24 --with-gd=DIR find libgd include dir and library with prefix DIR,
25 [dnl
26case "$with_gd" in
f5f7239f
UD
27yes|''|no) ;;
28*) libgd_include="-I$withval/include"
c8f3e6db
UD
29 libgd_ldflags="-L$withval/lib" ;;
30esac
31])
f5f7239f
UD
32AC_ARG_WITH(gd-include, dnl
33 --with-gd-include=DIR find libgd include files in DIR,
34 [dnl
35case "$with_gd_include" in
36''|no) ;;
37*) libgd_include="-I$withval" ;;
38esac
39])
40AC_ARG_WITH(gd-lib, dnl
41 --with-gd-lib=DIR find libgd library files in DIR,
42 [dnl
43case "$with_gd_lib" in
44''|no) ;;
45*) libgd_ldflags="-L$withval" ;;
46esac
47])
48
49if test -n "$libgd_include"; then
50 config_vars="$config_vars
cf90163d 51CFLAGS-memusagestat.c = $libgd_include"
f5f7239f
UD
52fi
53if test -n "$libgd_ldflags"; then
54 config_vars="$config_vars
55libgd-LDFLAGS = $libgd_ldflags"
56fi
28f540f4 57
ff3d7ed3 58dnl Arguments to specify presence of other packages/features.
335aa320 59AC_ARG_WITH(fp, dnl
a18f587d 60[ --with-fp if using floating-point hardware [default=yes]],
335aa320 61 with_fp=$withval, with_fp=yes)
675322a5 62AC_SUBST(with_fp)
650425ce 63AC_ARG_WITH(binutils, dnl
a5a0310d 64 --with-binutils=PATH specify location of binutils (as and ld),
650425ce 65 path_binutils=$withval, path_binutils='')
28f540f4
RM
66AC_ARG_WITH(elf, dnl
67 --with-elf if using the ELF object format,
335aa320 68 elf=$withval, elf=no)
5af3245a
UD
69AC_ARG_WITH(xcoff, dnl
70 --with-xcoff if using the XCOFF object format,
71 xcoff=$withval, xcoff=no)
4d06461a 72AC_ARG_WITH(cvs, dnl
4442d7e8 73[ --without-cvs if CVS should not be used],
4d06461a 74 with_cvs=$withval, with_cvs=yes)
6b3f2b3d
UD
75if test "$with_cvs" = yes; then
76 if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null
77 then
78 with_cvs=no
79 fi
4442d7e8 80fi
4d06461a 81AC_SUBST(with_cvs)
28f540f4 82
dbe7a0f5
UD
83AC_ARG_WITH(headers, dnl
84[ --with-headers=PATH location of system headers to use
85 [e.g. /usr/src/linux/include]
86 [default=compiler default]],
87 sysheaders=$withval, sysheaders='')
88
deab9dea
RM
89AC_ARG_ENABLE(libio, dnl
90[ --enable-libio build in GNU libio instead of GNU stdio],
f4482045
RM
91 [if test $enableval = yes; then
92 stdio=libio
93 else
94 stdio=stdio
95 fi],
96 stdio=default)
deab9dea 97
a18f587d
UD
98AC_ARG_ENABLE(sanity-checks, dnl
99[ --disable-sanity-checks really do not use threads (should not be used
100 except in special situations) [default=yes]],
101 enable_sanity=$enableval, enable_sanity=yes)
102
650425ce
UD
103dnl Arguments to enable or disable building the static, shared, profiled,
104dnl and -fomit-frame-pointer libraries.
b38bb8ca
UD
105dnl I've disabled this for now since we cannot build glibc without static
106dnl libraries built in the moment.
107dnl AC_ARG_ENABLE(static, dnl
108dnl [ --enable-static build static library [default=yes]],
109dnl static=$enableval, static=yes)
5c2a0669 110static=yes
ff3d7ed3
RM
111AC_ARG_ENABLE(shared, dnl
112[ --enable-shared build shared library [default=yes if GNU ld & ELF]],
6b3a2224 113 shared=$enableval, shared=default)
ff3d7ed3
RM
114AC_ARG_ENABLE(profile, dnl
115[ --enable-profile build profiled library [default=yes]],
6b3a2224 116 profile=$enableval, profile=yes)
ff3d7ed3 117AC_ARG_ENABLE(omitfp, dnl
6b3a2224
RM
118[ --enable-omitfp build undebuggable optimized library [default=no]],
119 omitfp=$enableval, omitfp=no)
5a97622d
UD
120AC_ARG_ENABLE(bounded, dnl
121[ --enable-bounded build with runtime bounds checking [default=no]],
122 bounded=$enableval, bounded=no)
650425ce
UD
123AC_ARG_ENABLE(versioning, dnl
124[ --disable-versioning do not include versioning information in the
125 library objects [default=yes if supported]],
126 enable_versioning=$enableval, enable_versioning=yes)
6b3a2224 127
62ab42d6
UD
128AC_ARG_ENABLE(oldest-abi, dnl
129[ --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
130 [default=glibc default]],
131 oldest_abi=$enableval, oldest_abi=no)
132if test "$oldest_abi" = yes || test "$oldest_abi" = no; then
133 oldest_abi=default
134else
135 AC_DEFINE_UNQUOTED(GLIBC_OLDEST_ABI, "$oldest_abi")
136fi
137AC_SUBST(oldest_abi)
138
6b3a2224
RM
139dnl Generic infrastructure for drop-in additions to libc.
140AC_ARG_ENABLE(add-ons, dnl
73237de3
UD
141[ --enable-add-ons[=DIR1,DIR2]...
142 configure and build add-ons in DIR1,DIR2,...
143 search for add-ons if no parameter given],
61952351 144 [case "$enableval" in
9c4c0024
UD
145 yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'`
146 test "$add_ons" = "*" && add_ons= ;;
61952351
UD
147 *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;;
148 esac],
149 [add_ons=])
150
8d4b5a8a
UD
151dnl Let the user avoid using TLS. Don't know why but...
152AC_ARG_WITH(tls, dnl
153[ --without-tls prevent support for TLS],
154 usetls=$withval, usetls=yes)
155
6b3a2224 156AC_CONFIG_SUBDIRS($add_ons)
57ba7bb4 157add_ons_pfx=
da74e902 158if test x"$add_ons" != x; then
57ba7bb4 159 for f in $add_ons; do
aa44a9de
AJ
160 # Some sanity checks
161 if test "$f" = "crypt"; then
162 AC_MSG_ERROR([
163*** It seems that you're using an old \`crypt' add-on. crypt is now
164*** part of glibc and using the old add-on will not work with this
165*** release. Start again with fresh sources and without the old
166*** \`crypt' add-on.])
167 fi
168 if test "$f" = "localedata"; then
169 AC_MSG_ERROR([
170*** It seems that you're using an old \`localedata' add-on. localedata
171*** is now part of glibc and using the old add-on will not work with
172*** this release. Start again with fresh sources and without the old
173*** \`localedata' add-on.])
174 fi
af6f3906
UD
175 # Test whether such a subdir really exists.
176 if test -d $srcdir/$f; then
177 add_ons_pfx="$add_ons_pfx $f/"
178 else
179 AC_MSG_ERROR(add-on directory \"$f\" does not exist)
180 fi
57ba7bb4
UD
181 done
182fi
ff3d7ed3 183
5107cf1d
UD
184dnl On some platforms we cannot use dynamic loading. We must provide
185dnl static NSS modules.
186AC_ARG_ENABLE(static-nss, dnl
187[ --enable-static-nss build static NSS modules [default=no]],
188 static_nss=$enableval, static_nss=no)
189if test x"$static_nss" = xyes; then
190 AC_DEFINE(DO_STATIC_NSS)
191fi
192
73237de3 193AC_ARG_ENABLE(force-install,
310b3460 194[ --disable-force-install don't force installation of files from this package,
73237de3
UD
195 even if they are older than the installed files],
196 force_install=$enableval, force_install=yes)
197AC_SUBST(force_install)
198
958f238f
UD
199dnl On some platforms we allow dropping compatibility with all kernel
200dnl versions.
201AC_ARG_ENABLE(kernel,
b5b53bdb 202[ --enable-kernel=VERSION compile for compatibility with kernel not older
958f238f
UD
203 than VERSION],
204 minimum_kernel=$enableval)
86cfe82d
UD
205dnl Prevent unreasonable values.
206if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then
207 # Better nothing than this.
208 minimum_kernel=""
269e369f
UD
209else
210 if test "$minimum_kernel" = current; then
211 minimum_kernel=`uname -r 2>/dev/null` || minimum_kernel=
212 fi
86cfe82d 213fi
958f238f 214
6cc7d725
UD
215dnl For the development we sometimes want gcc to issue even more warnings.
216dnl This is not the default since many of the extra warnings are not
217dnl appropriate.
218AC_ARG_ENABLE(all-warnings,
219[ --enable-all-warnings enable all useful warnings gcc can issue],
220 all_warnings=$enableval)
221AC_SUBST(all_warnings)
222
28f540f4 223AC_CANONICAL_HOST
8a523922
UD
224
225# The way shlib-versions is used to generate soversions.mk uses a
226# fairly simplistic model for name recognition that can't distinguish
227# i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
228# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
229# tell. This doesn't get used much beyond that, so it's fairly safe.
230case "$host_os" in
231linux*)
232 ;;
233gnu*)
234 host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
235 ;;
236esac
237
28f540f4
RM
238# We keep the original values in `$config_*' and never modify them, so we
239# can write them unchanged into config.make. Everything else uses
240# $machine, $vendor, and $os, and changes them whenever convenient.
241config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
242
2f64b655
UD
243# Don't allow vendor == "unknown"
244test "$config_vendor" = unknown && config_vendor=
245config_os="`echo $config_os | sed 's/^unknown-//'`"
246
a2fe9c76
RM
247# Some configurations imply other options.
248case "$host_os" in
249gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
250 # These systems always use GNU tools.
c8cf0b14 251 gnu_ld=yes gnu_as=yes ;;
a2fe9c76
RM
252esac
253case "$host_os" in
7799b7b3
UD
254# i586-linuxaout is mangled into i586-pc-linux-gnuaout
255linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
3776d592 256 ;;
ba909880 257gnu* | linux* | sysv4* | solaris2* | irix6*)
3776d592
RM
258 # These systems (almost) always use the ELF format.
259 elf=yes
84724245 260 ;;
5af3245a
UD
261aix*)
262 # These systems are always xcoff
263 xcoff=yes
a711b01d 264 elf=no
5af3245a 265 ;;
a2fe9c76
RM
266esac
267
28f540f4
RM
268machine=$config_machine
269vendor=$config_vendor
270os=$config_os
271
a808d541
UD
272# config.guess on some IBM machines says `rs6000' instead of `powerpc'.
273# Unify this here.
274if test "$machine" = rs6000; then
275 machine="powerpc"
276fi
277
bdc8eb03
UD
278###
279### I put this here to prevent those annoying emails from people who cannot
280### read and try to compile glibc on unsupported platforms. --drepper
281###
282### By using the undocumented --enable-hacker-mode option for configure
283### one can skip this test to make the configuration not fail for unsupported
284### platforms.
285###
286if test -z "$enable_hacker_mode"; then
287 case "$machine-$host_os" in
75d86c1f 288 *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*)
bdc8eb03
UD
289 ;;
290 *)
291 echo "*** The GNU C library is currently not available for this platform."
292 echo "*** So far nobody cared to port it and if there is no volunteer it"
293 echo "*** might never happen. So, if you have interest to see glibc on"
294 echo "*** this platform visit"
295 echo "*** http://www.gnu.org/software/libc/porting.html"
296 echo "*** and join the group of porters"
297 exit 1
298 ;;
299 esac
300fi
301
28f540f4
RM
302dnl We need to use [ and ] for other purposes for a while now.
303changequote(,)dnl
304# Expand the configuration machine name into a subdirectory by architecture
305# type and particular chip.
306case "$machine" in
f0523145
RM
307a29k | am29000) base_machine=a29k machine=a29k ;;
308alpha*) base_machine=alpha machine=alpha/$machine ;;
0c8b61e6 309arm*) base_machine=arm machine=arm/arm32/$machine ;;
60c96635
UD
310c3[012]) base_machine=cx0 machine=cx0/c30 ;;
311c4[04]) base_machine=cx0 machine=cx0/c40 ;;
b15cb495
UD
312hppa*64*) base_machine=hppa machine=hppa/hppa64 ;;
313hppa*) base_machine=hppa machine=hppa/hppa1.1 ;;
a8922de8 314i[3456]86) base_machine=i386 machine=i386/$machine ;;
d64e704c 315ia64) base_machine=ia64 machine=ia64 ;;
f0523145
RM
316m680?0) base_machine=m68k machine=m68k/$machine ;;
317m68k) base_machine=m68k machine=m68k/m68020 ;;
318m88???) base_machine=m88k machine=m88k/$machine ;;
319m88k) base_machine=m88k machine=m88k/m88100 ;;
f0523145 320mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
9a97d1f7
UD
321mips*) base_machine=mips
322 case "`uname -m`" in
323 IP22) machine=mips/mips3 ;;
45b3d8ad 324 *) machine=mips/$machine ;;
9a97d1f7 325 esac ;;
136d4332
UD
326s390) base_machine=s390 machine=s390/s390-32 ;;
327s390x) base_machine=s390 machine=s390/s390-64 ;;
88615235
UD
328sh3*) base_machine=sh machine=sh/sh3 ;;
329sh4*) base_machine=sh machine=sh/sh4 ;;
ca34d7a7
UD
330sparc | sparcv[67])
331 base_machine=sparc machine=sparc/sparc32 ;;
332sparcv8 | supersparc | hypersparc)
333 base_machine=sparc machine=sparc/sparc32/sparcv8 ;;
ae6b8730
RH
334sparcv8plus | sparcv8plusa | sparcv9)
335 base_machine=sparc machine=sparc/sparc32/sparcv9 ;;
bb769ab6
UD
336sparcv8plusb | sparcv9b)
337 base_machine=sparc machine=sparc/sparc32/sparcv9b ;;
ca34d7a7
UD
338sparc64 | ultrasparc)
339 base_machine=sparc machine=sparc/sparc64 ;;
bb769ab6
UD
340sparc64b | ultrasparc3)
341 base_machine=sparc machine=sparc/sparc64/sparcv9b ;;
0c8b61e6 342thumb*) base_machine=thumb machine=arm/thumb/$machine ;;
3a2832a0 343*) base_machine=$machine ;;
28f540f4 344esac
f0523145
RM
345changequote([,])dnl
346AC_SUBST(base_machine)
28f540f4 347
dfd2257a
UD
348if test "$base_machine" = "i386"; then
349 AC_DEFINE(USE_REGPARMS)
350fi
351
f0523145 352# Compute the list of sysdep directories for this configuration.
f332db02 353# This can take a while to compute.
f0523145 354sysdep_dir=$srcdir/sysdeps
f332db02 355AC_MSG_CHECKING(sysdep dirs)
f0523145
RM
356dnl We need to use [ and ] for other purposes for a while now.
357changequote(,)dnl
28f540f4
RM
358# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
359os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
360
361case "$os" in
362gnu*)
363 base_os=mach/hurd ;;
883bc19b 364netbsd* | 386bsd* | freebsd* | bsdi*)
28f540f4 365 base_os=unix/bsd/bsd4.4 ;;
222c4e71 366osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
28f540f4 367 base_os=unix/bsd ;;
d586354e 368sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
28f540f4 369 base_os=unix/sysv ;;
f802accb
UD
370irix6*)
371 base_os=unix/sysv/irix6/$os ;;
d586354e 372solaris[2-9]*)
28f540f4 373 base_os=unix/sysv/sysv4 ;;
908c3d5b
UD
374hpux*)
375 base_os=unix/sysv/hpux/$os ;;
75d86c1f
UD
376aix4.3*)
377 base_os=unix/sysv/aix/aix4.3 ;;
28f540f4
RM
378none)
379 base_os=standalone ;;
380*)
381 base_os='' ;;
382esac
383
384# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
385tail=$os
386ostry=$os
387while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
388 ostry="$ostry /$o"
389 tail=$o
75914335 390done
28f540f4
RM
391o=`echo $tail | sed 's/[0-9]*$//'`
392if test $o != $tail; then
393 ostry="$ostry /$o"
394fi
ec4b0518
UD
395# For linux-gnu, try linux-gnu, then linux.
396o=`echo $tail | sed 's/-.*$//'`
397if test $o != $tail; then
398 ostry="$ostry /$o"
399fi
28f540f4
RM
400
401# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
402base=
403tail=$base_os
404while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
405 set $b
406 base="$base /$1"
407 tail="$2"
408done
409
ae6b8730 410# For sparc/sparc32, try sparc/sparc32 and then sparc.
28f540f4
RM
411mach=
412tail=$machine
413while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
414 set $m
10ceac89
RM
415 # Prepend the machine's FPU directory unless --without-fp.
416 if test "$with_fp" = yes; then
417 mach="$mach /$1/fpu"
82d00cab 418 fi
28f540f4
RM
419 mach="$mach /$1"
420 tail="$2"
421done
422
423dnl We are done with glob and regexp uses of [ and ]; return to autoconf.
424changequote([,])dnl
425
426# Find what sysdep directories exist.
427sysnames=
57ba7bb4
UD
428IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
429for d in $add_ons_pfx ''; do
430 for b in $base ''; do
431 for m0 in $mach ''; do
432 for v in /$vendor ''; do
ae828bc6 433 test "$v" = / && continue
57ba7bb4 434 for o in /$ostry ''; do
ae828bc6 435 test "$o" = / && continue
57ba7bb4
UD
436 for m in $mach ''; do
437 if test "$m0$b$v$o$m"; then
438 try="${d}sysdeps$m0$b$v$o$m"
439 test -n "$enable_debug_configure" &&
440 echo "$0 [DEBUG]: try $try" >&2
9c4c0024 441 if test -d $srcdir/$try; then
57ba7bb4
UD
442 sysnames="$sysnames $try"
443 { test -n "$o" || test -n "$b"; } && os_used=t
444 { test -n "$m" || test -n "$m0"; } && machine_used=t
445 fi
446 fi
447 done
28f540f4
RM
448 done
449 done
450 done
451 done
452done
57ba7bb4 453IFS="$ac_save_ifs"
28f540f4
RM
454
455if test -z "$os_used" && test "$os" != none; then
456 AC_MSG_ERROR(Operating system $os is not supported.)
457fi
458if test -z "$machine_used" && test "$machine" != none; then
459 AC_MSG_ERROR(The $machine is not supported.)
460fi
461
462# We have now validated the configuration.
463
335aa320 464
10ceac89
RM
465# If using ELF, look for an `elf' subdirectory of each machine directory.
466# We prepend these rather than inserting them whereever the machine appears
467# because things specified by the machine's ELF ABI should override
468# OS-specific things, and should always be the same for any OS on the
469# machine (otherwise what's the point of an ABI?).
470if test "$elf" = yes; then
471 elf_dirs=
57ba7bb4 472 for d in $add_ons_pfx ''; do
57ba7bb4 473 for m in $mach; do
9c4c0024 474 if test -d $srcdir/${d}sysdeps$m/elf; then
c2bb8cab 475 elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
57ba7bb4
UD
476 fi
477 done
28f540f4 478 done
57ba7bb4 479 sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
28f540f4
RM
480fi
481
335aa320 482
28f540f4
RM
483# Expand the list of system names into a full list of directories
484# from each element's parent name and Implies file (if present).
485set $sysnames
e50ec9f9 486names=
28f540f4
RM
487while test $# -gt 0; do
488 name=$1
489 shift
490
e50ec9f9 491 case " $names " in *" $name "*)
f332db02
RM
492 # Already in the list.
493 continue
e50ec9f9 494 esac
f332db02
RM
495
496 # Report each name as we discover it, so there is no long pause in output.
497 echo $ac_n "$name $ac_c" >&AC_FD_MSG
498
57ba7bb4
UD
499 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
500
501 case $name in
502 /*) xsrcdir= ;;
503 *) xsrcdir=$srcdir/ ;;
504 esac
505 test -n "$enable_debug_configure" &&
506 echo "[DEBUG]: name/Implies $xsrcdir$name/Implies" >&2
507
508 if test -f $xsrcdir$name/Implies; then
28f540f4 509 # Collect more names from the `Implies' file (removing comments).
57ba7bb4
UD
510 implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
511 implied=
512 for x in $implied_candidate; do
636ccfc8 513 found=no
57ba7bb4
UD
514 if test -d $xsrcdir$name_base/$x; then
515 implied="$implied $name_base/$x";
636ccfc8
UD
516 found=yes
517 fi
518 for d in $add_ons_pfx ''; do
519 try="${d}sysdeps/$x"
520 case $d in
521 /*) try_srcdir= ;;
522 *) try_srcdir=$srcdir/ ;;
523 esac
524 test -n "$enable_debug_configure" &&
525 echo "[DEBUG]: $name implied $x try($d) {$try_srcdir}$try" >&2
526 if test $try != $xsrcdir$name_base/$x && test -d $try_srcdir$try;
527 then
528 implied="$implied $try"
529 found=yes
530 fi
531 done
532 if test $found = no; then
57ba7bb4
UD
533 AC_MSG_WARN($name/Implies specifies nonexistent $x)
534 fi
28f540f4
RM
535 done
536 else
537 implied=
538 fi
539
540 # Add NAME to the list of names.
541 names="$names $name"
542
543 # Find the parent of NAME, using the empty string if it has none.
544changequote(,)dnl
57ba7bb4 545 parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
28f540f4
RM
546changequote([,])dnl
547
548 # Add the names implied by NAME, and NAME's parent (if it has one), to
549 # the list of names to be processed (the argument list). We prepend the
550 # implied names to the list and append the parent. We want implied
551 # directories to come before further directories inferred from the
552 # configuration components; this ensures that for sysv4, unix/common
553 # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
554 # after sysv4).
555 sysnames="`echo $implied $* $parent`"
556 test -n "$sysnames" && set $sysnames
557done
558
559# Add the default directories.
ecdc196c 560default_sysnames=sysdeps/generic
2de7874e 561if test "$elf" = yes; then
ecdc196c 562 default_sysnames="sysdeps/generic/elf $default_sysnames"
2de7874e 563fi
ecdc196c 564sysnames="$names $default_sysnames"
f332db02
RM
565AC_SUBST(sysnames)
566# The other names were emitted during the scan.
ecdc196c 567AC_MSG_RESULT($default_sysnames)
28f540f4 568
f332db02
RM
569
570### Locate tools.
28f540f4 571
28f540f4 572AC_PROG_INSTALL
2b80a372 573if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
28f540f4 574 # The makefiles need to use a different form to find it in $srcdir.
2b80a372 575 INSTALL='\$(..)./scripts/install-sh -c'
28f540f4 576fi
0e3426bb 577AC_PROG_LN_S
ae828bc6 578
a4301d41
UD
579# We need the physical current working directory. We cannot use the
580# "pwd -P" shell builtin since that's not portable. Instead we try to
581# find a pwd binary. Note that assigning to the PWD environment
582# variable might have some interesting side effects, so we don't do
583# that.
584AC_PATH_PROG(PWD_P, pwd, no)
585if test "$PWD_P" = no; then
586 AC_MSG_ERROR(*** A pwd binary could not be found.)
587fi
588
63bda0c1 589# These programs are version sensitive.
4bca4c17
UD
590AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
591AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
d64e704c 592 [version \([egcygnustpi-]*[0-9.]*\)],
aab51d22 593 [*gcc-2.9[5-9].*|*2.8.[1-9]*|*2.9|*2.9.[0-9]*|2.9[5-9]*|3.[0-9]*|cygnus-2.9[1-9]*|gcc-2.9[5-9]|gcc-2.1[0-9][0-9]|sgicc-*],
6b4e880f 594 critic_missing=gcc)
22e65f8f 595AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
8fc1e2ca 596 [GNU Make[^0-9]*\([0-9][0-9.]*\)],
6b4e880f 597 [3.79* | 3.[89]*], critic_missing="$critic_missing make")
63bda0c1 598
03616749
AJ
599
600if test -n "$critic_missing"; then
601AC_MSG_ERROR([
aefdff34 602*** These critical programs are missing or too old:$critic_missing
03616749
AJ
603*** Check the INSTALL file for required versions.])
604fi
605
606
22e65f8f 607AC_CHECK_PROG_VER(MSGFMT, gnumsgfmt gmsgfmt msgfmt, --version,
bdd421cc 608 [GNU gettext.* \([0-9]*\.[0-9.]*\)],
aefdff34
RM
609 [0.10.3[6-9]* | 0.10.[4-9][0-9]* | 0.1[1-9]* | 0.[2-9][0-9]* | [1-9].*],
610 MSGFMT=: aux_missing="$aux_missing msgfmt")
63bda0c1 611AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
8b7fb588 612 [GNU texinfo.* \([0-9][0-9.]*\)],
aefdff34
RM
613 [4.*],
614 MAKEINFO=: aux_missing="$aux_missing makeinfo")
d6a97a28 615AC_CHECK_PROG_VER(SED, sed, --version,
aec103d3 616 [GNU sed version \([0-9]*\.[0-9.]*\)],
aefdff34
RM
617 [3.0[2-9]*|3.[1-9]*|[4-9]*],
618 SED=: aux_missing="$aux_missing sed")
63bda0c1 619
ea9f119b
AJ
620AC_PROG_CC_LOCAL
621AC_CANONICAL_BUILD
622if test $host != $build; then
623 AC_CHECK_PROGS(BUILD_CC, gcc cc)
624fi
625AC_SUBST(cross_compiling)
626AC_PROG_CPP
627LIBC_PROG_BINUTILS
628AC_CHECK_TOOL(MIG, mig)
629
630# Accept binutils 2.10.1 or newer (and also any ia64 2.9 version)
45ef592d
UD
631# XXX Commented out because it filters out too many good versions.
632# XXX --drepper
633# AC_CHECK_PROG_VER(AS, $AS, --version,
634# [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)],
635# [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t)
ea9f119b 636
4bca4c17 637test -n "$aux_missing" && AC_MSG_WARN([
aefdff34 638*** These auxiliary programs are missing or too old:$aux_missing
63bda0c1
UD
639*** some features will be disabled.
640*** Check the INSTALL file for required versions.])
28f540f4 641
d01d6319
UD
642# glibcbug.in wants to know the compiler version.
643CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
644AC_SUBST(CCVERSION)
645
dbe7a0f5
UD
646# if using special system headers, find out the compiler's sekrit
647# header directory and add that to the list. NOTE: Only does the right
648# thing on a system that doesn't need fixincludes. (Not presently a problem.)
649if test -n "$sysheaders"; then
650 ccheaders=`$CC -print-file-name=include`
651 SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $sysheaders"
652fi
653AC_SUBST(SYSINCLUDES)
654
97a47867
UD
655# check if ranlib is necessary
656AC_CACHE_CHECK(whether ranlib is necessary, libc_cv_ranlib_necessary, [dnl
657cat > conftest.c <<EOF
658int a;
659char b;
660void c(void) {}
661EOF
662$CC $CFLAGS -c conftest.c
663$AR cr conftest.a conftest.c
664cp conftest.a conftest2.a
665$RANLIB conftest.a
666if cmp -s conftest.a conftest2.a; then
667 libc_cv_ranlib_necessary=no
f38931a9 668else
97a47867
UD
669 libc_cv_ranlib_necessary=yes
670fi
671rm -rf conftest*])
672if test "$libc_cv_ranlib_necessary" = no; then
673 RANLIB=:
f38931a9 674fi
f38931a9 675
3911660e
UD
676# Test if LD_LIBRARY_PATH contains the notation for the current directory
677# since this would lead to problems installing/building glibc.
678# LD_LIBRARY_PATH contains the current directory if one of the following
679# is true:
680# - one of the terminals (":" and ";") is the first or last sign
681# - two terminals occur directly after each other
682# - the path contains an element with a dot in it
683AC_MSG_CHECKING(LD_LIBRARY_PATH variable)
684changequote(,)dnl
685case ${LD_LIBRARY_PATH} in
686 [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
b3a86ae1 687 ld_library_path_setting="contains current directory"
3911660e
UD
688 ;;
689 *)
690 ld_library_path_setting="ok"
691 ;;
692esac
693changequote([,])dnl
694AC_MSG_RESULT($ld_library_path_setting)
695if test "$ld_library_path_setting" != "ok"; then
63bda0c1
UD
696AC_MSG_ERROR([
697*** LD_LIBRARY_PATH shouldn't contain the current directory when
698*** building glibc. Please change the environment variable
699*** and run configure again.])
3911660e 700fi
8e31cf7e 701
74bd2300
UD
702AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
703if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
704 libc_cv_gcc_static_libgcc=
705else
706 libc_cv_gcc_static_libgcc=-static-libgcc
707fi])
708AC_SUBST(libc_cv_gcc_static_libgcc)
709
84384f5b 710AC_PATH_PROG(BASH, bash, no)
a18f587d 711if test "$BASH" != no &&
f43ce637 712 $BASH -c 'test "$BASH_VERSINFO" \
6973fc01 713 && test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
84384f5b
UD
714 libc_cv_have_bash2=yes
715else
716 libc_cv_have_bash2=no
717fi
718AC_SUBST(libc_cv_have_bash2)
719
5290baf0
UD
720dnl We need a ksh compatible shell for tzselect.
721if test "$BASH" = no; then
722 AC_PATH_PROG(KSH, ksh, no)
723 if test "$KSH" = no; then
724 libc_cv_have_ksh=no
725 else
726 libc_cv_have_ksh=yes
727 fi
728else
729 KSH="$BASH"
730 AC_SUBST(KSH)
731 libc_cv_have_ksh=yes
732fi
733AC_SUBST(libc_cv_have_ksh)
734
5aa8ff62 735AC_PROG_AWK
c0016081 736AC_PATH_PROG(PERL, perl, no)
2fd5d029
RM
737if test "$PERL" != no &&
738 (eval `$PERL -V:apiversion`; test `expr "$apiversion" \< 5` -ne 0); then
739 PERL=no
ecb06196 740fi
2f512715
AS
741AC_PATH_PROG(INSTALL_INFO, install-info, no,
742 $PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
c0016081
UD
743if test "$INSTALL_INFO" != "no"; then
744AC_CACHE_CHECK(for old Debian install-info, libc_cv_old_debian_install_info,
745 [mkdir conftest.d
746 # There is a hard ^_ on the next line. I am open to better ideas.
747 (echo '\1f'
748 echo 'File: dir Node: Top This is the top of the INFO tree'
749 echo '* Menu:') >conftest.d/dir
750 (echo 'INFO-DIR-SECTION i-d-s works'
751 echo 'START-INFO-DIR-ENTRY'
752 echo '* Prog: (prog). Program.'
753 echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info
754 if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1
d8cceb4f 755 then
c0016081
UD
756 if grep -s 'i-d-s works' conftest.d/dir >/dev/null
757 then libc_cv_old_debian_install_info=no
758 else libc_cv_old_debian_install_info=yes
759 fi
760 else libc_cv_old_debian_install_info=no testfailed=t
761 fi
762 rm -fr conftest.d])
763if test -n "$testfailed"
764then AC_MSG_WARN([install-info errored out, check config.log])
765fi
766OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info
767fi
768AC_SUBST(OLD_DEBIAN_INSTALL_INFO)
a2b08ee5 769
2de00372
UD
770AC_PATH_PROG(BISON, bison, no, $PATH:/usr/local/bin:/usr/bin:/bin)
771
b8dc6a10 772AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
28f540f4
RM
773echo '#include <stddef.h>
774FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
775if eval "$ac_cpp conftest.c 2>/dev/null" \
776| grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
777 libc_cv_signed_size_t=no
778else
779 libc_cv_signed_size_t=yes
780fi
781rm -f conftest*])
28f540f4
RM
782if test $libc_cv_signed_size_t = yes; then
783 dnl Do this by hand instead of AC_DEFINE so can add #undef to avoid warnings.
784 cat >> confdefs.h <<\EOF
785#undef __SIZE_TYPE__
786#define __SIZE_TYPE__ unsigned
787EOF
788fi
789
b8dc6a10 790AC_CACHE_CHECK(for libc-friendly stddef.h, libc_cv_friendly_stddef, [dnl
28f540f4
RM
791AC_TRY_COMPILE(dnl
792[#define __need_size_t
793#define __need_wchar_t
794#include <stddef.h>
795#define __need_NULL
796#include <stddef.h>], [size_t size; wchar_t wchar;
797#ifdef offsetof
798#error stddef.h ignored __need_*
799#endif
800if (&size == NULL || &wchar == NULL) abort ();],
801 libc_cv_friendly_stddef=yes,
802 libc_cv_friendly_stddef=no)])
28f540f4
RM
803if test $libc_cv_friendly_stddef = yes; then
804 config_vars="$config_vars
805override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
806fi
807
b8dc6a10
RM
808AC_CACHE_CHECK(whether we need to use -P to assemble .S files,
809 libc_cv_need_minus_P, [dnl
28f540f4
RM
810cat > conftest.S <<EOF
811#include "confdefs.h"
812/* Nothing whatsoever. */
813EOF
814if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
815 libc_cv_need_minus_P=no
816else
817 libc_cv_need_minus_P=yes
818fi
819rm -f conftest*])
28f540f4
RM
820if test $libc_cv_need_minus_P = yes; then
821 config_vars="$config_vars
822asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
823fi
824
2293395f
UD
825AC_MSG_CHECKING(whether .text pseudo-op must be used)
826AC_CACHE_VAL(libc_cv_dot_text, [dnl
827cat > conftest.s <<EOF
828.text
829EOF
830libc_cv_dot_text=
831if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
832 libc_cv_dot_text=.text
833fi
834rm -f conftest*])
835if test -z "$libc_cv_dot_text"; then
836 AC_MSG_RESULT(no)
837else
838 AC_MSG_RESULT(yes)
839fi
840
b8dc6a10
RM
841AC_CACHE_CHECK(for assembler global-symbol directive,
842 libc_cv_asm_global_directive, [dnl
9a70fcab 843libc_cv_asm_global_directive=UNKNOWN
908c3d5b 844for ac_globl in .globl .global .EXPORT; do
9a70fcab 845 cat > conftest.s <<EOF
2293395f 846 ${libc_cv_dot_text}
908c3d5b 847 ${ac_globl} foo
ae1025be 848foo:
9a70fcab
UD
849EOF
850 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
851 libc_cv_asm_global_directive=${ac_globl}
852 fi
853 rm -f conftest*
854 test $libc_cv_asm_global_directive != UNKNOWN && break
855done])
9a70fcab
UD
856if test $libc_cv_asm_global_directive = UNKNOWN; then
857 AC_MSG_ERROR(cannot determine asm global directive)
858else
859 AC_DEFINE_UNQUOTED(ASM_GLOBAL_DIRECTIVE, ${libc_cv_asm_global_directive})
860fi
861
b8dc6a10 862AC_CACHE_CHECK(for .set assembler directive, libc_cv_asm_set_directive, [dnl
9a70fcab 863cat > conftest.s <<EOF
2293395f 864${libc_cv_dot_text}
ae1025be 865foo:
df2a0c93 866.set glibc_conftest_frobozz,foo
9a70fcab 867$libc_cv_asm_global_directive glibc_conftest_frobozz
e215c478 868EOF
df2a0c93
RM
869# The alpha-dec-osf1 assembler gives only a warning for `.set'
870# (but it doesn't work), so we must do a linking check to be sure.
871cat > conftest1.c <<\EOF
872extern int glibc_conftest_frobozz;
873main () { printf ("%d\n", glibc_conftest_frobozz); }
874EOF
875if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
cb2f05ed 876 -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then
e215c478
RM
877 libc_cv_asm_set_directive=yes
878else
879 libc_cv_asm_set_directive=no
880fi
65b3cbcb 881rm -f conftest*])
e215c478
RM
882if test $libc_cv_asm_set_directive = yes; then
883 AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
884fi
885
2aa15430
UD
886# The Aix ld uses global .symbol_names instead of symbol_names.
887case "$os" in
888aix4.3*)
889 AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
890esac
891
377a515b
UD
892AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
893[cat > conftest.s <<EOF
2293395f 894${libc_cv_dot_text}
4cca6b86 895_sym:
377a515b
UD
896.symver _sym,sym@VERS
897EOF
898if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
899 libc_cv_asm_symver_directive=yes
900else
901 libc_cv_asm_symver_directive=no
902fi
903rm -f conftest*])
904AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
905if test $libc_cv_asm_symver_directive = yes; then
906 cat > conftest.s <<EOF
2293395f 907${libc_cv_dot_text}
4cca6b86 908_sym:
377a515b
UD
909.symver _sym,sym@VERS
910EOF
911 cat > conftest.map <<EOF
f43ce637 912VERS_1 {
377a515b
UD
913 global: sym;
914};
f43ce637
UD
915
916VERS_2 {
917 global: sym;
918} VERS_1;
377a515b
UD
919EOF
920 if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then
5ae3e846
UD
921 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
922 -nostartfiles -nostdlib
ae1025be
UD
923 -Wl,--version-script,conftest.map
924 1>&AC_FD_CC]);
377a515b
UD
925 then
926 libc_cv_ld_version_script_option=yes
927 else
928 libc_cv_ld_version_script_option=no
929 fi
930 else
931 libc_cv_ld_version_script_option=no
932 fi
933else
934 libc_cv_ld_version_script_option=no
935fi
936rm -f conftest*])
7499a22a
RM
937if test $shared != no &&
938 test $libc_cv_asm_symver_directive = yes &&
650425ce
UD
939 test $libc_cv_ld_version_script_option = yes &&
940 test $enable_versioning = yes; then
377a515b
UD
941 VERSIONING=yes
942 AC_DEFINE(DO_VERSIONING)
943else
944 VERSIONING=no
945fi
946AC_SUBST(VERSIONING)
947
102a3e8f 948if test $elf = yes && test $shared != no && test $VERSIONING = no; then
f43ce637 949 echo "\
f4017d20 950*** WARNING: You should not compile GNU libc without versioning. Not using
f43ce637
UD
951*** versioning will introduce incompatibilities so that old binaries
952*** will not run anymore.
50304ef0 953*** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
f43ce637 954fi
fd26970f
UD
955if test $elf = yes; then
956 AC_CACHE_CHECK(for .previous assembler directive,
957 libc_cv_asm_previous_directive, [dnl
958 cat > conftest.s <<EOF
959.section foo_section
960.previous
961EOF
962 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
963 libc_cv_asm_previous_directive=yes
964 else
965 libc_cv_asm_previous_directive=no
966 fi
967 rm -f conftest*])
968 if test $libc_cv_asm_previous_directive = yes; then
969 AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
970 else
971 AC_CACHE_CHECK(for .popsection assembler directive,
972 libc_cv_asm_popsection_directive, [dnl
973 cat > conftest.s <<EOF
974.pushsection foo_section
975.popsection
976EOF
977 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
978 libc_cv_asm_popsection_directive=yes
979 else
980 libc_cv_asm_popsection_directive=no
981 fi
982 rm -f conftest*])
983 if test $libc_cv_asm_popsection_directive = yes; then
984 AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
985 fi
986 fi
2d499f55
UD
987 AC_CACHE_CHECK(for .protected and .hidden assembler directive,
988 libc_cv_asm_protected_directive, [dnl
989 cat > conftest.s <<EOF
990.protected foo
991foo:
992.hidden bar
993bar:
994EOF
995 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
996 libc_cv_asm_protected_directive=yes
997 else
998 libc_cv_asm_protected_directive=no
999 fi
1000 rm -f conftest*])
1001 AC_SUBST(libc_cv_asm_protected_directive)
5688da55 1002 AC_DEFINE(HAVE_PROTECTED)
0fb7851f 1003
0d01dace
UD
1004 if test $libc_cv_asm_protected_directive = yes; then
1005 AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
1006 libc_cv_visibility_attribute,
1007 [cat > conftest.c <<EOF
1008 int foo __attribute__ ((visibility ("hidden"))) = 1;
1009 int bar __attribute__ ((visibility ("protected"))) = 1;
1010EOF
1011 libc_cv_visibility_attribute=no
1012 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
1013 if grep '\.hidden.*foo' conftest.s >/dev/null; then
1014 if grep '\.protected.*bar' conftest.s >/dev/null; then
1015 libc_cv_visibility_attribute=yes
1016 fi
1017 fi
1018 fi
1019 rm -f conftest.[cs]
1020 ])
1021 if test $libc_cv_visibility_attribute = yes; then
1022 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
1023 fi
1024 fi
1025
1026 if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
1027 AC_CACHE_CHECK(whether to put _rtld_local into .sdata section,
1028 libc_cv_have_sdata_section,
1029 [echo "int i;" > conftest.c
1030 libc_cv_have_sdata_section=no
1031 if ${CC-cc} -shared -Wl,--verbose conftest.c -o conftest.so 2>&1 \
1032 | grep '\.sdata' >/dev/null; then
1033 libc_cv_have_sdata_section=yes
1034 fi
1035 rm -f conftest.c conftest.so
1036 ])
1037 if test $libc_cv_have_sdata_section = yes; then
1038 AC_DEFINE(HAVE_SDATA_SECTION)
1039 fi
1040 fi
1041
5241882c
UD
1042 AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
1043 libc_cv_initfinit_array, [dnl
1044 cat > conftest.c <<EOF
1045int _start (void) { return 0; }
1046int __start (void) { return 0; }
1047int foo (void) { return 1; }
1048#ifdef __i386__
1049asm (".section .init_array\n\t.long foo");
1050#else
1051# error "define appropriately for the architecture"
1052#endif
1053EOF
1054 if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c
1055 -static -nostartfiles -nostdlib 1>&AC_FD_CC])
1056 then
1057 if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
1058 libc_cv_initfinit_array=yes
1059 else
1060 libc_cv_initfinit_array=no
1061 fi
1062 else
1063 libc_cv_initfinit_array=no
1064 fi
1065 rm -f conftest*])
1066 AC_SUBST(libc_cv_initfinit_array)
1067 if test $libc_cv_initfinit_array = yes; then
1068 AC_DEFINE(HAVE_INITFINI_ARRAY)
1069 fi
1070
0fb7851f
UD
1071 AC_CACHE_CHECK(for -z nodelete option,
1072 libc_cv_z_nodelete, [dnl
1073 cat > conftest.c <<EOF
1074int _start (void) { return 42; }
1075EOF
35cd3c97
AJ
1076 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1077 -nostartfiles -nostdlib
1078 -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC])
0fb7851f
UD
1079 then
1080 libc_cv_z_nodelete=yes
1081 else
1082 libc_cv_z_nodelete=no
1083 fi
1084 rm -f conftest*])
1085 AC_SUBST(libc_cv_z_nodelete)
2f54c82d
UD
1086
1087 AC_CACHE_CHECK(for -z nodlopen option,
1088 libc_cv_z_nodlopen, [dnl
1089 cat > conftest.c <<EOF
1090int _start (void) { return 42; }
1091EOF
35cd3c97
AJ
1092 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1093 -nostartfiles -nostdlib
1094 -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC])
2f54c82d
UD
1095 then
1096 libc_cv_z_nodlopen=yes
1097 else
1098 libc_cv_z_nodlopen=no
1099 fi
1100 rm -f conftest*])
1101 AC_SUBST(libc_cv_z_nodlopen)
5d916713
UD
1102
1103 AC_CACHE_CHECK(for -z initfirst option,
1104 libc_cv_z_initfirst, [dnl
1105 cat > conftest.c <<EOF
1106int _start (void) { return 42; }
1107EOF
35cd3c97
AJ
1108 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1109 -nostartfiles -nostdlib
1110 -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC])
5d916713
UD
1111 then
1112 libc_cv_z_initfirst=yes
1113 else
1114 libc_cv_z_initfirst=no
1115 fi
1116 rm -f conftest*])
1117 AC_SUBST(libc_cv_z_initfirst)
639c3248
UD
1118
1119 AC_CACHE_CHECK(for -Bgroup option,
1120 libc_cv_Bgroup, [dnl
1121 cat > conftest.c <<EOF
1122int _start (void) { return 42; }
1123EOF
1124 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AC_FD_CC])
1125 then
1126 libc_cv_Bgroup=yes
1127 else
1128 libc_cv_Bgroup=no
1129 fi
1130 rm -f conftest*])
1131 AC_SUBST(libc_cv_Bgroup)
a711b01d
UD
1132
1133 AC_CACHE_CHECK(for -z combreloc,
1134 libc_cv_z_combreloc, [dnl
1135 cat > conftest.c <<EOF
d555194c
UD
1136extern int bar (int);
1137extern int mumble;
1138int foo (void) { return bar (mumble); }
a711b01d 1139EOF
35cd3c97
AJ
1140 if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
1141 -nostdlib -nostartfiles
1142 -Wl,-z,combreloc 1>&AC_FD_CC])
a711b01d
UD
1143 then
1144dnl The following test is a bit weak. We must use a tool which can test
1145dnl cross-platform since the gcc used can be a cross compiler. Without
1146dnl introducing new options this is not easily doable. Instead use a tool
1147dnl which always is cross-platform: readelf. To detect whether -z combreloc
1148dnl look for a section named .rel.dyn.
fdde8349
UD
1149 if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
1150 libc_cv_z_combreloc=yes
1151 else
1152 libc_cv_z_combreloc=no
a711b01d 1153 fi
fdde8349
UD
1154 else
1155 libc_cv_z_combreloc=no
a711b01d
UD
1156 fi
1157 rm -f conftest*])
fdde8349
UD
1158 if test "$libc_cv_z_combreloc" = yes; then
1159 AC_DEFINE(HAVE_Z_COMBRELOC)
1160 fi
fd26970f 1161fi
f13df7c7 1162AC_SUBST(libc_cv_z_combreloc)
fd26970f 1163
b8dc6a10
RM
1164if test $elf != yes; then
1165 AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
1166 [AC_TRY_COMPILE(, [asm (".section .init");
84724245 1167 asm (".section .fini");
2293395f 1168 asm ("${libc_cv_dot_text}");],
b8dc6a10
RM
1169 libc_cv_have_initfini=yes,
1170 libc_cv_have_initfini=no)])
1171 AC_SUBST(libc_cv_have_initfini)dnl
1172 if test $libc_cv_have_initfini = yes; then
1173 AC_DEFINE(HAVE_INITFINI)
1174 fi
1175fi
e215c478 1176
e26dd47f
UD
1177if test $elf = yes -a $gnu_ld = yes; then
1178 AC_CACHE_CHECK(whether cc puts quotes around section names,
1179 libc_cv_have_section_quotes,
1180 [cat > conftest.c <<EOF
1181 static const int foo
1182 __attribute__ ((section ("bar"))) = 1;
1183EOF
1184 if ${CC-cc} -S conftest.c -o conftest.s; then
1185 if grep '\.section.*"bar"' conftest.s >/dev/null; then
1186 libc_cv_have_section_quotes=yes
1187 else
1188 libc_cv_have_section_quotes=no
1189 fi
1190 else
1191 libc_cv_have_section_quotes=unknown
1192 fi
1193 rm -f conftest.[cs]
1194 ])
1195 if test $libc_cv_have_section_quotes = yes; then
1196 AC_DEFINE(HAVE_SECTION_QUOTES)
1197 fi
1198fi
1199
9a0a462c
UD
1200dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
1201AC_DEFUN(AC_CHECK_ASM_UNDERSCORE,
1202[cat > conftest.$ac_ext <<EOF
1203dnl This sometimes fails to find confdefs.h, for some reason.
1204dnl [#]line __oline__ "[$]0"
1205[#]line __oline__ "configure"
1206#include "confdefs.h"
1207void underscore_test(void) {
1208return; }
1209EOF
1210if AC_TRY_EVAL(ac_compile); then
1211 if grep _underscore_test conftest* >/dev/null; then
1212 ifelse([$1], , :, [rm -f conftest*
1213 $1])
1214 else
1215 ifelse([$2], , , [rm -f conftest*
1216 $2])
1217 fi
1218else
1219 echo "configure: failed program was:" >&AC_FD_CC
1220 cat conftest.$ac_ext >&AC_FD_CC
1221 ifelse([$2], , , [rm -f conftest*
1222 $2])
1223fi
1224rm -f conftest*])
1225
c224a18a
RM
1226if test $elf = yes; then
1227 libc_cv_asm_underscores=no
1228else
9a0a462c
UD
1229 if test $ac_cv_prog_cc_works = yes; then
1230 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1231 [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();],
1232 libc_cv_asm_underscores=yes,
1233 libc_cv_asm_underscores=no)])
1234 else
1235 AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores,
1236 [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes,
1237 libc_cv_asm_underscores=no)])
1238 fi
c224a18a
RM
1239fi
1240if test $libc_cv_asm_underscores = no; then
1241 AC_DEFINE(NO_UNDERSCORES)
1242fi
1243
1244if test $elf = yes; then
1245 libc_cv_weak_symbols=yes
9a97d1f7
UD
1246fi
1247
1248AC_CACHE_CHECK(for assembler .weak directive, libc_cv_asm_weak_directive,
75d86c1f 1249 [dnl
c224a18a 1250cat > conftest.s <<EOF
2293395f 1251${libc_cv_dot_text}
c224a18a 1252${libc_cv_asm_global_directive} foo
ae1025be 1253foo:
c224a18a
RM
1254.weak foo
1255.weak bar; bar = foo
1256EOF
9a97d1f7
UD
1257if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1258 libc_cv_asm_weak_directive=yes
1259else
1260 libc_cv_asm_weak_directive=no
1261fi
1262rm -f conftest*])
c224a18a 1263
c8cf0b14 1264if test $libc_cv_asm_weak_directive = no; then
c224a18a
RM
1265 AC_CACHE_CHECK(for assembler .weakext directive,
1266 libc_cv_asm_weakext_directive,
1267 [dnl
1268cat > conftest.s <<EOF
2293395f 1269${libc_cv_dot_text}
c224a18a 1270${libc_cv_asm_global_directive} foo
ae1025be 1271foo:
f802accb
UD
1272.weakext bar foo
1273.weakext baz
1274${libc_cv_asm_global_directive} baz
9a97d1f7 1275baz:
c224a18a
RM
1276EOF
1277 if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
1278 libc_cv_asm_weakext_directive=yes
1279 else
1280 libc_cv_asm_weakext_directive=no
1281 fi
1282 rm -f conftest*])
1283
9a97d1f7 1284fi # no .weak
c224a18a 1285
ffcf9634 1286if test $libc_cv_asm_weak_directive = yes; then
c224a18a 1287 AC_DEFINE(HAVE_ASM_WEAK_DIRECTIVE)
ffcf9634 1288elif test $libc_cv_asm_weakext_directive = yes; then
c224a18a
RM
1289 AC_DEFINE(HAVE_ASM_WEAKEXT_DIRECTIVE)
1290fi
1291
b15cb495 1292dnl The standard hppa assembler uses `;' to start comments and `!'
eacde9d0
UD
1293dnl as a line separator. CRIS uses `;' to start comments and `@' for
1294dnl line separator.
b15cb495 1295case "${host_cpu}-${host_os}" in
eacde9d0
UD
1296 cris*)
1297 libc_cv_asm_line_sep='@'
1298 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1299 ;;
b15cb495
UD
1300 hppa*linux*)
1301 AC_CACHE_CHECK(for assembler line separator,
1302 libc_cv_asm_line_sep, [dnl
1303 cat > conftest.s <<EOF
1304 nop ; is_old_puffin
1305EOF
1306 if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
1307 libc_cv_asm_line_sep='!'
1308 else
1309 if test -z "$enable_hacker_mode"; then
1310 echo "*** You need a newer assembler to compile glibc"
1311 rm -f conftest*
1312 exit 1
1313 fi
1314 libc_cv_asm_line_sep=';'
1315 fi
1316 rm -f conftest*])
1317 AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
1318 ;;
1319esac
1320
a641835a
RM
1321AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
1322cat > conftest.c <<\EOF
5f0e6fc7 1323_start () {}
dcf0671d
UD
1324int __eh_pc;
1325__throw () {}
a641835a 1326EOF
dcea62dd
RM
1327dnl No \ in command here because it ends up inside ''.
1328if AC_TRY_COMMAND([${CC-cc} $CFLAGS
1329 -nostdlib -nostartfiles -Wl,--no-whole-archive
ae1025be 1330 -o conftest conftest.c 1>&AC_FD_CC]); then
a641835a
RM
1331 libc_cv_ld_no_whole_archive=yes
1332else
1333 libc_cv_ld_no_whole_archive=no
1334fi
1335rm -f conftest*])
b17277cf
UD
1336if test $libc_cv_ld_no_whole_archive = yes; then
1337 no_whole_archive=-Wl,--no-whole-archive
1338fi
1339AC_SUBST(no_whole_archive)dnl
a641835a 1340
dff14448 1341AC_CACHE_CHECK(for gcc -fexceptions, libc_cv_gcc_exceptions, [dnl
b236e99d
UD
1342cat > conftest.c <<\EOF
1343_start () {}
1344int __eh_pc;
1345__throw () {}
1346EOF
1347dnl No \ in command here because it ends up inside ''.
1348if AC_TRY_COMMAND([${CC-cc} $CFLAGS
dff14448 1349 -nostdlib -nostartfiles -fexceptions
ae1025be 1350 -o conftest conftest.c 1>&AC_FD_CC]); then
dff14448 1351 libc_cv_gcc_exceptions=yes
b236e99d 1352else
dff14448 1353 libc_cv_gcc_exceptions=no
b236e99d
UD
1354fi
1355rm -f conftest*])
dff14448
UD
1356if test $libc_cv_gcc_exceptions = yes; then
1357 exceptions=-fexceptions
b17277cf 1358fi
dff14448 1359AC_SUBST(exceptions)dnl
b236e99d 1360
d71b808a
UD
1361if test "$base_machine" = alpha ; then
1362AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl
1363cat > conftest.c <<\EOF
1364foo () { }
1365EOF
1366dnl
9756dfe1 1367if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]);
d71b808a
UD
1368then
1369 libc_cv_gcc_alpha_ng_prefix=yes
1370else
1371 libc_cv_gcc_alpha_ng_prefix=no
1372fi
1373rm -f conftest* ])
1374if test $libc_cv_gcc_alpha_ng_prefix = yes ; then
1375 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$")
1376else
1377 AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "")
1378fi
1379fi
1380
66000494
UD
1381if test "$host_cpu" = powerpc ; then
1382# Check for a bug present in at least versions 2.8.x of GCC
1383# and versions 1.0.x of EGCS.
1384AC_CACHE_CHECK(whether clobbering cr0 causes problems,libc_cv_c_asmcr0_bug,[dnl
1385AC_TRY_COMPILE([int tester(int x) { asm ("" : : : "cc"); return x & 123; }],,
1386 libc_cv_c_asmcr0_bug='no',
1387 libc_cv_c_asmcr0_bug='yes')])
1388if test "$libc_cv_c_asmcr0_bug" != 'no'; then
1389 AC_DEFINE(BROKEN_PPC_ASM_CR0)
1390fi
1391fi
1392
650425ce
UD
1393AC_CACHE_CHECK(for DWARF2 unwind info support, libc_cv_gcc_dwarf2_unwind_info,
1394[cat > conftest.c <<EOF
1395#line __oline__ "configure"
1396static char __EH_FRAME_BEGIN__[];
1397_start ()
1398{
9756dfe1 1399#ifdef CHECK__register_frame
650425ce
UD
1400 __register_frame (__EH_FRAME_BEGIN__);
1401 __deregister_frame (__EH_FRAME_BEGIN__);
9756dfe1
UD
1402#endif
1403#ifdef CHECK__register_frame_info
1404 __register_frame_info (__EH_FRAME_BEGIN__);
1405 __deregister_frame_info (__EH_FRAME_BEGIN__);
1406#endif
650425ce
UD
1407}
1408int __eh_pc;
1409__throw () {}
1410/* FIXME: this is fragile. */
1411malloc () {}
1412strcmp () {}
1413strlen () {}
1414memcpy () {}
1415memset () {}
1416free () {}
1417abort () {}
dfd2257a 1418__bzero () {}
650425ce
UD
1419EOF
1420dnl No \ in command here because it ends up inside ''.
9756dfe1 1421if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
650425ce
UD
1422 -nostdlib -nostartfiles
1423 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
9756dfe1 1424 libc_cv_gcc_dwarf2_unwind_info=static
650425ce
UD
1425else
1426 libc_cv_gcc_dwarf2_unwind_info=no
1427fi
9756dfe1
UD
1428if test $libc_cv_gcc_dwarf2_unwind_info = no; then
1429 if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame
1430 -nostdlib -nostartfiles
1431 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1432 libc_cv_gcc_dwarf2_unwind_info=yes
1433 else
1434 libc_cv_gcc_dwarf2_unwind_info=no
1435 fi
1436fi
650425ce 1437rm -f conftest*])
9756dfe1
UD
1438case $libc_cv_gcc_dwarf2_unwind_info in
1439yes)
650425ce 1440 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
9756dfe1
UD
1441 ;;
1442static)
1443 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO)
1444 AC_DEFINE(HAVE_DWARF2_UNWIND_INFO_STATIC)
1445 ;;
1446esac
650425ce 1447
a8eab8b1
UD
1448dnl Check whether compiler understands __builtin_expect.
1449AC_CACHE_CHECK(for __builtin_expect, libc_cv_gcc_builtin_expect,
1450[cat > conftest.c <<EOF
1451#line __oline__ "configure"
1452int foo (int a)
1453{
1454 a = __builtin_expect (a, 10);
1455 return a == 10 ? 0 : 1;
1456}
1457EOF
1458dnl No \ in command here because it ends up inside ''.
1459if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1460 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1461 libc_cv_gcc_builtin_expect=yes
1462else
1463 libc_cv_gcc_builtin_expect=no
1464fi
1465rm -f conftest*])
1466if test "$libc_cv_gcc_builtin_expect" = yes; then
1467 AC_DEFINE(HAVE_BUILTIN_EXPECT)
1468fi
1469
d555194c
UD
1470AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
1471cat > conftest.c <<\EOF
1472void zero (void *x)
1473{
a52d1562 1474 __builtin_memset (x, 0, 1000);
d555194c
UD
1475}
1476EOF
1477dnl
1478if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
1479then
1480 libc_cv_gcc_builtin_memset=no
1481else
1482 libc_cv_gcc_builtin_memset=yes
1483fi
1484rm -f conftest* ])
1485if test "$libc_cv_gcc_builtin_memset" = yes ; then
1486 AC_DEFINE(HAVE_BUILTIN_MEMSET)
1487fi
1488
3d558f4e
UD
1489dnl Check whether the compiler supports subtraction of local labels.
1490AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
1491[cat > conftest.c <<EOF
1492changequote(,)dnl
1493#line __oline__ "configure"
1494int foo (int a)
1495{
1496 static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
1497 void *p = &&l1 + ar[a];
1498 goto *p;
1499 l1:
1500 return 1;
1501 l2:
1502 return 2;
1503}
1504changequote([,])dnl
1505EOF
1506dnl No \ in command here because it ends up inside ''.
1507if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles
1508 -o conftest conftest.c -lgcc >&AC_FD_CC]); then
1509 libc_cv_gcc_subtract_local_labels=yes
1510else
1511 libc_cv_gcc_subtract_local_labels=no
1512fi
1513rm -f conftest*])
1514if test "$libc_cv_gcc_subtract_local_labels" = yes; then
1515 AC_DEFINE(HAVE_SUBTRACT_LOCAL_LABELS)
1516fi
1517
c8f3e6db
UD
1518dnl Check whether we have the gd library available.
1519AC_MSG_CHECKING(for libgd)
6dab8688
UD
1520if test "$with_gd" != "no"; then
1521 old_CFLAGS="$CFLAGS"
1522 CFLAGS="$CFLAGS $libgd_include"
1523 old_LDFLAGS="$LDFLAGS"
1524 LDFLAGS="$LDFLAGS $libgd_ldflags"
1525 old_LIBS="$LIBS"
1526 LIBS="$LIBS -lgd -lpng -lz -lm"
1527 AC_TRY_LINK([#include <gd.h>], [gdImagePng (0, 0)], LIBGD=yes, LIBGD=no)
1528 CFLAGS="$old_CFLAGS"
1529 LDFLAGS="$old_LDFLAGS"
1530 LIBS="$old_LIBS"
1531else
1532 LIBGD=no
1533fi
c8f3e6db
UD
1534AC_MSG_RESULT($LIBGD)
1535AC_SUBST(LIBGD)
3d558f4e 1536
8ed1e7d5
GK
1537dnl check for the size of 'long double'.
1538AC_CHECK_SIZEOF(long double, 0)
1539sizeof_long_double=$ac_cv_sizeof_long_double
1540AC_SUBST(sizeof_long_double)
1541
c224a18a
RM
1542### End of automated tests.
1543### Now run sysdeps configure fragments.
1544
28f540f4
RM
1545# sysdeps configure fragments may set these with files to be linked below.
1546libc_link_dests=
1547libc_link_sources=
1548
cb343854 1549# They also can set these variables.
591e1ffb 1550use_ldconfig=no
cb343854 1551ldd_rewrite_script=no
77259608 1552libc_cv_sysconfdir=$sysconfdir
74bd2300 1553libc_cv_gcc_unwind_find_fde=no
cb343854 1554
28f540f4
RM
1555# Iterate over all the sysdep directories we will use, running their
1556# configure fragments, and looking for a uname implementation.
1557uname=
1558for dir in $sysnames; do
57ba7bb4
UD
1559 case $dir in
1560 /*) dest=$dir ;;
1561 *) dest=$srcdir/$dir ;;
1562 esac
1563 if test -r $dest/configure; then
1564 AC_MSG_RESULT(running configure fragment for $dest)
1565 . $dest/configure
28f540f4 1566 fi
4ca84cff 1567[
28f540f4 1568 if test -z "$uname"; then
e7f1f046
UD
1569 if test -r $dest/uname.c ||
1570 test -r $dest/uname.S ||
1571 { test -r $dest/syscalls.list &&
1572 grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
b86199fb 1573 uname=$dir
4ca84cff 1574 fi
28f540f4 1575 fi
4ca84cff 1576]dnl
28f540f4
RM
1577done
1578
74bd2300
UD
1579if test x$libc_cv_gcc_unwind_find_fde = xyes; then
1580 AC_DEFINE(EXPORT_UNWIND_FIND_FDE)
1581fi
1582AC_SUBST(libc_cv_gcc_unwind_find_fde)
1583
28f540f4
RM
1584AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`)
1585
1586# If we will use the generic uname implementation, we must figure out what
1587# it will say by examining the system, and write the results in config-name.h.
e7f1f046 1588if test "$uname" = "sysdeps/generic"; then
28f540f4
RM
1589
1590changequote(,)dnl
1591 uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
1592changequote([,])dnl
1593 if test $uname_sysname != $config_os; then
1594 config_release=`echo $config_os | sed s/$uname_sysname//`
1595 fi
1596dnl
1597AC_DEFUN(LIBC_KERNEL_ID, [dnl
1598 if test -r /vmunix; then
1599 kernel_id=`strings /vmunix | grep UNIX`
1600 elif test -r /dynix; then
1601 kernel_id=`strings /dynix | grep DYNIX`
1602 else
1603 kernel_id=
1604 fi
1605])dnl
1606
b8dc6a10 1607 AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
28f540f4
RM
1608AC_REQUIRE([LIBC_KERNEL_ID])dnl
1609changequote(,)dnl
1610 kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
1611changequote([,])dnl
1612 if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
1613 != x$config_release; then
1614 # The configuration release is a substring of the kernel release.
1615 libc_cv_uname_release=$kernel_release
1616 elif test x$config_release != x; then
1617 libc_cv_uname_release=$config_release
1618 elif test x$kernel_release != x; then
1619 libc_cv_uname_release=$kernel_release
1620 else
1621 libc_cv_uname_release=unknown
1622 fi])
28f540f4
RM
1623 uname_release="$libc_cv_uname_release"
1624
b8dc6a10 1625 AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
28f540f4
RM
1626AC_REQUIRE([LIBC_KERNEL_ID])dnl
1627changequote(,)dnl
1628 kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
1629changequote([,])dnl
1630 if test -n "$kernel_version"; then
1631 libc_cv_uname_version="$kernel_version"
1632 else
1633 libc_cv_uname_version=unknown
1634 fi])
28f540f4
RM
1635 uname_version="$libc_cv_uname_version"
1636
1637AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
1638 config_uname=config-name.h:config-name.in
1639else
1640 # For non-generic uname, we don't need to create config-name.h at all.
1641 config_uname=
1642fi
1643
96aa2d94
RM
1644AC_MSG_CHECKING(stdio selection)
1645AC_SUBST(stdio)
1646case $stdio in
1647libio) AC_DEFINE(USE_IN_LIBIO) ;;
1648default) stdio=stdio ;;
1649esac
1650AC_MSG_RESULT($stdio)
1651
a53bad16
UD
1652# Test for old glibc 2.0.x headers so that they can be removed properly
1653# Search only in includedir.
1654AC_MSG_CHECKING(for old glibc 2.0.x headers)
350eb336 1655if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
a53bad16
UD
1656then
1657 old_glibc_headers=yes
1658else
1659 old_glibc_headers=no
1660fi
1661AC_MSG_RESULT($old_glibc_headers)
1662if test ${old_glibc_headers} = yes; then
1663 AC_MSG_WARN(*** During \"make install\" old headers from glibc 2.0.x will)
1664 AC_MSG_WARN(*** be removed.)
1665fi
b195f6bc 1666AC_SUBST(old_glibc_headers)
26b4d766 1667
84384f5b 1668AC_SUBST(libc_cv_slibdir)
a1d84548 1669AC_SUBST(libc_cv_localedir)
77259608 1670AC_SUBST(libc_cv_sysconfdir)
1ef32c3d
UD
1671AC_SUBST(libc_cv_rootsbindir)
1672
591e1ffb 1673AC_SUBST(use_ldconfig)
cb343854 1674AC_SUBST(ldd_rewrite_script)
84384f5b 1675
5af3245a 1676AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf) AC_SUBST(xcoff)
28f540f4
RM
1677if test $gnu_ld = yes; then
1678 AC_DEFINE(HAVE_GNU_LD)
1679fi
1680if test $gnu_as = yes; then
1681 AC_DEFINE(HAVE_GNU_AS)
1682fi
1683if test $elf = yes; then
1684 AC_DEFINE(HAVE_ELF)
1685fi
5af3245a
UD
1686if test $xcoff = yes; then
1687 AC_DEFINE(HAVE_XCOFF)
1688fi
28f540f4 1689
650425ce 1690AC_SUBST(static)
ff3d7ed3
RM
1691AC_SUBST(shared)
1692if test $shared = default; then
1693 if test $gnu_ld = yes; then
1694 shared=$elf
f65fd747
UD
1695 else
1696 # For now we do not assume shared libs are available. In future more
1697 # tests might become available.
1698 shared=no
ff3d7ed3
RM
1699 fi
1700fi
cc3fa755
UD
1701
1702AC_CACHE_CHECK([whether -fPIC is default], pic_default,
1703[pic_default=yes
1704cat > conftest.c <<EOF
9756dfe1 1705#if defined __PIC__ || defined __pic__ || defined PIC || defined pic
cc3fa755
UD
1706# error PIC is default.
1707#endif
1708EOF
1709if eval "${CC-cc} -S conftest.c 2>&AC_FD_CC 1>&AC_FD_CC"; then
1710 pic_default=no
1711fi
1712rm -f conftest.*])
1713AC_SUBST(pic_default)
1714
ff3d7ed3
RM
1715AC_SUBST(profile)
1716AC_SUBST(omitfp)
5a97622d 1717AC_SUBST(bounded)
5107cf1d 1718AC_SUBST(static_nss)
5ae3e846 1719AC_SUBST(nopic_initfini)
ff3d7ed3 1720
edf5b2d7
UD
1721AC_SUBST(DEFINES)
1722
7cabd57c
UD
1723case "$add_ons" in
1724 *door*) linux_doors=yes ;;
1725 *) linux_doors=no ;;
1726esac
1727AC_SUBST(linux_doors)
1728
61c83c3f
RM
1729dnl See sysdeps/mach/configure.in for this variable.
1730AC_SUBST(mach_interface_list)
1731
28f540f4
RM
1732if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
1733 config_makefile=
1734else
1735 config_makefile=Makefile
1736fi
1737
ee74a442
UD
1738VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
1739RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
df4ef2ab 1740AC_SUBST(VERSION)
ee74a442 1741AC_SUBST(RELEASE)
df4ef2ab 1742
737547be
UD
1743AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [
1744case $CONFIG_FILES in *config.make*)
1745echo "$config_vars" >> config.make;;
1746esac
1747test -d bits || mkdir bits], [config_vars='$config_vars'])