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