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