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